diff --git a/networks/sn160/Make.package b/networks/sn160/Make.package index 35413fdcf..e66796431 100644 --- a/networks/sn160/Make.package +++ b/networks/sn160/Make.package @@ -10,9 +10,11 @@ ifeq ($(USE_REACT),TRUE) CEXE_headers += rate_type.H CEXE_headers += reaclib_rates.H CEXE_headers += approximate_rates.H + CEXE_headers += branched_rates.H CEXE_headers += modified_rates.H CEXE_headers += table_rates.H CEXE_headers += temperature_table_rates.H + CEXE_headers += tabular_weak_rates.H CEXE_headers += derived_rates.H USE_SCREENING = TRUE USE_NEUTRINOS = TRUE diff --git a/networks/sn160/actual_network.H b/networks/sn160/actual_network.H index a66fdc1f0..574230fa6 100644 --- a/networks/sn160/actual_network.H +++ b/networks/sn160/actual_network.H @@ -1,5 +1,5 @@ -#ifndef actual_network_H -#define actual_network_H +#ifndef ACTUAL_NETWORK_H +#define ACTUAL_NETWORK_H #include #include @@ -1056,1633 +1056,1633 @@ namespace Rates enum NetworkRates : std::uint16_t { - k_Be7_to_Li7_reaclib = 1, - k_C14_to_N14_reaclib = 2, - k_N13_to_C13_reaclib = 3, - k_O14_to_N14_reaclib = 4, - k_O15_to_N15_reaclib = 5, - k_F17_to_O17_reaclib = 6, - k_F18_to_O18_reaclib = 7, - k_Ne18_to_F18_reaclib = 8, - k_Ne19_to_F19_reaclib = 9, - k_Zn59_to_Cu59_reaclib = 10, - k_Ge63_to_Ga63_reaclib = 11, - k_d_to_n_p_reaclib = 12, - k_He3_to_p_d_reaclib = 13, - k_He4_to_n_He3_reaclib = 14, - k_He4_to_d_d_reaclib = 15, - k_Li6_to_He4_d_reaclib = 16, - k_Li7_to_n_Li6_reaclib = 17, - k_Be7_to_p_Li6_reaclib = 18, - k_Be7_to_He4_He3_reaclib = 19, - k_B8_to_p_Be7_reaclib = 20, - k_B8_to_He4_He4_reaclib = 21, - k_B10_to_p_Be9_reaclib = 22, - k_B10_to_He4_Li6_reaclib = 23, - k_B11_to_n_B10_reaclib = 24, - k_B11_to_He4_Li7_reaclib = 25, - k_C12_to_p_B11_reaclib = 26, - k_C13_to_n_C12_reaclib = 27, - k_C14_to_n_C13_reaclib = 28, - k_N13_to_p_C12_reaclib = 29, - k_N14_to_n_N13_reaclib = 30, - k_N14_to_p_C13_reaclib = 31, - k_N15_to_n_N14_reaclib = 32, - k_N15_to_p_C14_reaclib = 33, - k_O14_to_p_N13_reaclib = 34, - k_O15_to_n_O14_reaclib = 35, - k_O15_to_p_N14_reaclib = 36, - k_O16_to_n_O15_reaclib = 37, - k_O16_to_p_N15_reaclib = 38, - k_O16_to_He4_C12_reaclib = 39, - k_O17_to_n_O16_reaclib = 40, - k_O18_to_n_O17_reaclib = 41, - k_O18_to_He4_C14_reaclib = 42, - k_F17_to_p_O16_reaclib = 43, - k_F18_to_n_F17_reaclib = 44, - k_F18_to_p_O17_reaclib = 45, - k_F18_to_He4_N14_reaclib = 46, - k_F19_to_n_F18_reaclib = 47, - k_F19_to_p_O18_reaclib = 48, - k_F19_to_He4_N15_reaclib = 49, - k_Ne18_to_p_F17_reaclib = 50, - k_Ne18_to_He4_O14_reaclib = 51, - k_Ne19_to_n_Ne18_reaclib = 52, - k_Ne19_to_p_F18_reaclib = 53, - k_Ne19_to_He4_O15_reaclib = 54, - k_Ne20_to_n_Ne19_reaclib = 55, - k_Ne20_to_p_F19_reaclib = 56, - k_Ne20_to_He4_O16_reaclib = 57, - k_Ne21_to_n_Ne20_reaclib = 58, - k_Ne21_to_He4_O17_reaclib = 59, - k_Ne22_to_n_Ne21_reaclib = 60, - k_Ne22_to_He4_O18_reaclib = 61, - k_Na21_to_p_Ne20_reaclib = 62, - k_Na21_to_He4_F17_reaclib = 63, - k_Na22_to_n_Na21_reaclib = 64, - k_Na22_to_p_Ne21_reaclib = 65, - k_Na22_to_He4_F18_reaclib = 66, - k_Na23_to_n_Na22_reaclib = 67, - k_Na23_to_p_Ne22_reaclib = 68, - k_Na23_to_He4_F19_reaclib = 69, - k_Mg23_to_p_Na22_reaclib = 70, - k_Mg23_to_He4_Ne19_reaclib = 71, - k_Mg24_to_n_Mg23_reaclib = 72, - k_Mg24_to_p_Na23_reaclib = 73, - k_Mg24_to_He4_Ne20_reaclib = 74, - k_Mg25_to_n_Mg24_reaclib = 75, - k_Mg25_to_He4_Ne21_reaclib = 76, - k_Mg26_to_n_Mg25_reaclib = 77, - k_Mg26_to_He4_Ne22_reaclib = 78, - k_Al25_to_p_Mg24_reaclib = 79, - k_Al25_to_He4_Na21_reaclib = 80, - k_Al26_to_n_Al25_reaclib = 81, - k_Al26_to_p_Mg25_reaclib = 82, - k_Al26_to_He4_Na22_reaclib = 83, - k_Al27_to_n_Al26_reaclib = 84, - k_Al27_to_p_Mg26_reaclib = 85, - k_Al27_to_He4_Na23_reaclib = 86, - k_Si28_to_p_Al27_reaclib = 87, - k_Si28_to_He4_Mg24_reaclib = 88, - k_Si29_to_n_Si28_reaclib = 89, - k_Si29_to_He4_Mg25_reaclib = 90, - k_Si30_to_n_Si29_reaclib = 91, - k_Si30_to_He4_Mg26_reaclib = 92, - k_Si31_to_n_Si30_reaclib = 93, - k_Si32_to_n_Si31_reaclib = 94, - k_P29_to_p_Si28_reaclib = 95, - k_P29_to_He4_Al25_reaclib = 96, - k_P30_to_n_P29_reaclib = 97, - k_P30_to_p_Si29_reaclib = 98, - k_P30_to_He4_Al26_reaclib = 99, - k_P31_to_n_P30_reaclib = 100, - k_P31_to_p_Si30_reaclib = 101, - k_P31_to_He4_Al27_reaclib = 102, - k_P32_to_n_P31_reaclib = 103, - k_P32_to_p_Si31_reaclib = 104, - k_P33_to_n_P32_reaclib = 105, - k_P33_to_p_Si32_reaclib = 106, - k_S32_to_p_P31_reaclib = 107, - k_S32_to_He4_Si28_reaclib = 108, - k_S33_to_n_S32_reaclib = 109, - k_S33_to_p_P32_reaclib = 110, - k_S33_to_He4_Si29_reaclib = 111, - k_S34_to_n_S33_reaclib = 112, - k_S34_to_p_P33_reaclib = 113, - k_S34_to_He4_Si30_reaclib = 114, - k_S35_to_n_S34_reaclib = 115, - k_S35_to_He4_Si31_reaclib = 116, - k_S36_to_n_S35_reaclib = 117, - k_S36_to_He4_Si32_reaclib = 118, - k_Cl33_to_p_S32_reaclib = 119, - k_Cl33_to_He4_P29_reaclib = 120, - k_Cl34_to_n_Cl33_reaclib = 121, - k_Cl34_to_p_S33_reaclib = 122, - k_Cl34_to_He4_P30_reaclib = 123, - k_Cl35_to_n_Cl34_reaclib = 124, - k_Cl35_to_p_S34_reaclib = 125, - k_Cl35_to_He4_P31_reaclib = 126, - k_Cl36_to_n_Cl35_reaclib = 127, - k_Cl36_to_p_S35_reaclib = 128, - k_Cl36_to_He4_P32_reaclib = 129, - k_Cl37_to_n_Cl36_reaclib = 130, - k_Cl37_to_p_S36_reaclib = 131, - k_Cl37_to_He4_P33_reaclib = 132, - k_Ar36_to_p_Cl35_reaclib = 133, - k_Ar36_to_He4_S32_reaclib = 134, - k_Ar37_to_n_Ar36_reaclib = 135, - k_Ar37_to_p_Cl36_reaclib = 136, - k_Ar37_to_He4_S33_reaclib = 137, - k_Ar38_to_n_Ar37_reaclib = 138, - k_Ar38_to_p_Cl37_reaclib = 139, - k_Ar38_to_He4_S34_reaclib = 140, - k_Ar39_to_n_Ar38_reaclib = 141, - k_Ar39_to_He4_S35_reaclib = 142, - k_Ar40_to_n_Ar39_reaclib = 143, - k_Ar40_to_He4_S36_reaclib = 144, - k_K37_to_p_Ar36_reaclib = 145, - k_K37_to_He4_Cl33_reaclib = 146, - k_K38_to_n_K37_reaclib = 147, - k_K38_to_p_Ar37_reaclib = 148, - k_K38_to_He4_Cl34_reaclib = 149, - k_K39_to_n_K38_reaclib = 150, - k_K39_to_p_Ar38_reaclib = 151, - k_K39_to_He4_Cl35_reaclib = 152, - k_K40_to_n_K39_reaclib = 153, - k_K40_to_p_Ar39_reaclib = 154, - k_K40_to_He4_Cl36_reaclib = 155, - k_K41_to_n_K40_reaclib = 156, - k_K41_to_p_Ar40_reaclib = 157, - k_K41_to_He4_Cl37_reaclib = 158, - k_Ca40_to_p_K39_reaclib = 159, - k_Ca40_to_He4_Ar36_reaclib = 160, - k_Ca41_to_n_Ca40_reaclib = 161, - k_Ca41_to_p_K40_reaclib = 162, - k_Ca41_to_He4_Ar37_reaclib = 163, - k_Ca42_to_n_Ca41_reaclib = 164, - k_Ca42_to_p_K41_reaclib = 165, - k_Ca42_to_He4_Ar38_reaclib = 166, - k_Ca43_to_n_Ca42_reaclib = 167, - k_Ca43_to_He4_Ar39_reaclib = 168, - k_Ca44_to_n_Ca43_reaclib = 169, - k_Ca44_to_He4_Ar40_reaclib = 170, - k_Ca45_to_n_Ca44_reaclib = 171, - k_Ca46_to_n_Ca45_reaclib = 172, - k_Ca47_to_n_Ca46_reaclib = 173, - k_Ca48_to_n_Ca47_reaclib = 174, - k_Sc43_to_p_Ca42_reaclib = 175, - k_Sc43_to_He4_K39_reaclib = 176, - k_Sc44_to_n_Sc43_reaclib = 177, - k_Sc44_to_p_Ca43_reaclib = 178, - k_Sc44_to_He4_K40_reaclib = 179, - k_Sc45_to_n_Sc44_reaclib = 180, - k_Sc45_to_p_Ca44_reaclib = 181, - k_Sc45_to_He4_K41_reaclib = 182, - k_Sc46_to_n_Sc45_reaclib = 183, - k_Sc46_to_p_Ca45_reaclib = 184, - k_Sc47_to_n_Sc46_reaclib = 185, - k_Sc47_to_p_Ca46_reaclib = 186, - k_Sc48_to_n_Sc47_reaclib = 187, - k_Sc48_to_p_Ca47_reaclib = 188, - k_Sc49_to_n_Sc48_reaclib = 189, - k_Sc49_to_p_Ca48_reaclib = 190, - k_Ti44_to_p_Sc43_reaclib = 191, - k_Ti44_to_He4_Ca40_reaclib = 192, - k_Ti45_to_n_Ti44_reaclib = 193, - k_Ti45_to_p_Sc44_reaclib = 194, - k_Ti45_to_He4_Ca41_reaclib = 195, - k_Ti46_to_n_Ti45_reaclib = 196, - k_Ti46_to_p_Sc45_reaclib = 197, - k_Ti46_to_He4_Ca42_reaclib = 198, - k_Ti47_to_n_Ti46_reaclib = 199, - k_Ti47_to_p_Sc46_reaclib = 200, - k_Ti47_to_He4_Ca43_reaclib = 201, - k_Ti48_to_n_Ti47_reaclib = 202, - k_Ti48_to_p_Sc47_reaclib = 203, - k_Ti48_to_He4_Ca44_reaclib = 204, - k_Ti49_to_n_Ti48_reaclib = 205, - k_Ti49_to_p_Sc48_reaclib = 206, - k_Ti49_to_He4_Ca45_reaclib = 207, - k_Ti50_to_n_Ti49_reaclib = 208, - k_Ti50_to_p_Sc49_reaclib = 209, - k_Ti50_to_He4_Ca46_reaclib = 210, - k_Ti51_to_n_Ti50_reaclib = 211, - k_Ti51_to_He4_Ca47_reaclib = 212, - k_V46_to_p_Ti45_reaclib = 213, - k_V47_to_n_V46_reaclib = 214, - k_V47_to_p_Ti46_reaclib = 215, - k_V47_to_He4_Sc43_reaclib = 216, - k_V48_to_n_V47_reaclib = 217, - k_V48_to_p_Ti47_reaclib = 218, - k_V48_to_He4_Sc44_reaclib = 219, - k_V49_to_n_V48_reaclib = 220, - k_V49_to_p_Ti48_reaclib = 221, - k_V49_to_He4_Sc45_reaclib = 222, - k_V50_to_n_V49_reaclib = 223, - k_V50_to_p_Ti49_reaclib = 224, - k_V50_to_He4_Sc46_reaclib = 225, - k_V51_to_n_V50_reaclib = 226, - k_V51_to_p_Ti50_reaclib = 227, - k_V51_to_He4_Sc47_reaclib = 228, - k_V52_to_n_V51_reaclib = 229, - k_V52_to_p_Ti51_reaclib = 230, - k_V52_to_He4_Sc48_reaclib = 231, - k_Cr48_to_p_V47_reaclib = 232, - k_Cr48_to_He4_Ti44_reaclib = 233, - k_Cr49_to_n_Cr48_reaclib = 234, - k_Cr49_to_p_V48_reaclib = 235, - k_Cr49_to_He4_Ti45_reaclib = 236, - k_Cr50_to_n_Cr49_reaclib = 237, - k_Cr50_to_p_V49_reaclib = 238, - k_Cr50_to_He4_Ti46_reaclib = 239, - k_Cr51_to_n_Cr50_reaclib = 240, - k_Cr51_to_p_V50_reaclib = 241, - k_Cr51_to_He4_Ti47_reaclib = 242, - k_Cr52_to_n_Cr51_reaclib = 243, - k_Cr52_to_p_V51_reaclib = 244, - k_Cr52_to_He4_Ti48_reaclib = 245, - k_Cr53_to_n_Cr52_reaclib = 246, - k_Cr53_to_p_V52_reaclib = 247, - k_Cr53_to_He4_Ti49_reaclib = 248, - k_Cr54_to_n_Cr53_reaclib = 249, - k_Cr54_to_He4_Ti50_reaclib = 250, - k_Mn50_to_p_Cr49_reaclib = 251, - k_Mn50_to_He4_V46_reaclib = 252, - k_Mn51_to_n_Mn50_reaclib = 253, - k_Mn51_to_p_Cr50_reaclib = 254, - k_Mn51_to_He4_V47_reaclib = 255, - k_Mn52_to_n_Mn51_reaclib = 256, - k_Mn52_to_p_Cr51_reaclib = 257, - k_Mn52_to_He4_V48_reaclib = 258, - k_Mn53_to_n_Mn52_reaclib = 259, - k_Mn53_to_p_Cr52_reaclib = 260, - k_Mn53_to_He4_V49_reaclib = 261, - k_Mn54_to_n_Mn53_reaclib = 262, - k_Mn54_to_p_Cr53_reaclib = 263, - k_Mn54_to_He4_V50_reaclib = 264, - k_Mn55_to_n_Mn54_reaclib = 265, - k_Mn55_to_p_Cr54_reaclib = 266, - k_Mn55_to_He4_V51_reaclib = 267, - k_Fe52_to_p_Mn51_reaclib = 268, - k_Fe52_to_He4_Cr48_reaclib = 269, - k_Fe53_to_n_Fe52_reaclib = 270, - k_Fe53_to_p_Mn52_reaclib = 271, - k_Fe53_to_He4_Cr49_reaclib = 272, - k_Fe54_to_n_Fe53_reaclib = 273, - k_Fe54_to_p_Mn53_reaclib = 274, - k_Fe54_to_He4_Cr50_reaclib = 275, - k_Fe55_to_n_Fe54_reaclib = 276, - k_Fe55_to_p_Mn54_reaclib = 277, - k_Fe55_to_He4_Cr51_reaclib = 278, - k_Fe56_to_n_Fe55_reaclib = 279, - k_Fe56_to_p_Mn55_reaclib = 280, - k_Fe56_to_He4_Cr52_reaclib = 281, - k_Fe57_to_n_Fe56_reaclib = 282, - k_Fe57_to_He4_Cr53_reaclib = 283, - k_Fe58_to_n_Fe57_reaclib = 284, - k_Fe58_to_He4_Cr54_reaclib = 285, - k_Co53_to_p_Fe52_reaclib = 286, - k_Co54_to_n_Co53_reaclib = 287, - k_Co54_to_p_Fe53_reaclib = 288, - k_Co54_to_He4_Mn50_reaclib = 289, - k_Co55_to_n_Co54_reaclib = 290, - k_Co55_to_p_Fe54_reaclib = 291, - k_Co55_to_He4_Mn51_reaclib = 292, - k_Co56_to_n_Co55_reaclib = 293, - k_Co56_to_p_Fe55_reaclib = 294, - k_Co56_to_He4_Mn52_reaclib = 295, - k_Co57_to_n_Co56_reaclib = 296, - k_Co57_to_p_Fe56_reaclib = 297, - k_Co57_to_He4_Mn53_reaclib = 298, - k_Co58_to_n_Co57_reaclib = 299, - k_Co58_to_p_Fe57_reaclib = 300, - k_Co58_to_He4_Mn54_reaclib = 301, - k_Co59_to_n_Co58_reaclib = 302, - k_Co59_to_p_Fe58_reaclib = 303, - k_Co59_to_He4_Mn55_reaclib = 304, - k_Ni56_to_p_Co55_reaclib = 305, - k_Ni56_to_He4_Fe52_reaclib = 306, - k_Ni57_to_n_Ni56_reaclib = 307, - k_Ni57_to_p_Co56_reaclib = 308, - k_Ni57_to_He4_Fe53_reaclib = 309, - k_Ni58_to_n_Ni57_reaclib = 310, - k_Ni58_to_p_Co57_reaclib = 311, - k_Ni58_to_He4_Fe54_reaclib = 312, - k_Ni59_to_n_Ni58_reaclib = 313, - k_Ni59_to_p_Co58_reaclib = 314, - k_Ni59_to_He4_Fe55_reaclib = 315, - k_Ni60_to_n_Ni59_reaclib = 316, - k_Ni60_to_p_Co59_reaclib = 317, - k_Ni60_to_He4_Fe56_reaclib = 318, - k_Ni61_to_n_Ni60_reaclib = 319, - k_Ni61_to_He4_Fe57_reaclib = 320, - k_Ni62_to_n_Ni61_reaclib = 321, - k_Ni62_to_He4_Fe58_reaclib = 322, - k_Ni63_to_n_Ni62_reaclib = 323, - k_Ni64_to_n_Ni63_reaclib = 324, - k_Cu57_to_p_Ni56_reaclib = 325, - k_Cu57_to_He4_Co53_reaclib = 326, - k_Cu58_to_n_Cu57_reaclib = 327, - k_Cu58_to_p_Ni57_reaclib = 328, - k_Cu58_to_He4_Co54_reaclib = 329, - k_Cu59_to_n_Cu58_reaclib = 330, - k_Cu59_to_p_Ni58_reaclib = 331, - k_Cu59_to_He4_Co55_reaclib = 332, - k_Cu60_to_n_Cu59_reaclib = 333, - k_Cu60_to_p_Ni59_reaclib = 334, - k_Cu60_to_He4_Co56_reaclib = 335, - k_Cu61_to_n_Cu60_reaclib = 336, - k_Cu61_to_p_Ni60_reaclib = 337, - k_Cu61_to_He4_Co57_reaclib = 338, - k_Cu62_to_n_Cu61_reaclib = 339, - k_Cu62_to_p_Ni61_reaclib = 340, - k_Cu62_to_He4_Co58_reaclib = 341, - k_Cu63_to_n_Cu62_reaclib = 342, - k_Cu63_to_p_Ni62_reaclib = 343, - k_Cu63_to_He4_Co59_reaclib = 344, - k_Cu64_to_n_Cu63_reaclib = 345, - k_Cu64_to_p_Ni63_reaclib = 346, - k_Cu65_to_n_Cu64_reaclib = 347, - k_Cu65_to_p_Ni64_reaclib = 348, - k_Zn59_to_p_Cu58_reaclib = 349, - k_Zn59_to_p_Ni58_reaclib = 350, - k_Zn60_to_n_Zn59_reaclib = 351, - k_Zn60_to_p_Cu59_reaclib = 352, - k_Zn60_to_He4_Ni56_reaclib = 353, - k_Zn61_to_n_Zn60_reaclib = 354, - k_Zn61_to_p_Cu60_reaclib = 355, - k_Zn61_to_He4_Ni57_reaclib = 356, - k_Zn62_to_n_Zn61_reaclib = 357, - k_Zn62_to_p_Cu61_reaclib = 358, - k_Zn62_to_He4_Ni58_reaclib = 359, - k_Zn63_to_n_Zn62_reaclib = 360, - k_Zn63_to_p_Cu62_reaclib = 361, - k_Zn63_to_He4_Ni59_reaclib = 362, - k_Zn64_to_n_Zn63_reaclib = 363, - k_Zn64_to_p_Cu63_reaclib = 364, - k_Zn64_to_He4_Ni60_reaclib = 365, - k_Zn65_to_n_Zn64_reaclib = 366, - k_Zn65_to_p_Cu64_reaclib = 367, - k_Zn65_to_He4_Ni61_reaclib = 368, - k_Zn66_to_n_Zn65_reaclib = 369, - k_Zn66_to_p_Cu65_reaclib = 370, - k_Zn66_to_He4_Ni62_reaclib = 371, - k_Ga62_to_p_Zn61_reaclib = 372, - k_Ga62_to_He4_Cu58_reaclib = 373, - k_Ga63_to_n_Ga62_reaclib = 374, - k_Ga63_to_p_Zn62_reaclib = 375, - k_Ga63_to_He4_Cu59_reaclib = 376, - k_Ga64_to_n_Ga63_reaclib = 377, - k_Ga64_to_p_Zn63_reaclib = 378, - k_Ga64_to_He4_Cu60_reaclib = 379, - k_Ge63_to_p_Ga62_reaclib = 380, - k_Ge63_to_He4_Zn59_reaclib = 381, - k_Ge64_to_n_Ge63_reaclib = 382, - k_Ge64_to_p_Ga63_reaclib = 383, - k_Ge64_to_He4_Zn60_reaclib = 384, - k_Li6_to_n_p_He4_reaclib = 385, - k_Be9_to_n_He4_He4_reaclib = 386, - k_C12_to_He4_He4_He4_reaclib = 387, - k_n_p_to_d_reaclib = 388, - k_p_p_to_d_reaclib_beta_pos = 389, - k_p_p_to_d_reaclib_electron_capture = 390, - k_p_d_to_He3_reaclib = 391, - k_d_d_to_He4_reaclib = 392, - k_He4_d_to_Li6_reaclib = 393, - k_n_He3_to_He4_reaclib = 394, - k_p_He3_to_He4_reaclib = 395, - k_He4_He3_to_Be7_reaclib = 396, - k_n_Li6_to_Li7_reaclib = 397, - k_p_Li6_to_Be7_reaclib = 398, - k_He4_Li6_to_B10_reaclib = 399, - k_He4_Li7_to_B11_reaclib = 400, - k_p_Be7_to_B8_reaclib = 401, - k_p_Be9_to_B10_reaclib = 402, - k_n_B10_to_B11_reaclib = 403, - k_p_B11_to_C12_reaclib = 404, - k_n_C12_to_C13_reaclib = 405, - k_p_C12_to_N13_reaclib = 406, - k_He4_C12_to_O16_reaclib = 407, - k_n_C13_to_C14_reaclib = 408, - k_p_C13_to_N14_reaclib = 409, - k_p_C14_to_N15_reaclib = 410, - k_He4_C14_to_O18_reaclib = 411, - k_n_N13_to_N14_reaclib = 412, - k_p_N13_to_O14_reaclib = 413, - k_n_N14_to_N15_reaclib = 414, - k_p_N14_to_O15_reaclib = 415, - k_He4_N14_to_F18_reaclib = 416, - k_p_N15_to_O16_reaclib = 417, - k_He4_N15_to_F19_reaclib = 418, - k_n_O14_to_O15_reaclib = 419, - k_He4_O14_to_Ne18_reaclib = 420, - k_n_O15_to_O16_reaclib = 421, - k_He4_O15_to_Ne19_reaclib = 422, - k_n_O16_to_O17_reaclib = 423, - k_p_O16_to_F17_reaclib = 424, - k_He4_O16_to_Ne20_reaclib = 425, - k_n_O17_to_O18_reaclib = 426, - k_p_O17_to_F18_reaclib = 427, - k_He4_O17_to_Ne21_reaclib = 428, - k_p_O18_to_F19_reaclib = 429, - k_He4_O18_to_Ne22_reaclib = 430, - k_n_F17_to_F18_reaclib = 431, - k_p_F17_to_Ne18_reaclib = 432, - k_He4_F17_to_Na21_reaclib = 433, - k_n_F18_to_F19_reaclib = 434, - k_p_F18_to_Ne19_reaclib = 435, - k_He4_F18_to_Na22_reaclib = 436, - k_p_F19_to_Ne20_reaclib = 437, - k_He4_F19_to_Na23_reaclib = 438, - k_n_Ne18_to_Ne19_reaclib = 439, - k_n_Ne19_to_Ne20_reaclib = 440, - k_He4_Ne19_to_Mg23_reaclib = 441, - k_n_Ne20_to_Ne21_reaclib = 442, - k_p_Ne20_to_Na21_reaclib = 443, - k_He4_Ne20_to_Mg24_reaclib = 444, - k_n_Ne21_to_Ne22_reaclib = 445, - k_p_Ne21_to_Na22_reaclib = 446, - k_He4_Ne21_to_Mg25_reaclib = 447, - k_p_Ne22_to_Na23_reaclib = 448, - k_He4_Ne22_to_Mg26_reaclib = 449, - k_n_Na21_to_Na22_reaclib = 450, - k_He4_Na21_to_Al25_reaclib = 451, - k_n_Na22_to_Na23_reaclib = 452, - k_p_Na22_to_Mg23_reaclib = 453, - k_He4_Na22_to_Al26_reaclib = 454, - k_p_Na23_to_Mg24_reaclib = 455, - k_He4_Na23_to_Al27_reaclib = 456, - k_n_Mg23_to_Mg24_reaclib = 457, - k_n_Mg24_to_Mg25_reaclib = 458, - k_p_Mg24_to_Al25_reaclib = 459, - k_He4_Mg24_to_Si28_reaclib = 460, - k_n_Mg25_to_Mg26_reaclib = 461, - k_p_Mg25_to_Al26_reaclib = 462, - k_He4_Mg25_to_Si29_reaclib = 463, - k_p_Mg26_to_Al27_reaclib = 464, - k_He4_Mg26_to_Si30_reaclib = 465, - k_n_Al25_to_Al26_reaclib = 466, - k_He4_Al25_to_P29_reaclib = 467, - k_n_Al26_to_Al27_reaclib = 468, - k_He4_Al26_to_P30_reaclib = 469, - k_p_Al27_to_Si28_reaclib = 470, - k_He4_Al27_to_P31_reaclib = 471, - k_n_Si28_to_Si29_reaclib = 472, - k_p_Si28_to_P29_reaclib = 473, - k_He4_Si28_to_S32_reaclib = 474, - k_n_Si29_to_Si30_reaclib = 475, - k_p_Si29_to_P30_reaclib = 476, - k_He4_Si29_to_S33_reaclib = 477, - k_n_Si30_to_Si31_reaclib = 478, - k_p_Si30_to_P31_reaclib = 479, - k_He4_Si30_to_S34_reaclib = 480, - k_n_Si31_to_Si32_reaclib = 481, - k_p_Si31_to_P32_reaclib = 482, - k_He4_Si31_to_S35_reaclib = 483, - k_p_Si32_to_P33_reaclib = 484, - k_He4_Si32_to_S36_reaclib = 485, - k_n_P29_to_P30_reaclib = 486, - k_He4_P29_to_Cl33_reaclib = 487, - k_n_P30_to_P31_reaclib = 488, - k_He4_P30_to_Cl34_reaclib = 489, - k_n_P31_to_P32_reaclib = 490, - k_p_P31_to_S32_reaclib = 491, - k_He4_P31_to_Cl35_reaclib = 492, - k_n_P32_to_P33_reaclib = 493, - k_p_P32_to_S33_reaclib = 494, - k_He4_P32_to_Cl36_reaclib = 495, - k_p_P33_to_S34_reaclib = 496, - k_He4_P33_to_Cl37_reaclib = 497, - k_n_S32_to_S33_reaclib = 498, - k_p_S32_to_Cl33_reaclib = 499, - k_He4_S32_to_Ar36_reaclib = 500, - k_n_S33_to_S34_reaclib = 501, - k_p_S33_to_Cl34_reaclib = 502, - k_He4_S33_to_Ar37_reaclib = 503, - k_n_S34_to_S35_reaclib = 504, - k_p_S34_to_Cl35_reaclib = 505, - k_He4_S34_to_Ar38_reaclib = 506, - k_n_S35_to_S36_reaclib = 507, - k_p_S35_to_Cl36_reaclib = 508, - k_He4_S35_to_Ar39_reaclib = 509, - k_p_S36_to_Cl37_reaclib = 510, - k_He4_S36_to_Ar40_reaclib = 511, - k_n_Cl33_to_Cl34_reaclib = 512, - k_He4_Cl33_to_K37_reaclib = 513, - k_n_Cl34_to_Cl35_reaclib = 514, - k_He4_Cl34_to_K38_reaclib = 515, - k_n_Cl35_to_Cl36_reaclib = 516, - k_p_Cl35_to_Ar36_reaclib = 517, - k_He4_Cl35_to_K39_reaclib = 518, - k_n_Cl36_to_Cl37_reaclib = 519, - k_p_Cl36_to_Ar37_reaclib = 520, - k_He4_Cl36_to_K40_reaclib = 521, - k_p_Cl37_to_Ar38_reaclib = 522, - k_He4_Cl37_to_K41_reaclib = 523, - k_n_Ar36_to_Ar37_reaclib = 524, - k_p_Ar36_to_K37_reaclib = 525, - k_He4_Ar36_to_Ca40_reaclib = 526, - k_n_Ar37_to_Ar38_reaclib = 527, - k_p_Ar37_to_K38_reaclib = 528, - k_He4_Ar37_to_Ca41_reaclib = 529, - k_n_Ar38_to_Ar39_reaclib = 530, - k_p_Ar38_to_K39_reaclib = 531, - k_He4_Ar38_to_Ca42_reaclib = 532, - k_n_Ar39_to_Ar40_reaclib = 533, - k_p_Ar39_to_K40_reaclib = 534, - k_He4_Ar39_to_Ca43_reaclib = 535, - k_p_Ar40_to_K41_reaclib = 536, - k_He4_Ar40_to_Ca44_reaclib = 537, - k_n_K37_to_K38_reaclib = 538, - k_n_K38_to_K39_reaclib = 539, - k_n_K39_to_K40_reaclib = 540, - k_p_K39_to_Ca40_reaclib = 541, - k_He4_K39_to_Sc43_reaclib = 542, - k_n_K40_to_K41_reaclib = 543, - k_p_K40_to_Ca41_reaclib = 544, - k_He4_K40_to_Sc44_reaclib = 545, - k_p_K41_to_Ca42_reaclib = 546, - k_He4_K41_to_Sc45_reaclib = 547, - k_n_Ca40_to_Ca41_reaclib = 548, - k_He4_Ca40_to_Ti44_reaclib = 549, - k_n_Ca41_to_Ca42_reaclib = 550, - k_He4_Ca41_to_Ti45_reaclib = 551, - k_n_Ca42_to_Ca43_reaclib = 552, - k_p_Ca42_to_Sc43_reaclib = 553, - k_He4_Ca42_to_Ti46_reaclib = 554, - k_n_Ca43_to_Ca44_reaclib = 555, - k_p_Ca43_to_Sc44_reaclib = 556, - k_He4_Ca43_to_Ti47_reaclib = 557, - k_n_Ca44_to_Ca45_reaclib = 558, - k_p_Ca44_to_Sc45_reaclib = 559, - k_He4_Ca44_to_Ti48_reaclib = 560, - k_n_Ca45_to_Ca46_reaclib = 561, - k_p_Ca45_to_Sc46_reaclib = 562, - k_He4_Ca45_to_Ti49_reaclib = 563, - k_n_Ca46_to_Ca47_reaclib = 564, - k_p_Ca46_to_Sc47_reaclib = 565, - k_He4_Ca46_to_Ti50_reaclib = 566, - k_n_Ca47_to_Ca48_reaclib = 567, - k_p_Ca47_to_Sc48_reaclib = 568, - k_He4_Ca47_to_Ti51_reaclib = 569, - k_p_Ca48_to_Sc49_reaclib = 570, - k_n_Sc43_to_Sc44_reaclib = 571, - k_p_Sc43_to_Ti44_reaclib = 572, - k_He4_Sc43_to_V47_reaclib = 573, - k_n_Sc44_to_Sc45_reaclib = 574, - k_p_Sc44_to_Ti45_reaclib = 575, - k_He4_Sc44_to_V48_reaclib = 576, - k_n_Sc45_to_Sc46_reaclib = 577, - k_p_Sc45_to_Ti46_reaclib = 578, - k_He4_Sc45_to_V49_reaclib = 579, - k_n_Sc46_to_Sc47_reaclib = 580, - k_p_Sc46_to_Ti47_reaclib = 581, - k_He4_Sc46_to_V50_reaclib = 582, - k_n_Sc47_to_Sc48_reaclib = 583, - k_p_Sc47_to_Ti48_reaclib = 584, - k_He4_Sc47_to_V51_reaclib = 585, - k_n_Sc48_to_Sc49_reaclib = 586, - k_p_Sc48_to_Ti49_reaclib = 587, - k_He4_Sc48_to_V52_reaclib = 588, - k_p_Sc49_to_Ti50_reaclib = 589, - k_n_Ti44_to_Ti45_reaclib = 590, - k_He4_Ti44_to_Cr48_reaclib = 591, - k_n_Ti45_to_Ti46_reaclib = 592, - k_p_Ti45_to_V46_reaclib = 593, - k_He4_Ti45_to_Cr49_reaclib = 594, - k_n_Ti46_to_Ti47_reaclib = 595, - k_p_Ti46_to_V47_reaclib = 596, - k_He4_Ti46_to_Cr50_reaclib = 597, - k_n_Ti47_to_Ti48_reaclib = 598, - k_p_Ti47_to_V48_reaclib = 599, - k_He4_Ti47_to_Cr51_reaclib = 600, - k_n_Ti48_to_Ti49_reaclib = 601, - k_p_Ti48_to_V49_reaclib = 602, - k_He4_Ti48_to_Cr52_reaclib = 603, - k_n_Ti49_to_Ti50_reaclib = 604, - k_p_Ti49_to_V50_reaclib = 605, - k_He4_Ti49_to_Cr53_reaclib = 606, - k_n_Ti50_to_Ti51_reaclib = 607, - k_p_Ti50_to_V51_reaclib = 608, - k_He4_Ti50_to_Cr54_reaclib = 609, - k_p_Ti51_to_V52_reaclib = 610, - k_n_V46_to_V47_reaclib = 611, - k_He4_V46_to_Mn50_reaclib = 612, - k_n_V47_to_V48_reaclib = 613, - k_p_V47_to_Cr48_reaclib = 614, - k_He4_V47_to_Mn51_reaclib = 615, - k_n_V48_to_V49_reaclib = 616, - k_p_V48_to_Cr49_reaclib = 617, - k_He4_V48_to_Mn52_reaclib = 618, - k_n_V49_to_V50_reaclib = 619, - k_p_V49_to_Cr50_reaclib = 620, - k_He4_V49_to_Mn53_reaclib = 621, - k_n_V50_to_V51_reaclib = 622, - k_p_V50_to_Cr51_reaclib = 623, - k_He4_V50_to_Mn54_reaclib = 624, - k_n_V51_to_V52_reaclib = 625, - k_p_V51_to_Cr52_reaclib = 626, - k_He4_V51_to_Mn55_reaclib = 627, - k_p_V52_to_Cr53_reaclib = 628, - k_n_Cr48_to_Cr49_reaclib = 629, - k_He4_Cr48_to_Fe52_reaclib = 630, - k_n_Cr49_to_Cr50_reaclib = 631, - k_p_Cr49_to_Mn50_reaclib = 632, - k_He4_Cr49_to_Fe53_reaclib = 633, - k_n_Cr50_to_Cr51_reaclib = 634, - k_p_Cr50_to_Mn51_reaclib = 635, - k_He4_Cr50_to_Fe54_reaclib = 636, - k_n_Cr51_to_Cr52_reaclib = 637, - k_p_Cr51_to_Mn52_reaclib = 638, - k_He4_Cr51_to_Fe55_reaclib = 639, - k_n_Cr52_to_Cr53_reaclib = 640, - k_p_Cr52_to_Mn53_reaclib = 641, - k_He4_Cr52_to_Fe56_reaclib = 642, - k_n_Cr53_to_Cr54_reaclib = 643, - k_p_Cr53_to_Mn54_reaclib = 644, - k_He4_Cr53_to_Fe57_reaclib = 645, - k_p_Cr54_to_Mn55_reaclib = 646, - k_He4_Cr54_to_Fe58_reaclib = 647, - k_n_Mn50_to_Mn51_reaclib = 648, - k_He4_Mn50_to_Co54_reaclib = 649, - k_n_Mn51_to_Mn52_reaclib = 650, - k_p_Mn51_to_Fe52_reaclib = 651, - k_He4_Mn51_to_Co55_reaclib = 652, - k_n_Mn52_to_Mn53_reaclib = 653, - k_p_Mn52_to_Fe53_reaclib = 654, - k_He4_Mn52_to_Co56_reaclib = 655, - k_n_Mn53_to_Mn54_reaclib = 656, - k_p_Mn53_to_Fe54_reaclib = 657, - k_He4_Mn53_to_Co57_reaclib = 658, - k_n_Mn54_to_Mn55_reaclib = 659, - k_p_Mn54_to_Fe55_reaclib = 660, - k_He4_Mn54_to_Co58_reaclib = 661, - k_p_Mn55_to_Fe56_reaclib = 662, - k_He4_Mn55_to_Co59_reaclib = 663, - k_n_Fe52_to_Fe53_reaclib = 664, - k_p_Fe52_to_Co53_reaclib = 665, - k_He4_Fe52_to_Ni56_reaclib = 666, - k_n_Fe53_to_Fe54_reaclib = 667, - k_p_Fe53_to_Co54_reaclib = 668, - k_He4_Fe53_to_Ni57_reaclib = 669, - k_n_Fe54_to_Fe55_reaclib = 670, - k_p_Fe54_to_Co55_reaclib = 671, - k_He4_Fe54_to_Ni58_reaclib = 672, - k_n_Fe55_to_Fe56_reaclib = 673, - k_p_Fe55_to_Co56_reaclib = 674, - k_He4_Fe55_to_Ni59_reaclib = 675, - k_n_Fe56_to_Fe57_reaclib = 676, - k_p_Fe56_to_Co57_reaclib = 677, - k_He4_Fe56_to_Ni60_reaclib = 678, - k_n_Fe57_to_Fe58_reaclib = 679, - k_p_Fe57_to_Co58_reaclib = 680, - k_He4_Fe57_to_Ni61_reaclib = 681, - k_p_Fe58_to_Co59_reaclib = 682, - k_He4_Fe58_to_Ni62_reaclib = 683, - k_n_Co53_to_Co54_reaclib = 684, - k_He4_Co53_to_Cu57_reaclib = 685, - k_n_Co54_to_Co55_reaclib = 686, - k_He4_Co54_to_Cu58_reaclib = 687, - k_n_Co55_to_Co56_reaclib = 688, - k_p_Co55_to_Ni56_reaclib = 689, - k_He4_Co55_to_Cu59_reaclib = 690, - k_n_Co56_to_Co57_reaclib = 691, - k_p_Co56_to_Ni57_reaclib = 692, - k_He4_Co56_to_Cu60_reaclib = 693, - k_n_Co57_to_Co58_reaclib = 694, - k_p_Co57_to_Ni58_reaclib = 695, - k_He4_Co57_to_Cu61_reaclib = 696, - k_n_Co58_to_Co59_reaclib = 697, - k_p_Co58_to_Ni59_reaclib = 698, - k_He4_Co58_to_Cu62_reaclib = 699, - k_p_Co59_to_Ni60_reaclib = 700, - k_He4_Co59_to_Cu63_reaclib = 701, - k_n_Ni56_to_Ni57_reaclib = 702, - k_p_Ni56_to_Cu57_reaclib = 703, - k_He4_Ni56_to_Zn60_reaclib = 704, - k_n_Ni57_to_Ni58_reaclib = 705, - k_p_Ni57_to_Cu58_reaclib = 706, - k_He4_Ni57_to_Zn61_reaclib = 707, - k_n_Ni58_to_Ni59_reaclib = 708, - k_p_Ni58_to_Cu59_reaclib = 709, - k_He4_Ni58_to_Zn62_reaclib = 710, - k_n_Ni59_to_Ni60_reaclib = 711, - k_p_Ni59_to_Cu60_reaclib = 712, - k_He4_Ni59_to_Zn63_reaclib = 713, - k_n_Ni60_to_Ni61_reaclib = 714, - k_p_Ni60_to_Cu61_reaclib = 715, - k_He4_Ni60_to_Zn64_reaclib = 716, - k_n_Ni61_to_Ni62_reaclib = 717, - k_p_Ni61_to_Cu62_reaclib = 718, - k_He4_Ni61_to_Zn65_reaclib = 719, - k_n_Ni62_to_Ni63_reaclib = 720, - k_p_Ni62_to_Cu63_reaclib = 721, - k_He4_Ni62_to_Zn66_reaclib = 722, - k_n_Ni63_to_Ni64_reaclib = 723, - k_p_Ni63_to_Cu64_reaclib = 724, - k_p_Ni64_to_Cu65_reaclib = 725, - k_n_Cu57_to_Cu58_reaclib = 726, - k_n_Cu58_to_Cu59_reaclib = 727, - k_p_Cu58_to_Zn59_reaclib = 728, - k_He4_Cu58_to_Ga62_reaclib = 729, - k_n_Cu59_to_Cu60_reaclib = 730, - k_p_Cu59_to_Zn60_reaclib = 731, - k_He4_Cu59_to_Ga63_reaclib = 732, - k_n_Cu60_to_Cu61_reaclib = 733, - k_p_Cu60_to_Zn61_reaclib = 734, - k_He4_Cu60_to_Ga64_reaclib = 735, - k_n_Cu61_to_Cu62_reaclib = 736, - k_p_Cu61_to_Zn62_reaclib = 737, - k_n_Cu62_to_Cu63_reaclib = 738, - k_p_Cu62_to_Zn63_reaclib = 739, - k_n_Cu63_to_Cu64_reaclib = 740, - k_p_Cu63_to_Zn64_reaclib = 741, - k_n_Cu64_to_Cu65_reaclib = 742, - k_p_Cu64_to_Zn65_reaclib = 743, - k_p_Cu65_to_Zn66_reaclib = 744, - k_n_Zn59_to_Zn60_reaclib = 745, - k_He4_Zn59_to_Ge63_reaclib = 746, - k_n_Zn60_to_Zn61_reaclib = 747, - k_He4_Zn60_to_Ge64_reaclib = 748, - k_n_Zn61_to_Zn62_reaclib = 749, - k_p_Zn61_to_Ga62_reaclib = 750, - k_n_Zn62_to_Zn63_reaclib = 751, - k_p_Zn62_to_Ga63_reaclib = 752, - k_n_Zn63_to_Zn64_reaclib = 753, - k_p_Zn63_to_Ga64_reaclib = 754, - k_n_Zn64_to_Zn65_reaclib = 755, - k_n_Zn65_to_Zn66_reaclib = 756, - k_n_Ga62_to_Ga63_reaclib = 757, - k_p_Ga62_to_Ge63_reaclib = 758, - k_n_Ga63_to_Ga64_reaclib = 759, - k_p_Ga63_to_Ge64_reaclib = 760, - k_n_Ge63_to_Ge64_reaclib = 761, - k_d_d_to_n_He3_reaclib = 762, - k_n_He3_to_d_d_reaclib = 763, - k_d_He3_to_p_He4_reaclib = 764, - k_He4_He3_to_p_Li6_reaclib = 765, - k_p_He4_to_d_He3_reaclib = 766, - k_He4_He4_to_n_Be7_reaclib = 767, - k_He4_He4_to_p_Li7_reaclib = 768, - k_p_Li6_to_He4_He3_reaclib = 769, - k_d_Li6_to_n_Be7_reaclib = 770, - k_d_Li6_to_p_Li7_reaclib = 771, - k_He4_Li6_to_p_Be9_reaclib = 772, - k_p_Li7_to_n_Be7_reaclib = 773, - k_p_Li7_to_d_Li6_reaclib = 774, - k_p_Li7_to_He4_He4_reaclib = 775, - k_He4_Li7_to_n_B10_reaclib = 776, - k_n_Be7_to_p_Li7_reaclib = 777, - k_n_Be7_to_d_Li6_reaclib = 778, - k_n_Be7_to_He4_He4_reaclib = 779, - k_He4_Be7_to_p_B10_reaclib = 780, - k_p_Be9_to_He4_Li6_reaclib = 781, - k_He4_Be9_to_n_C12_reaclib = 782, - k_n_B10_to_He4_Li7_reaclib = 783, - k_p_B10_to_He4_Be7_reaclib = 784, - k_He4_B10_to_n_N13_reaclib = 785, - k_He4_B10_to_p_C13_reaclib = 786, - k_He4_B11_to_n_N14_reaclib = 787, - k_He4_B11_to_p_C14_reaclib = 788, - k_n_C12_to_He4_Be9_reaclib = 789, - k_He4_C12_to_n_O15_reaclib = 790, - k_He4_C12_to_p_N15_reaclib = 791, - k_C12_C12_to_n_Mg23_reaclib = 792, - k_C12_C12_to_p_Na23_reaclib = 793, - k_C12_C12_to_He4_Ne20_reaclib = 794, - k_p_C13_to_n_N13_reaclib = 795, - k_p_C13_to_He4_B10_reaclib = 796, - k_d_C13_to_n_N14_reaclib = 797, - k_He4_C13_to_n_O16_reaclib = 798, - k_p_C14_to_n_N14_reaclib = 799, - k_p_C14_to_He4_B11_reaclib = 800, - k_d_C14_to_n_N15_reaclib = 801, - k_He4_C14_to_n_O17_reaclib = 802, - k_n_N13_to_p_C13_reaclib = 803, - k_n_N13_to_He4_B10_reaclib = 804, - k_He4_N13_to_p_O16_reaclib = 805, - k_n_N14_to_p_C14_reaclib = 806, - k_n_N14_to_d_C13_reaclib = 807, - k_n_N14_to_He4_B11_reaclib = 808, - k_p_N14_to_n_O14_reaclib = 809, - k_He4_N14_to_n_F17_reaclib = 810, - k_He4_N14_to_p_O17_reaclib = 811, - k_n_N15_to_d_C14_reaclib = 812, - k_p_N15_to_n_O15_reaclib = 813, - k_p_N15_to_He4_C12_reaclib = 814, - k_He4_N15_to_n_F18_reaclib = 815, - k_He4_N15_to_p_O18_reaclib = 816, - k_n_O14_to_p_N14_reaclib = 817, - k_He4_O14_to_p_F17_reaclib = 818, - k_n_O15_to_p_N15_reaclib = 819, - k_n_O15_to_He4_C12_reaclib = 820, - k_He4_O15_to_n_Ne18_reaclib = 821, - k_He4_O15_to_p_F18_reaclib = 822, - k_n_O16_to_He4_C13_reaclib = 823, - k_p_O16_to_He4_N13_reaclib = 824, - k_He4_O16_to_n_Ne19_reaclib = 825, - k_He4_O16_to_p_F19_reaclib = 826, - k_C12_O16_to_p_Al27_reaclib = 827, - k_C12_O16_to_He4_Mg24_reaclib = 828, - k_O16_O16_to_p_P31_reaclib = 829, - k_O16_O16_to_He4_Si28_reaclib = 830, - k_n_O17_to_He4_C14_reaclib = 831, - k_p_O17_to_n_F17_reaclib = 832, - k_p_O17_to_He4_N14_reaclib = 833, - k_He4_O17_to_n_Ne20_reaclib = 834, - k_p_O18_to_n_F18_reaclib = 835, - k_p_O18_to_He4_N15_reaclib = 836, - k_He4_O18_to_n_Ne21_reaclib = 837, - k_n_F17_to_p_O17_reaclib = 838, - k_n_F17_to_He4_N14_reaclib = 839, - k_p_F17_to_He4_O14_reaclib = 840, - k_He4_F17_to_p_Ne20_reaclib = 841, - k_n_F18_to_p_O18_reaclib = 842, - k_n_F18_to_He4_N15_reaclib = 843, - k_p_F18_to_n_Ne18_reaclib = 844, - k_p_F18_to_He4_O15_reaclib = 845, - k_He4_F18_to_n_Na21_reaclib = 846, - k_He4_F18_to_p_Ne21_reaclib = 847, - k_p_F19_to_n_Ne19_reaclib = 848, - k_p_F19_to_He4_O16_reaclib = 849, - k_He4_F19_to_n_Na22_reaclib = 850, - k_He4_F19_to_p_Ne22_reaclib = 851, - k_n_Ne18_to_p_F18_reaclib = 852, - k_n_Ne18_to_He4_O15_reaclib = 853, - k_He4_Ne18_to_p_Na21_reaclib = 854, - k_n_Ne19_to_p_F19_reaclib = 855, - k_n_Ne19_to_He4_O16_reaclib = 856, - k_He4_Ne19_to_p_Na22_reaclib = 857, - k_n_Ne20_to_He4_O17_reaclib = 858, - k_p_Ne20_to_He4_F17_reaclib = 859, - k_He4_Ne20_to_n_Mg23_reaclib = 860, - k_He4_Ne20_to_p_Na23_reaclib = 861, - k_He4_Ne20_to_C12_C12_reaclib = 862, - k_C12_Ne20_to_p_P31_reaclib = 863, - k_C12_Ne20_to_He4_Si28_reaclib = 864, - k_n_Ne21_to_He4_O18_reaclib = 865, - k_p_Ne21_to_n_Na21_reaclib = 866, - k_p_Ne21_to_He4_F18_reaclib = 867, - k_He4_Ne21_to_n_Mg24_reaclib = 868, - k_p_Ne22_to_n_Na22_reaclib = 869, - k_p_Ne22_to_He4_F19_reaclib = 870, - k_He4_Ne22_to_n_Mg25_reaclib = 871, - k_n_Na21_to_p_Ne21_reaclib = 872, - k_n_Na21_to_He4_F18_reaclib = 873, - k_p_Na21_to_He4_Ne18_reaclib = 874, - k_He4_Na21_to_p_Mg24_reaclib = 875, - k_n_Na22_to_p_Ne22_reaclib = 876, - k_n_Na22_to_He4_F19_reaclib = 877, - k_p_Na22_to_He4_Ne19_reaclib = 878, - k_He4_Na22_to_n_Al25_reaclib = 879, - k_He4_Na22_to_p_Mg25_reaclib = 880, - k_p_Na23_to_n_Mg23_reaclib = 881, - k_p_Na23_to_He4_Ne20_reaclib = 882, - k_p_Na23_to_C12_C12_reaclib = 883, - k_He4_Na23_to_n_Al26_reaclib = 884, - k_He4_Na23_to_p_Mg26_reaclib = 885, - k_n_Mg23_to_p_Na23_reaclib = 886, - k_n_Mg23_to_He4_Ne20_reaclib = 887, - k_n_Mg23_to_C12_C12_reaclib = 888, - k_He4_Mg23_to_p_Al26_reaclib = 889, - k_n_Mg24_to_He4_Ne21_reaclib = 890, - k_p_Mg24_to_He4_Na21_reaclib = 891, - k_He4_Mg24_to_p_Al27_reaclib = 892, - k_He4_Mg24_to_C12_O16_reaclib = 893, - k_n_Mg25_to_He4_Ne22_reaclib = 894, - k_p_Mg25_to_n_Al25_reaclib = 895, - k_p_Mg25_to_He4_Na22_reaclib = 896, - k_He4_Mg25_to_n_Si28_reaclib = 897, - k_p_Mg26_to_n_Al26_reaclib = 898, - k_p_Mg26_to_He4_Na23_reaclib = 899, - k_He4_Mg26_to_n_Si29_reaclib = 900, - k_n_Al25_to_p_Mg25_reaclib = 901, - k_n_Al25_to_He4_Na22_reaclib = 902, - k_He4_Al25_to_p_Si28_reaclib = 903, - k_n_Al26_to_p_Mg26_reaclib = 904, - k_n_Al26_to_He4_Na23_reaclib = 905, - k_p_Al26_to_He4_Mg23_reaclib = 906, - k_He4_Al26_to_n_P29_reaclib = 907, - k_He4_Al26_to_p_Si29_reaclib = 908, - k_p_Al27_to_He4_Mg24_reaclib = 909, - k_p_Al27_to_C12_O16_reaclib = 910, - k_He4_Al27_to_n_P30_reaclib = 911, - k_He4_Al27_to_p_Si30_reaclib = 912, - k_n_Si28_to_He4_Mg25_reaclib = 913, - k_p_Si28_to_He4_Al25_reaclib = 914, - k_He4_Si28_to_p_P31_reaclib = 915, - k_He4_Si28_to_C12_Ne20_reaclib = 916, - k_He4_Si28_to_O16_O16_reaclib = 917, - k_n_Si29_to_He4_Mg26_reaclib = 918, - k_p_Si29_to_n_P29_reaclib = 919, - k_p_Si29_to_He4_Al26_reaclib = 920, - k_He4_Si29_to_n_S32_reaclib = 921, - k_He4_Si29_to_p_P32_reaclib = 922, - k_p_Si30_to_n_P30_reaclib = 923, - k_p_Si30_to_He4_Al27_reaclib = 924, - k_He4_Si30_to_n_S33_reaclib = 925, - k_He4_Si30_to_p_P33_reaclib = 926, - k_p_Si31_to_n_P31_reaclib = 927, - k_He4_Si31_to_n_S34_reaclib = 928, - k_p_Si32_to_n_P32_reaclib = 929, - k_He4_Si32_to_n_S35_reaclib = 930, - k_n_P29_to_p_Si29_reaclib = 931, - k_n_P29_to_He4_Al26_reaclib = 932, - k_He4_P29_to_p_S32_reaclib = 933, - k_n_P30_to_p_Si30_reaclib = 934, - k_n_P30_to_He4_Al27_reaclib = 935, - k_He4_P30_to_n_Cl33_reaclib = 936, - k_He4_P30_to_p_S33_reaclib = 937, - k_n_P31_to_p_Si31_reaclib = 938, - k_p_P31_to_He4_Si28_reaclib = 939, - k_p_P31_to_C12_Ne20_reaclib = 940, - k_p_P31_to_O16_O16_reaclib = 941, - k_He4_P31_to_n_Cl34_reaclib = 942, - k_He4_P31_to_p_S34_reaclib = 943, - k_n_P32_to_p_Si32_reaclib = 944, - k_p_P32_to_n_S32_reaclib = 945, - k_p_P32_to_He4_Si29_reaclib = 946, - k_He4_P32_to_n_Cl35_reaclib = 947, - k_He4_P32_to_p_S35_reaclib = 948, - k_p_P33_to_n_S33_reaclib = 949, - k_p_P33_to_He4_Si30_reaclib = 950, - k_He4_P33_to_n_Cl36_reaclib = 951, - k_He4_P33_to_p_S36_reaclib = 952, - k_n_S32_to_p_P32_reaclib = 953, - k_n_S32_to_He4_Si29_reaclib = 954, - k_p_S32_to_He4_P29_reaclib = 955, - k_He4_S32_to_p_Cl35_reaclib = 956, - k_n_S33_to_p_P33_reaclib = 957, - k_n_S33_to_He4_Si30_reaclib = 958, - k_p_S33_to_n_Cl33_reaclib = 959, - k_p_S33_to_He4_P30_reaclib = 960, - k_He4_S33_to_n_Ar36_reaclib = 961, - k_He4_S33_to_p_Cl36_reaclib = 962, - k_n_S34_to_He4_Si31_reaclib = 963, - k_p_S34_to_n_Cl34_reaclib = 964, - k_p_S34_to_He4_P31_reaclib = 965, - k_He4_S34_to_n_Ar37_reaclib = 966, - k_He4_S34_to_p_Cl37_reaclib = 967, - k_n_S35_to_He4_Si32_reaclib = 968, - k_p_S35_to_n_Cl35_reaclib = 969, - k_p_S35_to_He4_P32_reaclib = 970, - k_He4_S35_to_n_Ar38_reaclib = 971, - k_p_S36_to_n_Cl36_reaclib = 972, - k_p_S36_to_He4_P33_reaclib = 973, - k_He4_S36_to_n_Ar39_reaclib = 974, - k_n_Cl33_to_p_S33_reaclib = 975, - k_n_Cl33_to_He4_P30_reaclib = 976, - k_He4_Cl33_to_p_Ar36_reaclib = 977, - k_n_Cl34_to_p_S34_reaclib = 978, - k_n_Cl34_to_He4_P31_reaclib = 979, - k_He4_Cl34_to_n_K37_reaclib = 980, - k_He4_Cl34_to_p_Ar37_reaclib = 981, - k_n_Cl35_to_p_S35_reaclib = 982, - k_n_Cl35_to_He4_P32_reaclib = 983, - k_p_Cl35_to_He4_S32_reaclib = 984, - k_He4_Cl35_to_n_K38_reaclib = 985, - k_He4_Cl35_to_p_Ar38_reaclib = 986, - k_n_Cl36_to_p_S36_reaclib = 987, - k_n_Cl36_to_He4_P33_reaclib = 988, - k_p_Cl36_to_n_Ar36_reaclib = 989, - k_p_Cl36_to_He4_S33_reaclib = 990, - k_He4_Cl36_to_n_K39_reaclib = 991, - k_He4_Cl36_to_p_Ar39_reaclib = 992, - k_p_Cl37_to_n_Ar37_reaclib = 993, - k_p_Cl37_to_He4_S34_reaclib = 994, - k_He4_Cl37_to_n_K40_reaclib = 995, - k_He4_Cl37_to_p_Ar40_reaclib = 996, - k_n_Ar36_to_p_Cl36_reaclib = 997, - k_n_Ar36_to_He4_S33_reaclib = 998, - k_p_Ar36_to_He4_Cl33_reaclib = 999, - k_He4_Ar36_to_p_K39_reaclib = 1000, - k_n_Ar37_to_p_Cl37_reaclib = 1001, - k_n_Ar37_to_He4_S34_reaclib = 1002, - k_p_Ar37_to_n_K37_reaclib = 1003, - k_p_Ar37_to_He4_Cl34_reaclib = 1004, - k_He4_Ar37_to_n_Ca40_reaclib = 1005, - k_He4_Ar37_to_p_K40_reaclib = 1006, - k_n_Ar38_to_He4_S35_reaclib = 1007, - k_p_Ar38_to_n_K38_reaclib = 1008, - k_p_Ar38_to_He4_Cl35_reaclib = 1009, - k_He4_Ar38_to_n_Ca41_reaclib = 1010, - k_He4_Ar38_to_p_K41_reaclib = 1011, - k_n_Ar39_to_He4_S36_reaclib = 1012, - k_p_Ar39_to_n_K39_reaclib = 1013, - k_p_Ar39_to_He4_Cl36_reaclib = 1014, - k_He4_Ar39_to_n_Ca42_reaclib = 1015, - k_p_Ar40_to_n_K40_reaclib = 1016, - k_p_Ar40_to_He4_Cl37_reaclib = 1017, - k_He4_Ar40_to_n_Ca43_reaclib = 1018, - k_n_K37_to_p_Ar37_reaclib = 1019, - k_n_K37_to_He4_Cl34_reaclib = 1020, - k_He4_K37_to_p_Ca40_reaclib = 1021, - k_n_K38_to_p_Ar38_reaclib = 1022, - k_n_K38_to_He4_Cl35_reaclib = 1023, - k_He4_K38_to_p_Ca41_reaclib = 1024, - k_n_K39_to_p_Ar39_reaclib = 1025, - k_n_K39_to_He4_Cl36_reaclib = 1026, - k_p_K39_to_He4_Ar36_reaclib = 1027, - k_He4_K39_to_p_Ca42_reaclib = 1028, - k_n_K40_to_p_Ar40_reaclib = 1029, - k_n_K40_to_He4_Cl37_reaclib = 1030, - k_p_K40_to_n_Ca40_reaclib = 1031, - k_p_K40_to_He4_Ar37_reaclib = 1032, - k_He4_K40_to_n_Sc43_reaclib = 1033, - k_He4_K40_to_p_Ca43_reaclib = 1034, - k_p_K41_to_n_Ca41_reaclib = 1035, - k_p_K41_to_He4_Ar38_reaclib = 1036, - k_He4_K41_to_n_Sc44_reaclib = 1037, - k_He4_K41_to_p_Ca44_reaclib = 1038, - k_n_Ca40_to_p_K40_reaclib = 1039, - k_n_Ca40_to_He4_Ar37_reaclib = 1040, - k_p_Ca40_to_He4_K37_reaclib = 1041, - k_He4_Ca40_to_p_Sc43_reaclib = 1042, - k_n_Ca41_to_p_K41_reaclib = 1043, - k_n_Ca41_to_He4_Ar38_reaclib = 1044, - k_p_Ca41_to_He4_K38_reaclib = 1045, - k_He4_Ca41_to_n_Ti44_reaclib = 1046, - k_He4_Ca41_to_p_Sc44_reaclib = 1047, - k_n_Ca42_to_He4_Ar39_reaclib = 1048, - k_p_Ca42_to_He4_K39_reaclib = 1049, - k_He4_Ca42_to_n_Ti45_reaclib = 1050, - k_He4_Ca42_to_p_Sc45_reaclib = 1051, - k_n_Ca43_to_He4_Ar40_reaclib = 1052, - k_p_Ca43_to_n_Sc43_reaclib = 1053, - k_p_Ca43_to_He4_K40_reaclib = 1054, - k_He4_Ca43_to_n_Ti46_reaclib = 1055, - k_He4_Ca43_to_p_Sc46_reaclib = 1056, - k_p_Ca44_to_n_Sc44_reaclib = 1057, - k_p_Ca44_to_He4_K41_reaclib = 1058, - k_He4_Ca44_to_n_Ti47_reaclib = 1059, - k_He4_Ca44_to_p_Sc47_reaclib = 1060, - k_p_Ca45_to_n_Sc45_reaclib = 1061, - k_He4_Ca45_to_n_Ti48_reaclib = 1062, - k_He4_Ca45_to_p_Sc48_reaclib = 1063, - k_p_Ca46_to_n_Sc46_reaclib = 1064, - k_He4_Ca46_to_n_Ti49_reaclib = 1065, - k_He4_Ca46_to_p_Sc49_reaclib = 1066, - k_p_Ca47_to_n_Sc47_reaclib = 1067, - k_He4_Ca47_to_n_Ti50_reaclib = 1068, - k_p_Ca48_to_n_Sc48_reaclib = 1069, - k_He4_Ca48_to_n_Ti51_reaclib = 1070, - k_n_Sc43_to_p_Ca43_reaclib = 1071, - k_n_Sc43_to_He4_K40_reaclib = 1072, - k_p_Sc43_to_He4_Ca40_reaclib = 1073, - k_He4_Sc43_to_n_V46_reaclib = 1074, - k_He4_Sc43_to_p_Ti46_reaclib = 1075, - k_n_Sc44_to_p_Ca44_reaclib = 1076, - k_n_Sc44_to_He4_K41_reaclib = 1077, - k_p_Sc44_to_n_Ti44_reaclib = 1078, - k_p_Sc44_to_He4_Ca41_reaclib = 1079, - k_He4_Sc44_to_n_V47_reaclib = 1080, - k_He4_Sc44_to_p_Ti47_reaclib = 1081, - k_n_Sc45_to_p_Ca45_reaclib = 1082, - k_p_Sc45_to_n_Ti45_reaclib = 1083, - k_p_Sc45_to_He4_Ca42_reaclib = 1084, - k_He4_Sc45_to_n_V48_reaclib = 1085, - k_He4_Sc45_to_p_Ti48_reaclib = 1086, - k_n_Sc46_to_p_Ca46_reaclib = 1087, - k_p_Sc46_to_n_Ti46_reaclib = 1088, - k_p_Sc46_to_He4_Ca43_reaclib = 1089, - k_He4_Sc46_to_n_V49_reaclib = 1090, - k_He4_Sc46_to_p_Ti49_reaclib = 1091, - k_n_Sc47_to_p_Ca47_reaclib = 1092, - k_p_Sc47_to_n_Ti47_reaclib = 1093, - k_p_Sc47_to_He4_Ca44_reaclib = 1094, - k_He4_Sc47_to_n_V50_reaclib = 1095, - k_He4_Sc47_to_p_Ti50_reaclib = 1096, - k_n_Sc48_to_p_Ca48_reaclib = 1097, - k_p_Sc48_to_n_Ti48_reaclib = 1098, - k_p_Sc48_to_He4_Ca45_reaclib = 1099, - k_He4_Sc48_to_n_V51_reaclib = 1100, - k_He4_Sc48_to_p_Ti51_reaclib = 1101, - k_p_Sc49_to_n_Ti49_reaclib = 1102, - k_p_Sc49_to_He4_Ca46_reaclib = 1103, - k_He4_Sc49_to_n_V52_reaclib = 1104, - k_n_Ti44_to_p_Sc44_reaclib = 1105, - k_n_Ti44_to_He4_Ca41_reaclib = 1106, - k_He4_Ti44_to_p_V47_reaclib = 1107, - k_n_Ti45_to_p_Sc45_reaclib = 1108, - k_n_Ti45_to_He4_Ca42_reaclib = 1109, - k_He4_Ti45_to_n_Cr48_reaclib = 1110, - k_He4_Ti45_to_p_V48_reaclib = 1111, - k_n_Ti46_to_p_Sc46_reaclib = 1112, - k_n_Ti46_to_He4_Ca43_reaclib = 1113, - k_p_Ti46_to_n_V46_reaclib = 1114, - k_p_Ti46_to_He4_Sc43_reaclib = 1115, - k_He4_Ti46_to_n_Cr49_reaclib = 1116, - k_He4_Ti46_to_p_V49_reaclib = 1117, - k_n_Ti47_to_p_Sc47_reaclib = 1118, - k_n_Ti47_to_He4_Ca44_reaclib = 1119, - k_p_Ti47_to_n_V47_reaclib = 1120, - k_p_Ti47_to_He4_Sc44_reaclib = 1121, - k_He4_Ti47_to_n_Cr50_reaclib = 1122, - k_He4_Ti47_to_p_V50_reaclib = 1123, - k_n_Ti48_to_p_Sc48_reaclib = 1124, - k_n_Ti48_to_He4_Ca45_reaclib = 1125, - k_p_Ti48_to_n_V48_reaclib = 1126, - k_p_Ti48_to_He4_Sc45_reaclib = 1127, - k_He4_Ti48_to_n_Cr51_reaclib = 1128, - k_He4_Ti48_to_p_V51_reaclib = 1129, - k_n_Ti49_to_p_Sc49_reaclib = 1130, - k_n_Ti49_to_He4_Ca46_reaclib = 1131, - k_p_Ti49_to_n_V49_reaclib = 1132, - k_p_Ti49_to_He4_Sc46_reaclib = 1133, - k_He4_Ti49_to_n_Cr52_reaclib = 1134, - k_He4_Ti49_to_p_V52_reaclib = 1135, - k_n_Ti50_to_He4_Ca47_reaclib = 1136, - k_p_Ti50_to_n_V50_reaclib = 1137, - k_p_Ti50_to_He4_Sc47_reaclib = 1138, - k_He4_Ti50_to_n_Cr53_reaclib = 1139, - k_n_Ti51_to_He4_Ca48_reaclib = 1140, - k_p_Ti51_to_n_V51_reaclib = 1141, - k_p_Ti51_to_He4_Sc48_reaclib = 1142, - k_He4_Ti51_to_n_Cr54_reaclib = 1143, - k_n_V46_to_p_Ti46_reaclib = 1144, - k_n_V46_to_He4_Sc43_reaclib = 1145, - k_He4_V46_to_p_Cr49_reaclib = 1146, - k_n_V47_to_p_Ti47_reaclib = 1147, - k_n_V47_to_He4_Sc44_reaclib = 1148, - k_p_V47_to_He4_Ti44_reaclib = 1149, - k_He4_V47_to_n_Mn50_reaclib = 1150, - k_He4_V47_to_p_Cr50_reaclib = 1151, - k_n_V48_to_p_Ti48_reaclib = 1152, - k_n_V48_to_He4_Sc45_reaclib = 1153, - k_p_V48_to_n_Cr48_reaclib = 1154, - k_p_V48_to_He4_Ti45_reaclib = 1155, - k_He4_V48_to_n_Mn51_reaclib = 1156, - k_He4_V48_to_p_Cr51_reaclib = 1157, - k_n_V49_to_p_Ti49_reaclib = 1158, - k_n_V49_to_He4_Sc46_reaclib = 1159, - k_p_V49_to_n_Cr49_reaclib = 1160, - k_p_V49_to_He4_Ti46_reaclib = 1161, - k_He4_V49_to_n_Mn52_reaclib = 1162, - k_He4_V49_to_p_Cr52_reaclib = 1163, - k_n_V50_to_p_Ti50_reaclib = 1164, - k_n_V50_to_He4_Sc47_reaclib = 1165, - k_p_V50_to_n_Cr50_reaclib = 1166, - k_p_V50_to_He4_Ti47_reaclib = 1167, - k_He4_V50_to_n_Mn53_reaclib = 1168, - k_He4_V50_to_p_Cr53_reaclib = 1169, - k_n_V51_to_p_Ti51_reaclib = 1170, - k_n_V51_to_He4_Sc48_reaclib = 1171, - k_p_V51_to_n_Cr51_reaclib = 1172, - k_p_V51_to_He4_Ti48_reaclib = 1173, - k_He4_V51_to_n_Mn54_reaclib = 1174, - k_He4_V51_to_p_Cr54_reaclib = 1175, - k_n_V52_to_He4_Sc49_reaclib = 1176, - k_p_V52_to_n_Cr52_reaclib = 1177, - k_p_V52_to_He4_Ti49_reaclib = 1178, - k_He4_V52_to_n_Mn55_reaclib = 1179, - k_n_Cr48_to_p_V48_reaclib = 1180, - k_n_Cr48_to_He4_Ti45_reaclib = 1181, - k_He4_Cr48_to_p_Mn51_reaclib = 1182, - k_n_Cr49_to_p_V49_reaclib = 1183, - k_n_Cr49_to_He4_Ti46_reaclib = 1184, - k_p_Cr49_to_He4_V46_reaclib = 1185, - k_He4_Cr49_to_n_Fe52_reaclib = 1186, - k_He4_Cr49_to_p_Mn52_reaclib = 1187, - k_n_Cr50_to_p_V50_reaclib = 1188, - k_n_Cr50_to_He4_Ti47_reaclib = 1189, - k_p_Cr50_to_n_Mn50_reaclib = 1190, - k_p_Cr50_to_He4_V47_reaclib = 1191, - k_He4_Cr50_to_n_Fe53_reaclib = 1192, - k_He4_Cr50_to_p_Mn53_reaclib = 1193, - k_n_Cr51_to_p_V51_reaclib = 1194, - k_n_Cr51_to_He4_Ti48_reaclib = 1195, - k_p_Cr51_to_n_Mn51_reaclib = 1196, - k_p_Cr51_to_He4_V48_reaclib = 1197, - k_He4_Cr51_to_n_Fe54_reaclib = 1198, - k_He4_Cr51_to_p_Mn54_reaclib = 1199, - k_n_Cr52_to_p_V52_reaclib = 1200, - k_n_Cr52_to_He4_Ti49_reaclib = 1201, - k_p_Cr52_to_n_Mn52_reaclib = 1202, - k_p_Cr52_to_He4_V49_reaclib = 1203, - k_He4_Cr52_to_n_Fe55_reaclib = 1204, - k_He4_Cr52_to_p_Mn55_reaclib = 1205, - k_n_Cr53_to_He4_Ti50_reaclib = 1206, - k_p_Cr53_to_n_Mn53_reaclib = 1207, - k_p_Cr53_to_He4_V50_reaclib = 1208, - k_He4_Cr53_to_n_Fe56_reaclib = 1209, - k_n_Cr54_to_He4_Ti51_reaclib = 1210, - k_p_Cr54_to_n_Mn54_reaclib = 1211, - k_p_Cr54_to_He4_V51_reaclib = 1212, - k_He4_Cr54_to_n_Fe57_reaclib = 1213, - k_n_Mn50_to_p_Cr50_reaclib = 1214, - k_n_Mn50_to_He4_V47_reaclib = 1215, - k_He4_Mn50_to_n_Co53_reaclib = 1216, - k_He4_Mn50_to_p_Fe53_reaclib = 1217, - k_n_Mn51_to_p_Cr51_reaclib = 1218, - k_n_Mn51_to_He4_V48_reaclib = 1219, - k_p_Mn51_to_He4_Cr48_reaclib = 1220, - k_He4_Mn51_to_n_Co54_reaclib = 1221, - k_He4_Mn51_to_p_Fe54_reaclib = 1222, - k_n_Mn52_to_p_Cr52_reaclib = 1223, - k_n_Mn52_to_He4_V49_reaclib = 1224, - k_p_Mn52_to_n_Fe52_reaclib = 1225, - k_p_Mn52_to_He4_Cr49_reaclib = 1226, - k_He4_Mn52_to_n_Co55_reaclib = 1227, - k_He4_Mn52_to_p_Fe55_reaclib = 1228, - k_n_Mn53_to_p_Cr53_reaclib = 1229, - k_n_Mn53_to_He4_V50_reaclib = 1230, - k_p_Mn53_to_n_Fe53_reaclib = 1231, - k_p_Mn53_to_He4_Cr50_reaclib = 1232, - k_He4_Mn53_to_n_Co56_reaclib = 1233, - k_He4_Mn53_to_p_Fe56_reaclib = 1234, - k_n_Mn54_to_p_Cr54_reaclib = 1235, - k_n_Mn54_to_He4_V51_reaclib = 1236, - k_p_Mn54_to_n_Fe54_reaclib = 1237, - k_p_Mn54_to_He4_Cr51_reaclib = 1238, - k_He4_Mn54_to_n_Co57_reaclib = 1239, - k_He4_Mn54_to_p_Fe57_reaclib = 1240, - k_n_Mn55_to_He4_V52_reaclib = 1241, - k_p_Mn55_to_n_Fe55_reaclib = 1242, - k_p_Mn55_to_He4_Cr52_reaclib = 1243, - k_He4_Mn55_to_n_Co58_reaclib = 1244, - k_He4_Mn55_to_p_Fe58_reaclib = 1245, - k_n_Fe52_to_p_Mn52_reaclib = 1246, - k_n_Fe52_to_He4_Cr49_reaclib = 1247, - k_He4_Fe52_to_p_Co55_reaclib = 1248, - k_n_Fe53_to_p_Mn53_reaclib = 1249, - k_n_Fe53_to_He4_Cr50_reaclib = 1250, - k_p_Fe53_to_n_Co53_reaclib = 1251, - k_p_Fe53_to_He4_Mn50_reaclib = 1252, - k_He4_Fe53_to_n_Ni56_reaclib = 1253, - k_He4_Fe53_to_p_Co56_reaclib = 1254, - k_n_Fe54_to_p_Mn54_reaclib = 1255, - k_n_Fe54_to_He4_Cr51_reaclib = 1256, - k_p_Fe54_to_n_Co54_reaclib = 1257, - k_p_Fe54_to_He4_Mn51_reaclib = 1258, - k_He4_Fe54_to_n_Ni57_reaclib = 1259, - k_He4_Fe54_to_p_Co57_reaclib = 1260, - k_n_Fe55_to_p_Mn55_reaclib = 1261, - k_n_Fe55_to_He4_Cr52_reaclib = 1262, - k_p_Fe55_to_n_Co55_reaclib = 1263, - k_p_Fe55_to_He4_Mn52_reaclib = 1264, - k_He4_Fe55_to_n_Ni58_reaclib = 1265, - k_He4_Fe55_to_p_Co58_reaclib = 1266, - k_n_Fe56_to_He4_Cr53_reaclib = 1267, - k_p_Fe56_to_n_Co56_reaclib = 1268, - k_p_Fe56_to_He4_Mn53_reaclib = 1269, - k_He4_Fe56_to_n_Ni59_reaclib = 1270, - k_He4_Fe56_to_p_Co59_reaclib = 1271, - k_n_Fe57_to_He4_Cr54_reaclib = 1272, - k_p_Fe57_to_n_Co57_reaclib = 1273, - k_p_Fe57_to_He4_Mn54_reaclib = 1274, - k_He4_Fe57_to_n_Ni60_reaclib = 1275, - k_p_Fe58_to_n_Co58_reaclib = 1276, - k_p_Fe58_to_He4_Mn55_reaclib = 1277, - k_He4_Fe58_to_n_Ni61_reaclib = 1278, - k_n_Co53_to_p_Fe53_reaclib = 1279, - k_n_Co53_to_He4_Mn50_reaclib = 1280, - k_He4_Co53_to_p_Ni56_reaclib = 1281, - k_n_Co54_to_p_Fe54_reaclib = 1282, - k_n_Co54_to_He4_Mn51_reaclib = 1283, - k_He4_Co54_to_n_Cu57_reaclib = 1284, - k_He4_Co54_to_p_Ni57_reaclib = 1285, - k_n_Co55_to_p_Fe55_reaclib = 1286, - k_n_Co55_to_He4_Mn52_reaclib = 1287, - k_p_Co55_to_He4_Fe52_reaclib = 1288, - k_He4_Co55_to_n_Cu58_reaclib = 1289, - k_He4_Co55_to_p_Ni58_reaclib = 1290, - k_n_Co56_to_p_Fe56_reaclib = 1291, - k_n_Co56_to_He4_Mn53_reaclib = 1292, - k_p_Co56_to_n_Ni56_reaclib = 1293, - k_p_Co56_to_He4_Fe53_reaclib = 1294, - k_He4_Co56_to_n_Cu59_reaclib = 1295, - k_He4_Co56_to_p_Ni59_reaclib = 1296, - k_n_Co57_to_p_Fe57_reaclib = 1297, - k_n_Co57_to_He4_Mn54_reaclib = 1298, - k_p_Co57_to_n_Ni57_reaclib = 1299, - k_p_Co57_to_He4_Fe54_reaclib = 1300, - k_He4_Co57_to_n_Cu60_reaclib = 1301, - k_He4_Co57_to_p_Ni60_reaclib = 1302, - k_n_Co58_to_p_Fe58_reaclib = 1303, - k_n_Co58_to_He4_Mn55_reaclib = 1304, - k_p_Co58_to_n_Ni58_reaclib = 1305, - k_p_Co58_to_He4_Fe55_reaclib = 1306, - k_He4_Co58_to_n_Cu61_reaclib = 1307, - k_He4_Co58_to_p_Ni61_reaclib = 1308, - k_p_Co59_to_n_Ni59_reaclib = 1309, - k_p_Co59_to_He4_Fe56_reaclib = 1310, - k_He4_Co59_to_n_Cu62_reaclib = 1311, - k_He4_Co59_to_p_Ni62_reaclib = 1312, - k_n_Ni56_to_p_Co56_reaclib = 1313, - k_n_Ni56_to_He4_Fe53_reaclib = 1314, - k_p_Ni56_to_He4_Co53_reaclib = 1315, - k_He4_Ni56_to_n_Zn59_reaclib = 1316, - k_He4_Ni56_to_p_Cu59_reaclib = 1317, - k_n_Ni57_to_p_Co57_reaclib = 1318, - k_n_Ni57_to_He4_Fe54_reaclib = 1319, - k_p_Ni57_to_n_Cu57_reaclib = 1320, - k_p_Ni57_to_He4_Co54_reaclib = 1321, - k_He4_Ni57_to_n_Zn60_reaclib = 1322, - k_He4_Ni57_to_p_Cu60_reaclib = 1323, - k_n_Ni58_to_p_Co58_reaclib = 1324, - k_n_Ni58_to_He4_Fe55_reaclib = 1325, - k_p_Ni58_to_n_Cu58_reaclib = 1326, - k_p_Ni58_to_He4_Co55_reaclib = 1327, - k_He4_Ni58_to_n_Zn61_reaclib = 1328, - k_He4_Ni58_to_p_Cu61_reaclib = 1329, - k_n_Ni59_to_p_Co59_reaclib = 1330, - k_n_Ni59_to_He4_Fe56_reaclib = 1331, - k_p_Ni59_to_n_Cu59_reaclib = 1332, - k_p_Ni59_to_He4_Co56_reaclib = 1333, - k_He4_Ni59_to_n_Zn62_reaclib = 1334, - k_He4_Ni59_to_p_Cu62_reaclib = 1335, - k_n_Ni60_to_He4_Fe57_reaclib = 1336, - k_p_Ni60_to_n_Cu60_reaclib = 1337, - k_p_Ni60_to_He4_Co57_reaclib = 1338, - k_He4_Ni60_to_n_Zn63_reaclib = 1339, - k_He4_Ni60_to_p_Cu63_reaclib = 1340, - k_n_Ni61_to_He4_Fe58_reaclib = 1341, - k_p_Ni61_to_n_Cu61_reaclib = 1342, - k_p_Ni61_to_He4_Co58_reaclib = 1343, - k_He4_Ni61_to_n_Zn64_reaclib = 1344, - k_He4_Ni61_to_p_Cu64_reaclib = 1345, - k_p_Ni62_to_n_Cu62_reaclib = 1346, - k_p_Ni62_to_He4_Co59_reaclib = 1347, - k_He4_Ni62_to_n_Zn65_reaclib = 1348, - k_He4_Ni62_to_p_Cu65_reaclib = 1349, - k_p_Ni63_to_n_Cu63_reaclib = 1350, - k_He4_Ni63_to_n_Zn66_reaclib = 1351, - k_p_Ni64_to_n_Cu64_reaclib = 1352, - k_n_Cu57_to_p_Ni57_reaclib = 1353, - k_n_Cu57_to_He4_Co54_reaclib = 1354, - k_He4_Cu57_to_p_Zn60_reaclib = 1355, - k_n_Cu58_to_p_Ni58_reaclib = 1356, - k_n_Cu58_to_He4_Co55_reaclib = 1357, - k_He4_Cu58_to_p_Zn61_reaclib = 1358, - k_n_Cu59_to_p_Ni59_reaclib = 1359, - k_n_Cu59_to_He4_Co56_reaclib = 1360, - k_p_Cu59_to_n_Zn59_reaclib = 1361, - k_p_Cu59_to_He4_Ni56_reaclib = 1362, - k_He4_Cu59_to_n_Ga62_reaclib = 1363, - k_He4_Cu59_to_p_Zn62_reaclib = 1364, - k_n_Cu60_to_p_Ni60_reaclib = 1365, - k_n_Cu60_to_He4_Co57_reaclib = 1366, - k_p_Cu60_to_n_Zn60_reaclib = 1367, - k_p_Cu60_to_He4_Ni57_reaclib = 1368, - k_He4_Cu60_to_n_Ga63_reaclib = 1369, - k_He4_Cu60_to_p_Zn63_reaclib = 1370, - k_n_Cu61_to_p_Ni61_reaclib = 1371, - k_n_Cu61_to_He4_Co58_reaclib = 1372, - k_p_Cu61_to_n_Zn61_reaclib = 1373, - k_p_Cu61_to_He4_Ni58_reaclib = 1374, - k_He4_Cu61_to_n_Ga64_reaclib = 1375, - k_He4_Cu61_to_p_Zn64_reaclib = 1376, - k_n_Cu62_to_p_Ni62_reaclib = 1377, - k_n_Cu62_to_He4_Co59_reaclib = 1378, - k_p_Cu62_to_n_Zn62_reaclib = 1379, - k_p_Cu62_to_He4_Ni59_reaclib = 1380, - k_He4_Cu62_to_p_Zn65_reaclib = 1381, - k_n_Cu63_to_p_Ni63_reaclib = 1382, - k_p_Cu63_to_n_Zn63_reaclib = 1383, - k_p_Cu63_to_He4_Ni60_reaclib = 1384, - k_He4_Cu63_to_p_Zn66_reaclib = 1385, - k_n_Cu64_to_p_Ni64_reaclib = 1386, - k_p_Cu64_to_n_Zn64_reaclib = 1387, - k_p_Cu64_to_He4_Ni61_reaclib = 1388, - k_p_Cu65_to_n_Zn65_reaclib = 1389, - k_p_Cu65_to_He4_Ni62_reaclib = 1390, - k_n_Zn59_to_p_Cu59_reaclib = 1391, - k_n_Zn59_to_He4_Ni56_reaclib = 1392, - k_He4_Zn59_to_p_Ga62_reaclib = 1393, - k_n_Zn60_to_p_Cu60_reaclib = 1394, - k_n_Zn60_to_He4_Ni57_reaclib = 1395, - k_p_Zn60_to_He4_Cu57_reaclib = 1396, - k_He4_Zn60_to_n_Ge63_reaclib = 1397, - k_He4_Zn60_to_p_Ga63_reaclib = 1398, - k_n_Zn61_to_p_Cu61_reaclib = 1399, - k_n_Zn61_to_He4_Ni58_reaclib = 1400, - k_p_Zn61_to_He4_Cu58_reaclib = 1401, - k_He4_Zn61_to_n_Ge64_reaclib = 1402, - k_He4_Zn61_to_p_Ga64_reaclib = 1403, - k_n_Zn62_to_p_Cu62_reaclib = 1404, - k_n_Zn62_to_He4_Ni59_reaclib = 1405, - k_p_Zn62_to_n_Ga62_reaclib = 1406, - k_p_Zn62_to_He4_Cu59_reaclib = 1407, - k_n_Zn63_to_p_Cu63_reaclib = 1408, - k_n_Zn63_to_He4_Ni60_reaclib = 1409, - k_p_Zn63_to_n_Ga63_reaclib = 1410, - k_p_Zn63_to_He4_Cu60_reaclib = 1411, - k_n_Zn64_to_p_Cu64_reaclib = 1412, - k_n_Zn64_to_He4_Ni61_reaclib = 1413, - k_p_Zn64_to_n_Ga64_reaclib = 1414, - k_p_Zn64_to_He4_Cu61_reaclib = 1415, - k_n_Zn65_to_p_Cu65_reaclib = 1416, - k_n_Zn65_to_He4_Ni62_reaclib = 1417, - k_p_Zn65_to_He4_Cu62_reaclib = 1418, - k_n_Zn66_to_He4_Ni63_reaclib = 1419, - k_p_Zn66_to_He4_Cu63_reaclib = 1420, - k_n_Ga62_to_p_Zn62_reaclib = 1421, - k_n_Ga62_to_He4_Cu59_reaclib = 1422, - k_p_Ga62_to_He4_Zn59_reaclib = 1423, - k_n_Ga63_to_p_Zn63_reaclib = 1424, - k_n_Ga63_to_He4_Cu60_reaclib = 1425, - k_p_Ga63_to_n_Ge63_reaclib = 1426, - k_p_Ga63_to_He4_Zn60_reaclib = 1427, - k_n_Ga64_to_p_Zn64_reaclib = 1428, - k_n_Ga64_to_He4_Cu61_reaclib = 1429, - k_p_Ga64_to_n_Ge64_reaclib = 1430, - k_p_Ga64_to_He4_Zn61_reaclib = 1431, - k_n_Ge63_to_p_Ga63_reaclib = 1432, - k_n_Ge63_to_He4_Zn60_reaclib = 1433, - k_n_Ge64_to_p_Ga64_reaclib = 1434, - k_n_Ge64_to_He4_Zn61_reaclib = 1435, - k_p_d_to_n_p_p_reaclib = 1436, - k_He3_He3_to_p_p_He4_reaclib = 1437, - k_d_Li7_to_n_He4_He4_reaclib = 1438, - k_d_Be7_to_p_He4_He4_reaclib = 1439, - k_p_Be9_to_d_He4_He4_reaclib = 1440, - k_n_B8_to_p_He4_He4_reaclib = 1441, - k_p_B11_to_He4_He4_He4_reaclib = 1442, - k_He3_Li7_to_n_p_He4_He4_reaclib = 1443, - k_He3_Be7_to_p_p_He4_He4_reaclib = 1444, - k_p_Be9_to_n_p_He4_He4_reaclib = 1445, - k_n_p_He4_to_Li6_reaclib = 1446, - k_n_He4_He4_to_Be9_reaclib = 1447, - k_He4_He4_He4_to_C12_reaclib = 1448, - k_n_p_p_to_p_d_reaclib = 1449, - k_p_p_He4_to_He3_He3_reaclib = 1450, - k_n_He4_He4_to_d_Li7_reaclib = 1451, - k_p_He4_He4_to_n_B8_reaclib = 1452, - k_p_He4_He4_to_d_Be7_reaclib = 1453, - k_d_He4_He4_to_p_Be9_reaclib = 1454, - k_He4_He4_He4_to_p_B11_reaclib = 1455, - k_n_p_He4_He4_to_He3_Li7_reaclib = 1456, - k_n_p_He4_He4_to_p_Be9_reaclib = 1457, - k_p_p_He4_He4_to_He3_Be7_reaclib = 1458, - k_Na21_to_Ne21_weaktab = 1459, - k_Ne21_to_Na21_weaktab = 1460, - k_Na22_to_Ne22_weaktab = 1461, - k_Ne22_to_Na22_weaktab = 1462, - k_Mg23_to_Na23_weaktab = 1463, - k_Na23_to_Mg23_weaktab = 1464, - k_Al25_to_Mg25_weaktab = 1465, - k_Mg25_to_Al25_weaktab = 1466, - k_Al26_to_Mg26_weaktab = 1467, - k_Mg26_to_Al26_weaktab = 1468, - k_P29_to_Si29_weaktab = 1469, - k_Si29_to_P29_weaktab = 1470, - k_P30_to_Si30_weaktab = 1471, - k_Si30_to_P30_weaktab = 1472, - k_P31_to_Si31_weaktab = 1473, - k_Si31_to_P31_weaktab = 1474, - k_P32_to_S32_weaktab = 1475, - k_P32_to_Si32_weaktab = 1476, - k_S32_to_P32_weaktab = 1477, - k_Si32_to_P32_weaktab = 1478, - k_Cl33_to_S33_weaktab = 1479, - k_P33_to_S33_weaktab = 1480, - k_S33_to_Cl33_weaktab = 1481, - k_S33_to_P33_weaktab = 1482, - k_Cl34_to_S34_weaktab = 1483, - k_S34_to_Cl34_weaktab = 1484, - k_Cl35_to_S35_weaktab = 1485, - k_S35_to_Cl35_weaktab = 1486, - k_Ar36_to_Cl36_weaktab = 1487, - k_Cl36_to_Ar36_weaktab = 1488, - k_Cl36_to_S36_weaktab = 1489, - k_S36_to_Cl36_weaktab = 1490, - k_Ar37_to_Cl37_weaktab = 1491, - k_Ar37_to_K37_weaktab = 1492, - k_Cl37_to_Ar37_weaktab = 1493, - k_K37_to_Ar37_weaktab = 1494, - k_Ar38_to_K38_weaktab = 1495, - k_K38_to_Ar38_weaktab = 1496, - k_Ar39_to_K39_weaktab = 1497, - k_K39_to_Ar39_weaktab = 1498, - k_Ar40_to_K40_weaktab = 1499, - k_Ca40_to_K40_weaktab = 1500, - k_K40_to_Ar40_weaktab = 1501, - k_K40_to_Ca40_weaktab = 1502, - k_Ca41_to_K41_weaktab = 1503, - k_K41_to_Ca41_weaktab = 1504, - k_Ca43_to_Sc43_weaktab = 1505, - k_Sc43_to_Ca43_weaktab = 1506, - k_Ca44_to_Sc44_weaktab = 1507, - k_Sc44_to_Ca44_weaktab = 1508, - k_Sc44_to_Ti44_weaktab = 1509, - k_Ti44_to_Sc44_weaktab = 1510, - k_Co53_to_Fe53_weaktab = 1511, - k_Fe53_to_Co53_weaktab = 1512, - k_Cu57_to_Ni57_weaktab = 1513, - k_Ni57_to_Cu57_weaktab = 1514, - k_Ca45_to_Sc45_weaktab = 1515, - k_Sc45_to_Ca45_weaktab = 1516, - k_Sc45_to_Ti45_weaktab = 1517, - k_Ti45_to_Sc45_weaktab = 1518, - k_Ca46_to_Sc46_weaktab = 1519, - k_Sc46_to_Ca46_weaktab = 1520, - k_Sc46_to_Ti46_weaktab = 1521, - k_Ti46_to_Sc46_weaktab = 1522, - k_Ti46_to_V46_weaktab = 1523, - k_V46_to_Ti46_weaktab = 1524, - k_Ca47_to_Sc47_weaktab = 1525, - k_Sc47_to_Ca47_weaktab = 1526, - k_Sc47_to_Ti47_weaktab = 1527, - k_Ti47_to_Sc47_weaktab = 1528, - k_Ti47_to_V47_weaktab = 1529, - k_V47_to_Ti47_weaktab = 1530, - k_Ca48_to_Sc48_weaktab = 1531, - k_Cr48_to_V48_weaktab = 1532, - k_Sc48_to_Ca48_weaktab = 1533, - k_Sc48_to_Ti48_weaktab = 1534, - k_Ti48_to_Sc48_weaktab = 1535, - k_Ti48_to_V48_weaktab = 1536, - k_V48_to_Cr48_weaktab = 1537, - k_V48_to_Ti48_weaktab = 1538, - k_Cr49_to_V49_weaktab = 1539, - k_Sc49_to_Ti49_weaktab = 1540, - k_Ti49_to_Sc49_weaktab = 1541, - k_Ti49_to_V49_weaktab = 1542, - k_V49_to_Cr49_weaktab = 1543, - k_V49_to_Ti49_weaktab = 1544, - k_Cr50_to_Mn50_weaktab = 1545, - k_Cr50_to_V50_weaktab = 1546, - k_Mn50_to_Cr50_weaktab = 1547, - k_Ti50_to_V50_weaktab = 1548, - k_V50_to_Cr50_weaktab = 1549, - k_V50_to_Ti50_weaktab = 1550, - k_Cr51_to_Mn51_weaktab = 1551, - k_Cr51_to_V51_weaktab = 1552, - k_Mn51_to_Cr51_weaktab = 1553, - k_Ti51_to_V51_weaktab = 1554, - k_V51_to_Cr51_weaktab = 1555, - k_V51_to_Ti51_weaktab = 1556, - k_Cr52_to_Mn52_weaktab = 1557, - k_Cr52_to_V52_weaktab = 1558, - k_Fe52_to_Mn52_weaktab = 1559, - k_Mn52_to_Cr52_weaktab = 1560, - k_Mn52_to_Fe52_weaktab = 1561, - k_V52_to_Cr52_weaktab = 1562, - k_Cr53_to_Mn53_weaktab = 1563, - k_Fe53_to_Mn53_weaktab = 1564, - k_Mn53_to_Cr53_weaktab = 1565, - k_Mn53_to_Fe53_weaktab = 1566, - k_Co54_to_Fe54_weaktab = 1567, - k_Cr54_to_Mn54_weaktab = 1568, - k_Fe54_to_Co54_weaktab = 1569, - k_Fe54_to_Mn54_weaktab = 1570, - k_Mn54_to_Cr54_weaktab = 1571, - k_Mn54_to_Fe54_weaktab = 1572, - k_Co55_to_Fe55_weaktab = 1573, - k_Fe55_to_Co55_weaktab = 1574, - k_Fe55_to_Mn55_weaktab = 1575, - k_Mn55_to_Fe55_weaktab = 1576, - k_Co56_to_Fe56_weaktab = 1577, - k_Co56_to_Ni56_weaktab = 1578, - k_Fe56_to_Co56_weaktab = 1579, - k_Ni56_to_Co56_weaktab = 1580, - k_Co57_to_Fe57_weaktab = 1581, - k_Co57_to_Ni57_weaktab = 1582, - k_Fe57_to_Co57_weaktab = 1583, - k_Ni57_to_Co57_weaktab = 1584, - k_Co58_to_Fe58_weaktab = 1585, - k_Co58_to_Ni58_weaktab = 1586, - k_Cu58_to_Ni58_weaktab = 1587, - k_Fe58_to_Co58_weaktab = 1588, - k_Ni58_to_Co58_weaktab = 1589, - k_Ni58_to_Cu58_weaktab = 1590, - k_Co59_to_Ni59_weaktab = 1591, - k_Cu59_to_Ni59_weaktab = 1592, - k_Ni59_to_Co59_weaktab = 1593, - k_Ni59_to_Cu59_weaktab = 1594, - k_Cu60_to_Ni60_weaktab = 1595, - k_Cu60_to_Zn60_weaktab = 1596, - k_Ni60_to_Cu60_weaktab = 1597, - k_Zn60_to_Cu60_weaktab = 1598, - k_Cu61_to_Ni61_weaktab = 1599, - k_Cu61_to_Zn61_weaktab = 1600, - k_Ni61_to_Cu61_weaktab = 1601, - k_Zn61_to_Cu61_weaktab = 1602, - k_Cu62_to_Ni62_weaktab = 1603, - k_Cu62_to_Zn62_weaktab = 1604, - k_Ga62_to_Zn62_weaktab = 1605, - k_Ni62_to_Cu62_weaktab = 1606, - k_Zn62_to_Cu62_weaktab = 1607, - k_Zn62_to_Ga62_weaktab = 1608, - k_Cu63_to_Ni63_weaktab = 1609, - k_Cu63_to_Zn63_weaktab = 1610, - k_Ga63_to_Zn63_weaktab = 1611, - k_Ni63_to_Cu63_weaktab = 1612, - k_Zn63_to_Cu63_weaktab = 1613, - k_Zn63_to_Ga63_weaktab = 1614, - k_Cu64_to_Ni64_weaktab = 1615, - k_Cu64_to_Zn64_weaktab = 1616, - k_Ga64_to_Ge64_weaktab = 1617, - k_Ga64_to_Zn64_weaktab = 1618, - k_Ge64_to_Ga64_weaktab = 1619, - k_Ni64_to_Cu64_weaktab = 1620, - k_Zn64_to_Cu64_weaktab = 1621, - k_Zn64_to_Ga64_weaktab = 1622, - k_Cu65_to_Zn65_weaktab = 1623, - k_Zn65_to_Cu65_weaktab = 1624, - k_n_to_p_weaktab = 1625, - k_p_to_n_weaktab = 1626, - NumRates = k_p_to_n_weaktab + k_Be7_to_Li7_electron_capture_reaclib = 1, + k_C14_to_N14_beta_neg_reaclib = 2, + k_N13_to_C13_beta_pos_reaclib = 3, + k_O14_to_N14_beta_pos_reaclib = 4, + k_O15_to_N15_beta_pos_reaclib = 5, + k_F17_to_O17_beta_pos_reaclib = 6, + k_F18_to_O18_beta_pos_reaclib = 7, + k_Ne18_to_F18_beta_pos_reaclib = 8, + k_Ne19_to_F19_beta_pos_reaclib = 9, + k_Zn59_to_Cu59_beta_pos_reaclib = 10, + k_Ge63_to_Ga63_beta_pos_reaclib = 11, + k_B8_to_He4_He4_beta_pos_reaclib = 12, + k_Zn59_to_p_Ni58_beta_pos_reaclib = 13, + k_p_n_to_d_reaclib = 14, + k_p_p_to_d_beta_pos_reaclib = 15, + k_p_p_to_d_electron_capture_reaclib = 16, + k_d_p_to_He3_reaclib = 17, + k_d_d_to_He4_reaclib = 18, + k_d_He4_to_Li6_reaclib = 19, + k_He3_n_to_He4_reaclib = 20, + k_He3_p_to_He4_beta_pos_reaclib = 21, + k_He3_He4_to_Be7_reaclib = 22, + k_Li6_n_to_Li7_reaclib = 23, + k_Li6_p_to_Be7_reaclib = 24, + k_Li6_He4_to_B10_reaclib = 25, + k_Li7_He4_to_B11_reaclib = 26, + k_Be7_p_to_B8_reaclib = 27, + k_Be9_p_to_B10_reaclib = 28, + k_B10_n_to_B11_reaclib = 29, + k_B11_p_to_C12_reaclib = 30, + k_C12_n_to_C13_reaclib = 31, + k_C12_p_to_N13_reaclib = 32, + k_C12_He4_to_O16_reaclib = 33, + k_C13_n_to_C14_reaclib = 34, + k_C13_p_to_N14_reaclib = 35, + k_C14_p_to_N15_reaclib = 36, + k_C14_He4_to_O18_reaclib = 37, + k_N13_n_to_N14_reaclib = 38, + k_N13_p_to_O14_reaclib = 39, + k_N14_n_to_N15_reaclib = 40, + k_N14_p_to_O15_reaclib = 41, + k_N14_He4_to_F18_reaclib = 42, + k_N15_p_to_O16_reaclib = 43, + k_N15_He4_to_F19_reaclib = 44, + k_O14_n_to_O15_reaclib = 45, + k_O14_He4_to_Ne18_reaclib = 46, + k_O15_n_to_O16_reaclib = 47, + k_O15_He4_to_Ne19_reaclib = 48, + k_O16_n_to_O17_reaclib = 49, + k_O16_p_to_F17_reaclib = 50, + k_O16_He4_to_Ne20_reaclib = 51, + k_O17_n_to_O18_reaclib = 52, + k_O17_p_to_F18_reaclib = 53, + k_O17_He4_to_Ne21_reaclib = 54, + k_O18_p_to_F19_reaclib = 55, + k_O18_He4_to_Ne22_reaclib = 56, + k_F17_n_to_F18_reaclib = 57, + k_F17_p_to_Ne18_reaclib = 58, + k_F17_He4_to_Na21_reaclib = 59, + k_F18_n_to_F19_reaclib = 60, + k_F18_p_to_Ne19_reaclib = 61, + k_F18_He4_to_Na22_reaclib = 62, + k_F19_p_to_Ne20_reaclib = 63, + k_F19_He4_to_Na23_reaclib = 64, + k_Ne18_n_to_Ne19_reaclib = 65, + k_Ne19_n_to_Ne20_reaclib = 66, + k_Ne19_He4_to_Mg23_reaclib = 67, + k_Ne20_n_to_Ne21_reaclib = 68, + k_Ne20_p_to_Na21_reaclib = 69, + k_Ne20_He4_to_Mg24_reaclib = 70, + k_Ne21_n_to_Ne22_reaclib = 71, + k_Ne21_p_to_Na22_reaclib = 72, + k_Ne21_He4_to_Mg25_reaclib = 73, + k_Ne22_p_to_Na23_reaclib = 74, + k_Ne22_He4_to_Mg26_reaclib = 75, + k_Na21_n_to_Na22_reaclib = 76, + k_Na21_He4_to_Al25_reaclib = 77, + k_Na22_n_to_Na23_reaclib = 78, + k_Na22_p_to_Mg23_reaclib = 79, + k_Na22_He4_to_Al26_reaclib = 80, + k_Na23_p_to_Mg24_reaclib = 81, + k_Na23_He4_to_Al27_reaclib = 82, + k_Mg23_n_to_Mg24_reaclib = 83, + k_Mg24_n_to_Mg25_reaclib = 84, + k_Mg24_p_to_Al25_reaclib = 85, + k_Mg24_He4_to_Si28_reaclib = 86, + k_Mg25_n_to_Mg26_reaclib = 87, + k_Mg25_p_to_Al26_reaclib = 88, + k_Mg25_He4_to_Si29_reaclib = 89, + k_Mg26_p_to_Al27_reaclib = 90, + k_Mg26_He4_to_Si30_reaclib = 91, + k_Al25_n_to_Al26_reaclib = 92, + k_Al25_He4_to_P29_reaclib = 93, + k_Al26_n_to_Al27_reaclib = 94, + k_Al26_He4_to_P30_reaclib = 95, + k_Al27_p_to_Si28_reaclib = 96, + k_Al27_He4_to_P31_reaclib = 97, + k_Si28_n_to_Si29_reaclib = 98, + k_Si28_p_to_P29_reaclib = 99, + k_Si28_He4_to_S32_reaclib = 100, + k_Si29_n_to_Si30_reaclib = 101, + k_Si29_p_to_P30_reaclib = 102, + k_Si29_He4_to_S33_reaclib = 103, + k_Si30_n_to_Si31_reaclib = 104, + k_Si30_p_to_P31_reaclib = 105, + k_Si30_He4_to_S34_reaclib = 106, + k_Si31_n_to_Si32_reaclib = 107, + k_Si31_p_to_P32_reaclib = 108, + k_Si31_He4_to_S35_reaclib = 109, + k_Si32_p_to_P33_reaclib = 110, + k_Si32_He4_to_S36_reaclib = 111, + k_P29_n_to_P30_reaclib = 112, + k_P29_He4_to_Cl33_reaclib = 113, + k_P30_n_to_P31_reaclib = 114, + k_P30_He4_to_Cl34_reaclib = 115, + k_P31_n_to_P32_reaclib = 116, + k_P31_p_to_S32_reaclib = 117, + k_P31_He4_to_Cl35_reaclib = 118, + k_P32_n_to_P33_reaclib = 119, + k_P32_p_to_S33_reaclib = 120, + k_P32_He4_to_Cl36_reaclib = 121, + k_P33_p_to_S34_reaclib = 122, + k_P33_He4_to_Cl37_reaclib = 123, + k_S32_n_to_S33_reaclib = 124, + k_S32_p_to_Cl33_reaclib = 125, + k_S32_He4_to_Ar36_reaclib = 126, + k_S33_n_to_S34_reaclib = 127, + k_S33_p_to_Cl34_reaclib = 128, + k_S33_He4_to_Ar37_reaclib = 129, + k_S34_n_to_S35_reaclib = 130, + k_S34_p_to_Cl35_reaclib = 131, + k_S34_He4_to_Ar38_reaclib = 132, + k_S35_n_to_S36_reaclib = 133, + k_S35_p_to_Cl36_reaclib = 134, + k_S35_He4_to_Ar39_reaclib = 135, + k_S36_p_to_Cl37_reaclib = 136, + k_S36_He4_to_Ar40_reaclib = 137, + k_Cl33_n_to_Cl34_reaclib = 138, + k_Cl33_He4_to_K37_reaclib = 139, + k_Cl34_n_to_Cl35_reaclib = 140, + k_Cl34_He4_to_K38_reaclib = 141, + k_Cl35_n_to_Cl36_reaclib = 142, + k_Cl35_p_to_Ar36_reaclib = 143, + k_Cl35_He4_to_K39_reaclib = 144, + k_Cl36_n_to_Cl37_reaclib = 145, + k_Cl36_p_to_Ar37_reaclib = 146, + k_Cl36_He4_to_K40_reaclib = 147, + k_Cl37_p_to_Ar38_reaclib = 148, + k_Cl37_He4_to_K41_reaclib = 149, + k_Ar36_n_to_Ar37_reaclib = 150, + k_Ar36_p_to_K37_reaclib = 151, + k_Ar36_He4_to_Ca40_reaclib = 152, + k_Ar37_n_to_Ar38_reaclib = 153, + k_Ar37_p_to_K38_reaclib = 154, + k_Ar37_He4_to_Ca41_reaclib = 155, + k_Ar38_n_to_Ar39_reaclib = 156, + k_Ar38_p_to_K39_reaclib = 157, + k_Ar38_He4_to_Ca42_reaclib = 158, + k_Ar39_n_to_Ar40_reaclib = 159, + k_Ar39_p_to_K40_reaclib = 160, + k_Ar39_He4_to_Ca43_reaclib = 161, + k_Ar40_p_to_K41_reaclib = 162, + k_Ar40_He4_to_Ca44_reaclib = 163, + k_K37_n_to_K38_reaclib = 164, + k_K38_n_to_K39_reaclib = 165, + k_K39_n_to_K40_reaclib = 166, + k_K39_p_to_Ca40_reaclib = 167, + k_K39_He4_to_Sc43_reaclib = 168, + k_K40_n_to_K41_reaclib = 169, + k_K40_p_to_Ca41_reaclib = 170, + k_K40_He4_to_Sc44_reaclib = 171, + k_K41_p_to_Ca42_reaclib = 172, + k_K41_He4_to_Sc45_reaclib = 173, + k_Ca40_n_to_Ca41_reaclib = 174, + k_Ca40_He4_to_Ti44_reaclib = 175, + k_Ca41_n_to_Ca42_reaclib = 176, + k_Ca41_He4_to_Ti45_reaclib = 177, + k_Ca42_n_to_Ca43_reaclib = 178, + k_Ca42_p_to_Sc43_reaclib = 179, + k_Ca42_He4_to_Ti46_reaclib = 180, + k_Ca43_n_to_Ca44_reaclib = 181, + k_Ca43_p_to_Sc44_reaclib = 182, + k_Ca43_He4_to_Ti47_reaclib = 183, + k_Ca44_n_to_Ca45_reaclib = 184, + k_Ca44_p_to_Sc45_reaclib = 185, + k_Ca44_He4_to_Ti48_reaclib = 186, + k_Ca45_n_to_Ca46_reaclib = 187, + k_Ca45_p_to_Sc46_reaclib = 188, + k_Ca45_He4_to_Ti49_reaclib = 189, + k_Ca46_n_to_Ca47_reaclib = 190, + k_Ca46_p_to_Sc47_reaclib = 191, + k_Ca46_He4_to_Ti50_reaclib = 192, + k_Ca47_n_to_Ca48_reaclib = 193, + k_Ca47_p_to_Sc48_reaclib = 194, + k_Ca47_He4_to_Ti51_reaclib = 195, + k_Ca48_p_to_Sc49_reaclib = 196, + k_Sc43_n_to_Sc44_reaclib = 197, + k_Sc43_p_to_Ti44_reaclib = 198, + k_Sc43_He4_to_V47_reaclib = 199, + k_Sc44_n_to_Sc45_reaclib = 200, + k_Sc44_p_to_Ti45_reaclib = 201, + k_Sc44_He4_to_V48_reaclib = 202, + k_Sc45_n_to_Sc46_reaclib = 203, + k_Sc45_p_to_Ti46_reaclib = 204, + k_Sc45_He4_to_V49_reaclib = 205, + k_Sc46_n_to_Sc47_reaclib = 206, + k_Sc46_p_to_Ti47_reaclib = 207, + k_Sc46_He4_to_V50_reaclib = 208, + k_Sc47_n_to_Sc48_reaclib = 209, + k_Sc47_p_to_Ti48_reaclib = 210, + k_Sc47_He4_to_V51_reaclib = 211, + k_Sc48_n_to_Sc49_reaclib = 212, + k_Sc48_p_to_Ti49_reaclib = 213, + k_Sc48_He4_to_V52_reaclib = 214, + k_Sc49_p_to_Ti50_reaclib = 215, + k_Ti44_n_to_Ti45_reaclib = 216, + k_Ti44_He4_to_Cr48_reaclib = 217, + k_Ti45_n_to_Ti46_reaclib = 218, + k_Ti45_p_to_V46_reaclib = 219, + k_Ti45_He4_to_Cr49_reaclib = 220, + k_Ti46_n_to_Ti47_reaclib = 221, + k_Ti46_p_to_V47_reaclib = 222, + k_Ti46_He4_to_Cr50_reaclib = 223, + k_Ti47_n_to_Ti48_reaclib = 224, + k_Ti47_p_to_V48_reaclib = 225, + k_Ti47_He4_to_Cr51_reaclib = 226, + k_Ti48_n_to_Ti49_reaclib = 227, + k_Ti48_p_to_V49_reaclib = 228, + k_Ti48_He4_to_Cr52_reaclib = 229, + k_Ti49_n_to_Ti50_reaclib = 230, + k_Ti49_p_to_V50_reaclib = 231, + k_Ti49_He4_to_Cr53_reaclib = 232, + k_Ti50_n_to_Ti51_reaclib = 233, + k_Ti50_p_to_V51_reaclib = 234, + k_Ti50_He4_to_Cr54_reaclib = 235, + k_Ti51_p_to_V52_reaclib = 236, + k_V46_n_to_V47_reaclib = 237, + k_V46_He4_to_Mn50_reaclib = 238, + k_V47_n_to_V48_reaclib = 239, + k_V47_p_to_Cr48_reaclib = 240, + k_V47_He4_to_Mn51_reaclib = 241, + k_V48_n_to_V49_reaclib = 242, + k_V48_p_to_Cr49_reaclib = 243, + k_V48_He4_to_Mn52_reaclib = 244, + k_V49_n_to_V50_reaclib = 245, + k_V49_p_to_Cr50_reaclib = 246, + k_V49_He4_to_Mn53_reaclib = 247, + k_V50_n_to_V51_reaclib = 248, + k_V50_p_to_Cr51_reaclib = 249, + k_V50_He4_to_Mn54_reaclib = 250, + k_V51_n_to_V52_reaclib = 251, + k_V51_p_to_Cr52_reaclib = 252, + k_V51_He4_to_Mn55_reaclib = 253, + k_V52_p_to_Cr53_reaclib = 254, + k_Cr48_n_to_Cr49_reaclib = 255, + k_Cr48_He4_to_Fe52_reaclib = 256, + k_Cr49_n_to_Cr50_reaclib = 257, + k_Cr49_p_to_Mn50_reaclib = 258, + k_Cr49_He4_to_Fe53_reaclib = 259, + k_Cr50_n_to_Cr51_reaclib = 260, + k_Cr50_p_to_Mn51_reaclib = 261, + k_Cr50_He4_to_Fe54_reaclib = 262, + k_Cr51_n_to_Cr52_reaclib = 263, + k_Cr51_p_to_Mn52_reaclib = 264, + k_Cr51_He4_to_Fe55_reaclib = 265, + k_Cr52_n_to_Cr53_reaclib = 266, + k_Cr52_p_to_Mn53_reaclib = 267, + k_Cr52_He4_to_Fe56_reaclib = 268, + k_Cr53_n_to_Cr54_reaclib = 269, + k_Cr53_p_to_Mn54_reaclib = 270, + k_Cr53_He4_to_Fe57_reaclib = 271, + k_Cr54_p_to_Mn55_reaclib = 272, + k_Cr54_He4_to_Fe58_reaclib = 273, + k_Mn50_n_to_Mn51_reaclib = 274, + k_Mn50_He4_to_Co54_reaclib = 275, + k_Mn51_n_to_Mn52_reaclib = 276, + k_Mn51_p_to_Fe52_reaclib = 277, + k_Mn51_He4_to_Co55_reaclib = 278, + k_Mn52_n_to_Mn53_reaclib = 279, + k_Mn52_p_to_Fe53_reaclib = 280, + k_Mn52_He4_to_Co56_reaclib = 281, + k_Mn53_n_to_Mn54_reaclib = 282, + k_Mn53_p_to_Fe54_reaclib = 283, + k_Mn53_He4_to_Co57_reaclib = 284, + k_Mn54_n_to_Mn55_reaclib = 285, + k_Mn54_p_to_Fe55_reaclib = 286, + k_Mn54_He4_to_Co58_reaclib = 287, + k_Mn55_p_to_Fe56_reaclib = 288, + k_Mn55_He4_to_Co59_reaclib = 289, + k_Fe52_n_to_Fe53_reaclib = 290, + k_Fe52_p_to_Co53_reaclib = 291, + k_Fe52_He4_to_Ni56_reaclib = 292, + k_Fe53_n_to_Fe54_reaclib = 293, + k_Fe53_p_to_Co54_reaclib = 294, + k_Fe53_He4_to_Ni57_reaclib = 295, + k_Fe54_n_to_Fe55_reaclib = 296, + k_Fe54_p_to_Co55_reaclib = 297, + k_Fe54_He4_to_Ni58_reaclib = 298, + k_Fe55_n_to_Fe56_reaclib = 299, + k_Fe55_p_to_Co56_reaclib = 300, + k_Fe55_He4_to_Ni59_reaclib = 301, + k_Fe56_n_to_Fe57_reaclib = 302, + k_Fe56_p_to_Co57_reaclib = 303, + k_Fe56_He4_to_Ni60_reaclib = 304, + k_Fe57_n_to_Fe58_reaclib = 305, + k_Fe57_p_to_Co58_reaclib = 306, + k_Fe57_He4_to_Ni61_reaclib = 307, + k_Fe58_p_to_Co59_reaclib = 308, + k_Fe58_He4_to_Ni62_reaclib = 309, + k_Co53_n_to_Co54_reaclib = 310, + k_Co53_He4_to_Cu57_reaclib = 311, + k_Co54_n_to_Co55_reaclib = 312, + k_Co54_He4_to_Cu58_reaclib = 313, + k_Co55_n_to_Co56_reaclib = 314, + k_Co55_p_to_Ni56_reaclib = 315, + k_Co55_He4_to_Cu59_reaclib = 316, + k_Co56_n_to_Co57_reaclib = 317, + k_Co56_p_to_Ni57_reaclib = 318, + k_Co56_He4_to_Cu60_reaclib = 319, + k_Co57_n_to_Co58_reaclib = 320, + k_Co57_p_to_Ni58_reaclib = 321, + k_Co57_He4_to_Cu61_reaclib = 322, + k_Co58_n_to_Co59_reaclib = 323, + k_Co58_p_to_Ni59_reaclib = 324, + k_Co58_He4_to_Cu62_reaclib = 325, + k_Co59_p_to_Ni60_reaclib = 326, + k_Co59_He4_to_Cu63_reaclib = 327, + k_Ni56_n_to_Ni57_reaclib = 328, + k_Ni56_p_to_Cu57_reaclib = 329, + k_Ni56_He4_to_Zn60_reaclib = 330, + k_Ni57_n_to_Ni58_reaclib = 331, + k_Ni57_p_to_Cu58_reaclib = 332, + k_Ni57_He4_to_Zn61_reaclib = 333, + k_Ni58_n_to_Ni59_reaclib = 334, + k_Ni58_p_to_Cu59_reaclib = 335, + k_Ni58_He4_to_Zn62_reaclib = 336, + k_Ni59_n_to_Ni60_reaclib = 337, + k_Ni59_p_to_Cu60_reaclib = 338, + k_Ni59_He4_to_Zn63_reaclib = 339, + k_Ni60_n_to_Ni61_reaclib = 340, + k_Ni60_p_to_Cu61_reaclib = 341, + k_Ni60_He4_to_Zn64_reaclib = 342, + k_Ni61_n_to_Ni62_reaclib = 343, + k_Ni61_p_to_Cu62_reaclib = 344, + k_Ni61_He4_to_Zn65_reaclib = 345, + k_Ni62_n_to_Ni63_reaclib = 346, + k_Ni62_p_to_Cu63_reaclib = 347, + k_Ni62_He4_to_Zn66_reaclib = 348, + k_Ni63_n_to_Ni64_reaclib = 349, + k_Ni63_p_to_Cu64_reaclib = 350, + k_Ni64_p_to_Cu65_reaclib = 351, + k_Cu57_n_to_Cu58_reaclib = 352, + k_Cu58_n_to_Cu59_reaclib = 353, + k_Cu58_p_to_Zn59_reaclib = 354, + k_Cu58_He4_to_Ga62_reaclib = 355, + k_Cu59_n_to_Cu60_reaclib = 356, + k_Cu59_p_to_Zn60_reaclib = 357, + k_Cu59_He4_to_Ga63_reaclib = 358, + k_Cu60_n_to_Cu61_reaclib = 359, + k_Cu60_p_to_Zn61_reaclib = 360, + k_Cu60_He4_to_Ga64_reaclib = 361, + k_Cu61_n_to_Cu62_reaclib = 362, + k_Cu61_p_to_Zn62_reaclib = 363, + k_Cu62_n_to_Cu63_reaclib = 364, + k_Cu62_p_to_Zn63_reaclib = 365, + k_Cu63_n_to_Cu64_reaclib = 366, + k_Cu63_p_to_Zn64_reaclib = 367, + k_Cu64_n_to_Cu65_reaclib = 368, + k_Cu64_p_to_Zn65_reaclib = 369, + k_Cu65_p_to_Zn66_reaclib = 370, + k_Zn59_n_to_Zn60_reaclib = 371, + k_Zn59_He4_to_Ge63_reaclib = 372, + k_Zn60_n_to_Zn61_reaclib = 373, + k_Zn60_He4_to_Ge64_reaclib = 374, + k_Zn61_n_to_Zn62_reaclib = 375, + k_Zn61_p_to_Ga62_reaclib = 376, + k_Zn62_n_to_Zn63_reaclib = 377, + k_Zn62_p_to_Ga63_reaclib = 378, + k_Zn63_n_to_Zn64_reaclib = 379, + k_Zn63_p_to_Ga64_reaclib = 380, + k_Zn64_n_to_Zn65_reaclib = 381, + k_Zn65_n_to_Zn66_reaclib = 382, + k_Ga62_n_to_Ga63_reaclib = 383, + k_Ga62_p_to_Ge63_reaclib = 384, + k_Ga63_n_to_Ga64_reaclib = 385, + k_Ga63_p_to_Ge64_reaclib = 386, + k_Ge63_n_to_Ge64_reaclib = 387, + k_d_d_to_n_He3_reaclib = 388, + k_He3_d_to_p_He4_reaclib = 389, + k_Li6_p_to_He4_He3_reaclib = 390, + k_Li6_d_to_n_Be7_reaclib = 391, + k_Li6_d_to_p_Li7_reaclib = 392, + k_Li7_p_to_He4_He4_reaclib = 393, + k_Be7_n_to_p_Li7_reaclib = 394, + k_Be7_n_to_He4_He4_reaclib = 395, + k_Be9_p_to_He4_Li6_reaclib = 396, + k_Be9_He4_to_n_C12_reaclib = 397, + k_B10_n_to_He4_Li7_reaclib = 398, + k_B10_p_to_He4_Be7_reaclib = 399, + k_B10_He4_to_n_N13_reaclib = 400, + k_B10_He4_to_p_C13_reaclib = 401, + k_B11_He4_to_n_N14_reaclib = 402, + k_B11_He4_to_p_C14_reaclib = 403, + k_C12_C12_to_p_Na23_reaclib = 404, + k_C12_C12_to_He4_Ne20_reaclib = 405, + k_C13_p_to_n_N13_reaclib = 406, + k_C13_d_to_n_N14_reaclib = 407, + k_C13_He4_to_n_O16_reaclib = 408, + k_C14_d_to_n_N15_reaclib = 409, + k_N13_He4_to_p_O16_reaclib = 410, + k_N14_n_to_p_C14_reaclib = 411, + k_N14_p_to_n_O14_reaclib = 412, + k_N14_He4_to_n_F17_reaclib = 413, + k_N15_p_to_n_O15_reaclib = 414, + k_N15_p_to_He4_C12_reaclib = 415, + k_O14_He4_to_p_F17_reaclib = 416, + k_O15_n_to_He4_C12_reaclib = 417, + k_O16_C12_to_p_Al27_reaclib = 418, + k_O16_C12_to_He4_Mg24_reaclib = 419, + k_O16_O16_to_p_P31_reaclib = 420, + k_O16_O16_to_He4_Si28_reaclib = 421, + k_O17_n_to_He4_C14_reaclib = 422, + k_O17_p_to_He4_N14_reaclib = 423, + k_O17_He4_to_n_Ne20_reaclib = 424, + k_O18_p_to_He4_N15_reaclib = 425, + k_O18_He4_to_n_Ne21_reaclib = 426, + k_F17_n_to_p_O17_reaclib = 427, + k_F18_n_to_p_O18_reaclib = 428, + k_F18_n_to_He4_N15_reaclib = 429, + k_F18_p_to_He4_O15_reaclib = 430, + k_F18_He4_to_p_Ne21_reaclib = 431, + k_F19_p_to_n_Ne19_reaclib = 432, + k_F19_p_to_He4_O16_reaclib = 433, + k_F19_He4_to_p_Ne22_reaclib = 434, + k_Ne18_n_to_p_F18_reaclib = 435, + k_Ne18_n_to_He4_O15_reaclib = 436, + k_Ne18_He4_to_p_Na21_reaclib = 437, + k_Ne19_n_to_He4_O16_reaclib = 438, + k_Ne19_He4_to_p_Na22_reaclib = 439, + k_Ne20_p_to_He4_F17_reaclib = 440, + k_Ne20_C12_to_p_P31_reaclib = 441, + k_Ne20_C12_to_He4_Si28_reaclib = 442, + k_Ne21_He4_to_n_Mg24_reaclib = 443, + k_Ne22_He4_to_n_Mg25_reaclib = 444, + k_Na21_n_to_p_Ne21_reaclib = 445, + k_Na21_n_to_He4_F18_reaclib = 446, + k_Na22_n_to_p_Ne22_reaclib = 447, + k_Na22_n_to_He4_F19_reaclib = 448, + k_Na22_He4_to_p_Mg25_reaclib = 449, + k_Na23_p_to_n_Mg23_reaclib = 450, + k_Na23_p_to_He4_Ne20_reaclib = 451, + k_Na23_He4_to_p_Mg26_reaclib = 452, + k_Mg23_n_to_He4_Ne20_reaclib = 453, + k_Mg23_n_to_C12_C12_reaclib = 454, + k_Mg23_He4_to_p_Al26_reaclib = 455, + k_Mg24_p_to_He4_Na21_reaclib = 456, + k_Mg25_He4_to_n_Si28_reaclib = 457, + k_Mg26_He4_to_n_Si29_reaclib = 458, + k_Al25_n_to_p_Mg25_reaclib = 459, + k_Al25_n_to_He4_Na22_reaclib = 460, + k_Al25_He4_to_p_Si28_reaclib = 461, + k_Al26_n_to_p_Mg26_reaclib = 462, + k_Al26_n_to_He4_Na23_reaclib = 463, + k_Al26_He4_to_p_Si29_reaclib = 464, + k_Al27_p_to_He4_Mg24_reaclib = 465, + k_Al27_He4_to_n_P30_reaclib = 466, + k_Al27_He4_to_p_Si30_reaclib = 467, + k_Si31_p_to_n_P31_reaclib = 468, + k_Si31_He4_to_n_S34_reaclib = 469, + k_P29_n_to_p_Si29_reaclib = 470, + k_P29_n_to_He4_Al26_reaclib = 471, + k_P29_He4_to_p_S32_reaclib = 472, + k_P30_n_to_p_Si30_reaclib = 473, + k_P30_He4_to_p_S33_reaclib = 474, + k_P31_p_to_He4_Si28_reaclib = 475, + k_P31_He4_to_p_S34_reaclib = 476, + k_P32_n_to_p_Si32_reaclib = 477, + k_P32_p_to_n_S32_reaclib = 478, + k_P32_p_to_He4_Si29_reaclib = 479, + k_P33_p_to_He4_Si30_reaclib = 480, + k_S32_n_to_He4_Si29_reaclib = 481, + k_S33_n_to_p_P33_reaclib = 482, + k_S33_n_to_He4_Si30_reaclib = 483, + k_S34_He4_to_n_Ar37_reaclib = 484, + k_S34_He4_to_p_Cl37_reaclib = 485, + k_S35_n_to_He4_Si32_reaclib = 486, + k_S35_p_to_He4_P32_reaclib = 487, + k_S35_He4_to_n_Ar38_reaclib = 488, + k_S36_p_to_He4_P33_reaclib = 489, + k_Cl33_n_to_p_S33_reaclib = 490, + k_Cl33_n_to_He4_P30_reaclib = 491, + k_Cl33_He4_to_p_Ar36_reaclib = 492, + k_Cl34_n_to_p_S34_reaclib = 493, + k_Cl34_n_to_He4_P31_reaclib = 494, + k_Cl34_He4_to_p_Ar37_reaclib = 495, + k_Cl35_n_to_p_S35_reaclib = 496, + k_Cl35_n_to_He4_P32_reaclib = 497, + k_Cl35_p_to_He4_S32_reaclib = 498, + k_Cl35_He4_to_p_Ar38_reaclib = 499, + k_Cl36_n_to_p_S36_reaclib = 500, + k_Cl36_n_to_He4_P33_reaclib = 501, + k_Cl36_p_to_He4_S33_reaclib = 502, + k_Ar36_n_to_p_Cl36_reaclib = 503, + k_Ar36_n_to_He4_S33_reaclib = 504, + k_Ar37_n_to_p_Cl37_reaclib = 505, + k_Ar39_n_to_He4_S36_reaclib = 506, + k_Ar39_p_to_He4_Cl36_reaclib = 507, + k_Ar40_p_to_He4_Cl37_reaclib = 508, + k_K37_n_to_p_Ar37_reaclib = 509, + k_K37_n_to_He4_Cl34_reaclib = 510, + k_K37_He4_to_p_Ca40_reaclib = 511, + k_K38_n_to_p_Ar38_reaclib = 512, + k_K38_n_to_He4_Cl35_reaclib = 513, + k_K38_He4_to_p_Ca41_reaclib = 514, + k_K39_n_to_p_Ar39_reaclib = 515, + k_K39_n_to_He4_Cl36_reaclib = 516, + k_K39_p_to_He4_Ar36_reaclib = 517, + k_K40_n_to_p_Ar40_reaclib = 518, + k_K40_n_to_He4_Cl37_reaclib = 519, + k_K40_p_to_n_Ca40_reaclib = 520, + k_K40_p_to_He4_Ar37_reaclib = 521, + k_K40_He4_to_p_Ca43_reaclib = 522, + k_K41_p_to_n_Ca41_reaclib = 523, + k_K41_p_to_He4_Ar38_reaclib = 524, + k_K41_He4_to_n_Sc44_reaclib = 525, + k_K41_He4_to_p_Ca44_reaclib = 526, + k_Ca40_n_to_He4_Ar37_reaclib = 527, + k_Ca41_n_to_He4_Ar38_reaclib = 528, + k_Ca42_n_to_He4_Ar39_reaclib = 529, + k_Ca42_p_to_He4_K39_reaclib = 530, + k_Ca43_n_to_He4_Ar40_reaclib = 531, + k_Ca43_He4_to_n_Ti46_reaclib = 532, + k_Ca45_He4_to_n_Ti48_reaclib = 533, + k_Ca47_p_to_n_Sc47_reaclib = 534, + k_Ca47_He4_to_n_Ti50_reaclib = 535, + k_Sc43_n_to_p_Ca43_reaclib = 536, + k_Sc43_n_to_He4_K40_reaclib = 537, + k_Sc43_p_to_He4_Ca40_reaclib = 538, + k_Sc43_He4_to_p_Ti46_reaclib = 539, + k_Sc44_n_to_p_Ca44_reaclib = 540, + k_Sc44_p_to_He4_Ca41_reaclib = 541, + k_Sc44_He4_to_p_Ti47_reaclib = 542, + k_Sc45_n_to_p_Ca45_reaclib = 543, + k_Sc45_p_to_He4_Ca42_reaclib = 544, + k_Sc45_He4_to_p_Ti48_reaclib = 545, + k_Sc46_n_to_p_Ca46_reaclib = 546, + k_Sc46_p_to_n_Ti46_reaclib = 547, + k_Sc46_p_to_He4_Ca43_reaclib = 548, + k_Sc46_He4_to_n_V49_reaclib = 549, + k_Sc46_He4_to_p_Ti49_reaclib = 550, + k_Sc47_p_to_He4_Ca44_reaclib = 551, + k_Sc47_He4_to_p_Ti50_reaclib = 552, + k_Sc48_n_to_p_Ca48_reaclib = 553, + k_Sc48_p_to_n_Ti48_reaclib = 554, + k_Sc48_p_to_He4_Ca45_reaclib = 555, + k_Sc48_He4_to_n_V51_reaclib = 556, + k_Sc48_He4_to_p_Ti51_reaclib = 557, + k_Sc49_p_to_n_Ti49_reaclib = 558, + k_Sc49_p_to_He4_Ca46_reaclib = 559, + k_Ti44_n_to_p_Sc44_reaclib = 560, + k_Ti44_n_to_He4_Ca41_reaclib = 561, + k_Ti44_He4_to_p_V47_reaclib = 562, + k_Ti45_n_to_p_Sc45_reaclib = 563, + k_Ti45_n_to_He4_Ca42_reaclib = 564, + k_Ti45_He4_to_p_V48_reaclib = 565, + k_Ti47_n_to_p_Sc47_reaclib = 566, + k_Ti47_n_to_He4_Ca44_reaclib = 567, + k_Ti49_n_to_He4_Ca46_reaclib = 568, + k_Ti49_He4_to_n_Cr52_reaclib = 569, + k_Ti51_n_to_He4_Ca48_reaclib = 570, + k_Ti51_p_to_n_V51_reaclib = 571, + k_Ti51_He4_to_n_Cr54_reaclib = 572, + k_V46_n_to_p_Ti46_reaclib = 573, + k_V46_n_to_He4_Sc43_reaclib = 574, + k_V46_He4_to_p_Cr49_reaclib = 575, + k_V47_n_to_p_Ti47_reaclib = 576, + k_V47_n_to_He4_Sc44_reaclib = 577, + k_V47_He4_to_p_Cr50_reaclib = 578, + k_V48_n_to_p_Ti48_reaclib = 579, + k_V48_n_to_He4_Sc45_reaclib = 580, + k_V48_He4_to_p_Cr51_reaclib = 581, + k_V49_n_to_p_Ti49_reaclib = 582, + k_V49_p_to_He4_Ti46_reaclib = 583, + k_V49_He4_to_p_Cr52_reaclib = 584, + k_V50_n_to_p_Ti50_reaclib = 585, + k_V50_n_to_He4_Sc47_reaclib = 586, + k_V50_p_to_n_Cr50_reaclib = 587, + k_V50_p_to_He4_Ti47_reaclib = 588, + k_V50_He4_to_p_Cr53_reaclib = 589, + k_V51_p_to_He4_Ti48_reaclib = 590, + k_V52_n_to_He4_Sc49_reaclib = 591, + k_V52_p_to_n_Cr52_reaclib = 592, + k_V52_p_to_He4_Ti49_reaclib = 593, + k_V52_He4_to_n_Mn55_reaclib = 594, + k_Cr48_n_to_p_V48_reaclib = 595, + k_Cr48_n_to_He4_Ti45_reaclib = 596, + k_Cr48_He4_to_p_Mn51_reaclib = 597, + k_Cr49_n_to_p_V49_reaclib = 598, + k_Cr49_n_to_He4_Ti46_reaclib = 599, + k_Cr49_He4_to_p_Mn52_reaclib = 600, + k_Cr50_n_to_He4_Ti47_reaclib = 601, + k_Cr51_n_to_p_V51_reaclib = 602, + k_Cr51_n_to_He4_Ti48_reaclib = 603, + k_Cr53_n_to_He4_Ti50_reaclib = 604, + k_Cr54_p_to_He4_V51_reaclib = 605, + k_Mn50_n_to_p_Cr50_reaclib = 606, + k_Mn50_n_to_He4_V47_reaclib = 607, + k_Mn50_He4_to_p_Fe53_reaclib = 608, + k_Mn51_n_to_p_Cr51_reaclib = 609, + k_Mn51_n_to_He4_V48_reaclib = 610, + k_Mn51_He4_to_p_Fe54_reaclib = 611, + k_Mn52_n_to_p_Cr52_reaclib = 612, + k_Mn52_n_to_He4_V49_reaclib = 613, + k_Mn52_He4_to_p_Fe55_reaclib = 614, + k_Mn53_n_to_p_Cr53_reaclib = 615, + k_Mn53_n_to_He4_V50_reaclib = 616, + k_Mn53_p_to_He4_Cr50_reaclib = 617, + k_Mn53_He4_to_p_Fe56_reaclib = 618, + k_Mn54_n_to_p_Cr54_reaclib = 619, + k_Mn54_n_to_He4_V51_reaclib = 620, + k_Mn54_p_to_He4_Cr51_reaclib = 621, + k_Mn55_p_to_He4_Cr52_reaclib = 622, + k_Fe52_n_to_p_Mn52_reaclib = 623, + k_Fe52_n_to_He4_Cr49_reaclib = 624, + k_Fe52_He4_to_p_Co55_reaclib = 625, + k_Fe53_n_to_p_Mn53_reaclib = 626, + k_Fe53_n_to_He4_Cr50_reaclib = 627, + k_Fe53_He4_to_p_Co56_reaclib = 628, + k_Fe54_n_to_p_Mn54_reaclib = 629, + k_Fe54_n_to_He4_Cr51_reaclib = 630, + k_Fe55_n_to_p_Mn55_reaclib = 631, + k_Fe55_n_to_He4_Cr52_reaclib = 632, + k_Fe56_n_to_He4_Cr53_reaclib = 633, + k_Fe57_n_to_He4_Cr54_reaclib = 634, + k_Fe57_p_to_He4_Mn54_reaclib = 635, + k_Fe58_p_to_He4_Mn55_reaclib = 636, + k_Co53_n_to_p_Fe53_reaclib = 637, + k_Co53_n_to_He4_Mn50_reaclib = 638, + k_Co53_He4_to_p_Ni56_reaclib = 639, + k_Co54_n_to_p_Fe54_reaclib = 640, + k_Co54_n_to_He4_Mn51_reaclib = 641, + k_Co54_He4_to_p_Ni57_reaclib = 642, + k_Co55_n_to_p_Fe55_reaclib = 643, + k_Co55_n_to_He4_Mn52_reaclib = 644, + k_Co55_He4_to_p_Ni58_reaclib = 645, + k_Co56_n_to_p_Fe56_reaclib = 646, + k_Co56_n_to_He4_Mn53_reaclib = 647, + k_Co56_He4_to_p_Ni59_reaclib = 648, + k_Co57_n_to_p_Fe57_reaclib = 649, + k_Co57_n_to_He4_Mn54_reaclib = 650, + k_Co57_p_to_He4_Fe54_reaclib = 651, + k_Co57_He4_to_p_Ni60_reaclib = 652, + k_Co58_n_to_p_Fe58_reaclib = 653, + k_Co58_n_to_He4_Mn55_reaclib = 654, + k_Co58_p_to_He4_Fe55_reaclib = 655, + k_Co59_p_to_He4_Fe56_reaclib = 656, + k_Ni56_n_to_p_Co56_reaclib = 657, + k_Ni56_n_to_He4_Fe53_reaclib = 658, + k_Ni57_n_to_p_Co57_reaclib = 659, + k_Ni57_n_to_He4_Fe54_reaclib = 660, + k_Ni58_n_to_p_Co58_reaclib = 661, + k_Ni58_n_to_He4_Fe55_reaclib = 662, + k_Ni59_n_to_p_Co59_reaclib = 663, + k_Ni59_n_to_He4_Fe56_reaclib = 664, + k_Ni60_n_to_He4_Fe57_reaclib = 665, + k_Ni61_n_to_He4_Fe58_reaclib = 666, + k_Ni61_p_to_He4_Co58_reaclib = 667, + k_Ni62_p_to_He4_Co59_reaclib = 668, + k_Cu57_n_to_p_Ni57_reaclib = 669, + k_Cu57_n_to_He4_Co54_reaclib = 670, + k_Cu57_He4_to_p_Zn60_reaclib = 671, + k_Cu58_n_to_p_Ni58_reaclib = 672, + k_Cu58_n_to_He4_Co55_reaclib = 673, + k_Cu59_n_to_p_Ni59_reaclib = 674, + k_Cu59_n_to_He4_Co56_reaclib = 675, + k_Cu59_p_to_He4_Ni56_reaclib = 676, + k_Cu60_n_to_p_Ni60_reaclib = 677, + k_Cu60_n_to_He4_Co57_reaclib = 678, + k_Cu60_p_to_He4_Ni57_reaclib = 679, + k_Cu61_n_to_p_Ni61_reaclib = 680, + k_Cu61_n_to_He4_Co58_reaclib = 681, + k_Cu61_p_to_He4_Ni58_reaclib = 682, + k_Cu62_n_to_p_Ni62_reaclib = 683, + k_Cu62_n_to_He4_Co59_reaclib = 684, + k_Cu62_p_to_He4_Ni59_reaclib = 685, + k_Cu63_n_to_p_Ni63_reaclib = 686, + k_Cu63_p_to_He4_Ni60_reaclib = 687, + k_Cu64_n_to_p_Ni64_reaclib = 688, + k_Cu64_p_to_He4_Ni61_reaclib = 689, + k_Cu65_p_to_He4_Ni62_reaclib = 690, + k_Zn59_n_to_p_Cu59_reaclib = 691, + k_Zn59_n_to_He4_Ni56_reaclib = 692, + k_Zn60_n_to_p_Cu60_reaclib = 693, + k_Zn60_n_to_He4_Ni57_reaclib = 694, + k_Zn61_n_to_p_Cu61_reaclib = 695, + k_Zn61_n_to_He4_Ni58_reaclib = 696, + k_Zn61_p_to_He4_Cu58_reaclib = 697, + k_Zn62_n_to_p_Cu62_reaclib = 698, + k_Zn62_n_to_He4_Ni59_reaclib = 699, + k_Zn62_p_to_He4_Cu59_reaclib = 700, + k_Zn63_n_to_p_Cu63_reaclib = 701, + k_Zn63_n_to_He4_Ni60_reaclib = 702, + k_Zn63_p_to_He4_Cu60_reaclib = 703, + k_Zn64_n_to_p_Cu64_reaclib = 704, + k_Zn64_n_to_He4_Ni61_reaclib = 705, + k_Zn64_p_to_He4_Cu61_reaclib = 706, + k_Zn65_n_to_p_Cu65_reaclib = 707, + k_Zn65_n_to_He4_Ni62_reaclib = 708, + k_Zn65_p_to_He4_Cu62_reaclib = 709, + k_Zn66_n_to_He4_Ni63_reaclib = 710, + k_Zn66_p_to_He4_Cu63_reaclib = 711, + k_Ga62_n_to_p_Zn62_reaclib = 712, + k_Ga62_n_to_He4_Cu59_reaclib = 713, + k_Ga62_p_to_He4_Zn59_reaclib = 714, + k_Ga63_n_to_p_Zn63_reaclib = 715, + k_Ga63_n_to_He4_Cu60_reaclib = 716, + k_Ga63_p_to_He4_Zn60_reaclib = 717, + k_Ga64_n_to_p_Zn64_reaclib = 718, + k_Ga64_n_to_He4_Cu61_reaclib = 719, + k_Ga64_p_to_He4_Zn61_reaclib = 720, + k_Ge63_n_to_p_Ga63_reaclib = 721, + k_Ge63_n_to_He4_Zn60_reaclib = 722, + k_Ge64_n_to_p_Ga64_reaclib = 723, + k_Ge64_n_to_He4_Zn61_reaclib = 724, + k_He3_He3_to_p_p_He4_reaclib = 725, + k_Li7_d_to_n_He4_He4_reaclib = 726, + k_Be7_d_to_p_He4_He4_reaclib = 727, + k_Be9_p_to_d_He4_He4_reaclib = 728, + k_B8_n_to_p_He4_He4_reaclib = 729, + k_B11_p_to_3He4_reaclib = 730, + k_Li7_He3_to_n_p_He4_He4_reaclib = 731, + k_Be7_He3_to_p_p_He4_He4_reaclib = 732, + k_Be9_p_to_n_p_He4_He4_reaclib = 733, + k_He4_p_n_to_Li6_reaclib = 734, + k_He4_He4_n_to_Be9_reaclib = 735, + k_He4_He4_He4_to_C12_reaclib = 736, + k_p_p_n_to_p_d_reaclib = 737, + k_Na21_to_Ne21_electron_capture_weaktab = 738, + k_Ne21_to_Na21_beta_neg_weaktab = 739, + k_Na22_to_Ne22_electron_capture_weaktab = 740, + k_Ne22_to_Na22_beta_neg_weaktab = 741, + k_Mg23_to_Na23_electron_capture_weaktab = 742, + k_Na23_to_Mg23_beta_neg_weaktab = 743, + k_Al25_to_Mg25_electron_capture_weaktab = 744, + k_Mg25_to_Al25_beta_neg_weaktab = 745, + k_Al26_to_Mg26_electron_capture_weaktab = 746, + k_Mg26_to_Al26_beta_neg_weaktab = 747, + k_P29_to_Si29_electron_capture_weaktab = 748, + k_Si29_to_P29_beta_neg_weaktab = 749, + k_P30_to_Si30_electron_capture_weaktab = 750, + k_Si30_to_P30_beta_neg_weaktab = 751, + k_P31_to_Si31_electron_capture_weaktab = 752, + k_Si31_to_P31_beta_neg_weaktab = 753, + k_P32_to_S32_beta_neg_weaktab = 754, + k_P32_to_Si32_electron_capture_weaktab = 755, + k_S32_to_P32_electron_capture_weaktab = 756, + k_Si32_to_P32_beta_neg_weaktab = 757, + k_Cl33_to_S33_electron_capture_weaktab = 758, + k_P33_to_S33_beta_neg_weaktab = 759, + k_S33_to_Cl33_beta_neg_weaktab = 760, + k_S33_to_P33_electron_capture_weaktab = 761, + k_Cl34_to_S34_electron_capture_weaktab = 762, + k_S34_to_Cl34_beta_neg_weaktab = 763, + k_Cl35_to_S35_electron_capture_weaktab = 764, + k_S35_to_Cl35_beta_neg_weaktab = 765, + k_Ar36_to_Cl36_electron_capture_weaktab = 766, + k_Cl36_to_Ar36_beta_neg_weaktab = 767, + k_Cl36_to_S36_electron_capture_weaktab = 768, + k_S36_to_Cl36_beta_neg_weaktab = 769, + k_Ar37_to_Cl37_electron_capture_weaktab = 770, + k_Ar37_to_K37_beta_neg_weaktab = 771, + k_Cl37_to_Ar37_beta_neg_weaktab = 772, + k_K37_to_Ar37_electron_capture_weaktab = 773, + k_Ar38_to_K38_beta_neg_weaktab = 774, + k_K38_to_Ar38_electron_capture_weaktab = 775, + k_Ar39_to_K39_beta_neg_weaktab = 776, + k_K39_to_Ar39_electron_capture_weaktab = 777, + k_Ar40_to_K40_beta_neg_weaktab = 778, + k_Ca40_to_K40_electron_capture_weaktab = 779, + k_K40_to_Ar40_electron_capture_weaktab = 780, + k_K40_to_Ca40_beta_neg_weaktab = 781, + k_Ca41_to_K41_electron_capture_weaktab = 782, + k_K41_to_Ca41_beta_neg_weaktab = 783, + k_Ca43_to_Sc43_beta_neg_weaktab = 784, + k_Sc43_to_Ca43_electron_capture_weaktab = 785, + k_Ca44_to_Sc44_beta_neg_weaktab = 786, + k_Sc44_to_Ca44_electron_capture_weaktab = 787, + k_Sc44_to_Ti44_beta_neg_weaktab = 788, + k_Ti44_to_Sc44_electron_capture_weaktab = 789, + k_Co53_to_Fe53_electron_capture_weaktab = 790, + k_Fe53_to_Co53_beta_neg_weaktab = 791, + k_Cu57_to_Ni57_electron_capture_weaktab = 792, + k_Ni57_to_Cu57_beta_neg_weaktab = 793, + k_Ca45_to_Sc45_beta_neg_weaktab = 794, + k_Sc45_to_Ca45_electron_capture_weaktab = 795, + k_Sc45_to_Ti45_beta_neg_weaktab = 796, + k_Ti45_to_Sc45_electron_capture_weaktab = 797, + k_Ca46_to_Sc46_beta_neg_weaktab = 798, + k_Sc46_to_Ca46_electron_capture_weaktab = 799, + k_Sc46_to_Ti46_beta_neg_weaktab = 800, + k_Ti46_to_Sc46_electron_capture_weaktab = 801, + k_Ti46_to_V46_beta_neg_weaktab = 802, + k_V46_to_Ti46_electron_capture_weaktab = 803, + k_Ca47_to_Sc47_beta_neg_weaktab = 804, + k_Sc47_to_Ca47_electron_capture_weaktab = 805, + k_Sc47_to_Ti47_beta_neg_weaktab = 806, + k_Ti47_to_Sc47_electron_capture_weaktab = 807, + k_Ti47_to_V47_beta_neg_weaktab = 808, + k_V47_to_Ti47_electron_capture_weaktab = 809, + k_Ca48_to_Sc48_beta_neg_weaktab = 810, + k_Cr48_to_V48_electron_capture_weaktab = 811, + k_Sc48_to_Ca48_electron_capture_weaktab = 812, + k_Sc48_to_Ti48_beta_neg_weaktab = 813, + k_Ti48_to_Sc48_electron_capture_weaktab = 814, + k_Ti48_to_V48_beta_neg_weaktab = 815, + k_V48_to_Cr48_beta_neg_weaktab = 816, + k_V48_to_Ti48_electron_capture_weaktab = 817, + k_Cr49_to_V49_electron_capture_weaktab = 818, + k_Sc49_to_Ti49_beta_neg_weaktab = 819, + k_Ti49_to_Sc49_electron_capture_weaktab = 820, + k_Ti49_to_V49_beta_neg_weaktab = 821, + k_V49_to_Cr49_beta_neg_weaktab = 822, + k_V49_to_Ti49_electron_capture_weaktab = 823, + k_Cr50_to_Mn50_beta_neg_weaktab = 824, + k_Cr50_to_V50_electron_capture_weaktab = 825, + k_Mn50_to_Cr50_electron_capture_weaktab = 826, + k_Ti50_to_V50_beta_neg_weaktab = 827, + k_V50_to_Cr50_beta_neg_weaktab = 828, + k_V50_to_Ti50_electron_capture_weaktab = 829, + k_Cr51_to_Mn51_beta_neg_weaktab = 830, + k_Cr51_to_V51_electron_capture_weaktab = 831, + k_Mn51_to_Cr51_electron_capture_weaktab = 832, + k_Ti51_to_V51_beta_neg_weaktab = 833, + k_V51_to_Cr51_beta_neg_weaktab = 834, + k_V51_to_Ti51_electron_capture_weaktab = 835, + k_Cr52_to_Mn52_beta_neg_weaktab = 836, + k_Cr52_to_V52_electron_capture_weaktab = 837, + k_Fe52_to_Mn52_electron_capture_weaktab = 838, + k_Mn52_to_Cr52_electron_capture_weaktab = 839, + k_Mn52_to_Fe52_beta_neg_weaktab = 840, + k_V52_to_Cr52_beta_neg_weaktab = 841, + k_Cr53_to_Mn53_beta_neg_weaktab = 842, + k_Fe53_to_Mn53_electron_capture_weaktab = 843, + k_Mn53_to_Cr53_electron_capture_weaktab = 844, + k_Mn53_to_Fe53_beta_neg_weaktab = 845, + k_Co54_to_Fe54_electron_capture_weaktab = 846, + k_Cr54_to_Mn54_beta_neg_weaktab = 847, + k_Fe54_to_Co54_beta_neg_weaktab = 848, + k_Fe54_to_Mn54_electron_capture_weaktab = 849, + k_Mn54_to_Cr54_electron_capture_weaktab = 850, + k_Mn54_to_Fe54_beta_neg_weaktab = 851, + k_Co55_to_Fe55_electron_capture_weaktab = 852, + k_Fe55_to_Co55_beta_neg_weaktab = 853, + k_Fe55_to_Mn55_electron_capture_weaktab = 854, + k_Mn55_to_Fe55_beta_neg_weaktab = 855, + k_Co56_to_Fe56_electron_capture_weaktab = 856, + k_Co56_to_Ni56_beta_neg_weaktab = 857, + k_Fe56_to_Co56_beta_neg_weaktab = 858, + k_Ni56_to_Co56_electron_capture_weaktab = 859, + k_Co57_to_Fe57_electron_capture_weaktab = 860, + k_Co57_to_Ni57_beta_neg_weaktab = 861, + k_Fe57_to_Co57_beta_neg_weaktab = 862, + k_Ni57_to_Co57_electron_capture_weaktab = 863, + k_Co58_to_Fe58_electron_capture_weaktab = 864, + k_Co58_to_Ni58_beta_neg_weaktab = 865, + k_Cu58_to_Ni58_electron_capture_weaktab = 866, + k_Fe58_to_Co58_beta_neg_weaktab = 867, + k_Ni58_to_Co58_electron_capture_weaktab = 868, + k_Ni58_to_Cu58_beta_neg_weaktab = 869, + k_Co59_to_Ni59_beta_neg_weaktab = 870, + k_Cu59_to_Ni59_electron_capture_weaktab = 871, + k_Ni59_to_Co59_electron_capture_weaktab = 872, + k_Ni59_to_Cu59_beta_neg_weaktab = 873, + k_Cu60_to_Ni60_electron_capture_weaktab = 874, + k_Cu60_to_Zn60_beta_neg_weaktab = 875, + k_Ni60_to_Cu60_beta_neg_weaktab = 876, + k_Zn60_to_Cu60_electron_capture_weaktab = 877, + k_Cu61_to_Ni61_electron_capture_weaktab = 878, + k_Cu61_to_Zn61_beta_neg_weaktab = 879, + k_Ni61_to_Cu61_beta_neg_weaktab = 880, + k_Zn61_to_Cu61_electron_capture_weaktab = 881, + k_Cu62_to_Ni62_electron_capture_weaktab = 882, + k_Cu62_to_Zn62_beta_neg_weaktab = 883, + k_Ga62_to_Zn62_electron_capture_weaktab = 884, + k_Ni62_to_Cu62_beta_neg_weaktab = 885, + k_Zn62_to_Cu62_electron_capture_weaktab = 886, + k_Zn62_to_Ga62_beta_neg_weaktab = 887, + k_Cu63_to_Ni63_electron_capture_weaktab = 888, + k_Cu63_to_Zn63_beta_neg_weaktab = 889, + k_Ga63_to_Zn63_electron_capture_weaktab = 890, + k_Ni63_to_Cu63_beta_neg_weaktab = 891, + k_Zn63_to_Cu63_electron_capture_weaktab = 892, + k_Zn63_to_Ga63_beta_neg_weaktab = 893, + k_Cu64_to_Ni64_electron_capture_weaktab = 894, + k_Cu64_to_Zn64_beta_neg_weaktab = 895, + k_Ga64_to_Ge64_beta_neg_weaktab = 896, + k_Ga64_to_Zn64_electron_capture_weaktab = 897, + k_Ge64_to_Ga64_electron_capture_weaktab = 898, + k_Ni64_to_Cu64_beta_neg_weaktab = 899, + k_Zn64_to_Cu64_electron_capture_weaktab = 900, + k_Zn64_to_Ga64_beta_neg_weaktab = 901, + k_Cu65_to_Zn65_beta_neg_weaktab = 902, + k_Zn65_to_Cu65_electron_capture_weaktab = 903, + k_n_to_p_beta_neg_weaktab = 904, + k_p_to_n_electron_capture_weaktab = 905, + k_d_to_n_p_derived = 906, + k_He3_to_p_d_derived = 907, + k_He4_to_n_He3_derived = 908, + k_He4_to_d_d_derived = 909, + k_Li6_to_He4_d_derived = 910, + k_Li7_to_n_Li6_derived = 911, + k_Be7_to_p_Li6_derived = 912, + k_Be7_to_He4_He3_derived = 913, + k_B8_to_p_Be7_derived = 914, + k_B10_to_p_Be9_derived = 915, + k_B10_to_He4_Li6_derived = 916, + k_B11_to_n_B10_derived = 917, + k_B11_to_He4_Li7_derived = 918, + k_C12_to_p_B11_derived = 919, + k_C13_to_n_C12_derived = 920, + k_C14_to_n_C13_derived = 921, + k_N13_to_p_C12_derived = 922, + k_N14_to_n_N13_derived = 923, + k_N14_to_p_C13_derived = 924, + k_N15_to_n_N14_derived = 925, + k_N15_to_p_C14_derived = 926, + k_O14_to_p_N13_derived = 927, + k_O15_to_n_O14_derived = 928, + k_O15_to_p_N14_derived = 929, + k_O16_to_n_O15_derived = 930, + k_O16_to_p_N15_derived = 931, + k_O16_to_He4_C12_derived = 932, + k_O17_to_n_O16_derived = 933, + k_O18_to_n_O17_derived = 934, + k_O18_to_He4_C14_derived = 935, + k_F17_to_p_O16_derived = 936, + k_F18_to_n_F17_derived = 937, + k_F18_to_p_O17_derived = 938, + k_F18_to_He4_N14_derived = 939, + k_F19_to_n_F18_derived = 940, + k_F19_to_p_O18_derived = 941, + k_F19_to_He4_N15_derived = 942, + k_Ne18_to_p_F17_derived = 943, + k_Ne18_to_He4_O14_derived = 944, + k_Ne19_to_n_Ne18_derived = 945, + k_Ne19_to_p_F18_derived = 946, + k_Ne19_to_He4_O15_derived = 947, + k_Ne20_to_n_Ne19_derived = 948, + k_Ne20_to_p_F19_derived = 949, + k_Ne20_to_He4_O16_derived = 950, + k_Ne21_to_n_Ne20_derived = 951, + k_Ne21_to_He4_O17_derived = 952, + k_Ne22_to_n_Ne21_derived = 953, + k_Ne22_to_He4_O18_derived = 954, + k_Na21_to_p_Ne20_derived = 955, + k_Na21_to_He4_F17_derived = 956, + k_Na22_to_n_Na21_derived = 957, + k_Na22_to_p_Ne21_derived = 958, + k_Na22_to_He4_F18_derived = 959, + k_Na23_to_n_Na22_derived = 960, + k_Na23_to_p_Ne22_derived = 961, + k_Na23_to_He4_F19_derived = 962, + k_Mg23_to_p_Na22_derived = 963, + k_Mg23_to_He4_Ne19_derived = 964, + k_Mg24_to_n_Mg23_derived = 965, + k_Mg24_to_p_Na23_derived = 966, + k_Mg24_to_He4_Ne20_derived = 967, + k_Mg25_to_n_Mg24_derived = 968, + k_Mg25_to_He4_Ne21_derived = 969, + k_Mg26_to_n_Mg25_derived = 970, + k_Mg26_to_He4_Ne22_derived = 971, + k_Al25_to_p_Mg24_derived = 972, + k_Al25_to_He4_Na21_derived = 973, + k_Al26_to_n_Al25_derived = 974, + k_Al26_to_p_Mg25_derived = 975, + k_Al26_to_He4_Na22_derived = 976, + k_Al27_to_n_Al26_derived = 977, + k_Al27_to_p_Mg26_derived = 978, + k_Al27_to_He4_Na23_derived = 979, + k_Si28_to_p_Al27_derived = 980, + k_Si28_to_He4_Mg24_derived = 981, + k_Si29_to_n_Si28_derived = 982, + k_Si29_to_He4_Mg25_derived = 983, + k_Si30_to_n_Si29_derived = 984, + k_Si30_to_He4_Mg26_derived = 985, + k_Si31_to_n_Si30_derived = 986, + k_Si32_to_n_Si31_derived = 987, + k_P29_to_p_Si28_derived = 988, + k_P29_to_He4_Al25_derived = 989, + k_P30_to_n_P29_derived = 990, + k_P30_to_p_Si29_derived = 991, + k_P30_to_He4_Al26_derived = 992, + k_P31_to_n_P30_derived = 993, + k_P31_to_p_Si30_derived = 994, + k_P31_to_He4_Al27_derived = 995, + k_P32_to_n_P31_derived = 996, + k_P32_to_p_Si31_derived = 997, + k_P33_to_n_P32_derived = 998, + k_P33_to_p_Si32_derived = 999, + k_S32_to_p_P31_derived = 1000, + k_S32_to_He4_Si28_derived = 1001, + k_S33_to_n_S32_derived = 1002, + k_S33_to_p_P32_derived = 1003, + k_S33_to_He4_Si29_derived = 1004, + k_S34_to_n_S33_derived = 1005, + k_S34_to_p_P33_derived = 1006, + k_S34_to_He4_Si30_derived = 1007, + k_S35_to_n_S34_derived = 1008, + k_S35_to_He4_Si31_derived = 1009, + k_S36_to_n_S35_derived = 1010, + k_S36_to_He4_Si32_derived = 1011, + k_Cl33_to_p_S32_derived = 1012, + k_Cl33_to_He4_P29_derived = 1013, + k_Cl34_to_n_Cl33_derived = 1014, + k_Cl34_to_p_S33_derived = 1015, + k_Cl34_to_He4_P30_derived = 1016, + k_Cl35_to_n_Cl34_derived = 1017, + k_Cl35_to_p_S34_derived = 1018, + k_Cl35_to_He4_P31_derived = 1019, + k_Cl36_to_n_Cl35_derived = 1020, + k_Cl36_to_p_S35_derived = 1021, + k_Cl36_to_He4_P32_derived = 1022, + k_Cl37_to_n_Cl36_derived = 1023, + k_Cl37_to_p_S36_derived = 1024, + k_Cl37_to_He4_P33_derived = 1025, + k_Ar36_to_p_Cl35_derived = 1026, + k_Ar36_to_He4_S32_derived = 1027, + k_Ar37_to_n_Ar36_derived = 1028, + k_Ar37_to_p_Cl36_derived = 1029, + k_Ar37_to_He4_S33_derived = 1030, + k_Ar38_to_n_Ar37_derived = 1031, + k_Ar38_to_p_Cl37_derived = 1032, + k_Ar38_to_He4_S34_derived = 1033, + k_Ar39_to_n_Ar38_derived = 1034, + k_Ar39_to_He4_S35_derived = 1035, + k_Ar40_to_n_Ar39_derived = 1036, + k_Ar40_to_He4_S36_derived = 1037, + k_K37_to_p_Ar36_derived = 1038, + k_K37_to_He4_Cl33_derived = 1039, + k_K38_to_n_K37_derived = 1040, + k_K38_to_p_Ar37_derived = 1041, + k_K38_to_He4_Cl34_derived = 1042, + k_K39_to_n_K38_derived = 1043, + k_K39_to_p_Ar38_derived = 1044, + k_K39_to_He4_Cl35_derived = 1045, + k_K40_to_n_K39_derived = 1046, + k_K40_to_p_Ar39_derived = 1047, + k_K40_to_He4_Cl36_derived = 1048, + k_K41_to_n_K40_derived = 1049, + k_K41_to_p_Ar40_derived = 1050, + k_K41_to_He4_Cl37_derived = 1051, + k_Ca40_to_p_K39_derived = 1052, + k_Ca40_to_He4_Ar36_derived = 1053, + k_Ca41_to_n_Ca40_derived = 1054, + k_Ca41_to_p_K40_derived = 1055, + k_Ca41_to_He4_Ar37_derived = 1056, + k_Ca42_to_n_Ca41_derived = 1057, + k_Ca42_to_p_K41_derived = 1058, + k_Ca42_to_He4_Ar38_derived = 1059, + k_Ca43_to_n_Ca42_derived = 1060, + k_Ca43_to_He4_Ar39_derived = 1061, + k_Ca44_to_n_Ca43_derived = 1062, + k_Ca44_to_He4_Ar40_derived = 1063, + k_Ca45_to_n_Ca44_derived = 1064, + k_Ca46_to_n_Ca45_derived = 1065, + k_Ca47_to_n_Ca46_derived = 1066, + k_Ca48_to_n_Ca47_derived = 1067, + k_Sc43_to_p_Ca42_derived = 1068, + k_Sc43_to_He4_K39_derived = 1069, + k_Sc44_to_n_Sc43_derived = 1070, + k_Sc44_to_p_Ca43_derived = 1071, + k_Sc44_to_He4_K40_derived = 1072, + k_Sc45_to_n_Sc44_derived = 1073, + k_Sc45_to_p_Ca44_derived = 1074, + k_Sc45_to_He4_K41_derived = 1075, + k_Sc46_to_n_Sc45_derived = 1076, + k_Sc46_to_p_Ca45_derived = 1077, + k_Sc47_to_n_Sc46_derived = 1078, + k_Sc47_to_p_Ca46_derived = 1079, + k_Sc48_to_n_Sc47_derived = 1080, + k_Sc48_to_p_Ca47_derived = 1081, + k_Sc49_to_n_Sc48_derived = 1082, + k_Sc49_to_p_Ca48_derived = 1083, + k_Ti44_to_p_Sc43_derived = 1084, + k_Ti44_to_He4_Ca40_derived = 1085, + k_Ti45_to_n_Ti44_derived = 1086, + k_Ti45_to_p_Sc44_derived = 1087, + k_Ti45_to_He4_Ca41_derived = 1088, + k_Ti46_to_n_Ti45_derived = 1089, + k_Ti46_to_p_Sc45_derived = 1090, + k_Ti46_to_He4_Ca42_derived = 1091, + k_Ti47_to_n_Ti46_derived = 1092, + k_Ti47_to_p_Sc46_derived = 1093, + k_Ti47_to_He4_Ca43_derived = 1094, + k_Ti48_to_n_Ti47_derived = 1095, + k_Ti48_to_p_Sc47_derived = 1096, + k_Ti48_to_He4_Ca44_derived = 1097, + k_Ti49_to_n_Ti48_derived = 1098, + k_Ti49_to_p_Sc48_derived = 1099, + k_Ti49_to_He4_Ca45_derived = 1100, + k_Ti50_to_n_Ti49_derived = 1101, + k_Ti50_to_p_Sc49_derived = 1102, + k_Ti50_to_He4_Ca46_derived = 1103, + k_Ti51_to_n_Ti50_derived = 1104, + k_Ti51_to_He4_Ca47_derived = 1105, + k_V46_to_p_Ti45_derived = 1106, + k_V47_to_n_V46_derived = 1107, + k_V47_to_p_Ti46_derived = 1108, + k_V47_to_He4_Sc43_derived = 1109, + k_V48_to_n_V47_derived = 1110, + k_V48_to_p_Ti47_derived = 1111, + k_V48_to_He4_Sc44_derived = 1112, + k_V49_to_n_V48_derived = 1113, + k_V49_to_p_Ti48_derived = 1114, + k_V49_to_He4_Sc45_derived = 1115, + k_V50_to_n_V49_derived = 1116, + k_V50_to_p_Ti49_derived = 1117, + k_V50_to_He4_Sc46_derived = 1118, + k_V51_to_n_V50_derived = 1119, + k_V51_to_p_Ti50_derived = 1120, + k_V51_to_He4_Sc47_derived = 1121, + k_V52_to_n_V51_derived = 1122, + k_V52_to_p_Ti51_derived = 1123, + k_V52_to_He4_Sc48_derived = 1124, + k_Cr48_to_p_V47_derived = 1125, + k_Cr48_to_He4_Ti44_derived = 1126, + k_Cr49_to_n_Cr48_derived = 1127, + k_Cr49_to_p_V48_derived = 1128, + k_Cr49_to_He4_Ti45_derived = 1129, + k_Cr50_to_n_Cr49_derived = 1130, + k_Cr50_to_p_V49_derived = 1131, + k_Cr50_to_He4_Ti46_derived = 1132, + k_Cr51_to_n_Cr50_derived = 1133, + k_Cr51_to_p_V50_derived = 1134, + k_Cr51_to_He4_Ti47_derived = 1135, + k_Cr52_to_n_Cr51_derived = 1136, + k_Cr52_to_p_V51_derived = 1137, + k_Cr52_to_He4_Ti48_derived = 1138, + k_Cr53_to_n_Cr52_derived = 1139, + k_Cr53_to_p_V52_derived = 1140, + k_Cr53_to_He4_Ti49_derived = 1141, + k_Cr54_to_n_Cr53_derived = 1142, + k_Cr54_to_He4_Ti50_derived = 1143, + k_Mn50_to_p_Cr49_derived = 1144, + k_Mn50_to_He4_V46_derived = 1145, + k_Mn51_to_n_Mn50_derived = 1146, + k_Mn51_to_p_Cr50_derived = 1147, + k_Mn51_to_He4_V47_derived = 1148, + k_Mn52_to_n_Mn51_derived = 1149, + k_Mn52_to_p_Cr51_derived = 1150, + k_Mn52_to_He4_V48_derived = 1151, + k_Mn53_to_n_Mn52_derived = 1152, + k_Mn53_to_p_Cr52_derived = 1153, + k_Mn53_to_He4_V49_derived = 1154, + k_Mn54_to_n_Mn53_derived = 1155, + k_Mn54_to_p_Cr53_derived = 1156, + k_Mn54_to_He4_V50_derived = 1157, + k_Mn55_to_n_Mn54_derived = 1158, + k_Mn55_to_p_Cr54_derived = 1159, + k_Mn55_to_He4_V51_derived = 1160, + k_Fe52_to_p_Mn51_derived = 1161, + k_Fe52_to_He4_Cr48_derived = 1162, + k_Fe53_to_n_Fe52_derived = 1163, + k_Fe53_to_p_Mn52_derived = 1164, + k_Fe53_to_He4_Cr49_derived = 1165, + k_Fe54_to_n_Fe53_derived = 1166, + k_Fe54_to_p_Mn53_derived = 1167, + k_Fe54_to_He4_Cr50_derived = 1168, + k_Fe55_to_n_Fe54_derived = 1169, + k_Fe55_to_p_Mn54_derived = 1170, + k_Fe55_to_He4_Cr51_derived = 1171, + k_Fe56_to_n_Fe55_derived = 1172, + k_Fe56_to_p_Mn55_derived = 1173, + k_Fe56_to_He4_Cr52_derived = 1174, + k_Fe57_to_n_Fe56_derived = 1175, + k_Fe57_to_He4_Cr53_derived = 1176, + k_Fe58_to_n_Fe57_derived = 1177, + k_Fe58_to_He4_Cr54_derived = 1178, + k_Co53_to_p_Fe52_derived = 1179, + k_Co54_to_n_Co53_derived = 1180, + k_Co54_to_p_Fe53_derived = 1181, + k_Co54_to_He4_Mn50_derived = 1182, + k_Co55_to_n_Co54_derived = 1183, + k_Co55_to_p_Fe54_derived = 1184, + k_Co55_to_He4_Mn51_derived = 1185, + k_Co56_to_n_Co55_derived = 1186, + k_Co56_to_p_Fe55_derived = 1187, + k_Co56_to_He4_Mn52_derived = 1188, + k_Co57_to_n_Co56_derived = 1189, + k_Co57_to_p_Fe56_derived = 1190, + k_Co57_to_He4_Mn53_derived = 1191, + k_Co58_to_n_Co57_derived = 1192, + k_Co58_to_p_Fe57_derived = 1193, + k_Co58_to_He4_Mn54_derived = 1194, + k_Co59_to_n_Co58_derived = 1195, + k_Co59_to_p_Fe58_derived = 1196, + k_Co59_to_He4_Mn55_derived = 1197, + k_Ni56_to_p_Co55_derived = 1198, + k_Ni56_to_He4_Fe52_derived = 1199, + k_Ni57_to_n_Ni56_derived = 1200, + k_Ni57_to_p_Co56_derived = 1201, + k_Ni57_to_He4_Fe53_derived = 1202, + k_Ni58_to_n_Ni57_derived = 1203, + k_Ni58_to_p_Co57_derived = 1204, + k_Ni58_to_He4_Fe54_derived = 1205, + k_Ni59_to_n_Ni58_derived = 1206, + k_Ni59_to_p_Co58_derived = 1207, + k_Ni59_to_He4_Fe55_derived = 1208, + k_Ni60_to_n_Ni59_derived = 1209, + k_Ni60_to_p_Co59_derived = 1210, + k_Ni60_to_He4_Fe56_derived = 1211, + k_Ni61_to_n_Ni60_derived = 1212, + k_Ni61_to_He4_Fe57_derived = 1213, + k_Ni62_to_n_Ni61_derived = 1214, + k_Ni62_to_He4_Fe58_derived = 1215, + k_Ni63_to_n_Ni62_derived = 1216, + k_Ni64_to_n_Ni63_derived = 1217, + k_Cu57_to_p_Ni56_derived = 1218, + k_Cu57_to_He4_Co53_derived = 1219, + k_Cu58_to_n_Cu57_derived = 1220, + k_Cu58_to_p_Ni57_derived = 1221, + k_Cu58_to_He4_Co54_derived = 1222, + k_Cu59_to_n_Cu58_derived = 1223, + k_Cu59_to_p_Ni58_derived = 1224, + k_Cu59_to_He4_Co55_derived = 1225, + k_Cu60_to_n_Cu59_derived = 1226, + k_Cu60_to_p_Ni59_derived = 1227, + k_Cu60_to_He4_Co56_derived = 1228, + k_Cu61_to_n_Cu60_derived = 1229, + k_Cu61_to_p_Ni60_derived = 1230, + k_Cu61_to_He4_Co57_derived = 1231, + k_Cu62_to_n_Cu61_derived = 1232, + k_Cu62_to_p_Ni61_derived = 1233, + k_Cu62_to_He4_Co58_derived = 1234, + k_Cu63_to_n_Cu62_derived = 1235, + k_Cu63_to_p_Ni62_derived = 1236, + k_Cu63_to_He4_Co59_derived = 1237, + k_Cu64_to_n_Cu63_derived = 1238, + k_Cu64_to_p_Ni63_derived = 1239, + k_Cu65_to_n_Cu64_derived = 1240, + k_Cu65_to_p_Ni64_derived = 1241, + k_Zn59_to_p_Cu58_derived = 1242, + k_Zn60_to_n_Zn59_derived = 1243, + k_Zn60_to_p_Cu59_derived = 1244, + k_Zn60_to_He4_Ni56_derived = 1245, + k_Zn61_to_n_Zn60_derived = 1246, + k_Zn61_to_p_Cu60_derived = 1247, + k_Zn61_to_He4_Ni57_derived = 1248, + k_Zn62_to_n_Zn61_derived = 1249, + k_Zn62_to_p_Cu61_derived = 1250, + k_Zn62_to_He4_Ni58_derived = 1251, + k_Zn63_to_n_Zn62_derived = 1252, + k_Zn63_to_p_Cu62_derived = 1253, + k_Zn63_to_He4_Ni59_derived = 1254, + k_Zn64_to_n_Zn63_derived = 1255, + k_Zn64_to_p_Cu63_derived = 1256, + k_Zn64_to_He4_Ni60_derived = 1257, + k_Zn65_to_n_Zn64_derived = 1258, + k_Zn65_to_p_Cu64_derived = 1259, + k_Zn65_to_He4_Ni61_derived = 1260, + k_Zn66_to_n_Zn65_derived = 1261, + k_Zn66_to_p_Cu65_derived = 1262, + k_Zn66_to_He4_Ni62_derived = 1263, + k_Ga62_to_p_Zn61_derived = 1264, + k_Ga62_to_He4_Cu58_derived = 1265, + k_Ga63_to_n_Ga62_derived = 1266, + k_Ga63_to_p_Zn62_derived = 1267, + k_Ga63_to_He4_Cu59_derived = 1268, + k_Ga64_to_n_Ga63_derived = 1269, + k_Ga64_to_p_Zn63_derived = 1270, + k_Ga64_to_He4_Cu60_derived = 1271, + k_Ge63_to_p_Ga62_derived = 1272, + k_Ge63_to_He4_Zn59_derived = 1273, + k_Ge64_to_n_Ge63_derived = 1274, + k_Ge64_to_p_Ga63_derived = 1275, + k_Ge64_to_He4_Zn60_derived = 1276, + k_Li6_to_n_p_He4_derived = 1277, + k_Be9_to_n_He4_He4_derived = 1278, + k_C12_to_3He4_derived = 1279, + k_He3_n_to_d_d_derived = 1280, + k_He3_He4_to_p_Li6_derived = 1281, + k_He4_p_to_d_He3_derived = 1282, + k_He4_He4_to_n_Be7_derived = 1283, + k_He4_He4_to_p_Li7_derived = 1284, + k_Li6_He4_to_p_Be9_derived = 1285, + k_Li7_p_to_n_Be7_derived = 1286, + k_Li7_p_to_d_Li6_derived = 1287, + k_Li7_He4_to_n_B10_derived = 1288, + k_Be7_n_to_d_Li6_derived = 1289, + k_Be7_He4_to_p_B10_derived = 1290, + k_C12_n_to_He4_Be9_derived = 1291, + k_C12_He4_to_n_O15_derived = 1292, + k_C12_He4_to_p_N15_derived = 1293, + k_C12_C12_to_n_Mg23_derived = 1294, + k_C13_p_to_He4_B10_derived = 1295, + k_C14_p_to_n_N14_derived = 1296, + k_C14_p_to_He4_B11_derived = 1297, + k_C14_He4_to_n_O17_derived = 1298, + k_N13_n_to_p_C13_derived = 1299, + k_N13_n_to_He4_B10_derived = 1300, + k_N14_n_to_d_C13_derived = 1301, + k_N14_n_to_He4_B11_derived = 1302, + k_N14_He4_to_p_O17_derived = 1303, + k_N15_n_to_d_C14_derived = 1304, + k_N15_He4_to_n_F18_derived = 1305, + k_N15_He4_to_p_O18_derived = 1306, + k_O14_n_to_p_N14_derived = 1307, + k_O15_n_to_p_N15_derived = 1308, + k_O15_He4_to_n_Ne18_derived = 1309, + k_O15_He4_to_p_F18_derived = 1310, + k_O16_n_to_He4_C13_derived = 1311, + k_O16_p_to_He4_N13_derived = 1312, + k_O16_He4_to_n_Ne19_derived = 1313, + k_O16_He4_to_p_F19_derived = 1314, + k_O17_p_to_n_F17_derived = 1315, + k_O18_p_to_n_F18_derived = 1316, + k_F17_n_to_He4_N14_derived = 1317, + k_F17_p_to_He4_O14_derived = 1318, + k_F17_He4_to_p_Ne20_derived = 1319, + k_F18_p_to_n_Ne18_derived = 1320, + k_F18_He4_to_n_Na21_derived = 1321, + k_F19_He4_to_n_Na22_derived = 1322, + k_Ne19_n_to_p_F19_derived = 1323, + k_Ne20_n_to_He4_O17_derived = 1324, + k_Ne20_He4_to_n_Mg23_derived = 1325, + k_Ne20_He4_to_p_Na23_derived = 1326, + k_Ne20_He4_to_C12_C12_derived = 1327, + k_Ne21_n_to_He4_O18_derived = 1328, + k_Ne21_p_to_n_Na21_derived = 1329, + k_Ne21_p_to_He4_F18_derived = 1330, + k_Ne22_p_to_n_Na22_derived = 1331, + k_Ne22_p_to_He4_F19_derived = 1332, + k_Na21_p_to_He4_Ne18_derived = 1333, + k_Na21_He4_to_p_Mg24_derived = 1334, + k_Na22_p_to_He4_Ne19_derived = 1335, + k_Na22_He4_to_n_Al25_derived = 1336, + k_Na23_p_to_C12_C12_derived = 1337, + k_Na23_He4_to_n_Al26_derived = 1338, + k_Mg23_n_to_p_Na23_derived = 1339, + k_Mg24_n_to_He4_Ne21_derived = 1340, + k_Mg24_He4_to_p_Al27_derived = 1341, + k_Mg24_He4_to_C12_O16_derived = 1342, + k_Mg25_n_to_He4_Ne22_derived = 1343, + k_Mg25_p_to_n_Al25_derived = 1344, + k_Mg25_p_to_He4_Na22_derived = 1345, + k_Mg26_p_to_n_Al26_derived = 1346, + k_Mg26_p_to_He4_Na23_derived = 1347, + k_Al26_p_to_He4_Mg23_derived = 1348, + k_Al26_He4_to_n_P29_derived = 1349, + k_Al27_p_to_C12_O16_derived = 1350, + k_Si28_n_to_He4_Mg25_derived = 1351, + k_Si28_p_to_He4_Al25_derived = 1352, + k_Si28_He4_to_p_P31_derived = 1353, + k_Si28_He4_to_C12_Ne20_derived = 1354, + k_Si28_He4_to_O16_O16_derived = 1355, + k_Si29_n_to_He4_Mg26_derived = 1356, + k_Si29_p_to_n_P29_derived = 1357, + k_Si29_p_to_He4_Al26_derived = 1358, + k_Si29_He4_to_n_S32_derived = 1359, + k_Si29_He4_to_p_P32_derived = 1360, + k_Si30_p_to_n_P30_derived = 1361, + k_Si30_p_to_He4_Al27_derived = 1362, + k_Si30_He4_to_n_S33_derived = 1363, + k_Si30_He4_to_p_P33_derived = 1364, + k_Si32_p_to_n_P32_derived = 1365, + k_Si32_He4_to_n_S35_derived = 1366, + k_P30_n_to_He4_Al27_derived = 1367, + k_P30_He4_to_n_Cl33_derived = 1368, + k_P31_n_to_p_Si31_derived = 1369, + k_P31_p_to_C12_Ne20_derived = 1370, + k_P31_p_to_O16_O16_derived = 1371, + k_P31_He4_to_n_Cl34_derived = 1372, + k_P32_He4_to_n_Cl35_derived = 1373, + k_P32_He4_to_p_S35_derived = 1374, + k_P33_p_to_n_S33_derived = 1375, + k_P33_He4_to_n_Cl36_derived = 1376, + k_P33_He4_to_p_S36_derived = 1377, + k_S32_n_to_p_P32_derived = 1378, + k_S32_p_to_He4_P29_derived = 1379, + k_S32_He4_to_p_Cl35_derived = 1380, + k_S33_p_to_n_Cl33_derived = 1381, + k_S33_p_to_He4_P30_derived = 1382, + k_S33_He4_to_n_Ar36_derived = 1383, + k_S33_He4_to_p_Cl36_derived = 1384, + k_S34_n_to_He4_Si31_derived = 1385, + k_S34_p_to_n_Cl34_derived = 1386, + k_S34_p_to_He4_P31_derived = 1387, + k_S35_p_to_n_Cl35_derived = 1388, + k_S36_p_to_n_Cl36_derived = 1389, + k_S36_He4_to_n_Ar39_derived = 1390, + k_Cl34_He4_to_n_K37_derived = 1391, + k_Cl35_He4_to_n_K38_derived = 1392, + k_Cl36_p_to_n_Ar36_derived = 1393, + k_Cl36_He4_to_n_K39_derived = 1394, + k_Cl36_He4_to_p_Ar39_derived = 1395, + k_Cl37_p_to_n_Ar37_derived = 1396, + k_Cl37_p_to_He4_S34_derived = 1397, + k_Cl37_He4_to_n_K40_derived = 1398, + k_Cl37_He4_to_p_Ar40_derived = 1399, + k_Ar36_p_to_He4_Cl33_derived = 1400, + k_Ar36_He4_to_p_K39_derived = 1401, + k_Ar37_n_to_He4_S34_derived = 1402, + k_Ar37_p_to_n_K37_derived = 1403, + k_Ar37_p_to_He4_Cl34_derived = 1404, + k_Ar37_He4_to_n_Ca40_derived = 1405, + k_Ar37_He4_to_p_K40_derived = 1406, + k_Ar38_n_to_He4_S35_derived = 1407, + k_Ar38_p_to_n_K38_derived = 1408, + k_Ar38_p_to_He4_Cl35_derived = 1409, + k_Ar38_He4_to_n_Ca41_derived = 1410, + k_Ar38_He4_to_p_K41_derived = 1411, + k_Ar39_p_to_n_K39_derived = 1412, + k_Ar39_He4_to_n_Ca42_derived = 1413, + k_Ar40_p_to_n_K40_derived = 1414, + k_Ar40_He4_to_n_Ca43_derived = 1415, + k_K39_He4_to_p_Ca42_derived = 1416, + k_K40_He4_to_n_Sc43_derived = 1417, + k_Ca40_n_to_p_K40_derived = 1418, + k_Ca40_p_to_He4_K37_derived = 1419, + k_Ca40_He4_to_p_Sc43_derived = 1420, + k_Ca41_n_to_p_K41_derived = 1421, + k_Ca41_p_to_He4_K38_derived = 1422, + k_Ca41_He4_to_n_Ti44_derived = 1423, + k_Ca41_He4_to_p_Sc44_derived = 1424, + k_Ca42_He4_to_n_Ti45_derived = 1425, + k_Ca42_He4_to_p_Sc45_derived = 1426, + k_Ca43_p_to_n_Sc43_derived = 1427, + k_Ca43_p_to_He4_K40_derived = 1428, + k_Ca43_He4_to_p_Sc46_derived = 1429, + k_Ca44_p_to_n_Sc44_derived = 1430, + k_Ca44_p_to_He4_K41_derived = 1431, + k_Ca44_He4_to_n_Ti47_derived = 1432, + k_Ca44_He4_to_p_Sc47_derived = 1433, + k_Ca45_p_to_n_Sc45_derived = 1434, + k_Ca45_He4_to_p_Sc48_derived = 1435, + k_Ca46_p_to_n_Sc46_derived = 1436, + k_Ca46_He4_to_n_Ti49_derived = 1437, + k_Ca46_He4_to_p_Sc49_derived = 1438, + k_Ca48_p_to_n_Sc48_derived = 1439, + k_Ca48_He4_to_n_Ti51_derived = 1440, + k_Sc43_He4_to_n_V46_derived = 1441, + k_Sc44_n_to_He4_K41_derived = 1442, + k_Sc44_p_to_n_Ti44_derived = 1443, + k_Sc44_He4_to_n_V47_derived = 1444, + k_Sc45_p_to_n_Ti45_derived = 1445, + k_Sc45_He4_to_n_V48_derived = 1446, + k_Sc47_n_to_p_Ca47_derived = 1447, + k_Sc47_p_to_n_Ti47_derived = 1448, + k_Sc47_He4_to_n_V50_derived = 1449, + k_Sc49_He4_to_n_V52_derived = 1450, + k_Ti45_He4_to_n_Cr48_derived = 1451, + k_Ti46_n_to_p_Sc46_derived = 1452, + k_Ti46_n_to_He4_Ca43_derived = 1453, + k_Ti46_p_to_n_V46_derived = 1454, + k_Ti46_p_to_He4_Sc43_derived = 1455, + k_Ti46_He4_to_n_Cr49_derived = 1456, + k_Ti46_He4_to_p_V49_derived = 1457, + k_Ti47_p_to_n_V47_derived = 1458, + k_Ti47_p_to_He4_Sc44_derived = 1459, + k_Ti47_He4_to_n_Cr50_derived = 1460, + k_Ti47_He4_to_p_V50_derived = 1461, + k_Ti48_n_to_p_Sc48_derived = 1462, + k_Ti48_n_to_He4_Ca45_derived = 1463, + k_Ti48_p_to_n_V48_derived = 1464, + k_Ti48_p_to_He4_Sc45_derived = 1465, + k_Ti48_He4_to_n_Cr51_derived = 1466, + k_Ti48_He4_to_p_V51_derived = 1467, + k_Ti49_n_to_p_Sc49_derived = 1468, + k_Ti49_p_to_n_V49_derived = 1469, + k_Ti49_p_to_He4_Sc46_derived = 1470, + k_Ti49_He4_to_p_V52_derived = 1471, + k_Ti50_n_to_He4_Ca47_derived = 1472, + k_Ti50_p_to_n_V50_derived = 1473, + k_Ti50_p_to_He4_Sc47_derived = 1474, + k_Ti50_He4_to_n_Cr53_derived = 1475, + k_Ti51_p_to_He4_Sc48_derived = 1476, + k_V47_p_to_He4_Ti44_derived = 1477, + k_V47_He4_to_n_Mn50_derived = 1478, + k_V48_p_to_n_Cr48_derived = 1479, + k_V48_p_to_He4_Ti45_derived = 1480, + k_V48_He4_to_n_Mn51_derived = 1481, + k_V49_n_to_He4_Sc46_derived = 1482, + k_V49_p_to_n_Cr49_derived = 1483, + k_V49_He4_to_n_Mn52_derived = 1484, + k_V50_He4_to_n_Mn53_derived = 1485, + k_V51_n_to_p_Ti51_derived = 1486, + k_V51_n_to_He4_Sc48_derived = 1487, + k_V51_p_to_n_Cr51_derived = 1488, + k_V51_He4_to_n_Mn54_derived = 1489, + k_V51_He4_to_p_Cr54_derived = 1490, + k_Cr49_p_to_He4_V46_derived = 1491, + k_Cr49_He4_to_n_Fe52_derived = 1492, + k_Cr50_n_to_p_V50_derived = 1493, + k_Cr50_p_to_n_Mn50_derived = 1494, + k_Cr50_p_to_He4_V47_derived = 1495, + k_Cr50_He4_to_n_Fe53_derived = 1496, + k_Cr50_He4_to_p_Mn53_derived = 1497, + k_Cr51_p_to_n_Mn51_derived = 1498, + k_Cr51_p_to_He4_V48_derived = 1499, + k_Cr51_He4_to_n_Fe54_derived = 1500, + k_Cr51_He4_to_p_Mn54_derived = 1501, + k_Cr52_n_to_p_V52_derived = 1502, + k_Cr52_n_to_He4_Ti49_derived = 1503, + k_Cr52_p_to_n_Mn52_derived = 1504, + k_Cr52_p_to_He4_V49_derived = 1505, + k_Cr52_He4_to_n_Fe55_derived = 1506, + k_Cr52_He4_to_p_Mn55_derived = 1507, + k_Cr53_p_to_n_Mn53_derived = 1508, + k_Cr53_p_to_He4_V50_derived = 1509, + k_Cr53_He4_to_n_Fe56_derived = 1510, + k_Cr54_n_to_He4_Ti51_derived = 1511, + k_Cr54_p_to_n_Mn54_derived = 1512, + k_Cr54_He4_to_n_Fe57_derived = 1513, + k_Mn50_He4_to_n_Co53_derived = 1514, + k_Mn51_p_to_He4_Cr48_derived = 1515, + k_Mn51_He4_to_n_Co54_derived = 1516, + k_Mn52_p_to_n_Fe52_derived = 1517, + k_Mn52_p_to_He4_Cr49_derived = 1518, + k_Mn52_He4_to_n_Co55_derived = 1519, + k_Mn53_p_to_n_Fe53_derived = 1520, + k_Mn53_He4_to_n_Co56_derived = 1521, + k_Mn54_p_to_n_Fe54_derived = 1522, + k_Mn54_He4_to_n_Co57_derived = 1523, + k_Mn54_He4_to_p_Fe57_derived = 1524, + k_Mn55_n_to_He4_V52_derived = 1525, + k_Mn55_p_to_n_Fe55_derived = 1526, + k_Mn55_He4_to_n_Co58_derived = 1527, + k_Mn55_He4_to_p_Fe58_derived = 1528, + k_Fe53_p_to_n_Co53_derived = 1529, + k_Fe53_p_to_He4_Mn50_derived = 1530, + k_Fe53_He4_to_n_Ni56_derived = 1531, + k_Fe54_p_to_n_Co54_derived = 1532, + k_Fe54_p_to_He4_Mn51_derived = 1533, + k_Fe54_He4_to_n_Ni57_derived = 1534, + k_Fe54_He4_to_p_Co57_derived = 1535, + k_Fe55_p_to_n_Co55_derived = 1536, + k_Fe55_p_to_He4_Mn52_derived = 1537, + k_Fe55_He4_to_n_Ni58_derived = 1538, + k_Fe55_He4_to_p_Co58_derived = 1539, + k_Fe56_p_to_n_Co56_derived = 1540, + k_Fe56_p_to_He4_Mn53_derived = 1541, + k_Fe56_He4_to_n_Ni59_derived = 1542, + k_Fe56_He4_to_p_Co59_derived = 1543, + k_Fe57_p_to_n_Co57_derived = 1544, + k_Fe57_He4_to_n_Ni60_derived = 1545, + k_Fe58_p_to_n_Co58_derived = 1546, + k_Fe58_He4_to_n_Ni61_derived = 1547, + k_Co54_He4_to_n_Cu57_derived = 1548, + k_Co55_p_to_He4_Fe52_derived = 1549, + k_Co55_He4_to_n_Cu58_derived = 1550, + k_Co56_p_to_n_Ni56_derived = 1551, + k_Co56_p_to_He4_Fe53_derived = 1552, + k_Co56_He4_to_n_Cu59_derived = 1553, + k_Co57_p_to_n_Ni57_derived = 1554, + k_Co57_He4_to_n_Cu60_derived = 1555, + k_Co58_p_to_n_Ni58_derived = 1556, + k_Co58_He4_to_n_Cu61_derived = 1557, + k_Co58_He4_to_p_Ni61_derived = 1558, + k_Co59_p_to_n_Ni59_derived = 1559, + k_Co59_He4_to_n_Cu62_derived = 1560, + k_Co59_He4_to_p_Ni62_derived = 1561, + k_Ni56_p_to_He4_Co53_derived = 1562, + k_Ni56_He4_to_n_Zn59_derived = 1563, + k_Ni56_He4_to_p_Cu59_derived = 1564, + k_Ni57_p_to_n_Cu57_derived = 1565, + k_Ni57_p_to_He4_Co54_derived = 1566, + k_Ni57_He4_to_n_Zn60_derived = 1567, + k_Ni57_He4_to_p_Cu60_derived = 1568, + k_Ni58_p_to_n_Cu58_derived = 1569, + k_Ni58_p_to_He4_Co55_derived = 1570, + k_Ni58_He4_to_n_Zn61_derived = 1571, + k_Ni58_He4_to_p_Cu61_derived = 1572, + k_Ni59_p_to_n_Cu59_derived = 1573, + k_Ni59_p_to_He4_Co56_derived = 1574, + k_Ni59_He4_to_n_Zn62_derived = 1575, + k_Ni59_He4_to_p_Cu62_derived = 1576, + k_Ni60_p_to_n_Cu60_derived = 1577, + k_Ni60_p_to_He4_Co57_derived = 1578, + k_Ni60_He4_to_n_Zn63_derived = 1579, + k_Ni60_He4_to_p_Cu63_derived = 1580, + k_Ni61_p_to_n_Cu61_derived = 1581, + k_Ni61_He4_to_n_Zn64_derived = 1582, + k_Ni61_He4_to_p_Cu64_derived = 1583, + k_Ni62_p_to_n_Cu62_derived = 1584, + k_Ni62_He4_to_n_Zn65_derived = 1585, + k_Ni62_He4_to_p_Cu65_derived = 1586, + k_Ni63_p_to_n_Cu63_derived = 1587, + k_Ni63_He4_to_n_Zn66_derived = 1588, + k_Ni64_p_to_n_Cu64_derived = 1589, + k_Cu58_He4_to_p_Zn61_derived = 1590, + k_Cu59_p_to_n_Zn59_derived = 1591, + k_Cu59_He4_to_n_Ga62_derived = 1592, + k_Cu59_He4_to_p_Zn62_derived = 1593, + k_Cu60_p_to_n_Zn60_derived = 1594, + k_Cu60_He4_to_n_Ga63_derived = 1595, + k_Cu60_He4_to_p_Zn63_derived = 1596, + k_Cu61_p_to_n_Zn61_derived = 1597, + k_Cu61_He4_to_n_Ga64_derived = 1598, + k_Cu61_He4_to_p_Zn64_derived = 1599, + k_Cu62_p_to_n_Zn62_derived = 1600, + k_Cu62_He4_to_p_Zn65_derived = 1601, + k_Cu63_p_to_n_Zn63_derived = 1602, + k_Cu63_He4_to_p_Zn66_derived = 1603, + k_Cu64_p_to_n_Zn64_derived = 1604, + k_Cu65_p_to_n_Zn65_derived = 1605, + k_Zn59_He4_to_p_Ga62_derived = 1606, + k_Zn60_p_to_He4_Cu57_derived = 1607, + k_Zn60_He4_to_n_Ge63_derived = 1608, + k_Zn60_He4_to_p_Ga63_derived = 1609, + k_Zn61_He4_to_n_Ge64_derived = 1610, + k_Zn61_He4_to_p_Ga64_derived = 1611, + k_Zn62_p_to_n_Ga62_derived = 1612, + k_Zn63_p_to_n_Ga63_derived = 1613, + k_Zn64_p_to_n_Ga64_derived = 1614, + k_Ga63_p_to_n_Ge63_derived = 1615, + k_Ga64_p_to_n_Ge64_derived = 1616, + k_d_p_to_n_p_p_derived = 1617, + k_He4_p_p_to_He3_He3_derived = 1618, + k_He4_He4_n_to_d_Li7_derived = 1619, + k_He4_He4_p_to_n_B8_derived = 1620, + k_He4_He4_p_to_d_Be7_derived = 1621, + k_d_He4_He4_to_p_Be9_derived = 1622, + k_He4_He4_He4_to_p_B11_derived = 1623, + k_He4_He4_p_n_to_He3_Li7_derived = 1624, + k_He4_He4_p_n_to_p_Be9_derived = 1625, + k_He4_He4_p_p_to_He3_Be7_derived = 1626, + NumRates = k_He4_He4_p_p_to_He3_Be7_derived }; enum ScreenPairs : @@ -2762,177 +2762,177 @@ namespace Rates k_He4_Ni61 = 72, k_p_Ga62 = 73, k_p_Zn60 = 74, - k_He4_Li6 = 75, - k_He4_Ni56 = 76, - k_p_P31 = 77, - k_He4_Ne22 = 78, - k_p_Ti47 = 79, - k_p_Si29 = 80, - k_p_Ni58 = 81, - k_p_O16 = 82, - k_p_Cu60 = 83, - k_He4_Cr51 = 84, - k_p_N14 = 85, - k_He4_Mn52 = 86, - k_p_Ca45 = 87, - k_He4_V49 = 88, - k_d_Be8 = 89, - k_O16_O16 = 90, - k_He4_O15 = 91, - k_He4_Ni63 = 92, - k_He4_P31 = 93, - k_He4_N13 = 94, - k_He4_Ti47 = 95, - k_He4_Si29 = 96, - k_He4_B10 = 97, - k_p_Ga64 = 98, - k_p_Zn62 = 99, - k_He4_Ca45 = 100, - k_p_Na21 = 101, - k_p_Ar37 = 102, - k_p_S34 = 103, - k_p_Cr52 = 104, - k_p_V50 = 105, - k_p_Cl37 = 106, - k_p_F19 = 107, - k_He4_Ca40 = 108, - k_p_Sc48 = 109, - k_He2_Be8 = 110, - k_p_Ni64 = 111, - k_He4_K38 = 112, - k_He4_Ar36 = 113, - k_He4_Cl36 = 114, - k_He4_F18 = 115, - k_He4_P33 = 116, - k_He4_S34 = 117, - k_He4_Si31 = 118, - k_He4_Ti49 = 119, - k_He4_V50 = 120, - k_He4_Cr52 = 121, - k_He4_Ca47 = 122, - k_He4_Sc48 = 123, - k_p_Mn55 = 124, - k_d_C14 = 125, - k_He4_Cu61 = 126, - k_p_d = 127, - k_p_Ne21 = 128, - k_p_He3 = 129, - k_He4_Sc43 = 130, - k_He4_Fe56 = 131, - k_He4_Co58 = 132, - k_He4_Cr54 = 133, - k_He4_S36 = 134, - k_He4_Mn55 = 135, - k_p_Ca48 = 136, - k_He4_V52 = 137, - k_He4_Ne20 = 138, - k_p_Cu58 = 139, - k_p_Co56 = 140, - k_He4_Mn50 = 141, - k_p_Si28 = 142, - k_p_Fe54 = 143, - k_d_He4 = 144, - k_He3_Li7 = 145, - k_p_Ca44 = 146, - k_p_Mg26 = 147, - k_p_Zn65 = 148, - k_p_Be8 = 149, - k_He4_Cu58 = 150, - k_He4_Co55 = 151, - k_He4_Fe53 = 152, - k_He4_O14 = 153, - k_He4_Al27 = 154, - k_He4_Ca43 = 155, - k_He4_Mg25 = 156, - k_p_Ga63 = 157, - k_p_Zn61 = 158, - k_p_Cl35 = 159, - k_p_F17 = 160, - k_p_P32 = 161, - k_p_S33 = 162, - k_p_Si30 = 163, - k_p_Ni59 = 164, - k_He4_Zn60 = 165, - k_p_Sc47 = 166, - k_He4_Ne18 = 167, - k_He2_He4 = 168, - k_He4_Cl34 = 169, - k_p_C12 = 170, - k_He4_Cu60 = 171, - k_He4_Ni58 = 172, - k_He4_O16 = 173, - k_He4_F17 = 174, - k_He4_N14 = 175, - k_He4_P32 = 176, - k_He4_Si30 = 177, - k_p_S35 = 178, - k_p_Ti45 = 179, - k_d_C13 = 180, - k_p_Sc49 = 181, - k_p_p = 182, - k_He4_Mg23 = 183, - k_p_O17 = 184, - k_p_C14 = 185, - k_He4_Na21 = 186, - k_p_N15 = 187, - k_He4_Ar37 = 188, - k_p_K41 = 189, - k_p_Co59 = 190, - k_He4_Cl37 = 191, - k_He4_F19 = 192, - k_p_Ar39 = 193, - k_He4_S35 = 194, - k_He4_P29 = 195, - k_p_Fe52 = 196, - k_He4_Sc49 = 197, - k_p_Al26 = 198, - k_He4_C14 = 199, - k_p_Cr50 = 200, - k_p_S32 = 201, - k_p_V48 = 202, - k_p_Zn64 = 203, - k_p_He4 = 204, - k_p_Cu64 = 205, - k_p_Sc46 = 206, - k_p_Ti51 = 207, - k_He4_Co54 = 208, - k_p_Ni62 = 209, - k_He4_Al26 = 210, - k_He4_Ne21 = 211, - k_He4_S32 = 212, - k_p_Cu59 = 213, - k_p_Ni57 = 214, - k_d_Be7 = 215, - k_He4_Ti51 = 216, - k_He4_Ca48 = 217, - k_p_Mn53 = 218, - k_p_Zn66 = 219, - k_He4_Zn59 = 220, - k_p_Be9 = 221, - k_He4_P30 = 222, - k_He4_Co56 = 223, - k_He4_Cu59 = 224, - k_He4_Si28 = 225, - k_He4_Fe54 = 226, - k_He4_Ni57 = 227, - k_p_Ti48 = 228, - k_He4_Ca44 = 229, - k_He4_Mg26 = 230, - k_He4_Be8 = 231, - k_p_Ca46 = 232, - k_He3_He3 = 233, - k_p_Ca41 = 234, - k_p_Co57 = 235, - k_p_K39 = 236, - k_He3_He4 = 237, - k_p_Fe55 = 238, - k_He4_Cl35 = 239, - k_p_C13 = 240, - k_He4_Zn61 = 241, - k_He4_S33 = 242, - k_p_B11 = 243, - k_He4_Ni59 = 244, - k_d_Li7 = 245, + k_He4_Zn61 = 75, + k_He4_Li6 = 76, + k_He4_Ni56 = 77, + k_p_P31 = 78, + k_He4_Ne22 = 79, + k_p_Ti47 = 80, + k_p_Si29 = 81, + k_p_Ni58 = 82, + k_p_O16 = 83, + k_p_Cu60 = 84, + k_He4_Cr51 = 85, + k_p_N14 = 86, + k_He4_Mn52 = 87, + k_p_Ca45 = 88, + k_He4_V49 = 89, + k_d_Be8 = 90, + k_O16_O16 = 91, + k_He4_O15 = 92, + k_He4_Ni63 = 93, + k_He4_P31 = 94, + k_He4_N13 = 95, + k_He4_Ti47 = 96, + k_He4_Si29 = 97, + k_He4_B10 = 98, + k_p_Ga64 = 99, + k_p_Zn62 = 100, + k_He4_Ca45 = 101, + k_p_Na21 = 102, + k_p_Ar37 = 103, + k_p_S34 = 104, + k_p_Cr52 = 105, + k_p_V50 = 106, + k_p_Cl37 = 107, + k_p_F19 = 108, + k_He4_Ca40 = 109, + k_p_Sc48 = 110, + k_He2_Be8 = 111, + k_p_Ni64 = 112, + k_He4_K38 = 113, + k_He4_Ar36 = 114, + k_He4_Cl36 = 115, + k_He4_F18 = 116, + k_He4_P33 = 117, + k_He4_S34 = 118, + k_He4_Si31 = 119, + k_He4_Ti49 = 120, + k_He4_V50 = 121, + k_He4_Cr52 = 122, + k_He4_Ca47 = 123, + k_He4_Sc48 = 124, + k_p_Mn55 = 125, + k_d_C14 = 126, + k_He4_Cu61 = 127, + k_p_d = 128, + k_p_Ne21 = 129, + k_p_He3 = 130, + k_He4_Sc43 = 131, + k_He4_Fe56 = 132, + k_He4_Co58 = 133, + k_He4_Cr54 = 134, + k_He4_S36 = 135, + k_He4_Mn55 = 136, + k_p_Ca48 = 137, + k_He4_V52 = 138, + k_He4_Ne20 = 139, + k_p_Cu58 = 140, + k_p_Co56 = 141, + k_He4_Mn50 = 142, + k_p_Si28 = 143, + k_p_Fe54 = 144, + k_d_He4 = 145, + k_He3_Li7 = 146, + k_p_Ca44 = 147, + k_p_Mg26 = 148, + k_p_Zn65 = 149, + k_p_Be8 = 150, + k_He4_Cu58 = 151, + k_He4_Co55 = 152, + k_He4_Fe53 = 153, + k_He4_O14 = 154, + k_He4_Al27 = 155, + k_He4_Ca43 = 156, + k_He4_Mg25 = 157, + k_p_Ga63 = 158, + k_p_Zn61 = 159, + k_p_Cl35 = 160, + k_p_F17 = 161, + k_p_P32 = 162, + k_p_S33 = 163, + k_p_Si30 = 164, + k_p_Ni59 = 165, + k_He4_Zn60 = 166, + k_p_Sc47 = 167, + k_He4_Ne18 = 168, + k_He2_He4 = 169, + k_He4_Cl34 = 170, + k_p_C12 = 171, + k_He4_Cu60 = 172, + k_He4_Ni58 = 173, + k_He4_O16 = 174, + k_He4_F17 = 175, + k_He4_N14 = 176, + k_He4_P32 = 177, + k_He4_Si30 = 178, + k_p_S35 = 179, + k_p_Ti45 = 180, + k_d_C13 = 181, + k_p_Sc49 = 182, + k_p_p = 183, + k_He4_Mg23 = 184, + k_p_O17 = 185, + k_p_C14 = 186, + k_He4_Na21 = 187, + k_p_N15 = 188, + k_He4_Ar37 = 189, + k_p_K41 = 190, + k_p_Co59 = 191, + k_He4_Cl37 = 192, + k_He4_F19 = 193, + k_p_Ar39 = 194, + k_He4_S35 = 195, + k_He4_P29 = 196, + k_p_Fe52 = 197, + k_He4_Sc49 = 198, + k_p_Al26 = 199, + k_He4_C14 = 200, + k_p_Cr50 = 201, + k_p_S32 = 202, + k_p_V48 = 203, + k_p_Zn64 = 204, + k_p_He4 = 205, + k_p_Cu64 = 206, + k_p_Sc46 = 207, + k_p_Ti51 = 208, + k_He4_Co54 = 209, + k_p_Ni62 = 210, + k_He4_Al26 = 211, + k_He4_Ne21 = 212, + k_He4_S32 = 213, + k_p_Cu59 = 214, + k_p_Ni57 = 215, + k_d_Be7 = 216, + k_He4_Ti51 = 217, + k_He4_Ca48 = 218, + k_p_Mn53 = 219, + k_p_Zn66 = 220, + k_He4_Zn59 = 221, + k_p_Be9 = 222, + k_He4_P30 = 223, + k_He4_Co56 = 224, + k_He4_Cu59 = 225, + k_He4_Si28 = 226, + k_He4_Fe54 = 227, + k_He4_Ni57 = 228, + k_p_Ti48 = 229, + k_He4_Ca44 = 230, + k_He4_Mg26 = 231, + k_He4_Be8 = 232, + k_p_Ca46 = 233, + k_He3_He3 = 234, + k_p_Ca41 = 235, + k_p_Co57 = 236, + k_p_K39 = 237, + k_He3_He4 = 238, + k_p_Fe55 = 239, + k_He4_Cl35 = 240, + k_p_C13 = 241, + k_d_Li7 = 242, + k_He4_S33 = 243, + k_p_B11 = 244, + k_He4_Ni59 = 245, k_p_Cr53 = 246, k_p_Ti50 = 247, k_p_V51 = 248, @@ -2996,1635 +2996,1635 @@ namespace Rates static const std::vector rate_names = { "", // 0 - "Be7_to_Li7_reaclib", // 1, - "C14_to_N14_reaclib", // 2, - "N13_to_C13_reaclib", // 3, - "O14_to_N14_reaclib", // 4, - "O15_to_N15_reaclib", // 5, - "F17_to_O17_reaclib", // 6, - "F18_to_O18_reaclib", // 7, - "Ne18_to_F18_reaclib", // 8, - "Ne19_to_F19_reaclib", // 9, - "Zn59_to_Cu59_reaclib", // 10, - "Ge63_to_Ga63_reaclib", // 11, - "d_to_n_p_reaclib", // 12, - "He3_to_p_d_reaclib", // 13, - "He4_to_n_He3_reaclib", // 14, - "He4_to_d_d_reaclib", // 15, - "Li6_to_He4_d_reaclib", // 16, - "Li7_to_n_Li6_reaclib", // 17, - "Be7_to_p_Li6_reaclib", // 18, - "Be7_to_He4_He3_reaclib", // 19, - "B8_to_p_Be7_reaclib", // 20, - "B8_to_He4_He4_reaclib", // 21, - "B10_to_p_Be9_reaclib", // 22, - "B10_to_He4_Li6_reaclib", // 23, - "B11_to_n_B10_reaclib", // 24, - "B11_to_He4_Li7_reaclib", // 25, - "C12_to_p_B11_reaclib", // 26, - "C13_to_n_C12_reaclib", // 27, - "C14_to_n_C13_reaclib", // 28, - "N13_to_p_C12_reaclib", // 29, - "N14_to_n_N13_reaclib", // 30, - "N14_to_p_C13_reaclib", // 31, - "N15_to_n_N14_reaclib", // 32, - "N15_to_p_C14_reaclib", // 33, - "O14_to_p_N13_reaclib", // 34, - "O15_to_n_O14_reaclib", // 35, - "O15_to_p_N14_reaclib", // 36, - "O16_to_n_O15_reaclib", // 37, - "O16_to_p_N15_reaclib", // 38, - "O16_to_He4_C12_reaclib", // 39, - "O17_to_n_O16_reaclib", // 40, - "O18_to_n_O17_reaclib", // 41, - "O18_to_He4_C14_reaclib", // 42, - "F17_to_p_O16_reaclib", // 43, - "F18_to_n_F17_reaclib", // 44, - "F18_to_p_O17_reaclib", // 45, - "F18_to_He4_N14_reaclib", // 46, - "F19_to_n_F18_reaclib", // 47, - "F19_to_p_O18_reaclib", // 48, - "F19_to_He4_N15_reaclib", // 49, - "Ne18_to_p_F17_reaclib", // 50, - "Ne18_to_He4_O14_reaclib", // 51, - "Ne19_to_n_Ne18_reaclib", // 52, - "Ne19_to_p_F18_reaclib", // 53, - "Ne19_to_He4_O15_reaclib", // 54, - "Ne20_to_n_Ne19_reaclib", // 55, - "Ne20_to_p_F19_reaclib", // 56, - "Ne20_to_He4_O16_reaclib", // 57, - "Ne21_to_n_Ne20_reaclib", // 58, - "Ne21_to_He4_O17_reaclib", // 59, - "Ne22_to_n_Ne21_reaclib", // 60, - "Ne22_to_He4_O18_reaclib", // 61, - "Na21_to_p_Ne20_reaclib", // 62, - "Na21_to_He4_F17_reaclib", // 63, - "Na22_to_n_Na21_reaclib", // 64, - "Na22_to_p_Ne21_reaclib", // 65, - "Na22_to_He4_F18_reaclib", // 66, - "Na23_to_n_Na22_reaclib", // 67, - "Na23_to_p_Ne22_reaclib", // 68, - "Na23_to_He4_F19_reaclib", // 69, - "Mg23_to_p_Na22_reaclib", // 70, - "Mg23_to_He4_Ne19_reaclib", // 71, - "Mg24_to_n_Mg23_reaclib", // 72, - "Mg24_to_p_Na23_reaclib", // 73, - "Mg24_to_He4_Ne20_reaclib", // 74, - "Mg25_to_n_Mg24_reaclib", // 75, - "Mg25_to_He4_Ne21_reaclib", // 76, - "Mg26_to_n_Mg25_reaclib", // 77, - "Mg26_to_He4_Ne22_reaclib", // 78, - "Al25_to_p_Mg24_reaclib", // 79, - "Al25_to_He4_Na21_reaclib", // 80, - "Al26_to_n_Al25_reaclib", // 81, - "Al26_to_p_Mg25_reaclib", // 82, - "Al26_to_He4_Na22_reaclib", // 83, - "Al27_to_n_Al26_reaclib", // 84, - "Al27_to_p_Mg26_reaclib", // 85, - "Al27_to_He4_Na23_reaclib", // 86, - "Si28_to_p_Al27_reaclib", // 87, - "Si28_to_He4_Mg24_reaclib", // 88, - "Si29_to_n_Si28_reaclib", // 89, - "Si29_to_He4_Mg25_reaclib", // 90, - "Si30_to_n_Si29_reaclib", // 91, - "Si30_to_He4_Mg26_reaclib", // 92, - "Si31_to_n_Si30_reaclib", // 93, - "Si32_to_n_Si31_reaclib", // 94, - "P29_to_p_Si28_reaclib", // 95, - "P29_to_He4_Al25_reaclib", // 96, - "P30_to_n_P29_reaclib", // 97, - "P30_to_p_Si29_reaclib", // 98, - "P30_to_He4_Al26_reaclib", // 99, - "P31_to_n_P30_reaclib", // 100, - "P31_to_p_Si30_reaclib", // 101, - "P31_to_He4_Al27_reaclib", // 102, - "P32_to_n_P31_reaclib", // 103, - "P32_to_p_Si31_reaclib", // 104, - "P33_to_n_P32_reaclib", // 105, - "P33_to_p_Si32_reaclib", // 106, - "S32_to_p_P31_reaclib", // 107, - "S32_to_He4_Si28_reaclib", // 108, - "S33_to_n_S32_reaclib", // 109, - "S33_to_p_P32_reaclib", // 110, - "S33_to_He4_Si29_reaclib", // 111, - "S34_to_n_S33_reaclib", // 112, - "S34_to_p_P33_reaclib", // 113, - "S34_to_He4_Si30_reaclib", // 114, - "S35_to_n_S34_reaclib", // 115, - "S35_to_He4_Si31_reaclib", // 116, - "S36_to_n_S35_reaclib", // 117, - "S36_to_He4_Si32_reaclib", // 118, - "Cl33_to_p_S32_reaclib", // 119, - "Cl33_to_He4_P29_reaclib", // 120, - "Cl34_to_n_Cl33_reaclib", // 121, - "Cl34_to_p_S33_reaclib", // 122, - "Cl34_to_He4_P30_reaclib", // 123, - "Cl35_to_n_Cl34_reaclib", // 124, - "Cl35_to_p_S34_reaclib", // 125, - "Cl35_to_He4_P31_reaclib", // 126, - "Cl36_to_n_Cl35_reaclib", // 127, - "Cl36_to_p_S35_reaclib", // 128, - "Cl36_to_He4_P32_reaclib", // 129, - "Cl37_to_n_Cl36_reaclib", // 130, - "Cl37_to_p_S36_reaclib", // 131, - "Cl37_to_He4_P33_reaclib", // 132, - "Ar36_to_p_Cl35_reaclib", // 133, - "Ar36_to_He4_S32_reaclib", // 134, - "Ar37_to_n_Ar36_reaclib", // 135, - "Ar37_to_p_Cl36_reaclib", // 136, - "Ar37_to_He4_S33_reaclib", // 137, - "Ar38_to_n_Ar37_reaclib", // 138, - "Ar38_to_p_Cl37_reaclib", // 139, - "Ar38_to_He4_S34_reaclib", // 140, - "Ar39_to_n_Ar38_reaclib", // 141, - "Ar39_to_He4_S35_reaclib", // 142, - "Ar40_to_n_Ar39_reaclib", // 143, - "Ar40_to_He4_S36_reaclib", // 144, - "K37_to_p_Ar36_reaclib", // 145, - "K37_to_He4_Cl33_reaclib", // 146, - "K38_to_n_K37_reaclib", // 147, - "K38_to_p_Ar37_reaclib", // 148, - "K38_to_He4_Cl34_reaclib", // 149, - "K39_to_n_K38_reaclib", // 150, - "K39_to_p_Ar38_reaclib", // 151, - "K39_to_He4_Cl35_reaclib", // 152, - "K40_to_n_K39_reaclib", // 153, - "K40_to_p_Ar39_reaclib", // 154, - "K40_to_He4_Cl36_reaclib", // 155, - "K41_to_n_K40_reaclib", // 156, - "K41_to_p_Ar40_reaclib", // 157, - "K41_to_He4_Cl37_reaclib", // 158, - "Ca40_to_p_K39_reaclib", // 159, - "Ca40_to_He4_Ar36_reaclib", // 160, - "Ca41_to_n_Ca40_reaclib", // 161, - "Ca41_to_p_K40_reaclib", // 162, - "Ca41_to_He4_Ar37_reaclib", // 163, - "Ca42_to_n_Ca41_reaclib", // 164, - "Ca42_to_p_K41_reaclib", // 165, - "Ca42_to_He4_Ar38_reaclib", // 166, - "Ca43_to_n_Ca42_reaclib", // 167, - "Ca43_to_He4_Ar39_reaclib", // 168, - "Ca44_to_n_Ca43_reaclib", // 169, - "Ca44_to_He4_Ar40_reaclib", // 170, - "Ca45_to_n_Ca44_reaclib", // 171, - "Ca46_to_n_Ca45_reaclib", // 172, - "Ca47_to_n_Ca46_reaclib", // 173, - "Ca48_to_n_Ca47_reaclib", // 174, - "Sc43_to_p_Ca42_reaclib", // 175, - "Sc43_to_He4_K39_reaclib", // 176, - "Sc44_to_n_Sc43_reaclib", // 177, - "Sc44_to_p_Ca43_reaclib", // 178, - "Sc44_to_He4_K40_reaclib", // 179, - "Sc45_to_n_Sc44_reaclib", // 180, - "Sc45_to_p_Ca44_reaclib", // 181, - "Sc45_to_He4_K41_reaclib", // 182, - "Sc46_to_n_Sc45_reaclib", // 183, - "Sc46_to_p_Ca45_reaclib", // 184, - "Sc47_to_n_Sc46_reaclib", // 185, - "Sc47_to_p_Ca46_reaclib", // 186, - "Sc48_to_n_Sc47_reaclib", // 187, - "Sc48_to_p_Ca47_reaclib", // 188, - "Sc49_to_n_Sc48_reaclib", // 189, - "Sc49_to_p_Ca48_reaclib", // 190, - "Ti44_to_p_Sc43_reaclib", // 191, - "Ti44_to_He4_Ca40_reaclib", // 192, - "Ti45_to_n_Ti44_reaclib", // 193, - "Ti45_to_p_Sc44_reaclib", // 194, - "Ti45_to_He4_Ca41_reaclib", // 195, - "Ti46_to_n_Ti45_reaclib", // 196, - "Ti46_to_p_Sc45_reaclib", // 197, - "Ti46_to_He4_Ca42_reaclib", // 198, - "Ti47_to_n_Ti46_reaclib", // 199, - "Ti47_to_p_Sc46_reaclib", // 200, - "Ti47_to_He4_Ca43_reaclib", // 201, - "Ti48_to_n_Ti47_reaclib", // 202, - "Ti48_to_p_Sc47_reaclib", // 203, - "Ti48_to_He4_Ca44_reaclib", // 204, - "Ti49_to_n_Ti48_reaclib", // 205, - "Ti49_to_p_Sc48_reaclib", // 206, - "Ti49_to_He4_Ca45_reaclib", // 207, - "Ti50_to_n_Ti49_reaclib", // 208, - "Ti50_to_p_Sc49_reaclib", // 209, - "Ti50_to_He4_Ca46_reaclib", // 210, - "Ti51_to_n_Ti50_reaclib", // 211, - "Ti51_to_He4_Ca47_reaclib", // 212, - "V46_to_p_Ti45_reaclib", // 213, - "V47_to_n_V46_reaclib", // 214, - "V47_to_p_Ti46_reaclib", // 215, - "V47_to_He4_Sc43_reaclib", // 216, - "V48_to_n_V47_reaclib", // 217, - "V48_to_p_Ti47_reaclib", // 218, - "V48_to_He4_Sc44_reaclib", // 219, - "V49_to_n_V48_reaclib", // 220, - "V49_to_p_Ti48_reaclib", // 221, - "V49_to_He4_Sc45_reaclib", // 222, - "V50_to_n_V49_reaclib", // 223, - "V50_to_p_Ti49_reaclib", // 224, - "V50_to_He4_Sc46_reaclib", // 225, - "V51_to_n_V50_reaclib", // 226, - "V51_to_p_Ti50_reaclib", // 227, - "V51_to_He4_Sc47_reaclib", // 228, - "V52_to_n_V51_reaclib", // 229, - "V52_to_p_Ti51_reaclib", // 230, - "V52_to_He4_Sc48_reaclib", // 231, - "Cr48_to_p_V47_reaclib", // 232, - "Cr48_to_He4_Ti44_reaclib", // 233, - "Cr49_to_n_Cr48_reaclib", // 234, - "Cr49_to_p_V48_reaclib", // 235, - "Cr49_to_He4_Ti45_reaclib", // 236, - "Cr50_to_n_Cr49_reaclib", // 237, - "Cr50_to_p_V49_reaclib", // 238, - "Cr50_to_He4_Ti46_reaclib", // 239, - "Cr51_to_n_Cr50_reaclib", // 240, - "Cr51_to_p_V50_reaclib", // 241, - "Cr51_to_He4_Ti47_reaclib", // 242, - "Cr52_to_n_Cr51_reaclib", // 243, - "Cr52_to_p_V51_reaclib", // 244, - "Cr52_to_He4_Ti48_reaclib", // 245, - "Cr53_to_n_Cr52_reaclib", // 246, - "Cr53_to_p_V52_reaclib", // 247, - "Cr53_to_He4_Ti49_reaclib", // 248, - "Cr54_to_n_Cr53_reaclib", // 249, - "Cr54_to_He4_Ti50_reaclib", // 250, - "Mn50_to_p_Cr49_reaclib", // 251, - "Mn50_to_He4_V46_reaclib", // 252, - "Mn51_to_n_Mn50_reaclib", // 253, - "Mn51_to_p_Cr50_reaclib", // 254, - "Mn51_to_He4_V47_reaclib", // 255, - "Mn52_to_n_Mn51_reaclib", // 256, - "Mn52_to_p_Cr51_reaclib", // 257, - "Mn52_to_He4_V48_reaclib", // 258, - "Mn53_to_n_Mn52_reaclib", // 259, - "Mn53_to_p_Cr52_reaclib", // 260, - "Mn53_to_He4_V49_reaclib", // 261, - "Mn54_to_n_Mn53_reaclib", // 262, - "Mn54_to_p_Cr53_reaclib", // 263, - "Mn54_to_He4_V50_reaclib", // 264, - "Mn55_to_n_Mn54_reaclib", // 265, - "Mn55_to_p_Cr54_reaclib", // 266, - "Mn55_to_He4_V51_reaclib", // 267, - "Fe52_to_p_Mn51_reaclib", // 268, - "Fe52_to_He4_Cr48_reaclib", // 269, - "Fe53_to_n_Fe52_reaclib", // 270, - "Fe53_to_p_Mn52_reaclib", // 271, - "Fe53_to_He4_Cr49_reaclib", // 272, - "Fe54_to_n_Fe53_reaclib", // 273, - "Fe54_to_p_Mn53_reaclib", // 274, - "Fe54_to_He4_Cr50_reaclib", // 275, - "Fe55_to_n_Fe54_reaclib", // 276, - "Fe55_to_p_Mn54_reaclib", // 277, - "Fe55_to_He4_Cr51_reaclib", // 278, - "Fe56_to_n_Fe55_reaclib", // 279, - "Fe56_to_p_Mn55_reaclib", // 280, - "Fe56_to_He4_Cr52_reaclib", // 281, - "Fe57_to_n_Fe56_reaclib", // 282, - "Fe57_to_He4_Cr53_reaclib", // 283, - "Fe58_to_n_Fe57_reaclib", // 284, - "Fe58_to_He4_Cr54_reaclib", // 285, - "Co53_to_p_Fe52_reaclib", // 286, - "Co54_to_n_Co53_reaclib", // 287, - "Co54_to_p_Fe53_reaclib", // 288, - "Co54_to_He4_Mn50_reaclib", // 289, - "Co55_to_n_Co54_reaclib", // 290, - "Co55_to_p_Fe54_reaclib", // 291, - "Co55_to_He4_Mn51_reaclib", // 292, - "Co56_to_n_Co55_reaclib", // 293, - "Co56_to_p_Fe55_reaclib", // 294, - "Co56_to_He4_Mn52_reaclib", // 295, - "Co57_to_n_Co56_reaclib", // 296, - "Co57_to_p_Fe56_reaclib", // 297, - "Co57_to_He4_Mn53_reaclib", // 298, - "Co58_to_n_Co57_reaclib", // 299, - "Co58_to_p_Fe57_reaclib", // 300, - "Co58_to_He4_Mn54_reaclib", // 301, - "Co59_to_n_Co58_reaclib", // 302, - "Co59_to_p_Fe58_reaclib", // 303, - "Co59_to_He4_Mn55_reaclib", // 304, - "Ni56_to_p_Co55_reaclib", // 305, - "Ni56_to_He4_Fe52_reaclib", // 306, - "Ni57_to_n_Ni56_reaclib", // 307, - "Ni57_to_p_Co56_reaclib", // 308, - "Ni57_to_He4_Fe53_reaclib", // 309, - "Ni58_to_n_Ni57_reaclib", // 310, - "Ni58_to_p_Co57_reaclib", // 311, - "Ni58_to_He4_Fe54_reaclib", // 312, - "Ni59_to_n_Ni58_reaclib", // 313, - "Ni59_to_p_Co58_reaclib", // 314, - "Ni59_to_He4_Fe55_reaclib", // 315, - "Ni60_to_n_Ni59_reaclib", // 316, - "Ni60_to_p_Co59_reaclib", // 317, - "Ni60_to_He4_Fe56_reaclib", // 318, - "Ni61_to_n_Ni60_reaclib", // 319, - "Ni61_to_He4_Fe57_reaclib", // 320, - "Ni62_to_n_Ni61_reaclib", // 321, - "Ni62_to_He4_Fe58_reaclib", // 322, - "Ni63_to_n_Ni62_reaclib", // 323, - "Ni64_to_n_Ni63_reaclib", // 324, - "Cu57_to_p_Ni56_reaclib", // 325, - "Cu57_to_He4_Co53_reaclib", // 326, - "Cu58_to_n_Cu57_reaclib", // 327, - "Cu58_to_p_Ni57_reaclib", // 328, - "Cu58_to_He4_Co54_reaclib", // 329, - "Cu59_to_n_Cu58_reaclib", // 330, - "Cu59_to_p_Ni58_reaclib", // 331, - "Cu59_to_He4_Co55_reaclib", // 332, - "Cu60_to_n_Cu59_reaclib", // 333, - "Cu60_to_p_Ni59_reaclib", // 334, - "Cu60_to_He4_Co56_reaclib", // 335, - "Cu61_to_n_Cu60_reaclib", // 336, - "Cu61_to_p_Ni60_reaclib", // 337, - "Cu61_to_He4_Co57_reaclib", // 338, - "Cu62_to_n_Cu61_reaclib", // 339, - "Cu62_to_p_Ni61_reaclib", // 340, - "Cu62_to_He4_Co58_reaclib", // 341, - "Cu63_to_n_Cu62_reaclib", // 342, - "Cu63_to_p_Ni62_reaclib", // 343, - "Cu63_to_He4_Co59_reaclib", // 344, - "Cu64_to_n_Cu63_reaclib", // 345, - "Cu64_to_p_Ni63_reaclib", // 346, - "Cu65_to_n_Cu64_reaclib", // 347, - "Cu65_to_p_Ni64_reaclib", // 348, - "Zn59_to_p_Cu58_reaclib", // 349, - "Zn59_to_p_Ni58_reaclib", // 350, - "Zn60_to_n_Zn59_reaclib", // 351, - "Zn60_to_p_Cu59_reaclib", // 352, - "Zn60_to_He4_Ni56_reaclib", // 353, - "Zn61_to_n_Zn60_reaclib", // 354, - "Zn61_to_p_Cu60_reaclib", // 355, - "Zn61_to_He4_Ni57_reaclib", // 356, - "Zn62_to_n_Zn61_reaclib", // 357, - "Zn62_to_p_Cu61_reaclib", // 358, - "Zn62_to_He4_Ni58_reaclib", // 359, - "Zn63_to_n_Zn62_reaclib", // 360, - "Zn63_to_p_Cu62_reaclib", // 361, - "Zn63_to_He4_Ni59_reaclib", // 362, - "Zn64_to_n_Zn63_reaclib", // 363, - "Zn64_to_p_Cu63_reaclib", // 364, - "Zn64_to_He4_Ni60_reaclib", // 365, - "Zn65_to_n_Zn64_reaclib", // 366, - "Zn65_to_p_Cu64_reaclib", // 367, - "Zn65_to_He4_Ni61_reaclib", // 368, - "Zn66_to_n_Zn65_reaclib", // 369, - "Zn66_to_p_Cu65_reaclib", // 370, - "Zn66_to_He4_Ni62_reaclib", // 371, - "Ga62_to_p_Zn61_reaclib", // 372, - "Ga62_to_He4_Cu58_reaclib", // 373, - "Ga63_to_n_Ga62_reaclib", // 374, - "Ga63_to_p_Zn62_reaclib", // 375, - "Ga63_to_He4_Cu59_reaclib", // 376, - "Ga64_to_n_Ga63_reaclib", // 377, - "Ga64_to_p_Zn63_reaclib", // 378, - "Ga64_to_He4_Cu60_reaclib", // 379, - "Ge63_to_p_Ga62_reaclib", // 380, - "Ge63_to_He4_Zn59_reaclib", // 381, - "Ge64_to_n_Ge63_reaclib", // 382, - "Ge64_to_p_Ga63_reaclib", // 383, - "Ge64_to_He4_Zn60_reaclib", // 384, - "Li6_to_n_p_He4_reaclib", // 385, - "Be9_to_n_He4_He4_reaclib", // 386, - "C12_to_He4_He4_He4_reaclib", // 387, - "n_p_to_d_reaclib", // 388, - "p_p_to_d_reaclib_beta_pos", // 389, - "p_p_to_d_reaclib_electron_capture", // 390, - "p_d_to_He3_reaclib", // 391, - "d_d_to_He4_reaclib", // 392, - "He4_d_to_Li6_reaclib", // 393, - "n_He3_to_He4_reaclib", // 394, - "p_He3_to_He4_reaclib", // 395, - "He4_He3_to_Be7_reaclib", // 396, - "n_Li6_to_Li7_reaclib", // 397, - "p_Li6_to_Be7_reaclib", // 398, - "He4_Li6_to_B10_reaclib", // 399, - "He4_Li7_to_B11_reaclib", // 400, - "p_Be7_to_B8_reaclib", // 401, - "p_Be9_to_B10_reaclib", // 402, - "n_B10_to_B11_reaclib", // 403, - "p_B11_to_C12_reaclib", // 404, - "n_C12_to_C13_reaclib", // 405, - "p_C12_to_N13_reaclib", // 406, - "He4_C12_to_O16_reaclib", // 407, - "n_C13_to_C14_reaclib", // 408, - "p_C13_to_N14_reaclib", // 409, - "p_C14_to_N15_reaclib", // 410, - "He4_C14_to_O18_reaclib", // 411, - "n_N13_to_N14_reaclib", // 412, - "p_N13_to_O14_reaclib", // 413, - "n_N14_to_N15_reaclib", // 414, - "p_N14_to_O15_reaclib", // 415, - "He4_N14_to_F18_reaclib", // 416, - "p_N15_to_O16_reaclib", // 417, - "He4_N15_to_F19_reaclib", // 418, - "n_O14_to_O15_reaclib", // 419, - "He4_O14_to_Ne18_reaclib", // 420, - "n_O15_to_O16_reaclib", // 421, - "He4_O15_to_Ne19_reaclib", // 422, - "n_O16_to_O17_reaclib", // 423, - "p_O16_to_F17_reaclib", // 424, - "He4_O16_to_Ne20_reaclib", // 425, - "n_O17_to_O18_reaclib", // 426, - "p_O17_to_F18_reaclib", // 427, - "He4_O17_to_Ne21_reaclib", // 428, - "p_O18_to_F19_reaclib", // 429, - "He4_O18_to_Ne22_reaclib", // 430, - "n_F17_to_F18_reaclib", // 431, - "p_F17_to_Ne18_reaclib", // 432, - "He4_F17_to_Na21_reaclib", // 433, - "n_F18_to_F19_reaclib", // 434, - "p_F18_to_Ne19_reaclib", // 435, - "He4_F18_to_Na22_reaclib", // 436, - "p_F19_to_Ne20_reaclib", // 437, - "He4_F19_to_Na23_reaclib", // 438, - "n_Ne18_to_Ne19_reaclib", // 439, - "n_Ne19_to_Ne20_reaclib", // 440, - "He4_Ne19_to_Mg23_reaclib", // 441, - "n_Ne20_to_Ne21_reaclib", // 442, - "p_Ne20_to_Na21_reaclib", // 443, - "He4_Ne20_to_Mg24_reaclib", // 444, - "n_Ne21_to_Ne22_reaclib", // 445, - "p_Ne21_to_Na22_reaclib", // 446, - "He4_Ne21_to_Mg25_reaclib", // 447, - "p_Ne22_to_Na23_reaclib", // 448, - "He4_Ne22_to_Mg26_reaclib", // 449, - "n_Na21_to_Na22_reaclib", // 450, - "He4_Na21_to_Al25_reaclib", // 451, - "n_Na22_to_Na23_reaclib", // 452, - "p_Na22_to_Mg23_reaclib", // 453, - "He4_Na22_to_Al26_reaclib", // 454, - "p_Na23_to_Mg24_reaclib", // 455, - "He4_Na23_to_Al27_reaclib", // 456, - "n_Mg23_to_Mg24_reaclib", // 457, - "n_Mg24_to_Mg25_reaclib", // 458, - "p_Mg24_to_Al25_reaclib", // 459, - "He4_Mg24_to_Si28_reaclib", // 460, - "n_Mg25_to_Mg26_reaclib", // 461, - "p_Mg25_to_Al26_reaclib", // 462, - "He4_Mg25_to_Si29_reaclib", // 463, - "p_Mg26_to_Al27_reaclib", // 464, - "He4_Mg26_to_Si30_reaclib", // 465, - "n_Al25_to_Al26_reaclib", // 466, - "He4_Al25_to_P29_reaclib", // 467, - "n_Al26_to_Al27_reaclib", // 468, - "He4_Al26_to_P30_reaclib", // 469, - "p_Al27_to_Si28_reaclib", // 470, - "He4_Al27_to_P31_reaclib", // 471, - "n_Si28_to_Si29_reaclib", // 472, - "p_Si28_to_P29_reaclib", // 473, - "He4_Si28_to_S32_reaclib", // 474, - "n_Si29_to_Si30_reaclib", // 475, - "p_Si29_to_P30_reaclib", // 476, - "He4_Si29_to_S33_reaclib", // 477, - "n_Si30_to_Si31_reaclib", // 478, - "p_Si30_to_P31_reaclib", // 479, - "He4_Si30_to_S34_reaclib", // 480, - "n_Si31_to_Si32_reaclib", // 481, - "p_Si31_to_P32_reaclib", // 482, - "He4_Si31_to_S35_reaclib", // 483, - "p_Si32_to_P33_reaclib", // 484, - "He4_Si32_to_S36_reaclib", // 485, - "n_P29_to_P30_reaclib", // 486, - "He4_P29_to_Cl33_reaclib", // 487, - "n_P30_to_P31_reaclib", // 488, - "He4_P30_to_Cl34_reaclib", // 489, - "n_P31_to_P32_reaclib", // 490, - "p_P31_to_S32_reaclib", // 491, - "He4_P31_to_Cl35_reaclib", // 492, - "n_P32_to_P33_reaclib", // 493, - "p_P32_to_S33_reaclib", // 494, - "He4_P32_to_Cl36_reaclib", // 495, - "p_P33_to_S34_reaclib", // 496, - "He4_P33_to_Cl37_reaclib", // 497, - "n_S32_to_S33_reaclib", // 498, - "p_S32_to_Cl33_reaclib", // 499, - "He4_S32_to_Ar36_reaclib", // 500, - "n_S33_to_S34_reaclib", // 501, - "p_S33_to_Cl34_reaclib", // 502, - "He4_S33_to_Ar37_reaclib", // 503, - "n_S34_to_S35_reaclib", // 504, - "p_S34_to_Cl35_reaclib", // 505, - "He4_S34_to_Ar38_reaclib", // 506, - "n_S35_to_S36_reaclib", // 507, - "p_S35_to_Cl36_reaclib", // 508, - "He4_S35_to_Ar39_reaclib", // 509, - "p_S36_to_Cl37_reaclib", // 510, - "He4_S36_to_Ar40_reaclib", // 511, - "n_Cl33_to_Cl34_reaclib", // 512, - "He4_Cl33_to_K37_reaclib", // 513, - "n_Cl34_to_Cl35_reaclib", // 514, - "He4_Cl34_to_K38_reaclib", // 515, - "n_Cl35_to_Cl36_reaclib", // 516, - "p_Cl35_to_Ar36_reaclib", // 517, - "He4_Cl35_to_K39_reaclib", // 518, - "n_Cl36_to_Cl37_reaclib", // 519, - "p_Cl36_to_Ar37_reaclib", // 520, - "He4_Cl36_to_K40_reaclib", // 521, - "p_Cl37_to_Ar38_reaclib", // 522, - "He4_Cl37_to_K41_reaclib", // 523, - "n_Ar36_to_Ar37_reaclib", // 524, - "p_Ar36_to_K37_reaclib", // 525, - "He4_Ar36_to_Ca40_reaclib", // 526, - "n_Ar37_to_Ar38_reaclib", // 527, - "p_Ar37_to_K38_reaclib", // 528, - "He4_Ar37_to_Ca41_reaclib", // 529, - "n_Ar38_to_Ar39_reaclib", // 530, - "p_Ar38_to_K39_reaclib", // 531, - "He4_Ar38_to_Ca42_reaclib", // 532, - "n_Ar39_to_Ar40_reaclib", // 533, - "p_Ar39_to_K40_reaclib", // 534, - "He4_Ar39_to_Ca43_reaclib", // 535, - "p_Ar40_to_K41_reaclib", // 536, - "He4_Ar40_to_Ca44_reaclib", // 537, - "n_K37_to_K38_reaclib", // 538, - "n_K38_to_K39_reaclib", // 539, - "n_K39_to_K40_reaclib", // 540, - "p_K39_to_Ca40_reaclib", // 541, - "He4_K39_to_Sc43_reaclib", // 542, - "n_K40_to_K41_reaclib", // 543, - "p_K40_to_Ca41_reaclib", // 544, - "He4_K40_to_Sc44_reaclib", // 545, - "p_K41_to_Ca42_reaclib", // 546, - "He4_K41_to_Sc45_reaclib", // 547, - "n_Ca40_to_Ca41_reaclib", // 548, - "He4_Ca40_to_Ti44_reaclib", // 549, - "n_Ca41_to_Ca42_reaclib", // 550, - "He4_Ca41_to_Ti45_reaclib", // 551, - "n_Ca42_to_Ca43_reaclib", // 552, - "p_Ca42_to_Sc43_reaclib", // 553, - "He4_Ca42_to_Ti46_reaclib", // 554, - "n_Ca43_to_Ca44_reaclib", // 555, - "p_Ca43_to_Sc44_reaclib", // 556, - "He4_Ca43_to_Ti47_reaclib", // 557, - "n_Ca44_to_Ca45_reaclib", // 558, - "p_Ca44_to_Sc45_reaclib", // 559, - "He4_Ca44_to_Ti48_reaclib", // 560, - "n_Ca45_to_Ca46_reaclib", // 561, - "p_Ca45_to_Sc46_reaclib", // 562, - "He4_Ca45_to_Ti49_reaclib", // 563, - "n_Ca46_to_Ca47_reaclib", // 564, - "p_Ca46_to_Sc47_reaclib", // 565, - "He4_Ca46_to_Ti50_reaclib", // 566, - "n_Ca47_to_Ca48_reaclib", // 567, - "p_Ca47_to_Sc48_reaclib", // 568, - "He4_Ca47_to_Ti51_reaclib", // 569, - "p_Ca48_to_Sc49_reaclib", // 570, - "n_Sc43_to_Sc44_reaclib", // 571, - "p_Sc43_to_Ti44_reaclib", // 572, - "He4_Sc43_to_V47_reaclib", // 573, - "n_Sc44_to_Sc45_reaclib", // 574, - "p_Sc44_to_Ti45_reaclib", // 575, - "He4_Sc44_to_V48_reaclib", // 576, - "n_Sc45_to_Sc46_reaclib", // 577, - "p_Sc45_to_Ti46_reaclib", // 578, - "He4_Sc45_to_V49_reaclib", // 579, - "n_Sc46_to_Sc47_reaclib", // 580, - "p_Sc46_to_Ti47_reaclib", // 581, - "He4_Sc46_to_V50_reaclib", // 582, - "n_Sc47_to_Sc48_reaclib", // 583, - "p_Sc47_to_Ti48_reaclib", // 584, - "He4_Sc47_to_V51_reaclib", // 585, - "n_Sc48_to_Sc49_reaclib", // 586, - "p_Sc48_to_Ti49_reaclib", // 587, - "He4_Sc48_to_V52_reaclib", // 588, - "p_Sc49_to_Ti50_reaclib", // 589, - "n_Ti44_to_Ti45_reaclib", // 590, - "He4_Ti44_to_Cr48_reaclib", // 591, - "n_Ti45_to_Ti46_reaclib", // 592, - "p_Ti45_to_V46_reaclib", // 593, - "He4_Ti45_to_Cr49_reaclib", // 594, - "n_Ti46_to_Ti47_reaclib", // 595, - "p_Ti46_to_V47_reaclib", // 596, - "He4_Ti46_to_Cr50_reaclib", // 597, - "n_Ti47_to_Ti48_reaclib", // 598, - "p_Ti47_to_V48_reaclib", // 599, - "He4_Ti47_to_Cr51_reaclib", // 600, - "n_Ti48_to_Ti49_reaclib", // 601, - "p_Ti48_to_V49_reaclib", // 602, - "He4_Ti48_to_Cr52_reaclib", // 603, - "n_Ti49_to_Ti50_reaclib", // 604, - "p_Ti49_to_V50_reaclib", // 605, - "He4_Ti49_to_Cr53_reaclib", // 606, - "n_Ti50_to_Ti51_reaclib", // 607, - "p_Ti50_to_V51_reaclib", // 608, - "He4_Ti50_to_Cr54_reaclib", // 609, - "p_Ti51_to_V52_reaclib", // 610, - "n_V46_to_V47_reaclib", // 611, - "He4_V46_to_Mn50_reaclib", // 612, - "n_V47_to_V48_reaclib", // 613, - "p_V47_to_Cr48_reaclib", // 614, - "He4_V47_to_Mn51_reaclib", // 615, - "n_V48_to_V49_reaclib", // 616, - "p_V48_to_Cr49_reaclib", // 617, - "He4_V48_to_Mn52_reaclib", // 618, - "n_V49_to_V50_reaclib", // 619, - "p_V49_to_Cr50_reaclib", // 620, - "He4_V49_to_Mn53_reaclib", // 621, - "n_V50_to_V51_reaclib", // 622, - "p_V50_to_Cr51_reaclib", // 623, - "He4_V50_to_Mn54_reaclib", // 624, - "n_V51_to_V52_reaclib", // 625, - "p_V51_to_Cr52_reaclib", // 626, - "He4_V51_to_Mn55_reaclib", // 627, - "p_V52_to_Cr53_reaclib", // 628, - "n_Cr48_to_Cr49_reaclib", // 629, - "He4_Cr48_to_Fe52_reaclib", // 630, - "n_Cr49_to_Cr50_reaclib", // 631, - "p_Cr49_to_Mn50_reaclib", // 632, - "He4_Cr49_to_Fe53_reaclib", // 633, - "n_Cr50_to_Cr51_reaclib", // 634, - "p_Cr50_to_Mn51_reaclib", // 635, - "He4_Cr50_to_Fe54_reaclib", // 636, - "n_Cr51_to_Cr52_reaclib", // 637, - "p_Cr51_to_Mn52_reaclib", // 638, - "He4_Cr51_to_Fe55_reaclib", // 639, - "n_Cr52_to_Cr53_reaclib", // 640, - "p_Cr52_to_Mn53_reaclib", // 641, - "He4_Cr52_to_Fe56_reaclib", // 642, - "n_Cr53_to_Cr54_reaclib", // 643, - "p_Cr53_to_Mn54_reaclib", // 644, - "He4_Cr53_to_Fe57_reaclib", // 645, - "p_Cr54_to_Mn55_reaclib", // 646, - "He4_Cr54_to_Fe58_reaclib", // 647, - "n_Mn50_to_Mn51_reaclib", // 648, - "He4_Mn50_to_Co54_reaclib", // 649, - "n_Mn51_to_Mn52_reaclib", // 650, - "p_Mn51_to_Fe52_reaclib", // 651, - "He4_Mn51_to_Co55_reaclib", // 652, - "n_Mn52_to_Mn53_reaclib", // 653, - "p_Mn52_to_Fe53_reaclib", // 654, - "He4_Mn52_to_Co56_reaclib", // 655, - "n_Mn53_to_Mn54_reaclib", // 656, - "p_Mn53_to_Fe54_reaclib", // 657, - "He4_Mn53_to_Co57_reaclib", // 658, - "n_Mn54_to_Mn55_reaclib", // 659, - "p_Mn54_to_Fe55_reaclib", // 660, - "He4_Mn54_to_Co58_reaclib", // 661, - "p_Mn55_to_Fe56_reaclib", // 662, - "He4_Mn55_to_Co59_reaclib", // 663, - "n_Fe52_to_Fe53_reaclib", // 664, - "p_Fe52_to_Co53_reaclib", // 665, - "He4_Fe52_to_Ni56_reaclib", // 666, - "n_Fe53_to_Fe54_reaclib", // 667, - "p_Fe53_to_Co54_reaclib", // 668, - "He4_Fe53_to_Ni57_reaclib", // 669, - "n_Fe54_to_Fe55_reaclib", // 670, - "p_Fe54_to_Co55_reaclib", // 671, - "He4_Fe54_to_Ni58_reaclib", // 672, - "n_Fe55_to_Fe56_reaclib", // 673, - "p_Fe55_to_Co56_reaclib", // 674, - "He4_Fe55_to_Ni59_reaclib", // 675, - "n_Fe56_to_Fe57_reaclib", // 676, - "p_Fe56_to_Co57_reaclib", // 677, - "He4_Fe56_to_Ni60_reaclib", // 678, - "n_Fe57_to_Fe58_reaclib", // 679, - "p_Fe57_to_Co58_reaclib", // 680, - "He4_Fe57_to_Ni61_reaclib", // 681, - "p_Fe58_to_Co59_reaclib", // 682, - "He4_Fe58_to_Ni62_reaclib", // 683, - "n_Co53_to_Co54_reaclib", // 684, - "He4_Co53_to_Cu57_reaclib", // 685, - "n_Co54_to_Co55_reaclib", // 686, - "He4_Co54_to_Cu58_reaclib", // 687, - "n_Co55_to_Co56_reaclib", // 688, - "p_Co55_to_Ni56_reaclib", // 689, - "He4_Co55_to_Cu59_reaclib", // 690, - "n_Co56_to_Co57_reaclib", // 691, - "p_Co56_to_Ni57_reaclib", // 692, - "He4_Co56_to_Cu60_reaclib", // 693, - "n_Co57_to_Co58_reaclib", // 694, - "p_Co57_to_Ni58_reaclib", // 695, - "He4_Co57_to_Cu61_reaclib", // 696, - "n_Co58_to_Co59_reaclib", // 697, - "p_Co58_to_Ni59_reaclib", // 698, - "He4_Co58_to_Cu62_reaclib", // 699, - "p_Co59_to_Ni60_reaclib", // 700, - "He4_Co59_to_Cu63_reaclib", // 701, - "n_Ni56_to_Ni57_reaclib", // 702, - "p_Ni56_to_Cu57_reaclib", // 703, - "He4_Ni56_to_Zn60_reaclib", // 704, - "n_Ni57_to_Ni58_reaclib", // 705, - "p_Ni57_to_Cu58_reaclib", // 706, - "He4_Ni57_to_Zn61_reaclib", // 707, - "n_Ni58_to_Ni59_reaclib", // 708, - "p_Ni58_to_Cu59_reaclib", // 709, - "He4_Ni58_to_Zn62_reaclib", // 710, - "n_Ni59_to_Ni60_reaclib", // 711, - "p_Ni59_to_Cu60_reaclib", // 712, - "He4_Ni59_to_Zn63_reaclib", // 713, - "n_Ni60_to_Ni61_reaclib", // 714, - "p_Ni60_to_Cu61_reaclib", // 715, - "He4_Ni60_to_Zn64_reaclib", // 716, - "n_Ni61_to_Ni62_reaclib", // 717, - "p_Ni61_to_Cu62_reaclib", // 718, - "He4_Ni61_to_Zn65_reaclib", // 719, - "n_Ni62_to_Ni63_reaclib", // 720, - "p_Ni62_to_Cu63_reaclib", // 721, - "He4_Ni62_to_Zn66_reaclib", // 722, - "n_Ni63_to_Ni64_reaclib", // 723, - "p_Ni63_to_Cu64_reaclib", // 724, - "p_Ni64_to_Cu65_reaclib", // 725, - "n_Cu57_to_Cu58_reaclib", // 726, - "n_Cu58_to_Cu59_reaclib", // 727, - "p_Cu58_to_Zn59_reaclib", // 728, - "He4_Cu58_to_Ga62_reaclib", // 729, - "n_Cu59_to_Cu60_reaclib", // 730, - "p_Cu59_to_Zn60_reaclib", // 731, - "He4_Cu59_to_Ga63_reaclib", // 732, - "n_Cu60_to_Cu61_reaclib", // 733, - "p_Cu60_to_Zn61_reaclib", // 734, - "He4_Cu60_to_Ga64_reaclib", // 735, - "n_Cu61_to_Cu62_reaclib", // 736, - "p_Cu61_to_Zn62_reaclib", // 737, - "n_Cu62_to_Cu63_reaclib", // 738, - "p_Cu62_to_Zn63_reaclib", // 739, - "n_Cu63_to_Cu64_reaclib", // 740, - "p_Cu63_to_Zn64_reaclib", // 741, - "n_Cu64_to_Cu65_reaclib", // 742, - "p_Cu64_to_Zn65_reaclib", // 743, - "p_Cu65_to_Zn66_reaclib", // 744, - "n_Zn59_to_Zn60_reaclib", // 745, - "He4_Zn59_to_Ge63_reaclib", // 746, - "n_Zn60_to_Zn61_reaclib", // 747, - "He4_Zn60_to_Ge64_reaclib", // 748, - "n_Zn61_to_Zn62_reaclib", // 749, - "p_Zn61_to_Ga62_reaclib", // 750, - "n_Zn62_to_Zn63_reaclib", // 751, - "p_Zn62_to_Ga63_reaclib", // 752, - "n_Zn63_to_Zn64_reaclib", // 753, - "p_Zn63_to_Ga64_reaclib", // 754, - "n_Zn64_to_Zn65_reaclib", // 755, - "n_Zn65_to_Zn66_reaclib", // 756, - "n_Ga62_to_Ga63_reaclib", // 757, - "p_Ga62_to_Ge63_reaclib", // 758, - "n_Ga63_to_Ga64_reaclib", // 759, - "p_Ga63_to_Ge64_reaclib", // 760, - "n_Ge63_to_Ge64_reaclib", // 761, - "d_d_to_n_He3_reaclib", // 762, - "n_He3_to_d_d_reaclib", // 763, - "d_He3_to_p_He4_reaclib", // 764, - "He4_He3_to_p_Li6_reaclib", // 765, - "p_He4_to_d_He3_reaclib", // 766, - "He4_He4_to_n_Be7_reaclib", // 767, - "He4_He4_to_p_Li7_reaclib", // 768, - "p_Li6_to_He4_He3_reaclib", // 769, - "d_Li6_to_n_Be7_reaclib", // 770, - "d_Li6_to_p_Li7_reaclib", // 771, - "He4_Li6_to_p_Be9_reaclib", // 772, - "p_Li7_to_n_Be7_reaclib", // 773, - "p_Li7_to_d_Li6_reaclib", // 774, - "p_Li7_to_He4_He4_reaclib", // 775, - "He4_Li7_to_n_B10_reaclib", // 776, - "n_Be7_to_p_Li7_reaclib", // 777, - "n_Be7_to_d_Li6_reaclib", // 778, - "n_Be7_to_He4_He4_reaclib", // 779, - "He4_Be7_to_p_B10_reaclib", // 780, - "p_Be9_to_He4_Li6_reaclib", // 781, - "He4_Be9_to_n_C12_reaclib", // 782, - "n_B10_to_He4_Li7_reaclib", // 783, - "p_B10_to_He4_Be7_reaclib", // 784, - "He4_B10_to_n_N13_reaclib", // 785, - "He4_B10_to_p_C13_reaclib", // 786, - "He4_B11_to_n_N14_reaclib", // 787, - "He4_B11_to_p_C14_reaclib", // 788, - "n_C12_to_He4_Be9_reaclib", // 789, - "He4_C12_to_n_O15_reaclib", // 790, - "He4_C12_to_p_N15_reaclib", // 791, - "C12_C12_to_n_Mg23_reaclib", // 792, - "C12_C12_to_p_Na23_reaclib", // 793, - "C12_C12_to_He4_Ne20_reaclib", // 794, - "p_C13_to_n_N13_reaclib", // 795, - "p_C13_to_He4_B10_reaclib", // 796, - "d_C13_to_n_N14_reaclib", // 797, - "He4_C13_to_n_O16_reaclib", // 798, - "p_C14_to_n_N14_reaclib", // 799, - "p_C14_to_He4_B11_reaclib", // 800, - "d_C14_to_n_N15_reaclib", // 801, - "He4_C14_to_n_O17_reaclib", // 802, - "n_N13_to_p_C13_reaclib", // 803, - "n_N13_to_He4_B10_reaclib", // 804, - "He4_N13_to_p_O16_reaclib", // 805, - "n_N14_to_p_C14_reaclib", // 806, - "n_N14_to_d_C13_reaclib", // 807, - "n_N14_to_He4_B11_reaclib", // 808, - "p_N14_to_n_O14_reaclib", // 809, - "He4_N14_to_n_F17_reaclib", // 810, - "He4_N14_to_p_O17_reaclib", // 811, - "n_N15_to_d_C14_reaclib", // 812, - "p_N15_to_n_O15_reaclib", // 813, - "p_N15_to_He4_C12_reaclib", // 814, - "He4_N15_to_n_F18_reaclib", // 815, - "He4_N15_to_p_O18_reaclib", // 816, - "n_O14_to_p_N14_reaclib", // 817, - "He4_O14_to_p_F17_reaclib", // 818, - "n_O15_to_p_N15_reaclib", // 819, - "n_O15_to_He4_C12_reaclib", // 820, - "He4_O15_to_n_Ne18_reaclib", // 821, - "He4_O15_to_p_F18_reaclib", // 822, - "n_O16_to_He4_C13_reaclib", // 823, - "p_O16_to_He4_N13_reaclib", // 824, - "He4_O16_to_n_Ne19_reaclib", // 825, - "He4_O16_to_p_F19_reaclib", // 826, - "C12_O16_to_p_Al27_reaclib", // 827, - "C12_O16_to_He4_Mg24_reaclib", // 828, - "O16_O16_to_p_P31_reaclib", // 829, - "O16_O16_to_He4_Si28_reaclib", // 830, - "n_O17_to_He4_C14_reaclib", // 831, - "p_O17_to_n_F17_reaclib", // 832, - "p_O17_to_He4_N14_reaclib", // 833, - "He4_O17_to_n_Ne20_reaclib", // 834, - "p_O18_to_n_F18_reaclib", // 835, - "p_O18_to_He4_N15_reaclib", // 836, - "He4_O18_to_n_Ne21_reaclib", // 837, - "n_F17_to_p_O17_reaclib", // 838, - "n_F17_to_He4_N14_reaclib", // 839, - "p_F17_to_He4_O14_reaclib", // 840, - "He4_F17_to_p_Ne20_reaclib", // 841, - "n_F18_to_p_O18_reaclib", // 842, - "n_F18_to_He4_N15_reaclib", // 843, - "p_F18_to_n_Ne18_reaclib", // 844, - "p_F18_to_He4_O15_reaclib", // 845, - "He4_F18_to_n_Na21_reaclib", // 846, - "He4_F18_to_p_Ne21_reaclib", // 847, - "p_F19_to_n_Ne19_reaclib", // 848, - "p_F19_to_He4_O16_reaclib", // 849, - "He4_F19_to_n_Na22_reaclib", // 850, - "He4_F19_to_p_Ne22_reaclib", // 851, - "n_Ne18_to_p_F18_reaclib", // 852, - "n_Ne18_to_He4_O15_reaclib", // 853, - "He4_Ne18_to_p_Na21_reaclib", // 854, - "n_Ne19_to_p_F19_reaclib", // 855, - "n_Ne19_to_He4_O16_reaclib", // 856, - "He4_Ne19_to_p_Na22_reaclib", // 857, - "n_Ne20_to_He4_O17_reaclib", // 858, - "p_Ne20_to_He4_F17_reaclib", // 859, - "He4_Ne20_to_n_Mg23_reaclib", // 860, - "He4_Ne20_to_p_Na23_reaclib", // 861, - "He4_Ne20_to_C12_C12_reaclib", // 862, - "C12_Ne20_to_p_P31_reaclib", // 863, - "C12_Ne20_to_He4_Si28_reaclib", // 864, - "n_Ne21_to_He4_O18_reaclib", // 865, - "p_Ne21_to_n_Na21_reaclib", // 866, - "p_Ne21_to_He4_F18_reaclib", // 867, - "He4_Ne21_to_n_Mg24_reaclib", // 868, - "p_Ne22_to_n_Na22_reaclib", // 869, - "p_Ne22_to_He4_F19_reaclib", // 870, - "He4_Ne22_to_n_Mg25_reaclib", // 871, - "n_Na21_to_p_Ne21_reaclib", // 872, - "n_Na21_to_He4_F18_reaclib", // 873, - "p_Na21_to_He4_Ne18_reaclib", // 874, - "He4_Na21_to_p_Mg24_reaclib", // 875, - "n_Na22_to_p_Ne22_reaclib", // 876, - "n_Na22_to_He4_F19_reaclib", // 877, - "p_Na22_to_He4_Ne19_reaclib", // 878, - "He4_Na22_to_n_Al25_reaclib", // 879, - "He4_Na22_to_p_Mg25_reaclib", // 880, - "p_Na23_to_n_Mg23_reaclib", // 881, - "p_Na23_to_He4_Ne20_reaclib", // 882, - "p_Na23_to_C12_C12_reaclib", // 883, - "He4_Na23_to_n_Al26_reaclib", // 884, - "He4_Na23_to_p_Mg26_reaclib", // 885, - "n_Mg23_to_p_Na23_reaclib", // 886, - "n_Mg23_to_He4_Ne20_reaclib", // 887, - "n_Mg23_to_C12_C12_reaclib", // 888, - "He4_Mg23_to_p_Al26_reaclib", // 889, - "n_Mg24_to_He4_Ne21_reaclib", // 890, - "p_Mg24_to_He4_Na21_reaclib", // 891, - "He4_Mg24_to_p_Al27_reaclib", // 892, - "He4_Mg24_to_C12_O16_reaclib", // 893, - "n_Mg25_to_He4_Ne22_reaclib", // 894, - "p_Mg25_to_n_Al25_reaclib", // 895, - "p_Mg25_to_He4_Na22_reaclib", // 896, - "He4_Mg25_to_n_Si28_reaclib", // 897, - "p_Mg26_to_n_Al26_reaclib", // 898, - "p_Mg26_to_He4_Na23_reaclib", // 899, - "He4_Mg26_to_n_Si29_reaclib", // 900, - "n_Al25_to_p_Mg25_reaclib", // 901, - "n_Al25_to_He4_Na22_reaclib", // 902, - "He4_Al25_to_p_Si28_reaclib", // 903, - "n_Al26_to_p_Mg26_reaclib", // 904, - "n_Al26_to_He4_Na23_reaclib", // 905, - "p_Al26_to_He4_Mg23_reaclib", // 906, - "He4_Al26_to_n_P29_reaclib", // 907, - "He4_Al26_to_p_Si29_reaclib", // 908, - "p_Al27_to_He4_Mg24_reaclib", // 909, - "p_Al27_to_C12_O16_reaclib", // 910, - "He4_Al27_to_n_P30_reaclib", // 911, - "He4_Al27_to_p_Si30_reaclib", // 912, - "n_Si28_to_He4_Mg25_reaclib", // 913, - "p_Si28_to_He4_Al25_reaclib", // 914, - "He4_Si28_to_p_P31_reaclib", // 915, - "He4_Si28_to_C12_Ne20_reaclib", // 916, - "He4_Si28_to_O16_O16_reaclib", // 917, - "n_Si29_to_He4_Mg26_reaclib", // 918, - "p_Si29_to_n_P29_reaclib", // 919, - "p_Si29_to_He4_Al26_reaclib", // 920, - "He4_Si29_to_n_S32_reaclib", // 921, - "He4_Si29_to_p_P32_reaclib", // 922, - "p_Si30_to_n_P30_reaclib", // 923, - "p_Si30_to_He4_Al27_reaclib", // 924, - "He4_Si30_to_n_S33_reaclib", // 925, - "He4_Si30_to_p_P33_reaclib", // 926, - "p_Si31_to_n_P31_reaclib", // 927, - "He4_Si31_to_n_S34_reaclib", // 928, - "p_Si32_to_n_P32_reaclib", // 929, - "He4_Si32_to_n_S35_reaclib", // 930, - "n_P29_to_p_Si29_reaclib", // 931, - "n_P29_to_He4_Al26_reaclib", // 932, - "He4_P29_to_p_S32_reaclib", // 933, - "n_P30_to_p_Si30_reaclib", // 934, - "n_P30_to_He4_Al27_reaclib", // 935, - "He4_P30_to_n_Cl33_reaclib", // 936, - "He4_P30_to_p_S33_reaclib", // 937, - "n_P31_to_p_Si31_reaclib", // 938, - "p_P31_to_He4_Si28_reaclib", // 939, - "p_P31_to_C12_Ne20_reaclib", // 940, - "p_P31_to_O16_O16_reaclib", // 941, - "He4_P31_to_n_Cl34_reaclib", // 942, - "He4_P31_to_p_S34_reaclib", // 943, - "n_P32_to_p_Si32_reaclib", // 944, - "p_P32_to_n_S32_reaclib", // 945, - "p_P32_to_He4_Si29_reaclib", // 946, - "He4_P32_to_n_Cl35_reaclib", // 947, - "He4_P32_to_p_S35_reaclib", // 948, - "p_P33_to_n_S33_reaclib", // 949, - "p_P33_to_He4_Si30_reaclib", // 950, - "He4_P33_to_n_Cl36_reaclib", // 951, - "He4_P33_to_p_S36_reaclib", // 952, - "n_S32_to_p_P32_reaclib", // 953, - "n_S32_to_He4_Si29_reaclib", // 954, - "p_S32_to_He4_P29_reaclib", // 955, - "He4_S32_to_p_Cl35_reaclib", // 956, - "n_S33_to_p_P33_reaclib", // 957, - "n_S33_to_He4_Si30_reaclib", // 958, - "p_S33_to_n_Cl33_reaclib", // 959, - "p_S33_to_He4_P30_reaclib", // 960, - "He4_S33_to_n_Ar36_reaclib", // 961, - "He4_S33_to_p_Cl36_reaclib", // 962, - "n_S34_to_He4_Si31_reaclib", // 963, - "p_S34_to_n_Cl34_reaclib", // 964, - "p_S34_to_He4_P31_reaclib", // 965, - "He4_S34_to_n_Ar37_reaclib", // 966, - "He4_S34_to_p_Cl37_reaclib", // 967, - "n_S35_to_He4_Si32_reaclib", // 968, - "p_S35_to_n_Cl35_reaclib", // 969, - "p_S35_to_He4_P32_reaclib", // 970, - "He4_S35_to_n_Ar38_reaclib", // 971, - "p_S36_to_n_Cl36_reaclib", // 972, - "p_S36_to_He4_P33_reaclib", // 973, - "He4_S36_to_n_Ar39_reaclib", // 974, - "n_Cl33_to_p_S33_reaclib", // 975, - "n_Cl33_to_He4_P30_reaclib", // 976, - "He4_Cl33_to_p_Ar36_reaclib", // 977, - "n_Cl34_to_p_S34_reaclib", // 978, - "n_Cl34_to_He4_P31_reaclib", // 979, - "He4_Cl34_to_n_K37_reaclib", // 980, - "He4_Cl34_to_p_Ar37_reaclib", // 981, - "n_Cl35_to_p_S35_reaclib", // 982, - "n_Cl35_to_He4_P32_reaclib", // 983, - "p_Cl35_to_He4_S32_reaclib", // 984, - "He4_Cl35_to_n_K38_reaclib", // 985, - "He4_Cl35_to_p_Ar38_reaclib", // 986, - "n_Cl36_to_p_S36_reaclib", // 987, - "n_Cl36_to_He4_P33_reaclib", // 988, - "p_Cl36_to_n_Ar36_reaclib", // 989, - "p_Cl36_to_He4_S33_reaclib", // 990, - "He4_Cl36_to_n_K39_reaclib", // 991, - "He4_Cl36_to_p_Ar39_reaclib", // 992, - "p_Cl37_to_n_Ar37_reaclib", // 993, - "p_Cl37_to_He4_S34_reaclib", // 994, - "He4_Cl37_to_n_K40_reaclib", // 995, - "He4_Cl37_to_p_Ar40_reaclib", // 996, - "n_Ar36_to_p_Cl36_reaclib", // 997, - "n_Ar36_to_He4_S33_reaclib", // 998, - "p_Ar36_to_He4_Cl33_reaclib", // 999, - "He4_Ar36_to_p_K39_reaclib", // 1000, - "n_Ar37_to_p_Cl37_reaclib", // 1001, - "n_Ar37_to_He4_S34_reaclib", // 1002, - "p_Ar37_to_n_K37_reaclib", // 1003, - "p_Ar37_to_He4_Cl34_reaclib", // 1004, - "He4_Ar37_to_n_Ca40_reaclib", // 1005, - "He4_Ar37_to_p_K40_reaclib", // 1006, - "n_Ar38_to_He4_S35_reaclib", // 1007, - "p_Ar38_to_n_K38_reaclib", // 1008, - "p_Ar38_to_He4_Cl35_reaclib", // 1009, - "He4_Ar38_to_n_Ca41_reaclib", // 1010, - "He4_Ar38_to_p_K41_reaclib", // 1011, - "n_Ar39_to_He4_S36_reaclib", // 1012, - "p_Ar39_to_n_K39_reaclib", // 1013, - "p_Ar39_to_He4_Cl36_reaclib", // 1014, - "He4_Ar39_to_n_Ca42_reaclib", // 1015, - "p_Ar40_to_n_K40_reaclib", // 1016, - "p_Ar40_to_He4_Cl37_reaclib", // 1017, - "He4_Ar40_to_n_Ca43_reaclib", // 1018, - "n_K37_to_p_Ar37_reaclib", // 1019, - "n_K37_to_He4_Cl34_reaclib", // 1020, - "He4_K37_to_p_Ca40_reaclib", // 1021, - "n_K38_to_p_Ar38_reaclib", // 1022, - "n_K38_to_He4_Cl35_reaclib", // 1023, - "He4_K38_to_p_Ca41_reaclib", // 1024, - "n_K39_to_p_Ar39_reaclib", // 1025, - "n_K39_to_He4_Cl36_reaclib", // 1026, - "p_K39_to_He4_Ar36_reaclib", // 1027, - "He4_K39_to_p_Ca42_reaclib", // 1028, - "n_K40_to_p_Ar40_reaclib", // 1029, - "n_K40_to_He4_Cl37_reaclib", // 1030, - "p_K40_to_n_Ca40_reaclib", // 1031, - "p_K40_to_He4_Ar37_reaclib", // 1032, - "He4_K40_to_n_Sc43_reaclib", // 1033, - "He4_K40_to_p_Ca43_reaclib", // 1034, - "p_K41_to_n_Ca41_reaclib", // 1035, - "p_K41_to_He4_Ar38_reaclib", // 1036, - "He4_K41_to_n_Sc44_reaclib", // 1037, - "He4_K41_to_p_Ca44_reaclib", // 1038, - "n_Ca40_to_p_K40_reaclib", // 1039, - "n_Ca40_to_He4_Ar37_reaclib", // 1040, - "p_Ca40_to_He4_K37_reaclib", // 1041, - "He4_Ca40_to_p_Sc43_reaclib", // 1042, - "n_Ca41_to_p_K41_reaclib", // 1043, - "n_Ca41_to_He4_Ar38_reaclib", // 1044, - "p_Ca41_to_He4_K38_reaclib", // 1045, - "He4_Ca41_to_n_Ti44_reaclib", // 1046, - "He4_Ca41_to_p_Sc44_reaclib", // 1047, - "n_Ca42_to_He4_Ar39_reaclib", // 1048, - "p_Ca42_to_He4_K39_reaclib", // 1049, - "He4_Ca42_to_n_Ti45_reaclib", // 1050, - "He4_Ca42_to_p_Sc45_reaclib", // 1051, - "n_Ca43_to_He4_Ar40_reaclib", // 1052, - "p_Ca43_to_n_Sc43_reaclib", // 1053, - "p_Ca43_to_He4_K40_reaclib", // 1054, - "He4_Ca43_to_n_Ti46_reaclib", // 1055, - "He4_Ca43_to_p_Sc46_reaclib", // 1056, - "p_Ca44_to_n_Sc44_reaclib", // 1057, - "p_Ca44_to_He4_K41_reaclib", // 1058, - "He4_Ca44_to_n_Ti47_reaclib", // 1059, - "He4_Ca44_to_p_Sc47_reaclib", // 1060, - "p_Ca45_to_n_Sc45_reaclib", // 1061, - "He4_Ca45_to_n_Ti48_reaclib", // 1062, - "He4_Ca45_to_p_Sc48_reaclib", // 1063, - "p_Ca46_to_n_Sc46_reaclib", // 1064, - "He4_Ca46_to_n_Ti49_reaclib", // 1065, - "He4_Ca46_to_p_Sc49_reaclib", // 1066, - "p_Ca47_to_n_Sc47_reaclib", // 1067, - "He4_Ca47_to_n_Ti50_reaclib", // 1068, - "p_Ca48_to_n_Sc48_reaclib", // 1069, - "He4_Ca48_to_n_Ti51_reaclib", // 1070, - "n_Sc43_to_p_Ca43_reaclib", // 1071, - "n_Sc43_to_He4_K40_reaclib", // 1072, - "p_Sc43_to_He4_Ca40_reaclib", // 1073, - "He4_Sc43_to_n_V46_reaclib", // 1074, - "He4_Sc43_to_p_Ti46_reaclib", // 1075, - "n_Sc44_to_p_Ca44_reaclib", // 1076, - "n_Sc44_to_He4_K41_reaclib", // 1077, - "p_Sc44_to_n_Ti44_reaclib", // 1078, - "p_Sc44_to_He4_Ca41_reaclib", // 1079, - "He4_Sc44_to_n_V47_reaclib", // 1080, - "He4_Sc44_to_p_Ti47_reaclib", // 1081, - "n_Sc45_to_p_Ca45_reaclib", // 1082, - "p_Sc45_to_n_Ti45_reaclib", // 1083, - "p_Sc45_to_He4_Ca42_reaclib", // 1084, - "He4_Sc45_to_n_V48_reaclib", // 1085, - "He4_Sc45_to_p_Ti48_reaclib", // 1086, - "n_Sc46_to_p_Ca46_reaclib", // 1087, - "p_Sc46_to_n_Ti46_reaclib", // 1088, - "p_Sc46_to_He4_Ca43_reaclib", // 1089, - "He4_Sc46_to_n_V49_reaclib", // 1090, - "He4_Sc46_to_p_Ti49_reaclib", // 1091, - "n_Sc47_to_p_Ca47_reaclib", // 1092, - "p_Sc47_to_n_Ti47_reaclib", // 1093, - "p_Sc47_to_He4_Ca44_reaclib", // 1094, - "He4_Sc47_to_n_V50_reaclib", // 1095, - "He4_Sc47_to_p_Ti50_reaclib", // 1096, - "n_Sc48_to_p_Ca48_reaclib", // 1097, - "p_Sc48_to_n_Ti48_reaclib", // 1098, - "p_Sc48_to_He4_Ca45_reaclib", // 1099, - "He4_Sc48_to_n_V51_reaclib", // 1100, - "He4_Sc48_to_p_Ti51_reaclib", // 1101, - "p_Sc49_to_n_Ti49_reaclib", // 1102, - "p_Sc49_to_He4_Ca46_reaclib", // 1103, - "He4_Sc49_to_n_V52_reaclib", // 1104, - "n_Ti44_to_p_Sc44_reaclib", // 1105, - "n_Ti44_to_He4_Ca41_reaclib", // 1106, - "He4_Ti44_to_p_V47_reaclib", // 1107, - "n_Ti45_to_p_Sc45_reaclib", // 1108, - "n_Ti45_to_He4_Ca42_reaclib", // 1109, - "He4_Ti45_to_n_Cr48_reaclib", // 1110, - "He4_Ti45_to_p_V48_reaclib", // 1111, - "n_Ti46_to_p_Sc46_reaclib", // 1112, - "n_Ti46_to_He4_Ca43_reaclib", // 1113, - "p_Ti46_to_n_V46_reaclib", // 1114, - "p_Ti46_to_He4_Sc43_reaclib", // 1115, - "He4_Ti46_to_n_Cr49_reaclib", // 1116, - "He4_Ti46_to_p_V49_reaclib", // 1117, - "n_Ti47_to_p_Sc47_reaclib", // 1118, - "n_Ti47_to_He4_Ca44_reaclib", // 1119, - "p_Ti47_to_n_V47_reaclib", // 1120, - "p_Ti47_to_He4_Sc44_reaclib", // 1121, - "He4_Ti47_to_n_Cr50_reaclib", // 1122, - "He4_Ti47_to_p_V50_reaclib", // 1123, - "n_Ti48_to_p_Sc48_reaclib", // 1124, - "n_Ti48_to_He4_Ca45_reaclib", // 1125, - "p_Ti48_to_n_V48_reaclib", // 1126, - "p_Ti48_to_He4_Sc45_reaclib", // 1127, - "He4_Ti48_to_n_Cr51_reaclib", // 1128, - "He4_Ti48_to_p_V51_reaclib", // 1129, - "n_Ti49_to_p_Sc49_reaclib", // 1130, - "n_Ti49_to_He4_Ca46_reaclib", // 1131, - "p_Ti49_to_n_V49_reaclib", // 1132, - "p_Ti49_to_He4_Sc46_reaclib", // 1133, - "He4_Ti49_to_n_Cr52_reaclib", // 1134, - "He4_Ti49_to_p_V52_reaclib", // 1135, - "n_Ti50_to_He4_Ca47_reaclib", // 1136, - "p_Ti50_to_n_V50_reaclib", // 1137, - "p_Ti50_to_He4_Sc47_reaclib", // 1138, - "He4_Ti50_to_n_Cr53_reaclib", // 1139, - "n_Ti51_to_He4_Ca48_reaclib", // 1140, - "p_Ti51_to_n_V51_reaclib", // 1141, - "p_Ti51_to_He4_Sc48_reaclib", // 1142, - "He4_Ti51_to_n_Cr54_reaclib", // 1143, - "n_V46_to_p_Ti46_reaclib", // 1144, - "n_V46_to_He4_Sc43_reaclib", // 1145, - "He4_V46_to_p_Cr49_reaclib", // 1146, - "n_V47_to_p_Ti47_reaclib", // 1147, - "n_V47_to_He4_Sc44_reaclib", // 1148, - "p_V47_to_He4_Ti44_reaclib", // 1149, - "He4_V47_to_n_Mn50_reaclib", // 1150, - "He4_V47_to_p_Cr50_reaclib", // 1151, - "n_V48_to_p_Ti48_reaclib", // 1152, - "n_V48_to_He4_Sc45_reaclib", // 1153, - "p_V48_to_n_Cr48_reaclib", // 1154, - "p_V48_to_He4_Ti45_reaclib", // 1155, - "He4_V48_to_n_Mn51_reaclib", // 1156, - "He4_V48_to_p_Cr51_reaclib", // 1157, - "n_V49_to_p_Ti49_reaclib", // 1158, - "n_V49_to_He4_Sc46_reaclib", // 1159, - "p_V49_to_n_Cr49_reaclib", // 1160, - "p_V49_to_He4_Ti46_reaclib", // 1161, - "He4_V49_to_n_Mn52_reaclib", // 1162, - "He4_V49_to_p_Cr52_reaclib", // 1163, - "n_V50_to_p_Ti50_reaclib", // 1164, - "n_V50_to_He4_Sc47_reaclib", // 1165, - "p_V50_to_n_Cr50_reaclib", // 1166, - "p_V50_to_He4_Ti47_reaclib", // 1167, - "He4_V50_to_n_Mn53_reaclib", // 1168, - "He4_V50_to_p_Cr53_reaclib", // 1169, - "n_V51_to_p_Ti51_reaclib", // 1170, - "n_V51_to_He4_Sc48_reaclib", // 1171, - "p_V51_to_n_Cr51_reaclib", // 1172, - "p_V51_to_He4_Ti48_reaclib", // 1173, - "He4_V51_to_n_Mn54_reaclib", // 1174, - "He4_V51_to_p_Cr54_reaclib", // 1175, - "n_V52_to_He4_Sc49_reaclib", // 1176, - "p_V52_to_n_Cr52_reaclib", // 1177, - "p_V52_to_He4_Ti49_reaclib", // 1178, - "He4_V52_to_n_Mn55_reaclib", // 1179, - "n_Cr48_to_p_V48_reaclib", // 1180, - "n_Cr48_to_He4_Ti45_reaclib", // 1181, - "He4_Cr48_to_p_Mn51_reaclib", // 1182, - "n_Cr49_to_p_V49_reaclib", // 1183, - "n_Cr49_to_He4_Ti46_reaclib", // 1184, - "p_Cr49_to_He4_V46_reaclib", // 1185, - "He4_Cr49_to_n_Fe52_reaclib", // 1186, - "He4_Cr49_to_p_Mn52_reaclib", // 1187, - "n_Cr50_to_p_V50_reaclib", // 1188, - "n_Cr50_to_He4_Ti47_reaclib", // 1189, - "p_Cr50_to_n_Mn50_reaclib", // 1190, - "p_Cr50_to_He4_V47_reaclib", // 1191, - "He4_Cr50_to_n_Fe53_reaclib", // 1192, - "He4_Cr50_to_p_Mn53_reaclib", // 1193, - "n_Cr51_to_p_V51_reaclib", // 1194, - "n_Cr51_to_He4_Ti48_reaclib", // 1195, - "p_Cr51_to_n_Mn51_reaclib", // 1196, - "p_Cr51_to_He4_V48_reaclib", // 1197, - "He4_Cr51_to_n_Fe54_reaclib", // 1198, - "He4_Cr51_to_p_Mn54_reaclib", // 1199, - "n_Cr52_to_p_V52_reaclib", // 1200, - "n_Cr52_to_He4_Ti49_reaclib", // 1201, - "p_Cr52_to_n_Mn52_reaclib", // 1202, - "p_Cr52_to_He4_V49_reaclib", // 1203, - "He4_Cr52_to_n_Fe55_reaclib", // 1204, - "He4_Cr52_to_p_Mn55_reaclib", // 1205, - "n_Cr53_to_He4_Ti50_reaclib", // 1206, - "p_Cr53_to_n_Mn53_reaclib", // 1207, - "p_Cr53_to_He4_V50_reaclib", // 1208, - "He4_Cr53_to_n_Fe56_reaclib", // 1209, - "n_Cr54_to_He4_Ti51_reaclib", // 1210, - "p_Cr54_to_n_Mn54_reaclib", // 1211, - "p_Cr54_to_He4_V51_reaclib", // 1212, - "He4_Cr54_to_n_Fe57_reaclib", // 1213, - "n_Mn50_to_p_Cr50_reaclib", // 1214, - "n_Mn50_to_He4_V47_reaclib", // 1215, - "He4_Mn50_to_n_Co53_reaclib", // 1216, - "He4_Mn50_to_p_Fe53_reaclib", // 1217, - "n_Mn51_to_p_Cr51_reaclib", // 1218, - "n_Mn51_to_He4_V48_reaclib", // 1219, - "p_Mn51_to_He4_Cr48_reaclib", // 1220, - "He4_Mn51_to_n_Co54_reaclib", // 1221, - "He4_Mn51_to_p_Fe54_reaclib", // 1222, - "n_Mn52_to_p_Cr52_reaclib", // 1223, - "n_Mn52_to_He4_V49_reaclib", // 1224, - "p_Mn52_to_n_Fe52_reaclib", // 1225, - "p_Mn52_to_He4_Cr49_reaclib", // 1226, - "He4_Mn52_to_n_Co55_reaclib", // 1227, - "He4_Mn52_to_p_Fe55_reaclib", // 1228, - "n_Mn53_to_p_Cr53_reaclib", // 1229, - "n_Mn53_to_He4_V50_reaclib", // 1230, - "p_Mn53_to_n_Fe53_reaclib", // 1231, - "p_Mn53_to_He4_Cr50_reaclib", // 1232, - "He4_Mn53_to_n_Co56_reaclib", // 1233, - "He4_Mn53_to_p_Fe56_reaclib", // 1234, - "n_Mn54_to_p_Cr54_reaclib", // 1235, - "n_Mn54_to_He4_V51_reaclib", // 1236, - "p_Mn54_to_n_Fe54_reaclib", // 1237, - "p_Mn54_to_He4_Cr51_reaclib", // 1238, - "He4_Mn54_to_n_Co57_reaclib", // 1239, - "He4_Mn54_to_p_Fe57_reaclib", // 1240, - "n_Mn55_to_He4_V52_reaclib", // 1241, - "p_Mn55_to_n_Fe55_reaclib", // 1242, - "p_Mn55_to_He4_Cr52_reaclib", // 1243, - "He4_Mn55_to_n_Co58_reaclib", // 1244, - "He4_Mn55_to_p_Fe58_reaclib", // 1245, - "n_Fe52_to_p_Mn52_reaclib", // 1246, - "n_Fe52_to_He4_Cr49_reaclib", // 1247, - "He4_Fe52_to_p_Co55_reaclib", // 1248, - "n_Fe53_to_p_Mn53_reaclib", // 1249, - "n_Fe53_to_He4_Cr50_reaclib", // 1250, - "p_Fe53_to_n_Co53_reaclib", // 1251, - "p_Fe53_to_He4_Mn50_reaclib", // 1252, - "He4_Fe53_to_n_Ni56_reaclib", // 1253, - "He4_Fe53_to_p_Co56_reaclib", // 1254, - "n_Fe54_to_p_Mn54_reaclib", // 1255, - "n_Fe54_to_He4_Cr51_reaclib", // 1256, - "p_Fe54_to_n_Co54_reaclib", // 1257, - "p_Fe54_to_He4_Mn51_reaclib", // 1258, - "He4_Fe54_to_n_Ni57_reaclib", // 1259, - "He4_Fe54_to_p_Co57_reaclib", // 1260, - "n_Fe55_to_p_Mn55_reaclib", // 1261, - "n_Fe55_to_He4_Cr52_reaclib", // 1262, - "p_Fe55_to_n_Co55_reaclib", // 1263, - "p_Fe55_to_He4_Mn52_reaclib", // 1264, - "He4_Fe55_to_n_Ni58_reaclib", // 1265, - "He4_Fe55_to_p_Co58_reaclib", // 1266, - "n_Fe56_to_He4_Cr53_reaclib", // 1267, - "p_Fe56_to_n_Co56_reaclib", // 1268, - "p_Fe56_to_He4_Mn53_reaclib", // 1269, - "He4_Fe56_to_n_Ni59_reaclib", // 1270, - "He4_Fe56_to_p_Co59_reaclib", // 1271, - "n_Fe57_to_He4_Cr54_reaclib", // 1272, - "p_Fe57_to_n_Co57_reaclib", // 1273, - "p_Fe57_to_He4_Mn54_reaclib", // 1274, - "He4_Fe57_to_n_Ni60_reaclib", // 1275, - "p_Fe58_to_n_Co58_reaclib", // 1276, - "p_Fe58_to_He4_Mn55_reaclib", // 1277, - "He4_Fe58_to_n_Ni61_reaclib", // 1278, - "n_Co53_to_p_Fe53_reaclib", // 1279, - "n_Co53_to_He4_Mn50_reaclib", // 1280, - "He4_Co53_to_p_Ni56_reaclib", // 1281, - "n_Co54_to_p_Fe54_reaclib", // 1282, - "n_Co54_to_He4_Mn51_reaclib", // 1283, - "He4_Co54_to_n_Cu57_reaclib", // 1284, - "He4_Co54_to_p_Ni57_reaclib", // 1285, - "n_Co55_to_p_Fe55_reaclib", // 1286, - "n_Co55_to_He4_Mn52_reaclib", // 1287, - "p_Co55_to_He4_Fe52_reaclib", // 1288, - "He4_Co55_to_n_Cu58_reaclib", // 1289, - "He4_Co55_to_p_Ni58_reaclib", // 1290, - "n_Co56_to_p_Fe56_reaclib", // 1291, - "n_Co56_to_He4_Mn53_reaclib", // 1292, - "p_Co56_to_n_Ni56_reaclib", // 1293, - "p_Co56_to_He4_Fe53_reaclib", // 1294, - "He4_Co56_to_n_Cu59_reaclib", // 1295, - "He4_Co56_to_p_Ni59_reaclib", // 1296, - "n_Co57_to_p_Fe57_reaclib", // 1297, - "n_Co57_to_He4_Mn54_reaclib", // 1298, - "p_Co57_to_n_Ni57_reaclib", // 1299, - "p_Co57_to_He4_Fe54_reaclib", // 1300, - "He4_Co57_to_n_Cu60_reaclib", // 1301, - "He4_Co57_to_p_Ni60_reaclib", // 1302, - "n_Co58_to_p_Fe58_reaclib", // 1303, - "n_Co58_to_He4_Mn55_reaclib", // 1304, - "p_Co58_to_n_Ni58_reaclib", // 1305, - "p_Co58_to_He4_Fe55_reaclib", // 1306, - "He4_Co58_to_n_Cu61_reaclib", // 1307, - "He4_Co58_to_p_Ni61_reaclib", // 1308, - "p_Co59_to_n_Ni59_reaclib", // 1309, - "p_Co59_to_He4_Fe56_reaclib", // 1310, - "He4_Co59_to_n_Cu62_reaclib", // 1311, - "He4_Co59_to_p_Ni62_reaclib", // 1312, - "n_Ni56_to_p_Co56_reaclib", // 1313, - "n_Ni56_to_He4_Fe53_reaclib", // 1314, - "p_Ni56_to_He4_Co53_reaclib", // 1315, - "He4_Ni56_to_n_Zn59_reaclib", // 1316, - "He4_Ni56_to_p_Cu59_reaclib", // 1317, - "n_Ni57_to_p_Co57_reaclib", // 1318, - "n_Ni57_to_He4_Fe54_reaclib", // 1319, - "p_Ni57_to_n_Cu57_reaclib", // 1320, - "p_Ni57_to_He4_Co54_reaclib", // 1321, - "He4_Ni57_to_n_Zn60_reaclib", // 1322, - "He4_Ni57_to_p_Cu60_reaclib", // 1323, - "n_Ni58_to_p_Co58_reaclib", // 1324, - "n_Ni58_to_He4_Fe55_reaclib", // 1325, - "p_Ni58_to_n_Cu58_reaclib", // 1326, - "p_Ni58_to_He4_Co55_reaclib", // 1327, - "He4_Ni58_to_n_Zn61_reaclib", // 1328, - "He4_Ni58_to_p_Cu61_reaclib", // 1329, - "n_Ni59_to_p_Co59_reaclib", // 1330, - "n_Ni59_to_He4_Fe56_reaclib", // 1331, - "p_Ni59_to_n_Cu59_reaclib", // 1332, - "p_Ni59_to_He4_Co56_reaclib", // 1333, - "He4_Ni59_to_n_Zn62_reaclib", // 1334, - "He4_Ni59_to_p_Cu62_reaclib", // 1335, - "n_Ni60_to_He4_Fe57_reaclib", // 1336, - "p_Ni60_to_n_Cu60_reaclib", // 1337, - "p_Ni60_to_He4_Co57_reaclib", // 1338, - "He4_Ni60_to_n_Zn63_reaclib", // 1339, - "He4_Ni60_to_p_Cu63_reaclib", // 1340, - "n_Ni61_to_He4_Fe58_reaclib", // 1341, - "p_Ni61_to_n_Cu61_reaclib", // 1342, - "p_Ni61_to_He4_Co58_reaclib", // 1343, - "He4_Ni61_to_n_Zn64_reaclib", // 1344, - "He4_Ni61_to_p_Cu64_reaclib", // 1345, - "p_Ni62_to_n_Cu62_reaclib", // 1346, - "p_Ni62_to_He4_Co59_reaclib", // 1347, - "He4_Ni62_to_n_Zn65_reaclib", // 1348, - "He4_Ni62_to_p_Cu65_reaclib", // 1349, - "p_Ni63_to_n_Cu63_reaclib", // 1350, - "He4_Ni63_to_n_Zn66_reaclib", // 1351, - "p_Ni64_to_n_Cu64_reaclib", // 1352, - "n_Cu57_to_p_Ni57_reaclib", // 1353, - "n_Cu57_to_He4_Co54_reaclib", // 1354, - "He4_Cu57_to_p_Zn60_reaclib", // 1355, - "n_Cu58_to_p_Ni58_reaclib", // 1356, - "n_Cu58_to_He4_Co55_reaclib", // 1357, - "He4_Cu58_to_p_Zn61_reaclib", // 1358, - "n_Cu59_to_p_Ni59_reaclib", // 1359, - "n_Cu59_to_He4_Co56_reaclib", // 1360, - "p_Cu59_to_n_Zn59_reaclib", // 1361, - "p_Cu59_to_He4_Ni56_reaclib", // 1362, - "He4_Cu59_to_n_Ga62_reaclib", // 1363, - "He4_Cu59_to_p_Zn62_reaclib", // 1364, - "n_Cu60_to_p_Ni60_reaclib", // 1365, - "n_Cu60_to_He4_Co57_reaclib", // 1366, - "p_Cu60_to_n_Zn60_reaclib", // 1367, - "p_Cu60_to_He4_Ni57_reaclib", // 1368, - "He4_Cu60_to_n_Ga63_reaclib", // 1369, - "He4_Cu60_to_p_Zn63_reaclib", // 1370, - "n_Cu61_to_p_Ni61_reaclib", // 1371, - "n_Cu61_to_He4_Co58_reaclib", // 1372, - "p_Cu61_to_n_Zn61_reaclib", // 1373, - "p_Cu61_to_He4_Ni58_reaclib", // 1374, - "He4_Cu61_to_n_Ga64_reaclib", // 1375, - "He4_Cu61_to_p_Zn64_reaclib", // 1376, - "n_Cu62_to_p_Ni62_reaclib", // 1377, - "n_Cu62_to_He4_Co59_reaclib", // 1378, - "p_Cu62_to_n_Zn62_reaclib", // 1379, - "p_Cu62_to_He4_Ni59_reaclib", // 1380, - "He4_Cu62_to_p_Zn65_reaclib", // 1381, - "n_Cu63_to_p_Ni63_reaclib", // 1382, - "p_Cu63_to_n_Zn63_reaclib", // 1383, - "p_Cu63_to_He4_Ni60_reaclib", // 1384, - "He4_Cu63_to_p_Zn66_reaclib", // 1385, - "n_Cu64_to_p_Ni64_reaclib", // 1386, - "p_Cu64_to_n_Zn64_reaclib", // 1387, - "p_Cu64_to_He4_Ni61_reaclib", // 1388, - "p_Cu65_to_n_Zn65_reaclib", // 1389, - "p_Cu65_to_He4_Ni62_reaclib", // 1390, - "n_Zn59_to_p_Cu59_reaclib", // 1391, - "n_Zn59_to_He4_Ni56_reaclib", // 1392, - "He4_Zn59_to_p_Ga62_reaclib", // 1393, - "n_Zn60_to_p_Cu60_reaclib", // 1394, - "n_Zn60_to_He4_Ni57_reaclib", // 1395, - "p_Zn60_to_He4_Cu57_reaclib", // 1396, - "He4_Zn60_to_n_Ge63_reaclib", // 1397, - "He4_Zn60_to_p_Ga63_reaclib", // 1398, - "n_Zn61_to_p_Cu61_reaclib", // 1399, - "n_Zn61_to_He4_Ni58_reaclib", // 1400, - "p_Zn61_to_He4_Cu58_reaclib", // 1401, - "He4_Zn61_to_n_Ge64_reaclib", // 1402, - "He4_Zn61_to_p_Ga64_reaclib", // 1403, - "n_Zn62_to_p_Cu62_reaclib", // 1404, - "n_Zn62_to_He4_Ni59_reaclib", // 1405, - "p_Zn62_to_n_Ga62_reaclib", // 1406, - "p_Zn62_to_He4_Cu59_reaclib", // 1407, - "n_Zn63_to_p_Cu63_reaclib", // 1408, - "n_Zn63_to_He4_Ni60_reaclib", // 1409, - "p_Zn63_to_n_Ga63_reaclib", // 1410, - "p_Zn63_to_He4_Cu60_reaclib", // 1411, - "n_Zn64_to_p_Cu64_reaclib", // 1412, - "n_Zn64_to_He4_Ni61_reaclib", // 1413, - "p_Zn64_to_n_Ga64_reaclib", // 1414, - "p_Zn64_to_He4_Cu61_reaclib", // 1415, - "n_Zn65_to_p_Cu65_reaclib", // 1416, - "n_Zn65_to_He4_Ni62_reaclib", // 1417, - "p_Zn65_to_He4_Cu62_reaclib", // 1418, - "n_Zn66_to_He4_Ni63_reaclib", // 1419, - "p_Zn66_to_He4_Cu63_reaclib", // 1420, - "n_Ga62_to_p_Zn62_reaclib", // 1421, - "n_Ga62_to_He4_Cu59_reaclib", // 1422, - "p_Ga62_to_He4_Zn59_reaclib", // 1423, - "n_Ga63_to_p_Zn63_reaclib", // 1424, - "n_Ga63_to_He4_Cu60_reaclib", // 1425, - "p_Ga63_to_n_Ge63_reaclib", // 1426, - "p_Ga63_to_He4_Zn60_reaclib", // 1427, - "n_Ga64_to_p_Zn64_reaclib", // 1428, - "n_Ga64_to_He4_Cu61_reaclib", // 1429, - "p_Ga64_to_n_Ge64_reaclib", // 1430, - "p_Ga64_to_He4_Zn61_reaclib", // 1431, - "n_Ge63_to_p_Ga63_reaclib", // 1432, - "n_Ge63_to_He4_Zn60_reaclib", // 1433, - "n_Ge64_to_p_Ga64_reaclib", // 1434, - "n_Ge64_to_He4_Zn61_reaclib", // 1435, - "p_d_to_n_p_p_reaclib", // 1436, - "He3_He3_to_p_p_He4_reaclib", // 1437, - "d_Li7_to_n_He4_He4_reaclib", // 1438, - "d_Be7_to_p_He4_He4_reaclib", // 1439, - "p_Be9_to_d_He4_He4_reaclib", // 1440, - "n_B8_to_p_He4_He4_reaclib", // 1441, - "p_B11_to_He4_He4_He4_reaclib", // 1442, - "He3_Li7_to_n_p_He4_He4_reaclib", // 1443, - "He3_Be7_to_p_p_He4_He4_reaclib", // 1444, - "p_Be9_to_n_p_He4_He4_reaclib", // 1445, - "n_p_He4_to_Li6_reaclib", // 1446, - "n_He4_He4_to_Be9_reaclib", // 1447, - "He4_He4_He4_to_C12_reaclib", // 1448, - "n_p_p_to_p_d_reaclib", // 1449, - "p_p_He4_to_He3_He3_reaclib", // 1450, - "n_He4_He4_to_d_Li7_reaclib", // 1451, - "p_He4_He4_to_n_B8_reaclib", // 1452, - "p_He4_He4_to_d_Be7_reaclib", // 1453, - "d_He4_He4_to_p_Be9_reaclib", // 1454, - "He4_He4_He4_to_p_B11_reaclib", // 1455, - "n_p_He4_He4_to_He3_Li7_reaclib", // 1456, - "n_p_He4_He4_to_p_Be9_reaclib", // 1457, - "p_p_He4_He4_to_He3_Be7_reaclib", // 1458, - "Na21_to_Ne21_weaktab", // 1459, - "Ne21_to_Na21_weaktab", // 1460, - "Na22_to_Ne22_weaktab", // 1461, - "Ne22_to_Na22_weaktab", // 1462, - "Mg23_to_Na23_weaktab", // 1463, - "Na23_to_Mg23_weaktab", // 1464, - "Al25_to_Mg25_weaktab", // 1465, - "Mg25_to_Al25_weaktab", // 1466, - "Al26_to_Mg26_weaktab", // 1467, - "Mg26_to_Al26_weaktab", // 1468, - "P29_to_Si29_weaktab", // 1469, - "Si29_to_P29_weaktab", // 1470, - "P30_to_Si30_weaktab", // 1471, - "Si30_to_P30_weaktab", // 1472, - "P31_to_Si31_weaktab", // 1473, - "Si31_to_P31_weaktab", // 1474, - "P32_to_S32_weaktab", // 1475, - "P32_to_Si32_weaktab", // 1476, - "S32_to_P32_weaktab", // 1477, - "Si32_to_P32_weaktab", // 1478, - "Cl33_to_S33_weaktab", // 1479, - "P33_to_S33_weaktab", // 1480, - "S33_to_Cl33_weaktab", // 1481, - "S33_to_P33_weaktab", // 1482, - "Cl34_to_S34_weaktab", // 1483, - "S34_to_Cl34_weaktab", // 1484, - "Cl35_to_S35_weaktab", // 1485, - "S35_to_Cl35_weaktab", // 1486, - "Ar36_to_Cl36_weaktab", // 1487, - "Cl36_to_Ar36_weaktab", // 1488, - "Cl36_to_S36_weaktab", // 1489, - "S36_to_Cl36_weaktab", // 1490, - "Ar37_to_Cl37_weaktab", // 1491, - "Ar37_to_K37_weaktab", // 1492, - "Cl37_to_Ar37_weaktab", // 1493, - "K37_to_Ar37_weaktab", // 1494, - "Ar38_to_K38_weaktab", // 1495, - "K38_to_Ar38_weaktab", // 1496, - "Ar39_to_K39_weaktab", // 1497, - "K39_to_Ar39_weaktab", // 1498, - "Ar40_to_K40_weaktab", // 1499, - "Ca40_to_K40_weaktab", // 1500, - "K40_to_Ar40_weaktab", // 1501, - "K40_to_Ca40_weaktab", // 1502, - "Ca41_to_K41_weaktab", // 1503, - "K41_to_Ca41_weaktab", // 1504, - "Ca43_to_Sc43_weaktab", // 1505, - "Sc43_to_Ca43_weaktab", // 1506, - "Ca44_to_Sc44_weaktab", // 1507, - "Sc44_to_Ca44_weaktab", // 1508, - "Sc44_to_Ti44_weaktab", // 1509, - "Ti44_to_Sc44_weaktab", // 1510, - "Co53_to_Fe53_weaktab", // 1511, - "Fe53_to_Co53_weaktab", // 1512, - "Cu57_to_Ni57_weaktab", // 1513, - "Ni57_to_Cu57_weaktab", // 1514, - "Ca45_to_Sc45_weaktab", // 1515, - "Sc45_to_Ca45_weaktab", // 1516, - "Sc45_to_Ti45_weaktab", // 1517, - "Ti45_to_Sc45_weaktab", // 1518, - "Ca46_to_Sc46_weaktab", // 1519, - "Sc46_to_Ca46_weaktab", // 1520, - "Sc46_to_Ti46_weaktab", // 1521, - "Ti46_to_Sc46_weaktab", // 1522, - "Ti46_to_V46_weaktab", // 1523, - "V46_to_Ti46_weaktab", // 1524, - "Ca47_to_Sc47_weaktab", // 1525, - "Sc47_to_Ca47_weaktab", // 1526, - "Sc47_to_Ti47_weaktab", // 1527, - "Ti47_to_Sc47_weaktab", // 1528, - "Ti47_to_V47_weaktab", // 1529, - "V47_to_Ti47_weaktab", // 1530, - "Ca48_to_Sc48_weaktab", // 1531, - "Cr48_to_V48_weaktab", // 1532, - "Sc48_to_Ca48_weaktab", // 1533, - "Sc48_to_Ti48_weaktab", // 1534, - "Ti48_to_Sc48_weaktab", // 1535, - "Ti48_to_V48_weaktab", // 1536, - "V48_to_Cr48_weaktab", // 1537, - "V48_to_Ti48_weaktab", // 1538, - "Cr49_to_V49_weaktab", // 1539, - "Sc49_to_Ti49_weaktab", // 1540, - "Ti49_to_Sc49_weaktab", // 1541, - "Ti49_to_V49_weaktab", // 1542, - "V49_to_Cr49_weaktab", // 1543, - "V49_to_Ti49_weaktab", // 1544, - "Cr50_to_Mn50_weaktab", // 1545, - "Cr50_to_V50_weaktab", // 1546, - "Mn50_to_Cr50_weaktab", // 1547, - "Ti50_to_V50_weaktab", // 1548, - "V50_to_Cr50_weaktab", // 1549, - "V50_to_Ti50_weaktab", // 1550, - "Cr51_to_Mn51_weaktab", // 1551, - "Cr51_to_V51_weaktab", // 1552, - "Mn51_to_Cr51_weaktab", // 1553, - "Ti51_to_V51_weaktab", // 1554, - "V51_to_Cr51_weaktab", // 1555, - "V51_to_Ti51_weaktab", // 1556, - "Cr52_to_Mn52_weaktab", // 1557, - "Cr52_to_V52_weaktab", // 1558, - "Fe52_to_Mn52_weaktab", // 1559, - "Mn52_to_Cr52_weaktab", // 1560, - "Mn52_to_Fe52_weaktab", // 1561, - "V52_to_Cr52_weaktab", // 1562, - "Cr53_to_Mn53_weaktab", // 1563, - "Fe53_to_Mn53_weaktab", // 1564, - "Mn53_to_Cr53_weaktab", // 1565, - "Mn53_to_Fe53_weaktab", // 1566, - "Co54_to_Fe54_weaktab", // 1567, - "Cr54_to_Mn54_weaktab", // 1568, - "Fe54_to_Co54_weaktab", // 1569, - "Fe54_to_Mn54_weaktab", // 1570, - "Mn54_to_Cr54_weaktab", // 1571, - "Mn54_to_Fe54_weaktab", // 1572, - "Co55_to_Fe55_weaktab", // 1573, - "Fe55_to_Co55_weaktab", // 1574, - "Fe55_to_Mn55_weaktab", // 1575, - "Mn55_to_Fe55_weaktab", // 1576, - "Co56_to_Fe56_weaktab", // 1577, - "Co56_to_Ni56_weaktab", // 1578, - "Fe56_to_Co56_weaktab", // 1579, - "Ni56_to_Co56_weaktab", // 1580, - "Co57_to_Fe57_weaktab", // 1581, - "Co57_to_Ni57_weaktab", // 1582, - "Fe57_to_Co57_weaktab", // 1583, - "Ni57_to_Co57_weaktab", // 1584, - "Co58_to_Fe58_weaktab", // 1585, - "Co58_to_Ni58_weaktab", // 1586, - "Cu58_to_Ni58_weaktab", // 1587, - "Fe58_to_Co58_weaktab", // 1588, - "Ni58_to_Co58_weaktab", // 1589, - "Ni58_to_Cu58_weaktab", // 1590, - "Co59_to_Ni59_weaktab", // 1591, - "Cu59_to_Ni59_weaktab", // 1592, - "Ni59_to_Co59_weaktab", // 1593, - "Ni59_to_Cu59_weaktab", // 1594, - "Cu60_to_Ni60_weaktab", // 1595, - "Cu60_to_Zn60_weaktab", // 1596, - "Ni60_to_Cu60_weaktab", // 1597, - "Zn60_to_Cu60_weaktab", // 1598, - "Cu61_to_Ni61_weaktab", // 1599, - "Cu61_to_Zn61_weaktab", // 1600, - "Ni61_to_Cu61_weaktab", // 1601, - "Zn61_to_Cu61_weaktab", // 1602, - "Cu62_to_Ni62_weaktab", // 1603, - "Cu62_to_Zn62_weaktab", // 1604, - "Ga62_to_Zn62_weaktab", // 1605, - "Ni62_to_Cu62_weaktab", // 1606, - "Zn62_to_Cu62_weaktab", // 1607, - "Zn62_to_Ga62_weaktab", // 1608, - "Cu63_to_Ni63_weaktab", // 1609, - "Cu63_to_Zn63_weaktab", // 1610, - "Ga63_to_Zn63_weaktab", // 1611, - "Ni63_to_Cu63_weaktab", // 1612, - "Zn63_to_Cu63_weaktab", // 1613, - "Zn63_to_Ga63_weaktab", // 1614, - "Cu64_to_Ni64_weaktab", // 1615, - "Cu64_to_Zn64_weaktab", // 1616, - "Ga64_to_Ge64_weaktab", // 1617, - "Ga64_to_Zn64_weaktab", // 1618, - "Ge64_to_Ga64_weaktab", // 1619, - "Ni64_to_Cu64_weaktab", // 1620, - "Zn64_to_Cu64_weaktab", // 1621, - "Zn64_to_Ga64_weaktab", // 1622, - "Cu65_to_Zn65_weaktab", // 1623, - "Zn65_to_Cu65_weaktab", // 1624, - "n_to_p_weaktab", // 1625, - "p_to_n_weaktab" // 1626, + "Be7_to_Li7_electron_capture_reaclib", // 1, + "C14_to_N14_beta_neg_reaclib", // 2, + "N13_to_C13_beta_pos_reaclib", // 3, + "O14_to_N14_beta_pos_reaclib", // 4, + "O15_to_N15_beta_pos_reaclib", // 5, + "F17_to_O17_beta_pos_reaclib", // 6, + "F18_to_O18_beta_pos_reaclib", // 7, + "Ne18_to_F18_beta_pos_reaclib", // 8, + "Ne19_to_F19_beta_pos_reaclib", // 9, + "Zn59_to_Cu59_beta_pos_reaclib", // 10, + "Ge63_to_Ga63_beta_pos_reaclib", // 11, + "B8_to_He4_He4_beta_pos_reaclib", // 12, + "Zn59_to_p_Ni58_beta_pos_reaclib", // 13, + "p_n_to_d_reaclib", // 14, + "p_p_to_d_beta_pos_reaclib", // 15, + "p_p_to_d_electron_capture_reaclib", // 16, + "d_p_to_He3_reaclib", // 17, + "d_d_to_He4_reaclib", // 18, + "d_He4_to_Li6_reaclib", // 19, + "He3_n_to_He4_reaclib", // 20, + "He3_p_to_He4_beta_pos_reaclib", // 21, + "He3_He4_to_Be7_reaclib", // 22, + "Li6_n_to_Li7_reaclib", // 23, + "Li6_p_to_Be7_reaclib", // 24, + "Li6_He4_to_B10_reaclib", // 25, + "Li7_He4_to_B11_reaclib", // 26, + "Be7_p_to_B8_reaclib", // 27, + "Be9_p_to_B10_reaclib", // 28, + "B10_n_to_B11_reaclib", // 29, + "B11_p_to_C12_reaclib", // 30, + "C12_n_to_C13_reaclib", // 31, + "C12_p_to_N13_reaclib", // 32, + "C12_He4_to_O16_reaclib", // 33, + "C13_n_to_C14_reaclib", // 34, + "C13_p_to_N14_reaclib", // 35, + "C14_p_to_N15_reaclib", // 36, + "C14_He4_to_O18_reaclib", // 37, + "N13_n_to_N14_reaclib", // 38, + "N13_p_to_O14_reaclib", // 39, + "N14_n_to_N15_reaclib", // 40, + "N14_p_to_O15_reaclib", // 41, + "N14_He4_to_F18_reaclib", // 42, + "N15_p_to_O16_reaclib", // 43, + "N15_He4_to_F19_reaclib", // 44, + "O14_n_to_O15_reaclib", // 45, + "O14_He4_to_Ne18_reaclib", // 46, + "O15_n_to_O16_reaclib", // 47, + "O15_He4_to_Ne19_reaclib", // 48, + "O16_n_to_O17_reaclib", // 49, + "O16_p_to_F17_reaclib", // 50, + "O16_He4_to_Ne20_reaclib", // 51, + "O17_n_to_O18_reaclib", // 52, + "O17_p_to_F18_reaclib", // 53, + "O17_He4_to_Ne21_reaclib", // 54, + "O18_p_to_F19_reaclib", // 55, + "O18_He4_to_Ne22_reaclib", // 56, + "F17_n_to_F18_reaclib", // 57, + "F17_p_to_Ne18_reaclib", // 58, + "F17_He4_to_Na21_reaclib", // 59, + "F18_n_to_F19_reaclib", // 60, + "F18_p_to_Ne19_reaclib", // 61, + "F18_He4_to_Na22_reaclib", // 62, + "F19_p_to_Ne20_reaclib", // 63, + "F19_He4_to_Na23_reaclib", // 64, + "Ne18_n_to_Ne19_reaclib", // 65, + "Ne19_n_to_Ne20_reaclib", // 66, + "Ne19_He4_to_Mg23_reaclib", // 67, + "Ne20_n_to_Ne21_reaclib", // 68, + "Ne20_p_to_Na21_reaclib", // 69, + "Ne20_He4_to_Mg24_reaclib", // 70, + "Ne21_n_to_Ne22_reaclib", // 71, + "Ne21_p_to_Na22_reaclib", // 72, + "Ne21_He4_to_Mg25_reaclib", // 73, + "Ne22_p_to_Na23_reaclib", // 74, + "Ne22_He4_to_Mg26_reaclib", // 75, + "Na21_n_to_Na22_reaclib", // 76, + "Na21_He4_to_Al25_reaclib", // 77, + "Na22_n_to_Na23_reaclib", // 78, + "Na22_p_to_Mg23_reaclib", // 79, + "Na22_He4_to_Al26_reaclib", // 80, + "Na23_p_to_Mg24_reaclib", // 81, + "Na23_He4_to_Al27_reaclib", // 82, + "Mg23_n_to_Mg24_reaclib", // 83, + "Mg24_n_to_Mg25_reaclib", // 84, + "Mg24_p_to_Al25_reaclib", // 85, + "Mg24_He4_to_Si28_reaclib", // 86, + "Mg25_n_to_Mg26_reaclib", // 87, + "Mg25_p_to_Al26_reaclib", // 88, + "Mg25_He4_to_Si29_reaclib", // 89, + "Mg26_p_to_Al27_reaclib", // 90, + "Mg26_He4_to_Si30_reaclib", // 91, + "Al25_n_to_Al26_reaclib", // 92, + "Al25_He4_to_P29_reaclib", // 93, + "Al26_n_to_Al27_reaclib", // 94, + "Al26_He4_to_P30_reaclib", // 95, + "Al27_p_to_Si28_reaclib", // 96, + "Al27_He4_to_P31_reaclib", // 97, + "Si28_n_to_Si29_reaclib", // 98, + "Si28_p_to_P29_reaclib", // 99, + "Si28_He4_to_S32_reaclib", // 100, + "Si29_n_to_Si30_reaclib", // 101, + "Si29_p_to_P30_reaclib", // 102, + "Si29_He4_to_S33_reaclib", // 103, + "Si30_n_to_Si31_reaclib", // 104, + "Si30_p_to_P31_reaclib", // 105, + "Si30_He4_to_S34_reaclib", // 106, + "Si31_n_to_Si32_reaclib", // 107, + "Si31_p_to_P32_reaclib", // 108, + "Si31_He4_to_S35_reaclib", // 109, + "Si32_p_to_P33_reaclib", // 110, + "Si32_He4_to_S36_reaclib", // 111, + "P29_n_to_P30_reaclib", // 112, + "P29_He4_to_Cl33_reaclib", // 113, + "P30_n_to_P31_reaclib", // 114, + "P30_He4_to_Cl34_reaclib", // 115, + "P31_n_to_P32_reaclib", // 116, + "P31_p_to_S32_reaclib", // 117, + "P31_He4_to_Cl35_reaclib", // 118, + "P32_n_to_P33_reaclib", // 119, + "P32_p_to_S33_reaclib", // 120, + "P32_He4_to_Cl36_reaclib", // 121, + "P33_p_to_S34_reaclib", // 122, + "P33_He4_to_Cl37_reaclib", // 123, + "S32_n_to_S33_reaclib", // 124, + "S32_p_to_Cl33_reaclib", // 125, + "S32_He4_to_Ar36_reaclib", // 126, + "S33_n_to_S34_reaclib", // 127, + "S33_p_to_Cl34_reaclib", // 128, + "S33_He4_to_Ar37_reaclib", // 129, + "S34_n_to_S35_reaclib", // 130, + "S34_p_to_Cl35_reaclib", // 131, + "S34_He4_to_Ar38_reaclib", // 132, + "S35_n_to_S36_reaclib", // 133, + "S35_p_to_Cl36_reaclib", // 134, + "S35_He4_to_Ar39_reaclib", // 135, + "S36_p_to_Cl37_reaclib", // 136, + "S36_He4_to_Ar40_reaclib", // 137, + "Cl33_n_to_Cl34_reaclib", // 138, + "Cl33_He4_to_K37_reaclib", // 139, + "Cl34_n_to_Cl35_reaclib", // 140, + "Cl34_He4_to_K38_reaclib", // 141, + "Cl35_n_to_Cl36_reaclib", // 142, + "Cl35_p_to_Ar36_reaclib", // 143, + "Cl35_He4_to_K39_reaclib", // 144, + "Cl36_n_to_Cl37_reaclib", // 145, + "Cl36_p_to_Ar37_reaclib", // 146, + "Cl36_He4_to_K40_reaclib", // 147, + "Cl37_p_to_Ar38_reaclib", // 148, + "Cl37_He4_to_K41_reaclib", // 149, + "Ar36_n_to_Ar37_reaclib", // 150, + "Ar36_p_to_K37_reaclib", // 151, + "Ar36_He4_to_Ca40_reaclib", // 152, + "Ar37_n_to_Ar38_reaclib", // 153, + "Ar37_p_to_K38_reaclib", // 154, + "Ar37_He4_to_Ca41_reaclib", // 155, + "Ar38_n_to_Ar39_reaclib", // 156, + "Ar38_p_to_K39_reaclib", // 157, + "Ar38_He4_to_Ca42_reaclib", // 158, + "Ar39_n_to_Ar40_reaclib", // 159, + "Ar39_p_to_K40_reaclib", // 160, + "Ar39_He4_to_Ca43_reaclib", // 161, + "Ar40_p_to_K41_reaclib", // 162, + "Ar40_He4_to_Ca44_reaclib", // 163, + "K37_n_to_K38_reaclib", // 164, + "K38_n_to_K39_reaclib", // 165, + "K39_n_to_K40_reaclib", // 166, + "K39_p_to_Ca40_reaclib", // 167, + "K39_He4_to_Sc43_reaclib", // 168, + "K40_n_to_K41_reaclib", // 169, + "K40_p_to_Ca41_reaclib", // 170, + "K40_He4_to_Sc44_reaclib", // 171, + "K41_p_to_Ca42_reaclib", // 172, + "K41_He4_to_Sc45_reaclib", // 173, + "Ca40_n_to_Ca41_reaclib", // 174, + "Ca40_He4_to_Ti44_reaclib", // 175, + "Ca41_n_to_Ca42_reaclib", // 176, + "Ca41_He4_to_Ti45_reaclib", // 177, + "Ca42_n_to_Ca43_reaclib", // 178, + "Ca42_p_to_Sc43_reaclib", // 179, + "Ca42_He4_to_Ti46_reaclib", // 180, + "Ca43_n_to_Ca44_reaclib", // 181, + "Ca43_p_to_Sc44_reaclib", // 182, + "Ca43_He4_to_Ti47_reaclib", // 183, + "Ca44_n_to_Ca45_reaclib", // 184, + "Ca44_p_to_Sc45_reaclib", // 185, + "Ca44_He4_to_Ti48_reaclib", // 186, + "Ca45_n_to_Ca46_reaclib", // 187, + "Ca45_p_to_Sc46_reaclib", // 188, + "Ca45_He4_to_Ti49_reaclib", // 189, + "Ca46_n_to_Ca47_reaclib", // 190, + "Ca46_p_to_Sc47_reaclib", // 191, + "Ca46_He4_to_Ti50_reaclib", // 192, + "Ca47_n_to_Ca48_reaclib", // 193, + "Ca47_p_to_Sc48_reaclib", // 194, + "Ca47_He4_to_Ti51_reaclib", // 195, + "Ca48_p_to_Sc49_reaclib", // 196, + "Sc43_n_to_Sc44_reaclib", // 197, + "Sc43_p_to_Ti44_reaclib", // 198, + "Sc43_He4_to_V47_reaclib", // 199, + "Sc44_n_to_Sc45_reaclib", // 200, + "Sc44_p_to_Ti45_reaclib", // 201, + "Sc44_He4_to_V48_reaclib", // 202, + "Sc45_n_to_Sc46_reaclib", // 203, + "Sc45_p_to_Ti46_reaclib", // 204, + "Sc45_He4_to_V49_reaclib", // 205, + "Sc46_n_to_Sc47_reaclib", // 206, + "Sc46_p_to_Ti47_reaclib", // 207, + "Sc46_He4_to_V50_reaclib", // 208, + "Sc47_n_to_Sc48_reaclib", // 209, + "Sc47_p_to_Ti48_reaclib", // 210, + "Sc47_He4_to_V51_reaclib", // 211, + "Sc48_n_to_Sc49_reaclib", // 212, + "Sc48_p_to_Ti49_reaclib", // 213, + "Sc48_He4_to_V52_reaclib", // 214, + "Sc49_p_to_Ti50_reaclib", // 215, + "Ti44_n_to_Ti45_reaclib", // 216, + "Ti44_He4_to_Cr48_reaclib", // 217, + "Ti45_n_to_Ti46_reaclib", // 218, + "Ti45_p_to_V46_reaclib", // 219, + "Ti45_He4_to_Cr49_reaclib", // 220, + "Ti46_n_to_Ti47_reaclib", // 221, + "Ti46_p_to_V47_reaclib", // 222, + "Ti46_He4_to_Cr50_reaclib", // 223, + "Ti47_n_to_Ti48_reaclib", // 224, + "Ti47_p_to_V48_reaclib", // 225, + "Ti47_He4_to_Cr51_reaclib", // 226, + "Ti48_n_to_Ti49_reaclib", // 227, + "Ti48_p_to_V49_reaclib", // 228, + "Ti48_He4_to_Cr52_reaclib", // 229, + "Ti49_n_to_Ti50_reaclib", // 230, + "Ti49_p_to_V50_reaclib", // 231, + "Ti49_He4_to_Cr53_reaclib", // 232, + "Ti50_n_to_Ti51_reaclib", // 233, + "Ti50_p_to_V51_reaclib", // 234, + "Ti50_He4_to_Cr54_reaclib", // 235, + "Ti51_p_to_V52_reaclib", // 236, + "V46_n_to_V47_reaclib", // 237, + "V46_He4_to_Mn50_reaclib", // 238, + "V47_n_to_V48_reaclib", // 239, + "V47_p_to_Cr48_reaclib", // 240, + "V47_He4_to_Mn51_reaclib", // 241, + "V48_n_to_V49_reaclib", // 242, + "V48_p_to_Cr49_reaclib", // 243, + "V48_He4_to_Mn52_reaclib", // 244, + "V49_n_to_V50_reaclib", // 245, + "V49_p_to_Cr50_reaclib", // 246, + "V49_He4_to_Mn53_reaclib", // 247, + "V50_n_to_V51_reaclib", // 248, + "V50_p_to_Cr51_reaclib", // 249, + "V50_He4_to_Mn54_reaclib", // 250, + "V51_n_to_V52_reaclib", // 251, + "V51_p_to_Cr52_reaclib", // 252, + "V51_He4_to_Mn55_reaclib", // 253, + "V52_p_to_Cr53_reaclib", // 254, + "Cr48_n_to_Cr49_reaclib", // 255, + "Cr48_He4_to_Fe52_reaclib", // 256, + "Cr49_n_to_Cr50_reaclib", // 257, + "Cr49_p_to_Mn50_reaclib", // 258, + "Cr49_He4_to_Fe53_reaclib", // 259, + "Cr50_n_to_Cr51_reaclib", // 260, + "Cr50_p_to_Mn51_reaclib", // 261, + "Cr50_He4_to_Fe54_reaclib", // 262, + "Cr51_n_to_Cr52_reaclib", // 263, + "Cr51_p_to_Mn52_reaclib", // 264, + "Cr51_He4_to_Fe55_reaclib", // 265, + "Cr52_n_to_Cr53_reaclib", // 266, + "Cr52_p_to_Mn53_reaclib", // 267, + "Cr52_He4_to_Fe56_reaclib", // 268, + "Cr53_n_to_Cr54_reaclib", // 269, + "Cr53_p_to_Mn54_reaclib", // 270, + "Cr53_He4_to_Fe57_reaclib", // 271, + "Cr54_p_to_Mn55_reaclib", // 272, + "Cr54_He4_to_Fe58_reaclib", // 273, + "Mn50_n_to_Mn51_reaclib", // 274, + "Mn50_He4_to_Co54_reaclib", // 275, + "Mn51_n_to_Mn52_reaclib", // 276, + "Mn51_p_to_Fe52_reaclib", // 277, + "Mn51_He4_to_Co55_reaclib", // 278, + "Mn52_n_to_Mn53_reaclib", // 279, + "Mn52_p_to_Fe53_reaclib", // 280, + "Mn52_He4_to_Co56_reaclib", // 281, + "Mn53_n_to_Mn54_reaclib", // 282, + "Mn53_p_to_Fe54_reaclib", // 283, + "Mn53_He4_to_Co57_reaclib", // 284, + "Mn54_n_to_Mn55_reaclib", // 285, + "Mn54_p_to_Fe55_reaclib", // 286, + "Mn54_He4_to_Co58_reaclib", // 287, + "Mn55_p_to_Fe56_reaclib", // 288, + "Mn55_He4_to_Co59_reaclib", // 289, + "Fe52_n_to_Fe53_reaclib", // 290, + "Fe52_p_to_Co53_reaclib", // 291, + "Fe52_He4_to_Ni56_reaclib", // 292, + "Fe53_n_to_Fe54_reaclib", // 293, + "Fe53_p_to_Co54_reaclib", // 294, + "Fe53_He4_to_Ni57_reaclib", // 295, + "Fe54_n_to_Fe55_reaclib", // 296, + "Fe54_p_to_Co55_reaclib", // 297, + "Fe54_He4_to_Ni58_reaclib", // 298, + "Fe55_n_to_Fe56_reaclib", // 299, + "Fe55_p_to_Co56_reaclib", // 300, + "Fe55_He4_to_Ni59_reaclib", // 301, + "Fe56_n_to_Fe57_reaclib", // 302, + "Fe56_p_to_Co57_reaclib", // 303, + "Fe56_He4_to_Ni60_reaclib", // 304, + "Fe57_n_to_Fe58_reaclib", // 305, + "Fe57_p_to_Co58_reaclib", // 306, + "Fe57_He4_to_Ni61_reaclib", // 307, + "Fe58_p_to_Co59_reaclib", // 308, + "Fe58_He4_to_Ni62_reaclib", // 309, + "Co53_n_to_Co54_reaclib", // 310, + "Co53_He4_to_Cu57_reaclib", // 311, + "Co54_n_to_Co55_reaclib", // 312, + "Co54_He4_to_Cu58_reaclib", // 313, + "Co55_n_to_Co56_reaclib", // 314, + "Co55_p_to_Ni56_reaclib", // 315, + "Co55_He4_to_Cu59_reaclib", // 316, + "Co56_n_to_Co57_reaclib", // 317, + "Co56_p_to_Ni57_reaclib", // 318, + "Co56_He4_to_Cu60_reaclib", // 319, + "Co57_n_to_Co58_reaclib", // 320, + "Co57_p_to_Ni58_reaclib", // 321, + "Co57_He4_to_Cu61_reaclib", // 322, + "Co58_n_to_Co59_reaclib", // 323, + "Co58_p_to_Ni59_reaclib", // 324, + "Co58_He4_to_Cu62_reaclib", // 325, + "Co59_p_to_Ni60_reaclib", // 326, + "Co59_He4_to_Cu63_reaclib", // 327, + "Ni56_n_to_Ni57_reaclib", // 328, + "Ni56_p_to_Cu57_reaclib", // 329, + "Ni56_He4_to_Zn60_reaclib", // 330, + "Ni57_n_to_Ni58_reaclib", // 331, + "Ni57_p_to_Cu58_reaclib", // 332, + "Ni57_He4_to_Zn61_reaclib", // 333, + "Ni58_n_to_Ni59_reaclib", // 334, + "Ni58_p_to_Cu59_reaclib", // 335, + "Ni58_He4_to_Zn62_reaclib", // 336, + "Ni59_n_to_Ni60_reaclib", // 337, + "Ni59_p_to_Cu60_reaclib", // 338, + "Ni59_He4_to_Zn63_reaclib", // 339, + "Ni60_n_to_Ni61_reaclib", // 340, + "Ni60_p_to_Cu61_reaclib", // 341, + "Ni60_He4_to_Zn64_reaclib", // 342, + "Ni61_n_to_Ni62_reaclib", // 343, + "Ni61_p_to_Cu62_reaclib", // 344, + "Ni61_He4_to_Zn65_reaclib", // 345, + "Ni62_n_to_Ni63_reaclib", // 346, + "Ni62_p_to_Cu63_reaclib", // 347, + "Ni62_He4_to_Zn66_reaclib", // 348, + "Ni63_n_to_Ni64_reaclib", // 349, + "Ni63_p_to_Cu64_reaclib", // 350, + "Ni64_p_to_Cu65_reaclib", // 351, + "Cu57_n_to_Cu58_reaclib", // 352, + "Cu58_n_to_Cu59_reaclib", // 353, + "Cu58_p_to_Zn59_reaclib", // 354, + "Cu58_He4_to_Ga62_reaclib", // 355, + "Cu59_n_to_Cu60_reaclib", // 356, + "Cu59_p_to_Zn60_reaclib", // 357, + "Cu59_He4_to_Ga63_reaclib", // 358, + "Cu60_n_to_Cu61_reaclib", // 359, + "Cu60_p_to_Zn61_reaclib", // 360, + "Cu60_He4_to_Ga64_reaclib", // 361, + "Cu61_n_to_Cu62_reaclib", // 362, + "Cu61_p_to_Zn62_reaclib", // 363, + "Cu62_n_to_Cu63_reaclib", // 364, + "Cu62_p_to_Zn63_reaclib", // 365, + "Cu63_n_to_Cu64_reaclib", // 366, + "Cu63_p_to_Zn64_reaclib", // 367, + "Cu64_n_to_Cu65_reaclib", // 368, + "Cu64_p_to_Zn65_reaclib", // 369, + "Cu65_p_to_Zn66_reaclib", // 370, + "Zn59_n_to_Zn60_reaclib", // 371, + "Zn59_He4_to_Ge63_reaclib", // 372, + "Zn60_n_to_Zn61_reaclib", // 373, + "Zn60_He4_to_Ge64_reaclib", // 374, + "Zn61_n_to_Zn62_reaclib", // 375, + "Zn61_p_to_Ga62_reaclib", // 376, + "Zn62_n_to_Zn63_reaclib", // 377, + "Zn62_p_to_Ga63_reaclib", // 378, + "Zn63_n_to_Zn64_reaclib", // 379, + "Zn63_p_to_Ga64_reaclib", // 380, + "Zn64_n_to_Zn65_reaclib", // 381, + "Zn65_n_to_Zn66_reaclib", // 382, + "Ga62_n_to_Ga63_reaclib", // 383, + "Ga62_p_to_Ge63_reaclib", // 384, + "Ga63_n_to_Ga64_reaclib", // 385, + "Ga63_p_to_Ge64_reaclib", // 386, + "Ge63_n_to_Ge64_reaclib", // 387, + "d_d_to_n_He3_reaclib", // 388, + "He3_d_to_p_He4_reaclib", // 389, + "Li6_p_to_He4_He3_reaclib", // 390, + "Li6_d_to_n_Be7_reaclib", // 391, + "Li6_d_to_p_Li7_reaclib", // 392, + "Li7_p_to_He4_He4_reaclib", // 393, + "Be7_n_to_p_Li7_reaclib", // 394, + "Be7_n_to_He4_He4_reaclib", // 395, + "Be9_p_to_He4_Li6_reaclib", // 396, + "Be9_He4_to_n_C12_reaclib", // 397, + "B10_n_to_He4_Li7_reaclib", // 398, + "B10_p_to_He4_Be7_reaclib", // 399, + "B10_He4_to_n_N13_reaclib", // 400, + "B10_He4_to_p_C13_reaclib", // 401, + "B11_He4_to_n_N14_reaclib", // 402, + "B11_He4_to_p_C14_reaclib", // 403, + "C12_C12_to_p_Na23_reaclib", // 404, + "C12_C12_to_He4_Ne20_reaclib", // 405, + "C13_p_to_n_N13_reaclib", // 406, + "C13_d_to_n_N14_reaclib", // 407, + "C13_He4_to_n_O16_reaclib", // 408, + "C14_d_to_n_N15_reaclib", // 409, + "N13_He4_to_p_O16_reaclib", // 410, + "N14_n_to_p_C14_reaclib", // 411, + "N14_p_to_n_O14_reaclib", // 412, + "N14_He4_to_n_F17_reaclib", // 413, + "N15_p_to_n_O15_reaclib", // 414, + "N15_p_to_He4_C12_reaclib", // 415, + "O14_He4_to_p_F17_reaclib", // 416, + "O15_n_to_He4_C12_reaclib", // 417, + "O16_C12_to_p_Al27_reaclib", // 418, + "O16_C12_to_He4_Mg24_reaclib", // 419, + "O16_O16_to_p_P31_reaclib", // 420, + "O16_O16_to_He4_Si28_reaclib", // 421, + "O17_n_to_He4_C14_reaclib", // 422, + "O17_p_to_He4_N14_reaclib", // 423, + "O17_He4_to_n_Ne20_reaclib", // 424, + "O18_p_to_He4_N15_reaclib", // 425, + "O18_He4_to_n_Ne21_reaclib", // 426, + "F17_n_to_p_O17_reaclib", // 427, + "F18_n_to_p_O18_reaclib", // 428, + "F18_n_to_He4_N15_reaclib", // 429, + "F18_p_to_He4_O15_reaclib", // 430, + "F18_He4_to_p_Ne21_reaclib", // 431, + "F19_p_to_n_Ne19_reaclib", // 432, + "F19_p_to_He4_O16_reaclib", // 433, + "F19_He4_to_p_Ne22_reaclib", // 434, + "Ne18_n_to_p_F18_reaclib", // 435, + "Ne18_n_to_He4_O15_reaclib", // 436, + "Ne18_He4_to_p_Na21_reaclib", // 437, + "Ne19_n_to_He4_O16_reaclib", // 438, + "Ne19_He4_to_p_Na22_reaclib", // 439, + "Ne20_p_to_He4_F17_reaclib", // 440, + "Ne20_C12_to_p_P31_reaclib", // 441, + "Ne20_C12_to_He4_Si28_reaclib", // 442, + "Ne21_He4_to_n_Mg24_reaclib", // 443, + "Ne22_He4_to_n_Mg25_reaclib", // 444, + "Na21_n_to_p_Ne21_reaclib", // 445, + "Na21_n_to_He4_F18_reaclib", // 446, + "Na22_n_to_p_Ne22_reaclib", // 447, + "Na22_n_to_He4_F19_reaclib", // 448, + "Na22_He4_to_p_Mg25_reaclib", // 449, + "Na23_p_to_n_Mg23_reaclib", // 450, + "Na23_p_to_He4_Ne20_reaclib", // 451, + "Na23_He4_to_p_Mg26_reaclib", // 452, + "Mg23_n_to_He4_Ne20_reaclib", // 453, + "Mg23_n_to_C12_C12_reaclib", // 454, + "Mg23_He4_to_p_Al26_reaclib", // 455, + "Mg24_p_to_He4_Na21_reaclib", // 456, + "Mg25_He4_to_n_Si28_reaclib", // 457, + "Mg26_He4_to_n_Si29_reaclib", // 458, + "Al25_n_to_p_Mg25_reaclib", // 459, + "Al25_n_to_He4_Na22_reaclib", // 460, + "Al25_He4_to_p_Si28_reaclib", // 461, + "Al26_n_to_p_Mg26_reaclib", // 462, + "Al26_n_to_He4_Na23_reaclib", // 463, + "Al26_He4_to_p_Si29_reaclib", // 464, + "Al27_p_to_He4_Mg24_reaclib", // 465, + "Al27_He4_to_n_P30_reaclib", // 466, + "Al27_He4_to_p_Si30_reaclib", // 467, + "Si31_p_to_n_P31_reaclib", // 468, + "Si31_He4_to_n_S34_reaclib", // 469, + "P29_n_to_p_Si29_reaclib", // 470, + "P29_n_to_He4_Al26_reaclib", // 471, + "P29_He4_to_p_S32_reaclib", // 472, + "P30_n_to_p_Si30_reaclib", // 473, + "P30_He4_to_p_S33_reaclib", // 474, + "P31_p_to_He4_Si28_reaclib", // 475, + "P31_He4_to_p_S34_reaclib", // 476, + "P32_n_to_p_Si32_reaclib", // 477, + "P32_p_to_n_S32_reaclib", // 478, + "P32_p_to_He4_Si29_reaclib", // 479, + "P33_p_to_He4_Si30_reaclib", // 480, + "S32_n_to_He4_Si29_reaclib", // 481, + "S33_n_to_p_P33_reaclib", // 482, + "S33_n_to_He4_Si30_reaclib", // 483, + "S34_He4_to_n_Ar37_reaclib", // 484, + "S34_He4_to_p_Cl37_reaclib", // 485, + "S35_n_to_He4_Si32_reaclib", // 486, + "S35_p_to_He4_P32_reaclib", // 487, + "S35_He4_to_n_Ar38_reaclib", // 488, + "S36_p_to_He4_P33_reaclib", // 489, + "Cl33_n_to_p_S33_reaclib", // 490, + "Cl33_n_to_He4_P30_reaclib", // 491, + "Cl33_He4_to_p_Ar36_reaclib", // 492, + "Cl34_n_to_p_S34_reaclib", // 493, + "Cl34_n_to_He4_P31_reaclib", // 494, + "Cl34_He4_to_p_Ar37_reaclib", // 495, + "Cl35_n_to_p_S35_reaclib", // 496, + "Cl35_n_to_He4_P32_reaclib", // 497, + "Cl35_p_to_He4_S32_reaclib", // 498, + "Cl35_He4_to_p_Ar38_reaclib", // 499, + "Cl36_n_to_p_S36_reaclib", // 500, + "Cl36_n_to_He4_P33_reaclib", // 501, + "Cl36_p_to_He4_S33_reaclib", // 502, + "Ar36_n_to_p_Cl36_reaclib", // 503, + "Ar36_n_to_He4_S33_reaclib", // 504, + "Ar37_n_to_p_Cl37_reaclib", // 505, + "Ar39_n_to_He4_S36_reaclib", // 506, + "Ar39_p_to_He4_Cl36_reaclib", // 507, + "Ar40_p_to_He4_Cl37_reaclib", // 508, + "K37_n_to_p_Ar37_reaclib", // 509, + "K37_n_to_He4_Cl34_reaclib", // 510, + "K37_He4_to_p_Ca40_reaclib", // 511, + "K38_n_to_p_Ar38_reaclib", // 512, + "K38_n_to_He4_Cl35_reaclib", // 513, + "K38_He4_to_p_Ca41_reaclib", // 514, + "K39_n_to_p_Ar39_reaclib", // 515, + "K39_n_to_He4_Cl36_reaclib", // 516, + "K39_p_to_He4_Ar36_reaclib", // 517, + "K40_n_to_p_Ar40_reaclib", // 518, + "K40_n_to_He4_Cl37_reaclib", // 519, + "K40_p_to_n_Ca40_reaclib", // 520, + "K40_p_to_He4_Ar37_reaclib", // 521, + "K40_He4_to_p_Ca43_reaclib", // 522, + "K41_p_to_n_Ca41_reaclib", // 523, + "K41_p_to_He4_Ar38_reaclib", // 524, + "K41_He4_to_n_Sc44_reaclib", // 525, + "K41_He4_to_p_Ca44_reaclib", // 526, + "Ca40_n_to_He4_Ar37_reaclib", // 527, + "Ca41_n_to_He4_Ar38_reaclib", // 528, + "Ca42_n_to_He4_Ar39_reaclib", // 529, + "Ca42_p_to_He4_K39_reaclib", // 530, + "Ca43_n_to_He4_Ar40_reaclib", // 531, + "Ca43_He4_to_n_Ti46_reaclib", // 532, + "Ca45_He4_to_n_Ti48_reaclib", // 533, + "Ca47_p_to_n_Sc47_reaclib", // 534, + "Ca47_He4_to_n_Ti50_reaclib", // 535, + "Sc43_n_to_p_Ca43_reaclib", // 536, + "Sc43_n_to_He4_K40_reaclib", // 537, + "Sc43_p_to_He4_Ca40_reaclib", // 538, + "Sc43_He4_to_p_Ti46_reaclib", // 539, + "Sc44_n_to_p_Ca44_reaclib", // 540, + "Sc44_p_to_He4_Ca41_reaclib", // 541, + "Sc44_He4_to_p_Ti47_reaclib", // 542, + "Sc45_n_to_p_Ca45_reaclib", // 543, + "Sc45_p_to_He4_Ca42_reaclib", // 544, + "Sc45_He4_to_p_Ti48_reaclib", // 545, + "Sc46_n_to_p_Ca46_reaclib", // 546, + "Sc46_p_to_n_Ti46_reaclib", // 547, + "Sc46_p_to_He4_Ca43_reaclib", // 548, + "Sc46_He4_to_n_V49_reaclib", // 549, + "Sc46_He4_to_p_Ti49_reaclib", // 550, + "Sc47_p_to_He4_Ca44_reaclib", // 551, + "Sc47_He4_to_p_Ti50_reaclib", // 552, + "Sc48_n_to_p_Ca48_reaclib", // 553, + "Sc48_p_to_n_Ti48_reaclib", // 554, + "Sc48_p_to_He4_Ca45_reaclib", // 555, + "Sc48_He4_to_n_V51_reaclib", // 556, + "Sc48_He4_to_p_Ti51_reaclib", // 557, + "Sc49_p_to_n_Ti49_reaclib", // 558, + "Sc49_p_to_He4_Ca46_reaclib", // 559, + "Ti44_n_to_p_Sc44_reaclib", // 560, + "Ti44_n_to_He4_Ca41_reaclib", // 561, + "Ti44_He4_to_p_V47_reaclib", // 562, + "Ti45_n_to_p_Sc45_reaclib", // 563, + "Ti45_n_to_He4_Ca42_reaclib", // 564, + "Ti45_He4_to_p_V48_reaclib", // 565, + "Ti47_n_to_p_Sc47_reaclib", // 566, + "Ti47_n_to_He4_Ca44_reaclib", // 567, + "Ti49_n_to_He4_Ca46_reaclib", // 568, + "Ti49_He4_to_n_Cr52_reaclib", // 569, + "Ti51_n_to_He4_Ca48_reaclib", // 570, + "Ti51_p_to_n_V51_reaclib", // 571, + "Ti51_He4_to_n_Cr54_reaclib", // 572, + "V46_n_to_p_Ti46_reaclib", // 573, + "V46_n_to_He4_Sc43_reaclib", // 574, + "V46_He4_to_p_Cr49_reaclib", // 575, + "V47_n_to_p_Ti47_reaclib", // 576, + "V47_n_to_He4_Sc44_reaclib", // 577, + "V47_He4_to_p_Cr50_reaclib", // 578, + "V48_n_to_p_Ti48_reaclib", // 579, + "V48_n_to_He4_Sc45_reaclib", // 580, + "V48_He4_to_p_Cr51_reaclib", // 581, + "V49_n_to_p_Ti49_reaclib", // 582, + "V49_p_to_He4_Ti46_reaclib", // 583, + "V49_He4_to_p_Cr52_reaclib", // 584, + "V50_n_to_p_Ti50_reaclib", // 585, + "V50_n_to_He4_Sc47_reaclib", // 586, + "V50_p_to_n_Cr50_reaclib", // 587, + "V50_p_to_He4_Ti47_reaclib", // 588, + "V50_He4_to_p_Cr53_reaclib", // 589, + "V51_p_to_He4_Ti48_reaclib", // 590, + "V52_n_to_He4_Sc49_reaclib", // 591, + "V52_p_to_n_Cr52_reaclib", // 592, + "V52_p_to_He4_Ti49_reaclib", // 593, + "V52_He4_to_n_Mn55_reaclib", // 594, + "Cr48_n_to_p_V48_reaclib", // 595, + "Cr48_n_to_He4_Ti45_reaclib", // 596, + "Cr48_He4_to_p_Mn51_reaclib", // 597, + "Cr49_n_to_p_V49_reaclib", // 598, + "Cr49_n_to_He4_Ti46_reaclib", // 599, + "Cr49_He4_to_p_Mn52_reaclib", // 600, + "Cr50_n_to_He4_Ti47_reaclib", // 601, + "Cr51_n_to_p_V51_reaclib", // 602, + "Cr51_n_to_He4_Ti48_reaclib", // 603, + "Cr53_n_to_He4_Ti50_reaclib", // 604, + "Cr54_p_to_He4_V51_reaclib", // 605, + "Mn50_n_to_p_Cr50_reaclib", // 606, + "Mn50_n_to_He4_V47_reaclib", // 607, + "Mn50_He4_to_p_Fe53_reaclib", // 608, + "Mn51_n_to_p_Cr51_reaclib", // 609, + "Mn51_n_to_He4_V48_reaclib", // 610, + "Mn51_He4_to_p_Fe54_reaclib", // 611, + "Mn52_n_to_p_Cr52_reaclib", // 612, + "Mn52_n_to_He4_V49_reaclib", // 613, + "Mn52_He4_to_p_Fe55_reaclib", // 614, + "Mn53_n_to_p_Cr53_reaclib", // 615, + "Mn53_n_to_He4_V50_reaclib", // 616, + "Mn53_p_to_He4_Cr50_reaclib", // 617, + "Mn53_He4_to_p_Fe56_reaclib", // 618, + "Mn54_n_to_p_Cr54_reaclib", // 619, + "Mn54_n_to_He4_V51_reaclib", // 620, + "Mn54_p_to_He4_Cr51_reaclib", // 621, + "Mn55_p_to_He4_Cr52_reaclib", // 622, + "Fe52_n_to_p_Mn52_reaclib", // 623, + "Fe52_n_to_He4_Cr49_reaclib", // 624, + "Fe52_He4_to_p_Co55_reaclib", // 625, + "Fe53_n_to_p_Mn53_reaclib", // 626, + "Fe53_n_to_He4_Cr50_reaclib", // 627, + "Fe53_He4_to_p_Co56_reaclib", // 628, + "Fe54_n_to_p_Mn54_reaclib", // 629, + "Fe54_n_to_He4_Cr51_reaclib", // 630, + "Fe55_n_to_p_Mn55_reaclib", // 631, + "Fe55_n_to_He4_Cr52_reaclib", // 632, + "Fe56_n_to_He4_Cr53_reaclib", // 633, + "Fe57_n_to_He4_Cr54_reaclib", // 634, + "Fe57_p_to_He4_Mn54_reaclib", // 635, + "Fe58_p_to_He4_Mn55_reaclib", // 636, + "Co53_n_to_p_Fe53_reaclib", // 637, + "Co53_n_to_He4_Mn50_reaclib", // 638, + "Co53_He4_to_p_Ni56_reaclib", // 639, + "Co54_n_to_p_Fe54_reaclib", // 640, + "Co54_n_to_He4_Mn51_reaclib", // 641, + "Co54_He4_to_p_Ni57_reaclib", // 642, + "Co55_n_to_p_Fe55_reaclib", // 643, + "Co55_n_to_He4_Mn52_reaclib", // 644, + "Co55_He4_to_p_Ni58_reaclib", // 645, + "Co56_n_to_p_Fe56_reaclib", // 646, + "Co56_n_to_He4_Mn53_reaclib", // 647, + "Co56_He4_to_p_Ni59_reaclib", // 648, + "Co57_n_to_p_Fe57_reaclib", // 649, + "Co57_n_to_He4_Mn54_reaclib", // 650, + "Co57_p_to_He4_Fe54_reaclib", // 651, + "Co57_He4_to_p_Ni60_reaclib", // 652, + "Co58_n_to_p_Fe58_reaclib", // 653, + "Co58_n_to_He4_Mn55_reaclib", // 654, + "Co58_p_to_He4_Fe55_reaclib", // 655, + "Co59_p_to_He4_Fe56_reaclib", // 656, + "Ni56_n_to_p_Co56_reaclib", // 657, + "Ni56_n_to_He4_Fe53_reaclib", // 658, + "Ni57_n_to_p_Co57_reaclib", // 659, + "Ni57_n_to_He4_Fe54_reaclib", // 660, + "Ni58_n_to_p_Co58_reaclib", // 661, + "Ni58_n_to_He4_Fe55_reaclib", // 662, + "Ni59_n_to_p_Co59_reaclib", // 663, + "Ni59_n_to_He4_Fe56_reaclib", // 664, + "Ni60_n_to_He4_Fe57_reaclib", // 665, + "Ni61_n_to_He4_Fe58_reaclib", // 666, + "Ni61_p_to_He4_Co58_reaclib", // 667, + "Ni62_p_to_He4_Co59_reaclib", // 668, + "Cu57_n_to_p_Ni57_reaclib", // 669, + "Cu57_n_to_He4_Co54_reaclib", // 670, + "Cu57_He4_to_p_Zn60_reaclib", // 671, + "Cu58_n_to_p_Ni58_reaclib", // 672, + "Cu58_n_to_He4_Co55_reaclib", // 673, + "Cu59_n_to_p_Ni59_reaclib", // 674, + "Cu59_n_to_He4_Co56_reaclib", // 675, + "Cu59_p_to_He4_Ni56_reaclib", // 676, + "Cu60_n_to_p_Ni60_reaclib", // 677, + "Cu60_n_to_He4_Co57_reaclib", // 678, + "Cu60_p_to_He4_Ni57_reaclib", // 679, + "Cu61_n_to_p_Ni61_reaclib", // 680, + "Cu61_n_to_He4_Co58_reaclib", // 681, + "Cu61_p_to_He4_Ni58_reaclib", // 682, + "Cu62_n_to_p_Ni62_reaclib", // 683, + "Cu62_n_to_He4_Co59_reaclib", // 684, + "Cu62_p_to_He4_Ni59_reaclib", // 685, + "Cu63_n_to_p_Ni63_reaclib", // 686, + "Cu63_p_to_He4_Ni60_reaclib", // 687, + "Cu64_n_to_p_Ni64_reaclib", // 688, + "Cu64_p_to_He4_Ni61_reaclib", // 689, + "Cu65_p_to_He4_Ni62_reaclib", // 690, + "Zn59_n_to_p_Cu59_reaclib", // 691, + "Zn59_n_to_He4_Ni56_reaclib", // 692, + "Zn60_n_to_p_Cu60_reaclib", // 693, + "Zn60_n_to_He4_Ni57_reaclib", // 694, + "Zn61_n_to_p_Cu61_reaclib", // 695, + "Zn61_n_to_He4_Ni58_reaclib", // 696, + "Zn61_p_to_He4_Cu58_reaclib", // 697, + "Zn62_n_to_p_Cu62_reaclib", // 698, + "Zn62_n_to_He4_Ni59_reaclib", // 699, + "Zn62_p_to_He4_Cu59_reaclib", // 700, + "Zn63_n_to_p_Cu63_reaclib", // 701, + "Zn63_n_to_He4_Ni60_reaclib", // 702, + "Zn63_p_to_He4_Cu60_reaclib", // 703, + "Zn64_n_to_p_Cu64_reaclib", // 704, + "Zn64_n_to_He4_Ni61_reaclib", // 705, + "Zn64_p_to_He4_Cu61_reaclib", // 706, + "Zn65_n_to_p_Cu65_reaclib", // 707, + "Zn65_n_to_He4_Ni62_reaclib", // 708, + "Zn65_p_to_He4_Cu62_reaclib", // 709, + "Zn66_n_to_He4_Ni63_reaclib", // 710, + "Zn66_p_to_He4_Cu63_reaclib", // 711, + "Ga62_n_to_p_Zn62_reaclib", // 712, + "Ga62_n_to_He4_Cu59_reaclib", // 713, + "Ga62_p_to_He4_Zn59_reaclib", // 714, + "Ga63_n_to_p_Zn63_reaclib", // 715, + "Ga63_n_to_He4_Cu60_reaclib", // 716, + "Ga63_p_to_He4_Zn60_reaclib", // 717, + "Ga64_n_to_p_Zn64_reaclib", // 718, + "Ga64_n_to_He4_Cu61_reaclib", // 719, + "Ga64_p_to_He4_Zn61_reaclib", // 720, + "Ge63_n_to_p_Ga63_reaclib", // 721, + "Ge63_n_to_He4_Zn60_reaclib", // 722, + "Ge64_n_to_p_Ga64_reaclib", // 723, + "Ge64_n_to_He4_Zn61_reaclib", // 724, + "He3_He3_to_p_p_He4_reaclib", // 725, + "Li7_d_to_n_He4_He4_reaclib", // 726, + "Be7_d_to_p_He4_He4_reaclib", // 727, + "Be9_p_to_d_He4_He4_reaclib", // 728, + "B8_n_to_p_He4_He4_reaclib", // 729, + "B11_p_to_3He4_reaclib", // 730, + "Li7_He3_to_n_p_He4_He4_reaclib", // 731, + "Be7_He3_to_p_p_He4_He4_reaclib", // 732, + "Be9_p_to_n_p_He4_He4_reaclib", // 733, + "He4_p_n_to_Li6_reaclib", // 734, + "He4_He4_n_to_Be9_reaclib", // 735, + "He4_He4_He4_to_C12_reaclib", // 736, + "p_p_n_to_p_d_reaclib", // 737, + "Na21_to_Ne21_electron_capture_weaktab", // 738, + "Ne21_to_Na21_beta_neg_weaktab", // 739, + "Na22_to_Ne22_electron_capture_weaktab", // 740, + "Ne22_to_Na22_beta_neg_weaktab", // 741, + "Mg23_to_Na23_electron_capture_weaktab", // 742, + "Na23_to_Mg23_beta_neg_weaktab", // 743, + "Al25_to_Mg25_electron_capture_weaktab", // 744, + "Mg25_to_Al25_beta_neg_weaktab", // 745, + "Al26_to_Mg26_electron_capture_weaktab", // 746, + "Mg26_to_Al26_beta_neg_weaktab", // 747, + "P29_to_Si29_electron_capture_weaktab", // 748, + "Si29_to_P29_beta_neg_weaktab", // 749, + "P30_to_Si30_electron_capture_weaktab", // 750, + "Si30_to_P30_beta_neg_weaktab", // 751, + "P31_to_Si31_electron_capture_weaktab", // 752, + "Si31_to_P31_beta_neg_weaktab", // 753, + "P32_to_S32_beta_neg_weaktab", // 754, + "P32_to_Si32_electron_capture_weaktab", // 755, + "S32_to_P32_electron_capture_weaktab", // 756, + "Si32_to_P32_beta_neg_weaktab", // 757, + "Cl33_to_S33_electron_capture_weaktab", // 758, + "P33_to_S33_beta_neg_weaktab", // 759, + "S33_to_Cl33_beta_neg_weaktab", // 760, + "S33_to_P33_electron_capture_weaktab", // 761, + "Cl34_to_S34_electron_capture_weaktab", // 762, + "S34_to_Cl34_beta_neg_weaktab", // 763, + "Cl35_to_S35_electron_capture_weaktab", // 764, + "S35_to_Cl35_beta_neg_weaktab", // 765, + "Ar36_to_Cl36_electron_capture_weaktab", // 766, + "Cl36_to_Ar36_beta_neg_weaktab", // 767, + "Cl36_to_S36_electron_capture_weaktab", // 768, + "S36_to_Cl36_beta_neg_weaktab", // 769, + "Ar37_to_Cl37_electron_capture_weaktab", // 770, + "Ar37_to_K37_beta_neg_weaktab", // 771, + "Cl37_to_Ar37_beta_neg_weaktab", // 772, + "K37_to_Ar37_electron_capture_weaktab", // 773, + "Ar38_to_K38_beta_neg_weaktab", // 774, + "K38_to_Ar38_electron_capture_weaktab", // 775, + "Ar39_to_K39_beta_neg_weaktab", // 776, + "K39_to_Ar39_electron_capture_weaktab", // 777, + "Ar40_to_K40_beta_neg_weaktab", // 778, + "Ca40_to_K40_electron_capture_weaktab", // 779, + "K40_to_Ar40_electron_capture_weaktab", // 780, + "K40_to_Ca40_beta_neg_weaktab", // 781, + "Ca41_to_K41_electron_capture_weaktab", // 782, + "K41_to_Ca41_beta_neg_weaktab", // 783, + "Ca43_to_Sc43_beta_neg_weaktab", // 784, + "Sc43_to_Ca43_electron_capture_weaktab", // 785, + "Ca44_to_Sc44_beta_neg_weaktab", // 786, + "Sc44_to_Ca44_electron_capture_weaktab", // 787, + "Sc44_to_Ti44_beta_neg_weaktab", // 788, + "Ti44_to_Sc44_electron_capture_weaktab", // 789, + "Co53_to_Fe53_electron_capture_weaktab", // 790, + "Fe53_to_Co53_beta_neg_weaktab", // 791, + "Cu57_to_Ni57_electron_capture_weaktab", // 792, + "Ni57_to_Cu57_beta_neg_weaktab", // 793, + "Ca45_to_Sc45_beta_neg_weaktab", // 794, + "Sc45_to_Ca45_electron_capture_weaktab", // 795, + "Sc45_to_Ti45_beta_neg_weaktab", // 796, + "Ti45_to_Sc45_electron_capture_weaktab", // 797, + "Ca46_to_Sc46_beta_neg_weaktab", // 798, + "Sc46_to_Ca46_electron_capture_weaktab", // 799, + "Sc46_to_Ti46_beta_neg_weaktab", // 800, + "Ti46_to_Sc46_electron_capture_weaktab", // 801, + "Ti46_to_V46_beta_neg_weaktab", // 802, + "V46_to_Ti46_electron_capture_weaktab", // 803, + "Ca47_to_Sc47_beta_neg_weaktab", // 804, + "Sc47_to_Ca47_electron_capture_weaktab", // 805, + "Sc47_to_Ti47_beta_neg_weaktab", // 806, + "Ti47_to_Sc47_electron_capture_weaktab", // 807, + "Ti47_to_V47_beta_neg_weaktab", // 808, + "V47_to_Ti47_electron_capture_weaktab", // 809, + "Ca48_to_Sc48_beta_neg_weaktab", // 810, + "Cr48_to_V48_electron_capture_weaktab", // 811, + "Sc48_to_Ca48_electron_capture_weaktab", // 812, + "Sc48_to_Ti48_beta_neg_weaktab", // 813, + "Ti48_to_Sc48_electron_capture_weaktab", // 814, + "Ti48_to_V48_beta_neg_weaktab", // 815, + "V48_to_Cr48_beta_neg_weaktab", // 816, + "V48_to_Ti48_electron_capture_weaktab", // 817, + "Cr49_to_V49_electron_capture_weaktab", // 818, + "Sc49_to_Ti49_beta_neg_weaktab", // 819, + "Ti49_to_Sc49_electron_capture_weaktab", // 820, + "Ti49_to_V49_beta_neg_weaktab", // 821, + "V49_to_Cr49_beta_neg_weaktab", // 822, + "V49_to_Ti49_electron_capture_weaktab", // 823, + "Cr50_to_Mn50_beta_neg_weaktab", // 824, + "Cr50_to_V50_electron_capture_weaktab", // 825, + "Mn50_to_Cr50_electron_capture_weaktab", // 826, + "Ti50_to_V50_beta_neg_weaktab", // 827, + "V50_to_Cr50_beta_neg_weaktab", // 828, + "V50_to_Ti50_electron_capture_weaktab", // 829, + "Cr51_to_Mn51_beta_neg_weaktab", // 830, + "Cr51_to_V51_electron_capture_weaktab", // 831, + "Mn51_to_Cr51_electron_capture_weaktab", // 832, + "Ti51_to_V51_beta_neg_weaktab", // 833, + "V51_to_Cr51_beta_neg_weaktab", // 834, + "V51_to_Ti51_electron_capture_weaktab", // 835, + "Cr52_to_Mn52_beta_neg_weaktab", // 836, + "Cr52_to_V52_electron_capture_weaktab", // 837, + "Fe52_to_Mn52_electron_capture_weaktab", // 838, + "Mn52_to_Cr52_electron_capture_weaktab", // 839, + "Mn52_to_Fe52_beta_neg_weaktab", // 840, + "V52_to_Cr52_beta_neg_weaktab", // 841, + "Cr53_to_Mn53_beta_neg_weaktab", // 842, + "Fe53_to_Mn53_electron_capture_weaktab", // 843, + "Mn53_to_Cr53_electron_capture_weaktab", // 844, + "Mn53_to_Fe53_beta_neg_weaktab", // 845, + "Co54_to_Fe54_electron_capture_weaktab", // 846, + "Cr54_to_Mn54_beta_neg_weaktab", // 847, + "Fe54_to_Co54_beta_neg_weaktab", // 848, + "Fe54_to_Mn54_electron_capture_weaktab", // 849, + "Mn54_to_Cr54_electron_capture_weaktab", // 850, + "Mn54_to_Fe54_beta_neg_weaktab", // 851, + "Co55_to_Fe55_electron_capture_weaktab", // 852, + "Fe55_to_Co55_beta_neg_weaktab", // 853, + "Fe55_to_Mn55_electron_capture_weaktab", // 854, + "Mn55_to_Fe55_beta_neg_weaktab", // 855, + "Co56_to_Fe56_electron_capture_weaktab", // 856, + "Co56_to_Ni56_beta_neg_weaktab", // 857, + "Fe56_to_Co56_beta_neg_weaktab", // 858, + "Ni56_to_Co56_electron_capture_weaktab", // 859, + "Co57_to_Fe57_electron_capture_weaktab", // 860, + "Co57_to_Ni57_beta_neg_weaktab", // 861, + "Fe57_to_Co57_beta_neg_weaktab", // 862, + "Ni57_to_Co57_electron_capture_weaktab", // 863, + "Co58_to_Fe58_electron_capture_weaktab", // 864, + "Co58_to_Ni58_beta_neg_weaktab", // 865, + "Cu58_to_Ni58_electron_capture_weaktab", // 866, + "Fe58_to_Co58_beta_neg_weaktab", // 867, + "Ni58_to_Co58_electron_capture_weaktab", // 868, + "Ni58_to_Cu58_beta_neg_weaktab", // 869, + "Co59_to_Ni59_beta_neg_weaktab", // 870, + "Cu59_to_Ni59_electron_capture_weaktab", // 871, + "Ni59_to_Co59_electron_capture_weaktab", // 872, + "Ni59_to_Cu59_beta_neg_weaktab", // 873, + "Cu60_to_Ni60_electron_capture_weaktab", // 874, + "Cu60_to_Zn60_beta_neg_weaktab", // 875, + "Ni60_to_Cu60_beta_neg_weaktab", // 876, + "Zn60_to_Cu60_electron_capture_weaktab", // 877, + "Cu61_to_Ni61_electron_capture_weaktab", // 878, + "Cu61_to_Zn61_beta_neg_weaktab", // 879, + "Ni61_to_Cu61_beta_neg_weaktab", // 880, + "Zn61_to_Cu61_electron_capture_weaktab", // 881, + "Cu62_to_Ni62_electron_capture_weaktab", // 882, + "Cu62_to_Zn62_beta_neg_weaktab", // 883, + "Ga62_to_Zn62_electron_capture_weaktab", // 884, + "Ni62_to_Cu62_beta_neg_weaktab", // 885, + "Zn62_to_Cu62_electron_capture_weaktab", // 886, + "Zn62_to_Ga62_beta_neg_weaktab", // 887, + "Cu63_to_Ni63_electron_capture_weaktab", // 888, + "Cu63_to_Zn63_beta_neg_weaktab", // 889, + "Ga63_to_Zn63_electron_capture_weaktab", // 890, + "Ni63_to_Cu63_beta_neg_weaktab", // 891, + "Zn63_to_Cu63_electron_capture_weaktab", // 892, + "Zn63_to_Ga63_beta_neg_weaktab", // 893, + "Cu64_to_Ni64_electron_capture_weaktab", // 894, + "Cu64_to_Zn64_beta_neg_weaktab", // 895, + "Ga64_to_Ge64_beta_neg_weaktab", // 896, + "Ga64_to_Zn64_electron_capture_weaktab", // 897, + "Ge64_to_Ga64_electron_capture_weaktab", // 898, + "Ni64_to_Cu64_beta_neg_weaktab", // 899, + "Zn64_to_Cu64_electron_capture_weaktab", // 900, + "Zn64_to_Ga64_beta_neg_weaktab", // 901, + "Cu65_to_Zn65_beta_neg_weaktab", // 902, + "Zn65_to_Cu65_electron_capture_weaktab", // 903, + "n_to_p_beta_neg_weaktab", // 904, + "p_to_n_electron_capture_weaktab", // 905, + "d_to_n_p_derived", // 906, + "He3_to_p_d_derived", // 907, + "He4_to_n_He3_derived", // 908, + "He4_to_d_d_derived", // 909, + "Li6_to_He4_d_derived", // 910, + "Li7_to_n_Li6_derived", // 911, + "Be7_to_p_Li6_derived", // 912, + "Be7_to_He4_He3_derived", // 913, + "B8_to_p_Be7_derived", // 914, + "B10_to_p_Be9_derived", // 915, + "B10_to_He4_Li6_derived", // 916, + "B11_to_n_B10_derived", // 917, + "B11_to_He4_Li7_derived", // 918, + "C12_to_p_B11_derived", // 919, + "C13_to_n_C12_derived", // 920, + "C14_to_n_C13_derived", // 921, + "N13_to_p_C12_derived", // 922, + "N14_to_n_N13_derived", // 923, + "N14_to_p_C13_derived", // 924, + "N15_to_n_N14_derived", // 925, + "N15_to_p_C14_derived", // 926, + "O14_to_p_N13_derived", // 927, + "O15_to_n_O14_derived", // 928, + "O15_to_p_N14_derived", // 929, + "O16_to_n_O15_derived", // 930, + "O16_to_p_N15_derived", // 931, + "O16_to_He4_C12_derived", // 932, + "O17_to_n_O16_derived", // 933, + "O18_to_n_O17_derived", // 934, + "O18_to_He4_C14_derived", // 935, + "F17_to_p_O16_derived", // 936, + "F18_to_n_F17_derived", // 937, + "F18_to_p_O17_derived", // 938, + "F18_to_He4_N14_derived", // 939, + "F19_to_n_F18_derived", // 940, + "F19_to_p_O18_derived", // 941, + "F19_to_He4_N15_derived", // 942, + "Ne18_to_p_F17_derived", // 943, + "Ne18_to_He4_O14_derived", // 944, + "Ne19_to_n_Ne18_derived", // 945, + "Ne19_to_p_F18_derived", // 946, + "Ne19_to_He4_O15_derived", // 947, + "Ne20_to_n_Ne19_derived", // 948, + "Ne20_to_p_F19_derived", // 949, + "Ne20_to_He4_O16_derived", // 950, + "Ne21_to_n_Ne20_derived", // 951, + "Ne21_to_He4_O17_derived", // 952, + "Ne22_to_n_Ne21_derived", // 953, + "Ne22_to_He4_O18_derived", // 954, + "Na21_to_p_Ne20_derived", // 955, + "Na21_to_He4_F17_derived", // 956, + "Na22_to_n_Na21_derived", // 957, + "Na22_to_p_Ne21_derived", // 958, + "Na22_to_He4_F18_derived", // 959, + "Na23_to_n_Na22_derived", // 960, + "Na23_to_p_Ne22_derived", // 961, + "Na23_to_He4_F19_derived", // 962, + "Mg23_to_p_Na22_derived", // 963, + "Mg23_to_He4_Ne19_derived", // 964, + "Mg24_to_n_Mg23_derived", // 965, + "Mg24_to_p_Na23_derived", // 966, + "Mg24_to_He4_Ne20_derived", // 967, + "Mg25_to_n_Mg24_derived", // 968, + "Mg25_to_He4_Ne21_derived", // 969, + "Mg26_to_n_Mg25_derived", // 970, + "Mg26_to_He4_Ne22_derived", // 971, + "Al25_to_p_Mg24_derived", // 972, + "Al25_to_He4_Na21_derived", // 973, + "Al26_to_n_Al25_derived", // 974, + "Al26_to_p_Mg25_derived", // 975, + "Al26_to_He4_Na22_derived", // 976, + "Al27_to_n_Al26_derived", // 977, + "Al27_to_p_Mg26_derived", // 978, + "Al27_to_He4_Na23_derived", // 979, + "Si28_to_p_Al27_derived", // 980, + "Si28_to_He4_Mg24_derived", // 981, + "Si29_to_n_Si28_derived", // 982, + "Si29_to_He4_Mg25_derived", // 983, + "Si30_to_n_Si29_derived", // 984, + "Si30_to_He4_Mg26_derived", // 985, + "Si31_to_n_Si30_derived", // 986, + "Si32_to_n_Si31_derived", // 987, + "P29_to_p_Si28_derived", // 988, + "P29_to_He4_Al25_derived", // 989, + "P30_to_n_P29_derived", // 990, + "P30_to_p_Si29_derived", // 991, + "P30_to_He4_Al26_derived", // 992, + "P31_to_n_P30_derived", // 993, + "P31_to_p_Si30_derived", // 994, + "P31_to_He4_Al27_derived", // 995, + "P32_to_n_P31_derived", // 996, + "P32_to_p_Si31_derived", // 997, + "P33_to_n_P32_derived", // 998, + "P33_to_p_Si32_derived", // 999, + "S32_to_p_P31_derived", // 1000, + "S32_to_He4_Si28_derived", // 1001, + "S33_to_n_S32_derived", // 1002, + "S33_to_p_P32_derived", // 1003, + "S33_to_He4_Si29_derived", // 1004, + "S34_to_n_S33_derived", // 1005, + "S34_to_p_P33_derived", // 1006, + "S34_to_He4_Si30_derived", // 1007, + "S35_to_n_S34_derived", // 1008, + "S35_to_He4_Si31_derived", // 1009, + "S36_to_n_S35_derived", // 1010, + "S36_to_He4_Si32_derived", // 1011, + "Cl33_to_p_S32_derived", // 1012, + "Cl33_to_He4_P29_derived", // 1013, + "Cl34_to_n_Cl33_derived", // 1014, + "Cl34_to_p_S33_derived", // 1015, + "Cl34_to_He4_P30_derived", // 1016, + "Cl35_to_n_Cl34_derived", // 1017, + "Cl35_to_p_S34_derived", // 1018, + "Cl35_to_He4_P31_derived", // 1019, + "Cl36_to_n_Cl35_derived", // 1020, + "Cl36_to_p_S35_derived", // 1021, + "Cl36_to_He4_P32_derived", // 1022, + "Cl37_to_n_Cl36_derived", // 1023, + "Cl37_to_p_S36_derived", // 1024, + "Cl37_to_He4_P33_derived", // 1025, + "Ar36_to_p_Cl35_derived", // 1026, + "Ar36_to_He4_S32_derived", // 1027, + "Ar37_to_n_Ar36_derived", // 1028, + "Ar37_to_p_Cl36_derived", // 1029, + "Ar37_to_He4_S33_derived", // 1030, + "Ar38_to_n_Ar37_derived", // 1031, + "Ar38_to_p_Cl37_derived", // 1032, + "Ar38_to_He4_S34_derived", // 1033, + "Ar39_to_n_Ar38_derived", // 1034, + "Ar39_to_He4_S35_derived", // 1035, + "Ar40_to_n_Ar39_derived", // 1036, + "Ar40_to_He4_S36_derived", // 1037, + "K37_to_p_Ar36_derived", // 1038, + "K37_to_He4_Cl33_derived", // 1039, + "K38_to_n_K37_derived", // 1040, + "K38_to_p_Ar37_derived", // 1041, + "K38_to_He4_Cl34_derived", // 1042, + "K39_to_n_K38_derived", // 1043, + "K39_to_p_Ar38_derived", // 1044, + "K39_to_He4_Cl35_derived", // 1045, + "K40_to_n_K39_derived", // 1046, + "K40_to_p_Ar39_derived", // 1047, + "K40_to_He4_Cl36_derived", // 1048, + "K41_to_n_K40_derived", // 1049, + "K41_to_p_Ar40_derived", // 1050, + "K41_to_He4_Cl37_derived", // 1051, + "Ca40_to_p_K39_derived", // 1052, + "Ca40_to_He4_Ar36_derived", // 1053, + "Ca41_to_n_Ca40_derived", // 1054, + "Ca41_to_p_K40_derived", // 1055, + "Ca41_to_He4_Ar37_derived", // 1056, + "Ca42_to_n_Ca41_derived", // 1057, + "Ca42_to_p_K41_derived", // 1058, + "Ca42_to_He4_Ar38_derived", // 1059, + "Ca43_to_n_Ca42_derived", // 1060, + "Ca43_to_He4_Ar39_derived", // 1061, + "Ca44_to_n_Ca43_derived", // 1062, + "Ca44_to_He4_Ar40_derived", // 1063, + "Ca45_to_n_Ca44_derived", // 1064, + "Ca46_to_n_Ca45_derived", // 1065, + "Ca47_to_n_Ca46_derived", // 1066, + "Ca48_to_n_Ca47_derived", // 1067, + "Sc43_to_p_Ca42_derived", // 1068, + "Sc43_to_He4_K39_derived", // 1069, + "Sc44_to_n_Sc43_derived", // 1070, + "Sc44_to_p_Ca43_derived", // 1071, + "Sc44_to_He4_K40_derived", // 1072, + "Sc45_to_n_Sc44_derived", // 1073, + "Sc45_to_p_Ca44_derived", // 1074, + "Sc45_to_He4_K41_derived", // 1075, + "Sc46_to_n_Sc45_derived", // 1076, + "Sc46_to_p_Ca45_derived", // 1077, + "Sc47_to_n_Sc46_derived", // 1078, + "Sc47_to_p_Ca46_derived", // 1079, + "Sc48_to_n_Sc47_derived", // 1080, + "Sc48_to_p_Ca47_derived", // 1081, + "Sc49_to_n_Sc48_derived", // 1082, + "Sc49_to_p_Ca48_derived", // 1083, + "Ti44_to_p_Sc43_derived", // 1084, + "Ti44_to_He4_Ca40_derived", // 1085, + "Ti45_to_n_Ti44_derived", // 1086, + "Ti45_to_p_Sc44_derived", // 1087, + "Ti45_to_He4_Ca41_derived", // 1088, + "Ti46_to_n_Ti45_derived", // 1089, + "Ti46_to_p_Sc45_derived", // 1090, + "Ti46_to_He4_Ca42_derived", // 1091, + "Ti47_to_n_Ti46_derived", // 1092, + "Ti47_to_p_Sc46_derived", // 1093, + "Ti47_to_He4_Ca43_derived", // 1094, + "Ti48_to_n_Ti47_derived", // 1095, + "Ti48_to_p_Sc47_derived", // 1096, + "Ti48_to_He4_Ca44_derived", // 1097, + "Ti49_to_n_Ti48_derived", // 1098, + "Ti49_to_p_Sc48_derived", // 1099, + "Ti49_to_He4_Ca45_derived", // 1100, + "Ti50_to_n_Ti49_derived", // 1101, + "Ti50_to_p_Sc49_derived", // 1102, + "Ti50_to_He4_Ca46_derived", // 1103, + "Ti51_to_n_Ti50_derived", // 1104, + "Ti51_to_He4_Ca47_derived", // 1105, + "V46_to_p_Ti45_derived", // 1106, + "V47_to_n_V46_derived", // 1107, + "V47_to_p_Ti46_derived", // 1108, + "V47_to_He4_Sc43_derived", // 1109, + "V48_to_n_V47_derived", // 1110, + "V48_to_p_Ti47_derived", // 1111, + "V48_to_He4_Sc44_derived", // 1112, + "V49_to_n_V48_derived", // 1113, + "V49_to_p_Ti48_derived", // 1114, + "V49_to_He4_Sc45_derived", // 1115, + "V50_to_n_V49_derived", // 1116, + "V50_to_p_Ti49_derived", // 1117, + "V50_to_He4_Sc46_derived", // 1118, + "V51_to_n_V50_derived", // 1119, + "V51_to_p_Ti50_derived", // 1120, + "V51_to_He4_Sc47_derived", // 1121, + "V52_to_n_V51_derived", // 1122, + "V52_to_p_Ti51_derived", // 1123, + "V52_to_He4_Sc48_derived", // 1124, + "Cr48_to_p_V47_derived", // 1125, + "Cr48_to_He4_Ti44_derived", // 1126, + "Cr49_to_n_Cr48_derived", // 1127, + "Cr49_to_p_V48_derived", // 1128, + "Cr49_to_He4_Ti45_derived", // 1129, + "Cr50_to_n_Cr49_derived", // 1130, + "Cr50_to_p_V49_derived", // 1131, + "Cr50_to_He4_Ti46_derived", // 1132, + "Cr51_to_n_Cr50_derived", // 1133, + "Cr51_to_p_V50_derived", // 1134, + "Cr51_to_He4_Ti47_derived", // 1135, + "Cr52_to_n_Cr51_derived", // 1136, + "Cr52_to_p_V51_derived", // 1137, + "Cr52_to_He4_Ti48_derived", // 1138, + "Cr53_to_n_Cr52_derived", // 1139, + "Cr53_to_p_V52_derived", // 1140, + "Cr53_to_He4_Ti49_derived", // 1141, + "Cr54_to_n_Cr53_derived", // 1142, + "Cr54_to_He4_Ti50_derived", // 1143, + "Mn50_to_p_Cr49_derived", // 1144, + "Mn50_to_He4_V46_derived", // 1145, + "Mn51_to_n_Mn50_derived", // 1146, + "Mn51_to_p_Cr50_derived", // 1147, + "Mn51_to_He4_V47_derived", // 1148, + "Mn52_to_n_Mn51_derived", // 1149, + "Mn52_to_p_Cr51_derived", // 1150, + "Mn52_to_He4_V48_derived", // 1151, + "Mn53_to_n_Mn52_derived", // 1152, + "Mn53_to_p_Cr52_derived", // 1153, + "Mn53_to_He4_V49_derived", // 1154, + "Mn54_to_n_Mn53_derived", // 1155, + "Mn54_to_p_Cr53_derived", // 1156, + "Mn54_to_He4_V50_derived", // 1157, + "Mn55_to_n_Mn54_derived", // 1158, + "Mn55_to_p_Cr54_derived", // 1159, + "Mn55_to_He4_V51_derived", // 1160, + "Fe52_to_p_Mn51_derived", // 1161, + "Fe52_to_He4_Cr48_derived", // 1162, + "Fe53_to_n_Fe52_derived", // 1163, + "Fe53_to_p_Mn52_derived", // 1164, + "Fe53_to_He4_Cr49_derived", // 1165, + "Fe54_to_n_Fe53_derived", // 1166, + "Fe54_to_p_Mn53_derived", // 1167, + "Fe54_to_He4_Cr50_derived", // 1168, + "Fe55_to_n_Fe54_derived", // 1169, + "Fe55_to_p_Mn54_derived", // 1170, + "Fe55_to_He4_Cr51_derived", // 1171, + "Fe56_to_n_Fe55_derived", // 1172, + "Fe56_to_p_Mn55_derived", // 1173, + "Fe56_to_He4_Cr52_derived", // 1174, + "Fe57_to_n_Fe56_derived", // 1175, + "Fe57_to_He4_Cr53_derived", // 1176, + "Fe58_to_n_Fe57_derived", // 1177, + "Fe58_to_He4_Cr54_derived", // 1178, + "Co53_to_p_Fe52_derived", // 1179, + "Co54_to_n_Co53_derived", // 1180, + "Co54_to_p_Fe53_derived", // 1181, + "Co54_to_He4_Mn50_derived", // 1182, + "Co55_to_n_Co54_derived", // 1183, + "Co55_to_p_Fe54_derived", // 1184, + "Co55_to_He4_Mn51_derived", // 1185, + "Co56_to_n_Co55_derived", // 1186, + "Co56_to_p_Fe55_derived", // 1187, + "Co56_to_He4_Mn52_derived", // 1188, + "Co57_to_n_Co56_derived", // 1189, + "Co57_to_p_Fe56_derived", // 1190, + "Co57_to_He4_Mn53_derived", // 1191, + "Co58_to_n_Co57_derived", // 1192, + "Co58_to_p_Fe57_derived", // 1193, + "Co58_to_He4_Mn54_derived", // 1194, + "Co59_to_n_Co58_derived", // 1195, + "Co59_to_p_Fe58_derived", // 1196, + "Co59_to_He4_Mn55_derived", // 1197, + "Ni56_to_p_Co55_derived", // 1198, + "Ni56_to_He4_Fe52_derived", // 1199, + "Ni57_to_n_Ni56_derived", // 1200, + "Ni57_to_p_Co56_derived", // 1201, + "Ni57_to_He4_Fe53_derived", // 1202, + "Ni58_to_n_Ni57_derived", // 1203, + "Ni58_to_p_Co57_derived", // 1204, + "Ni58_to_He4_Fe54_derived", // 1205, + "Ni59_to_n_Ni58_derived", // 1206, + "Ni59_to_p_Co58_derived", // 1207, + "Ni59_to_He4_Fe55_derived", // 1208, + "Ni60_to_n_Ni59_derived", // 1209, + "Ni60_to_p_Co59_derived", // 1210, + "Ni60_to_He4_Fe56_derived", // 1211, + "Ni61_to_n_Ni60_derived", // 1212, + "Ni61_to_He4_Fe57_derived", // 1213, + "Ni62_to_n_Ni61_derived", // 1214, + "Ni62_to_He4_Fe58_derived", // 1215, + "Ni63_to_n_Ni62_derived", // 1216, + "Ni64_to_n_Ni63_derived", // 1217, + "Cu57_to_p_Ni56_derived", // 1218, + "Cu57_to_He4_Co53_derived", // 1219, + "Cu58_to_n_Cu57_derived", // 1220, + "Cu58_to_p_Ni57_derived", // 1221, + "Cu58_to_He4_Co54_derived", // 1222, + "Cu59_to_n_Cu58_derived", // 1223, + "Cu59_to_p_Ni58_derived", // 1224, + "Cu59_to_He4_Co55_derived", // 1225, + "Cu60_to_n_Cu59_derived", // 1226, + "Cu60_to_p_Ni59_derived", // 1227, + "Cu60_to_He4_Co56_derived", // 1228, + "Cu61_to_n_Cu60_derived", // 1229, + "Cu61_to_p_Ni60_derived", // 1230, + "Cu61_to_He4_Co57_derived", // 1231, + "Cu62_to_n_Cu61_derived", // 1232, + "Cu62_to_p_Ni61_derived", // 1233, + "Cu62_to_He4_Co58_derived", // 1234, + "Cu63_to_n_Cu62_derived", // 1235, + "Cu63_to_p_Ni62_derived", // 1236, + "Cu63_to_He4_Co59_derived", // 1237, + "Cu64_to_n_Cu63_derived", // 1238, + "Cu64_to_p_Ni63_derived", // 1239, + "Cu65_to_n_Cu64_derived", // 1240, + "Cu65_to_p_Ni64_derived", // 1241, + "Zn59_to_p_Cu58_derived", // 1242, + "Zn60_to_n_Zn59_derived", // 1243, + "Zn60_to_p_Cu59_derived", // 1244, + "Zn60_to_He4_Ni56_derived", // 1245, + "Zn61_to_n_Zn60_derived", // 1246, + "Zn61_to_p_Cu60_derived", // 1247, + "Zn61_to_He4_Ni57_derived", // 1248, + "Zn62_to_n_Zn61_derived", // 1249, + "Zn62_to_p_Cu61_derived", // 1250, + "Zn62_to_He4_Ni58_derived", // 1251, + "Zn63_to_n_Zn62_derived", // 1252, + "Zn63_to_p_Cu62_derived", // 1253, + "Zn63_to_He4_Ni59_derived", // 1254, + "Zn64_to_n_Zn63_derived", // 1255, + "Zn64_to_p_Cu63_derived", // 1256, + "Zn64_to_He4_Ni60_derived", // 1257, + "Zn65_to_n_Zn64_derived", // 1258, + "Zn65_to_p_Cu64_derived", // 1259, + "Zn65_to_He4_Ni61_derived", // 1260, + "Zn66_to_n_Zn65_derived", // 1261, + "Zn66_to_p_Cu65_derived", // 1262, + "Zn66_to_He4_Ni62_derived", // 1263, + "Ga62_to_p_Zn61_derived", // 1264, + "Ga62_to_He4_Cu58_derived", // 1265, + "Ga63_to_n_Ga62_derived", // 1266, + "Ga63_to_p_Zn62_derived", // 1267, + "Ga63_to_He4_Cu59_derived", // 1268, + "Ga64_to_n_Ga63_derived", // 1269, + "Ga64_to_p_Zn63_derived", // 1270, + "Ga64_to_He4_Cu60_derived", // 1271, + "Ge63_to_p_Ga62_derived", // 1272, + "Ge63_to_He4_Zn59_derived", // 1273, + "Ge64_to_n_Ge63_derived", // 1274, + "Ge64_to_p_Ga63_derived", // 1275, + "Ge64_to_He4_Zn60_derived", // 1276, + "Li6_to_n_p_He4_derived", // 1277, + "Be9_to_n_He4_He4_derived", // 1278, + "C12_to_3He4_derived", // 1279, + "He3_n_to_d_d_derived", // 1280, + "He3_He4_to_p_Li6_derived", // 1281, + "He4_p_to_d_He3_derived", // 1282, + "He4_He4_to_n_Be7_derived", // 1283, + "He4_He4_to_p_Li7_derived", // 1284, + "Li6_He4_to_p_Be9_derived", // 1285, + "Li7_p_to_n_Be7_derived", // 1286, + "Li7_p_to_d_Li6_derived", // 1287, + "Li7_He4_to_n_B10_derived", // 1288, + "Be7_n_to_d_Li6_derived", // 1289, + "Be7_He4_to_p_B10_derived", // 1290, + "C12_n_to_He4_Be9_derived", // 1291, + "C12_He4_to_n_O15_derived", // 1292, + "C12_He4_to_p_N15_derived", // 1293, + "C12_C12_to_n_Mg23_derived", // 1294, + "C13_p_to_He4_B10_derived", // 1295, + "C14_p_to_n_N14_derived", // 1296, + "C14_p_to_He4_B11_derived", // 1297, + "C14_He4_to_n_O17_derived", // 1298, + "N13_n_to_p_C13_derived", // 1299, + "N13_n_to_He4_B10_derived", // 1300, + "N14_n_to_d_C13_derived", // 1301, + "N14_n_to_He4_B11_derived", // 1302, + "N14_He4_to_p_O17_derived", // 1303, + "N15_n_to_d_C14_derived", // 1304, + "N15_He4_to_n_F18_derived", // 1305, + "N15_He4_to_p_O18_derived", // 1306, + "O14_n_to_p_N14_derived", // 1307, + "O15_n_to_p_N15_derived", // 1308, + "O15_He4_to_n_Ne18_derived", // 1309, + "O15_He4_to_p_F18_derived", // 1310, + "O16_n_to_He4_C13_derived", // 1311, + "O16_p_to_He4_N13_derived", // 1312, + "O16_He4_to_n_Ne19_derived", // 1313, + "O16_He4_to_p_F19_derived", // 1314, + "O17_p_to_n_F17_derived", // 1315, + "O18_p_to_n_F18_derived", // 1316, + "F17_n_to_He4_N14_derived", // 1317, + "F17_p_to_He4_O14_derived", // 1318, + "F17_He4_to_p_Ne20_derived", // 1319, + "F18_p_to_n_Ne18_derived", // 1320, + "F18_He4_to_n_Na21_derived", // 1321, + "F19_He4_to_n_Na22_derived", // 1322, + "Ne19_n_to_p_F19_derived", // 1323, + "Ne20_n_to_He4_O17_derived", // 1324, + "Ne20_He4_to_n_Mg23_derived", // 1325, + "Ne20_He4_to_p_Na23_derived", // 1326, + "Ne20_He4_to_C12_C12_derived", // 1327, + "Ne21_n_to_He4_O18_derived", // 1328, + "Ne21_p_to_n_Na21_derived", // 1329, + "Ne21_p_to_He4_F18_derived", // 1330, + "Ne22_p_to_n_Na22_derived", // 1331, + "Ne22_p_to_He4_F19_derived", // 1332, + "Na21_p_to_He4_Ne18_derived", // 1333, + "Na21_He4_to_p_Mg24_derived", // 1334, + "Na22_p_to_He4_Ne19_derived", // 1335, + "Na22_He4_to_n_Al25_derived", // 1336, + "Na23_p_to_C12_C12_derived", // 1337, + "Na23_He4_to_n_Al26_derived", // 1338, + "Mg23_n_to_p_Na23_derived", // 1339, + "Mg24_n_to_He4_Ne21_derived", // 1340, + "Mg24_He4_to_p_Al27_derived", // 1341, + "Mg24_He4_to_C12_O16_derived", // 1342, + "Mg25_n_to_He4_Ne22_derived", // 1343, + "Mg25_p_to_n_Al25_derived", // 1344, + "Mg25_p_to_He4_Na22_derived", // 1345, + "Mg26_p_to_n_Al26_derived", // 1346, + "Mg26_p_to_He4_Na23_derived", // 1347, + "Al26_p_to_He4_Mg23_derived", // 1348, + "Al26_He4_to_n_P29_derived", // 1349, + "Al27_p_to_C12_O16_derived", // 1350, + "Si28_n_to_He4_Mg25_derived", // 1351, + "Si28_p_to_He4_Al25_derived", // 1352, + "Si28_He4_to_p_P31_derived", // 1353, + "Si28_He4_to_C12_Ne20_derived", // 1354, + "Si28_He4_to_O16_O16_derived", // 1355, + "Si29_n_to_He4_Mg26_derived", // 1356, + "Si29_p_to_n_P29_derived", // 1357, + "Si29_p_to_He4_Al26_derived", // 1358, + "Si29_He4_to_n_S32_derived", // 1359, + "Si29_He4_to_p_P32_derived", // 1360, + "Si30_p_to_n_P30_derived", // 1361, + "Si30_p_to_He4_Al27_derived", // 1362, + "Si30_He4_to_n_S33_derived", // 1363, + "Si30_He4_to_p_P33_derived", // 1364, + "Si32_p_to_n_P32_derived", // 1365, + "Si32_He4_to_n_S35_derived", // 1366, + "P30_n_to_He4_Al27_derived", // 1367, + "P30_He4_to_n_Cl33_derived", // 1368, + "P31_n_to_p_Si31_derived", // 1369, + "P31_p_to_C12_Ne20_derived", // 1370, + "P31_p_to_O16_O16_derived", // 1371, + "P31_He4_to_n_Cl34_derived", // 1372, + "P32_He4_to_n_Cl35_derived", // 1373, + "P32_He4_to_p_S35_derived", // 1374, + "P33_p_to_n_S33_derived", // 1375, + "P33_He4_to_n_Cl36_derived", // 1376, + "P33_He4_to_p_S36_derived", // 1377, + "S32_n_to_p_P32_derived", // 1378, + "S32_p_to_He4_P29_derived", // 1379, + "S32_He4_to_p_Cl35_derived", // 1380, + "S33_p_to_n_Cl33_derived", // 1381, + "S33_p_to_He4_P30_derived", // 1382, + "S33_He4_to_n_Ar36_derived", // 1383, + "S33_He4_to_p_Cl36_derived", // 1384, + "S34_n_to_He4_Si31_derived", // 1385, + "S34_p_to_n_Cl34_derived", // 1386, + "S34_p_to_He4_P31_derived", // 1387, + "S35_p_to_n_Cl35_derived", // 1388, + "S36_p_to_n_Cl36_derived", // 1389, + "S36_He4_to_n_Ar39_derived", // 1390, + "Cl34_He4_to_n_K37_derived", // 1391, + "Cl35_He4_to_n_K38_derived", // 1392, + "Cl36_p_to_n_Ar36_derived", // 1393, + "Cl36_He4_to_n_K39_derived", // 1394, + "Cl36_He4_to_p_Ar39_derived", // 1395, + "Cl37_p_to_n_Ar37_derived", // 1396, + "Cl37_p_to_He4_S34_derived", // 1397, + "Cl37_He4_to_n_K40_derived", // 1398, + "Cl37_He4_to_p_Ar40_derived", // 1399, + "Ar36_p_to_He4_Cl33_derived", // 1400, + "Ar36_He4_to_p_K39_derived", // 1401, + "Ar37_n_to_He4_S34_derived", // 1402, + "Ar37_p_to_n_K37_derived", // 1403, + "Ar37_p_to_He4_Cl34_derived", // 1404, + "Ar37_He4_to_n_Ca40_derived", // 1405, + "Ar37_He4_to_p_K40_derived", // 1406, + "Ar38_n_to_He4_S35_derived", // 1407, + "Ar38_p_to_n_K38_derived", // 1408, + "Ar38_p_to_He4_Cl35_derived", // 1409, + "Ar38_He4_to_n_Ca41_derived", // 1410, + "Ar38_He4_to_p_K41_derived", // 1411, + "Ar39_p_to_n_K39_derived", // 1412, + "Ar39_He4_to_n_Ca42_derived", // 1413, + "Ar40_p_to_n_K40_derived", // 1414, + "Ar40_He4_to_n_Ca43_derived", // 1415, + "K39_He4_to_p_Ca42_derived", // 1416, + "K40_He4_to_n_Sc43_derived", // 1417, + "Ca40_n_to_p_K40_derived", // 1418, + "Ca40_p_to_He4_K37_derived", // 1419, + "Ca40_He4_to_p_Sc43_derived", // 1420, + "Ca41_n_to_p_K41_derived", // 1421, + "Ca41_p_to_He4_K38_derived", // 1422, + "Ca41_He4_to_n_Ti44_derived", // 1423, + "Ca41_He4_to_p_Sc44_derived", // 1424, + "Ca42_He4_to_n_Ti45_derived", // 1425, + "Ca42_He4_to_p_Sc45_derived", // 1426, + "Ca43_p_to_n_Sc43_derived", // 1427, + "Ca43_p_to_He4_K40_derived", // 1428, + "Ca43_He4_to_p_Sc46_derived", // 1429, + "Ca44_p_to_n_Sc44_derived", // 1430, + "Ca44_p_to_He4_K41_derived", // 1431, + "Ca44_He4_to_n_Ti47_derived", // 1432, + "Ca44_He4_to_p_Sc47_derived", // 1433, + "Ca45_p_to_n_Sc45_derived", // 1434, + "Ca45_He4_to_p_Sc48_derived", // 1435, + "Ca46_p_to_n_Sc46_derived", // 1436, + "Ca46_He4_to_n_Ti49_derived", // 1437, + "Ca46_He4_to_p_Sc49_derived", // 1438, + "Ca48_p_to_n_Sc48_derived", // 1439, + "Ca48_He4_to_n_Ti51_derived", // 1440, + "Sc43_He4_to_n_V46_derived", // 1441, + "Sc44_n_to_He4_K41_derived", // 1442, + "Sc44_p_to_n_Ti44_derived", // 1443, + "Sc44_He4_to_n_V47_derived", // 1444, + "Sc45_p_to_n_Ti45_derived", // 1445, + "Sc45_He4_to_n_V48_derived", // 1446, + "Sc47_n_to_p_Ca47_derived", // 1447, + "Sc47_p_to_n_Ti47_derived", // 1448, + "Sc47_He4_to_n_V50_derived", // 1449, + "Sc49_He4_to_n_V52_derived", // 1450, + "Ti45_He4_to_n_Cr48_derived", // 1451, + "Ti46_n_to_p_Sc46_derived", // 1452, + "Ti46_n_to_He4_Ca43_derived", // 1453, + "Ti46_p_to_n_V46_derived", // 1454, + "Ti46_p_to_He4_Sc43_derived", // 1455, + "Ti46_He4_to_n_Cr49_derived", // 1456, + "Ti46_He4_to_p_V49_derived", // 1457, + "Ti47_p_to_n_V47_derived", // 1458, + "Ti47_p_to_He4_Sc44_derived", // 1459, + "Ti47_He4_to_n_Cr50_derived", // 1460, + "Ti47_He4_to_p_V50_derived", // 1461, + "Ti48_n_to_p_Sc48_derived", // 1462, + "Ti48_n_to_He4_Ca45_derived", // 1463, + "Ti48_p_to_n_V48_derived", // 1464, + "Ti48_p_to_He4_Sc45_derived", // 1465, + "Ti48_He4_to_n_Cr51_derived", // 1466, + "Ti48_He4_to_p_V51_derived", // 1467, + "Ti49_n_to_p_Sc49_derived", // 1468, + "Ti49_p_to_n_V49_derived", // 1469, + "Ti49_p_to_He4_Sc46_derived", // 1470, + "Ti49_He4_to_p_V52_derived", // 1471, + "Ti50_n_to_He4_Ca47_derived", // 1472, + "Ti50_p_to_n_V50_derived", // 1473, + "Ti50_p_to_He4_Sc47_derived", // 1474, + "Ti50_He4_to_n_Cr53_derived", // 1475, + "Ti51_p_to_He4_Sc48_derived", // 1476, + "V47_p_to_He4_Ti44_derived", // 1477, + "V47_He4_to_n_Mn50_derived", // 1478, + "V48_p_to_n_Cr48_derived", // 1479, + "V48_p_to_He4_Ti45_derived", // 1480, + "V48_He4_to_n_Mn51_derived", // 1481, + "V49_n_to_He4_Sc46_derived", // 1482, + "V49_p_to_n_Cr49_derived", // 1483, + "V49_He4_to_n_Mn52_derived", // 1484, + "V50_He4_to_n_Mn53_derived", // 1485, + "V51_n_to_p_Ti51_derived", // 1486, + "V51_n_to_He4_Sc48_derived", // 1487, + "V51_p_to_n_Cr51_derived", // 1488, + "V51_He4_to_n_Mn54_derived", // 1489, + "V51_He4_to_p_Cr54_derived", // 1490, + "Cr49_p_to_He4_V46_derived", // 1491, + "Cr49_He4_to_n_Fe52_derived", // 1492, + "Cr50_n_to_p_V50_derived", // 1493, + "Cr50_p_to_n_Mn50_derived", // 1494, + "Cr50_p_to_He4_V47_derived", // 1495, + "Cr50_He4_to_n_Fe53_derived", // 1496, + "Cr50_He4_to_p_Mn53_derived", // 1497, + "Cr51_p_to_n_Mn51_derived", // 1498, + "Cr51_p_to_He4_V48_derived", // 1499, + "Cr51_He4_to_n_Fe54_derived", // 1500, + "Cr51_He4_to_p_Mn54_derived", // 1501, + "Cr52_n_to_p_V52_derived", // 1502, + "Cr52_n_to_He4_Ti49_derived", // 1503, + "Cr52_p_to_n_Mn52_derived", // 1504, + "Cr52_p_to_He4_V49_derived", // 1505, + "Cr52_He4_to_n_Fe55_derived", // 1506, + "Cr52_He4_to_p_Mn55_derived", // 1507, + "Cr53_p_to_n_Mn53_derived", // 1508, + "Cr53_p_to_He4_V50_derived", // 1509, + "Cr53_He4_to_n_Fe56_derived", // 1510, + "Cr54_n_to_He4_Ti51_derived", // 1511, + "Cr54_p_to_n_Mn54_derived", // 1512, + "Cr54_He4_to_n_Fe57_derived", // 1513, + "Mn50_He4_to_n_Co53_derived", // 1514, + "Mn51_p_to_He4_Cr48_derived", // 1515, + "Mn51_He4_to_n_Co54_derived", // 1516, + "Mn52_p_to_n_Fe52_derived", // 1517, + "Mn52_p_to_He4_Cr49_derived", // 1518, + "Mn52_He4_to_n_Co55_derived", // 1519, + "Mn53_p_to_n_Fe53_derived", // 1520, + "Mn53_He4_to_n_Co56_derived", // 1521, + "Mn54_p_to_n_Fe54_derived", // 1522, + "Mn54_He4_to_n_Co57_derived", // 1523, + "Mn54_He4_to_p_Fe57_derived", // 1524, + "Mn55_n_to_He4_V52_derived", // 1525, + "Mn55_p_to_n_Fe55_derived", // 1526, + "Mn55_He4_to_n_Co58_derived", // 1527, + "Mn55_He4_to_p_Fe58_derived", // 1528, + "Fe53_p_to_n_Co53_derived", // 1529, + "Fe53_p_to_He4_Mn50_derived", // 1530, + "Fe53_He4_to_n_Ni56_derived", // 1531, + "Fe54_p_to_n_Co54_derived", // 1532, + "Fe54_p_to_He4_Mn51_derived", // 1533, + "Fe54_He4_to_n_Ni57_derived", // 1534, + "Fe54_He4_to_p_Co57_derived", // 1535, + "Fe55_p_to_n_Co55_derived", // 1536, + "Fe55_p_to_He4_Mn52_derived", // 1537, + "Fe55_He4_to_n_Ni58_derived", // 1538, + "Fe55_He4_to_p_Co58_derived", // 1539, + "Fe56_p_to_n_Co56_derived", // 1540, + "Fe56_p_to_He4_Mn53_derived", // 1541, + "Fe56_He4_to_n_Ni59_derived", // 1542, + "Fe56_He4_to_p_Co59_derived", // 1543, + "Fe57_p_to_n_Co57_derived", // 1544, + "Fe57_He4_to_n_Ni60_derived", // 1545, + "Fe58_p_to_n_Co58_derived", // 1546, + "Fe58_He4_to_n_Ni61_derived", // 1547, + "Co54_He4_to_n_Cu57_derived", // 1548, + "Co55_p_to_He4_Fe52_derived", // 1549, + "Co55_He4_to_n_Cu58_derived", // 1550, + "Co56_p_to_n_Ni56_derived", // 1551, + "Co56_p_to_He4_Fe53_derived", // 1552, + "Co56_He4_to_n_Cu59_derived", // 1553, + "Co57_p_to_n_Ni57_derived", // 1554, + "Co57_He4_to_n_Cu60_derived", // 1555, + "Co58_p_to_n_Ni58_derived", // 1556, + "Co58_He4_to_n_Cu61_derived", // 1557, + "Co58_He4_to_p_Ni61_derived", // 1558, + "Co59_p_to_n_Ni59_derived", // 1559, + "Co59_He4_to_n_Cu62_derived", // 1560, + "Co59_He4_to_p_Ni62_derived", // 1561, + "Ni56_p_to_He4_Co53_derived", // 1562, + "Ni56_He4_to_n_Zn59_derived", // 1563, + "Ni56_He4_to_p_Cu59_derived", // 1564, + "Ni57_p_to_n_Cu57_derived", // 1565, + "Ni57_p_to_He4_Co54_derived", // 1566, + "Ni57_He4_to_n_Zn60_derived", // 1567, + "Ni57_He4_to_p_Cu60_derived", // 1568, + "Ni58_p_to_n_Cu58_derived", // 1569, + "Ni58_p_to_He4_Co55_derived", // 1570, + "Ni58_He4_to_n_Zn61_derived", // 1571, + "Ni58_He4_to_p_Cu61_derived", // 1572, + "Ni59_p_to_n_Cu59_derived", // 1573, + "Ni59_p_to_He4_Co56_derived", // 1574, + "Ni59_He4_to_n_Zn62_derived", // 1575, + "Ni59_He4_to_p_Cu62_derived", // 1576, + "Ni60_p_to_n_Cu60_derived", // 1577, + "Ni60_p_to_He4_Co57_derived", // 1578, + "Ni60_He4_to_n_Zn63_derived", // 1579, + "Ni60_He4_to_p_Cu63_derived", // 1580, + "Ni61_p_to_n_Cu61_derived", // 1581, + "Ni61_He4_to_n_Zn64_derived", // 1582, + "Ni61_He4_to_p_Cu64_derived", // 1583, + "Ni62_p_to_n_Cu62_derived", // 1584, + "Ni62_He4_to_n_Zn65_derived", // 1585, + "Ni62_He4_to_p_Cu65_derived", // 1586, + "Ni63_p_to_n_Cu63_derived", // 1587, + "Ni63_He4_to_n_Zn66_derived", // 1588, + "Ni64_p_to_n_Cu64_derived", // 1589, + "Cu58_He4_to_p_Zn61_derived", // 1590, + "Cu59_p_to_n_Zn59_derived", // 1591, + "Cu59_He4_to_n_Ga62_derived", // 1592, + "Cu59_He4_to_p_Zn62_derived", // 1593, + "Cu60_p_to_n_Zn60_derived", // 1594, + "Cu60_He4_to_n_Ga63_derived", // 1595, + "Cu60_He4_to_p_Zn63_derived", // 1596, + "Cu61_p_to_n_Zn61_derived", // 1597, + "Cu61_He4_to_n_Ga64_derived", // 1598, + "Cu61_He4_to_p_Zn64_derived", // 1599, + "Cu62_p_to_n_Zn62_derived", // 1600, + "Cu62_He4_to_p_Zn65_derived", // 1601, + "Cu63_p_to_n_Zn63_derived", // 1602, + "Cu63_He4_to_p_Zn66_derived", // 1603, + "Cu64_p_to_n_Zn64_derived", // 1604, + "Cu65_p_to_n_Zn65_derived", // 1605, + "Zn59_He4_to_p_Ga62_derived", // 1606, + "Zn60_p_to_He4_Cu57_derived", // 1607, + "Zn60_He4_to_n_Ge63_derived", // 1608, + "Zn60_He4_to_p_Ga63_derived", // 1609, + "Zn61_He4_to_n_Ge64_derived", // 1610, + "Zn61_He4_to_p_Ga64_derived", // 1611, + "Zn62_p_to_n_Ga62_derived", // 1612, + "Zn63_p_to_n_Ga63_derived", // 1613, + "Zn64_p_to_n_Ga64_derived", // 1614, + "Ga63_p_to_n_Ge63_derived", // 1615, + "Ga64_p_to_n_Ge64_derived", // 1616, + "d_p_to_n_p_p_derived", // 1617, + "He4_p_p_to_He3_He3_derived", // 1618, + "He4_He4_n_to_d_Li7_derived", // 1619, + "He4_He4_p_to_n_B8_derived", // 1620, + "He4_He4_p_to_d_Be7_derived", // 1621, + "d_He4_He4_to_p_Be9_derived", // 1622, + "He4_He4_He4_to_p_B11_derived", // 1623, + "He4_He4_p_n_to_He3_Li7_derived", // 1624, + "He4_He4_p_n_to_p_Be9_derived", // 1625, + "He4_He4_p_p_to_He3_Be7_derived" // 1626, }; - template + template AMREX_GPU_DEVICE AMREX_INLINE constexpr amrex::Real get_p_random() { return 0.0_rt; @@ -4654,701 +4654,701 @@ namespace NSE_INDEX constexpr int NumNSERatePairs = 695; inline AMREX_GPU_MANAGED amrex::Array2D rate_pair_data { - N, H1, -1, H2, -1, -1, H2, -1, k_n_p_to_d_reaclib, k_d_to_n_p_reaclib, - H1, H2, -1, He3, -1, -1, H2, He3, k_p_d_to_He3_reaclib, k_He3_to_p_d_reaclib, - H2, H2, -1, He4, -1, -1, H2, H2, k_d_d_to_He4_reaclib, k_He4_to_d_d_reaclib, - He4, H2, -1, Li6, -1, -1, H2, Li6, k_He4_d_to_Li6_reaclib, k_Li6_to_He4_d_reaclib, - N, He3, -1, He4, -1, -1, He3, -1, k_n_He3_to_He4_reaclib, k_He4_to_n_He3_reaclib, - He4, He3, -1, Be7, -1, -1, He3, Be7, k_He4_He3_to_Be7_reaclib, k_Be7_to_He4_He3_reaclib, - N, Li6, -1, Li7, -1, -1, Li6, Li7, k_n_Li6_to_Li7_reaclib, k_Li7_to_n_Li6_reaclib, - H1, Li6, -1, Be7, -1, -1, Li6, Be7, k_p_Li6_to_Be7_reaclib, k_Be7_to_p_Li6_reaclib, - He4, Li6, -1, B10, -1, -1, Li6, B10, k_He4_Li6_to_B10_reaclib, k_B10_to_He4_Li6_reaclib, - He4, Li7, -1, B11, -1, -1, Li7, B11, k_He4_Li7_to_B11_reaclib, k_B11_to_He4_Li7_reaclib, - H1, Be7, -1, B8, -1, -1, Be7, B8, k_p_Be7_to_B8_reaclib, k_B8_to_p_Be7_reaclib, - H1, Be9, -1, B10, -1, -1, Be9, B10, k_p_Be9_to_B10_reaclib, k_B10_to_p_Be9_reaclib, - N, B10, -1, B11, -1, -1, B10, B11, k_n_B10_to_B11_reaclib, k_B11_to_n_B10_reaclib, - H1, B11, -1, C12, -1, -1, B11, C12, k_p_B11_to_C12_reaclib, k_C12_to_p_B11_reaclib, - N, C12, -1, C13, -1, -1, C12, C13, k_n_C12_to_C13_reaclib, k_C13_to_n_C12_reaclib, - H1, C12, -1, N13, -1, -1, C12, N13, k_p_C12_to_N13_reaclib, k_N13_to_p_C12_reaclib, - He4, C12, -1, O16, -1, -1, C12, O16, k_He4_C12_to_O16_reaclib, k_O16_to_He4_C12_reaclib, - N, C13, -1, C14, -1, -1, C13, C14, k_n_C13_to_C14_reaclib, k_C14_to_n_C13_reaclib, - H1, C13, -1, N14, -1, -1, C13, N14, k_p_C13_to_N14_reaclib, k_N14_to_p_C13_reaclib, - H1, C14, -1, N15, -1, -1, C14, N15, k_p_C14_to_N15_reaclib, k_N15_to_p_C14_reaclib, - He4, C14, -1, O18, -1, -1, C14, O18, k_He4_C14_to_O18_reaclib, k_O18_to_He4_C14_reaclib, - N, N13, -1, N14, -1, -1, N13, N14, k_n_N13_to_N14_reaclib, k_N14_to_n_N13_reaclib, - H1, N13, -1, O14, -1, -1, N13, O14, k_p_N13_to_O14_reaclib, k_O14_to_p_N13_reaclib, - N, N14, -1, N15, -1, -1, N14, N15, k_n_N14_to_N15_reaclib, k_N15_to_n_N14_reaclib, - H1, N14, -1, O15, -1, -1, N14, O15, k_p_N14_to_O15_reaclib, k_O15_to_p_N14_reaclib, - He4, N14, -1, F18, -1, -1, N14, F18, k_He4_N14_to_F18_reaclib, k_F18_to_He4_N14_reaclib, - H1, N15, -1, O16, -1, -1, N15, O16, k_p_N15_to_O16_reaclib, k_O16_to_p_N15_reaclib, - He4, N15, -1, F19, -1, -1, N15, F19, k_He4_N15_to_F19_reaclib, k_F19_to_He4_N15_reaclib, - N, O14, -1, O15, -1, -1, O14, O15, k_n_O14_to_O15_reaclib, k_O15_to_n_O14_reaclib, - He4, O14, -1, Ne18, -1, -1, O14, Ne18, k_He4_O14_to_Ne18_reaclib, k_Ne18_to_He4_O14_reaclib, - N, O15, -1, O16, -1, -1, O15, O16, k_n_O15_to_O16_reaclib, k_O16_to_n_O15_reaclib, - He4, O15, -1, Ne19, -1, -1, O15, Ne19, k_He4_O15_to_Ne19_reaclib, k_Ne19_to_He4_O15_reaclib, - N, O16, -1, O17, -1, -1, O16, O17, k_n_O16_to_O17_reaclib, k_O17_to_n_O16_reaclib, - H1, O16, -1, F17, -1, -1, O16, F17, k_p_O16_to_F17_reaclib, k_F17_to_p_O16_reaclib, - He4, O16, -1, Ne20, -1, -1, O16, Ne20, k_He4_O16_to_Ne20_reaclib, k_Ne20_to_He4_O16_reaclib, - N, O17, -1, O18, -1, -1, O17, O18, k_n_O17_to_O18_reaclib, k_O18_to_n_O17_reaclib, - H1, O17, -1, F18, -1, -1, O17, F18, k_p_O17_to_F18_reaclib, k_F18_to_p_O17_reaclib, - He4, O17, -1, Ne21, -1, -1, O17, Ne21, k_He4_O17_to_Ne21_reaclib, k_Ne21_to_He4_O17_reaclib, - H1, O18, -1, F19, -1, -1, O18, F19, k_p_O18_to_F19_reaclib, k_F19_to_p_O18_reaclib, - He4, O18, -1, Ne22, -1, -1, O18, Ne22, k_He4_O18_to_Ne22_reaclib, k_Ne22_to_He4_O18_reaclib, - N, F17, -1, F18, -1, -1, F17, F18, k_n_F17_to_F18_reaclib, k_F18_to_n_F17_reaclib, - H1, F17, -1, Ne18, -1, -1, F17, Ne18, k_p_F17_to_Ne18_reaclib, k_Ne18_to_p_F17_reaclib, - He4, F17, -1, Na21, -1, -1, F17, Na21, k_He4_F17_to_Na21_reaclib, k_Na21_to_He4_F17_reaclib, - N, F18, -1, F19, -1, -1, F18, F19, k_n_F18_to_F19_reaclib, k_F19_to_n_F18_reaclib, - H1, F18, -1, Ne19, -1, -1, F18, Ne19, k_p_F18_to_Ne19_reaclib, k_Ne19_to_p_F18_reaclib, - He4, F18, -1, Na22, -1, -1, F18, Na22, k_He4_F18_to_Na22_reaclib, k_Na22_to_He4_F18_reaclib, - H1, F19, -1, Ne20, -1, -1, F19, Ne20, k_p_F19_to_Ne20_reaclib, k_Ne20_to_p_F19_reaclib, - He4, F19, -1, Na23, -1, -1, F19, Na23, k_He4_F19_to_Na23_reaclib, k_Na23_to_He4_F19_reaclib, - N, Ne18, -1, Ne19, -1, -1, Ne18, Ne19, k_n_Ne18_to_Ne19_reaclib, k_Ne19_to_n_Ne18_reaclib, - N, Ne19, -1, Ne20, -1, -1, Ne19, Ne20, k_n_Ne19_to_Ne20_reaclib, k_Ne20_to_n_Ne19_reaclib, - He4, Ne19, -1, Mg23, -1, -1, Ne19, Mg23, k_He4_Ne19_to_Mg23_reaclib, k_Mg23_to_He4_Ne19_reaclib, - N, Ne20, -1, Ne21, -1, -1, Ne20, Ne21, k_n_Ne20_to_Ne21_reaclib, k_Ne21_to_n_Ne20_reaclib, - H1, Ne20, -1, Na21, -1, -1, Ne20, Na21, k_p_Ne20_to_Na21_reaclib, k_Na21_to_p_Ne20_reaclib, - He4, Ne20, -1, Mg24, -1, -1, Ne20, Mg24, k_He4_Ne20_to_Mg24_reaclib, k_Mg24_to_He4_Ne20_reaclib, - N, Ne21, -1, Ne22, -1, -1, Ne21, Ne22, k_n_Ne21_to_Ne22_reaclib, k_Ne22_to_n_Ne21_reaclib, - H1, Ne21, -1, Na22, -1, -1, Ne21, Na22, k_p_Ne21_to_Na22_reaclib, k_Na22_to_p_Ne21_reaclib, - He4, Ne21, -1, Mg25, -1, -1, Ne21, Mg25, k_He4_Ne21_to_Mg25_reaclib, k_Mg25_to_He4_Ne21_reaclib, - H1, Ne22, -1, Na23, -1, -1, Ne22, Na23, k_p_Ne22_to_Na23_reaclib, k_Na23_to_p_Ne22_reaclib, - He4, Ne22, -1, Mg26, -1, -1, Ne22, Mg26, k_He4_Ne22_to_Mg26_reaclib, k_Mg26_to_He4_Ne22_reaclib, - N, Na21, -1, Na22, -1, -1, Na21, Na22, k_n_Na21_to_Na22_reaclib, k_Na22_to_n_Na21_reaclib, - He4, Na21, -1, Al25, -1, -1, Na21, Al25, k_He4_Na21_to_Al25_reaclib, k_Al25_to_He4_Na21_reaclib, - N, Na22, -1, Na23, -1, -1, Na22, Na23, k_n_Na22_to_Na23_reaclib, k_Na23_to_n_Na22_reaclib, - H1, Na22, -1, Mg23, -1, -1, Na22, Mg23, k_p_Na22_to_Mg23_reaclib, k_Mg23_to_p_Na22_reaclib, - He4, Na22, -1, Al26, -1, -1, Na22, Al26, k_He4_Na22_to_Al26_reaclib, k_Al26_to_He4_Na22_reaclib, - H1, Na23, -1, Mg24, -1, -1, Na23, Mg24, k_p_Na23_to_Mg24_reaclib, k_Mg24_to_p_Na23_reaclib, - He4, Na23, -1, Al27, -1, -1, Na23, Al27, k_He4_Na23_to_Al27_reaclib, k_Al27_to_He4_Na23_reaclib, - N, Mg23, -1, Mg24, -1, -1, Mg23, Mg24, k_n_Mg23_to_Mg24_reaclib, k_Mg24_to_n_Mg23_reaclib, - N, Mg24, -1, Mg25, -1, -1, Mg24, Mg25, k_n_Mg24_to_Mg25_reaclib, k_Mg25_to_n_Mg24_reaclib, - H1, Mg24, -1, Al25, -1, -1, Mg24, Al25, k_p_Mg24_to_Al25_reaclib, k_Al25_to_p_Mg24_reaclib, - He4, Mg24, -1, Si28, -1, -1, Mg24, Si28, k_He4_Mg24_to_Si28_reaclib, k_Si28_to_He4_Mg24_reaclib, - N, Mg25, -1, Mg26, -1, -1, Mg25, Mg26, k_n_Mg25_to_Mg26_reaclib, k_Mg26_to_n_Mg25_reaclib, - H1, Mg25, -1, Al26, -1, -1, Mg25, Al26, k_p_Mg25_to_Al26_reaclib, k_Al26_to_p_Mg25_reaclib, - He4, Mg25, -1, Si29, -1, -1, Mg25, Si29, k_He4_Mg25_to_Si29_reaclib, k_Si29_to_He4_Mg25_reaclib, - H1, Mg26, -1, Al27, -1, -1, Mg26, Al27, k_p_Mg26_to_Al27_reaclib, k_Al27_to_p_Mg26_reaclib, - He4, Mg26, -1, Si30, -1, -1, Mg26, Si30, k_He4_Mg26_to_Si30_reaclib, k_Si30_to_He4_Mg26_reaclib, - N, Al25, -1, Al26, -1, -1, Al25, Al26, k_n_Al25_to_Al26_reaclib, k_Al26_to_n_Al25_reaclib, - He4, Al25, -1, P29, -1, -1, Al25, P29, k_He4_Al25_to_P29_reaclib, k_P29_to_He4_Al25_reaclib, - N, Al26, -1, Al27, -1, -1, Al26, Al27, k_n_Al26_to_Al27_reaclib, k_Al27_to_n_Al26_reaclib, - He4, Al26, -1, P30, -1, -1, Al26, P30, k_He4_Al26_to_P30_reaclib, k_P30_to_He4_Al26_reaclib, - H1, Al27, -1, Si28, -1, -1, Al27, Si28, k_p_Al27_to_Si28_reaclib, k_Si28_to_p_Al27_reaclib, - He4, Al27, -1, P31, -1, -1, Al27, P31, k_He4_Al27_to_P31_reaclib, k_P31_to_He4_Al27_reaclib, - N, Si28, -1, Si29, -1, -1, Si28, Si29, k_n_Si28_to_Si29_reaclib, k_Si29_to_n_Si28_reaclib, - H1, Si28, -1, P29, -1, -1, Si28, P29, k_p_Si28_to_P29_reaclib, k_P29_to_p_Si28_reaclib, - He4, Si28, -1, S32, -1, -1, Si28, S32, k_He4_Si28_to_S32_reaclib, k_S32_to_He4_Si28_reaclib, - N, Si29, -1, Si30, -1, -1, Si29, Si30, k_n_Si29_to_Si30_reaclib, k_Si30_to_n_Si29_reaclib, - H1, Si29, -1, P30, -1, -1, Si29, P30, k_p_Si29_to_P30_reaclib, k_P30_to_p_Si29_reaclib, - He4, Si29, -1, S33, -1, -1, Si29, S33, k_He4_Si29_to_S33_reaclib, k_S33_to_He4_Si29_reaclib, - N, Si30, -1, Si31, -1, -1, Si30, Si31, k_n_Si30_to_Si31_reaclib, k_Si31_to_n_Si30_reaclib, - H1, Si30, -1, P31, -1, -1, Si30, P31, k_p_Si30_to_P31_reaclib, k_P31_to_p_Si30_reaclib, - He4, Si30, -1, S34, -1, -1, Si30, S34, k_He4_Si30_to_S34_reaclib, k_S34_to_He4_Si30_reaclib, - N, Si31, -1, Si32, -1, -1, Si31, Si32, k_n_Si31_to_Si32_reaclib, k_Si32_to_n_Si31_reaclib, - H1, Si31, -1, P32, -1, -1, Si31, P32, k_p_Si31_to_P32_reaclib, k_P32_to_p_Si31_reaclib, - He4, Si31, -1, S35, -1, -1, Si31, S35, k_He4_Si31_to_S35_reaclib, k_S35_to_He4_Si31_reaclib, - H1, Si32, -1, P33, -1, -1, Si32, P33, k_p_Si32_to_P33_reaclib, k_P33_to_p_Si32_reaclib, - He4, Si32, -1, S36, -1, -1, Si32, S36, k_He4_Si32_to_S36_reaclib, k_S36_to_He4_Si32_reaclib, - N, P29, -1, P30, -1, -1, P29, P30, k_n_P29_to_P30_reaclib, k_P30_to_n_P29_reaclib, - He4, P29, -1, Cl33, -1, -1, P29, Cl33, k_He4_P29_to_Cl33_reaclib, k_Cl33_to_He4_P29_reaclib, - N, P30, -1, P31, -1, -1, P30, P31, k_n_P30_to_P31_reaclib, k_P31_to_n_P30_reaclib, - He4, P30, -1, Cl34, -1, -1, P30, Cl34, k_He4_P30_to_Cl34_reaclib, k_Cl34_to_He4_P30_reaclib, - N, P31, -1, P32, -1, -1, P31, P32, k_n_P31_to_P32_reaclib, k_P32_to_n_P31_reaclib, - H1, P31, -1, S32, -1, -1, P31, S32, k_p_P31_to_S32_reaclib, k_S32_to_p_P31_reaclib, - He4, P31, -1, Cl35, -1, -1, P31, Cl35, k_He4_P31_to_Cl35_reaclib, k_Cl35_to_He4_P31_reaclib, - N, P32, -1, P33, -1, -1, P32, P33, k_n_P32_to_P33_reaclib, k_P33_to_n_P32_reaclib, - H1, P32, -1, S33, -1, -1, P32, S33, k_p_P32_to_S33_reaclib, k_S33_to_p_P32_reaclib, - He4, P32, -1, Cl36, -1, -1, P32, Cl36, k_He4_P32_to_Cl36_reaclib, k_Cl36_to_He4_P32_reaclib, - H1, P33, -1, S34, -1, -1, P33, S34, k_p_P33_to_S34_reaclib, k_S34_to_p_P33_reaclib, - He4, P33, -1, Cl37, -1, -1, P33, Cl37, k_He4_P33_to_Cl37_reaclib, k_Cl37_to_He4_P33_reaclib, - N, S32, -1, S33, -1, -1, S32, S33, k_n_S32_to_S33_reaclib, k_S33_to_n_S32_reaclib, - H1, S32, -1, Cl33, -1, -1, S32, Cl33, k_p_S32_to_Cl33_reaclib, k_Cl33_to_p_S32_reaclib, - He4, S32, -1, Ar36, -1, -1, S32, Ar36, k_He4_S32_to_Ar36_reaclib, k_Ar36_to_He4_S32_reaclib, - N, S33, -1, S34, -1, -1, S33, S34, k_n_S33_to_S34_reaclib, k_S34_to_n_S33_reaclib, - H1, S33, -1, Cl34, -1, -1, S33, Cl34, k_p_S33_to_Cl34_reaclib, k_Cl34_to_p_S33_reaclib, - He4, S33, -1, Ar37, -1, -1, S33, Ar37, k_He4_S33_to_Ar37_reaclib, k_Ar37_to_He4_S33_reaclib, - N, S34, -1, S35, -1, -1, S34, S35, k_n_S34_to_S35_reaclib, k_S35_to_n_S34_reaclib, - H1, S34, -1, Cl35, -1, -1, S34, Cl35, k_p_S34_to_Cl35_reaclib, k_Cl35_to_p_S34_reaclib, - He4, S34, -1, Ar38, -1, -1, S34, Ar38, k_He4_S34_to_Ar38_reaclib, k_Ar38_to_He4_S34_reaclib, - N, S35, -1, S36, -1, -1, S35, S36, k_n_S35_to_S36_reaclib, k_S36_to_n_S35_reaclib, - H1, S35, -1, Cl36, -1, -1, S35, Cl36, k_p_S35_to_Cl36_reaclib, k_Cl36_to_p_S35_reaclib, - He4, S35, -1, Ar39, -1, -1, S35, Ar39, k_He4_S35_to_Ar39_reaclib, k_Ar39_to_He4_S35_reaclib, - H1, S36, -1, Cl37, -1, -1, S36, Cl37, k_p_S36_to_Cl37_reaclib, k_Cl37_to_p_S36_reaclib, - He4, S36, -1, Ar40, -1, -1, S36, Ar40, k_He4_S36_to_Ar40_reaclib, k_Ar40_to_He4_S36_reaclib, - N, Cl33, -1, Cl34, -1, -1, Cl33, Cl34, k_n_Cl33_to_Cl34_reaclib, k_Cl34_to_n_Cl33_reaclib, - He4, Cl33, -1, K37, -1, -1, Cl33, K37, k_He4_Cl33_to_K37_reaclib, k_K37_to_He4_Cl33_reaclib, - N, Cl34, -1, Cl35, -1, -1, Cl34, Cl35, k_n_Cl34_to_Cl35_reaclib, k_Cl35_to_n_Cl34_reaclib, - He4, Cl34, -1, K38, -1, -1, Cl34, K38, k_He4_Cl34_to_K38_reaclib, k_K38_to_He4_Cl34_reaclib, - N, Cl35, -1, Cl36, -1, -1, Cl35, Cl36, k_n_Cl35_to_Cl36_reaclib, k_Cl36_to_n_Cl35_reaclib, - H1, Cl35, -1, Ar36, -1, -1, Cl35, Ar36, k_p_Cl35_to_Ar36_reaclib, k_Ar36_to_p_Cl35_reaclib, - He4, Cl35, -1, K39, -1, -1, Cl35, K39, k_He4_Cl35_to_K39_reaclib, k_K39_to_He4_Cl35_reaclib, - N, Cl36, -1, Cl37, -1, -1, Cl36, Cl37, k_n_Cl36_to_Cl37_reaclib, k_Cl37_to_n_Cl36_reaclib, - H1, Cl36, -1, Ar37, -1, -1, Cl36, Ar37, k_p_Cl36_to_Ar37_reaclib, k_Ar37_to_p_Cl36_reaclib, - He4, Cl36, -1, K40, -1, -1, Cl36, K40, k_He4_Cl36_to_K40_reaclib, k_K40_to_He4_Cl36_reaclib, - H1, Cl37, -1, Ar38, -1, -1, Cl37, Ar38, k_p_Cl37_to_Ar38_reaclib, k_Ar38_to_p_Cl37_reaclib, - He4, Cl37, -1, K41, -1, -1, Cl37, K41, k_He4_Cl37_to_K41_reaclib, k_K41_to_He4_Cl37_reaclib, - N, Ar36, -1, Ar37, -1, -1, Ar36, Ar37, k_n_Ar36_to_Ar37_reaclib, k_Ar37_to_n_Ar36_reaclib, - H1, Ar36, -1, K37, -1, -1, Ar36, K37, k_p_Ar36_to_K37_reaclib, k_K37_to_p_Ar36_reaclib, - He4, Ar36, -1, Ca40, -1, -1, Ar36, Ca40, k_He4_Ar36_to_Ca40_reaclib, k_Ca40_to_He4_Ar36_reaclib, - N, Ar37, -1, Ar38, -1, -1, Ar37, Ar38, k_n_Ar37_to_Ar38_reaclib, k_Ar38_to_n_Ar37_reaclib, - H1, Ar37, -1, K38, -1, -1, Ar37, K38, k_p_Ar37_to_K38_reaclib, k_K38_to_p_Ar37_reaclib, - He4, Ar37, -1, Ca41, -1, -1, Ar37, Ca41, k_He4_Ar37_to_Ca41_reaclib, k_Ca41_to_He4_Ar37_reaclib, - N, Ar38, -1, Ar39, -1, -1, Ar38, Ar39, k_n_Ar38_to_Ar39_reaclib, k_Ar39_to_n_Ar38_reaclib, - H1, Ar38, -1, K39, -1, -1, Ar38, K39, k_p_Ar38_to_K39_reaclib, k_K39_to_p_Ar38_reaclib, - He4, Ar38, -1, Ca42, -1, -1, Ar38, Ca42, k_He4_Ar38_to_Ca42_reaclib, k_Ca42_to_He4_Ar38_reaclib, - N, Ar39, -1, Ar40, -1, -1, Ar39, Ar40, k_n_Ar39_to_Ar40_reaclib, k_Ar40_to_n_Ar39_reaclib, - H1, Ar39, -1, K40, -1, -1, Ar39, K40, k_p_Ar39_to_K40_reaclib, k_K40_to_p_Ar39_reaclib, - He4, Ar39, -1, Ca43, -1, -1, Ar39, Ca43, k_He4_Ar39_to_Ca43_reaclib, k_Ca43_to_He4_Ar39_reaclib, - H1, Ar40, -1, K41, -1, -1, Ar40, K41, k_p_Ar40_to_K41_reaclib, k_K41_to_p_Ar40_reaclib, - He4, Ar40, -1, Ca44, -1, -1, Ar40, Ca44, k_He4_Ar40_to_Ca44_reaclib, k_Ca44_to_He4_Ar40_reaclib, - N, K37, -1, K38, -1, -1, K37, K38, k_n_K37_to_K38_reaclib, k_K38_to_n_K37_reaclib, - N, K38, -1, K39, -1, -1, K38, K39, k_n_K38_to_K39_reaclib, k_K39_to_n_K38_reaclib, - N, K39, -1, K40, -1, -1, K39, K40, k_n_K39_to_K40_reaclib, k_K40_to_n_K39_reaclib, - H1, K39, -1, Ca40, -1, -1, K39, Ca40, k_p_K39_to_Ca40_reaclib, k_Ca40_to_p_K39_reaclib, - He4, K39, -1, Sc43, -1, -1, K39, Sc43, k_He4_K39_to_Sc43_reaclib, k_Sc43_to_He4_K39_reaclib, - N, K40, -1, K41, -1, -1, K40, K41, k_n_K40_to_K41_reaclib, k_K41_to_n_K40_reaclib, - H1, K40, -1, Ca41, -1, -1, K40, Ca41, k_p_K40_to_Ca41_reaclib, k_Ca41_to_p_K40_reaclib, - He4, K40, -1, Sc44, -1, -1, K40, Sc44, k_He4_K40_to_Sc44_reaclib, k_Sc44_to_He4_K40_reaclib, - H1, K41, -1, Ca42, -1, -1, K41, Ca42, k_p_K41_to_Ca42_reaclib, k_Ca42_to_p_K41_reaclib, - He4, K41, -1, Sc45, -1, -1, K41, Sc45, k_He4_K41_to_Sc45_reaclib, k_Sc45_to_He4_K41_reaclib, - N, Ca40, -1, Ca41, -1, -1, Ca40, Ca41, k_n_Ca40_to_Ca41_reaclib, k_Ca41_to_n_Ca40_reaclib, - He4, Ca40, -1, Ti44, -1, -1, Ca40, Ti44, k_He4_Ca40_to_Ti44_reaclib, k_Ti44_to_He4_Ca40_reaclib, - N, Ca41, -1, Ca42, -1, -1, Ca41, Ca42, k_n_Ca41_to_Ca42_reaclib, k_Ca42_to_n_Ca41_reaclib, - He4, Ca41, -1, Ti45, -1, -1, Ca41, Ti45, k_He4_Ca41_to_Ti45_reaclib, k_Ti45_to_He4_Ca41_reaclib, - N, Ca42, -1, Ca43, -1, -1, Ca42, Ca43, k_n_Ca42_to_Ca43_reaclib, k_Ca43_to_n_Ca42_reaclib, - H1, Ca42, -1, Sc43, -1, -1, Ca42, Sc43, k_p_Ca42_to_Sc43_reaclib, k_Sc43_to_p_Ca42_reaclib, - He4, Ca42, -1, Ti46, -1, -1, Ca42, Ti46, k_He4_Ca42_to_Ti46_reaclib, k_Ti46_to_He4_Ca42_reaclib, - N, Ca43, -1, Ca44, -1, -1, Ca43, Ca44, k_n_Ca43_to_Ca44_reaclib, k_Ca44_to_n_Ca43_reaclib, - H1, Ca43, -1, Sc44, -1, -1, Ca43, Sc44, k_p_Ca43_to_Sc44_reaclib, k_Sc44_to_p_Ca43_reaclib, - He4, Ca43, -1, Ti47, -1, -1, Ca43, Ti47, k_He4_Ca43_to_Ti47_reaclib, k_Ti47_to_He4_Ca43_reaclib, - N, Ca44, -1, Ca45, -1, -1, Ca44, Ca45, k_n_Ca44_to_Ca45_reaclib, k_Ca45_to_n_Ca44_reaclib, - H1, Ca44, -1, Sc45, -1, -1, Ca44, Sc45, k_p_Ca44_to_Sc45_reaclib, k_Sc45_to_p_Ca44_reaclib, - He4, Ca44, -1, Ti48, -1, -1, Ca44, Ti48, k_He4_Ca44_to_Ti48_reaclib, k_Ti48_to_He4_Ca44_reaclib, - N, Ca45, -1, Ca46, -1, -1, Ca45, Ca46, k_n_Ca45_to_Ca46_reaclib, k_Ca46_to_n_Ca45_reaclib, - H1, Ca45, -1, Sc46, -1, -1, Ca45, Sc46, k_p_Ca45_to_Sc46_reaclib, k_Sc46_to_p_Ca45_reaclib, - He4, Ca45, -1, Ti49, -1, -1, Ca45, Ti49, k_He4_Ca45_to_Ti49_reaclib, k_Ti49_to_He4_Ca45_reaclib, - N, Ca46, -1, Ca47, -1, -1, Ca46, Ca47, k_n_Ca46_to_Ca47_reaclib, k_Ca47_to_n_Ca46_reaclib, - H1, Ca46, -1, Sc47, -1, -1, Ca46, Sc47, k_p_Ca46_to_Sc47_reaclib, k_Sc47_to_p_Ca46_reaclib, - He4, Ca46, -1, Ti50, -1, -1, Ca46, Ti50, k_He4_Ca46_to_Ti50_reaclib, k_Ti50_to_He4_Ca46_reaclib, - N, Ca47, -1, Ca48, -1, -1, Ca47, Ca48, k_n_Ca47_to_Ca48_reaclib, k_Ca48_to_n_Ca47_reaclib, - H1, Ca47, -1, Sc48, -1, -1, Ca47, Sc48, k_p_Ca47_to_Sc48_reaclib, k_Sc48_to_p_Ca47_reaclib, - He4, Ca47, -1, Ti51, -1, -1, Ca47, Ti51, k_He4_Ca47_to_Ti51_reaclib, k_Ti51_to_He4_Ca47_reaclib, - H1, Ca48, -1, Sc49, -1, -1, Ca48, Sc49, k_p_Ca48_to_Sc49_reaclib, k_Sc49_to_p_Ca48_reaclib, - N, Sc43, -1, Sc44, -1, -1, Sc43, Sc44, k_n_Sc43_to_Sc44_reaclib, k_Sc44_to_n_Sc43_reaclib, - H1, Sc43, -1, Ti44, -1, -1, Sc43, Ti44, k_p_Sc43_to_Ti44_reaclib, k_Ti44_to_p_Sc43_reaclib, - He4, Sc43, -1, V47, -1, -1, Sc43, V47, k_He4_Sc43_to_V47_reaclib, k_V47_to_He4_Sc43_reaclib, - N, Sc44, -1, Sc45, -1, -1, Sc44, Sc45, k_n_Sc44_to_Sc45_reaclib, k_Sc45_to_n_Sc44_reaclib, - H1, Sc44, -1, Ti45, -1, -1, Sc44, Ti45, k_p_Sc44_to_Ti45_reaclib, k_Ti45_to_p_Sc44_reaclib, - He4, Sc44, -1, V48, -1, -1, Sc44, V48, k_He4_Sc44_to_V48_reaclib, k_V48_to_He4_Sc44_reaclib, - N, Sc45, -1, Sc46, -1, -1, Sc45, Sc46, k_n_Sc45_to_Sc46_reaclib, k_Sc46_to_n_Sc45_reaclib, - H1, Sc45, -1, Ti46, -1, -1, Sc45, Ti46, k_p_Sc45_to_Ti46_reaclib, k_Ti46_to_p_Sc45_reaclib, - He4, Sc45, -1, V49, -1, -1, Sc45, V49, k_He4_Sc45_to_V49_reaclib, k_V49_to_He4_Sc45_reaclib, - N, Sc46, -1, Sc47, -1, -1, Sc46, Sc47, k_n_Sc46_to_Sc47_reaclib, k_Sc47_to_n_Sc46_reaclib, - H1, Sc46, -1, Ti47, -1, -1, Sc46, Ti47, k_p_Sc46_to_Ti47_reaclib, k_Ti47_to_p_Sc46_reaclib, - He4, Sc46, -1, V50, -1, -1, Sc46, V50, k_He4_Sc46_to_V50_reaclib, k_V50_to_He4_Sc46_reaclib, - N, Sc47, -1, Sc48, -1, -1, Sc47, Sc48, k_n_Sc47_to_Sc48_reaclib, k_Sc48_to_n_Sc47_reaclib, - H1, Sc47, -1, Ti48, -1, -1, Sc47, Ti48, k_p_Sc47_to_Ti48_reaclib, k_Ti48_to_p_Sc47_reaclib, - He4, Sc47, -1, V51, -1, -1, Sc47, V51, k_He4_Sc47_to_V51_reaclib, k_V51_to_He4_Sc47_reaclib, - N, Sc48, -1, Sc49, -1, -1, Sc48, Sc49, k_n_Sc48_to_Sc49_reaclib, k_Sc49_to_n_Sc48_reaclib, - H1, Sc48, -1, Ti49, -1, -1, Sc48, Ti49, k_p_Sc48_to_Ti49_reaclib, k_Ti49_to_p_Sc48_reaclib, - He4, Sc48, -1, V52, -1, -1, Sc48, V52, k_He4_Sc48_to_V52_reaclib, k_V52_to_He4_Sc48_reaclib, - H1, Sc49, -1, Ti50, -1, -1, Sc49, Ti50, k_p_Sc49_to_Ti50_reaclib, k_Ti50_to_p_Sc49_reaclib, - N, Ti44, -1, Ti45, -1, -1, Ti44, Ti45, k_n_Ti44_to_Ti45_reaclib, k_Ti45_to_n_Ti44_reaclib, - He4, Ti44, -1, Cr48, -1, -1, Ti44, Cr48, k_He4_Ti44_to_Cr48_reaclib, k_Cr48_to_He4_Ti44_reaclib, - N, Ti45, -1, Ti46, -1, -1, Ti45, Ti46, k_n_Ti45_to_Ti46_reaclib, k_Ti46_to_n_Ti45_reaclib, - H1, Ti45, -1, V46, -1, -1, Ti45, V46, k_p_Ti45_to_V46_reaclib, k_V46_to_p_Ti45_reaclib, - He4, Ti45, -1, Cr49, -1, -1, Ti45, Cr49, k_He4_Ti45_to_Cr49_reaclib, k_Cr49_to_He4_Ti45_reaclib, - N, Ti46, -1, Ti47, -1, -1, Ti46, Ti47, k_n_Ti46_to_Ti47_reaclib, k_Ti47_to_n_Ti46_reaclib, - H1, Ti46, -1, V47, -1, -1, Ti46, V47, k_p_Ti46_to_V47_reaclib, k_V47_to_p_Ti46_reaclib, - He4, Ti46, -1, Cr50, -1, -1, Ti46, Cr50, k_He4_Ti46_to_Cr50_reaclib, k_Cr50_to_He4_Ti46_reaclib, - N, Ti47, -1, Ti48, -1, -1, Ti47, Ti48, k_n_Ti47_to_Ti48_reaclib, k_Ti48_to_n_Ti47_reaclib, - H1, Ti47, -1, V48, -1, -1, Ti47, V48, k_p_Ti47_to_V48_reaclib, k_V48_to_p_Ti47_reaclib, - He4, Ti47, -1, Cr51, -1, -1, Ti47, Cr51, k_He4_Ti47_to_Cr51_reaclib, k_Cr51_to_He4_Ti47_reaclib, - N, Ti48, -1, Ti49, -1, -1, Ti48, Ti49, k_n_Ti48_to_Ti49_reaclib, k_Ti49_to_n_Ti48_reaclib, - H1, Ti48, -1, V49, -1, -1, Ti48, V49, k_p_Ti48_to_V49_reaclib, k_V49_to_p_Ti48_reaclib, - He4, Ti48, -1, Cr52, -1, -1, Ti48, Cr52, k_He4_Ti48_to_Cr52_reaclib, k_Cr52_to_He4_Ti48_reaclib, - N, Ti49, -1, Ti50, -1, -1, Ti49, Ti50, k_n_Ti49_to_Ti50_reaclib, k_Ti50_to_n_Ti49_reaclib, - H1, Ti49, -1, V50, -1, -1, Ti49, V50, k_p_Ti49_to_V50_reaclib, k_V50_to_p_Ti49_reaclib, - He4, Ti49, -1, Cr53, -1, -1, Ti49, Cr53, k_He4_Ti49_to_Cr53_reaclib, k_Cr53_to_He4_Ti49_reaclib, - N, Ti50, -1, Ti51, -1, -1, Ti50, Ti51, k_n_Ti50_to_Ti51_reaclib, k_Ti51_to_n_Ti50_reaclib, - H1, Ti50, -1, V51, -1, -1, Ti50, V51, k_p_Ti50_to_V51_reaclib, k_V51_to_p_Ti50_reaclib, - He4, Ti50, -1, Cr54, -1, -1, Ti50, Cr54, k_He4_Ti50_to_Cr54_reaclib, k_Cr54_to_He4_Ti50_reaclib, - H1, Ti51, -1, V52, -1, -1, Ti51, V52, k_p_Ti51_to_V52_reaclib, k_V52_to_p_Ti51_reaclib, - N, V46, -1, V47, -1, -1, V46, V47, k_n_V46_to_V47_reaclib, k_V47_to_n_V46_reaclib, - He4, V46, -1, Mn50, -1, -1, V46, Mn50, k_He4_V46_to_Mn50_reaclib, k_Mn50_to_He4_V46_reaclib, - N, V47, -1, V48, -1, -1, V47, V48, k_n_V47_to_V48_reaclib, k_V48_to_n_V47_reaclib, - H1, V47, -1, Cr48, -1, -1, V47, Cr48, k_p_V47_to_Cr48_reaclib, k_Cr48_to_p_V47_reaclib, - He4, V47, -1, Mn51, -1, -1, V47, Mn51, k_He4_V47_to_Mn51_reaclib, k_Mn51_to_He4_V47_reaclib, - N, V48, -1, V49, -1, -1, V48, V49, k_n_V48_to_V49_reaclib, k_V49_to_n_V48_reaclib, - H1, V48, -1, Cr49, -1, -1, V48, Cr49, k_p_V48_to_Cr49_reaclib, k_Cr49_to_p_V48_reaclib, - He4, V48, -1, Mn52, -1, -1, V48, Mn52, k_He4_V48_to_Mn52_reaclib, k_Mn52_to_He4_V48_reaclib, - N, V49, -1, V50, -1, -1, V49, V50, k_n_V49_to_V50_reaclib, k_V50_to_n_V49_reaclib, - H1, V49, -1, Cr50, -1, -1, V49, Cr50, k_p_V49_to_Cr50_reaclib, k_Cr50_to_p_V49_reaclib, - He4, V49, -1, Mn53, -1, -1, V49, Mn53, k_He4_V49_to_Mn53_reaclib, k_Mn53_to_He4_V49_reaclib, - N, V50, -1, V51, -1, -1, V50, V51, k_n_V50_to_V51_reaclib, k_V51_to_n_V50_reaclib, - H1, V50, -1, Cr51, -1, -1, V50, Cr51, k_p_V50_to_Cr51_reaclib, k_Cr51_to_p_V50_reaclib, - He4, V50, -1, Mn54, -1, -1, V50, Mn54, k_He4_V50_to_Mn54_reaclib, k_Mn54_to_He4_V50_reaclib, - N, V51, -1, V52, -1, -1, V51, V52, k_n_V51_to_V52_reaclib, k_V52_to_n_V51_reaclib, - H1, V51, -1, Cr52, -1, -1, V51, Cr52, k_p_V51_to_Cr52_reaclib, k_Cr52_to_p_V51_reaclib, - He4, V51, -1, Mn55, -1, -1, V51, Mn55, k_He4_V51_to_Mn55_reaclib, k_Mn55_to_He4_V51_reaclib, - H1, V52, -1, Cr53, -1, -1, V52, Cr53, k_p_V52_to_Cr53_reaclib, k_Cr53_to_p_V52_reaclib, - N, Cr48, -1, Cr49, -1, -1, Cr48, Cr49, k_n_Cr48_to_Cr49_reaclib, k_Cr49_to_n_Cr48_reaclib, - He4, Cr48, -1, Fe52, -1, -1, Cr48, Fe52, k_He4_Cr48_to_Fe52_reaclib, k_Fe52_to_He4_Cr48_reaclib, - N, Cr49, -1, Cr50, -1, -1, Cr49, Cr50, k_n_Cr49_to_Cr50_reaclib, k_Cr50_to_n_Cr49_reaclib, - H1, Cr49, -1, Mn50, -1, -1, Cr49, Mn50, k_p_Cr49_to_Mn50_reaclib, k_Mn50_to_p_Cr49_reaclib, - He4, Cr49, -1, Fe53, -1, -1, Cr49, Fe53, k_He4_Cr49_to_Fe53_reaclib, k_Fe53_to_He4_Cr49_reaclib, - N, Cr50, -1, Cr51, -1, -1, Cr50, Cr51, k_n_Cr50_to_Cr51_reaclib, k_Cr51_to_n_Cr50_reaclib, - H1, Cr50, -1, Mn51, -1, -1, Cr50, Mn51, k_p_Cr50_to_Mn51_reaclib, k_Mn51_to_p_Cr50_reaclib, - He4, Cr50, -1, Fe54, -1, -1, Cr50, Fe54, k_He4_Cr50_to_Fe54_reaclib, k_Fe54_to_He4_Cr50_reaclib, - N, Cr51, -1, Cr52, -1, -1, Cr51, Cr52, k_n_Cr51_to_Cr52_reaclib, k_Cr52_to_n_Cr51_reaclib, - H1, Cr51, -1, Mn52, -1, -1, Cr51, Mn52, k_p_Cr51_to_Mn52_reaclib, k_Mn52_to_p_Cr51_reaclib, - He4, Cr51, -1, Fe55, -1, -1, Cr51, Fe55, k_He4_Cr51_to_Fe55_reaclib, k_Fe55_to_He4_Cr51_reaclib, - N, Cr52, -1, Cr53, -1, -1, Cr52, Cr53, k_n_Cr52_to_Cr53_reaclib, k_Cr53_to_n_Cr52_reaclib, - H1, Cr52, -1, Mn53, -1, -1, Cr52, Mn53, k_p_Cr52_to_Mn53_reaclib, k_Mn53_to_p_Cr52_reaclib, - He4, Cr52, -1, Fe56, -1, -1, Cr52, Fe56, k_He4_Cr52_to_Fe56_reaclib, k_Fe56_to_He4_Cr52_reaclib, - N, Cr53, -1, Cr54, -1, -1, Cr53, Cr54, k_n_Cr53_to_Cr54_reaclib, k_Cr54_to_n_Cr53_reaclib, - H1, Cr53, -1, Mn54, -1, -1, Cr53, Mn54, k_p_Cr53_to_Mn54_reaclib, k_Mn54_to_p_Cr53_reaclib, - He4, Cr53, -1, Fe57, -1, -1, Cr53, Fe57, k_He4_Cr53_to_Fe57_reaclib, k_Fe57_to_He4_Cr53_reaclib, - H1, Cr54, -1, Mn55, -1, -1, Cr54, Mn55, k_p_Cr54_to_Mn55_reaclib, k_Mn55_to_p_Cr54_reaclib, - He4, Cr54, -1, Fe58, -1, -1, Cr54, Fe58, k_He4_Cr54_to_Fe58_reaclib, k_Fe58_to_He4_Cr54_reaclib, - N, Mn50, -1, Mn51, -1, -1, Mn50, Mn51, k_n_Mn50_to_Mn51_reaclib, k_Mn51_to_n_Mn50_reaclib, - He4, Mn50, -1, Co54, -1, -1, Mn50, Co54, k_He4_Mn50_to_Co54_reaclib, k_Co54_to_He4_Mn50_reaclib, - N, Mn51, -1, Mn52, -1, -1, Mn51, Mn52, k_n_Mn51_to_Mn52_reaclib, k_Mn52_to_n_Mn51_reaclib, - H1, Mn51, -1, Fe52, -1, -1, Mn51, Fe52, k_p_Mn51_to_Fe52_reaclib, k_Fe52_to_p_Mn51_reaclib, - He4, Mn51, -1, Co55, -1, -1, Mn51, Co55, k_He4_Mn51_to_Co55_reaclib, k_Co55_to_He4_Mn51_reaclib, - N, Mn52, -1, Mn53, -1, -1, Mn52, Mn53, k_n_Mn52_to_Mn53_reaclib, k_Mn53_to_n_Mn52_reaclib, - H1, Mn52, -1, Fe53, -1, -1, Mn52, Fe53, k_p_Mn52_to_Fe53_reaclib, k_Fe53_to_p_Mn52_reaclib, - He4, Mn52, -1, Co56, -1, -1, Mn52, Co56, k_He4_Mn52_to_Co56_reaclib, k_Co56_to_He4_Mn52_reaclib, - N, Mn53, -1, Mn54, -1, -1, Mn53, Mn54, k_n_Mn53_to_Mn54_reaclib, k_Mn54_to_n_Mn53_reaclib, - H1, Mn53, -1, Fe54, -1, -1, Mn53, Fe54, k_p_Mn53_to_Fe54_reaclib, k_Fe54_to_p_Mn53_reaclib, - He4, Mn53, -1, Co57, -1, -1, Mn53, Co57, k_He4_Mn53_to_Co57_reaclib, k_Co57_to_He4_Mn53_reaclib, - N, Mn54, -1, Mn55, -1, -1, Mn54, Mn55, k_n_Mn54_to_Mn55_reaclib, k_Mn55_to_n_Mn54_reaclib, - H1, Mn54, -1, Fe55, -1, -1, Mn54, Fe55, k_p_Mn54_to_Fe55_reaclib, k_Fe55_to_p_Mn54_reaclib, - He4, Mn54, -1, Co58, -1, -1, Mn54, Co58, k_He4_Mn54_to_Co58_reaclib, k_Co58_to_He4_Mn54_reaclib, - H1, Mn55, -1, Fe56, -1, -1, Mn55, Fe56, k_p_Mn55_to_Fe56_reaclib, k_Fe56_to_p_Mn55_reaclib, - He4, Mn55, -1, Co59, -1, -1, Mn55, Co59, k_He4_Mn55_to_Co59_reaclib, k_Co59_to_He4_Mn55_reaclib, - N, Fe52, -1, Fe53, -1, -1, Fe52, Fe53, k_n_Fe52_to_Fe53_reaclib, k_Fe53_to_n_Fe52_reaclib, - H1, Fe52, -1, Co53, -1, -1, Fe52, Co53, k_p_Fe52_to_Co53_reaclib, k_Co53_to_p_Fe52_reaclib, - He4, Fe52, -1, Ni56, -1, -1, Fe52, Ni56, k_He4_Fe52_to_Ni56_reaclib, k_Ni56_to_He4_Fe52_reaclib, - N, Fe53, -1, Fe54, -1, -1, Fe53, Fe54, k_n_Fe53_to_Fe54_reaclib, k_Fe54_to_n_Fe53_reaclib, - H1, Fe53, -1, Co54, -1, -1, Fe53, Co54, k_p_Fe53_to_Co54_reaclib, k_Co54_to_p_Fe53_reaclib, - He4, Fe53, -1, Ni57, -1, -1, Fe53, Ni57, k_He4_Fe53_to_Ni57_reaclib, k_Ni57_to_He4_Fe53_reaclib, - N, Fe54, -1, Fe55, -1, -1, Fe54, Fe55, k_n_Fe54_to_Fe55_reaclib, k_Fe55_to_n_Fe54_reaclib, - H1, Fe54, -1, Co55, -1, -1, Fe54, Co55, k_p_Fe54_to_Co55_reaclib, k_Co55_to_p_Fe54_reaclib, - He4, Fe54, -1, Ni58, -1, -1, Fe54, Ni58, k_He4_Fe54_to_Ni58_reaclib, k_Ni58_to_He4_Fe54_reaclib, - N, Fe55, -1, Fe56, -1, -1, Fe55, Fe56, k_n_Fe55_to_Fe56_reaclib, k_Fe56_to_n_Fe55_reaclib, - H1, Fe55, -1, Co56, -1, -1, Fe55, Co56, k_p_Fe55_to_Co56_reaclib, k_Co56_to_p_Fe55_reaclib, - He4, Fe55, -1, Ni59, -1, -1, Fe55, Ni59, k_He4_Fe55_to_Ni59_reaclib, k_Ni59_to_He4_Fe55_reaclib, - N, Fe56, -1, Fe57, -1, -1, Fe56, Fe57, k_n_Fe56_to_Fe57_reaclib, k_Fe57_to_n_Fe56_reaclib, - H1, Fe56, -1, Co57, -1, -1, Fe56, Co57, k_p_Fe56_to_Co57_reaclib, k_Co57_to_p_Fe56_reaclib, - He4, Fe56, -1, Ni60, -1, -1, Fe56, Ni60, k_He4_Fe56_to_Ni60_reaclib, k_Ni60_to_He4_Fe56_reaclib, - N, Fe57, -1, Fe58, -1, -1, Fe57, Fe58, k_n_Fe57_to_Fe58_reaclib, k_Fe58_to_n_Fe57_reaclib, - H1, Fe57, -1, Co58, -1, -1, Fe57, Co58, k_p_Fe57_to_Co58_reaclib, k_Co58_to_p_Fe57_reaclib, - He4, Fe57, -1, Ni61, -1, -1, Fe57, Ni61, k_He4_Fe57_to_Ni61_reaclib, k_Ni61_to_He4_Fe57_reaclib, - H1, Fe58, -1, Co59, -1, -1, Fe58, Co59, k_p_Fe58_to_Co59_reaclib, k_Co59_to_p_Fe58_reaclib, - He4, Fe58, -1, Ni62, -1, -1, Fe58, Ni62, k_He4_Fe58_to_Ni62_reaclib, k_Ni62_to_He4_Fe58_reaclib, - N, Co53, -1, Co54, -1, -1, Co53, Co54, k_n_Co53_to_Co54_reaclib, k_Co54_to_n_Co53_reaclib, - He4, Co53, -1, Cu57, -1, -1, Co53, Cu57, k_He4_Co53_to_Cu57_reaclib, k_Cu57_to_He4_Co53_reaclib, - N, Co54, -1, Co55, -1, -1, Co54, Co55, k_n_Co54_to_Co55_reaclib, k_Co55_to_n_Co54_reaclib, - He4, Co54, -1, Cu58, -1, -1, Co54, Cu58, k_He4_Co54_to_Cu58_reaclib, k_Cu58_to_He4_Co54_reaclib, - N, Co55, -1, Co56, -1, -1, Co55, Co56, k_n_Co55_to_Co56_reaclib, k_Co56_to_n_Co55_reaclib, - H1, Co55, -1, Ni56, -1, -1, Co55, Ni56, k_p_Co55_to_Ni56_reaclib, k_Ni56_to_p_Co55_reaclib, - He4, Co55, -1, Cu59, -1, -1, Co55, Cu59, k_He4_Co55_to_Cu59_reaclib, k_Cu59_to_He4_Co55_reaclib, - N, Co56, -1, Co57, -1, -1, Co56, Co57, k_n_Co56_to_Co57_reaclib, k_Co57_to_n_Co56_reaclib, - H1, Co56, -1, Ni57, -1, -1, Co56, Ni57, k_p_Co56_to_Ni57_reaclib, k_Ni57_to_p_Co56_reaclib, - He4, Co56, -1, Cu60, -1, -1, Co56, Cu60, k_He4_Co56_to_Cu60_reaclib, k_Cu60_to_He4_Co56_reaclib, - N, Co57, -1, Co58, -1, -1, Co57, Co58, k_n_Co57_to_Co58_reaclib, k_Co58_to_n_Co57_reaclib, - H1, Co57, -1, Ni58, -1, -1, Co57, Ni58, k_p_Co57_to_Ni58_reaclib, k_Ni58_to_p_Co57_reaclib, - He4, Co57, -1, Cu61, -1, -1, Co57, Cu61, k_He4_Co57_to_Cu61_reaclib, k_Cu61_to_He4_Co57_reaclib, - N, Co58, -1, Co59, -1, -1, Co58, Co59, k_n_Co58_to_Co59_reaclib, k_Co59_to_n_Co58_reaclib, - H1, Co58, -1, Ni59, -1, -1, Co58, Ni59, k_p_Co58_to_Ni59_reaclib, k_Ni59_to_p_Co58_reaclib, - He4, Co58, -1, Cu62, -1, -1, Co58, Cu62, k_He4_Co58_to_Cu62_reaclib, k_Cu62_to_He4_Co58_reaclib, - H1, Co59, -1, Ni60, -1, -1, Co59, Ni60, k_p_Co59_to_Ni60_reaclib, k_Ni60_to_p_Co59_reaclib, - He4, Co59, -1, Cu63, -1, -1, Co59, Cu63, k_He4_Co59_to_Cu63_reaclib, k_Cu63_to_He4_Co59_reaclib, - N, Ni56, -1, Ni57, -1, -1, Ni56, Ni57, k_n_Ni56_to_Ni57_reaclib, k_Ni57_to_n_Ni56_reaclib, - H1, Ni56, -1, Cu57, -1, -1, Ni56, Cu57, k_p_Ni56_to_Cu57_reaclib, k_Cu57_to_p_Ni56_reaclib, - He4, Ni56, -1, Zn60, -1, -1, Ni56, Zn60, k_He4_Ni56_to_Zn60_reaclib, k_Zn60_to_He4_Ni56_reaclib, - N, Ni57, -1, Ni58, -1, -1, Ni57, Ni58, k_n_Ni57_to_Ni58_reaclib, k_Ni58_to_n_Ni57_reaclib, - H1, Ni57, -1, Cu58, -1, -1, Ni57, Cu58, k_p_Ni57_to_Cu58_reaclib, k_Cu58_to_p_Ni57_reaclib, - He4, Ni57, -1, Zn61, -1, -1, Ni57, Zn61, k_He4_Ni57_to_Zn61_reaclib, k_Zn61_to_He4_Ni57_reaclib, - N, Ni58, -1, Ni59, -1, -1, Ni58, Ni59, k_n_Ni58_to_Ni59_reaclib, k_Ni59_to_n_Ni58_reaclib, - H1, Ni58, -1, Cu59, -1, -1, Ni58, Cu59, k_p_Ni58_to_Cu59_reaclib, k_Cu59_to_p_Ni58_reaclib, - He4, Ni58, -1, Zn62, -1, -1, Ni58, Zn62, k_He4_Ni58_to_Zn62_reaclib, k_Zn62_to_He4_Ni58_reaclib, - N, Ni59, -1, Ni60, -1, -1, Ni59, Ni60, k_n_Ni59_to_Ni60_reaclib, k_Ni60_to_n_Ni59_reaclib, - H1, Ni59, -1, Cu60, -1, -1, Ni59, Cu60, k_p_Ni59_to_Cu60_reaclib, k_Cu60_to_p_Ni59_reaclib, - He4, Ni59, -1, Zn63, -1, -1, Ni59, Zn63, k_He4_Ni59_to_Zn63_reaclib, k_Zn63_to_He4_Ni59_reaclib, - N, Ni60, -1, Ni61, -1, -1, Ni60, Ni61, k_n_Ni60_to_Ni61_reaclib, k_Ni61_to_n_Ni60_reaclib, - H1, Ni60, -1, Cu61, -1, -1, Ni60, Cu61, k_p_Ni60_to_Cu61_reaclib, k_Cu61_to_p_Ni60_reaclib, - He4, Ni60, -1, Zn64, -1, -1, Ni60, Zn64, k_He4_Ni60_to_Zn64_reaclib, k_Zn64_to_He4_Ni60_reaclib, - N, Ni61, -1, Ni62, -1, -1, Ni61, Ni62, k_n_Ni61_to_Ni62_reaclib, k_Ni62_to_n_Ni61_reaclib, - H1, Ni61, -1, Cu62, -1, -1, Ni61, Cu62, k_p_Ni61_to_Cu62_reaclib, k_Cu62_to_p_Ni61_reaclib, - He4, Ni61, -1, Zn65, -1, -1, Ni61, Zn65, k_He4_Ni61_to_Zn65_reaclib, k_Zn65_to_He4_Ni61_reaclib, - N, Ni62, -1, Ni63, -1, -1, Ni62, Ni63, k_n_Ni62_to_Ni63_reaclib, k_Ni63_to_n_Ni62_reaclib, - H1, Ni62, -1, Cu63, -1, -1, Ni62, Cu63, k_p_Ni62_to_Cu63_reaclib, k_Cu63_to_p_Ni62_reaclib, - He4, Ni62, -1, Zn66, -1, -1, Ni62, Zn66, k_He4_Ni62_to_Zn66_reaclib, k_Zn66_to_He4_Ni62_reaclib, - N, Ni63, -1, Ni64, -1, -1, Ni63, Ni64, k_n_Ni63_to_Ni64_reaclib, k_Ni64_to_n_Ni63_reaclib, - H1, Ni63, -1, Cu64, -1, -1, Ni63, Cu64, k_p_Ni63_to_Cu64_reaclib, k_Cu64_to_p_Ni63_reaclib, - H1, Ni64, -1, Cu65, -1, -1, Ni64, Cu65, k_p_Ni64_to_Cu65_reaclib, k_Cu65_to_p_Ni64_reaclib, - N, Cu57, -1, Cu58, -1, -1, Cu57, Cu58, k_n_Cu57_to_Cu58_reaclib, k_Cu58_to_n_Cu57_reaclib, - N, Cu58, -1, Cu59, -1, -1, Cu58, Cu59, k_n_Cu58_to_Cu59_reaclib, k_Cu59_to_n_Cu58_reaclib, - H1, Cu58, -1, Zn59, -1, -1, Cu58, Zn59, k_p_Cu58_to_Zn59_reaclib, k_Zn59_to_p_Cu58_reaclib, - He4, Cu58, -1, Ga62, -1, -1, Cu58, Ga62, k_He4_Cu58_to_Ga62_reaclib, k_Ga62_to_He4_Cu58_reaclib, - N, Cu59, -1, Cu60, -1, -1, Cu59, Cu60, k_n_Cu59_to_Cu60_reaclib, k_Cu60_to_n_Cu59_reaclib, - H1, Cu59, -1, Zn60, -1, -1, Cu59, Zn60, k_p_Cu59_to_Zn60_reaclib, k_Zn60_to_p_Cu59_reaclib, - He4, Cu59, -1, Ga63, -1, -1, Cu59, Ga63, k_He4_Cu59_to_Ga63_reaclib, k_Ga63_to_He4_Cu59_reaclib, - N, Cu60, -1, Cu61, -1, -1, Cu60, Cu61, k_n_Cu60_to_Cu61_reaclib, k_Cu61_to_n_Cu60_reaclib, - H1, Cu60, -1, Zn61, -1, -1, Cu60, Zn61, k_p_Cu60_to_Zn61_reaclib, k_Zn61_to_p_Cu60_reaclib, - He4, Cu60, -1, Ga64, -1, -1, Cu60, Ga64, k_He4_Cu60_to_Ga64_reaclib, k_Ga64_to_He4_Cu60_reaclib, - N, Cu61, -1, Cu62, -1, -1, Cu61, Cu62, k_n_Cu61_to_Cu62_reaclib, k_Cu62_to_n_Cu61_reaclib, - H1, Cu61, -1, Zn62, -1, -1, Cu61, Zn62, k_p_Cu61_to_Zn62_reaclib, k_Zn62_to_p_Cu61_reaclib, - N, Cu62, -1, Cu63, -1, -1, Cu62, Cu63, k_n_Cu62_to_Cu63_reaclib, k_Cu63_to_n_Cu62_reaclib, - H1, Cu62, -1, Zn63, -1, -1, Cu62, Zn63, k_p_Cu62_to_Zn63_reaclib, k_Zn63_to_p_Cu62_reaclib, - N, Cu63, -1, Cu64, -1, -1, Cu63, Cu64, k_n_Cu63_to_Cu64_reaclib, k_Cu64_to_n_Cu63_reaclib, - H1, Cu63, -1, Zn64, -1, -1, Cu63, Zn64, k_p_Cu63_to_Zn64_reaclib, k_Zn64_to_p_Cu63_reaclib, - N, Cu64, -1, Cu65, -1, -1, Cu64, Cu65, k_n_Cu64_to_Cu65_reaclib, k_Cu65_to_n_Cu64_reaclib, - H1, Cu64, -1, Zn65, -1, -1, Cu64, Zn65, k_p_Cu64_to_Zn65_reaclib, k_Zn65_to_p_Cu64_reaclib, - H1, Cu65, -1, Zn66, -1, -1, Cu65, Zn66, k_p_Cu65_to_Zn66_reaclib, k_Zn66_to_p_Cu65_reaclib, - N, Zn59, -1, Zn60, -1, -1, Zn59, Zn60, k_n_Zn59_to_Zn60_reaclib, k_Zn60_to_n_Zn59_reaclib, - He4, Zn59, -1, Ge63, -1, -1, Zn59, Ge63, k_He4_Zn59_to_Ge63_reaclib, k_Ge63_to_He4_Zn59_reaclib, - N, Zn60, -1, Zn61, -1, -1, Zn60, Zn61, k_n_Zn60_to_Zn61_reaclib, k_Zn61_to_n_Zn60_reaclib, - He4, Zn60, -1, Ge64, -1, -1, Zn60, Ge64, k_He4_Zn60_to_Ge64_reaclib, k_Ge64_to_He4_Zn60_reaclib, - N, Zn61, -1, Zn62, -1, -1, Zn61, Zn62, k_n_Zn61_to_Zn62_reaclib, k_Zn62_to_n_Zn61_reaclib, - H1, Zn61, -1, Ga62, -1, -1, Zn61, Ga62, k_p_Zn61_to_Ga62_reaclib, k_Ga62_to_p_Zn61_reaclib, - N, Zn62, -1, Zn63, -1, -1, Zn62, Zn63, k_n_Zn62_to_Zn63_reaclib, k_Zn63_to_n_Zn62_reaclib, - H1, Zn62, -1, Ga63, -1, -1, Zn62, Ga63, k_p_Zn62_to_Ga63_reaclib, k_Ga63_to_p_Zn62_reaclib, - N, Zn63, -1, Zn64, -1, -1, Zn63, Zn64, k_n_Zn63_to_Zn64_reaclib, k_Zn64_to_n_Zn63_reaclib, - H1, Zn63, -1, Ga64, -1, -1, Zn63, Ga64, k_p_Zn63_to_Ga64_reaclib, k_Ga64_to_p_Zn63_reaclib, - N, Zn64, -1, Zn65, -1, -1, Zn64, Zn65, k_n_Zn64_to_Zn65_reaclib, k_Zn65_to_n_Zn64_reaclib, - N, Zn65, -1, Zn66, -1, -1, Zn65, Zn66, k_n_Zn65_to_Zn66_reaclib, k_Zn66_to_n_Zn65_reaclib, - N, Ga62, -1, Ga63, -1, -1, Ga62, Ga63, k_n_Ga62_to_Ga63_reaclib, k_Ga63_to_n_Ga62_reaclib, - H1, Ga62, -1, Ge63, -1, -1, Ga62, Ge63, k_p_Ga62_to_Ge63_reaclib, k_Ge63_to_p_Ga62_reaclib, - N, Ga63, -1, Ga64, -1, -1, Ga63, Ga64, k_n_Ga63_to_Ga64_reaclib, k_Ga64_to_n_Ga63_reaclib, - H1, Ga63, -1, Ge64, -1, -1, Ga63, Ge64, k_p_Ga63_to_Ge64_reaclib, k_Ge64_to_p_Ga63_reaclib, - N, Ge63, -1, Ge64, -1, -1, Ge63, Ge64, k_n_Ge63_to_Ge64_reaclib, k_Ge64_to_n_Ge63_reaclib, - H2, He3, -1, H1, He4, -1, H2, He3, k_d_He3_to_p_He4_reaclib, k_p_He4_to_d_He3_reaclib, - H1, Li6, -1, He4, He3, -1, Li6, He3, k_p_Li6_to_He4_He3_reaclib, k_He4_He3_to_p_Li6_reaclib, - H1, Li7, -1, He4, He4, -1, Li7, -1, k_p_Li7_to_He4_He4_reaclib, k_He4_He4_to_p_Li7_reaclib, - N, Be7, -1, H1, Li7, -1, Be7, Li7, k_n_Be7_to_p_Li7_reaclib, k_p_Li7_to_n_Be7_reaclib, - N, Be7, -1, He4, He4, -1, Be7, -1, k_n_Be7_to_He4_He4_reaclib, k_He4_He4_to_n_Be7_reaclib, - H1, Be9, -1, He4, Li6, -1, Be9, Li6, k_p_Be9_to_He4_Li6_reaclib, k_He4_Li6_to_p_Be9_reaclib, - He4, Be9, -1, N, C12, -1, Be9, C12, k_He4_Be9_to_n_C12_reaclib, k_n_C12_to_He4_Be9_reaclib, - N, B10, -1, He4, Li7, -1, B10, Li7, k_n_B10_to_He4_Li7_reaclib, k_He4_Li7_to_n_B10_reaclib, - H1, B10, -1, He4, Be7, -1, B10, Be7, k_p_B10_to_He4_Be7_reaclib, k_He4_Be7_to_p_B10_reaclib, - He4, B10, -1, N, N13, -1, B10, N13, k_He4_B10_to_n_N13_reaclib, k_n_N13_to_He4_B10_reaclib, - He4, B10, -1, H1, C13, -1, B10, C13, k_He4_B10_to_p_C13_reaclib, k_p_C13_to_He4_B10_reaclib, - He4, B11, -1, N, N14, -1, B11, N14, k_He4_B11_to_n_N14_reaclib, k_n_N14_to_He4_B11_reaclib, - He4, B11, -1, H1, C14, -1, B11, C14, k_He4_B11_to_p_C14_reaclib, k_p_C14_to_He4_B11_reaclib, - He4, C13, -1, N, O16, -1, C13, O16, k_He4_C13_to_n_O16_reaclib, k_n_O16_to_He4_C13_reaclib, - N, N13, -1, H1, C13, -1, N13, C13, k_n_N13_to_p_C13_reaclib, k_p_C13_to_n_N13_reaclib, - He4, N13, -1, H1, O16, -1, N13, O16, k_He4_N13_to_p_O16_reaclib, k_p_O16_to_He4_N13_reaclib, - N, N14, -1, H1, C14, -1, N14, C14, k_n_N14_to_p_C14_reaclib, k_p_C14_to_n_N14_reaclib, - H1, N15, -1, He4, C12, -1, N15, C12, k_p_N15_to_He4_C12_reaclib, k_He4_C12_to_p_N15_reaclib, - N, O14, -1, H1, N14, -1, O14, N14, k_n_O14_to_p_N14_reaclib, k_p_N14_to_n_O14_reaclib, - He4, O14, -1, H1, F17, -1, O14, F17, k_He4_O14_to_p_F17_reaclib, k_p_F17_to_He4_O14_reaclib, - N, O15, -1, H1, N15, -1, O15, N15, k_n_O15_to_p_N15_reaclib, k_p_N15_to_n_O15_reaclib, - N, O15, -1, He4, C12, -1, O15, C12, k_n_O15_to_He4_C12_reaclib, k_He4_C12_to_n_O15_reaclib, - N, O17, -1, He4, C14, -1, O17, C14, k_n_O17_to_He4_C14_reaclib, k_He4_C14_to_n_O17_reaclib, - H1, O17, -1, He4, N14, -1, O17, N14, k_p_O17_to_He4_N14_reaclib, k_He4_N14_to_p_O17_reaclib, - He4, O17, -1, N, Ne20, -1, O17, Ne20, k_He4_O17_to_n_Ne20_reaclib, k_n_Ne20_to_He4_O17_reaclib, - H1, O18, -1, He4, N15, -1, O18, N15, k_p_O18_to_He4_N15_reaclib, k_He4_N15_to_p_O18_reaclib, - N, F17, -1, H1, O17, -1, F17, O17, k_n_F17_to_p_O17_reaclib, k_p_O17_to_n_F17_reaclib, - N, F17, -1, He4, N14, -1, F17, N14, k_n_F17_to_He4_N14_reaclib, k_He4_N14_to_n_F17_reaclib, - He4, F17, -1, H1, Ne20, -1, F17, Ne20, k_He4_F17_to_p_Ne20_reaclib, k_p_Ne20_to_He4_F17_reaclib, - N, F18, -1, H1, O18, -1, F18, O18, k_n_F18_to_p_O18_reaclib, k_p_O18_to_n_F18_reaclib, - N, F18, -1, He4, N15, -1, F18, N15, k_n_F18_to_He4_N15_reaclib, k_He4_N15_to_n_F18_reaclib, - H1, F18, -1, He4, O15, -1, F18, O15, k_p_F18_to_He4_O15_reaclib, k_He4_O15_to_p_F18_reaclib, - He4, F18, -1, H1, Ne21, -1, F18, Ne21, k_He4_F18_to_p_Ne21_reaclib, k_p_Ne21_to_He4_F18_reaclib, - H1, F19, -1, He4, O16, -1, F19, O16, k_p_F19_to_He4_O16_reaclib, k_He4_O16_to_p_F19_reaclib, - He4, F19, -1, H1, Ne22, -1, F19, Ne22, k_He4_F19_to_p_Ne22_reaclib, k_p_Ne22_to_He4_F19_reaclib, - N, Ne18, -1, H1, F18, -1, Ne18, F18, k_n_Ne18_to_p_F18_reaclib, k_p_F18_to_n_Ne18_reaclib, - N, Ne18, -1, He4, O15, -1, Ne18, O15, k_n_Ne18_to_He4_O15_reaclib, k_He4_O15_to_n_Ne18_reaclib, - He4, Ne18, -1, H1, Na21, -1, Ne18, Na21, k_He4_Ne18_to_p_Na21_reaclib, k_p_Na21_to_He4_Ne18_reaclib, - N, Ne19, -1, H1, F19, -1, Ne19, F19, k_n_Ne19_to_p_F19_reaclib, k_p_F19_to_n_Ne19_reaclib, - N, Ne19, -1, He4, O16, -1, Ne19, O16, k_n_Ne19_to_He4_O16_reaclib, k_He4_O16_to_n_Ne19_reaclib, - He4, Ne19, -1, H1, Na22, -1, Ne19, Na22, k_He4_Ne19_to_p_Na22_reaclib, k_p_Na22_to_He4_Ne19_reaclib, - N, Ne21, -1, He4, O18, -1, Ne21, O18, k_n_Ne21_to_He4_O18_reaclib, k_He4_O18_to_n_Ne21_reaclib, - He4, Ne21, -1, N, Mg24, -1, Ne21, Mg24, k_He4_Ne21_to_n_Mg24_reaclib, k_n_Mg24_to_He4_Ne21_reaclib, - N, Na21, -1, H1, Ne21, -1, Na21, Ne21, k_n_Na21_to_p_Ne21_reaclib, k_p_Ne21_to_n_Na21_reaclib, - N, Na21, -1, He4, F18, -1, Na21, F18, k_n_Na21_to_He4_F18_reaclib, k_He4_F18_to_n_Na21_reaclib, - He4, Na21, -1, H1, Mg24, -1, Na21, Mg24, k_He4_Na21_to_p_Mg24_reaclib, k_p_Mg24_to_He4_Na21_reaclib, - N, Na22, -1, H1, Ne22, -1, Na22, Ne22, k_n_Na22_to_p_Ne22_reaclib, k_p_Ne22_to_n_Na22_reaclib, - N, Na22, -1, He4, F19, -1, Na22, F19, k_n_Na22_to_He4_F19_reaclib, k_He4_F19_to_n_Na22_reaclib, - He4, Na22, -1, H1, Mg25, -1, Na22, Mg25, k_He4_Na22_to_p_Mg25_reaclib, k_p_Mg25_to_He4_Na22_reaclib, - H1, Na23, -1, He4, Ne20, -1, Na23, Ne20, k_p_Na23_to_He4_Ne20_reaclib, k_He4_Ne20_to_p_Na23_reaclib, - He4, Na23, -1, H1, Mg26, -1, Na23, Mg26, k_He4_Na23_to_p_Mg26_reaclib, k_p_Mg26_to_He4_Na23_reaclib, - N, Mg23, -1, H1, Na23, -1, Mg23, Na23, k_n_Mg23_to_p_Na23_reaclib, k_p_Na23_to_n_Mg23_reaclib, - N, Mg23, -1, He4, Ne20, -1, Mg23, Ne20, k_n_Mg23_to_He4_Ne20_reaclib, k_He4_Ne20_to_n_Mg23_reaclib, - He4, Mg23, -1, H1, Al26, -1, Mg23, Al26, k_He4_Mg23_to_p_Al26_reaclib, k_p_Al26_to_He4_Mg23_reaclib, - N, Mg25, -1, He4, Ne22, -1, Mg25, Ne22, k_n_Mg25_to_He4_Ne22_reaclib, k_He4_Ne22_to_n_Mg25_reaclib, - He4, Mg25, -1, N, Si28, -1, Mg25, Si28, k_He4_Mg25_to_n_Si28_reaclib, k_n_Si28_to_He4_Mg25_reaclib, - He4, Mg26, -1, N, Si29, -1, Mg26, Si29, k_He4_Mg26_to_n_Si29_reaclib, k_n_Si29_to_He4_Mg26_reaclib, - N, Al25, -1, H1, Mg25, -1, Al25, Mg25, k_n_Al25_to_p_Mg25_reaclib, k_p_Mg25_to_n_Al25_reaclib, - N, Al25, -1, He4, Na22, -1, Al25, Na22, k_n_Al25_to_He4_Na22_reaclib, k_He4_Na22_to_n_Al25_reaclib, - He4, Al25, -1, H1, Si28, -1, Al25, Si28, k_He4_Al25_to_p_Si28_reaclib, k_p_Si28_to_He4_Al25_reaclib, - N, Al26, -1, H1, Mg26, -1, Al26, Mg26, k_n_Al26_to_p_Mg26_reaclib, k_p_Mg26_to_n_Al26_reaclib, - N, Al26, -1, He4, Na23, -1, Al26, Na23, k_n_Al26_to_He4_Na23_reaclib, k_He4_Na23_to_n_Al26_reaclib, - He4, Al26, -1, H1, Si29, -1, Al26, Si29, k_He4_Al26_to_p_Si29_reaclib, k_p_Si29_to_He4_Al26_reaclib, - H1, Al27, -1, He4, Mg24, -1, Al27, Mg24, k_p_Al27_to_He4_Mg24_reaclib, k_He4_Mg24_to_p_Al27_reaclib, - He4, Al27, -1, H1, Si30, -1, Al27, Si30, k_He4_Al27_to_p_Si30_reaclib, k_p_Si30_to_He4_Al27_reaclib, - H1, Si31, -1, N, P31, -1, Si31, P31, k_p_Si31_to_n_P31_reaclib, k_n_P31_to_p_Si31_reaclib, - He4, Si31, -1, N, S34, -1, Si31, S34, k_He4_Si31_to_n_S34_reaclib, k_n_S34_to_He4_Si31_reaclib, - N, P29, -1, H1, Si29, -1, P29, Si29, k_n_P29_to_p_Si29_reaclib, k_p_Si29_to_n_P29_reaclib, - N, P29, -1, He4, Al26, -1, P29, Al26, k_n_P29_to_He4_Al26_reaclib, k_He4_Al26_to_n_P29_reaclib, - He4, P29, -1, H1, S32, -1, P29, S32, k_He4_P29_to_p_S32_reaclib, k_p_S32_to_He4_P29_reaclib, - N, P30, -1, H1, Si30, -1, P30, Si30, k_n_P30_to_p_Si30_reaclib, k_p_Si30_to_n_P30_reaclib, - N, P30, -1, He4, Al27, -1, P30, Al27, k_n_P30_to_He4_Al27_reaclib, k_He4_Al27_to_n_P30_reaclib, - He4, P30, -1, H1, S33, -1, P30, S33, k_He4_P30_to_p_S33_reaclib, k_p_S33_to_He4_P30_reaclib, - H1, P31, -1, He4, Si28, -1, P31, Si28, k_p_P31_to_He4_Si28_reaclib, k_He4_Si28_to_p_P31_reaclib, - He4, P31, -1, H1, S34, -1, P31, S34, k_He4_P31_to_p_S34_reaclib, k_p_S34_to_He4_P31_reaclib, - N, P32, -1, H1, Si32, -1, P32, Si32, k_n_P32_to_p_Si32_reaclib, k_p_Si32_to_n_P32_reaclib, - H1, P32, -1, N, S32, -1, P32, S32, k_p_P32_to_n_S32_reaclib, k_n_S32_to_p_P32_reaclib, - H1, P32, -1, He4, Si29, -1, P32, Si29, k_p_P32_to_He4_Si29_reaclib, k_He4_Si29_to_p_P32_reaclib, - H1, P33, -1, He4, Si30, -1, P33, Si30, k_p_P33_to_He4_Si30_reaclib, k_He4_Si30_to_p_P33_reaclib, - N, S32, -1, He4, Si29, -1, S32, Si29, k_n_S32_to_He4_Si29_reaclib, k_He4_Si29_to_n_S32_reaclib, - N, S33, -1, H1, P33, -1, S33, P33, k_n_S33_to_p_P33_reaclib, k_p_P33_to_n_S33_reaclib, - N, S33, -1, He4, Si30, -1, S33, Si30, k_n_S33_to_He4_Si30_reaclib, k_He4_Si30_to_n_S33_reaclib, - N, S35, -1, He4, Si32, -1, S35, Si32, k_n_S35_to_He4_Si32_reaclib, k_He4_Si32_to_n_S35_reaclib, - H1, S35, -1, He4, P32, -1, S35, P32, k_p_S35_to_He4_P32_reaclib, k_He4_P32_to_p_S35_reaclib, - He4, S35, -1, N, Ar38, -1, S35, Ar38, k_He4_S35_to_n_Ar38_reaclib, k_n_Ar38_to_He4_S35_reaclib, - H1, S36, -1, He4, P33, -1, S36, P33, k_p_S36_to_He4_P33_reaclib, k_He4_P33_to_p_S36_reaclib, - N, Cl33, -1, H1, S33, -1, Cl33, S33, k_n_Cl33_to_p_S33_reaclib, k_p_S33_to_n_Cl33_reaclib, - N, Cl33, -1, He4, P30, -1, Cl33, P30, k_n_Cl33_to_He4_P30_reaclib, k_He4_P30_to_n_Cl33_reaclib, - He4, Cl33, -1, H1, Ar36, -1, Cl33, Ar36, k_He4_Cl33_to_p_Ar36_reaclib, k_p_Ar36_to_He4_Cl33_reaclib, - N, Cl34, -1, H1, S34, -1, Cl34, S34, k_n_Cl34_to_p_S34_reaclib, k_p_S34_to_n_Cl34_reaclib, - N, Cl34, -1, He4, P31, -1, Cl34, P31, k_n_Cl34_to_He4_P31_reaclib, k_He4_P31_to_n_Cl34_reaclib, - He4, Cl34, -1, H1, Ar37, -1, Cl34, Ar37, k_He4_Cl34_to_p_Ar37_reaclib, k_p_Ar37_to_He4_Cl34_reaclib, - N, Cl35, -1, H1, S35, -1, Cl35, S35, k_n_Cl35_to_p_S35_reaclib, k_p_S35_to_n_Cl35_reaclib, - N, Cl35, -1, He4, P32, -1, Cl35, P32, k_n_Cl35_to_He4_P32_reaclib, k_He4_P32_to_n_Cl35_reaclib, - H1, Cl35, -1, He4, S32, -1, Cl35, S32, k_p_Cl35_to_He4_S32_reaclib, k_He4_S32_to_p_Cl35_reaclib, - He4, Cl35, -1, H1, Ar38, -1, Cl35, Ar38, k_He4_Cl35_to_p_Ar38_reaclib, k_p_Ar38_to_He4_Cl35_reaclib, - N, Cl36, -1, H1, S36, -1, Cl36, S36, k_n_Cl36_to_p_S36_reaclib, k_p_S36_to_n_Cl36_reaclib, - N, Cl36, -1, He4, P33, -1, Cl36, P33, k_n_Cl36_to_He4_P33_reaclib, k_He4_P33_to_n_Cl36_reaclib, - H1, Cl36, -1, He4, S33, -1, Cl36, S33, k_p_Cl36_to_He4_S33_reaclib, k_He4_S33_to_p_Cl36_reaclib, - H1, Cl37, -1, He4, S34, -1, Cl37, S34, k_p_Cl37_to_He4_S34_reaclib, k_He4_S34_to_p_Cl37_reaclib, - N, Ar36, -1, H1, Cl36, -1, Ar36, Cl36, k_n_Ar36_to_p_Cl36_reaclib, k_p_Cl36_to_n_Ar36_reaclib, - N, Ar36, -1, He4, S33, -1, Ar36, S33, k_n_Ar36_to_He4_S33_reaclib, k_He4_S33_to_n_Ar36_reaclib, - N, Ar37, -1, H1, Cl37, -1, Ar37, Cl37, k_n_Ar37_to_p_Cl37_reaclib, k_p_Cl37_to_n_Ar37_reaclib, - N, Ar37, -1, He4, S34, -1, Ar37, S34, k_n_Ar37_to_He4_S34_reaclib, k_He4_S34_to_n_Ar37_reaclib, - N, Ar39, -1, He4, S36, -1, Ar39, S36, k_n_Ar39_to_He4_S36_reaclib, k_He4_S36_to_n_Ar39_reaclib, - H1, Ar39, -1, He4, Cl36, -1, Ar39, Cl36, k_p_Ar39_to_He4_Cl36_reaclib, k_He4_Cl36_to_p_Ar39_reaclib, - H1, Ar40, -1, He4, Cl37, -1, Ar40, Cl37, k_p_Ar40_to_He4_Cl37_reaclib, k_He4_Cl37_to_p_Ar40_reaclib, - N, K37, -1, H1, Ar37, -1, K37, Ar37, k_n_K37_to_p_Ar37_reaclib, k_p_Ar37_to_n_K37_reaclib, - N, K37, -1, He4, Cl34, -1, K37, Cl34, k_n_K37_to_He4_Cl34_reaclib, k_He4_Cl34_to_n_K37_reaclib, - He4, K37, -1, H1, Ca40, -1, K37, Ca40, k_He4_K37_to_p_Ca40_reaclib, k_p_Ca40_to_He4_K37_reaclib, - N, K38, -1, H1, Ar38, -1, K38, Ar38, k_n_K38_to_p_Ar38_reaclib, k_p_Ar38_to_n_K38_reaclib, - N, K38, -1, He4, Cl35, -1, K38, Cl35, k_n_K38_to_He4_Cl35_reaclib, k_He4_Cl35_to_n_K38_reaclib, - He4, K38, -1, H1, Ca41, -1, K38, Ca41, k_He4_K38_to_p_Ca41_reaclib, k_p_Ca41_to_He4_K38_reaclib, - N, K39, -1, H1, Ar39, -1, K39, Ar39, k_n_K39_to_p_Ar39_reaclib, k_p_Ar39_to_n_K39_reaclib, - N, K39, -1, He4, Cl36, -1, K39, Cl36, k_n_K39_to_He4_Cl36_reaclib, k_He4_Cl36_to_n_K39_reaclib, - H1, K39, -1, He4, Ar36, -1, K39, Ar36, k_p_K39_to_He4_Ar36_reaclib, k_He4_Ar36_to_p_K39_reaclib, - N, K40, -1, H1, Ar40, -1, K40, Ar40, k_n_K40_to_p_Ar40_reaclib, k_p_Ar40_to_n_K40_reaclib, - N, K40, -1, He4, Cl37, -1, K40, Cl37, k_n_K40_to_He4_Cl37_reaclib, k_He4_Cl37_to_n_K40_reaclib, - H1, K40, -1, N, Ca40, -1, K40, Ca40, k_p_K40_to_n_Ca40_reaclib, k_n_Ca40_to_p_K40_reaclib, - H1, K40, -1, He4, Ar37, -1, K40, Ar37, k_p_K40_to_He4_Ar37_reaclib, k_He4_Ar37_to_p_K40_reaclib, - He4, K40, -1, H1, Ca43, -1, K40, Ca43, k_He4_K40_to_p_Ca43_reaclib, k_p_Ca43_to_He4_K40_reaclib, - H1, K41, -1, He4, Ar38, -1, K41, Ar38, k_p_K41_to_He4_Ar38_reaclib, k_He4_Ar38_to_p_K41_reaclib, - He4, K41, -1, H1, Ca44, -1, K41, Ca44, k_He4_K41_to_p_Ca44_reaclib, k_p_Ca44_to_He4_K41_reaclib, - N, Ca40, -1, He4, Ar37, -1, Ca40, Ar37, k_n_Ca40_to_He4_Ar37_reaclib, k_He4_Ar37_to_n_Ca40_reaclib, - N, Ca41, -1, H1, K41, -1, Ca41, K41, k_n_Ca41_to_p_K41_reaclib, k_p_K41_to_n_Ca41_reaclib, - N, Ca41, -1, He4, Ar38, -1, Ca41, Ar38, k_n_Ca41_to_He4_Ar38_reaclib, k_He4_Ar38_to_n_Ca41_reaclib, - N, Ca42, -1, He4, Ar39, -1, Ca42, Ar39, k_n_Ca42_to_He4_Ar39_reaclib, k_He4_Ar39_to_n_Ca42_reaclib, - H1, Ca42, -1, He4, K39, -1, Ca42, K39, k_p_Ca42_to_He4_K39_reaclib, k_He4_K39_to_p_Ca42_reaclib, - N, Ca43, -1, He4, Ar40, -1, Ca43, Ar40, k_n_Ca43_to_He4_Ar40_reaclib, k_He4_Ar40_to_n_Ca43_reaclib, - He4, Ca43, -1, N, Ti46, -1, Ca43, Ti46, k_He4_Ca43_to_n_Ti46_reaclib, k_n_Ti46_to_He4_Ca43_reaclib, - He4, Ca45, -1, N, Ti48, -1, Ca45, Ti48, k_He4_Ca45_to_n_Ti48_reaclib, k_n_Ti48_to_He4_Ca45_reaclib, - H1, Ca47, -1, N, Sc47, -1, Ca47, Sc47, k_p_Ca47_to_n_Sc47_reaclib, k_n_Sc47_to_p_Ca47_reaclib, - He4, Ca47, -1, N, Ti50, -1, Ca47, Ti50, k_He4_Ca47_to_n_Ti50_reaclib, k_n_Ti50_to_He4_Ca47_reaclib, - N, Sc43, -1, H1, Ca43, -1, Sc43, Ca43, k_n_Sc43_to_p_Ca43_reaclib, k_p_Ca43_to_n_Sc43_reaclib, - N, Sc43, -1, He4, K40, -1, Sc43, K40, k_n_Sc43_to_He4_K40_reaclib, k_He4_K40_to_n_Sc43_reaclib, - H1, Sc43, -1, He4, Ca40, -1, Sc43, Ca40, k_p_Sc43_to_He4_Ca40_reaclib, k_He4_Ca40_to_p_Sc43_reaclib, - He4, Sc43, -1, H1, Ti46, -1, Sc43, Ti46, k_He4_Sc43_to_p_Ti46_reaclib, k_p_Ti46_to_He4_Sc43_reaclib, - N, Sc44, -1, H1, Ca44, -1, Sc44, Ca44, k_n_Sc44_to_p_Ca44_reaclib, k_p_Ca44_to_n_Sc44_reaclib, - N, Sc44, -1, He4, K41, -1, Sc44, K41, k_n_Sc44_to_He4_K41_reaclib, k_He4_K41_to_n_Sc44_reaclib, - H1, Sc44, -1, He4, Ca41, -1, Sc44, Ca41, k_p_Sc44_to_He4_Ca41_reaclib, k_He4_Ca41_to_p_Sc44_reaclib, - He4, Sc44, -1, H1, Ti47, -1, Sc44, Ti47, k_He4_Sc44_to_p_Ti47_reaclib, k_p_Ti47_to_He4_Sc44_reaclib, - N, Sc45, -1, H1, Ca45, -1, Sc45, Ca45, k_n_Sc45_to_p_Ca45_reaclib, k_p_Ca45_to_n_Sc45_reaclib, - H1, Sc45, -1, He4, Ca42, -1, Sc45, Ca42, k_p_Sc45_to_He4_Ca42_reaclib, k_He4_Ca42_to_p_Sc45_reaclib, - He4, Sc45, -1, H1, Ti48, -1, Sc45, Ti48, k_He4_Sc45_to_p_Ti48_reaclib, k_p_Ti48_to_He4_Sc45_reaclib, - N, Sc46, -1, H1, Ca46, -1, Sc46, Ca46, k_n_Sc46_to_p_Ca46_reaclib, k_p_Ca46_to_n_Sc46_reaclib, - H1, Sc46, -1, N, Ti46, -1, Sc46, Ti46, k_p_Sc46_to_n_Ti46_reaclib, k_n_Ti46_to_p_Sc46_reaclib, - H1, Sc46, -1, He4, Ca43, -1, Sc46, Ca43, k_p_Sc46_to_He4_Ca43_reaclib, k_He4_Ca43_to_p_Sc46_reaclib, - He4, Sc46, -1, N, V49, -1, Sc46, V49, k_He4_Sc46_to_n_V49_reaclib, k_n_V49_to_He4_Sc46_reaclib, - He4, Sc46, -1, H1, Ti49, -1, Sc46, Ti49, k_He4_Sc46_to_p_Ti49_reaclib, k_p_Ti49_to_He4_Sc46_reaclib, - H1, Sc47, -1, He4, Ca44, -1, Sc47, Ca44, k_p_Sc47_to_He4_Ca44_reaclib, k_He4_Ca44_to_p_Sc47_reaclib, - He4, Sc47, -1, H1, Ti50, -1, Sc47, Ti50, k_He4_Sc47_to_p_Ti50_reaclib, k_p_Ti50_to_He4_Sc47_reaclib, - N, Sc48, -1, H1, Ca48, -1, Sc48, Ca48, k_n_Sc48_to_p_Ca48_reaclib, k_p_Ca48_to_n_Sc48_reaclib, - H1, Sc48, -1, N, Ti48, -1, Sc48, Ti48, k_p_Sc48_to_n_Ti48_reaclib, k_n_Ti48_to_p_Sc48_reaclib, - H1, Sc48, -1, He4, Ca45, -1, Sc48, Ca45, k_p_Sc48_to_He4_Ca45_reaclib, k_He4_Ca45_to_p_Sc48_reaclib, - He4, Sc48, -1, N, V51, -1, Sc48, V51, k_He4_Sc48_to_n_V51_reaclib, k_n_V51_to_He4_Sc48_reaclib, - He4, Sc48, -1, H1, Ti51, -1, Sc48, Ti51, k_He4_Sc48_to_p_Ti51_reaclib, k_p_Ti51_to_He4_Sc48_reaclib, - H1, Sc49, -1, N, Ti49, -1, Sc49, Ti49, k_p_Sc49_to_n_Ti49_reaclib, k_n_Ti49_to_p_Sc49_reaclib, - H1, Sc49, -1, He4, Ca46, -1, Sc49, Ca46, k_p_Sc49_to_He4_Ca46_reaclib, k_He4_Ca46_to_p_Sc49_reaclib, - N, Ti44, -1, H1, Sc44, -1, Ti44, Sc44, k_n_Ti44_to_p_Sc44_reaclib, k_p_Sc44_to_n_Ti44_reaclib, - N, Ti44, -1, He4, Ca41, -1, Ti44, Ca41, k_n_Ti44_to_He4_Ca41_reaclib, k_He4_Ca41_to_n_Ti44_reaclib, - N, Ti45, -1, H1, Sc45, -1, Ti45, Sc45, k_n_Ti45_to_p_Sc45_reaclib, k_p_Sc45_to_n_Ti45_reaclib, - N, Ti45, -1, He4, Ca42, -1, Ti45, Ca42, k_n_Ti45_to_He4_Ca42_reaclib, k_He4_Ca42_to_n_Ti45_reaclib, - He4, Ti45, -1, H1, V48, -1, Ti45, V48, k_He4_Ti45_to_p_V48_reaclib, k_p_V48_to_He4_Ti45_reaclib, - N, Ti47, -1, H1, Sc47, -1, Ti47, Sc47, k_n_Ti47_to_p_Sc47_reaclib, k_p_Sc47_to_n_Ti47_reaclib, - N, Ti47, -1, He4, Ca44, -1, Ti47, Ca44, k_n_Ti47_to_He4_Ca44_reaclib, k_He4_Ca44_to_n_Ti47_reaclib, - N, Ti49, -1, He4, Ca46, -1, Ti49, Ca46, k_n_Ti49_to_He4_Ca46_reaclib, k_He4_Ca46_to_n_Ti49_reaclib, - He4, Ti49, -1, N, Cr52, -1, Ti49, Cr52, k_He4_Ti49_to_n_Cr52_reaclib, k_n_Cr52_to_He4_Ti49_reaclib, - N, Ti51, -1, He4, Ca48, -1, Ti51, Ca48, k_n_Ti51_to_He4_Ca48_reaclib, k_He4_Ca48_to_n_Ti51_reaclib, - H1, Ti51, -1, N, V51, -1, Ti51, V51, k_p_Ti51_to_n_V51_reaclib, k_n_V51_to_p_Ti51_reaclib, - He4, Ti51, -1, N, Cr54, -1, Ti51, Cr54, k_He4_Ti51_to_n_Cr54_reaclib, k_n_Cr54_to_He4_Ti51_reaclib, - N, V46, -1, H1, Ti46, -1, V46, Ti46, k_n_V46_to_p_Ti46_reaclib, k_p_Ti46_to_n_V46_reaclib, - N, V46, -1, He4, Sc43, -1, V46, Sc43, k_n_V46_to_He4_Sc43_reaclib, k_He4_Sc43_to_n_V46_reaclib, - He4, V46, -1, H1, Cr49, -1, V46, Cr49, k_He4_V46_to_p_Cr49_reaclib, k_p_Cr49_to_He4_V46_reaclib, - N, V47, -1, H1, Ti47, -1, V47, Ti47, k_n_V47_to_p_Ti47_reaclib, k_p_Ti47_to_n_V47_reaclib, - N, V47, -1, He4, Sc44, -1, V47, Sc44, k_n_V47_to_He4_Sc44_reaclib, k_He4_Sc44_to_n_V47_reaclib, - H1, V47, -1, He4, Ti44, -1, V47, Ti44, k_p_V47_to_He4_Ti44_reaclib, k_He4_Ti44_to_p_V47_reaclib, - He4, V47, -1, H1, Cr50, -1, V47, Cr50, k_He4_V47_to_p_Cr50_reaclib, k_p_Cr50_to_He4_V47_reaclib, - N, V48, -1, H1, Ti48, -1, V48, Ti48, k_n_V48_to_p_Ti48_reaclib, k_p_Ti48_to_n_V48_reaclib, - N, V48, -1, He4, Sc45, -1, V48, Sc45, k_n_V48_to_He4_Sc45_reaclib, k_He4_Sc45_to_n_V48_reaclib, - He4, V48, -1, H1, Cr51, -1, V48, Cr51, k_He4_V48_to_p_Cr51_reaclib, k_p_Cr51_to_He4_V48_reaclib, - N, V49, -1, H1, Ti49, -1, V49, Ti49, k_n_V49_to_p_Ti49_reaclib, k_p_Ti49_to_n_V49_reaclib, - H1, V49, -1, He4, Ti46, -1, V49, Ti46, k_p_V49_to_He4_Ti46_reaclib, k_He4_Ti46_to_p_V49_reaclib, - He4, V49, -1, H1, Cr52, -1, V49, Cr52, k_He4_V49_to_p_Cr52_reaclib, k_p_Cr52_to_He4_V49_reaclib, - N, V50, -1, H1, Ti50, -1, V50, Ti50, k_n_V50_to_p_Ti50_reaclib, k_p_Ti50_to_n_V50_reaclib, - N, V50, -1, He4, Sc47, -1, V50, Sc47, k_n_V50_to_He4_Sc47_reaclib, k_He4_Sc47_to_n_V50_reaclib, - H1, V50, -1, N, Cr50, -1, V50, Cr50, k_p_V50_to_n_Cr50_reaclib, k_n_Cr50_to_p_V50_reaclib, - H1, V50, -1, He4, Ti47, -1, V50, Ti47, k_p_V50_to_He4_Ti47_reaclib, k_He4_Ti47_to_p_V50_reaclib, - He4, V50, -1, H1, Cr53, -1, V50, Cr53, k_He4_V50_to_p_Cr53_reaclib, k_p_Cr53_to_He4_V50_reaclib, - H1, V51, -1, He4, Ti48, -1, V51, Ti48, k_p_V51_to_He4_Ti48_reaclib, k_He4_Ti48_to_p_V51_reaclib, - N, V52, -1, He4, Sc49, -1, V52, Sc49, k_n_V52_to_He4_Sc49_reaclib, k_He4_Sc49_to_n_V52_reaclib, - H1, V52, -1, N, Cr52, -1, V52, Cr52, k_p_V52_to_n_Cr52_reaclib, k_n_Cr52_to_p_V52_reaclib, - H1, V52, -1, He4, Ti49, -1, V52, Ti49, k_p_V52_to_He4_Ti49_reaclib, k_He4_Ti49_to_p_V52_reaclib, - He4, V52, -1, N, Mn55, -1, V52, Mn55, k_He4_V52_to_n_Mn55_reaclib, k_n_Mn55_to_He4_V52_reaclib, - N, Cr48, -1, H1, V48, -1, Cr48, V48, k_n_Cr48_to_p_V48_reaclib, k_p_V48_to_n_Cr48_reaclib, - N, Cr48, -1, He4, Ti45, -1, Cr48, Ti45, k_n_Cr48_to_He4_Ti45_reaclib, k_He4_Ti45_to_n_Cr48_reaclib, - He4, Cr48, -1, H1, Mn51, -1, Cr48, Mn51, k_He4_Cr48_to_p_Mn51_reaclib, k_p_Mn51_to_He4_Cr48_reaclib, - N, Cr49, -1, H1, V49, -1, Cr49, V49, k_n_Cr49_to_p_V49_reaclib, k_p_V49_to_n_Cr49_reaclib, - N, Cr49, -1, He4, Ti46, -1, Cr49, Ti46, k_n_Cr49_to_He4_Ti46_reaclib, k_He4_Ti46_to_n_Cr49_reaclib, - He4, Cr49, -1, H1, Mn52, -1, Cr49, Mn52, k_He4_Cr49_to_p_Mn52_reaclib, k_p_Mn52_to_He4_Cr49_reaclib, - N, Cr50, -1, He4, Ti47, -1, Cr50, Ti47, k_n_Cr50_to_He4_Ti47_reaclib, k_He4_Ti47_to_n_Cr50_reaclib, - N, Cr51, -1, H1, V51, -1, Cr51, V51, k_n_Cr51_to_p_V51_reaclib, k_p_V51_to_n_Cr51_reaclib, - N, Cr51, -1, He4, Ti48, -1, Cr51, Ti48, k_n_Cr51_to_He4_Ti48_reaclib, k_He4_Ti48_to_n_Cr51_reaclib, - N, Cr53, -1, He4, Ti50, -1, Cr53, Ti50, k_n_Cr53_to_He4_Ti50_reaclib, k_He4_Ti50_to_n_Cr53_reaclib, - H1, Cr54, -1, He4, V51, -1, Cr54, V51, k_p_Cr54_to_He4_V51_reaclib, k_He4_V51_to_p_Cr54_reaclib, - N, Mn50, -1, H1, Cr50, -1, Mn50, Cr50, k_n_Mn50_to_p_Cr50_reaclib, k_p_Cr50_to_n_Mn50_reaclib, - N, Mn50, -1, He4, V47, -1, Mn50, V47, k_n_Mn50_to_He4_V47_reaclib, k_He4_V47_to_n_Mn50_reaclib, - He4, Mn50, -1, H1, Fe53, -1, Mn50, Fe53, k_He4_Mn50_to_p_Fe53_reaclib, k_p_Fe53_to_He4_Mn50_reaclib, - N, Mn51, -1, H1, Cr51, -1, Mn51, Cr51, k_n_Mn51_to_p_Cr51_reaclib, k_p_Cr51_to_n_Mn51_reaclib, - N, Mn51, -1, He4, V48, -1, Mn51, V48, k_n_Mn51_to_He4_V48_reaclib, k_He4_V48_to_n_Mn51_reaclib, - He4, Mn51, -1, H1, Fe54, -1, Mn51, Fe54, k_He4_Mn51_to_p_Fe54_reaclib, k_p_Fe54_to_He4_Mn51_reaclib, - N, Mn52, -1, H1, Cr52, -1, Mn52, Cr52, k_n_Mn52_to_p_Cr52_reaclib, k_p_Cr52_to_n_Mn52_reaclib, - N, Mn52, -1, He4, V49, -1, Mn52, V49, k_n_Mn52_to_He4_V49_reaclib, k_He4_V49_to_n_Mn52_reaclib, - He4, Mn52, -1, H1, Fe55, -1, Mn52, Fe55, k_He4_Mn52_to_p_Fe55_reaclib, k_p_Fe55_to_He4_Mn52_reaclib, - N, Mn53, -1, H1, Cr53, -1, Mn53, Cr53, k_n_Mn53_to_p_Cr53_reaclib, k_p_Cr53_to_n_Mn53_reaclib, - N, Mn53, -1, He4, V50, -1, Mn53, V50, k_n_Mn53_to_He4_V50_reaclib, k_He4_V50_to_n_Mn53_reaclib, - H1, Mn53, -1, He4, Cr50, -1, Mn53, Cr50, k_p_Mn53_to_He4_Cr50_reaclib, k_He4_Cr50_to_p_Mn53_reaclib, - He4, Mn53, -1, H1, Fe56, -1, Mn53, Fe56, k_He4_Mn53_to_p_Fe56_reaclib, k_p_Fe56_to_He4_Mn53_reaclib, - N, Mn54, -1, H1, Cr54, -1, Mn54, Cr54, k_n_Mn54_to_p_Cr54_reaclib, k_p_Cr54_to_n_Mn54_reaclib, - N, Mn54, -1, He4, V51, -1, Mn54, V51, k_n_Mn54_to_He4_V51_reaclib, k_He4_V51_to_n_Mn54_reaclib, - H1, Mn54, -1, He4, Cr51, -1, Mn54, Cr51, k_p_Mn54_to_He4_Cr51_reaclib, k_He4_Cr51_to_p_Mn54_reaclib, - H1, Mn55, -1, He4, Cr52, -1, Mn55, Cr52, k_p_Mn55_to_He4_Cr52_reaclib, k_He4_Cr52_to_p_Mn55_reaclib, - N, Fe52, -1, H1, Mn52, -1, Fe52, Mn52, k_n_Fe52_to_p_Mn52_reaclib, k_p_Mn52_to_n_Fe52_reaclib, - N, Fe52, -1, He4, Cr49, -1, Fe52, Cr49, k_n_Fe52_to_He4_Cr49_reaclib, k_He4_Cr49_to_n_Fe52_reaclib, - He4, Fe52, -1, H1, Co55, -1, Fe52, Co55, k_He4_Fe52_to_p_Co55_reaclib, k_p_Co55_to_He4_Fe52_reaclib, - N, Fe53, -1, H1, Mn53, -1, Fe53, Mn53, k_n_Fe53_to_p_Mn53_reaclib, k_p_Mn53_to_n_Fe53_reaclib, - N, Fe53, -1, He4, Cr50, -1, Fe53, Cr50, k_n_Fe53_to_He4_Cr50_reaclib, k_He4_Cr50_to_n_Fe53_reaclib, - He4, Fe53, -1, H1, Co56, -1, Fe53, Co56, k_He4_Fe53_to_p_Co56_reaclib, k_p_Co56_to_He4_Fe53_reaclib, - N, Fe54, -1, H1, Mn54, -1, Fe54, Mn54, k_n_Fe54_to_p_Mn54_reaclib, k_p_Mn54_to_n_Fe54_reaclib, - N, Fe54, -1, He4, Cr51, -1, Fe54, Cr51, k_n_Fe54_to_He4_Cr51_reaclib, k_He4_Cr51_to_n_Fe54_reaclib, - N, Fe55, -1, H1, Mn55, -1, Fe55, Mn55, k_n_Fe55_to_p_Mn55_reaclib, k_p_Mn55_to_n_Fe55_reaclib, - N, Fe55, -1, He4, Cr52, -1, Fe55, Cr52, k_n_Fe55_to_He4_Cr52_reaclib, k_He4_Cr52_to_n_Fe55_reaclib, - N, Fe56, -1, He4, Cr53, -1, Fe56, Cr53, k_n_Fe56_to_He4_Cr53_reaclib, k_He4_Cr53_to_n_Fe56_reaclib, - N, Fe57, -1, He4, Cr54, -1, Fe57, Cr54, k_n_Fe57_to_He4_Cr54_reaclib, k_He4_Cr54_to_n_Fe57_reaclib, - H1, Fe57, -1, He4, Mn54, -1, Fe57, Mn54, k_p_Fe57_to_He4_Mn54_reaclib, k_He4_Mn54_to_p_Fe57_reaclib, - H1, Fe58, -1, He4, Mn55, -1, Fe58, Mn55, k_p_Fe58_to_He4_Mn55_reaclib, k_He4_Mn55_to_p_Fe58_reaclib, - N, Co53, -1, H1, Fe53, -1, Co53, Fe53, k_n_Co53_to_p_Fe53_reaclib, k_p_Fe53_to_n_Co53_reaclib, - N, Co53, -1, He4, Mn50, -1, Co53, Mn50, k_n_Co53_to_He4_Mn50_reaclib, k_He4_Mn50_to_n_Co53_reaclib, - He4, Co53, -1, H1, Ni56, -1, Co53, Ni56, k_He4_Co53_to_p_Ni56_reaclib, k_p_Ni56_to_He4_Co53_reaclib, - N, Co54, -1, H1, Fe54, -1, Co54, Fe54, k_n_Co54_to_p_Fe54_reaclib, k_p_Fe54_to_n_Co54_reaclib, - N, Co54, -1, He4, Mn51, -1, Co54, Mn51, k_n_Co54_to_He4_Mn51_reaclib, k_He4_Mn51_to_n_Co54_reaclib, - He4, Co54, -1, H1, Ni57, -1, Co54, Ni57, k_He4_Co54_to_p_Ni57_reaclib, k_p_Ni57_to_He4_Co54_reaclib, - N, Co55, -1, H1, Fe55, -1, Co55, Fe55, k_n_Co55_to_p_Fe55_reaclib, k_p_Fe55_to_n_Co55_reaclib, - N, Co55, -1, He4, Mn52, -1, Co55, Mn52, k_n_Co55_to_He4_Mn52_reaclib, k_He4_Mn52_to_n_Co55_reaclib, - He4, Co55, -1, H1, Ni58, -1, Co55, Ni58, k_He4_Co55_to_p_Ni58_reaclib, k_p_Ni58_to_He4_Co55_reaclib, - N, Co56, -1, H1, Fe56, -1, Co56, Fe56, k_n_Co56_to_p_Fe56_reaclib, k_p_Fe56_to_n_Co56_reaclib, - N, Co56, -1, He4, Mn53, -1, Co56, Mn53, k_n_Co56_to_He4_Mn53_reaclib, k_He4_Mn53_to_n_Co56_reaclib, - He4, Co56, -1, H1, Ni59, -1, Co56, Ni59, k_He4_Co56_to_p_Ni59_reaclib, k_p_Ni59_to_He4_Co56_reaclib, - N, Co57, -1, H1, Fe57, -1, Co57, Fe57, k_n_Co57_to_p_Fe57_reaclib, k_p_Fe57_to_n_Co57_reaclib, - N, Co57, -1, He4, Mn54, -1, Co57, Mn54, k_n_Co57_to_He4_Mn54_reaclib, k_He4_Mn54_to_n_Co57_reaclib, - H1, Co57, -1, He4, Fe54, -1, Co57, Fe54, k_p_Co57_to_He4_Fe54_reaclib, k_He4_Fe54_to_p_Co57_reaclib, - He4, Co57, -1, H1, Ni60, -1, Co57, Ni60, k_He4_Co57_to_p_Ni60_reaclib, k_p_Ni60_to_He4_Co57_reaclib, - N, Co58, -1, H1, Fe58, -1, Co58, Fe58, k_n_Co58_to_p_Fe58_reaclib, k_p_Fe58_to_n_Co58_reaclib, - N, Co58, -1, He4, Mn55, -1, Co58, Mn55, k_n_Co58_to_He4_Mn55_reaclib, k_He4_Mn55_to_n_Co58_reaclib, - H1, Co58, -1, He4, Fe55, -1, Co58, Fe55, k_p_Co58_to_He4_Fe55_reaclib, k_He4_Fe55_to_p_Co58_reaclib, - H1, Co59, -1, He4, Fe56, -1, Co59, Fe56, k_p_Co59_to_He4_Fe56_reaclib, k_He4_Fe56_to_p_Co59_reaclib, - N, Ni56, -1, H1, Co56, -1, Ni56, Co56, k_n_Ni56_to_p_Co56_reaclib, k_p_Co56_to_n_Ni56_reaclib, - N, Ni56, -1, He4, Fe53, -1, Ni56, Fe53, k_n_Ni56_to_He4_Fe53_reaclib, k_He4_Fe53_to_n_Ni56_reaclib, - N, Ni57, -1, H1, Co57, -1, Ni57, Co57, k_n_Ni57_to_p_Co57_reaclib, k_p_Co57_to_n_Ni57_reaclib, - N, Ni57, -1, He4, Fe54, -1, Ni57, Fe54, k_n_Ni57_to_He4_Fe54_reaclib, k_He4_Fe54_to_n_Ni57_reaclib, - N, Ni58, -1, H1, Co58, -1, Ni58, Co58, k_n_Ni58_to_p_Co58_reaclib, k_p_Co58_to_n_Ni58_reaclib, - N, Ni58, -1, He4, Fe55, -1, Ni58, Fe55, k_n_Ni58_to_He4_Fe55_reaclib, k_He4_Fe55_to_n_Ni58_reaclib, - N, Ni59, -1, H1, Co59, -1, Ni59, Co59, k_n_Ni59_to_p_Co59_reaclib, k_p_Co59_to_n_Ni59_reaclib, - N, Ni59, -1, He4, Fe56, -1, Ni59, Fe56, k_n_Ni59_to_He4_Fe56_reaclib, k_He4_Fe56_to_n_Ni59_reaclib, - N, Ni60, -1, He4, Fe57, -1, Ni60, Fe57, k_n_Ni60_to_He4_Fe57_reaclib, k_He4_Fe57_to_n_Ni60_reaclib, - N, Ni61, -1, He4, Fe58, -1, Ni61, Fe58, k_n_Ni61_to_He4_Fe58_reaclib, k_He4_Fe58_to_n_Ni61_reaclib, - H1, Ni61, -1, He4, Co58, -1, Ni61, Co58, k_p_Ni61_to_He4_Co58_reaclib, k_He4_Co58_to_p_Ni61_reaclib, - H1, Ni62, -1, He4, Co59, -1, Ni62, Co59, k_p_Ni62_to_He4_Co59_reaclib, k_He4_Co59_to_p_Ni62_reaclib, - N, Cu57, -1, H1, Ni57, -1, Cu57, Ni57, k_n_Cu57_to_p_Ni57_reaclib, k_p_Ni57_to_n_Cu57_reaclib, - N, Cu57, -1, He4, Co54, -1, Cu57, Co54, k_n_Cu57_to_He4_Co54_reaclib, k_He4_Co54_to_n_Cu57_reaclib, - He4, Cu57, -1, H1, Zn60, -1, Cu57, Zn60, k_He4_Cu57_to_p_Zn60_reaclib, k_p_Zn60_to_He4_Cu57_reaclib, - N, Cu58, -1, H1, Ni58, -1, Cu58, Ni58, k_n_Cu58_to_p_Ni58_reaclib, k_p_Ni58_to_n_Cu58_reaclib, - N, Cu58, -1, He4, Co55, -1, Cu58, Co55, k_n_Cu58_to_He4_Co55_reaclib, k_He4_Co55_to_n_Cu58_reaclib, - N, Cu59, -1, H1, Ni59, -1, Cu59, Ni59, k_n_Cu59_to_p_Ni59_reaclib, k_p_Ni59_to_n_Cu59_reaclib, - N, Cu59, -1, He4, Co56, -1, Cu59, Co56, k_n_Cu59_to_He4_Co56_reaclib, k_He4_Co56_to_n_Cu59_reaclib, - H1, Cu59, -1, He4, Ni56, -1, Cu59, Ni56, k_p_Cu59_to_He4_Ni56_reaclib, k_He4_Ni56_to_p_Cu59_reaclib, - N, Cu60, -1, H1, Ni60, -1, Cu60, Ni60, k_n_Cu60_to_p_Ni60_reaclib, k_p_Ni60_to_n_Cu60_reaclib, - N, Cu60, -1, He4, Co57, -1, Cu60, Co57, k_n_Cu60_to_He4_Co57_reaclib, k_He4_Co57_to_n_Cu60_reaclib, - H1, Cu60, -1, He4, Ni57, -1, Cu60, Ni57, k_p_Cu60_to_He4_Ni57_reaclib, k_He4_Ni57_to_p_Cu60_reaclib, - N, Cu61, -1, H1, Ni61, -1, Cu61, Ni61, k_n_Cu61_to_p_Ni61_reaclib, k_p_Ni61_to_n_Cu61_reaclib, - N, Cu61, -1, He4, Co58, -1, Cu61, Co58, k_n_Cu61_to_He4_Co58_reaclib, k_He4_Co58_to_n_Cu61_reaclib, - H1, Cu61, -1, He4, Ni58, -1, Cu61, Ni58, k_p_Cu61_to_He4_Ni58_reaclib, k_He4_Ni58_to_p_Cu61_reaclib, - N, Cu62, -1, H1, Ni62, -1, Cu62, Ni62, k_n_Cu62_to_p_Ni62_reaclib, k_p_Ni62_to_n_Cu62_reaclib, - N, Cu62, -1, He4, Co59, -1, Cu62, Co59, k_n_Cu62_to_He4_Co59_reaclib, k_He4_Co59_to_n_Cu62_reaclib, - H1, Cu62, -1, He4, Ni59, -1, Cu62, Ni59, k_p_Cu62_to_He4_Ni59_reaclib, k_He4_Ni59_to_p_Cu62_reaclib, - N, Cu63, -1, H1, Ni63, -1, Cu63, Ni63, k_n_Cu63_to_p_Ni63_reaclib, k_p_Ni63_to_n_Cu63_reaclib, - H1, Cu63, -1, He4, Ni60, -1, Cu63, Ni60, k_p_Cu63_to_He4_Ni60_reaclib, k_He4_Ni60_to_p_Cu63_reaclib, - N, Cu64, -1, H1, Ni64, -1, Cu64, Ni64, k_n_Cu64_to_p_Ni64_reaclib, k_p_Ni64_to_n_Cu64_reaclib, - H1, Cu64, -1, He4, Ni61, -1, Cu64, Ni61, k_p_Cu64_to_He4_Ni61_reaclib, k_He4_Ni61_to_p_Cu64_reaclib, - H1, Cu65, -1, He4, Ni62, -1, Cu65, Ni62, k_p_Cu65_to_He4_Ni62_reaclib, k_He4_Ni62_to_p_Cu65_reaclib, - N, Zn59, -1, H1, Cu59, -1, Zn59, Cu59, k_n_Zn59_to_p_Cu59_reaclib, k_p_Cu59_to_n_Zn59_reaclib, - N, Zn59, -1, He4, Ni56, -1, Zn59, Ni56, k_n_Zn59_to_He4_Ni56_reaclib, k_He4_Ni56_to_n_Zn59_reaclib, - N, Zn60, -1, H1, Cu60, -1, Zn60, Cu60, k_n_Zn60_to_p_Cu60_reaclib, k_p_Cu60_to_n_Zn60_reaclib, - N, Zn60, -1, He4, Ni57, -1, Zn60, Ni57, k_n_Zn60_to_He4_Ni57_reaclib, k_He4_Ni57_to_n_Zn60_reaclib, - N, Zn61, -1, H1, Cu61, -1, Zn61, Cu61, k_n_Zn61_to_p_Cu61_reaclib, k_p_Cu61_to_n_Zn61_reaclib, - N, Zn61, -1, He4, Ni58, -1, Zn61, Ni58, k_n_Zn61_to_He4_Ni58_reaclib, k_He4_Ni58_to_n_Zn61_reaclib, - H1, Zn61, -1, He4, Cu58, -1, Zn61, Cu58, k_p_Zn61_to_He4_Cu58_reaclib, k_He4_Cu58_to_p_Zn61_reaclib, - N, Zn62, -1, H1, Cu62, -1, Zn62, Cu62, k_n_Zn62_to_p_Cu62_reaclib, k_p_Cu62_to_n_Zn62_reaclib, - N, Zn62, -1, He4, Ni59, -1, Zn62, Ni59, k_n_Zn62_to_He4_Ni59_reaclib, k_He4_Ni59_to_n_Zn62_reaclib, - H1, Zn62, -1, He4, Cu59, -1, Zn62, Cu59, k_p_Zn62_to_He4_Cu59_reaclib, k_He4_Cu59_to_p_Zn62_reaclib, - N, Zn63, -1, H1, Cu63, -1, Zn63, Cu63, k_n_Zn63_to_p_Cu63_reaclib, k_p_Cu63_to_n_Zn63_reaclib, - N, Zn63, -1, He4, Ni60, -1, Zn63, Ni60, k_n_Zn63_to_He4_Ni60_reaclib, k_He4_Ni60_to_n_Zn63_reaclib, - H1, Zn63, -1, He4, Cu60, -1, Zn63, Cu60, k_p_Zn63_to_He4_Cu60_reaclib, k_He4_Cu60_to_p_Zn63_reaclib, - N, Zn64, -1, H1, Cu64, -1, Zn64, Cu64, k_n_Zn64_to_p_Cu64_reaclib, k_p_Cu64_to_n_Zn64_reaclib, - N, Zn64, -1, He4, Ni61, -1, Zn64, Ni61, k_n_Zn64_to_He4_Ni61_reaclib, k_He4_Ni61_to_n_Zn64_reaclib, - H1, Zn64, -1, He4, Cu61, -1, Zn64, Cu61, k_p_Zn64_to_He4_Cu61_reaclib, k_He4_Cu61_to_p_Zn64_reaclib, - N, Zn65, -1, H1, Cu65, -1, Zn65, Cu65, k_n_Zn65_to_p_Cu65_reaclib, k_p_Cu65_to_n_Zn65_reaclib, - N, Zn65, -1, He4, Ni62, -1, Zn65, Ni62, k_n_Zn65_to_He4_Ni62_reaclib, k_He4_Ni62_to_n_Zn65_reaclib, - H1, Zn65, -1, He4, Cu62, -1, Zn65, Cu62, k_p_Zn65_to_He4_Cu62_reaclib, k_He4_Cu62_to_p_Zn65_reaclib, - N, Zn66, -1, He4, Ni63, -1, Zn66, Ni63, k_n_Zn66_to_He4_Ni63_reaclib, k_He4_Ni63_to_n_Zn66_reaclib, - H1, Zn66, -1, He4, Cu63, -1, Zn66, Cu63, k_p_Zn66_to_He4_Cu63_reaclib, k_He4_Cu63_to_p_Zn66_reaclib, - N, Ga62, -1, H1, Zn62, -1, Ga62, Zn62, k_n_Ga62_to_p_Zn62_reaclib, k_p_Zn62_to_n_Ga62_reaclib, - N, Ga62, -1, He4, Cu59, -1, Ga62, Cu59, k_n_Ga62_to_He4_Cu59_reaclib, k_He4_Cu59_to_n_Ga62_reaclib, - H1, Ga62, -1, He4, Zn59, -1, Ga62, Zn59, k_p_Ga62_to_He4_Zn59_reaclib, k_He4_Zn59_to_p_Ga62_reaclib, - N, Ga63, -1, H1, Zn63, -1, Ga63, Zn63, k_n_Ga63_to_p_Zn63_reaclib, k_p_Zn63_to_n_Ga63_reaclib, - N, Ga63, -1, He4, Cu60, -1, Ga63, Cu60, k_n_Ga63_to_He4_Cu60_reaclib, k_He4_Cu60_to_n_Ga63_reaclib, - H1, Ga63, -1, He4, Zn60, -1, Ga63, Zn60, k_p_Ga63_to_He4_Zn60_reaclib, k_He4_Zn60_to_p_Ga63_reaclib, - N, Ga64, -1, H1, Zn64, -1, Ga64, Zn64, k_n_Ga64_to_p_Zn64_reaclib, k_p_Zn64_to_n_Ga64_reaclib, - N, Ga64, -1, He4, Cu61, -1, Ga64, Cu61, k_n_Ga64_to_He4_Cu61_reaclib, k_He4_Cu61_to_n_Ga64_reaclib, - H1, Ga64, -1, He4, Zn61, -1, Ga64, Zn61, k_p_Ga64_to_He4_Zn61_reaclib, k_He4_Zn61_to_p_Ga64_reaclib, - N, Ge63, -1, H1, Ga63, -1, Ge63, Ga63, k_n_Ge63_to_p_Ga63_reaclib, k_p_Ga63_to_n_Ge63_reaclib, - N, Ge63, -1, He4, Zn60, -1, Ge63, Zn60, k_n_Ge63_to_He4_Zn60_reaclib, k_He4_Zn60_to_n_Ge63_reaclib, - N, Ge64, -1, H1, Ga64, -1, Ge64, Ga64, k_n_Ge64_to_p_Ga64_reaclib, k_p_Ga64_to_n_Ge64_reaclib, - N, Ge64, -1, He4, Zn61, -1, Ge64, Zn61, k_n_Ge64_to_He4_Zn61_reaclib, k_He4_Zn61_to_n_Ge64_reaclib, - He4, He4, He4, C12, -1, -1, C12, -1, k_He4_He4_He4_to_C12_reaclib, k_C12_to_He4_He4_He4_reaclib + N, H1, -1, H2, -1, -1, H2, -1, k_p_n_to_d_reaclib, k_d_to_n_p_derived, + H1, H2, -1, He3, -1, -1, H2, He3, k_d_p_to_He3_reaclib, k_He3_to_p_d_derived, + H2, H2, -1, He4, -1, -1, H2, H2, k_d_d_to_He4_reaclib, k_He4_to_d_d_derived, + He4, H2, -1, Li6, -1, -1, H2, Li6, k_d_He4_to_Li6_reaclib, k_Li6_to_He4_d_derived, + N, He3, -1, He4, -1, -1, He3, -1, k_He3_n_to_He4_reaclib, k_He4_to_n_He3_derived, + He4, He3, -1, Be7, -1, -1, He3, Be7, k_He3_He4_to_Be7_reaclib, k_Be7_to_He4_He3_derived, + N, Li6, -1, Li7, -1, -1, Li6, Li7, k_Li6_n_to_Li7_reaclib, k_Li7_to_n_Li6_derived, + H1, Li6, -1, Be7, -1, -1, Li6, Be7, k_Li6_p_to_Be7_reaclib, k_Be7_to_p_Li6_derived, + He4, Li6, -1, B10, -1, -1, Li6, B10, k_Li6_He4_to_B10_reaclib, k_B10_to_He4_Li6_derived, + He4, Li7, -1, B11, -1, -1, Li7, B11, k_Li7_He4_to_B11_reaclib, k_B11_to_He4_Li7_derived, + H1, Be7, -1, B8, -1, -1, Be7, B8, k_Be7_p_to_B8_reaclib, k_B8_to_p_Be7_derived, + H1, Be9, -1, B10, -1, -1, Be9, B10, k_Be9_p_to_B10_reaclib, k_B10_to_p_Be9_derived, + N, B10, -1, B11, -1, -1, B10, B11, k_B10_n_to_B11_reaclib, k_B11_to_n_B10_derived, + H1, B11, -1, C12, -1, -1, B11, C12, k_B11_p_to_C12_reaclib, k_C12_to_p_B11_derived, + N, C12, -1, C13, -1, -1, C12, C13, k_C12_n_to_C13_reaclib, k_C13_to_n_C12_derived, + H1, C12, -1, N13, -1, -1, C12, N13, k_C12_p_to_N13_reaclib, k_N13_to_p_C12_derived, + He4, C12, -1, O16, -1, -1, C12, O16, k_C12_He4_to_O16_reaclib, k_O16_to_He4_C12_derived, + N, C13, -1, C14, -1, -1, C13, C14, k_C13_n_to_C14_reaclib, k_C14_to_n_C13_derived, + H1, C13, -1, N14, -1, -1, C13, N14, k_C13_p_to_N14_reaclib, k_N14_to_p_C13_derived, + H1, C14, -1, N15, -1, -1, C14, N15, k_C14_p_to_N15_reaclib, k_N15_to_p_C14_derived, + He4, C14, -1, O18, -1, -1, C14, O18, k_C14_He4_to_O18_reaclib, k_O18_to_He4_C14_derived, + N, N13, -1, N14, -1, -1, N13, N14, k_N13_n_to_N14_reaclib, k_N14_to_n_N13_derived, + H1, N13, -1, O14, -1, -1, N13, O14, k_N13_p_to_O14_reaclib, k_O14_to_p_N13_derived, + N, N14, -1, N15, -1, -1, N14, N15, k_N14_n_to_N15_reaclib, k_N15_to_n_N14_derived, + H1, N14, -1, O15, -1, -1, N14, O15, k_N14_p_to_O15_reaclib, k_O15_to_p_N14_derived, + He4, N14, -1, F18, -1, -1, N14, F18, k_N14_He4_to_F18_reaclib, k_F18_to_He4_N14_derived, + H1, N15, -1, O16, -1, -1, N15, O16, k_N15_p_to_O16_reaclib, k_O16_to_p_N15_derived, + He4, N15, -1, F19, -1, -1, N15, F19, k_N15_He4_to_F19_reaclib, k_F19_to_He4_N15_derived, + N, O14, -1, O15, -1, -1, O14, O15, k_O14_n_to_O15_reaclib, k_O15_to_n_O14_derived, + He4, O14, -1, Ne18, -1, -1, O14, Ne18, k_O14_He4_to_Ne18_reaclib, k_Ne18_to_He4_O14_derived, + N, O15, -1, O16, -1, -1, O15, O16, k_O15_n_to_O16_reaclib, k_O16_to_n_O15_derived, + He4, O15, -1, Ne19, -1, -1, O15, Ne19, k_O15_He4_to_Ne19_reaclib, k_Ne19_to_He4_O15_derived, + N, O16, -1, O17, -1, -1, O16, O17, k_O16_n_to_O17_reaclib, k_O17_to_n_O16_derived, + H1, O16, -1, F17, -1, -1, O16, F17, k_O16_p_to_F17_reaclib, k_F17_to_p_O16_derived, + He4, O16, -1, Ne20, -1, -1, O16, Ne20, k_O16_He4_to_Ne20_reaclib, k_Ne20_to_He4_O16_derived, + N, O17, -1, O18, -1, -1, O17, O18, k_O17_n_to_O18_reaclib, k_O18_to_n_O17_derived, + H1, O17, -1, F18, -1, -1, O17, F18, k_O17_p_to_F18_reaclib, k_F18_to_p_O17_derived, + He4, O17, -1, Ne21, -1, -1, O17, Ne21, k_O17_He4_to_Ne21_reaclib, k_Ne21_to_He4_O17_derived, + H1, O18, -1, F19, -1, -1, O18, F19, k_O18_p_to_F19_reaclib, k_F19_to_p_O18_derived, + He4, O18, -1, Ne22, -1, -1, O18, Ne22, k_O18_He4_to_Ne22_reaclib, k_Ne22_to_He4_O18_derived, + N, F17, -1, F18, -1, -1, F17, F18, k_F17_n_to_F18_reaclib, k_F18_to_n_F17_derived, + H1, F17, -1, Ne18, -1, -1, F17, Ne18, k_F17_p_to_Ne18_reaclib, k_Ne18_to_p_F17_derived, + He4, F17, -1, Na21, -1, -1, F17, Na21, k_F17_He4_to_Na21_reaclib, k_Na21_to_He4_F17_derived, + N, F18, -1, F19, -1, -1, F18, F19, k_F18_n_to_F19_reaclib, k_F19_to_n_F18_derived, + H1, F18, -1, Ne19, -1, -1, F18, Ne19, k_F18_p_to_Ne19_reaclib, k_Ne19_to_p_F18_derived, + He4, F18, -1, Na22, -1, -1, F18, Na22, k_F18_He4_to_Na22_reaclib, k_Na22_to_He4_F18_derived, + H1, F19, -1, Ne20, -1, -1, F19, Ne20, k_F19_p_to_Ne20_reaclib, k_Ne20_to_p_F19_derived, + He4, F19, -1, Na23, -1, -1, F19, Na23, k_F19_He4_to_Na23_reaclib, k_Na23_to_He4_F19_derived, + N, Ne18, -1, Ne19, -1, -1, Ne18, Ne19, k_Ne18_n_to_Ne19_reaclib, k_Ne19_to_n_Ne18_derived, + N, Ne19, -1, Ne20, -1, -1, Ne19, Ne20, k_Ne19_n_to_Ne20_reaclib, k_Ne20_to_n_Ne19_derived, + He4, Ne19, -1, Mg23, -1, -1, Ne19, Mg23, k_Ne19_He4_to_Mg23_reaclib, k_Mg23_to_He4_Ne19_derived, + N, Ne20, -1, Ne21, -1, -1, Ne20, Ne21, k_Ne20_n_to_Ne21_reaclib, k_Ne21_to_n_Ne20_derived, + H1, Ne20, -1, Na21, -1, -1, Ne20, Na21, k_Ne20_p_to_Na21_reaclib, k_Na21_to_p_Ne20_derived, + He4, Ne20, -1, Mg24, -1, -1, Ne20, Mg24, k_Ne20_He4_to_Mg24_reaclib, k_Mg24_to_He4_Ne20_derived, + N, Ne21, -1, Ne22, -1, -1, Ne21, Ne22, k_Ne21_n_to_Ne22_reaclib, k_Ne22_to_n_Ne21_derived, + H1, Ne21, -1, Na22, -1, -1, Ne21, Na22, k_Ne21_p_to_Na22_reaclib, k_Na22_to_p_Ne21_derived, + He4, Ne21, -1, Mg25, -1, -1, Ne21, Mg25, k_Ne21_He4_to_Mg25_reaclib, k_Mg25_to_He4_Ne21_derived, + H1, Ne22, -1, Na23, -1, -1, Ne22, Na23, k_Ne22_p_to_Na23_reaclib, k_Na23_to_p_Ne22_derived, + He4, Ne22, -1, Mg26, -1, -1, Ne22, Mg26, k_Ne22_He4_to_Mg26_reaclib, k_Mg26_to_He4_Ne22_derived, + N, Na21, -1, Na22, -1, -1, Na21, Na22, k_Na21_n_to_Na22_reaclib, k_Na22_to_n_Na21_derived, + He4, Na21, -1, Al25, -1, -1, Na21, Al25, k_Na21_He4_to_Al25_reaclib, k_Al25_to_He4_Na21_derived, + N, Na22, -1, Na23, -1, -1, Na22, Na23, k_Na22_n_to_Na23_reaclib, k_Na23_to_n_Na22_derived, + H1, Na22, -1, Mg23, -1, -1, Na22, Mg23, k_Na22_p_to_Mg23_reaclib, k_Mg23_to_p_Na22_derived, + He4, Na22, -1, Al26, -1, -1, Na22, Al26, k_Na22_He4_to_Al26_reaclib, k_Al26_to_He4_Na22_derived, + H1, Na23, -1, Mg24, -1, -1, Na23, Mg24, k_Na23_p_to_Mg24_reaclib, k_Mg24_to_p_Na23_derived, + He4, Na23, -1, Al27, -1, -1, Na23, Al27, k_Na23_He4_to_Al27_reaclib, k_Al27_to_He4_Na23_derived, + N, Mg23, -1, Mg24, -1, -1, Mg23, Mg24, k_Mg23_n_to_Mg24_reaclib, k_Mg24_to_n_Mg23_derived, + N, Mg24, -1, Mg25, -1, -1, Mg24, Mg25, k_Mg24_n_to_Mg25_reaclib, k_Mg25_to_n_Mg24_derived, + H1, Mg24, -1, Al25, -1, -1, Mg24, Al25, k_Mg24_p_to_Al25_reaclib, k_Al25_to_p_Mg24_derived, + He4, Mg24, -1, Si28, -1, -1, Mg24, Si28, k_Mg24_He4_to_Si28_reaclib, k_Si28_to_He4_Mg24_derived, + N, Mg25, -1, Mg26, -1, -1, Mg25, Mg26, k_Mg25_n_to_Mg26_reaclib, k_Mg26_to_n_Mg25_derived, + H1, Mg25, -1, Al26, -1, -1, Mg25, Al26, k_Mg25_p_to_Al26_reaclib, k_Al26_to_p_Mg25_derived, + He4, Mg25, -1, Si29, -1, -1, Mg25, Si29, k_Mg25_He4_to_Si29_reaclib, k_Si29_to_He4_Mg25_derived, + H1, Mg26, -1, Al27, -1, -1, Mg26, Al27, k_Mg26_p_to_Al27_reaclib, k_Al27_to_p_Mg26_derived, + He4, Mg26, -1, Si30, -1, -1, Mg26, Si30, k_Mg26_He4_to_Si30_reaclib, k_Si30_to_He4_Mg26_derived, + N, Al25, -1, Al26, -1, -1, Al25, Al26, k_Al25_n_to_Al26_reaclib, k_Al26_to_n_Al25_derived, + He4, Al25, -1, P29, -1, -1, Al25, P29, k_Al25_He4_to_P29_reaclib, k_P29_to_He4_Al25_derived, + N, Al26, -1, Al27, -1, -1, Al26, Al27, k_Al26_n_to_Al27_reaclib, k_Al27_to_n_Al26_derived, + He4, Al26, -1, P30, -1, -1, Al26, P30, k_Al26_He4_to_P30_reaclib, k_P30_to_He4_Al26_derived, + H1, Al27, -1, Si28, -1, -1, Al27, Si28, k_Al27_p_to_Si28_reaclib, k_Si28_to_p_Al27_derived, + He4, Al27, -1, P31, -1, -1, Al27, P31, k_Al27_He4_to_P31_reaclib, k_P31_to_He4_Al27_derived, + N, Si28, -1, Si29, -1, -1, Si28, Si29, k_Si28_n_to_Si29_reaclib, k_Si29_to_n_Si28_derived, + H1, Si28, -1, P29, -1, -1, Si28, P29, k_Si28_p_to_P29_reaclib, k_P29_to_p_Si28_derived, + He4, Si28, -1, S32, -1, -1, Si28, S32, k_Si28_He4_to_S32_reaclib, k_S32_to_He4_Si28_derived, + N, Si29, -1, Si30, -1, -1, Si29, Si30, k_Si29_n_to_Si30_reaclib, k_Si30_to_n_Si29_derived, + H1, Si29, -1, P30, -1, -1, Si29, P30, k_Si29_p_to_P30_reaclib, k_P30_to_p_Si29_derived, + He4, Si29, -1, S33, -1, -1, Si29, S33, k_Si29_He4_to_S33_reaclib, k_S33_to_He4_Si29_derived, + N, Si30, -1, Si31, -1, -1, Si30, Si31, k_Si30_n_to_Si31_reaclib, k_Si31_to_n_Si30_derived, + H1, Si30, -1, P31, -1, -1, Si30, P31, k_Si30_p_to_P31_reaclib, k_P31_to_p_Si30_derived, + He4, Si30, -1, S34, -1, -1, Si30, S34, k_Si30_He4_to_S34_reaclib, k_S34_to_He4_Si30_derived, + N, Si31, -1, Si32, -1, -1, Si31, Si32, k_Si31_n_to_Si32_reaclib, k_Si32_to_n_Si31_derived, + H1, Si31, -1, P32, -1, -1, Si31, P32, k_Si31_p_to_P32_reaclib, k_P32_to_p_Si31_derived, + He4, Si31, -1, S35, -1, -1, Si31, S35, k_Si31_He4_to_S35_reaclib, k_S35_to_He4_Si31_derived, + H1, Si32, -1, P33, -1, -1, Si32, P33, k_Si32_p_to_P33_reaclib, k_P33_to_p_Si32_derived, + He4, Si32, -1, S36, -1, -1, Si32, S36, k_Si32_He4_to_S36_reaclib, k_S36_to_He4_Si32_derived, + N, P29, -1, P30, -1, -1, P29, P30, k_P29_n_to_P30_reaclib, k_P30_to_n_P29_derived, + He4, P29, -1, Cl33, -1, -1, P29, Cl33, k_P29_He4_to_Cl33_reaclib, k_Cl33_to_He4_P29_derived, + N, P30, -1, P31, -1, -1, P30, P31, k_P30_n_to_P31_reaclib, k_P31_to_n_P30_derived, + He4, P30, -1, Cl34, -1, -1, P30, Cl34, k_P30_He4_to_Cl34_reaclib, k_Cl34_to_He4_P30_derived, + N, P31, -1, P32, -1, -1, P31, P32, k_P31_n_to_P32_reaclib, k_P32_to_n_P31_derived, + H1, P31, -1, S32, -1, -1, P31, S32, k_P31_p_to_S32_reaclib, k_S32_to_p_P31_derived, + He4, P31, -1, Cl35, -1, -1, P31, Cl35, k_P31_He4_to_Cl35_reaclib, k_Cl35_to_He4_P31_derived, + N, P32, -1, P33, -1, -1, P32, P33, k_P32_n_to_P33_reaclib, k_P33_to_n_P32_derived, + H1, P32, -1, S33, -1, -1, P32, S33, k_P32_p_to_S33_reaclib, k_S33_to_p_P32_derived, + He4, P32, -1, Cl36, -1, -1, P32, Cl36, k_P32_He4_to_Cl36_reaclib, k_Cl36_to_He4_P32_derived, + H1, P33, -1, S34, -1, -1, P33, S34, k_P33_p_to_S34_reaclib, k_S34_to_p_P33_derived, + He4, P33, -1, Cl37, -1, -1, P33, Cl37, k_P33_He4_to_Cl37_reaclib, k_Cl37_to_He4_P33_derived, + N, S32, -1, S33, -1, -1, S32, S33, k_S32_n_to_S33_reaclib, k_S33_to_n_S32_derived, + H1, S32, -1, Cl33, -1, -1, S32, Cl33, k_S32_p_to_Cl33_reaclib, k_Cl33_to_p_S32_derived, + He4, S32, -1, Ar36, -1, -1, S32, Ar36, k_S32_He4_to_Ar36_reaclib, k_Ar36_to_He4_S32_derived, + N, S33, -1, S34, -1, -1, S33, S34, k_S33_n_to_S34_reaclib, k_S34_to_n_S33_derived, + H1, S33, -1, Cl34, -1, -1, S33, Cl34, k_S33_p_to_Cl34_reaclib, k_Cl34_to_p_S33_derived, + He4, S33, -1, Ar37, -1, -1, S33, Ar37, k_S33_He4_to_Ar37_reaclib, k_Ar37_to_He4_S33_derived, + N, S34, -1, S35, -1, -1, S34, S35, k_S34_n_to_S35_reaclib, k_S35_to_n_S34_derived, + H1, S34, -1, Cl35, -1, -1, S34, Cl35, k_S34_p_to_Cl35_reaclib, k_Cl35_to_p_S34_derived, + He4, S34, -1, Ar38, -1, -1, S34, Ar38, k_S34_He4_to_Ar38_reaclib, k_Ar38_to_He4_S34_derived, + N, S35, -1, S36, -1, -1, S35, S36, k_S35_n_to_S36_reaclib, k_S36_to_n_S35_derived, + H1, S35, -1, Cl36, -1, -1, S35, Cl36, k_S35_p_to_Cl36_reaclib, k_Cl36_to_p_S35_derived, + He4, S35, -1, Ar39, -1, -1, S35, Ar39, k_S35_He4_to_Ar39_reaclib, k_Ar39_to_He4_S35_derived, + H1, S36, -1, Cl37, -1, -1, S36, Cl37, k_S36_p_to_Cl37_reaclib, k_Cl37_to_p_S36_derived, + He4, S36, -1, Ar40, -1, -1, S36, Ar40, k_S36_He4_to_Ar40_reaclib, k_Ar40_to_He4_S36_derived, + N, Cl33, -1, Cl34, -1, -1, Cl33, Cl34, k_Cl33_n_to_Cl34_reaclib, k_Cl34_to_n_Cl33_derived, + He4, Cl33, -1, K37, -1, -1, Cl33, K37, k_Cl33_He4_to_K37_reaclib, k_K37_to_He4_Cl33_derived, + N, Cl34, -1, Cl35, -1, -1, Cl34, Cl35, k_Cl34_n_to_Cl35_reaclib, k_Cl35_to_n_Cl34_derived, + He4, Cl34, -1, K38, -1, -1, Cl34, K38, k_Cl34_He4_to_K38_reaclib, k_K38_to_He4_Cl34_derived, + N, Cl35, -1, Cl36, -1, -1, Cl35, Cl36, k_Cl35_n_to_Cl36_reaclib, k_Cl36_to_n_Cl35_derived, + H1, Cl35, -1, Ar36, -1, -1, Cl35, Ar36, k_Cl35_p_to_Ar36_reaclib, k_Ar36_to_p_Cl35_derived, + He4, Cl35, -1, K39, -1, -1, Cl35, K39, k_Cl35_He4_to_K39_reaclib, k_K39_to_He4_Cl35_derived, + N, Cl36, -1, Cl37, -1, -1, Cl36, Cl37, k_Cl36_n_to_Cl37_reaclib, k_Cl37_to_n_Cl36_derived, + H1, Cl36, -1, Ar37, -1, -1, Cl36, Ar37, k_Cl36_p_to_Ar37_reaclib, k_Ar37_to_p_Cl36_derived, + He4, Cl36, -1, K40, -1, -1, Cl36, K40, k_Cl36_He4_to_K40_reaclib, k_K40_to_He4_Cl36_derived, + H1, Cl37, -1, Ar38, -1, -1, Cl37, Ar38, k_Cl37_p_to_Ar38_reaclib, k_Ar38_to_p_Cl37_derived, + He4, Cl37, -1, K41, -1, -1, Cl37, K41, k_Cl37_He4_to_K41_reaclib, k_K41_to_He4_Cl37_derived, + N, Ar36, -1, Ar37, -1, -1, Ar36, Ar37, k_Ar36_n_to_Ar37_reaclib, k_Ar37_to_n_Ar36_derived, + H1, Ar36, -1, K37, -1, -1, Ar36, K37, k_Ar36_p_to_K37_reaclib, k_K37_to_p_Ar36_derived, + He4, Ar36, -1, Ca40, -1, -1, Ar36, Ca40, k_Ar36_He4_to_Ca40_reaclib, k_Ca40_to_He4_Ar36_derived, + N, Ar37, -1, Ar38, -1, -1, Ar37, Ar38, k_Ar37_n_to_Ar38_reaclib, k_Ar38_to_n_Ar37_derived, + H1, Ar37, -1, K38, -1, -1, Ar37, K38, k_Ar37_p_to_K38_reaclib, k_K38_to_p_Ar37_derived, + He4, Ar37, -1, Ca41, -1, -1, Ar37, Ca41, k_Ar37_He4_to_Ca41_reaclib, k_Ca41_to_He4_Ar37_derived, + N, Ar38, -1, Ar39, -1, -1, Ar38, Ar39, k_Ar38_n_to_Ar39_reaclib, k_Ar39_to_n_Ar38_derived, + H1, Ar38, -1, K39, -1, -1, Ar38, K39, k_Ar38_p_to_K39_reaclib, k_K39_to_p_Ar38_derived, + He4, Ar38, -1, Ca42, -1, -1, Ar38, Ca42, k_Ar38_He4_to_Ca42_reaclib, k_Ca42_to_He4_Ar38_derived, + N, Ar39, -1, Ar40, -1, -1, Ar39, Ar40, k_Ar39_n_to_Ar40_reaclib, k_Ar40_to_n_Ar39_derived, + H1, Ar39, -1, K40, -1, -1, Ar39, K40, k_Ar39_p_to_K40_reaclib, k_K40_to_p_Ar39_derived, + He4, Ar39, -1, Ca43, -1, -1, Ar39, Ca43, k_Ar39_He4_to_Ca43_reaclib, k_Ca43_to_He4_Ar39_derived, + H1, Ar40, -1, K41, -1, -1, Ar40, K41, k_Ar40_p_to_K41_reaclib, k_K41_to_p_Ar40_derived, + He4, Ar40, -1, Ca44, -1, -1, Ar40, Ca44, k_Ar40_He4_to_Ca44_reaclib, k_Ca44_to_He4_Ar40_derived, + N, K37, -1, K38, -1, -1, K37, K38, k_K37_n_to_K38_reaclib, k_K38_to_n_K37_derived, + N, K38, -1, K39, -1, -1, K38, K39, k_K38_n_to_K39_reaclib, k_K39_to_n_K38_derived, + N, K39, -1, K40, -1, -1, K39, K40, k_K39_n_to_K40_reaclib, k_K40_to_n_K39_derived, + H1, K39, -1, Ca40, -1, -1, K39, Ca40, k_K39_p_to_Ca40_reaclib, k_Ca40_to_p_K39_derived, + He4, K39, -1, Sc43, -1, -1, K39, Sc43, k_K39_He4_to_Sc43_reaclib, k_Sc43_to_He4_K39_derived, + N, K40, -1, K41, -1, -1, K40, K41, k_K40_n_to_K41_reaclib, k_K41_to_n_K40_derived, + H1, K40, -1, Ca41, -1, -1, K40, Ca41, k_K40_p_to_Ca41_reaclib, k_Ca41_to_p_K40_derived, + He4, K40, -1, Sc44, -1, -1, K40, Sc44, k_K40_He4_to_Sc44_reaclib, k_Sc44_to_He4_K40_derived, + H1, K41, -1, Ca42, -1, -1, K41, Ca42, k_K41_p_to_Ca42_reaclib, k_Ca42_to_p_K41_derived, + He4, K41, -1, Sc45, -1, -1, K41, Sc45, k_K41_He4_to_Sc45_reaclib, k_Sc45_to_He4_K41_derived, + N, Ca40, -1, Ca41, -1, -1, Ca40, Ca41, k_Ca40_n_to_Ca41_reaclib, k_Ca41_to_n_Ca40_derived, + He4, Ca40, -1, Ti44, -1, -1, Ca40, Ti44, k_Ca40_He4_to_Ti44_reaclib, k_Ti44_to_He4_Ca40_derived, + N, Ca41, -1, Ca42, -1, -1, Ca41, Ca42, k_Ca41_n_to_Ca42_reaclib, k_Ca42_to_n_Ca41_derived, + He4, Ca41, -1, Ti45, -1, -1, Ca41, Ti45, k_Ca41_He4_to_Ti45_reaclib, k_Ti45_to_He4_Ca41_derived, + N, Ca42, -1, Ca43, -1, -1, Ca42, Ca43, k_Ca42_n_to_Ca43_reaclib, k_Ca43_to_n_Ca42_derived, + H1, Ca42, -1, Sc43, -1, -1, Ca42, Sc43, k_Ca42_p_to_Sc43_reaclib, k_Sc43_to_p_Ca42_derived, + He4, Ca42, -1, Ti46, -1, -1, Ca42, Ti46, k_Ca42_He4_to_Ti46_reaclib, k_Ti46_to_He4_Ca42_derived, + N, Ca43, -1, Ca44, -1, -1, Ca43, Ca44, k_Ca43_n_to_Ca44_reaclib, k_Ca44_to_n_Ca43_derived, + H1, Ca43, -1, Sc44, -1, -1, Ca43, Sc44, k_Ca43_p_to_Sc44_reaclib, k_Sc44_to_p_Ca43_derived, + He4, Ca43, -1, Ti47, -1, -1, Ca43, Ti47, k_Ca43_He4_to_Ti47_reaclib, k_Ti47_to_He4_Ca43_derived, + N, Ca44, -1, Ca45, -1, -1, Ca44, Ca45, k_Ca44_n_to_Ca45_reaclib, k_Ca45_to_n_Ca44_derived, + H1, Ca44, -1, Sc45, -1, -1, Ca44, Sc45, k_Ca44_p_to_Sc45_reaclib, k_Sc45_to_p_Ca44_derived, + He4, Ca44, -1, Ti48, -1, -1, Ca44, Ti48, k_Ca44_He4_to_Ti48_reaclib, k_Ti48_to_He4_Ca44_derived, + N, Ca45, -1, Ca46, -1, -1, Ca45, Ca46, k_Ca45_n_to_Ca46_reaclib, k_Ca46_to_n_Ca45_derived, + H1, Ca45, -1, Sc46, -1, -1, Ca45, Sc46, k_Ca45_p_to_Sc46_reaclib, k_Sc46_to_p_Ca45_derived, + He4, Ca45, -1, Ti49, -1, -1, Ca45, Ti49, k_Ca45_He4_to_Ti49_reaclib, k_Ti49_to_He4_Ca45_derived, + N, Ca46, -1, Ca47, -1, -1, Ca46, Ca47, k_Ca46_n_to_Ca47_reaclib, k_Ca47_to_n_Ca46_derived, + H1, Ca46, -1, Sc47, -1, -1, Ca46, Sc47, k_Ca46_p_to_Sc47_reaclib, k_Sc47_to_p_Ca46_derived, + He4, Ca46, -1, Ti50, -1, -1, Ca46, Ti50, k_Ca46_He4_to_Ti50_reaclib, k_Ti50_to_He4_Ca46_derived, + N, Ca47, -1, Ca48, -1, -1, Ca47, Ca48, k_Ca47_n_to_Ca48_reaclib, k_Ca48_to_n_Ca47_derived, + H1, Ca47, -1, Sc48, -1, -1, Ca47, Sc48, k_Ca47_p_to_Sc48_reaclib, k_Sc48_to_p_Ca47_derived, + He4, Ca47, -1, Ti51, -1, -1, Ca47, Ti51, k_Ca47_He4_to_Ti51_reaclib, k_Ti51_to_He4_Ca47_derived, + H1, Ca48, -1, Sc49, -1, -1, Ca48, Sc49, k_Ca48_p_to_Sc49_reaclib, k_Sc49_to_p_Ca48_derived, + N, Sc43, -1, Sc44, -1, -1, Sc43, Sc44, k_Sc43_n_to_Sc44_reaclib, k_Sc44_to_n_Sc43_derived, + H1, Sc43, -1, Ti44, -1, -1, Sc43, Ti44, k_Sc43_p_to_Ti44_reaclib, k_Ti44_to_p_Sc43_derived, + He4, Sc43, -1, V47, -1, -1, Sc43, V47, k_Sc43_He4_to_V47_reaclib, k_V47_to_He4_Sc43_derived, + N, Sc44, -1, Sc45, -1, -1, Sc44, Sc45, k_Sc44_n_to_Sc45_reaclib, k_Sc45_to_n_Sc44_derived, + H1, Sc44, -1, Ti45, -1, -1, Sc44, Ti45, k_Sc44_p_to_Ti45_reaclib, k_Ti45_to_p_Sc44_derived, + He4, Sc44, -1, V48, -1, -1, Sc44, V48, k_Sc44_He4_to_V48_reaclib, k_V48_to_He4_Sc44_derived, + N, Sc45, -1, Sc46, -1, -1, Sc45, Sc46, k_Sc45_n_to_Sc46_reaclib, k_Sc46_to_n_Sc45_derived, + H1, Sc45, -1, Ti46, -1, -1, Sc45, Ti46, k_Sc45_p_to_Ti46_reaclib, k_Ti46_to_p_Sc45_derived, + He4, Sc45, -1, V49, -1, -1, Sc45, V49, k_Sc45_He4_to_V49_reaclib, k_V49_to_He4_Sc45_derived, + N, Sc46, -1, Sc47, -1, -1, Sc46, Sc47, k_Sc46_n_to_Sc47_reaclib, k_Sc47_to_n_Sc46_derived, + H1, Sc46, -1, Ti47, -1, -1, Sc46, Ti47, k_Sc46_p_to_Ti47_reaclib, k_Ti47_to_p_Sc46_derived, + He4, Sc46, -1, V50, -1, -1, Sc46, V50, k_Sc46_He4_to_V50_reaclib, k_V50_to_He4_Sc46_derived, + N, Sc47, -1, Sc48, -1, -1, Sc47, Sc48, k_Sc47_n_to_Sc48_reaclib, k_Sc48_to_n_Sc47_derived, + H1, Sc47, -1, Ti48, -1, -1, Sc47, Ti48, k_Sc47_p_to_Ti48_reaclib, k_Ti48_to_p_Sc47_derived, + He4, Sc47, -1, V51, -1, -1, Sc47, V51, k_Sc47_He4_to_V51_reaclib, k_V51_to_He4_Sc47_derived, + N, Sc48, -1, Sc49, -1, -1, Sc48, Sc49, k_Sc48_n_to_Sc49_reaclib, k_Sc49_to_n_Sc48_derived, + H1, Sc48, -1, Ti49, -1, -1, Sc48, Ti49, k_Sc48_p_to_Ti49_reaclib, k_Ti49_to_p_Sc48_derived, + He4, Sc48, -1, V52, -1, -1, Sc48, V52, k_Sc48_He4_to_V52_reaclib, k_V52_to_He4_Sc48_derived, + H1, Sc49, -1, Ti50, -1, -1, Sc49, Ti50, k_Sc49_p_to_Ti50_reaclib, k_Ti50_to_p_Sc49_derived, + N, Ti44, -1, Ti45, -1, -1, Ti44, Ti45, k_Ti44_n_to_Ti45_reaclib, k_Ti45_to_n_Ti44_derived, + He4, Ti44, -1, Cr48, -1, -1, Ti44, Cr48, k_Ti44_He4_to_Cr48_reaclib, k_Cr48_to_He4_Ti44_derived, + N, Ti45, -1, Ti46, -1, -1, Ti45, Ti46, k_Ti45_n_to_Ti46_reaclib, k_Ti46_to_n_Ti45_derived, + H1, Ti45, -1, V46, -1, -1, Ti45, V46, k_Ti45_p_to_V46_reaclib, k_V46_to_p_Ti45_derived, + He4, Ti45, -1, Cr49, -1, -1, Ti45, Cr49, k_Ti45_He4_to_Cr49_reaclib, k_Cr49_to_He4_Ti45_derived, + N, Ti46, -1, Ti47, -1, -1, Ti46, Ti47, k_Ti46_n_to_Ti47_reaclib, k_Ti47_to_n_Ti46_derived, + H1, Ti46, -1, V47, -1, -1, Ti46, V47, k_Ti46_p_to_V47_reaclib, k_V47_to_p_Ti46_derived, + He4, Ti46, -1, Cr50, -1, -1, Ti46, Cr50, k_Ti46_He4_to_Cr50_reaclib, k_Cr50_to_He4_Ti46_derived, + N, Ti47, -1, Ti48, -1, -1, Ti47, Ti48, k_Ti47_n_to_Ti48_reaclib, k_Ti48_to_n_Ti47_derived, + H1, Ti47, -1, V48, -1, -1, Ti47, V48, k_Ti47_p_to_V48_reaclib, k_V48_to_p_Ti47_derived, + He4, Ti47, -1, Cr51, -1, -1, Ti47, Cr51, k_Ti47_He4_to_Cr51_reaclib, k_Cr51_to_He4_Ti47_derived, + N, Ti48, -1, Ti49, -1, -1, Ti48, Ti49, k_Ti48_n_to_Ti49_reaclib, k_Ti49_to_n_Ti48_derived, + H1, Ti48, -1, V49, -1, -1, Ti48, V49, k_Ti48_p_to_V49_reaclib, k_V49_to_p_Ti48_derived, + He4, Ti48, -1, Cr52, -1, -1, Ti48, Cr52, k_Ti48_He4_to_Cr52_reaclib, k_Cr52_to_He4_Ti48_derived, + N, Ti49, -1, Ti50, -1, -1, Ti49, Ti50, k_Ti49_n_to_Ti50_reaclib, k_Ti50_to_n_Ti49_derived, + H1, Ti49, -1, V50, -1, -1, Ti49, V50, k_Ti49_p_to_V50_reaclib, k_V50_to_p_Ti49_derived, + He4, Ti49, -1, Cr53, -1, -1, Ti49, Cr53, k_Ti49_He4_to_Cr53_reaclib, k_Cr53_to_He4_Ti49_derived, + N, Ti50, -1, Ti51, -1, -1, Ti50, Ti51, k_Ti50_n_to_Ti51_reaclib, k_Ti51_to_n_Ti50_derived, + H1, Ti50, -1, V51, -1, -1, Ti50, V51, k_Ti50_p_to_V51_reaclib, k_V51_to_p_Ti50_derived, + He4, Ti50, -1, Cr54, -1, -1, Ti50, Cr54, k_Ti50_He4_to_Cr54_reaclib, k_Cr54_to_He4_Ti50_derived, + H1, Ti51, -1, V52, -1, -1, Ti51, V52, k_Ti51_p_to_V52_reaclib, k_V52_to_p_Ti51_derived, + N, V46, -1, V47, -1, -1, V46, V47, k_V46_n_to_V47_reaclib, k_V47_to_n_V46_derived, + He4, V46, -1, Mn50, -1, -1, V46, Mn50, k_V46_He4_to_Mn50_reaclib, k_Mn50_to_He4_V46_derived, + N, V47, -1, V48, -1, -1, V47, V48, k_V47_n_to_V48_reaclib, k_V48_to_n_V47_derived, + H1, V47, -1, Cr48, -1, -1, V47, Cr48, k_V47_p_to_Cr48_reaclib, k_Cr48_to_p_V47_derived, + He4, V47, -1, Mn51, -1, -1, V47, Mn51, k_V47_He4_to_Mn51_reaclib, k_Mn51_to_He4_V47_derived, + N, V48, -1, V49, -1, -1, V48, V49, k_V48_n_to_V49_reaclib, k_V49_to_n_V48_derived, + H1, V48, -1, Cr49, -1, -1, V48, Cr49, k_V48_p_to_Cr49_reaclib, k_Cr49_to_p_V48_derived, + He4, V48, -1, Mn52, -1, -1, V48, Mn52, k_V48_He4_to_Mn52_reaclib, k_Mn52_to_He4_V48_derived, + N, V49, -1, V50, -1, -1, V49, V50, k_V49_n_to_V50_reaclib, k_V50_to_n_V49_derived, + H1, V49, -1, Cr50, -1, -1, V49, Cr50, k_V49_p_to_Cr50_reaclib, k_Cr50_to_p_V49_derived, + He4, V49, -1, Mn53, -1, -1, V49, Mn53, k_V49_He4_to_Mn53_reaclib, k_Mn53_to_He4_V49_derived, + N, V50, -1, V51, -1, -1, V50, V51, k_V50_n_to_V51_reaclib, k_V51_to_n_V50_derived, + H1, V50, -1, Cr51, -1, -1, V50, Cr51, k_V50_p_to_Cr51_reaclib, k_Cr51_to_p_V50_derived, + He4, V50, -1, Mn54, -1, -1, V50, Mn54, k_V50_He4_to_Mn54_reaclib, k_Mn54_to_He4_V50_derived, + N, V51, -1, V52, -1, -1, V51, V52, k_V51_n_to_V52_reaclib, k_V52_to_n_V51_derived, + H1, V51, -1, Cr52, -1, -1, V51, Cr52, k_V51_p_to_Cr52_reaclib, k_Cr52_to_p_V51_derived, + He4, V51, -1, Mn55, -1, -1, V51, Mn55, k_V51_He4_to_Mn55_reaclib, k_Mn55_to_He4_V51_derived, + H1, V52, -1, Cr53, -1, -1, V52, Cr53, k_V52_p_to_Cr53_reaclib, k_Cr53_to_p_V52_derived, + N, Cr48, -1, Cr49, -1, -1, Cr48, Cr49, k_Cr48_n_to_Cr49_reaclib, k_Cr49_to_n_Cr48_derived, + He4, Cr48, -1, Fe52, -1, -1, Cr48, Fe52, k_Cr48_He4_to_Fe52_reaclib, k_Fe52_to_He4_Cr48_derived, + N, Cr49, -1, Cr50, -1, -1, Cr49, Cr50, k_Cr49_n_to_Cr50_reaclib, k_Cr50_to_n_Cr49_derived, + H1, Cr49, -1, Mn50, -1, -1, Cr49, Mn50, k_Cr49_p_to_Mn50_reaclib, k_Mn50_to_p_Cr49_derived, + He4, Cr49, -1, Fe53, -1, -1, Cr49, Fe53, k_Cr49_He4_to_Fe53_reaclib, k_Fe53_to_He4_Cr49_derived, + N, Cr50, -1, Cr51, -1, -1, Cr50, Cr51, k_Cr50_n_to_Cr51_reaclib, k_Cr51_to_n_Cr50_derived, + H1, Cr50, -1, Mn51, -1, -1, Cr50, Mn51, k_Cr50_p_to_Mn51_reaclib, k_Mn51_to_p_Cr50_derived, + He4, Cr50, -1, Fe54, -1, -1, Cr50, Fe54, k_Cr50_He4_to_Fe54_reaclib, k_Fe54_to_He4_Cr50_derived, + N, Cr51, -1, Cr52, -1, -1, Cr51, Cr52, k_Cr51_n_to_Cr52_reaclib, k_Cr52_to_n_Cr51_derived, + H1, Cr51, -1, Mn52, -1, -1, Cr51, Mn52, k_Cr51_p_to_Mn52_reaclib, k_Mn52_to_p_Cr51_derived, + He4, Cr51, -1, Fe55, -1, -1, Cr51, Fe55, k_Cr51_He4_to_Fe55_reaclib, k_Fe55_to_He4_Cr51_derived, + N, Cr52, -1, Cr53, -1, -1, Cr52, Cr53, k_Cr52_n_to_Cr53_reaclib, k_Cr53_to_n_Cr52_derived, + H1, Cr52, -1, Mn53, -1, -1, Cr52, Mn53, k_Cr52_p_to_Mn53_reaclib, k_Mn53_to_p_Cr52_derived, + He4, Cr52, -1, Fe56, -1, -1, Cr52, Fe56, k_Cr52_He4_to_Fe56_reaclib, k_Fe56_to_He4_Cr52_derived, + N, Cr53, -1, Cr54, -1, -1, Cr53, Cr54, k_Cr53_n_to_Cr54_reaclib, k_Cr54_to_n_Cr53_derived, + H1, Cr53, -1, Mn54, -1, -1, Cr53, Mn54, k_Cr53_p_to_Mn54_reaclib, k_Mn54_to_p_Cr53_derived, + He4, Cr53, -1, Fe57, -1, -1, Cr53, Fe57, k_Cr53_He4_to_Fe57_reaclib, k_Fe57_to_He4_Cr53_derived, + H1, Cr54, -1, Mn55, -1, -1, Cr54, Mn55, k_Cr54_p_to_Mn55_reaclib, k_Mn55_to_p_Cr54_derived, + He4, Cr54, -1, Fe58, -1, -1, Cr54, Fe58, k_Cr54_He4_to_Fe58_reaclib, k_Fe58_to_He4_Cr54_derived, + N, Mn50, -1, Mn51, -1, -1, Mn50, Mn51, k_Mn50_n_to_Mn51_reaclib, k_Mn51_to_n_Mn50_derived, + He4, Mn50, -1, Co54, -1, -1, Mn50, Co54, k_Mn50_He4_to_Co54_reaclib, k_Co54_to_He4_Mn50_derived, + N, Mn51, -1, Mn52, -1, -1, Mn51, Mn52, k_Mn51_n_to_Mn52_reaclib, k_Mn52_to_n_Mn51_derived, + H1, Mn51, -1, Fe52, -1, -1, Mn51, Fe52, k_Mn51_p_to_Fe52_reaclib, k_Fe52_to_p_Mn51_derived, + He4, Mn51, -1, Co55, -1, -1, Mn51, Co55, k_Mn51_He4_to_Co55_reaclib, k_Co55_to_He4_Mn51_derived, + N, Mn52, -1, Mn53, -1, -1, Mn52, Mn53, k_Mn52_n_to_Mn53_reaclib, k_Mn53_to_n_Mn52_derived, + H1, Mn52, -1, Fe53, -1, -1, Mn52, Fe53, k_Mn52_p_to_Fe53_reaclib, k_Fe53_to_p_Mn52_derived, + He4, Mn52, -1, Co56, -1, -1, Mn52, Co56, k_Mn52_He4_to_Co56_reaclib, k_Co56_to_He4_Mn52_derived, + N, Mn53, -1, Mn54, -1, -1, Mn53, Mn54, k_Mn53_n_to_Mn54_reaclib, k_Mn54_to_n_Mn53_derived, + H1, Mn53, -1, Fe54, -1, -1, Mn53, Fe54, k_Mn53_p_to_Fe54_reaclib, k_Fe54_to_p_Mn53_derived, + He4, Mn53, -1, Co57, -1, -1, Mn53, Co57, k_Mn53_He4_to_Co57_reaclib, k_Co57_to_He4_Mn53_derived, + N, Mn54, -1, Mn55, -1, -1, Mn54, Mn55, k_Mn54_n_to_Mn55_reaclib, k_Mn55_to_n_Mn54_derived, + H1, Mn54, -1, Fe55, -1, -1, Mn54, Fe55, k_Mn54_p_to_Fe55_reaclib, k_Fe55_to_p_Mn54_derived, + He4, Mn54, -1, Co58, -1, -1, Mn54, Co58, k_Mn54_He4_to_Co58_reaclib, k_Co58_to_He4_Mn54_derived, + H1, Mn55, -1, Fe56, -1, -1, Mn55, Fe56, k_Mn55_p_to_Fe56_reaclib, k_Fe56_to_p_Mn55_derived, + He4, Mn55, -1, Co59, -1, -1, Mn55, Co59, k_Mn55_He4_to_Co59_reaclib, k_Co59_to_He4_Mn55_derived, + N, Fe52, -1, Fe53, -1, -1, Fe52, Fe53, k_Fe52_n_to_Fe53_reaclib, k_Fe53_to_n_Fe52_derived, + H1, Fe52, -1, Co53, -1, -1, Fe52, Co53, k_Fe52_p_to_Co53_reaclib, k_Co53_to_p_Fe52_derived, + He4, Fe52, -1, Ni56, -1, -1, Fe52, Ni56, k_Fe52_He4_to_Ni56_reaclib, k_Ni56_to_He4_Fe52_derived, + N, Fe53, -1, Fe54, -1, -1, Fe53, Fe54, k_Fe53_n_to_Fe54_reaclib, k_Fe54_to_n_Fe53_derived, + H1, Fe53, -1, Co54, -1, -1, Fe53, Co54, k_Fe53_p_to_Co54_reaclib, k_Co54_to_p_Fe53_derived, + He4, Fe53, -1, Ni57, -1, -1, Fe53, Ni57, k_Fe53_He4_to_Ni57_reaclib, k_Ni57_to_He4_Fe53_derived, + N, Fe54, -1, Fe55, -1, -1, Fe54, Fe55, k_Fe54_n_to_Fe55_reaclib, k_Fe55_to_n_Fe54_derived, + H1, Fe54, -1, Co55, -1, -1, Fe54, Co55, k_Fe54_p_to_Co55_reaclib, k_Co55_to_p_Fe54_derived, + He4, Fe54, -1, Ni58, -1, -1, Fe54, Ni58, k_Fe54_He4_to_Ni58_reaclib, k_Ni58_to_He4_Fe54_derived, + N, Fe55, -1, Fe56, -1, -1, Fe55, Fe56, k_Fe55_n_to_Fe56_reaclib, k_Fe56_to_n_Fe55_derived, + H1, Fe55, -1, Co56, -1, -1, Fe55, Co56, k_Fe55_p_to_Co56_reaclib, k_Co56_to_p_Fe55_derived, + He4, Fe55, -1, Ni59, -1, -1, Fe55, Ni59, k_Fe55_He4_to_Ni59_reaclib, k_Ni59_to_He4_Fe55_derived, + N, Fe56, -1, Fe57, -1, -1, Fe56, Fe57, k_Fe56_n_to_Fe57_reaclib, k_Fe57_to_n_Fe56_derived, + H1, Fe56, -1, Co57, -1, -1, Fe56, Co57, k_Fe56_p_to_Co57_reaclib, k_Co57_to_p_Fe56_derived, + He4, Fe56, -1, Ni60, -1, -1, Fe56, Ni60, k_Fe56_He4_to_Ni60_reaclib, k_Ni60_to_He4_Fe56_derived, + N, Fe57, -1, Fe58, -1, -1, Fe57, Fe58, k_Fe57_n_to_Fe58_reaclib, k_Fe58_to_n_Fe57_derived, + H1, Fe57, -1, Co58, -1, -1, Fe57, Co58, k_Fe57_p_to_Co58_reaclib, k_Co58_to_p_Fe57_derived, + He4, Fe57, -1, Ni61, -1, -1, Fe57, Ni61, k_Fe57_He4_to_Ni61_reaclib, k_Ni61_to_He4_Fe57_derived, + H1, Fe58, -1, Co59, -1, -1, Fe58, Co59, k_Fe58_p_to_Co59_reaclib, k_Co59_to_p_Fe58_derived, + He4, Fe58, -1, Ni62, -1, -1, Fe58, Ni62, k_Fe58_He4_to_Ni62_reaclib, k_Ni62_to_He4_Fe58_derived, + N, Co53, -1, Co54, -1, -1, Co53, Co54, k_Co53_n_to_Co54_reaclib, k_Co54_to_n_Co53_derived, + He4, Co53, -1, Cu57, -1, -1, Co53, Cu57, k_Co53_He4_to_Cu57_reaclib, k_Cu57_to_He4_Co53_derived, + N, Co54, -1, Co55, -1, -1, Co54, Co55, k_Co54_n_to_Co55_reaclib, k_Co55_to_n_Co54_derived, + He4, Co54, -1, Cu58, -1, -1, Co54, Cu58, k_Co54_He4_to_Cu58_reaclib, k_Cu58_to_He4_Co54_derived, + N, Co55, -1, Co56, -1, -1, Co55, Co56, k_Co55_n_to_Co56_reaclib, k_Co56_to_n_Co55_derived, + H1, Co55, -1, Ni56, -1, -1, Co55, Ni56, k_Co55_p_to_Ni56_reaclib, k_Ni56_to_p_Co55_derived, + He4, Co55, -1, Cu59, -1, -1, Co55, Cu59, k_Co55_He4_to_Cu59_reaclib, k_Cu59_to_He4_Co55_derived, + N, Co56, -1, Co57, -1, -1, Co56, Co57, k_Co56_n_to_Co57_reaclib, k_Co57_to_n_Co56_derived, + H1, Co56, -1, Ni57, -1, -1, Co56, Ni57, k_Co56_p_to_Ni57_reaclib, k_Ni57_to_p_Co56_derived, + He4, Co56, -1, Cu60, -1, -1, Co56, Cu60, k_Co56_He4_to_Cu60_reaclib, k_Cu60_to_He4_Co56_derived, + N, Co57, -1, Co58, -1, -1, Co57, Co58, k_Co57_n_to_Co58_reaclib, k_Co58_to_n_Co57_derived, + H1, Co57, -1, Ni58, -1, -1, Co57, Ni58, k_Co57_p_to_Ni58_reaclib, k_Ni58_to_p_Co57_derived, + He4, Co57, -1, Cu61, -1, -1, Co57, Cu61, k_Co57_He4_to_Cu61_reaclib, k_Cu61_to_He4_Co57_derived, + N, Co58, -1, Co59, -1, -1, Co58, Co59, k_Co58_n_to_Co59_reaclib, k_Co59_to_n_Co58_derived, + H1, Co58, -1, Ni59, -1, -1, Co58, Ni59, k_Co58_p_to_Ni59_reaclib, k_Ni59_to_p_Co58_derived, + He4, Co58, -1, Cu62, -1, -1, Co58, Cu62, k_Co58_He4_to_Cu62_reaclib, k_Cu62_to_He4_Co58_derived, + H1, Co59, -1, Ni60, -1, -1, Co59, Ni60, k_Co59_p_to_Ni60_reaclib, k_Ni60_to_p_Co59_derived, + He4, Co59, -1, Cu63, -1, -1, Co59, Cu63, k_Co59_He4_to_Cu63_reaclib, k_Cu63_to_He4_Co59_derived, + N, Ni56, -1, Ni57, -1, -1, Ni56, Ni57, k_Ni56_n_to_Ni57_reaclib, k_Ni57_to_n_Ni56_derived, + H1, Ni56, -1, Cu57, -1, -1, Ni56, Cu57, k_Ni56_p_to_Cu57_reaclib, k_Cu57_to_p_Ni56_derived, + He4, Ni56, -1, Zn60, -1, -1, Ni56, Zn60, k_Ni56_He4_to_Zn60_reaclib, k_Zn60_to_He4_Ni56_derived, + N, Ni57, -1, Ni58, -1, -1, Ni57, Ni58, k_Ni57_n_to_Ni58_reaclib, k_Ni58_to_n_Ni57_derived, + H1, Ni57, -1, Cu58, -1, -1, Ni57, Cu58, k_Ni57_p_to_Cu58_reaclib, k_Cu58_to_p_Ni57_derived, + He4, Ni57, -1, Zn61, -1, -1, Ni57, Zn61, k_Ni57_He4_to_Zn61_reaclib, k_Zn61_to_He4_Ni57_derived, + N, Ni58, -1, Ni59, -1, -1, Ni58, Ni59, k_Ni58_n_to_Ni59_reaclib, k_Ni59_to_n_Ni58_derived, + H1, Ni58, -1, Cu59, -1, -1, Ni58, Cu59, k_Ni58_p_to_Cu59_reaclib, k_Cu59_to_p_Ni58_derived, + He4, Ni58, -1, Zn62, -1, -1, Ni58, Zn62, k_Ni58_He4_to_Zn62_reaclib, k_Zn62_to_He4_Ni58_derived, + N, Ni59, -1, Ni60, -1, -1, Ni59, Ni60, k_Ni59_n_to_Ni60_reaclib, k_Ni60_to_n_Ni59_derived, + H1, Ni59, -1, Cu60, -1, -1, Ni59, Cu60, k_Ni59_p_to_Cu60_reaclib, k_Cu60_to_p_Ni59_derived, + He4, Ni59, -1, Zn63, -1, -1, Ni59, Zn63, k_Ni59_He4_to_Zn63_reaclib, k_Zn63_to_He4_Ni59_derived, + N, Ni60, -1, Ni61, -1, -1, Ni60, Ni61, k_Ni60_n_to_Ni61_reaclib, k_Ni61_to_n_Ni60_derived, + H1, Ni60, -1, Cu61, -1, -1, Ni60, Cu61, k_Ni60_p_to_Cu61_reaclib, k_Cu61_to_p_Ni60_derived, + He4, Ni60, -1, Zn64, -1, -1, Ni60, Zn64, k_Ni60_He4_to_Zn64_reaclib, k_Zn64_to_He4_Ni60_derived, + N, Ni61, -1, Ni62, -1, -1, Ni61, Ni62, k_Ni61_n_to_Ni62_reaclib, k_Ni62_to_n_Ni61_derived, + H1, Ni61, -1, Cu62, -1, -1, Ni61, Cu62, k_Ni61_p_to_Cu62_reaclib, k_Cu62_to_p_Ni61_derived, + He4, Ni61, -1, Zn65, -1, -1, Ni61, Zn65, k_Ni61_He4_to_Zn65_reaclib, k_Zn65_to_He4_Ni61_derived, + N, Ni62, -1, Ni63, -1, -1, Ni62, Ni63, k_Ni62_n_to_Ni63_reaclib, k_Ni63_to_n_Ni62_derived, + H1, Ni62, -1, Cu63, -1, -1, Ni62, Cu63, k_Ni62_p_to_Cu63_reaclib, k_Cu63_to_p_Ni62_derived, + He4, Ni62, -1, Zn66, -1, -1, Ni62, Zn66, k_Ni62_He4_to_Zn66_reaclib, k_Zn66_to_He4_Ni62_derived, + N, Ni63, -1, Ni64, -1, -1, Ni63, Ni64, k_Ni63_n_to_Ni64_reaclib, k_Ni64_to_n_Ni63_derived, + H1, Ni63, -1, Cu64, -1, -1, Ni63, Cu64, k_Ni63_p_to_Cu64_reaclib, k_Cu64_to_p_Ni63_derived, + H1, Ni64, -1, Cu65, -1, -1, Ni64, Cu65, k_Ni64_p_to_Cu65_reaclib, k_Cu65_to_p_Ni64_derived, + N, Cu57, -1, Cu58, -1, -1, Cu57, Cu58, k_Cu57_n_to_Cu58_reaclib, k_Cu58_to_n_Cu57_derived, + N, Cu58, -1, Cu59, -1, -1, Cu58, Cu59, k_Cu58_n_to_Cu59_reaclib, k_Cu59_to_n_Cu58_derived, + H1, Cu58, -1, Zn59, -1, -1, Cu58, Zn59, k_Cu58_p_to_Zn59_reaclib, k_Zn59_to_p_Cu58_derived, + He4, Cu58, -1, Ga62, -1, -1, Cu58, Ga62, k_Cu58_He4_to_Ga62_reaclib, k_Ga62_to_He4_Cu58_derived, + N, Cu59, -1, Cu60, -1, -1, Cu59, Cu60, k_Cu59_n_to_Cu60_reaclib, k_Cu60_to_n_Cu59_derived, + H1, Cu59, -1, Zn60, -1, -1, Cu59, Zn60, k_Cu59_p_to_Zn60_reaclib, k_Zn60_to_p_Cu59_derived, + He4, Cu59, -1, Ga63, -1, -1, Cu59, Ga63, k_Cu59_He4_to_Ga63_reaclib, k_Ga63_to_He4_Cu59_derived, + N, Cu60, -1, Cu61, -1, -1, Cu60, Cu61, k_Cu60_n_to_Cu61_reaclib, k_Cu61_to_n_Cu60_derived, + H1, Cu60, -1, Zn61, -1, -1, Cu60, Zn61, k_Cu60_p_to_Zn61_reaclib, k_Zn61_to_p_Cu60_derived, + He4, Cu60, -1, Ga64, -1, -1, Cu60, Ga64, k_Cu60_He4_to_Ga64_reaclib, k_Ga64_to_He4_Cu60_derived, + N, Cu61, -1, Cu62, -1, -1, Cu61, Cu62, k_Cu61_n_to_Cu62_reaclib, k_Cu62_to_n_Cu61_derived, + H1, Cu61, -1, Zn62, -1, -1, Cu61, Zn62, k_Cu61_p_to_Zn62_reaclib, k_Zn62_to_p_Cu61_derived, + N, Cu62, -1, Cu63, -1, -1, Cu62, Cu63, k_Cu62_n_to_Cu63_reaclib, k_Cu63_to_n_Cu62_derived, + H1, Cu62, -1, Zn63, -1, -1, Cu62, Zn63, k_Cu62_p_to_Zn63_reaclib, k_Zn63_to_p_Cu62_derived, + N, Cu63, -1, Cu64, -1, -1, Cu63, Cu64, k_Cu63_n_to_Cu64_reaclib, k_Cu64_to_n_Cu63_derived, + H1, Cu63, -1, Zn64, -1, -1, Cu63, Zn64, k_Cu63_p_to_Zn64_reaclib, k_Zn64_to_p_Cu63_derived, + N, Cu64, -1, Cu65, -1, -1, Cu64, Cu65, k_Cu64_n_to_Cu65_reaclib, k_Cu65_to_n_Cu64_derived, + H1, Cu64, -1, Zn65, -1, -1, Cu64, Zn65, k_Cu64_p_to_Zn65_reaclib, k_Zn65_to_p_Cu64_derived, + H1, Cu65, -1, Zn66, -1, -1, Cu65, Zn66, k_Cu65_p_to_Zn66_reaclib, k_Zn66_to_p_Cu65_derived, + N, Zn59, -1, Zn60, -1, -1, Zn59, Zn60, k_Zn59_n_to_Zn60_reaclib, k_Zn60_to_n_Zn59_derived, + He4, Zn59, -1, Ge63, -1, -1, Zn59, Ge63, k_Zn59_He4_to_Ge63_reaclib, k_Ge63_to_He4_Zn59_derived, + N, Zn60, -1, Zn61, -1, -1, Zn60, Zn61, k_Zn60_n_to_Zn61_reaclib, k_Zn61_to_n_Zn60_derived, + He4, Zn60, -1, Ge64, -1, -1, Zn60, Ge64, k_Zn60_He4_to_Ge64_reaclib, k_Ge64_to_He4_Zn60_derived, + N, Zn61, -1, Zn62, -1, -1, Zn61, Zn62, k_Zn61_n_to_Zn62_reaclib, k_Zn62_to_n_Zn61_derived, + H1, Zn61, -1, Ga62, -1, -1, Zn61, Ga62, k_Zn61_p_to_Ga62_reaclib, k_Ga62_to_p_Zn61_derived, + N, Zn62, -1, Zn63, -1, -1, Zn62, Zn63, k_Zn62_n_to_Zn63_reaclib, k_Zn63_to_n_Zn62_derived, + H1, Zn62, -1, Ga63, -1, -1, Zn62, Ga63, k_Zn62_p_to_Ga63_reaclib, k_Ga63_to_p_Zn62_derived, + N, Zn63, -1, Zn64, -1, -1, Zn63, Zn64, k_Zn63_n_to_Zn64_reaclib, k_Zn64_to_n_Zn63_derived, + H1, Zn63, -1, Ga64, -1, -1, Zn63, Ga64, k_Zn63_p_to_Ga64_reaclib, k_Ga64_to_p_Zn63_derived, + N, Zn64, -1, Zn65, -1, -1, Zn64, Zn65, k_Zn64_n_to_Zn65_reaclib, k_Zn65_to_n_Zn64_derived, + N, Zn65, -1, Zn66, -1, -1, Zn65, Zn66, k_Zn65_n_to_Zn66_reaclib, k_Zn66_to_n_Zn65_derived, + N, Ga62, -1, Ga63, -1, -1, Ga62, Ga63, k_Ga62_n_to_Ga63_reaclib, k_Ga63_to_n_Ga62_derived, + H1, Ga62, -1, Ge63, -1, -1, Ga62, Ge63, k_Ga62_p_to_Ge63_reaclib, k_Ge63_to_p_Ga62_derived, + N, Ga63, -1, Ga64, -1, -1, Ga63, Ga64, k_Ga63_n_to_Ga64_reaclib, k_Ga64_to_n_Ga63_derived, + H1, Ga63, -1, Ge64, -1, -1, Ga63, Ge64, k_Ga63_p_to_Ge64_reaclib, k_Ge64_to_p_Ga63_derived, + N, Ge63, -1, Ge64, -1, -1, Ge63, Ge64, k_Ge63_n_to_Ge64_reaclib, k_Ge64_to_n_Ge63_derived, + H2, He3, -1, H1, He4, -1, H2, He3, k_He3_d_to_p_He4_reaclib, k_He4_p_to_d_He3_derived, + H1, Li6, -1, He4, He3, -1, Li6, He3, k_Li6_p_to_He4_He3_reaclib, k_He3_He4_to_p_Li6_derived, + H1, Li7, -1, He4, He4, -1, Li7, -1, k_Li7_p_to_He4_He4_reaclib, k_He4_He4_to_p_Li7_derived, + N, Be7, -1, H1, Li7, -1, Be7, Li7, k_Be7_n_to_p_Li7_reaclib, k_Li7_p_to_n_Be7_derived, + N, Be7, -1, He4, He4, -1, Be7, -1, k_Be7_n_to_He4_He4_reaclib, k_He4_He4_to_n_Be7_derived, + H1, Be9, -1, He4, Li6, -1, Be9, Li6, k_Be9_p_to_He4_Li6_reaclib, k_Li6_He4_to_p_Be9_derived, + He4, Be9, -1, N, C12, -1, Be9, C12, k_Be9_He4_to_n_C12_reaclib, k_C12_n_to_He4_Be9_derived, + N, B10, -1, He4, Li7, -1, B10, Li7, k_B10_n_to_He4_Li7_reaclib, k_Li7_He4_to_n_B10_derived, + H1, B10, -1, He4, Be7, -1, B10, Be7, k_B10_p_to_He4_Be7_reaclib, k_Be7_He4_to_p_B10_derived, + He4, B10, -1, N, N13, -1, B10, N13, k_B10_He4_to_n_N13_reaclib, k_N13_n_to_He4_B10_derived, + He4, B10, -1, H1, C13, -1, B10, C13, k_B10_He4_to_p_C13_reaclib, k_C13_p_to_He4_B10_derived, + He4, B11, -1, N, N14, -1, B11, N14, k_B11_He4_to_n_N14_reaclib, k_N14_n_to_He4_B11_derived, + He4, B11, -1, H1, C14, -1, B11, C14, k_B11_He4_to_p_C14_reaclib, k_C14_p_to_He4_B11_derived, + He4, C13, -1, N, O16, -1, C13, O16, k_C13_He4_to_n_O16_reaclib, k_O16_n_to_He4_C13_derived, + He4, N13, -1, H1, O16, -1, N13, O16, k_N13_He4_to_p_O16_reaclib, k_O16_p_to_He4_N13_derived, + N, N14, -1, H1, C14, -1, N14, C14, k_N14_n_to_p_C14_reaclib, k_C14_p_to_n_N14_derived, + H1, N15, -1, He4, C12, -1, N15, C12, k_N15_p_to_He4_C12_reaclib, k_C12_He4_to_p_N15_derived, + He4, O14, -1, H1, F17, -1, O14, F17, k_O14_He4_to_p_F17_reaclib, k_F17_p_to_He4_O14_derived, + N, O15, -1, He4, C12, -1, O15, C12, k_O15_n_to_He4_C12_reaclib, k_C12_He4_to_n_O15_derived, + N, O17, -1, He4, C14, -1, O17, C14, k_O17_n_to_He4_C14_reaclib, k_C14_He4_to_n_O17_derived, + H1, O17, -1, He4, N14, -1, O17, N14, k_O17_p_to_He4_N14_reaclib, k_N14_He4_to_p_O17_derived, + He4, O17, -1, N, Ne20, -1, O17, Ne20, k_O17_He4_to_n_Ne20_reaclib, k_Ne20_n_to_He4_O17_derived, + H1, O18, -1, He4, N15, -1, O18, N15, k_O18_p_to_He4_N15_reaclib, k_N15_He4_to_p_O18_derived, + N, F17, -1, H1, O17, -1, F17, O17, k_F17_n_to_p_O17_reaclib, k_O17_p_to_n_F17_derived, + N, F18, -1, H1, O18, -1, F18, O18, k_F18_n_to_p_O18_reaclib, k_O18_p_to_n_F18_derived, + N, F18, -1, He4, N15, -1, F18, N15, k_F18_n_to_He4_N15_reaclib, k_N15_He4_to_n_F18_derived, + H1, F18, -1, He4, O15, -1, F18, O15, k_F18_p_to_He4_O15_reaclib, k_O15_He4_to_p_F18_derived, + He4, F18, -1, H1, Ne21, -1, F18, Ne21, k_F18_He4_to_p_Ne21_reaclib, k_Ne21_p_to_He4_F18_derived, + H1, F19, -1, He4, O16, -1, F19, O16, k_F19_p_to_He4_O16_reaclib, k_O16_He4_to_p_F19_derived, + He4, F19, -1, H1, Ne22, -1, F19, Ne22, k_F19_He4_to_p_Ne22_reaclib, k_Ne22_p_to_He4_F19_derived, + N, Ne18, -1, H1, F18, -1, Ne18, F18, k_Ne18_n_to_p_F18_reaclib, k_F18_p_to_n_Ne18_derived, + N, Ne18, -1, He4, O15, -1, Ne18, O15, k_Ne18_n_to_He4_O15_reaclib, k_O15_He4_to_n_Ne18_derived, + He4, Ne18, -1, H1, Na21, -1, Ne18, Na21, k_Ne18_He4_to_p_Na21_reaclib, k_Na21_p_to_He4_Ne18_derived, + N, Ne19, -1, He4, O16, -1, Ne19, O16, k_Ne19_n_to_He4_O16_reaclib, k_O16_He4_to_n_Ne19_derived, + He4, Ne19, -1, H1, Na22, -1, Ne19, Na22, k_Ne19_He4_to_p_Na22_reaclib, k_Na22_p_to_He4_Ne19_derived, + He4, Ne21, -1, N, Mg24, -1, Ne21, Mg24, k_Ne21_He4_to_n_Mg24_reaclib, k_Mg24_n_to_He4_Ne21_derived, + N, Na21, -1, H1, Ne21, -1, Na21, Ne21, k_Na21_n_to_p_Ne21_reaclib, k_Ne21_p_to_n_Na21_derived, + N, Na21, -1, He4, F18, -1, Na21, F18, k_Na21_n_to_He4_F18_reaclib, k_F18_He4_to_n_Na21_derived, + N, Na22, -1, H1, Ne22, -1, Na22, Ne22, k_Na22_n_to_p_Ne22_reaclib, k_Ne22_p_to_n_Na22_derived, + N, Na22, -1, He4, F19, -1, Na22, F19, k_Na22_n_to_He4_F19_reaclib, k_F19_He4_to_n_Na22_derived, + He4, Na22, -1, H1, Mg25, -1, Na22, Mg25, k_Na22_He4_to_p_Mg25_reaclib, k_Mg25_p_to_He4_Na22_derived, + H1, Na23, -1, He4, Ne20, -1, Na23, Ne20, k_Na23_p_to_He4_Ne20_reaclib, k_Ne20_He4_to_p_Na23_derived, + He4, Na23, -1, H1, Mg26, -1, Na23, Mg26, k_Na23_He4_to_p_Mg26_reaclib, k_Mg26_p_to_He4_Na23_derived, + N, Mg23, -1, He4, Ne20, -1, Mg23, Ne20, k_Mg23_n_to_He4_Ne20_reaclib, k_Ne20_He4_to_n_Mg23_derived, + He4, Mg23, -1, H1, Al26, -1, Mg23, Al26, k_Mg23_He4_to_p_Al26_reaclib, k_Al26_p_to_He4_Mg23_derived, + He4, Mg25, -1, N, Si28, -1, Mg25, Si28, k_Mg25_He4_to_n_Si28_reaclib, k_Si28_n_to_He4_Mg25_derived, + He4, Mg26, -1, N, Si29, -1, Mg26, Si29, k_Mg26_He4_to_n_Si29_reaclib, k_Si29_n_to_He4_Mg26_derived, + N, Al25, -1, H1, Mg25, -1, Al25, Mg25, k_Al25_n_to_p_Mg25_reaclib, k_Mg25_p_to_n_Al25_derived, + N, Al25, -1, He4, Na22, -1, Al25, Na22, k_Al25_n_to_He4_Na22_reaclib, k_Na22_He4_to_n_Al25_derived, + He4, Al25, -1, H1, Si28, -1, Al25, Si28, k_Al25_He4_to_p_Si28_reaclib, k_Si28_p_to_He4_Al25_derived, + N, Al26, -1, H1, Mg26, -1, Al26, Mg26, k_Al26_n_to_p_Mg26_reaclib, k_Mg26_p_to_n_Al26_derived, + N, Al26, -1, He4, Na23, -1, Al26, Na23, k_Al26_n_to_He4_Na23_reaclib, k_Na23_He4_to_n_Al26_derived, + He4, Al26, -1, H1, Si29, -1, Al26, Si29, k_Al26_He4_to_p_Si29_reaclib, k_Si29_p_to_He4_Al26_derived, + H1, Al27, -1, He4, Mg24, -1, Al27, Mg24, k_Al27_p_to_He4_Mg24_reaclib, k_Mg24_He4_to_p_Al27_derived, + He4, Al27, -1, H1, Si30, -1, Al27, Si30, k_Al27_He4_to_p_Si30_reaclib, k_Si30_p_to_He4_Al27_derived, + H1, Si31, -1, N, P31, -1, Si31, P31, k_Si31_p_to_n_P31_reaclib, k_P31_n_to_p_Si31_derived, + He4, Si31, -1, N, S34, -1, Si31, S34, k_Si31_He4_to_n_S34_reaclib, k_S34_n_to_He4_Si31_derived, + N, P29, -1, H1, Si29, -1, P29, Si29, k_P29_n_to_p_Si29_reaclib, k_Si29_p_to_n_P29_derived, + N, P29, -1, He4, Al26, -1, P29, Al26, k_P29_n_to_He4_Al26_reaclib, k_Al26_He4_to_n_P29_derived, + He4, P29, -1, H1, S32, -1, P29, S32, k_P29_He4_to_p_S32_reaclib, k_S32_p_to_He4_P29_derived, + N, P30, -1, H1, Si30, -1, P30, Si30, k_P30_n_to_p_Si30_reaclib, k_Si30_p_to_n_P30_derived, + He4, P30, -1, H1, S33, -1, P30, S33, k_P30_He4_to_p_S33_reaclib, k_S33_p_to_He4_P30_derived, + H1, P31, -1, He4, Si28, -1, P31, Si28, k_P31_p_to_He4_Si28_reaclib, k_Si28_He4_to_p_P31_derived, + He4, P31, -1, H1, S34, -1, P31, S34, k_P31_He4_to_p_S34_reaclib, k_S34_p_to_He4_P31_derived, + N, P32, -1, H1, Si32, -1, P32, Si32, k_P32_n_to_p_Si32_reaclib, k_Si32_p_to_n_P32_derived, + H1, P32, -1, N, S32, -1, P32, S32, k_P32_p_to_n_S32_reaclib, k_S32_n_to_p_P32_derived, + H1, P32, -1, He4, Si29, -1, P32, Si29, k_P32_p_to_He4_Si29_reaclib, k_Si29_He4_to_p_P32_derived, + H1, P33, -1, He4, Si30, -1, P33, Si30, k_P33_p_to_He4_Si30_reaclib, k_Si30_He4_to_p_P33_derived, + N, S32, -1, He4, Si29, -1, S32, Si29, k_S32_n_to_He4_Si29_reaclib, k_Si29_He4_to_n_S32_derived, + N, S33, -1, H1, P33, -1, S33, P33, k_S33_n_to_p_P33_reaclib, k_P33_p_to_n_S33_derived, + N, S33, -1, He4, Si30, -1, S33, Si30, k_S33_n_to_He4_Si30_reaclib, k_Si30_He4_to_n_S33_derived, + N, S35, -1, He4, Si32, -1, S35, Si32, k_S35_n_to_He4_Si32_reaclib, k_Si32_He4_to_n_S35_derived, + H1, S35, -1, He4, P32, -1, S35, P32, k_S35_p_to_He4_P32_reaclib, k_P32_He4_to_p_S35_derived, + He4, S35, -1, N, Ar38, -1, S35, Ar38, k_S35_He4_to_n_Ar38_reaclib, k_Ar38_n_to_He4_S35_derived, + H1, S36, -1, He4, P33, -1, S36, P33, k_S36_p_to_He4_P33_reaclib, k_P33_He4_to_p_S36_derived, + N, Cl33, -1, H1, S33, -1, Cl33, S33, k_Cl33_n_to_p_S33_reaclib, k_S33_p_to_n_Cl33_derived, + N, Cl33, -1, He4, P30, -1, Cl33, P30, k_Cl33_n_to_He4_P30_reaclib, k_P30_He4_to_n_Cl33_derived, + He4, Cl33, -1, H1, Ar36, -1, Cl33, Ar36, k_Cl33_He4_to_p_Ar36_reaclib, k_Ar36_p_to_He4_Cl33_derived, + N, Cl34, -1, H1, S34, -1, Cl34, S34, k_Cl34_n_to_p_S34_reaclib, k_S34_p_to_n_Cl34_derived, + N, Cl34, -1, He4, P31, -1, Cl34, P31, k_Cl34_n_to_He4_P31_reaclib, k_P31_He4_to_n_Cl34_derived, + He4, Cl34, -1, H1, Ar37, -1, Cl34, Ar37, k_Cl34_He4_to_p_Ar37_reaclib, k_Ar37_p_to_He4_Cl34_derived, + N, Cl35, -1, H1, S35, -1, Cl35, S35, k_Cl35_n_to_p_S35_reaclib, k_S35_p_to_n_Cl35_derived, + N, Cl35, -1, He4, P32, -1, Cl35, P32, k_Cl35_n_to_He4_P32_reaclib, k_P32_He4_to_n_Cl35_derived, + H1, Cl35, -1, He4, S32, -1, Cl35, S32, k_Cl35_p_to_He4_S32_reaclib, k_S32_He4_to_p_Cl35_derived, + He4, Cl35, -1, H1, Ar38, -1, Cl35, Ar38, k_Cl35_He4_to_p_Ar38_reaclib, k_Ar38_p_to_He4_Cl35_derived, + N, Cl36, -1, H1, S36, -1, Cl36, S36, k_Cl36_n_to_p_S36_reaclib, k_S36_p_to_n_Cl36_derived, + N, Cl36, -1, He4, P33, -1, Cl36, P33, k_Cl36_n_to_He4_P33_reaclib, k_P33_He4_to_n_Cl36_derived, + H1, Cl36, -1, He4, S33, -1, Cl36, S33, k_Cl36_p_to_He4_S33_reaclib, k_S33_He4_to_p_Cl36_derived, + N, Ar36, -1, H1, Cl36, -1, Ar36, Cl36, k_Ar36_n_to_p_Cl36_reaclib, k_Cl36_p_to_n_Ar36_derived, + N, Ar36, -1, He4, S33, -1, Ar36, S33, k_Ar36_n_to_He4_S33_reaclib, k_S33_He4_to_n_Ar36_derived, + N, Ar37, -1, H1, Cl37, -1, Ar37, Cl37, k_Ar37_n_to_p_Cl37_reaclib, k_Cl37_p_to_n_Ar37_derived, + N, Ar39, -1, He4, S36, -1, Ar39, S36, k_Ar39_n_to_He4_S36_reaclib, k_S36_He4_to_n_Ar39_derived, + H1, Ar39, -1, He4, Cl36, -1, Ar39, Cl36, k_Ar39_p_to_He4_Cl36_reaclib, k_Cl36_He4_to_p_Ar39_derived, + H1, Ar40, -1, He4, Cl37, -1, Ar40, Cl37, k_Ar40_p_to_He4_Cl37_reaclib, k_Cl37_He4_to_p_Ar40_derived, + N, K37, -1, H1, Ar37, -1, K37, Ar37, k_K37_n_to_p_Ar37_reaclib, k_Ar37_p_to_n_K37_derived, + N, K37, -1, He4, Cl34, -1, K37, Cl34, k_K37_n_to_He4_Cl34_reaclib, k_Cl34_He4_to_n_K37_derived, + He4, K37, -1, H1, Ca40, -1, K37, Ca40, k_K37_He4_to_p_Ca40_reaclib, k_Ca40_p_to_He4_K37_derived, + N, K38, -1, H1, Ar38, -1, K38, Ar38, k_K38_n_to_p_Ar38_reaclib, k_Ar38_p_to_n_K38_derived, + N, K38, -1, He4, Cl35, -1, K38, Cl35, k_K38_n_to_He4_Cl35_reaclib, k_Cl35_He4_to_n_K38_derived, + He4, K38, -1, H1, Ca41, -1, K38, Ca41, k_K38_He4_to_p_Ca41_reaclib, k_Ca41_p_to_He4_K38_derived, + N, K39, -1, H1, Ar39, -1, K39, Ar39, k_K39_n_to_p_Ar39_reaclib, k_Ar39_p_to_n_K39_derived, + N, K39, -1, He4, Cl36, -1, K39, Cl36, k_K39_n_to_He4_Cl36_reaclib, k_Cl36_He4_to_n_K39_derived, + H1, K39, -1, He4, Ar36, -1, K39, Ar36, k_K39_p_to_He4_Ar36_reaclib, k_Ar36_He4_to_p_K39_derived, + N, K40, -1, H1, Ar40, -1, K40, Ar40, k_K40_n_to_p_Ar40_reaclib, k_Ar40_p_to_n_K40_derived, + N, K40, -1, He4, Cl37, -1, K40, Cl37, k_K40_n_to_He4_Cl37_reaclib, k_Cl37_He4_to_n_K40_derived, + H1, K40, -1, N, Ca40, -1, K40, Ca40, k_K40_p_to_n_Ca40_reaclib, k_Ca40_n_to_p_K40_derived, + H1, K40, -1, He4, Ar37, -1, K40, Ar37, k_K40_p_to_He4_Ar37_reaclib, k_Ar37_He4_to_p_K40_derived, + He4, K40, -1, H1, Ca43, -1, K40, Ca43, k_K40_He4_to_p_Ca43_reaclib, k_Ca43_p_to_He4_K40_derived, + H1, K41, -1, He4, Ar38, -1, K41, Ar38, k_K41_p_to_He4_Ar38_reaclib, k_Ar38_He4_to_p_K41_derived, + He4, K41, -1, H1, Ca44, -1, K41, Ca44, k_K41_He4_to_p_Ca44_reaclib, k_Ca44_p_to_He4_K41_derived, + N, Ca40, -1, He4, Ar37, -1, Ca40, Ar37, k_Ca40_n_to_He4_Ar37_reaclib, k_Ar37_He4_to_n_Ca40_derived, + N, Ca41, -1, He4, Ar38, -1, Ca41, Ar38, k_Ca41_n_to_He4_Ar38_reaclib, k_Ar38_He4_to_n_Ca41_derived, + N, Ca42, -1, He4, Ar39, -1, Ca42, Ar39, k_Ca42_n_to_He4_Ar39_reaclib, k_Ar39_He4_to_n_Ca42_derived, + H1, Ca42, -1, He4, K39, -1, Ca42, K39, k_Ca42_p_to_He4_K39_reaclib, k_K39_He4_to_p_Ca42_derived, + N, Ca43, -1, He4, Ar40, -1, Ca43, Ar40, k_Ca43_n_to_He4_Ar40_reaclib, k_Ar40_He4_to_n_Ca43_derived, + He4, Ca43, -1, N, Ti46, -1, Ca43, Ti46, k_Ca43_He4_to_n_Ti46_reaclib, k_Ti46_n_to_He4_Ca43_derived, + He4, Ca45, -1, N, Ti48, -1, Ca45, Ti48, k_Ca45_He4_to_n_Ti48_reaclib, k_Ti48_n_to_He4_Ca45_derived, + H1, Ca47, -1, N, Sc47, -1, Ca47, Sc47, k_Ca47_p_to_n_Sc47_reaclib, k_Sc47_n_to_p_Ca47_derived, + He4, Ca47, -1, N, Ti50, -1, Ca47, Ti50, k_Ca47_He4_to_n_Ti50_reaclib, k_Ti50_n_to_He4_Ca47_derived, + N, Sc43, -1, H1, Ca43, -1, Sc43, Ca43, k_Sc43_n_to_p_Ca43_reaclib, k_Ca43_p_to_n_Sc43_derived, + N, Sc43, -1, He4, K40, -1, Sc43, K40, k_Sc43_n_to_He4_K40_reaclib, k_K40_He4_to_n_Sc43_derived, + H1, Sc43, -1, He4, Ca40, -1, Sc43, Ca40, k_Sc43_p_to_He4_Ca40_reaclib, k_Ca40_He4_to_p_Sc43_derived, + He4, Sc43, -1, H1, Ti46, -1, Sc43, Ti46, k_Sc43_He4_to_p_Ti46_reaclib, k_Ti46_p_to_He4_Sc43_derived, + N, Sc44, -1, H1, Ca44, -1, Sc44, Ca44, k_Sc44_n_to_p_Ca44_reaclib, k_Ca44_p_to_n_Sc44_derived, + H1, Sc44, -1, He4, Ca41, -1, Sc44, Ca41, k_Sc44_p_to_He4_Ca41_reaclib, k_Ca41_He4_to_p_Sc44_derived, + He4, Sc44, -1, H1, Ti47, -1, Sc44, Ti47, k_Sc44_He4_to_p_Ti47_reaclib, k_Ti47_p_to_He4_Sc44_derived, + N, Sc45, -1, H1, Ca45, -1, Sc45, Ca45, k_Sc45_n_to_p_Ca45_reaclib, k_Ca45_p_to_n_Sc45_derived, + H1, Sc45, -1, He4, Ca42, -1, Sc45, Ca42, k_Sc45_p_to_He4_Ca42_reaclib, k_Ca42_He4_to_p_Sc45_derived, + He4, Sc45, -1, H1, Ti48, -1, Sc45, Ti48, k_Sc45_He4_to_p_Ti48_reaclib, k_Ti48_p_to_He4_Sc45_derived, + N, Sc46, -1, H1, Ca46, -1, Sc46, Ca46, k_Sc46_n_to_p_Ca46_reaclib, k_Ca46_p_to_n_Sc46_derived, + H1, Sc46, -1, N, Ti46, -1, Sc46, Ti46, k_Sc46_p_to_n_Ti46_reaclib, k_Ti46_n_to_p_Sc46_derived, + H1, Sc46, -1, He4, Ca43, -1, Sc46, Ca43, k_Sc46_p_to_He4_Ca43_reaclib, k_Ca43_He4_to_p_Sc46_derived, + He4, Sc46, -1, N, V49, -1, Sc46, V49, k_Sc46_He4_to_n_V49_reaclib, k_V49_n_to_He4_Sc46_derived, + He4, Sc46, -1, H1, Ti49, -1, Sc46, Ti49, k_Sc46_He4_to_p_Ti49_reaclib, k_Ti49_p_to_He4_Sc46_derived, + H1, Sc47, -1, He4, Ca44, -1, Sc47, Ca44, k_Sc47_p_to_He4_Ca44_reaclib, k_Ca44_He4_to_p_Sc47_derived, + He4, Sc47, -1, H1, Ti50, -1, Sc47, Ti50, k_Sc47_He4_to_p_Ti50_reaclib, k_Ti50_p_to_He4_Sc47_derived, + N, Sc48, -1, H1, Ca48, -1, Sc48, Ca48, k_Sc48_n_to_p_Ca48_reaclib, k_Ca48_p_to_n_Sc48_derived, + H1, Sc48, -1, N, Ti48, -1, Sc48, Ti48, k_Sc48_p_to_n_Ti48_reaclib, k_Ti48_n_to_p_Sc48_derived, + H1, Sc48, -1, He4, Ca45, -1, Sc48, Ca45, k_Sc48_p_to_He4_Ca45_reaclib, k_Ca45_He4_to_p_Sc48_derived, + He4, Sc48, -1, N, V51, -1, Sc48, V51, k_Sc48_He4_to_n_V51_reaclib, k_V51_n_to_He4_Sc48_derived, + He4, Sc48, -1, H1, Ti51, -1, Sc48, Ti51, k_Sc48_He4_to_p_Ti51_reaclib, k_Ti51_p_to_He4_Sc48_derived, + H1, Sc49, -1, N, Ti49, -1, Sc49, Ti49, k_Sc49_p_to_n_Ti49_reaclib, k_Ti49_n_to_p_Sc49_derived, + H1, Sc49, -1, He4, Ca46, -1, Sc49, Ca46, k_Sc49_p_to_He4_Ca46_reaclib, k_Ca46_He4_to_p_Sc49_derived, + N, Ti44, -1, H1, Sc44, -1, Ti44, Sc44, k_Ti44_n_to_p_Sc44_reaclib, k_Sc44_p_to_n_Ti44_derived, + N, Ti44, -1, He4, Ca41, -1, Ti44, Ca41, k_Ti44_n_to_He4_Ca41_reaclib, k_Ca41_He4_to_n_Ti44_derived, + N, Ti45, -1, H1, Sc45, -1, Ti45, Sc45, k_Ti45_n_to_p_Sc45_reaclib, k_Sc45_p_to_n_Ti45_derived, + N, Ti45, -1, He4, Ca42, -1, Ti45, Ca42, k_Ti45_n_to_He4_Ca42_reaclib, k_Ca42_He4_to_n_Ti45_derived, + He4, Ti45, -1, H1, V48, -1, Ti45, V48, k_Ti45_He4_to_p_V48_reaclib, k_V48_p_to_He4_Ti45_derived, + N, Ti47, -1, H1, Sc47, -1, Ti47, Sc47, k_Ti47_n_to_p_Sc47_reaclib, k_Sc47_p_to_n_Ti47_derived, + N, Ti47, -1, He4, Ca44, -1, Ti47, Ca44, k_Ti47_n_to_He4_Ca44_reaclib, k_Ca44_He4_to_n_Ti47_derived, + N, Ti49, -1, He4, Ca46, -1, Ti49, Ca46, k_Ti49_n_to_He4_Ca46_reaclib, k_Ca46_He4_to_n_Ti49_derived, + He4, Ti49, -1, N, Cr52, -1, Ti49, Cr52, k_Ti49_He4_to_n_Cr52_reaclib, k_Cr52_n_to_He4_Ti49_derived, + N, Ti51, -1, He4, Ca48, -1, Ti51, Ca48, k_Ti51_n_to_He4_Ca48_reaclib, k_Ca48_He4_to_n_Ti51_derived, + H1, Ti51, -1, N, V51, -1, Ti51, V51, k_Ti51_p_to_n_V51_reaclib, k_V51_n_to_p_Ti51_derived, + He4, Ti51, -1, N, Cr54, -1, Ti51, Cr54, k_Ti51_He4_to_n_Cr54_reaclib, k_Cr54_n_to_He4_Ti51_derived, + N, V46, -1, H1, Ti46, -1, V46, Ti46, k_V46_n_to_p_Ti46_reaclib, k_Ti46_p_to_n_V46_derived, + N, V46, -1, He4, Sc43, -1, V46, Sc43, k_V46_n_to_He4_Sc43_reaclib, k_Sc43_He4_to_n_V46_derived, + He4, V46, -1, H1, Cr49, -1, V46, Cr49, k_V46_He4_to_p_Cr49_reaclib, k_Cr49_p_to_He4_V46_derived, + N, V47, -1, H1, Ti47, -1, V47, Ti47, k_V47_n_to_p_Ti47_reaclib, k_Ti47_p_to_n_V47_derived, + N, V47, -1, He4, Sc44, -1, V47, Sc44, k_V47_n_to_He4_Sc44_reaclib, k_Sc44_He4_to_n_V47_derived, + He4, V47, -1, H1, Cr50, -1, V47, Cr50, k_V47_He4_to_p_Cr50_reaclib, k_Cr50_p_to_He4_V47_derived, + N, V48, -1, H1, Ti48, -1, V48, Ti48, k_V48_n_to_p_Ti48_reaclib, k_Ti48_p_to_n_V48_derived, + N, V48, -1, He4, Sc45, -1, V48, Sc45, k_V48_n_to_He4_Sc45_reaclib, k_Sc45_He4_to_n_V48_derived, + He4, V48, -1, H1, Cr51, -1, V48, Cr51, k_V48_He4_to_p_Cr51_reaclib, k_Cr51_p_to_He4_V48_derived, + N, V49, -1, H1, Ti49, -1, V49, Ti49, k_V49_n_to_p_Ti49_reaclib, k_Ti49_p_to_n_V49_derived, + H1, V49, -1, He4, Ti46, -1, V49, Ti46, k_V49_p_to_He4_Ti46_reaclib, k_Ti46_He4_to_p_V49_derived, + He4, V49, -1, H1, Cr52, -1, V49, Cr52, k_V49_He4_to_p_Cr52_reaclib, k_Cr52_p_to_He4_V49_derived, + N, V50, -1, H1, Ti50, -1, V50, Ti50, k_V50_n_to_p_Ti50_reaclib, k_Ti50_p_to_n_V50_derived, + N, V50, -1, He4, Sc47, -1, V50, Sc47, k_V50_n_to_He4_Sc47_reaclib, k_Sc47_He4_to_n_V50_derived, + H1, V50, -1, N, Cr50, -1, V50, Cr50, k_V50_p_to_n_Cr50_reaclib, k_Cr50_n_to_p_V50_derived, + H1, V50, -1, He4, Ti47, -1, V50, Ti47, k_V50_p_to_He4_Ti47_reaclib, k_Ti47_He4_to_p_V50_derived, + He4, V50, -1, H1, Cr53, -1, V50, Cr53, k_V50_He4_to_p_Cr53_reaclib, k_Cr53_p_to_He4_V50_derived, + H1, V51, -1, He4, Ti48, -1, V51, Ti48, k_V51_p_to_He4_Ti48_reaclib, k_Ti48_He4_to_p_V51_derived, + N, V52, -1, He4, Sc49, -1, V52, Sc49, k_V52_n_to_He4_Sc49_reaclib, k_Sc49_He4_to_n_V52_derived, + H1, V52, -1, N, Cr52, -1, V52, Cr52, k_V52_p_to_n_Cr52_reaclib, k_Cr52_n_to_p_V52_derived, + H1, V52, -1, He4, Ti49, -1, V52, Ti49, k_V52_p_to_He4_Ti49_reaclib, k_Ti49_He4_to_p_V52_derived, + He4, V52, -1, N, Mn55, -1, V52, Mn55, k_V52_He4_to_n_Mn55_reaclib, k_Mn55_n_to_He4_V52_derived, + N, Cr48, -1, H1, V48, -1, Cr48, V48, k_Cr48_n_to_p_V48_reaclib, k_V48_p_to_n_Cr48_derived, + N, Cr48, -1, He4, Ti45, -1, Cr48, Ti45, k_Cr48_n_to_He4_Ti45_reaclib, k_Ti45_He4_to_n_Cr48_derived, + He4, Cr48, -1, H1, Mn51, -1, Cr48, Mn51, k_Cr48_He4_to_p_Mn51_reaclib, k_Mn51_p_to_He4_Cr48_derived, + N, Cr49, -1, H1, V49, -1, Cr49, V49, k_Cr49_n_to_p_V49_reaclib, k_V49_p_to_n_Cr49_derived, + N, Cr49, -1, He4, Ti46, -1, Cr49, Ti46, k_Cr49_n_to_He4_Ti46_reaclib, k_Ti46_He4_to_n_Cr49_derived, + He4, Cr49, -1, H1, Mn52, -1, Cr49, Mn52, k_Cr49_He4_to_p_Mn52_reaclib, k_Mn52_p_to_He4_Cr49_derived, + N, Cr50, -1, He4, Ti47, -1, Cr50, Ti47, k_Cr50_n_to_He4_Ti47_reaclib, k_Ti47_He4_to_n_Cr50_derived, + N, Cr51, -1, H1, V51, -1, Cr51, V51, k_Cr51_n_to_p_V51_reaclib, k_V51_p_to_n_Cr51_derived, + N, Cr51, -1, He4, Ti48, -1, Cr51, Ti48, k_Cr51_n_to_He4_Ti48_reaclib, k_Ti48_He4_to_n_Cr51_derived, + N, Cr53, -1, He4, Ti50, -1, Cr53, Ti50, k_Cr53_n_to_He4_Ti50_reaclib, k_Ti50_He4_to_n_Cr53_derived, + H1, Cr54, -1, He4, V51, -1, Cr54, V51, k_Cr54_p_to_He4_V51_reaclib, k_V51_He4_to_p_Cr54_derived, + N, Mn50, -1, H1, Cr50, -1, Mn50, Cr50, k_Mn50_n_to_p_Cr50_reaclib, k_Cr50_p_to_n_Mn50_derived, + N, Mn50, -1, He4, V47, -1, Mn50, V47, k_Mn50_n_to_He4_V47_reaclib, k_V47_He4_to_n_Mn50_derived, + He4, Mn50, -1, H1, Fe53, -1, Mn50, Fe53, k_Mn50_He4_to_p_Fe53_reaclib, k_Fe53_p_to_He4_Mn50_derived, + N, Mn51, -1, H1, Cr51, -1, Mn51, Cr51, k_Mn51_n_to_p_Cr51_reaclib, k_Cr51_p_to_n_Mn51_derived, + N, Mn51, -1, He4, V48, -1, Mn51, V48, k_Mn51_n_to_He4_V48_reaclib, k_V48_He4_to_n_Mn51_derived, + He4, Mn51, -1, H1, Fe54, -1, Mn51, Fe54, k_Mn51_He4_to_p_Fe54_reaclib, k_Fe54_p_to_He4_Mn51_derived, + N, Mn52, -1, H1, Cr52, -1, Mn52, Cr52, k_Mn52_n_to_p_Cr52_reaclib, k_Cr52_p_to_n_Mn52_derived, + N, Mn52, -1, He4, V49, -1, Mn52, V49, k_Mn52_n_to_He4_V49_reaclib, k_V49_He4_to_n_Mn52_derived, + He4, Mn52, -1, H1, Fe55, -1, Mn52, Fe55, k_Mn52_He4_to_p_Fe55_reaclib, k_Fe55_p_to_He4_Mn52_derived, + N, Mn53, -1, H1, Cr53, -1, Mn53, Cr53, k_Mn53_n_to_p_Cr53_reaclib, k_Cr53_p_to_n_Mn53_derived, + N, Mn53, -1, He4, V50, -1, Mn53, V50, k_Mn53_n_to_He4_V50_reaclib, k_V50_He4_to_n_Mn53_derived, + H1, Mn53, -1, He4, Cr50, -1, Mn53, Cr50, k_Mn53_p_to_He4_Cr50_reaclib, k_Cr50_He4_to_p_Mn53_derived, + He4, Mn53, -1, H1, Fe56, -1, Mn53, Fe56, k_Mn53_He4_to_p_Fe56_reaclib, k_Fe56_p_to_He4_Mn53_derived, + N, Mn54, -1, H1, Cr54, -1, Mn54, Cr54, k_Mn54_n_to_p_Cr54_reaclib, k_Cr54_p_to_n_Mn54_derived, + N, Mn54, -1, He4, V51, -1, Mn54, V51, k_Mn54_n_to_He4_V51_reaclib, k_V51_He4_to_n_Mn54_derived, + H1, Mn54, -1, He4, Cr51, -1, Mn54, Cr51, k_Mn54_p_to_He4_Cr51_reaclib, k_Cr51_He4_to_p_Mn54_derived, + H1, Mn55, -1, He4, Cr52, -1, Mn55, Cr52, k_Mn55_p_to_He4_Cr52_reaclib, k_Cr52_He4_to_p_Mn55_derived, + N, Fe52, -1, H1, Mn52, -1, Fe52, Mn52, k_Fe52_n_to_p_Mn52_reaclib, k_Mn52_p_to_n_Fe52_derived, + N, Fe52, -1, He4, Cr49, -1, Fe52, Cr49, k_Fe52_n_to_He4_Cr49_reaclib, k_Cr49_He4_to_n_Fe52_derived, + He4, Fe52, -1, H1, Co55, -1, Fe52, Co55, k_Fe52_He4_to_p_Co55_reaclib, k_Co55_p_to_He4_Fe52_derived, + N, Fe53, -1, H1, Mn53, -1, Fe53, Mn53, k_Fe53_n_to_p_Mn53_reaclib, k_Mn53_p_to_n_Fe53_derived, + N, Fe53, -1, He4, Cr50, -1, Fe53, Cr50, k_Fe53_n_to_He4_Cr50_reaclib, k_Cr50_He4_to_n_Fe53_derived, + He4, Fe53, -1, H1, Co56, -1, Fe53, Co56, k_Fe53_He4_to_p_Co56_reaclib, k_Co56_p_to_He4_Fe53_derived, + N, Fe54, -1, H1, Mn54, -1, Fe54, Mn54, k_Fe54_n_to_p_Mn54_reaclib, k_Mn54_p_to_n_Fe54_derived, + N, Fe54, -1, He4, Cr51, -1, Fe54, Cr51, k_Fe54_n_to_He4_Cr51_reaclib, k_Cr51_He4_to_n_Fe54_derived, + N, Fe55, -1, H1, Mn55, -1, Fe55, Mn55, k_Fe55_n_to_p_Mn55_reaclib, k_Mn55_p_to_n_Fe55_derived, + N, Fe55, -1, He4, Cr52, -1, Fe55, Cr52, k_Fe55_n_to_He4_Cr52_reaclib, k_Cr52_He4_to_n_Fe55_derived, + N, Fe56, -1, He4, Cr53, -1, Fe56, Cr53, k_Fe56_n_to_He4_Cr53_reaclib, k_Cr53_He4_to_n_Fe56_derived, + N, Fe57, -1, He4, Cr54, -1, Fe57, Cr54, k_Fe57_n_to_He4_Cr54_reaclib, k_Cr54_He4_to_n_Fe57_derived, + H1, Fe57, -1, He4, Mn54, -1, Fe57, Mn54, k_Fe57_p_to_He4_Mn54_reaclib, k_Mn54_He4_to_p_Fe57_derived, + H1, Fe58, -1, He4, Mn55, -1, Fe58, Mn55, k_Fe58_p_to_He4_Mn55_reaclib, k_Mn55_He4_to_p_Fe58_derived, + N, Co53, -1, H1, Fe53, -1, Co53, Fe53, k_Co53_n_to_p_Fe53_reaclib, k_Fe53_p_to_n_Co53_derived, + N, Co53, -1, He4, Mn50, -1, Co53, Mn50, k_Co53_n_to_He4_Mn50_reaclib, k_Mn50_He4_to_n_Co53_derived, + He4, Co53, -1, H1, Ni56, -1, Co53, Ni56, k_Co53_He4_to_p_Ni56_reaclib, k_Ni56_p_to_He4_Co53_derived, + N, Co54, -1, H1, Fe54, -1, Co54, Fe54, k_Co54_n_to_p_Fe54_reaclib, k_Fe54_p_to_n_Co54_derived, + N, Co54, -1, He4, Mn51, -1, Co54, Mn51, k_Co54_n_to_He4_Mn51_reaclib, k_Mn51_He4_to_n_Co54_derived, + He4, Co54, -1, H1, Ni57, -1, Co54, Ni57, k_Co54_He4_to_p_Ni57_reaclib, k_Ni57_p_to_He4_Co54_derived, + N, Co55, -1, H1, Fe55, -1, Co55, Fe55, k_Co55_n_to_p_Fe55_reaclib, k_Fe55_p_to_n_Co55_derived, + N, Co55, -1, He4, Mn52, -1, Co55, Mn52, k_Co55_n_to_He4_Mn52_reaclib, k_Mn52_He4_to_n_Co55_derived, + He4, Co55, -1, H1, Ni58, -1, Co55, Ni58, k_Co55_He4_to_p_Ni58_reaclib, k_Ni58_p_to_He4_Co55_derived, + N, Co56, -1, H1, Fe56, -1, Co56, Fe56, k_Co56_n_to_p_Fe56_reaclib, k_Fe56_p_to_n_Co56_derived, + N, Co56, -1, He4, Mn53, -1, Co56, Mn53, k_Co56_n_to_He4_Mn53_reaclib, k_Mn53_He4_to_n_Co56_derived, + He4, Co56, -1, H1, Ni59, -1, Co56, Ni59, k_Co56_He4_to_p_Ni59_reaclib, k_Ni59_p_to_He4_Co56_derived, + N, Co57, -1, H1, Fe57, -1, Co57, Fe57, k_Co57_n_to_p_Fe57_reaclib, k_Fe57_p_to_n_Co57_derived, + N, Co57, -1, He4, Mn54, -1, Co57, Mn54, k_Co57_n_to_He4_Mn54_reaclib, k_Mn54_He4_to_n_Co57_derived, + H1, Co57, -1, He4, Fe54, -1, Co57, Fe54, k_Co57_p_to_He4_Fe54_reaclib, k_Fe54_He4_to_p_Co57_derived, + He4, Co57, -1, H1, Ni60, -1, Co57, Ni60, k_Co57_He4_to_p_Ni60_reaclib, k_Ni60_p_to_He4_Co57_derived, + N, Co58, -1, H1, Fe58, -1, Co58, Fe58, k_Co58_n_to_p_Fe58_reaclib, k_Fe58_p_to_n_Co58_derived, + N, Co58, -1, He4, Mn55, -1, Co58, Mn55, k_Co58_n_to_He4_Mn55_reaclib, k_Mn55_He4_to_n_Co58_derived, + H1, Co58, -1, He4, Fe55, -1, Co58, Fe55, k_Co58_p_to_He4_Fe55_reaclib, k_Fe55_He4_to_p_Co58_derived, + H1, Co59, -1, He4, Fe56, -1, Co59, Fe56, k_Co59_p_to_He4_Fe56_reaclib, k_Fe56_He4_to_p_Co59_derived, + N, Ni56, -1, H1, Co56, -1, Ni56, Co56, k_Ni56_n_to_p_Co56_reaclib, k_Co56_p_to_n_Ni56_derived, + N, Ni56, -1, He4, Fe53, -1, Ni56, Fe53, k_Ni56_n_to_He4_Fe53_reaclib, k_Fe53_He4_to_n_Ni56_derived, + N, Ni57, -1, H1, Co57, -1, Ni57, Co57, k_Ni57_n_to_p_Co57_reaclib, k_Co57_p_to_n_Ni57_derived, + N, Ni57, -1, He4, Fe54, -1, Ni57, Fe54, k_Ni57_n_to_He4_Fe54_reaclib, k_Fe54_He4_to_n_Ni57_derived, + N, Ni58, -1, H1, Co58, -1, Ni58, Co58, k_Ni58_n_to_p_Co58_reaclib, k_Co58_p_to_n_Ni58_derived, + N, Ni58, -1, He4, Fe55, -1, Ni58, Fe55, k_Ni58_n_to_He4_Fe55_reaclib, k_Fe55_He4_to_n_Ni58_derived, + N, Ni59, -1, H1, Co59, -1, Ni59, Co59, k_Ni59_n_to_p_Co59_reaclib, k_Co59_p_to_n_Ni59_derived, + N, Ni59, -1, He4, Fe56, -1, Ni59, Fe56, k_Ni59_n_to_He4_Fe56_reaclib, k_Fe56_He4_to_n_Ni59_derived, + N, Ni60, -1, He4, Fe57, -1, Ni60, Fe57, k_Ni60_n_to_He4_Fe57_reaclib, k_Fe57_He4_to_n_Ni60_derived, + N, Ni61, -1, He4, Fe58, -1, Ni61, Fe58, k_Ni61_n_to_He4_Fe58_reaclib, k_Fe58_He4_to_n_Ni61_derived, + H1, Ni61, -1, He4, Co58, -1, Ni61, Co58, k_Ni61_p_to_He4_Co58_reaclib, k_Co58_He4_to_p_Ni61_derived, + H1, Ni62, -1, He4, Co59, -1, Ni62, Co59, k_Ni62_p_to_He4_Co59_reaclib, k_Co59_He4_to_p_Ni62_derived, + N, Cu57, -1, H1, Ni57, -1, Cu57, Ni57, k_Cu57_n_to_p_Ni57_reaclib, k_Ni57_p_to_n_Cu57_derived, + N, Cu57, -1, He4, Co54, -1, Cu57, Co54, k_Cu57_n_to_He4_Co54_reaclib, k_Co54_He4_to_n_Cu57_derived, + He4, Cu57, -1, H1, Zn60, -1, Cu57, Zn60, k_Cu57_He4_to_p_Zn60_reaclib, k_Zn60_p_to_He4_Cu57_derived, + N, Cu58, -1, H1, Ni58, -1, Cu58, Ni58, k_Cu58_n_to_p_Ni58_reaclib, k_Ni58_p_to_n_Cu58_derived, + N, Cu58, -1, He4, Co55, -1, Cu58, Co55, k_Cu58_n_to_He4_Co55_reaclib, k_Co55_He4_to_n_Cu58_derived, + N, Cu59, -1, H1, Ni59, -1, Cu59, Ni59, k_Cu59_n_to_p_Ni59_reaclib, k_Ni59_p_to_n_Cu59_derived, + N, Cu59, -1, He4, Co56, -1, Cu59, Co56, k_Cu59_n_to_He4_Co56_reaclib, k_Co56_He4_to_n_Cu59_derived, + H1, Cu59, -1, He4, Ni56, -1, Cu59, Ni56, k_Cu59_p_to_He4_Ni56_reaclib, k_Ni56_He4_to_p_Cu59_derived, + N, Cu60, -1, H1, Ni60, -1, Cu60, Ni60, k_Cu60_n_to_p_Ni60_reaclib, k_Ni60_p_to_n_Cu60_derived, + N, Cu60, -1, He4, Co57, -1, Cu60, Co57, k_Cu60_n_to_He4_Co57_reaclib, k_Co57_He4_to_n_Cu60_derived, + H1, Cu60, -1, He4, Ni57, -1, Cu60, Ni57, k_Cu60_p_to_He4_Ni57_reaclib, k_Ni57_He4_to_p_Cu60_derived, + N, Cu61, -1, H1, Ni61, -1, Cu61, Ni61, k_Cu61_n_to_p_Ni61_reaclib, k_Ni61_p_to_n_Cu61_derived, + N, Cu61, -1, He4, Co58, -1, Cu61, Co58, k_Cu61_n_to_He4_Co58_reaclib, k_Co58_He4_to_n_Cu61_derived, + H1, Cu61, -1, He4, Ni58, -1, Cu61, Ni58, k_Cu61_p_to_He4_Ni58_reaclib, k_Ni58_He4_to_p_Cu61_derived, + N, Cu62, -1, H1, Ni62, -1, Cu62, Ni62, k_Cu62_n_to_p_Ni62_reaclib, k_Ni62_p_to_n_Cu62_derived, + N, Cu62, -1, He4, Co59, -1, Cu62, Co59, k_Cu62_n_to_He4_Co59_reaclib, k_Co59_He4_to_n_Cu62_derived, + H1, Cu62, -1, He4, Ni59, -1, Cu62, Ni59, k_Cu62_p_to_He4_Ni59_reaclib, k_Ni59_He4_to_p_Cu62_derived, + N, Cu63, -1, H1, Ni63, -1, Cu63, Ni63, k_Cu63_n_to_p_Ni63_reaclib, k_Ni63_p_to_n_Cu63_derived, + H1, Cu63, -1, He4, Ni60, -1, Cu63, Ni60, k_Cu63_p_to_He4_Ni60_reaclib, k_Ni60_He4_to_p_Cu63_derived, + N, Cu64, -1, H1, Ni64, -1, Cu64, Ni64, k_Cu64_n_to_p_Ni64_reaclib, k_Ni64_p_to_n_Cu64_derived, + H1, Cu64, -1, He4, Ni61, -1, Cu64, Ni61, k_Cu64_p_to_He4_Ni61_reaclib, k_Ni61_He4_to_p_Cu64_derived, + H1, Cu65, -1, He4, Ni62, -1, Cu65, Ni62, k_Cu65_p_to_He4_Ni62_reaclib, k_Ni62_He4_to_p_Cu65_derived, + N, Zn59, -1, H1, Cu59, -1, Zn59, Cu59, k_Zn59_n_to_p_Cu59_reaclib, k_Cu59_p_to_n_Zn59_derived, + N, Zn59, -1, He4, Ni56, -1, Zn59, Ni56, k_Zn59_n_to_He4_Ni56_reaclib, k_Ni56_He4_to_n_Zn59_derived, + N, Zn60, -1, H1, Cu60, -1, Zn60, Cu60, k_Zn60_n_to_p_Cu60_reaclib, k_Cu60_p_to_n_Zn60_derived, + N, Zn60, -1, He4, Ni57, -1, Zn60, Ni57, k_Zn60_n_to_He4_Ni57_reaclib, k_Ni57_He4_to_n_Zn60_derived, + N, Zn61, -1, H1, Cu61, -1, Zn61, Cu61, k_Zn61_n_to_p_Cu61_reaclib, k_Cu61_p_to_n_Zn61_derived, + N, Zn61, -1, He4, Ni58, -1, Zn61, Ni58, k_Zn61_n_to_He4_Ni58_reaclib, k_Ni58_He4_to_n_Zn61_derived, + H1, Zn61, -1, He4, Cu58, -1, Zn61, Cu58, k_Zn61_p_to_He4_Cu58_reaclib, k_Cu58_He4_to_p_Zn61_derived, + N, Zn62, -1, H1, Cu62, -1, Zn62, Cu62, k_Zn62_n_to_p_Cu62_reaclib, k_Cu62_p_to_n_Zn62_derived, + N, Zn62, -1, He4, Ni59, -1, Zn62, Ni59, k_Zn62_n_to_He4_Ni59_reaclib, k_Ni59_He4_to_n_Zn62_derived, + H1, Zn62, -1, He4, Cu59, -1, Zn62, Cu59, k_Zn62_p_to_He4_Cu59_reaclib, k_Cu59_He4_to_p_Zn62_derived, + N, Zn63, -1, H1, Cu63, -1, Zn63, Cu63, k_Zn63_n_to_p_Cu63_reaclib, k_Cu63_p_to_n_Zn63_derived, + N, Zn63, -1, He4, Ni60, -1, Zn63, Ni60, k_Zn63_n_to_He4_Ni60_reaclib, k_Ni60_He4_to_n_Zn63_derived, + H1, Zn63, -1, He4, Cu60, -1, Zn63, Cu60, k_Zn63_p_to_He4_Cu60_reaclib, k_Cu60_He4_to_p_Zn63_derived, + N, Zn64, -1, H1, Cu64, -1, Zn64, Cu64, k_Zn64_n_to_p_Cu64_reaclib, k_Cu64_p_to_n_Zn64_derived, + N, Zn64, -1, He4, Ni61, -1, Zn64, Ni61, k_Zn64_n_to_He4_Ni61_reaclib, k_Ni61_He4_to_n_Zn64_derived, + H1, Zn64, -1, He4, Cu61, -1, Zn64, Cu61, k_Zn64_p_to_He4_Cu61_reaclib, k_Cu61_He4_to_p_Zn64_derived, + N, Zn65, -1, H1, Cu65, -1, Zn65, Cu65, k_Zn65_n_to_p_Cu65_reaclib, k_Cu65_p_to_n_Zn65_derived, + N, Zn65, -1, He4, Ni62, -1, Zn65, Ni62, k_Zn65_n_to_He4_Ni62_reaclib, k_Ni62_He4_to_n_Zn65_derived, + H1, Zn65, -1, He4, Cu62, -1, Zn65, Cu62, k_Zn65_p_to_He4_Cu62_reaclib, k_Cu62_He4_to_p_Zn65_derived, + N, Zn66, -1, He4, Ni63, -1, Zn66, Ni63, k_Zn66_n_to_He4_Ni63_reaclib, k_Ni63_He4_to_n_Zn66_derived, + H1, Zn66, -1, He4, Cu63, -1, Zn66, Cu63, k_Zn66_p_to_He4_Cu63_reaclib, k_Cu63_He4_to_p_Zn66_derived, + N, Ga62, -1, H1, Zn62, -1, Ga62, Zn62, k_Ga62_n_to_p_Zn62_reaclib, k_Zn62_p_to_n_Ga62_derived, + N, Ga62, -1, He4, Cu59, -1, Ga62, Cu59, k_Ga62_n_to_He4_Cu59_reaclib, k_Cu59_He4_to_n_Ga62_derived, + H1, Ga62, -1, He4, Zn59, -1, Ga62, Zn59, k_Ga62_p_to_He4_Zn59_reaclib, k_Zn59_He4_to_p_Ga62_derived, + N, Ga63, -1, H1, Zn63, -1, Ga63, Zn63, k_Ga63_n_to_p_Zn63_reaclib, k_Zn63_p_to_n_Ga63_derived, + N, Ga63, -1, He4, Cu60, -1, Ga63, Cu60, k_Ga63_n_to_He4_Cu60_reaclib, k_Cu60_He4_to_n_Ga63_derived, + H1, Ga63, -1, He4, Zn60, -1, Ga63, Zn60, k_Ga63_p_to_He4_Zn60_reaclib, k_Zn60_He4_to_p_Ga63_derived, + N, Ga64, -1, H1, Zn64, -1, Ga64, Zn64, k_Ga64_n_to_p_Zn64_reaclib, k_Zn64_p_to_n_Ga64_derived, + N, Ga64, -1, He4, Cu61, -1, Ga64, Cu61, k_Ga64_n_to_He4_Cu61_reaclib, k_Cu61_He4_to_n_Ga64_derived, + H1, Ga64, -1, He4, Zn61, -1, Ga64, Zn61, k_Ga64_p_to_He4_Zn61_reaclib, k_Zn61_He4_to_p_Ga64_derived, + N, Ge63, -1, H1, Ga63, -1, Ge63, Ga63, k_Ge63_n_to_p_Ga63_reaclib, k_Ga63_p_to_n_Ge63_derived, + N, Ge63, -1, He4, Zn60, -1, Ge63, Zn60, k_Ge63_n_to_He4_Zn60_reaclib, k_Zn60_He4_to_n_Ge63_derived, + N, Ge64, -1, H1, Ga64, -1, Ge64, Ga64, k_Ge64_n_to_p_Ga64_reaclib, k_Ga64_p_to_n_Ge64_derived, + N, Ge64, -1, He4, Zn61, -1, Ge64, Zn61, k_Ge64_n_to_He4_Zn61_reaclib, k_Zn61_He4_to_n_Ge64_derived, + He4, He4, He4, C12, -1, -1, C12, -1, k_He4_He4_He4_to_C12_reaclib, k_C12_to_3He4_derived, + N, N13, -1, H1, C13, -1, N13, C13, k_N13_n_to_p_C13_derived, k_C13_p_to_n_N13_reaclib, + N, O14, -1, H1, N14, -1, O14, N14, k_O14_n_to_p_N14_derived, k_N14_p_to_n_O14_reaclib, + N, O15, -1, H1, N15, -1, O15, N15, k_O15_n_to_p_N15_derived, k_N15_p_to_n_O15_reaclib, + N, F17, -1, He4, N14, -1, F17, N14, k_F17_n_to_He4_N14_derived, k_N14_He4_to_n_F17_reaclib, + He4, F17, -1, H1, Ne20, -1, F17, Ne20, k_F17_He4_to_p_Ne20_derived, k_Ne20_p_to_He4_F17_reaclib, + N, Ne19, -1, H1, F19, -1, Ne19, F19, k_Ne19_n_to_p_F19_derived, k_F19_p_to_n_Ne19_reaclib, + N, Ne21, -1, He4, O18, -1, Ne21, O18, k_Ne21_n_to_He4_O18_derived, k_O18_He4_to_n_Ne21_reaclib, + He4, Na21, -1, H1, Mg24, -1, Na21, Mg24, k_Na21_He4_to_p_Mg24_derived, k_Mg24_p_to_He4_Na21_reaclib, + N, Mg23, -1, H1, Na23, -1, Mg23, Na23, k_Mg23_n_to_p_Na23_derived, k_Na23_p_to_n_Mg23_reaclib, + N, Mg25, -1, He4, Ne22, -1, Mg25, Ne22, k_Mg25_n_to_He4_Ne22_derived, k_Ne22_He4_to_n_Mg25_reaclib, + N, P30, -1, He4, Al27, -1, P30, Al27, k_P30_n_to_He4_Al27_derived, k_Al27_He4_to_n_P30_reaclib, + H1, Cl37, -1, He4, S34, -1, Cl37, S34, k_Cl37_p_to_He4_S34_derived, k_S34_He4_to_p_Cl37_reaclib, + N, Ar37, -1, He4, S34, -1, Ar37, S34, k_Ar37_n_to_He4_S34_derived, k_S34_He4_to_n_Ar37_reaclib, + N, Ca41, -1, H1, K41, -1, Ca41, K41, k_Ca41_n_to_p_K41_derived, k_K41_p_to_n_Ca41_reaclib, + N, Sc44, -1, He4, K41, -1, Sc44, K41, k_Sc44_n_to_He4_K41_derived, k_K41_He4_to_n_Sc44_reaclib, + H1, V47, -1, He4, Ti44, -1, V47, Ti44, k_V47_p_to_He4_Ti44_derived, k_Ti44_He4_to_p_V47_reaclib }; } #endif diff --git a/networks/sn160/actual_rhs.H b/networks/sn160/actual_rhs.H index 598e0fa3d..8140ff4e8 100644 --- a/networks/sn160/actual_rhs.H +++ b/networks/sn160/actual_rhs.H @@ -19,17 +19,12 @@ #include #include #include -#include +#include #include +#include #include using namespace amrex::literals; -using namespace ArrayUtil; - -using namespace Species; -using namespace Rates; - -using namespace rate_tables; template AMREX_GPU_DEVICE AMREX_INLINE @@ -58,6 +53,8 @@ void evaluate_screening(const burn_t& state, const amrex::Array1D& Y, T& rate_eval) { + using namespace Rates; + // Evaluate screening terms using number_t = std::conditional_t; @@ -812,6 +809,16 @@ void evaluate_screening(const burn_t& state, } } + { + constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 30.0_rt, 61.0_rt); + static_assert(scn_fac.z1 == 2.0_rt); + actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); + rate_eval.log_screen(k_He4_Zn61) = log_scor; + if constexpr (do_T_derivatives) { + rate_eval.dlog_screen_dT(k_He4_Zn61) = dlog_scor_dT; + } + } + { constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 3.0_rt, 6.0_rt); static_assert(scn_fac.z1 == 2.0_rt); @@ -2473,12 +2480,12 @@ void evaluate_screening(const burn_t& state, } { - constexpr auto scn_fac = scrn::calculate_screen_factor(2.0_rt, 4.0_rt, 30.0_rt, 61.0_rt); - static_assert(scn_fac.z1 == 2.0_rt); + constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 3.0_rt, 7.0_rt); + static_assert(scn_fac.z1 == 1.0_rt); actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); - rate_eval.log_screen(k_He4_Zn61) = log_scor; + rate_eval.log_screen(k_d_Li7) = log_scor; if constexpr (do_T_derivatives) { - rate_eval.dlog_screen_dT(k_He4_Zn61) = dlog_scor_dT; + rate_eval.dlog_screen_dT(k_d_Li7) = dlog_scor_dT; } } @@ -2512,16 +2519,6 @@ void evaluate_screening(const burn_t& state, } } - { - constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 2.0_rt, 3.0_rt, 7.0_rt); - static_assert(scn_fac.z1 == 1.0_rt); - actual_log_screen(pstate, scn_fac, log_scor, dlog_scor_dT); - rate_eval.log_screen(k_d_Li7) = log_scor; - if constexpr (do_T_derivatives) { - rate_eval.dlog_screen_dT(k_d_Li7) = dlog_scor_dT; - } - } - { constexpr auto scn_fac = scrn::calculate_screen_factor(1.0_rt, 1.0_rt, 24.0_rt, 53.0_rt); static_assert(scn_fac.z1 == 1.0_rt); @@ -3072,9 +3069,11 @@ void evaluate_rates(const burn_t& state, const amrex::Array1D& Y, T& rate_eval) { + using namespace Rates; + // here Y is consistent with state.xn - [[maybe_unused]] amrex::Real rhoy = state.rho * state.y_e; + [[maybe_unused]] const amrex::Real rhoy = state.rho * state.y_e; const tf_t tfactors = evaluate_tfactors(state.T); @@ -3086,7 +3085,9 @@ void evaluate_rates(const burn_t& state, // Fill in different rates - fill_reaclib_rates(tfactors, rate_eval); + reaclib_rates::fill_rates(tfactors, rate_eval); + + tabular_weak_rates::fill_rates(state.T, rhoy, Y, rate_eval); temp_tabular::fill_rates(tfactors, rate_eval); @@ -3094,1371 +3095,20 @@ void evaluate_rates(const burn_t& state, // TemperatureTabular/StarLib rates as the original rate modified_rates::fill_rates(tfactors, rate_eval); + // fill branched rates -- these can have ReacLib or + // TemperatureTabular/StarLib as the underlying rate or branches. + branched_rates::fill_rates(tfactors, rate_eval); + // Calculate Derived Rates next. This should go last but before // approx rates, since those may have ReacLibRate, // TemperatureTabularRate / StarLibRate, or DerivedRate as the // underlying rate. + derived_rates::fill_rates(tfactors, rate_eval); - fill_derived_rates(tfactors, rate_eval); // Fill approximate rates - - fill_approx_rates(tfactors, state.rho, Y, rate_eval); - - // Calculate tabular weak rates - - [[maybe_unused]] amrex::Real rate, drate_dt, edot_nu, edot_gamma; - - rate_eval.enuc_weak = 0.0_rt; - - amrex::Real log_temp = std::log10(state.T); - amrex::Real log_rhoy = std::log10(rhoy); - - tabular_evaluate(j_Na21_Ne21_meta, j_Na21_Ne21_rhoy, j_Na21_Ne21_temp, j_Na21_Ne21_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Na21_to_Ne21_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Na21_to_Ne21_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Na21) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ne21_Na21_meta, j_Ne21_Na21_rhoy, j_Ne21_Na21_temp, j_Ne21_Na21_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ne21_to_Na21_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ne21_to_Na21_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ne21) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Na22_Ne22_meta, j_Na22_Ne22_rhoy, j_Na22_Ne22_temp, j_Na22_Ne22_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Na22_to_Ne22_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Na22_to_Ne22_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Na22) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ne22_Na22_meta, j_Ne22_Na22_rhoy, j_Ne22_Na22_temp, j_Ne22_Na22_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ne22_to_Na22_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ne22_to_Na22_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ne22) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Mg23_Na23_meta, j_Mg23_Na23_rhoy, j_Mg23_Na23_temp, j_Mg23_Na23_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Mg23_to_Na23_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mg23_to_Na23_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Mg23) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Na23_Mg23_meta, j_Na23_Mg23_rhoy, j_Na23_Mg23_temp, j_Na23_Mg23_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Na23_to_Mg23_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Na23_to_Mg23_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Na23) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Al25_Mg25_meta, j_Al25_Mg25_rhoy, j_Al25_Mg25_temp, j_Al25_Mg25_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Al25_to_Mg25_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Al25_to_Mg25_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Al25) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Mg25_Al25_meta, j_Mg25_Al25_rhoy, j_Mg25_Al25_temp, j_Mg25_Al25_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Mg25_to_Al25_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mg25_to_Al25_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Mg25) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Al26_Mg26_meta, j_Al26_Mg26_rhoy, j_Al26_Mg26_temp, j_Al26_Mg26_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Al26_to_Mg26_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Al26_to_Mg26_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Al26) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Mg26_Al26_meta, j_Mg26_Al26_rhoy, j_Mg26_Al26_temp, j_Mg26_Al26_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Mg26_to_Al26_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mg26_to_Al26_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Mg26) * (edot_nu + edot_gamma); - - tabular_evaluate(j_P29_Si29_meta, j_P29_Si29_rhoy, j_P29_Si29_temp, j_P29_Si29_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_P29_to_Si29_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_P29_to_Si29_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(P29) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Si29_P29_meta, j_Si29_P29_rhoy, j_Si29_P29_temp, j_Si29_P29_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Si29_to_P29_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Si29_to_P29_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Si29) * (edot_nu + edot_gamma); - - tabular_evaluate(j_P30_Si30_meta, j_P30_Si30_rhoy, j_P30_Si30_temp, j_P30_Si30_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_P30_to_Si30_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_P30_to_Si30_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(P30) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Si30_P30_meta, j_Si30_P30_rhoy, j_Si30_P30_temp, j_Si30_P30_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Si30_to_P30_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Si30_to_P30_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Si30) * (edot_nu + edot_gamma); - - tabular_evaluate(j_P31_Si31_meta, j_P31_Si31_rhoy, j_P31_Si31_temp, j_P31_Si31_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_P31_to_Si31_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_P31_to_Si31_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(P31) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Si31_P31_meta, j_Si31_P31_rhoy, j_Si31_P31_temp, j_Si31_P31_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Si31_to_P31_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Si31_to_P31_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Si31) * (edot_nu + edot_gamma); - - tabular_evaluate(j_P32_S32_meta, j_P32_S32_rhoy, j_P32_S32_temp, j_P32_S32_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_P32_to_S32_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_P32_to_S32_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(P32) * (edot_nu + edot_gamma); - - tabular_evaluate(j_P32_Si32_meta, j_P32_Si32_rhoy, j_P32_Si32_temp, j_P32_Si32_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_P32_to_Si32_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_P32_to_Si32_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(P32) * (edot_nu + edot_gamma); - - tabular_evaluate(j_S32_P32_meta, j_S32_P32_rhoy, j_S32_P32_temp, j_S32_P32_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_S32_to_P32_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S32_to_P32_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(S32) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Si32_P32_meta, j_Si32_P32_rhoy, j_Si32_P32_temp, j_Si32_P32_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Si32_to_P32_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Si32_to_P32_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Si32) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cl33_S33_meta, j_Cl33_S33_rhoy, j_Cl33_S33_temp, j_Cl33_S33_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cl33_to_S33_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cl33_to_S33_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cl33) * (edot_nu + edot_gamma); - - tabular_evaluate(j_P33_S33_meta, j_P33_S33_rhoy, j_P33_S33_temp, j_P33_S33_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_P33_to_S33_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_P33_to_S33_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(P33) * (edot_nu + edot_gamma); - - tabular_evaluate(j_S33_Cl33_meta, j_S33_Cl33_rhoy, j_S33_Cl33_temp, j_S33_Cl33_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_S33_to_Cl33_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S33_to_Cl33_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(S33) * (edot_nu + edot_gamma); - - tabular_evaluate(j_S33_P33_meta, j_S33_P33_rhoy, j_S33_P33_temp, j_S33_P33_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_S33_to_P33_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S33_to_P33_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(S33) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cl34_S34_meta, j_Cl34_S34_rhoy, j_Cl34_S34_temp, j_Cl34_S34_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cl34_to_S34_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cl34_to_S34_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cl34) * (edot_nu + edot_gamma); - - tabular_evaluate(j_S34_Cl34_meta, j_S34_Cl34_rhoy, j_S34_Cl34_temp, j_S34_Cl34_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_S34_to_Cl34_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S34_to_Cl34_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(S34) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cl35_S35_meta, j_Cl35_S35_rhoy, j_Cl35_S35_temp, j_Cl35_S35_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cl35_to_S35_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cl35_to_S35_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cl35) * (edot_nu + edot_gamma); - - tabular_evaluate(j_S35_Cl35_meta, j_S35_Cl35_rhoy, j_S35_Cl35_temp, j_S35_Cl35_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_S35_to_Cl35_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S35_to_Cl35_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(S35) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ar36_Cl36_meta, j_Ar36_Cl36_rhoy, j_Ar36_Cl36_temp, j_Ar36_Cl36_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ar36_to_Cl36_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_Cl36_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ar36) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cl36_Ar36_meta, j_Cl36_Ar36_rhoy, j_Cl36_Ar36_temp, j_Cl36_Ar36_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cl36_to_Ar36_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cl36_to_Ar36_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cl36) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cl36_S36_meta, j_Cl36_S36_rhoy, j_Cl36_S36_temp, j_Cl36_S36_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cl36_to_S36_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cl36_to_S36_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cl36) * (edot_nu + edot_gamma); - - tabular_evaluate(j_S36_Cl36_meta, j_S36_Cl36_rhoy, j_S36_Cl36_temp, j_S36_Cl36_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_S36_to_Cl36_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S36_to_Cl36_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(S36) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ar37_Cl37_meta, j_Ar37_Cl37_rhoy, j_Ar37_Cl37_temp, j_Ar37_Cl37_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ar37_to_Cl37_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar37_to_Cl37_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ar37) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ar37_K37_meta, j_Ar37_K37_rhoy, j_Ar37_K37_temp, j_Ar37_K37_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ar37_to_K37_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar37_to_K37_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ar37) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cl37_Ar37_meta, j_Cl37_Ar37_rhoy, j_Cl37_Ar37_temp, j_Cl37_Ar37_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cl37_to_Ar37_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cl37_to_Ar37_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cl37) * (edot_nu + edot_gamma); - - tabular_evaluate(j_K37_Ar37_meta, j_K37_Ar37_rhoy, j_K37_Ar37_temp, j_K37_Ar37_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_K37_to_Ar37_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_K37_to_Ar37_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(K37) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ar38_K38_meta, j_Ar38_K38_rhoy, j_Ar38_K38_temp, j_Ar38_K38_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ar38_to_K38_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar38_to_K38_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ar38) * (edot_nu + edot_gamma); - - tabular_evaluate(j_K38_Ar38_meta, j_K38_Ar38_rhoy, j_K38_Ar38_temp, j_K38_Ar38_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_K38_to_Ar38_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_K38_to_Ar38_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(K38) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ar39_K39_meta, j_Ar39_K39_rhoy, j_Ar39_K39_temp, j_Ar39_K39_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ar39_to_K39_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar39_to_K39_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ar39) * (edot_nu + edot_gamma); - - tabular_evaluate(j_K39_Ar39_meta, j_K39_Ar39_rhoy, j_K39_Ar39_temp, j_K39_Ar39_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_K39_to_Ar39_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_K39_to_Ar39_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(K39) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ar40_K40_meta, j_Ar40_K40_rhoy, j_Ar40_K40_temp, j_Ar40_K40_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ar40_to_K40_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar40_to_K40_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ar40) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ca40_K40_meta, j_Ca40_K40_rhoy, j_Ca40_K40_temp, j_Ca40_K40_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ca40_to_K40_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_K40_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ca40) * (edot_nu + edot_gamma); - - tabular_evaluate(j_K40_Ar40_meta, j_K40_Ar40_rhoy, j_K40_Ar40_temp, j_K40_Ar40_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_K40_to_Ar40_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_K40_to_Ar40_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(K40) * (edot_nu + edot_gamma); - - tabular_evaluate(j_K40_Ca40_meta, j_K40_Ca40_rhoy, j_K40_Ca40_temp, j_K40_Ca40_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_K40_to_Ca40_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_K40_to_Ca40_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(K40) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ca41_K41_meta, j_Ca41_K41_rhoy, j_Ca41_K41_temp, j_Ca41_K41_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ca41_to_K41_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca41_to_K41_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ca41) * (edot_nu + edot_gamma); - - tabular_evaluate(j_K41_Ca41_meta, j_K41_Ca41_rhoy, j_K41_Ca41_temp, j_K41_Ca41_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_K41_to_Ca41_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_K41_to_Ca41_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(K41) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ca43_Sc43_meta, j_Ca43_Sc43_rhoy, j_Ca43_Sc43_temp, j_Ca43_Sc43_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ca43_to_Sc43_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca43_to_Sc43_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ca43) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Sc43_Ca43_meta, j_Sc43_Ca43_rhoy, j_Sc43_Ca43_temp, j_Sc43_Ca43_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Sc43_to_Ca43_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc43_to_Ca43_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Sc43) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ca44_Sc44_meta, j_Ca44_Sc44_rhoy, j_Ca44_Sc44_temp, j_Ca44_Sc44_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ca44_to_Sc44_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca44_to_Sc44_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ca44) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Sc44_Ca44_meta, j_Sc44_Ca44_rhoy, j_Sc44_Ca44_temp, j_Sc44_Ca44_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Sc44_to_Ca44_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc44_to_Ca44_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Sc44) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Sc44_Ti44_meta, j_Sc44_Ti44_rhoy, j_Sc44_Ti44_temp, j_Sc44_Ti44_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Sc44_to_Ti44_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc44_to_Ti44_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Sc44) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ti44_Sc44_meta, j_Ti44_Sc44_rhoy, j_Ti44_Sc44_temp, j_Ti44_Sc44_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ti44_to_Sc44_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_Sc44_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ti44) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Co53_Fe53_meta, j_Co53_Fe53_rhoy, j_Co53_Fe53_temp, j_Co53_Fe53_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Co53_to_Fe53_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co53_to_Fe53_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Co53) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Fe53_Co53_meta, j_Fe53_Co53_rhoy, j_Fe53_Co53_temp, j_Fe53_Co53_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Fe53_to_Co53_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe53_to_Co53_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Fe53) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu57_Ni57_meta, j_Cu57_Ni57_rhoy, j_Cu57_Ni57_temp, j_Cu57_Ni57_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu57_to_Ni57_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu57_to_Ni57_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cu57) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ni57_Cu57_meta, j_Ni57_Cu57_rhoy, j_Ni57_Cu57_temp, j_Ni57_Cu57_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ni57_to_Cu57_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni57_to_Cu57_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ni57) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ca45_Sc45_meta, j_Ca45_Sc45_rhoy, j_Ca45_Sc45_temp, j_Ca45_Sc45_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ca45_to_Sc45_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca45_to_Sc45_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ca45) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Sc45_Ca45_meta, j_Sc45_Ca45_rhoy, j_Sc45_Ca45_temp, j_Sc45_Ca45_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Sc45_to_Ca45_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc45_to_Ca45_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Sc45) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Sc45_Ti45_meta, j_Sc45_Ti45_rhoy, j_Sc45_Ti45_temp, j_Sc45_Ti45_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Sc45_to_Ti45_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc45_to_Ti45_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Sc45) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ti45_Sc45_meta, j_Ti45_Sc45_rhoy, j_Ti45_Sc45_temp, j_Ti45_Sc45_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ti45_to_Sc45_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti45_to_Sc45_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ti45) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ca46_Sc46_meta, j_Ca46_Sc46_rhoy, j_Ca46_Sc46_temp, j_Ca46_Sc46_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ca46_to_Sc46_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca46_to_Sc46_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ca46) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Sc46_Ca46_meta, j_Sc46_Ca46_rhoy, j_Sc46_Ca46_temp, j_Sc46_Ca46_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Sc46_to_Ca46_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc46_to_Ca46_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Sc46) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Sc46_Ti46_meta, j_Sc46_Ti46_rhoy, j_Sc46_Ti46_temp, j_Sc46_Ti46_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Sc46_to_Ti46_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc46_to_Ti46_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Sc46) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ti46_Sc46_meta, j_Ti46_Sc46_rhoy, j_Ti46_Sc46_temp, j_Ti46_Sc46_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ti46_to_Sc46_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti46_to_Sc46_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ti46) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ti46_V46_meta, j_Ti46_V46_rhoy, j_Ti46_V46_temp, j_Ti46_V46_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ti46_to_V46_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti46_to_V46_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ti46) * (edot_nu + edot_gamma); - - tabular_evaluate(j_V46_Ti46_meta, j_V46_Ti46_rhoy, j_V46_Ti46_temp, j_V46_Ti46_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_V46_to_Ti46_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V46_to_Ti46_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(V46) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ca47_Sc47_meta, j_Ca47_Sc47_rhoy, j_Ca47_Sc47_temp, j_Ca47_Sc47_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ca47_to_Sc47_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca47_to_Sc47_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ca47) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Sc47_Ca47_meta, j_Sc47_Ca47_rhoy, j_Sc47_Ca47_temp, j_Sc47_Ca47_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Sc47_to_Ca47_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc47_to_Ca47_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Sc47) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Sc47_Ti47_meta, j_Sc47_Ti47_rhoy, j_Sc47_Ti47_temp, j_Sc47_Ti47_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Sc47_to_Ti47_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc47_to_Ti47_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Sc47) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ti47_Sc47_meta, j_Ti47_Sc47_rhoy, j_Ti47_Sc47_temp, j_Ti47_Sc47_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ti47_to_Sc47_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti47_to_Sc47_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ti47) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ti47_V47_meta, j_Ti47_V47_rhoy, j_Ti47_V47_temp, j_Ti47_V47_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ti47_to_V47_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti47_to_V47_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ti47) * (edot_nu + edot_gamma); - - tabular_evaluate(j_V47_Ti47_meta, j_V47_Ti47_rhoy, j_V47_Ti47_temp, j_V47_Ti47_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_V47_to_Ti47_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V47_to_Ti47_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(V47) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ca48_Sc48_meta, j_Ca48_Sc48_rhoy, j_Ca48_Sc48_temp, j_Ca48_Sc48_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ca48_to_Sc48_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca48_to_Sc48_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ca48) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cr48_V48_meta, j_Cr48_V48_rhoy, j_Cr48_V48_temp, j_Cr48_V48_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cr48_to_V48_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_V48_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cr48) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Sc48_Ca48_meta, j_Sc48_Ca48_rhoy, j_Sc48_Ca48_temp, j_Sc48_Ca48_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Sc48_to_Ca48_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc48_to_Ca48_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Sc48) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Sc48_Ti48_meta, j_Sc48_Ti48_rhoy, j_Sc48_Ti48_temp, j_Sc48_Ti48_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Sc48_to_Ti48_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc48_to_Ti48_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Sc48) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ti48_Sc48_meta, j_Ti48_Sc48_rhoy, j_Ti48_Sc48_temp, j_Ti48_Sc48_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ti48_to_Sc48_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti48_to_Sc48_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ti48) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ti48_V48_meta, j_Ti48_V48_rhoy, j_Ti48_V48_temp, j_Ti48_V48_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ti48_to_V48_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti48_to_V48_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ti48) * (edot_nu + edot_gamma); - - tabular_evaluate(j_V48_Cr48_meta, j_V48_Cr48_rhoy, j_V48_Cr48_temp, j_V48_Cr48_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_V48_to_Cr48_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V48_to_Cr48_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(V48) * (edot_nu + edot_gamma); - - tabular_evaluate(j_V48_Ti48_meta, j_V48_Ti48_rhoy, j_V48_Ti48_temp, j_V48_Ti48_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_V48_to_Ti48_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V48_to_Ti48_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(V48) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cr49_V49_meta, j_Cr49_V49_rhoy, j_Cr49_V49_temp, j_Cr49_V49_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cr49_to_V49_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr49_to_V49_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cr49) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Sc49_Ti49_meta, j_Sc49_Ti49_rhoy, j_Sc49_Ti49_temp, j_Sc49_Ti49_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Sc49_to_Ti49_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc49_to_Ti49_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Sc49) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ti49_Sc49_meta, j_Ti49_Sc49_rhoy, j_Ti49_Sc49_temp, j_Ti49_Sc49_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ti49_to_Sc49_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti49_to_Sc49_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ti49) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ti49_V49_meta, j_Ti49_V49_rhoy, j_Ti49_V49_temp, j_Ti49_V49_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ti49_to_V49_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti49_to_V49_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ti49) * (edot_nu + edot_gamma); - - tabular_evaluate(j_V49_Cr49_meta, j_V49_Cr49_rhoy, j_V49_Cr49_temp, j_V49_Cr49_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_V49_to_Cr49_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V49_to_Cr49_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(V49) * (edot_nu + edot_gamma); - - tabular_evaluate(j_V49_Ti49_meta, j_V49_Ti49_rhoy, j_V49_Ti49_temp, j_V49_Ti49_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_V49_to_Ti49_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V49_to_Ti49_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(V49) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cr50_Mn50_meta, j_Cr50_Mn50_rhoy, j_Cr50_Mn50_temp, j_Cr50_Mn50_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cr50_to_Mn50_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr50_to_Mn50_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cr50) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cr50_V50_meta, j_Cr50_V50_rhoy, j_Cr50_V50_temp, j_Cr50_V50_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cr50_to_V50_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr50_to_V50_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cr50) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Mn50_Cr50_meta, j_Mn50_Cr50_rhoy, j_Mn50_Cr50_temp, j_Mn50_Cr50_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Mn50_to_Cr50_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn50_to_Cr50_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Mn50) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ti50_V50_meta, j_Ti50_V50_rhoy, j_Ti50_V50_temp, j_Ti50_V50_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ti50_to_V50_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti50_to_V50_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ti50) * (edot_nu + edot_gamma); - - tabular_evaluate(j_V50_Cr50_meta, j_V50_Cr50_rhoy, j_V50_Cr50_temp, j_V50_Cr50_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_V50_to_Cr50_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V50_to_Cr50_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(V50) * (edot_nu + edot_gamma); - - tabular_evaluate(j_V50_Ti50_meta, j_V50_Ti50_rhoy, j_V50_Ti50_temp, j_V50_Ti50_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_V50_to_Ti50_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V50_to_Ti50_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(V50) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cr51_Mn51_meta, j_Cr51_Mn51_rhoy, j_Cr51_Mn51_temp, j_Cr51_Mn51_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cr51_to_Mn51_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr51_to_Mn51_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cr51) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cr51_V51_meta, j_Cr51_V51_rhoy, j_Cr51_V51_temp, j_Cr51_V51_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cr51_to_V51_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr51_to_V51_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cr51) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Mn51_Cr51_meta, j_Mn51_Cr51_rhoy, j_Mn51_Cr51_temp, j_Mn51_Cr51_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Mn51_to_Cr51_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn51_to_Cr51_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Mn51) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ti51_V51_meta, j_Ti51_V51_rhoy, j_Ti51_V51_temp, j_Ti51_V51_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ti51_to_V51_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti51_to_V51_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ti51) * (edot_nu + edot_gamma); - - tabular_evaluate(j_V51_Cr51_meta, j_V51_Cr51_rhoy, j_V51_Cr51_temp, j_V51_Cr51_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_V51_to_Cr51_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V51_to_Cr51_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(V51) * (edot_nu + edot_gamma); - - tabular_evaluate(j_V51_Ti51_meta, j_V51_Ti51_rhoy, j_V51_Ti51_temp, j_V51_Ti51_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_V51_to_Ti51_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V51_to_Ti51_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(V51) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cr52_Mn52_meta, j_Cr52_Mn52_rhoy, j_Cr52_Mn52_temp, j_Cr52_Mn52_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cr52_to_Mn52_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr52_to_Mn52_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cr52) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cr52_V52_meta, j_Cr52_V52_rhoy, j_Cr52_V52_temp, j_Cr52_V52_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cr52_to_V52_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr52_to_V52_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cr52) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Fe52_Mn52_meta, j_Fe52_Mn52_rhoy, j_Fe52_Mn52_temp, j_Fe52_Mn52_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Fe52_to_Mn52_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_to_Mn52_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Fe52) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Mn52_Cr52_meta, j_Mn52_Cr52_rhoy, j_Mn52_Cr52_temp, j_Mn52_Cr52_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Mn52_to_Cr52_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn52_to_Cr52_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Mn52) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Mn52_Fe52_meta, j_Mn52_Fe52_rhoy, j_Mn52_Fe52_temp, j_Mn52_Fe52_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Mn52_to_Fe52_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn52_to_Fe52_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Mn52) * (edot_nu + edot_gamma); - - tabular_evaluate(j_V52_Cr52_meta, j_V52_Cr52_rhoy, j_V52_Cr52_temp, j_V52_Cr52_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_V52_to_Cr52_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V52_to_Cr52_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(V52) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cr53_Mn53_meta, j_Cr53_Mn53_rhoy, j_Cr53_Mn53_temp, j_Cr53_Mn53_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cr53_to_Mn53_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr53_to_Mn53_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cr53) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Fe53_Mn53_meta, j_Fe53_Mn53_rhoy, j_Fe53_Mn53_temp, j_Fe53_Mn53_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Fe53_to_Mn53_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe53_to_Mn53_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Fe53) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Mn53_Cr53_meta, j_Mn53_Cr53_rhoy, j_Mn53_Cr53_temp, j_Mn53_Cr53_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Mn53_to_Cr53_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn53_to_Cr53_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Mn53) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Mn53_Fe53_meta, j_Mn53_Fe53_rhoy, j_Mn53_Fe53_temp, j_Mn53_Fe53_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Mn53_to_Fe53_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn53_to_Fe53_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Mn53) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Co54_Fe54_meta, j_Co54_Fe54_rhoy, j_Co54_Fe54_temp, j_Co54_Fe54_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Co54_to_Fe54_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co54_to_Fe54_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Co54) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cr54_Mn54_meta, j_Cr54_Mn54_rhoy, j_Cr54_Mn54_temp, j_Cr54_Mn54_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cr54_to_Mn54_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr54_to_Mn54_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cr54) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Fe54_Co54_meta, j_Fe54_Co54_rhoy, j_Fe54_Co54_temp, j_Fe54_Co54_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Fe54_to_Co54_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe54_to_Co54_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Fe54) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Fe54_Mn54_meta, j_Fe54_Mn54_rhoy, j_Fe54_Mn54_temp, j_Fe54_Mn54_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Fe54_to_Mn54_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe54_to_Mn54_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Fe54) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Mn54_Cr54_meta, j_Mn54_Cr54_rhoy, j_Mn54_Cr54_temp, j_Mn54_Cr54_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Mn54_to_Cr54_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn54_to_Cr54_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Mn54) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Mn54_Fe54_meta, j_Mn54_Fe54_rhoy, j_Mn54_Fe54_temp, j_Mn54_Fe54_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Mn54_to_Fe54_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn54_to_Fe54_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Mn54) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Co55_Fe55_meta, j_Co55_Fe55_rhoy, j_Co55_Fe55_temp, j_Co55_Fe55_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Co55_to_Fe55_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co55_to_Fe55_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Co55) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Fe55_Co55_meta, j_Fe55_Co55_rhoy, j_Fe55_Co55_temp, j_Fe55_Co55_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Fe55_to_Co55_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe55_to_Co55_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Fe55) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Fe55_Mn55_meta, j_Fe55_Mn55_rhoy, j_Fe55_Mn55_temp, j_Fe55_Mn55_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Fe55_to_Mn55_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe55_to_Mn55_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Fe55) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Mn55_Fe55_meta, j_Mn55_Fe55_rhoy, j_Mn55_Fe55_temp, j_Mn55_Fe55_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Mn55_to_Fe55_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn55_to_Fe55_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Mn55) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Co56_Fe56_meta, j_Co56_Fe56_rhoy, j_Co56_Fe56_temp, j_Co56_Fe56_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Co56_to_Fe56_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co56_to_Fe56_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Co56) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Co56_Ni56_meta, j_Co56_Ni56_rhoy, j_Co56_Ni56_temp, j_Co56_Ni56_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Co56_to_Ni56_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co56_to_Ni56_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Co56) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Fe56_Co56_meta, j_Fe56_Co56_rhoy, j_Fe56_Co56_temp, j_Fe56_Co56_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Fe56_to_Co56_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe56_to_Co56_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Fe56) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ni56_Co56_meta, j_Ni56_Co56_rhoy, j_Ni56_Co56_temp, j_Ni56_Co56_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ni56_to_Co56_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni56_to_Co56_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ni56) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Co57_Fe57_meta, j_Co57_Fe57_rhoy, j_Co57_Fe57_temp, j_Co57_Fe57_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Co57_to_Fe57_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co57_to_Fe57_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Co57) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Co57_Ni57_meta, j_Co57_Ni57_rhoy, j_Co57_Ni57_temp, j_Co57_Ni57_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Co57_to_Ni57_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co57_to_Ni57_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Co57) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Fe57_Co57_meta, j_Fe57_Co57_rhoy, j_Fe57_Co57_temp, j_Fe57_Co57_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Fe57_to_Co57_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe57_to_Co57_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Fe57) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ni57_Co57_meta, j_Ni57_Co57_rhoy, j_Ni57_Co57_temp, j_Ni57_Co57_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ni57_to_Co57_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni57_to_Co57_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ni57) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Co58_Fe58_meta, j_Co58_Fe58_rhoy, j_Co58_Fe58_temp, j_Co58_Fe58_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Co58_to_Fe58_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co58_to_Fe58_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Co58) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Co58_Ni58_meta, j_Co58_Ni58_rhoy, j_Co58_Ni58_temp, j_Co58_Ni58_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Co58_to_Ni58_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co58_to_Ni58_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Co58) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu58_Ni58_meta, j_Cu58_Ni58_rhoy, j_Cu58_Ni58_temp, j_Cu58_Ni58_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu58_to_Ni58_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu58_to_Ni58_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cu58) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Fe58_Co58_meta, j_Fe58_Co58_rhoy, j_Fe58_Co58_temp, j_Fe58_Co58_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Fe58_to_Co58_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe58_to_Co58_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Fe58) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ni58_Co58_meta, j_Ni58_Co58_rhoy, j_Ni58_Co58_temp, j_Ni58_Co58_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ni58_to_Co58_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni58_to_Co58_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ni58) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ni58_Cu58_meta, j_Ni58_Cu58_rhoy, j_Ni58_Cu58_temp, j_Ni58_Cu58_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ni58_to_Cu58_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni58_to_Cu58_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ni58) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Co59_Ni59_meta, j_Co59_Ni59_rhoy, j_Co59_Ni59_temp, j_Co59_Ni59_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Co59_to_Ni59_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co59_to_Ni59_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Co59) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu59_Ni59_meta, j_Cu59_Ni59_rhoy, j_Cu59_Ni59_temp, j_Cu59_Ni59_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu59_to_Ni59_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu59_to_Ni59_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cu59) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ni59_Co59_meta, j_Ni59_Co59_rhoy, j_Ni59_Co59_temp, j_Ni59_Co59_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ni59_to_Co59_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni59_to_Co59_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ni59) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ni59_Cu59_meta, j_Ni59_Cu59_rhoy, j_Ni59_Cu59_temp, j_Ni59_Cu59_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ni59_to_Cu59_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni59_to_Cu59_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ni59) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu60_Ni60_meta, j_Cu60_Ni60_rhoy, j_Cu60_Ni60_temp, j_Cu60_Ni60_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu60_to_Ni60_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu60_to_Ni60_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cu60) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu60_Zn60_meta, j_Cu60_Zn60_rhoy, j_Cu60_Zn60_temp, j_Cu60_Zn60_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu60_to_Zn60_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu60_to_Zn60_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cu60) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ni60_Cu60_meta, j_Ni60_Cu60_rhoy, j_Ni60_Cu60_temp, j_Ni60_Cu60_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ni60_to_Cu60_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni60_to_Cu60_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ni60) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Zn60_Cu60_meta, j_Zn60_Cu60_rhoy, j_Zn60_Cu60_temp, j_Zn60_Cu60_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Zn60_to_Cu60_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn60_to_Cu60_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Zn60) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu61_Ni61_meta, j_Cu61_Ni61_rhoy, j_Cu61_Ni61_temp, j_Cu61_Ni61_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu61_to_Ni61_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu61_to_Ni61_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cu61) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu61_Zn61_meta, j_Cu61_Zn61_rhoy, j_Cu61_Zn61_temp, j_Cu61_Zn61_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu61_to_Zn61_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu61_to_Zn61_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cu61) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ni61_Cu61_meta, j_Ni61_Cu61_rhoy, j_Ni61_Cu61_temp, j_Ni61_Cu61_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ni61_to_Cu61_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni61_to_Cu61_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ni61) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Zn61_Cu61_meta, j_Zn61_Cu61_rhoy, j_Zn61_Cu61_temp, j_Zn61_Cu61_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Zn61_to_Cu61_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn61_to_Cu61_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Zn61) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu62_Ni62_meta, j_Cu62_Ni62_rhoy, j_Cu62_Ni62_temp, j_Cu62_Ni62_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu62_to_Ni62_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu62_to_Ni62_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cu62) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu62_Zn62_meta, j_Cu62_Zn62_rhoy, j_Cu62_Zn62_temp, j_Cu62_Zn62_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu62_to_Zn62_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu62_to_Zn62_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cu62) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ga62_Zn62_meta, j_Ga62_Zn62_rhoy, j_Ga62_Zn62_temp, j_Ga62_Zn62_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ga62_to_Zn62_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ga62_to_Zn62_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ga62) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ni62_Cu62_meta, j_Ni62_Cu62_rhoy, j_Ni62_Cu62_temp, j_Ni62_Cu62_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ni62_to_Cu62_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni62_to_Cu62_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ni62) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Zn62_Cu62_meta, j_Zn62_Cu62_rhoy, j_Zn62_Cu62_temp, j_Zn62_Cu62_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Zn62_to_Cu62_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn62_to_Cu62_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Zn62) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Zn62_Ga62_meta, j_Zn62_Ga62_rhoy, j_Zn62_Ga62_temp, j_Zn62_Ga62_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Zn62_to_Ga62_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn62_to_Ga62_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Zn62) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu63_Ni63_meta, j_Cu63_Ni63_rhoy, j_Cu63_Ni63_temp, j_Cu63_Ni63_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu63_to_Ni63_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu63_to_Ni63_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cu63) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu63_Zn63_meta, j_Cu63_Zn63_rhoy, j_Cu63_Zn63_temp, j_Cu63_Zn63_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu63_to_Zn63_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu63_to_Zn63_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cu63) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ga63_Zn63_meta, j_Ga63_Zn63_rhoy, j_Ga63_Zn63_temp, j_Ga63_Zn63_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ga63_to_Zn63_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ga63_to_Zn63_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ga63) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ni63_Cu63_meta, j_Ni63_Cu63_rhoy, j_Ni63_Cu63_temp, j_Ni63_Cu63_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ni63_to_Cu63_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni63_to_Cu63_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ni63) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Zn63_Cu63_meta, j_Zn63_Cu63_rhoy, j_Zn63_Cu63_temp, j_Zn63_Cu63_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Zn63_to_Cu63_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn63_to_Cu63_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Zn63) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Zn63_Ga63_meta, j_Zn63_Ga63_rhoy, j_Zn63_Ga63_temp, j_Zn63_Ga63_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Zn63_to_Ga63_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn63_to_Ga63_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Zn63) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu64_Ni64_meta, j_Cu64_Ni64_rhoy, j_Cu64_Ni64_temp, j_Cu64_Ni64_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu64_to_Ni64_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu64_to_Ni64_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cu64) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu64_Zn64_meta, j_Cu64_Zn64_rhoy, j_Cu64_Zn64_temp, j_Cu64_Zn64_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu64_to_Zn64_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu64_to_Zn64_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cu64) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ga64_Ge64_meta, j_Ga64_Ge64_rhoy, j_Ga64_Ge64_temp, j_Ga64_Ge64_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ga64_to_Ge64_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ga64_to_Ge64_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ga64) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ga64_Zn64_meta, j_Ga64_Zn64_rhoy, j_Ga64_Zn64_temp, j_Ga64_Zn64_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ga64_to_Zn64_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ga64_to_Zn64_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ga64) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ge64_Ga64_meta, j_Ge64_Ga64_rhoy, j_Ge64_Ga64_temp, j_Ge64_Ga64_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ge64_to_Ga64_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ge64_to_Ga64_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ge64) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ni64_Cu64_meta, j_Ni64_Cu64_rhoy, j_Ni64_Cu64_temp, j_Ni64_Cu64_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ni64_to_Cu64_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni64_to_Cu64_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Ni64) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Zn64_Cu64_meta, j_Zn64_Cu64_rhoy, j_Zn64_Cu64_temp, j_Zn64_Cu64_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Zn64_to_Cu64_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn64_to_Cu64_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Zn64) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Zn64_Ga64_meta, j_Zn64_Ga64_rhoy, j_Zn64_Ga64_temp, j_Zn64_Ga64_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Zn64_to_Ga64_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn64_to_Ga64_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Zn64) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu65_Zn65_meta, j_Cu65_Zn65_rhoy, j_Cu65_Zn65_temp, j_Cu65_Zn65_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu65_to_Zn65_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu65_to_Zn65_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Cu65) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Zn65_Cu65_meta, j_Zn65_Cu65_rhoy, j_Zn65_Cu65_temp, j_Zn65_Cu65_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Zn65_to_Cu65_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn65_to_Cu65_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(Zn65) * (edot_nu + edot_gamma); - - tabular_evaluate(j_n_p_meta, j_n_p_rhoy, j_n_p_temp, j_n_p_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_n_to_p_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_to_p_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(N) * (edot_nu + edot_gamma); - - tabular_evaluate(j_p_n_meta, j_p_n_rhoy, j_p_n_temp, j_p_n_data, - log_rhoy, log_temp, state.T, rate, drate_dt, edot_nu, edot_gamma); - rate_eval.screened_rates(k_p_to_n_weaktab) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_to_n_weaktab) = drate_dt; - } - rate_eval.enuc_weak += C::n_A * Y(H1) * (edot_nu + edot_gamma); - + approximate_rates::fill_rates(tfactors, state.rho, Y, rate_eval); } @@ -4535,1037 +3185,195 @@ void get_ydot_weak(const burn_t& state, const tf_t tfactors = evaluate_tfactors(state.T); { - // Be7_to_Li7_reaclib + // Be7_to_Li7_electron_capture_reaclib amrex::Real log_scor {0.0_rt}; amrex::Real dlog_scor_dT {0.0_rt}; - rate_Be7_to_Li7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Be7_to_Li7_reaclib) = rate; + reaclib_rates::rate_Be7_to_Li7_electron_capture_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Be7_to_Li7_electron_capture_reaclib) = rate; } { - // C14_to_N14_reaclib + // C14_to_N14_beta_neg_reaclib amrex::Real log_scor {0.0_rt}; amrex::Real dlog_scor_dT {0.0_rt}; - rate_C14_to_N14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_C14_to_N14_reaclib) = rate; + reaclib_rates::rate_C14_to_N14_beta_neg_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C14_to_N14_beta_neg_reaclib) = rate; } { - // N13_to_C13_reaclib + // N13_to_C13_beta_pos_reaclib amrex::Real log_scor {0.0_rt}; amrex::Real dlog_scor_dT {0.0_rt}; - rate_N13_to_C13_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_N13_to_C13_reaclib) = rate; + reaclib_rates::rate_N13_to_C13_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_N13_to_C13_beta_pos_reaclib) = rate; } { - // O14_to_N14_reaclib + // O14_to_N14_beta_pos_reaclib amrex::Real log_scor {0.0_rt}; amrex::Real dlog_scor_dT {0.0_rt}; - rate_O14_to_N14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_O14_to_N14_reaclib) = rate; + reaclib_rates::rate_O14_to_N14_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O14_to_N14_beta_pos_reaclib) = rate; } { - // O15_to_N15_reaclib + // O15_to_N15_beta_pos_reaclib amrex::Real log_scor {0.0_rt}; amrex::Real dlog_scor_dT {0.0_rt}; - rate_O15_to_N15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_O15_to_N15_reaclib) = rate; + reaclib_rates::rate_O15_to_N15_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O15_to_N15_beta_pos_reaclib) = rate; } { - // F17_to_O17_reaclib + // F17_to_O17_beta_pos_reaclib amrex::Real log_scor {0.0_rt}; amrex::Real dlog_scor_dT {0.0_rt}; - rate_F17_to_O17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_F17_to_O17_reaclib) = rate; + reaclib_rates::rate_F17_to_O17_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_F17_to_O17_beta_pos_reaclib) = rate; } { - // F18_to_O18_reaclib + // F18_to_O18_beta_pos_reaclib amrex::Real log_scor {0.0_rt}; amrex::Real dlog_scor_dT {0.0_rt}; - rate_F18_to_O18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_F18_to_O18_reaclib) = rate; + reaclib_rates::rate_F18_to_O18_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_F18_to_O18_beta_pos_reaclib) = rate; } { - // Ne18_to_F18_reaclib + // Ne18_to_F18_beta_pos_reaclib amrex::Real log_scor {0.0_rt}; amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ne18_to_F18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ne18_to_F18_reaclib) = rate; + reaclib_rates::rate_Ne18_to_F18_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ne18_to_F18_beta_pos_reaclib) = rate; } { - // Ne19_to_F19_reaclib + // Ne19_to_F19_beta_pos_reaclib amrex::Real log_scor {0.0_rt}; amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ne19_to_F19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ne19_to_F19_reaclib) = rate; + reaclib_rates::rate_Ne19_to_F19_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ne19_to_F19_beta_pos_reaclib) = rate; } { - // Zn59_to_Cu59_reaclib + // Zn59_to_Cu59_beta_pos_reaclib amrex::Real log_scor {0.0_rt}; amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn59_to_Cu59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn59_to_Cu59_reaclib) = rate; + reaclib_rates::rate_Zn59_to_Cu59_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn59_to_Cu59_beta_pos_reaclib) = rate; } { - // Ge63_to_Ga63_reaclib + // Ge63_to_Ga63_beta_pos_reaclib amrex::Real log_scor {0.0_rt}; amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ge63_to_Ga63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ge63_to_Ga63_reaclib) = rate; + reaclib_rates::rate_Ge63_to_Ga63_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ge63_to_Ga63_beta_pos_reaclib) = rate; } { - // B8_to_He4_He4_reaclib + // B8_to_He4_He4_beta_pos_reaclib amrex::Real log_scor {0.0_rt}; amrex::Real dlog_scor_dT {0.0_rt}; - rate_B8_to_He4_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_B8_to_He4_He4_reaclib) = rate; + reaclib_rates::rate_B8_to_He4_He4_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_B8_to_He4_He4_beta_pos_reaclib) = rate; } { - // Zn59_to_p_Ni58_reaclib + // Zn59_to_p_Ni58_beta_pos_reaclib amrex::Real log_scor {0.0_rt}; amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn59_to_p_Ni58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn59_to_p_Ni58_reaclib) = rate; + reaclib_rates::rate_Zn59_to_p_Ni58_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn59_to_p_Ni58_beta_pos_reaclib) = rate; } { - // p_p_to_d_reaclib_beta_pos + // p_p_to_d_beta_pos_reaclib amrex::Real log_scor {0.0_rt}; amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING log_scor = rate_eval.log_screen(k_p_p); #endif - rate_p_p_to_d_reaclib_beta_pos(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_p_to_d_reaclib_beta_pos) = rate; + reaclib_rates::rate_p_p_to_d_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_p_p_to_d_beta_pos_reaclib) = rate; } { - // p_p_to_d_reaclib_electron_capture + // p_p_to_d_electron_capture_reaclib amrex::Real log_scor {0.0_rt}; amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING log_scor = rate_eval.log_screen(k_p_p); #endif - rate_p_p_to_d_reaclib_electron_capture(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_p_to_d_reaclib_electron_capture) = rate; + reaclib_rates::rate_p_p_to_d_electron_capture_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_p_p_to_d_electron_capture_reaclib) = rate; } { - // p_He3_to_He4_reaclib + // He3_p_to_He4_beta_pos_reaclib amrex::Real log_scor {0.0_rt}; amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING log_scor = rate_eval.log_screen(k_p_He3); #endif - rate_p_He3_to_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_He3_to_He4_reaclib) = rate; - } - - amrex::Real log_temp = std::log10(state.T); - amrex::Real log_rhoy = std::log10(rhoy); - - tabular_evaluate(j_Na21_Ne21_meta, j_Na21_Ne21_rhoy, j_Na21_Ne21_temp, j_Na21_Ne21_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Na21_to_Ne21_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Na21) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ne21_Na21_meta, j_Ne21_Na21_rhoy, j_Ne21_Na21_temp, j_Ne21_Na21_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ne21_to_Na21_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ne21) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Na22_Ne22_meta, j_Na22_Ne22_rhoy, j_Na22_Ne22_temp, j_Na22_Ne22_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Na22_to_Ne22_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Na22) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ne22_Na22_meta, j_Ne22_Na22_rhoy, j_Ne22_Na22_temp, j_Ne22_Na22_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ne22_to_Na22_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ne22) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Mg23_Na23_meta, j_Mg23_Na23_rhoy, j_Mg23_Na23_temp, j_Mg23_Na23_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Mg23_to_Na23_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Mg23) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Na23_Mg23_meta, j_Na23_Mg23_rhoy, j_Na23_Mg23_temp, j_Na23_Mg23_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Na23_to_Mg23_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Na23) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Al25_Mg25_meta, j_Al25_Mg25_rhoy, j_Al25_Mg25_temp, j_Al25_Mg25_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Al25_to_Mg25_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Al25) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Mg25_Al25_meta, j_Mg25_Al25_rhoy, j_Mg25_Al25_temp, j_Mg25_Al25_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Mg25_to_Al25_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Mg25) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Al26_Mg26_meta, j_Al26_Mg26_rhoy, j_Al26_Mg26_temp, j_Al26_Mg26_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Al26_to_Mg26_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Al26) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Mg26_Al26_meta, j_Mg26_Al26_rhoy, j_Mg26_Al26_temp, j_Mg26_Al26_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Mg26_to_Al26_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Mg26) * (edot_nu + edot_gamma); - - tabular_evaluate(j_P29_Si29_meta, j_P29_Si29_rhoy, j_P29_Si29_temp, j_P29_Si29_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_P29_to_Si29_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(P29) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Si29_P29_meta, j_Si29_P29_rhoy, j_Si29_P29_temp, j_Si29_P29_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Si29_to_P29_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Si29) * (edot_nu + edot_gamma); - - tabular_evaluate(j_P30_Si30_meta, j_P30_Si30_rhoy, j_P30_Si30_temp, j_P30_Si30_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_P30_to_Si30_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(P30) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Si30_P30_meta, j_Si30_P30_rhoy, j_Si30_P30_temp, j_Si30_P30_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Si30_to_P30_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Si30) * (edot_nu + edot_gamma); - - tabular_evaluate(j_P31_Si31_meta, j_P31_Si31_rhoy, j_P31_Si31_temp, j_P31_Si31_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_P31_to_Si31_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(P31) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Si31_P31_meta, j_Si31_P31_rhoy, j_Si31_P31_temp, j_Si31_P31_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Si31_to_P31_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Si31) * (edot_nu + edot_gamma); - - tabular_evaluate(j_P32_S32_meta, j_P32_S32_rhoy, j_P32_S32_temp, j_P32_S32_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_P32_to_S32_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(P32) * (edot_nu + edot_gamma); - - tabular_evaluate(j_P32_Si32_meta, j_P32_Si32_rhoy, j_P32_Si32_temp, j_P32_Si32_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_P32_to_Si32_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(P32) * (edot_nu + edot_gamma); - - tabular_evaluate(j_S32_P32_meta, j_S32_P32_rhoy, j_S32_P32_temp, j_S32_P32_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_S32_to_P32_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(S32) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Si32_P32_meta, j_Si32_P32_rhoy, j_Si32_P32_temp, j_Si32_P32_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Si32_to_P32_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Si32) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cl33_S33_meta, j_Cl33_S33_rhoy, j_Cl33_S33_temp, j_Cl33_S33_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cl33_to_S33_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cl33) * (edot_nu + edot_gamma); - - tabular_evaluate(j_P33_S33_meta, j_P33_S33_rhoy, j_P33_S33_temp, j_P33_S33_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_P33_to_S33_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(P33) * (edot_nu + edot_gamma); - - tabular_evaluate(j_S33_Cl33_meta, j_S33_Cl33_rhoy, j_S33_Cl33_temp, j_S33_Cl33_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_S33_to_Cl33_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(S33) * (edot_nu + edot_gamma); - - tabular_evaluate(j_S33_P33_meta, j_S33_P33_rhoy, j_S33_P33_temp, j_S33_P33_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_S33_to_P33_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(S33) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cl34_S34_meta, j_Cl34_S34_rhoy, j_Cl34_S34_temp, j_Cl34_S34_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cl34_to_S34_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cl34) * (edot_nu + edot_gamma); - - tabular_evaluate(j_S34_Cl34_meta, j_S34_Cl34_rhoy, j_S34_Cl34_temp, j_S34_Cl34_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_S34_to_Cl34_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(S34) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cl35_S35_meta, j_Cl35_S35_rhoy, j_Cl35_S35_temp, j_Cl35_S35_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cl35_to_S35_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cl35) * (edot_nu + edot_gamma); - - tabular_evaluate(j_S35_Cl35_meta, j_S35_Cl35_rhoy, j_S35_Cl35_temp, j_S35_Cl35_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_S35_to_Cl35_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(S35) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ar36_Cl36_meta, j_Ar36_Cl36_rhoy, j_Ar36_Cl36_temp, j_Ar36_Cl36_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ar36_to_Cl36_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ar36) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cl36_Ar36_meta, j_Cl36_Ar36_rhoy, j_Cl36_Ar36_temp, j_Cl36_Ar36_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cl36_to_Ar36_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cl36) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cl36_S36_meta, j_Cl36_S36_rhoy, j_Cl36_S36_temp, j_Cl36_S36_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cl36_to_S36_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cl36) * (edot_nu + edot_gamma); - - tabular_evaluate(j_S36_Cl36_meta, j_S36_Cl36_rhoy, j_S36_Cl36_temp, j_S36_Cl36_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_S36_to_Cl36_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(S36) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ar37_Cl37_meta, j_Ar37_Cl37_rhoy, j_Ar37_Cl37_temp, j_Ar37_Cl37_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ar37_to_Cl37_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ar37) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ar37_K37_meta, j_Ar37_K37_rhoy, j_Ar37_K37_temp, j_Ar37_K37_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ar37_to_K37_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ar37) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cl37_Ar37_meta, j_Cl37_Ar37_rhoy, j_Cl37_Ar37_temp, j_Cl37_Ar37_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cl37_to_Ar37_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cl37) * (edot_nu + edot_gamma); - - tabular_evaluate(j_K37_Ar37_meta, j_K37_Ar37_rhoy, j_K37_Ar37_temp, j_K37_Ar37_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_K37_to_Ar37_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(K37) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ar38_K38_meta, j_Ar38_K38_rhoy, j_Ar38_K38_temp, j_Ar38_K38_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ar38_to_K38_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ar38) * (edot_nu + edot_gamma); - - tabular_evaluate(j_K38_Ar38_meta, j_K38_Ar38_rhoy, j_K38_Ar38_temp, j_K38_Ar38_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_K38_to_Ar38_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(K38) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ar39_K39_meta, j_Ar39_K39_rhoy, j_Ar39_K39_temp, j_Ar39_K39_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ar39_to_K39_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ar39) * (edot_nu + edot_gamma); - - tabular_evaluate(j_K39_Ar39_meta, j_K39_Ar39_rhoy, j_K39_Ar39_temp, j_K39_Ar39_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_K39_to_Ar39_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(K39) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ar40_K40_meta, j_Ar40_K40_rhoy, j_Ar40_K40_temp, j_Ar40_K40_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ar40_to_K40_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ar40) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ca40_K40_meta, j_Ca40_K40_rhoy, j_Ca40_K40_temp, j_Ca40_K40_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ca40_to_K40_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ca40) * (edot_nu + edot_gamma); - - tabular_evaluate(j_K40_Ar40_meta, j_K40_Ar40_rhoy, j_K40_Ar40_temp, j_K40_Ar40_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_K40_to_Ar40_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(K40) * (edot_nu + edot_gamma); - - tabular_evaluate(j_K40_Ca40_meta, j_K40_Ca40_rhoy, j_K40_Ca40_temp, j_K40_Ca40_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_K40_to_Ca40_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(K40) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ca41_K41_meta, j_Ca41_K41_rhoy, j_Ca41_K41_temp, j_Ca41_K41_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ca41_to_K41_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ca41) * (edot_nu + edot_gamma); - - tabular_evaluate(j_K41_Ca41_meta, j_K41_Ca41_rhoy, j_K41_Ca41_temp, j_K41_Ca41_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_K41_to_Ca41_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(K41) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ca43_Sc43_meta, j_Ca43_Sc43_rhoy, j_Ca43_Sc43_temp, j_Ca43_Sc43_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ca43_to_Sc43_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ca43) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Sc43_Ca43_meta, j_Sc43_Ca43_rhoy, j_Sc43_Ca43_temp, j_Sc43_Ca43_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Sc43_to_Ca43_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Sc43) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ca44_Sc44_meta, j_Ca44_Sc44_rhoy, j_Ca44_Sc44_temp, j_Ca44_Sc44_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ca44_to_Sc44_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ca44) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Sc44_Ca44_meta, j_Sc44_Ca44_rhoy, j_Sc44_Ca44_temp, j_Sc44_Ca44_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Sc44_to_Ca44_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Sc44) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Sc44_Ti44_meta, j_Sc44_Ti44_rhoy, j_Sc44_Ti44_temp, j_Sc44_Ti44_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Sc44_to_Ti44_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Sc44) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ti44_Sc44_meta, j_Ti44_Sc44_rhoy, j_Ti44_Sc44_temp, j_Ti44_Sc44_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ti44_to_Sc44_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ti44) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Co53_Fe53_meta, j_Co53_Fe53_rhoy, j_Co53_Fe53_temp, j_Co53_Fe53_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Co53_to_Fe53_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Co53) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Fe53_Co53_meta, j_Fe53_Co53_rhoy, j_Fe53_Co53_temp, j_Fe53_Co53_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Fe53_to_Co53_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Fe53) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu57_Ni57_meta, j_Cu57_Ni57_rhoy, j_Cu57_Ni57_temp, j_Cu57_Ni57_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu57_to_Ni57_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cu57) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ni57_Cu57_meta, j_Ni57_Cu57_rhoy, j_Ni57_Cu57_temp, j_Ni57_Cu57_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ni57_to_Cu57_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ni57) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ca45_Sc45_meta, j_Ca45_Sc45_rhoy, j_Ca45_Sc45_temp, j_Ca45_Sc45_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ca45_to_Sc45_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ca45) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Sc45_Ca45_meta, j_Sc45_Ca45_rhoy, j_Sc45_Ca45_temp, j_Sc45_Ca45_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Sc45_to_Ca45_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Sc45) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Sc45_Ti45_meta, j_Sc45_Ti45_rhoy, j_Sc45_Ti45_temp, j_Sc45_Ti45_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Sc45_to_Ti45_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Sc45) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ti45_Sc45_meta, j_Ti45_Sc45_rhoy, j_Ti45_Sc45_temp, j_Ti45_Sc45_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ti45_to_Sc45_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ti45) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ca46_Sc46_meta, j_Ca46_Sc46_rhoy, j_Ca46_Sc46_temp, j_Ca46_Sc46_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ca46_to_Sc46_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ca46) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Sc46_Ca46_meta, j_Sc46_Ca46_rhoy, j_Sc46_Ca46_temp, j_Sc46_Ca46_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Sc46_to_Ca46_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Sc46) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Sc46_Ti46_meta, j_Sc46_Ti46_rhoy, j_Sc46_Ti46_temp, j_Sc46_Ti46_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Sc46_to_Ti46_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Sc46) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ti46_Sc46_meta, j_Ti46_Sc46_rhoy, j_Ti46_Sc46_temp, j_Ti46_Sc46_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ti46_to_Sc46_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ti46) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ti46_V46_meta, j_Ti46_V46_rhoy, j_Ti46_V46_temp, j_Ti46_V46_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ti46_to_V46_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ti46) * (edot_nu + edot_gamma); - - tabular_evaluate(j_V46_Ti46_meta, j_V46_Ti46_rhoy, j_V46_Ti46_temp, j_V46_Ti46_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_V46_to_Ti46_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(V46) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ca47_Sc47_meta, j_Ca47_Sc47_rhoy, j_Ca47_Sc47_temp, j_Ca47_Sc47_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ca47_to_Sc47_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ca47) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Sc47_Ca47_meta, j_Sc47_Ca47_rhoy, j_Sc47_Ca47_temp, j_Sc47_Ca47_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Sc47_to_Ca47_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Sc47) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Sc47_Ti47_meta, j_Sc47_Ti47_rhoy, j_Sc47_Ti47_temp, j_Sc47_Ti47_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Sc47_to_Ti47_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Sc47) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ti47_Sc47_meta, j_Ti47_Sc47_rhoy, j_Ti47_Sc47_temp, j_Ti47_Sc47_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ti47_to_Sc47_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ti47) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ti47_V47_meta, j_Ti47_V47_rhoy, j_Ti47_V47_temp, j_Ti47_V47_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ti47_to_V47_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ti47) * (edot_nu + edot_gamma); - - tabular_evaluate(j_V47_Ti47_meta, j_V47_Ti47_rhoy, j_V47_Ti47_temp, j_V47_Ti47_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_V47_to_Ti47_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(V47) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ca48_Sc48_meta, j_Ca48_Sc48_rhoy, j_Ca48_Sc48_temp, j_Ca48_Sc48_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ca48_to_Sc48_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ca48) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cr48_V48_meta, j_Cr48_V48_rhoy, j_Cr48_V48_temp, j_Cr48_V48_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cr48_to_V48_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cr48) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Sc48_Ca48_meta, j_Sc48_Ca48_rhoy, j_Sc48_Ca48_temp, j_Sc48_Ca48_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Sc48_to_Ca48_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Sc48) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Sc48_Ti48_meta, j_Sc48_Ti48_rhoy, j_Sc48_Ti48_temp, j_Sc48_Ti48_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Sc48_to_Ti48_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Sc48) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ti48_Sc48_meta, j_Ti48_Sc48_rhoy, j_Ti48_Sc48_temp, j_Ti48_Sc48_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ti48_to_Sc48_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ti48) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ti48_V48_meta, j_Ti48_V48_rhoy, j_Ti48_V48_temp, j_Ti48_V48_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ti48_to_V48_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ti48) * (edot_nu + edot_gamma); - - tabular_evaluate(j_V48_Cr48_meta, j_V48_Cr48_rhoy, j_V48_Cr48_temp, j_V48_Cr48_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_V48_to_Cr48_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(V48) * (edot_nu + edot_gamma); - - tabular_evaluate(j_V48_Ti48_meta, j_V48_Ti48_rhoy, j_V48_Ti48_temp, j_V48_Ti48_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_V48_to_Ti48_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(V48) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cr49_V49_meta, j_Cr49_V49_rhoy, j_Cr49_V49_temp, j_Cr49_V49_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cr49_to_V49_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cr49) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Sc49_Ti49_meta, j_Sc49_Ti49_rhoy, j_Sc49_Ti49_temp, j_Sc49_Ti49_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Sc49_to_Ti49_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Sc49) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ti49_Sc49_meta, j_Ti49_Sc49_rhoy, j_Ti49_Sc49_temp, j_Ti49_Sc49_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ti49_to_Sc49_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ti49) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ti49_V49_meta, j_Ti49_V49_rhoy, j_Ti49_V49_temp, j_Ti49_V49_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ti49_to_V49_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ti49) * (edot_nu + edot_gamma); - - tabular_evaluate(j_V49_Cr49_meta, j_V49_Cr49_rhoy, j_V49_Cr49_temp, j_V49_Cr49_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_V49_to_Cr49_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(V49) * (edot_nu + edot_gamma); - - tabular_evaluate(j_V49_Ti49_meta, j_V49_Ti49_rhoy, j_V49_Ti49_temp, j_V49_Ti49_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_V49_to_Ti49_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(V49) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cr50_Mn50_meta, j_Cr50_Mn50_rhoy, j_Cr50_Mn50_temp, j_Cr50_Mn50_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cr50_to_Mn50_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cr50) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cr50_V50_meta, j_Cr50_V50_rhoy, j_Cr50_V50_temp, j_Cr50_V50_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cr50_to_V50_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cr50) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Mn50_Cr50_meta, j_Mn50_Cr50_rhoy, j_Mn50_Cr50_temp, j_Mn50_Cr50_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Mn50_to_Cr50_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Mn50) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ti50_V50_meta, j_Ti50_V50_rhoy, j_Ti50_V50_temp, j_Ti50_V50_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ti50_to_V50_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ti50) * (edot_nu + edot_gamma); - - tabular_evaluate(j_V50_Cr50_meta, j_V50_Cr50_rhoy, j_V50_Cr50_temp, j_V50_Cr50_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_V50_to_Cr50_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(V50) * (edot_nu + edot_gamma); - - tabular_evaluate(j_V50_Ti50_meta, j_V50_Ti50_rhoy, j_V50_Ti50_temp, j_V50_Ti50_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_V50_to_Ti50_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(V50) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cr51_Mn51_meta, j_Cr51_Mn51_rhoy, j_Cr51_Mn51_temp, j_Cr51_Mn51_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cr51_to_Mn51_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cr51) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cr51_V51_meta, j_Cr51_V51_rhoy, j_Cr51_V51_temp, j_Cr51_V51_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cr51_to_V51_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cr51) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Mn51_Cr51_meta, j_Mn51_Cr51_rhoy, j_Mn51_Cr51_temp, j_Mn51_Cr51_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Mn51_to_Cr51_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Mn51) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ti51_V51_meta, j_Ti51_V51_rhoy, j_Ti51_V51_temp, j_Ti51_V51_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ti51_to_V51_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ti51) * (edot_nu + edot_gamma); - - tabular_evaluate(j_V51_Cr51_meta, j_V51_Cr51_rhoy, j_V51_Cr51_temp, j_V51_Cr51_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_V51_to_Cr51_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(V51) * (edot_nu + edot_gamma); - - tabular_evaluate(j_V51_Ti51_meta, j_V51_Ti51_rhoy, j_V51_Ti51_temp, j_V51_Ti51_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_V51_to_Ti51_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(V51) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cr52_Mn52_meta, j_Cr52_Mn52_rhoy, j_Cr52_Mn52_temp, j_Cr52_Mn52_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cr52_to_Mn52_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cr52) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cr52_V52_meta, j_Cr52_V52_rhoy, j_Cr52_V52_temp, j_Cr52_V52_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cr52_to_V52_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cr52) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Fe52_Mn52_meta, j_Fe52_Mn52_rhoy, j_Fe52_Mn52_temp, j_Fe52_Mn52_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Fe52_to_Mn52_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Fe52) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Mn52_Cr52_meta, j_Mn52_Cr52_rhoy, j_Mn52_Cr52_temp, j_Mn52_Cr52_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Mn52_to_Cr52_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Mn52) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Mn52_Fe52_meta, j_Mn52_Fe52_rhoy, j_Mn52_Fe52_temp, j_Mn52_Fe52_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Mn52_to_Fe52_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Mn52) * (edot_nu + edot_gamma); - - tabular_evaluate(j_V52_Cr52_meta, j_V52_Cr52_rhoy, j_V52_Cr52_temp, j_V52_Cr52_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_V52_to_Cr52_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(V52) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cr53_Mn53_meta, j_Cr53_Mn53_rhoy, j_Cr53_Mn53_temp, j_Cr53_Mn53_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cr53_to_Mn53_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cr53) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Fe53_Mn53_meta, j_Fe53_Mn53_rhoy, j_Fe53_Mn53_temp, j_Fe53_Mn53_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Fe53_to_Mn53_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Fe53) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Mn53_Cr53_meta, j_Mn53_Cr53_rhoy, j_Mn53_Cr53_temp, j_Mn53_Cr53_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Mn53_to_Cr53_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Mn53) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Mn53_Fe53_meta, j_Mn53_Fe53_rhoy, j_Mn53_Fe53_temp, j_Mn53_Fe53_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Mn53_to_Fe53_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Mn53) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Co54_Fe54_meta, j_Co54_Fe54_rhoy, j_Co54_Fe54_temp, j_Co54_Fe54_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Co54_to_Fe54_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Co54) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cr54_Mn54_meta, j_Cr54_Mn54_rhoy, j_Cr54_Mn54_temp, j_Cr54_Mn54_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cr54_to_Mn54_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cr54) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Fe54_Co54_meta, j_Fe54_Co54_rhoy, j_Fe54_Co54_temp, j_Fe54_Co54_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Fe54_to_Co54_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Fe54) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Fe54_Mn54_meta, j_Fe54_Mn54_rhoy, j_Fe54_Mn54_temp, j_Fe54_Mn54_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Fe54_to_Mn54_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Fe54) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Mn54_Cr54_meta, j_Mn54_Cr54_rhoy, j_Mn54_Cr54_temp, j_Mn54_Cr54_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Mn54_to_Cr54_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Mn54) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Mn54_Fe54_meta, j_Mn54_Fe54_rhoy, j_Mn54_Fe54_temp, j_Mn54_Fe54_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Mn54_to_Fe54_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Mn54) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Co55_Fe55_meta, j_Co55_Fe55_rhoy, j_Co55_Fe55_temp, j_Co55_Fe55_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Co55_to_Fe55_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Co55) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Fe55_Co55_meta, j_Fe55_Co55_rhoy, j_Fe55_Co55_temp, j_Fe55_Co55_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Fe55_to_Co55_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Fe55) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Fe55_Mn55_meta, j_Fe55_Mn55_rhoy, j_Fe55_Mn55_temp, j_Fe55_Mn55_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Fe55_to_Mn55_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Fe55) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Mn55_Fe55_meta, j_Mn55_Fe55_rhoy, j_Mn55_Fe55_temp, j_Mn55_Fe55_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Mn55_to_Fe55_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Mn55) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Co56_Fe56_meta, j_Co56_Fe56_rhoy, j_Co56_Fe56_temp, j_Co56_Fe56_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Co56_to_Fe56_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Co56) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Co56_Ni56_meta, j_Co56_Ni56_rhoy, j_Co56_Ni56_temp, j_Co56_Ni56_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Co56_to_Ni56_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Co56) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Fe56_Co56_meta, j_Fe56_Co56_rhoy, j_Fe56_Co56_temp, j_Fe56_Co56_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Fe56_to_Co56_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Fe56) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ni56_Co56_meta, j_Ni56_Co56_rhoy, j_Ni56_Co56_temp, j_Ni56_Co56_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ni56_to_Co56_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ni56) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Co57_Fe57_meta, j_Co57_Fe57_rhoy, j_Co57_Fe57_temp, j_Co57_Fe57_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Co57_to_Fe57_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Co57) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Co57_Ni57_meta, j_Co57_Ni57_rhoy, j_Co57_Ni57_temp, j_Co57_Ni57_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Co57_to_Ni57_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Co57) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Fe57_Co57_meta, j_Fe57_Co57_rhoy, j_Fe57_Co57_temp, j_Fe57_Co57_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Fe57_to_Co57_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Fe57) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ni57_Co57_meta, j_Ni57_Co57_rhoy, j_Ni57_Co57_temp, j_Ni57_Co57_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ni57_to_Co57_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ni57) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Co58_Fe58_meta, j_Co58_Fe58_rhoy, j_Co58_Fe58_temp, j_Co58_Fe58_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Co58_to_Fe58_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Co58) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Co58_Ni58_meta, j_Co58_Ni58_rhoy, j_Co58_Ni58_temp, j_Co58_Ni58_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Co58_to_Ni58_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Co58) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu58_Ni58_meta, j_Cu58_Ni58_rhoy, j_Cu58_Ni58_temp, j_Cu58_Ni58_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu58_to_Ni58_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cu58) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Fe58_Co58_meta, j_Fe58_Co58_rhoy, j_Fe58_Co58_temp, j_Fe58_Co58_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Fe58_to_Co58_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Fe58) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ni58_Co58_meta, j_Ni58_Co58_rhoy, j_Ni58_Co58_temp, j_Ni58_Co58_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ni58_to_Co58_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ni58) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ni58_Cu58_meta, j_Ni58_Cu58_rhoy, j_Ni58_Cu58_temp, j_Ni58_Cu58_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ni58_to_Cu58_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ni58) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Co59_Ni59_meta, j_Co59_Ni59_rhoy, j_Co59_Ni59_temp, j_Co59_Ni59_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Co59_to_Ni59_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Co59) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu59_Ni59_meta, j_Cu59_Ni59_rhoy, j_Cu59_Ni59_temp, j_Cu59_Ni59_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu59_to_Ni59_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cu59) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ni59_Co59_meta, j_Ni59_Co59_rhoy, j_Ni59_Co59_temp, j_Ni59_Co59_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ni59_to_Co59_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ni59) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ni59_Cu59_meta, j_Ni59_Cu59_rhoy, j_Ni59_Cu59_temp, j_Ni59_Cu59_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ni59_to_Cu59_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ni59) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu60_Ni60_meta, j_Cu60_Ni60_rhoy, j_Cu60_Ni60_temp, j_Cu60_Ni60_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu60_to_Ni60_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cu60) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu60_Zn60_meta, j_Cu60_Zn60_rhoy, j_Cu60_Zn60_temp, j_Cu60_Zn60_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu60_to_Zn60_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cu60) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ni60_Cu60_meta, j_Ni60_Cu60_rhoy, j_Ni60_Cu60_temp, j_Ni60_Cu60_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ni60_to_Cu60_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ni60) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Zn60_Cu60_meta, j_Zn60_Cu60_rhoy, j_Zn60_Cu60_temp, j_Zn60_Cu60_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Zn60_to_Cu60_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Zn60) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu61_Ni61_meta, j_Cu61_Ni61_rhoy, j_Cu61_Ni61_temp, j_Cu61_Ni61_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu61_to_Ni61_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cu61) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu61_Zn61_meta, j_Cu61_Zn61_rhoy, j_Cu61_Zn61_temp, j_Cu61_Zn61_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu61_to_Zn61_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cu61) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ni61_Cu61_meta, j_Ni61_Cu61_rhoy, j_Ni61_Cu61_temp, j_Ni61_Cu61_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ni61_to_Cu61_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ni61) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Zn61_Cu61_meta, j_Zn61_Cu61_rhoy, j_Zn61_Cu61_temp, j_Zn61_Cu61_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Zn61_to_Cu61_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Zn61) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu62_Ni62_meta, j_Cu62_Ni62_rhoy, j_Cu62_Ni62_temp, j_Cu62_Ni62_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu62_to_Ni62_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cu62) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu62_Zn62_meta, j_Cu62_Zn62_rhoy, j_Cu62_Zn62_temp, j_Cu62_Zn62_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu62_to_Zn62_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cu62) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ga62_Zn62_meta, j_Ga62_Zn62_rhoy, j_Ga62_Zn62_temp, j_Ga62_Zn62_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ga62_to_Zn62_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ga62) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ni62_Cu62_meta, j_Ni62_Cu62_rhoy, j_Ni62_Cu62_temp, j_Ni62_Cu62_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ni62_to_Cu62_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ni62) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Zn62_Cu62_meta, j_Zn62_Cu62_rhoy, j_Zn62_Cu62_temp, j_Zn62_Cu62_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Zn62_to_Cu62_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Zn62) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Zn62_Ga62_meta, j_Zn62_Ga62_rhoy, j_Zn62_Ga62_temp, j_Zn62_Ga62_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Zn62_to_Ga62_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Zn62) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu63_Ni63_meta, j_Cu63_Ni63_rhoy, j_Cu63_Ni63_temp, j_Cu63_Ni63_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu63_to_Ni63_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cu63) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu63_Zn63_meta, j_Cu63_Zn63_rhoy, j_Cu63_Zn63_temp, j_Cu63_Zn63_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu63_to_Zn63_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cu63) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ga63_Zn63_meta, j_Ga63_Zn63_rhoy, j_Ga63_Zn63_temp, j_Ga63_Zn63_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ga63_to_Zn63_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ga63) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ni63_Cu63_meta, j_Ni63_Cu63_rhoy, j_Ni63_Cu63_temp, j_Ni63_Cu63_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ni63_to_Cu63_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ni63) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Zn63_Cu63_meta, j_Zn63_Cu63_rhoy, j_Zn63_Cu63_temp, j_Zn63_Cu63_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Zn63_to_Cu63_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Zn63) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Zn63_Ga63_meta, j_Zn63_Ga63_rhoy, j_Zn63_Ga63_temp, j_Zn63_Ga63_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Zn63_to_Ga63_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Zn63) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu64_Ni64_meta, j_Cu64_Ni64_rhoy, j_Cu64_Ni64_temp, j_Cu64_Ni64_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu64_to_Ni64_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cu64) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu64_Zn64_meta, j_Cu64_Zn64_rhoy, j_Cu64_Zn64_temp, j_Cu64_Zn64_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu64_to_Zn64_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cu64) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ga64_Ge64_meta, j_Ga64_Ge64_rhoy, j_Ga64_Ge64_temp, j_Ga64_Ge64_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ga64_to_Ge64_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ga64) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ga64_Zn64_meta, j_Ga64_Zn64_rhoy, j_Ga64_Zn64_temp, j_Ga64_Zn64_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ga64_to_Zn64_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ga64) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ge64_Ga64_meta, j_Ge64_Ga64_rhoy, j_Ge64_Ga64_temp, j_Ge64_Ga64_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ge64_to_Ga64_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ge64) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Ni64_Cu64_meta, j_Ni64_Cu64_rhoy, j_Ni64_Cu64_temp, j_Ni64_Cu64_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Ni64_to_Cu64_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Ni64) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Zn64_Cu64_meta, j_Zn64_Cu64_rhoy, j_Zn64_Cu64_temp, j_Zn64_Cu64_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Zn64_to_Cu64_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Zn64) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Zn64_Ga64_meta, j_Zn64_Ga64_rhoy, j_Zn64_Ga64_temp, j_Zn64_Ga64_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Zn64_to_Ga64_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Zn64) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Cu65_Zn65_meta, j_Cu65_Zn65_rhoy, j_Cu65_Zn65_temp, j_Cu65_Zn65_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Cu65_to_Zn65_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Cu65) * (edot_nu + edot_gamma); - - tabular_evaluate(j_Zn65_Cu65_meta, j_Zn65_Cu65_rhoy, j_Zn65_Cu65_temp, j_Zn65_Cu65_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_Zn65_to_Cu65_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(Zn65) * (edot_nu + edot_gamma); - - tabular_evaluate(j_n_p_meta, j_n_p_rhoy, j_n_p_temp, j_n_p_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_n_to_p_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(N) * (edot_nu + edot_gamma); - - tabular_evaluate(j_p_n_meta, j_p_n_rhoy, j_p_n_temp, j_p_n_data, - log_rhoy, log_temp, state.T, rate, drate_dT, edot_nu, edot_gamma); - rate_eval.screened_rates(k_p_to_n_weaktab) = rate; - rate_eval.enuc_weak += C::n_A * Y(H1) * (edot_nu + edot_gamma); + reaclib_rates::rate_He3_p_to_He4_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_He3_p_to_He4_beta_pos_reaclib) = rate; + } + tabular_weak_rates::fill_rates(state.T, rhoy, Y, rate_eval); const auto& screened_rates = rate_eval.screened_rates; ydot_nuc(N) = - (-screened_rates(k_n_to_p_weaktab)*Y(N) + screened_rates(k_p_to_n_weaktab)*Y(H1)); + (-screened_rates(k_n_to_p_beta_neg_weaktab)*Y(N) + screened_rates(k_p_to_n_electron_capture_weaktab)*Y(H1)); ydot_nuc(H1) = - screened_rates(k_Zn59_to_p_Ni58_reaclib)*Y(Zn59) + - -screened_rates(k_p_p_to_d_reaclib_beta_pos)*amrex::Math::powi<2>(Y(H1))*state.rho + - -screened_rates(k_p_p_to_d_reaclib_electron_capture)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho)*state.y_e + - -screened_rates(k_p_He3_to_He4_reaclib)*Y(He3)*Y(H1)*state.rho + - (screened_rates(k_n_to_p_weaktab)*Y(N) + -screened_rates(k_p_to_n_weaktab)*Y(H1)); + screened_rates(k_Zn59_to_p_Ni58_beta_pos_reaclib)*Y(Zn59) + + -screened_rates(k_p_p_to_d_beta_pos_reaclib)*amrex::Math::powi<2>(Y(H1))*state.rho + + -screened_rates(k_p_p_to_d_electron_capture_reaclib)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho)*state.y_e + + -screened_rates(k_He3_p_to_He4_beta_pos_reaclib)*Y(He3)*Y(H1)*state.rho + + (screened_rates(k_n_to_p_beta_neg_weaktab)*Y(N) + -screened_rates(k_p_to_n_electron_capture_weaktab)*Y(H1)); ydot_nuc(H2) = - 0.5*screened_rates(k_p_p_to_d_reaclib_beta_pos)*amrex::Math::powi<2>(Y(H1))*state.rho + - 0.5*screened_rates(k_p_p_to_d_reaclib_electron_capture)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho)*state.y_e; + 0.5*screened_rates(k_p_p_to_d_beta_pos_reaclib)*amrex::Math::powi<2>(Y(H1))*state.rho + + 0.5*screened_rates(k_p_p_to_d_electron_capture_reaclib)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho)*state.y_e; ydot_nuc(He3) = - -screened_rates(k_p_He3_to_He4_reaclib)*Y(He3)*Y(H1)*state.rho; + -screened_rates(k_He3_p_to_He4_beta_pos_reaclib)*Y(He3)*Y(H1)*state.rho; ydot_nuc(He4) = - 2.0*screened_rates(k_B8_to_He4_He4_reaclib)*Y(B8) + - screened_rates(k_p_He3_to_He4_reaclib)*Y(He3)*Y(H1)*state.rho; + 2.0*screened_rates(k_B8_to_He4_He4_beta_pos_reaclib)*Y(B8) + + screened_rates(k_He3_p_to_He4_beta_pos_reaclib)*Y(He3)*Y(H1)*state.rho; ydot_nuc(Li6) = 0.0_rt; ydot_nuc(Li7) = - screened_rates(k_Be7_to_Li7_reaclib)*Y(Be7)*state.rho*state.y_e; + screened_rates(k_Be7_to_Li7_electron_capture_reaclib)*Y(Be7)*state.rho*state.y_e; ydot_nuc(Be7) = - -screened_rates(k_Be7_to_Li7_reaclib)*Y(Be7)*state.rho*state.y_e; + -screened_rates(k_Be7_to_Li7_electron_capture_reaclib)*Y(Be7)*state.rho*state.y_e; ydot_nuc(Be9) = 0.0_rt; ydot_nuc(B8) = - -screened_rates(k_B8_to_He4_He4_reaclib)*Y(B8); + -screened_rates(k_B8_to_He4_He4_beta_pos_reaclib)*Y(B8); ydot_nuc(B10) = 0.0_rt; @@ -5574,486 +3382,486 @@ void get_ydot_weak(const burn_t& state, ydot_nuc(C12) = 0.0_rt; ydot_nuc(C13) = - screened_rates(k_N13_to_C13_reaclib)*Y(N13); + screened_rates(k_N13_to_C13_beta_pos_reaclib)*Y(N13); ydot_nuc(C14) = - -screened_rates(k_C14_to_N14_reaclib)*Y(C14); + -screened_rates(k_C14_to_N14_beta_neg_reaclib)*Y(C14); ydot_nuc(N13) = - -screened_rates(k_N13_to_C13_reaclib)*Y(N13); + -screened_rates(k_N13_to_C13_beta_pos_reaclib)*Y(N13); ydot_nuc(N14) = - screened_rates(k_C14_to_N14_reaclib)*Y(C14) + - screened_rates(k_O14_to_N14_reaclib)*Y(O14); + screened_rates(k_C14_to_N14_beta_neg_reaclib)*Y(C14) + + screened_rates(k_O14_to_N14_beta_pos_reaclib)*Y(O14); ydot_nuc(N15) = - screened_rates(k_O15_to_N15_reaclib)*Y(O15); + screened_rates(k_O15_to_N15_beta_pos_reaclib)*Y(O15); ydot_nuc(O14) = - -screened_rates(k_O14_to_N14_reaclib)*Y(O14); + -screened_rates(k_O14_to_N14_beta_pos_reaclib)*Y(O14); ydot_nuc(O15) = - -screened_rates(k_O15_to_N15_reaclib)*Y(O15); + -screened_rates(k_O15_to_N15_beta_pos_reaclib)*Y(O15); ydot_nuc(O16) = 0.0_rt; ydot_nuc(O17) = - screened_rates(k_F17_to_O17_reaclib)*Y(F17); + screened_rates(k_F17_to_O17_beta_pos_reaclib)*Y(F17); ydot_nuc(O18) = - screened_rates(k_F18_to_O18_reaclib)*Y(F18); + screened_rates(k_F18_to_O18_beta_pos_reaclib)*Y(F18); ydot_nuc(F17) = - -screened_rates(k_F17_to_O17_reaclib)*Y(F17); + -screened_rates(k_F17_to_O17_beta_pos_reaclib)*Y(F17); ydot_nuc(F18) = - -screened_rates(k_F18_to_O18_reaclib)*Y(F18) + - screened_rates(k_Ne18_to_F18_reaclib)*Y(Ne18); + -screened_rates(k_F18_to_O18_beta_pos_reaclib)*Y(F18) + + screened_rates(k_Ne18_to_F18_beta_pos_reaclib)*Y(Ne18); ydot_nuc(F19) = - screened_rates(k_Ne19_to_F19_reaclib)*Y(Ne19); + screened_rates(k_Ne19_to_F19_beta_pos_reaclib)*Y(Ne19); ydot_nuc(Ne18) = - -screened_rates(k_Ne18_to_F18_reaclib)*Y(Ne18); + -screened_rates(k_Ne18_to_F18_beta_pos_reaclib)*Y(Ne18); ydot_nuc(Ne19) = - -screened_rates(k_Ne19_to_F19_reaclib)*Y(Ne19); + -screened_rates(k_Ne19_to_F19_beta_pos_reaclib)*Y(Ne19); ydot_nuc(Ne20) = 0.0_rt; ydot_nuc(Ne21) = - (screened_rates(k_Na21_to_Ne21_weaktab)*Y(Na21) + -screened_rates(k_Ne21_to_Na21_weaktab)*Y(Ne21)); + (screened_rates(k_Na21_to_Ne21_electron_capture_weaktab)*Y(Na21) + -screened_rates(k_Ne21_to_Na21_beta_neg_weaktab)*Y(Ne21)); ydot_nuc(Ne22) = - (screened_rates(k_Na22_to_Ne22_weaktab)*Y(Na22) + -screened_rates(k_Ne22_to_Na22_weaktab)*Y(Ne22)); + (screened_rates(k_Na22_to_Ne22_electron_capture_weaktab)*Y(Na22) + -screened_rates(k_Ne22_to_Na22_beta_neg_weaktab)*Y(Ne22)); ydot_nuc(Na21) = - (-screened_rates(k_Na21_to_Ne21_weaktab)*Y(Na21) + screened_rates(k_Ne21_to_Na21_weaktab)*Y(Ne21)); + (-screened_rates(k_Na21_to_Ne21_electron_capture_weaktab)*Y(Na21) + screened_rates(k_Ne21_to_Na21_beta_neg_weaktab)*Y(Ne21)); ydot_nuc(Na22) = - (-screened_rates(k_Na22_to_Ne22_weaktab)*Y(Na22) + screened_rates(k_Ne22_to_Na22_weaktab)*Y(Ne22)); + (-screened_rates(k_Na22_to_Ne22_electron_capture_weaktab)*Y(Na22) + screened_rates(k_Ne22_to_Na22_beta_neg_weaktab)*Y(Ne22)); ydot_nuc(Na23) = - (screened_rates(k_Mg23_to_Na23_weaktab)*Y(Mg23) + -screened_rates(k_Na23_to_Mg23_weaktab)*Y(Na23)); + (screened_rates(k_Mg23_to_Na23_electron_capture_weaktab)*Y(Mg23) + -screened_rates(k_Na23_to_Mg23_beta_neg_weaktab)*Y(Na23)); ydot_nuc(Mg23) = - (-screened_rates(k_Mg23_to_Na23_weaktab)*Y(Mg23) + screened_rates(k_Na23_to_Mg23_weaktab)*Y(Na23)); + (-screened_rates(k_Mg23_to_Na23_electron_capture_weaktab)*Y(Mg23) + screened_rates(k_Na23_to_Mg23_beta_neg_weaktab)*Y(Na23)); ydot_nuc(Mg24) = 0.0_rt; ydot_nuc(Mg25) = - (screened_rates(k_Al25_to_Mg25_weaktab)*Y(Al25) + -screened_rates(k_Mg25_to_Al25_weaktab)*Y(Mg25)); + (screened_rates(k_Al25_to_Mg25_electron_capture_weaktab)*Y(Al25) + -screened_rates(k_Mg25_to_Al25_beta_neg_weaktab)*Y(Mg25)); ydot_nuc(Mg26) = - (screened_rates(k_Al26_to_Mg26_weaktab)*Y(Al26) + -screened_rates(k_Mg26_to_Al26_weaktab)*Y(Mg26)); + (screened_rates(k_Al26_to_Mg26_electron_capture_weaktab)*Y(Al26) + -screened_rates(k_Mg26_to_Al26_beta_neg_weaktab)*Y(Mg26)); ydot_nuc(Al25) = - (-screened_rates(k_Al25_to_Mg25_weaktab)*Y(Al25) + screened_rates(k_Mg25_to_Al25_weaktab)*Y(Mg25)); + (-screened_rates(k_Al25_to_Mg25_electron_capture_weaktab)*Y(Al25) + screened_rates(k_Mg25_to_Al25_beta_neg_weaktab)*Y(Mg25)); ydot_nuc(Al26) = - (-screened_rates(k_Al26_to_Mg26_weaktab)*Y(Al26) + screened_rates(k_Mg26_to_Al26_weaktab)*Y(Mg26)); + (-screened_rates(k_Al26_to_Mg26_electron_capture_weaktab)*Y(Al26) + screened_rates(k_Mg26_to_Al26_beta_neg_weaktab)*Y(Mg26)); ydot_nuc(Al27) = 0.0_rt; ydot_nuc(Si28) = 0.0_rt; ydot_nuc(Si29) = - (screened_rates(k_P29_to_Si29_weaktab)*Y(P29) + -screened_rates(k_Si29_to_P29_weaktab)*Y(Si29)); + (screened_rates(k_P29_to_Si29_electron_capture_weaktab)*Y(P29) + -screened_rates(k_Si29_to_P29_beta_neg_weaktab)*Y(Si29)); ydot_nuc(Si30) = - (screened_rates(k_P30_to_Si30_weaktab)*Y(P30) + -screened_rates(k_Si30_to_P30_weaktab)*Y(Si30)); + (screened_rates(k_P30_to_Si30_electron_capture_weaktab)*Y(P30) + -screened_rates(k_Si30_to_P30_beta_neg_weaktab)*Y(Si30)); ydot_nuc(Si31) = - (-screened_rates(k_Si31_to_P31_weaktab)*Y(Si31) + screened_rates(k_P31_to_Si31_weaktab)*Y(P31)); + (-screened_rates(k_Si31_to_P31_beta_neg_weaktab)*Y(Si31) + screened_rates(k_P31_to_Si31_electron_capture_weaktab)*Y(P31)); ydot_nuc(Si32) = - (-screened_rates(k_Si32_to_P32_weaktab)*Y(Si32) + screened_rates(k_P32_to_Si32_weaktab)*Y(P32)); + (-screened_rates(k_Si32_to_P32_beta_neg_weaktab)*Y(Si32) + screened_rates(k_P32_to_Si32_electron_capture_weaktab)*Y(P32)); ydot_nuc(P29) = - (-screened_rates(k_P29_to_Si29_weaktab)*Y(P29) + screened_rates(k_Si29_to_P29_weaktab)*Y(Si29)); + (-screened_rates(k_P29_to_Si29_electron_capture_weaktab)*Y(P29) + screened_rates(k_Si29_to_P29_beta_neg_weaktab)*Y(Si29)); ydot_nuc(P30) = - (-screened_rates(k_P30_to_Si30_weaktab)*Y(P30) + screened_rates(k_Si30_to_P30_weaktab)*Y(Si30)); + (-screened_rates(k_P30_to_Si30_electron_capture_weaktab)*Y(P30) + screened_rates(k_Si30_to_P30_beta_neg_weaktab)*Y(Si30)); ydot_nuc(P31) = - (screened_rates(k_Si31_to_P31_weaktab)*Y(Si31) + -screened_rates(k_P31_to_Si31_weaktab)*Y(P31)); + (screened_rates(k_Si31_to_P31_beta_neg_weaktab)*Y(Si31) + -screened_rates(k_P31_to_Si31_electron_capture_weaktab)*Y(P31)); ydot_nuc(P32) = - (-screened_rates(k_P32_to_S32_weaktab)*Y(P32) + screened_rates(k_S32_to_P32_weaktab)*Y(S32)) + - (screened_rates(k_Si32_to_P32_weaktab)*Y(Si32) + -screened_rates(k_P32_to_Si32_weaktab)*Y(P32)); + (-screened_rates(k_P32_to_S32_beta_neg_weaktab)*Y(P32) + screened_rates(k_S32_to_P32_electron_capture_weaktab)*Y(S32)) + + (screened_rates(k_Si32_to_P32_beta_neg_weaktab)*Y(Si32) + -screened_rates(k_P32_to_Si32_electron_capture_weaktab)*Y(P32)); ydot_nuc(P33) = - (-screened_rates(k_P33_to_S33_weaktab)*Y(P33) + screened_rates(k_S33_to_P33_weaktab)*Y(S33)); + (-screened_rates(k_P33_to_S33_beta_neg_weaktab)*Y(P33) + screened_rates(k_S33_to_P33_electron_capture_weaktab)*Y(S33)); ydot_nuc(S32) = - (screened_rates(k_P32_to_S32_weaktab)*Y(P32) + -screened_rates(k_S32_to_P32_weaktab)*Y(S32)); + (screened_rates(k_P32_to_S32_beta_neg_weaktab)*Y(P32) + -screened_rates(k_S32_to_P32_electron_capture_weaktab)*Y(S32)); ydot_nuc(S33) = - (screened_rates(k_Cl33_to_S33_weaktab)*Y(Cl33) + -screened_rates(k_S33_to_Cl33_weaktab)*Y(S33)) + - (screened_rates(k_P33_to_S33_weaktab)*Y(P33) + -screened_rates(k_S33_to_P33_weaktab)*Y(S33)); + (screened_rates(k_Cl33_to_S33_electron_capture_weaktab)*Y(Cl33) + -screened_rates(k_S33_to_Cl33_beta_neg_weaktab)*Y(S33)) + + (screened_rates(k_P33_to_S33_beta_neg_weaktab)*Y(P33) + -screened_rates(k_S33_to_P33_electron_capture_weaktab)*Y(S33)); ydot_nuc(S34) = - (screened_rates(k_Cl34_to_S34_weaktab)*Y(Cl34) + -screened_rates(k_S34_to_Cl34_weaktab)*Y(S34)); + (screened_rates(k_Cl34_to_S34_electron_capture_weaktab)*Y(Cl34) + -screened_rates(k_S34_to_Cl34_beta_neg_weaktab)*Y(S34)); ydot_nuc(S35) = - (-screened_rates(k_S35_to_Cl35_weaktab)*Y(S35) + screened_rates(k_Cl35_to_S35_weaktab)*Y(Cl35)); + (-screened_rates(k_S35_to_Cl35_beta_neg_weaktab)*Y(S35) + screened_rates(k_Cl35_to_S35_electron_capture_weaktab)*Y(Cl35)); ydot_nuc(S36) = - (screened_rates(k_Cl36_to_S36_weaktab)*Y(Cl36) + -screened_rates(k_S36_to_Cl36_weaktab)*Y(S36)); + (screened_rates(k_Cl36_to_S36_electron_capture_weaktab)*Y(Cl36) + -screened_rates(k_S36_to_Cl36_beta_neg_weaktab)*Y(S36)); ydot_nuc(Cl33) = - (-screened_rates(k_Cl33_to_S33_weaktab)*Y(Cl33) + screened_rates(k_S33_to_Cl33_weaktab)*Y(S33)); + (-screened_rates(k_Cl33_to_S33_electron_capture_weaktab)*Y(Cl33) + screened_rates(k_S33_to_Cl33_beta_neg_weaktab)*Y(S33)); ydot_nuc(Cl34) = - (-screened_rates(k_Cl34_to_S34_weaktab)*Y(Cl34) + screened_rates(k_S34_to_Cl34_weaktab)*Y(S34)); + (-screened_rates(k_Cl34_to_S34_electron_capture_weaktab)*Y(Cl34) + screened_rates(k_S34_to_Cl34_beta_neg_weaktab)*Y(S34)); ydot_nuc(Cl35) = - (screened_rates(k_S35_to_Cl35_weaktab)*Y(S35) + -screened_rates(k_Cl35_to_S35_weaktab)*Y(Cl35)); + (screened_rates(k_S35_to_Cl35_beta_neg_weaktab)*Y(S35) + -screened_rates(k_Cl35_to_S35_electron_capture_weaktab)*Y(Cl35)); ydot_nuc(Cl36) = - (-screened_rates(k_Cl36_to_Ar36_weaktab)*Y(Cl36) + screened_rates(k_Ar36_to_Cl36_weaktab)*Y(Ar36)) + - (-screened_rates(k_Cl36_to_S36_weaktab)*Y(Cl36) + screened_rates(k_S36_to_Cl36_weaktab)*Y(S36)); + (-screened_rates(k_Cl36_to_Ar36_beta_neg_weaktab)*Y(Cl36) + screened_rates(k_Ar36_to_Cl36_electron_capture_weaktab)*Y(Ar36)) + + (-screened_rates(k_Cl36_to_S36_electron_capture_weaktab)*Y(Cl36) + screened_rates(k_S36_to_Cl36_beta_neg_weaktab)*Y(S36)); ydot_nuc(Cl37) = - (screened_rates(k_Ar37_to_Cl37_weaktab)*Y(Ar37) + -screened_rates(k_Cl37_to_Ar37_weaktab)*Y(Cl37)); + (screened_rates(k_Ar37_to_Cl37_electron_capture_weaktab)*Y(Ar37) + -screened_rates(k_Cl37_to_Ar37_beta_neg_weaktab)*Y(Cl37)); ydot_nuc(Ar36) = - (screened_rates(k_Cl36_to_Ar36_weaktab)*Y(Cl36) + -screened_rates(k_Ar36_to_Cl36_weaktab)*Y(Ar36)); + (screened_rates(k_Cl36_to_Ar36_beta_neg_weaktab)*Y(Cl36) + -screened_rates(k_Ar36_to_Cl36_electron_capture_weaktab)*Y(Ar36)); ydot_nuc(Ar37) = - (-screened_rates(k_Ar37_to_Cl37_weaktab)*Y(Ar37) + screened_rates(k_Cl37_to_Ar37_weaktab)*Y(Cl37)) + - (screened_rates(k_K37_to_Ar37_weaktab)*Y(K37) + -screened_rates(k_Ar37_to_K37_weaktab)*Y(Ar37)); + (-screened_rates(k_Ar37_to_Cl37_electron_capture_weaktab)*Y(Ar37) + screened_rates(k_Cl37_to_Ar37_beta_neg_weaktab)*Y(Cl37)) + + (screened_rates(k_K37_to_Ar37_electron_capture_weaktab)*Y(K37) + -screened_rates(k_Ar37_to_K37_beta_neg_weaktab)*Y(Ar37)); ydot_nuc(Ar38) = - (screened_rates(k_K38_to_Ar38_weaktab)*Y(K38) + -screened_rates(k_Ar38_to_K38_weaktab)*Y(Ar38)); + (screened_rates(k_K38_to_Ar38_electron_capture_weaktab)*Y(K38) + -screened_rates(k_Ar38_to_K38_beta_neg_weaktab)*Y(Ar38)); ydot_nuc(Ar39) = - (-screened_rates(k_Ar39_to_K39_weaktab)*Y(Ar39) + screened_rates(k_K39_to_Ar39_weaktab)*Y(K39)); + (-screened_rates(k_Ar39_to_K39_beta_neg_weaktab)*Y(Ar39) + screened_rates(k_K39_to_Ar39_electron_capture_weaktab)*Y(K39)); ydot_nuc(Ar40) = - (screened_rates(k_K40_to_Ar40_weaktab)*Y(K40) + -screened_rates(k_Ar40_to_K40_weaktab)*Y(Ar40)); + (screened_rates(k_K40_to_Ar40_electron_capture_weaktab)*Y(K40) + -screened_rates(k_Ar40_to_K40_beta_neg_weaktab)*Y(Ar40)); ydot_nuc(K37) = - (-screened_rates(k_K37_to_Ar37_weaktab)*Y(K37) + screened_rates(k_Ar37_to_K37_weaktab)*Y(Ar37)); + (-screened_rates(k_K37_to_Ar37_electron_capture_weaktab)*Y(K37) + screened_rates(k_Ar37_to_K37_beta_neg_weaktab)*Y(Ar37)); ydot_nuc(K38) = - (-screened_rates(k_K38_to_Ar38_weaktab)*Y(K38) + screened_rates(k_Ar38_to_K38_weaktab)*Y(Ar38)); + (-screened_rates(k_K38_to_Ar38_electron_capture_weaktab)*Y(K38) + screened_rates(k_Ar38_to_K38_beta_neg_weaktab)*Y(Ar38)); ydot_nuc(K39) = - (screened_rates(k_Ar39_to_K39_weaktab)*Y(Ar39) + -screened_rates(k_K39_to_Ar39_weaktab)*Y(K39)); + (screened_rates(k_Ar39_to_K39_beta_neg_weaktab)*Y(Ar39) + -screened_rates(k_K39_to_Ar39_electron_capture_weaktab)*Y(K39)); ydot_nuc(K40) = - (-screened_rates(k_K40_to_Ar40_weaktab)*Y(K40) + screened_rates(k_Ar40_to_K40_weaktab)*Y(Ar40)) + - (-screened_rates(k_K40_to_Ca40_weaktab)*Y(K40) + screened_rates(k_Ca40_to_K40_weaktab)*Y(Ca40)); + (-screened_rates(k_K40_to_Ar40_electron_capture_weaktab)*Y(K40) + screened_rates(k_Ar40_to_K40_beta_neg_weaktab)*Y(Ar40)) + + (-screened_rates(k_K40_to_Ca40_beta_neg_weaktab)*Y(K40) + screened_rates(k_Ca40_to_K40_electron_capture_weaktab)*Y(Ca40)); ydot_nuc(K41) = - (screened_rates(k_Ca41_to_K41_weaktab)*Y(Ca41) + -screened_rates(k_K41_to_Ca41_weaktab)*Y(K41)); + (screened_rates(k_Ca41_to_K41_electron_capture_weaktab)*Y(Ca41) + -screened_rates(k_K41_to_Ca41_beta_neg_weaktab)*Y(K41)); ydot_nuc(Ca40) = - (screened_rates(k_K40_to_Ca40_weaktab)*Y(K40) + -screened_rates(k_Ca40_to_K40_weaktab)*Y(Ca40)); + (screened_rates(k_K40_to_Ca40_beta_neg_weaktab)*Y(K40) + -screened_rates(k_Ca40_to_K40_electron_capture_weaktab)*Y(Ca40)); ydot_nuc(Ca41) = - (-screened_rates(k_Ca41_to_K41_weaktab)*Y(Ca41) + screened_rates(k_K41_to_Ca41_weaktab)*Y(K41)); + (-screened_rates(k_Ca41_to_K41_electron_capture_weaktab)*Y(Ca41) + screened_rates(k_K41_to_Ca41_beta_neg_weaktab)*Y(K41)); ydot_nuc(Ca42) = 0.0_rt; ydot_nuc(Ca43) = - (screened_rates(k_Sc43_to_Ca43_weaktab)*Y(Sc43) + -screened_rates(k_Ca43_to_Sc43_weaktab)*Y(Ca43)); + (screened_rates(k_Sc43_to_Ca43_electron_capture_weaktab)*Y(Sc43) + -screened_rates(k_Ca43_to_Sc43_beta_neg_weaktab)*Y(Ca43)); ydot_nuc(Ca44) = - (screened_rates(k_Sc44_to_Ca44_weaktab)*Y(Sc44) + -screened_rates(k_Ca44_to_Sc44_weaktab)*Y(Ca44)); + (screened_rates(k_Sc44_to_Ca44_electron_capture_weaktab)*Y(Sc44) + -screened_rates(k_Ca44_to_Sc44_beta_neg_weaktab)*Y(Ca44)); ydot_nuc(Ca45) = - (-screened_rates(k_Ca45_to_Sc45_weaktab)*Y(Ca45) + screened_rates(k_Sc45_to_Ca45_weaktab)*Y(Sc45)); + (-screened_rates(k_Ca45_to_Sc45_beta_neg_weaktab)*Y(Ca45) + screened_rates(k_Sc45_to_Ca45_electron_capture_weaktab)*Y(Sc45)); ydot_nuc(Ca46) = - (screened_rates(k_Sc46_to_Ca46_weaktab)*Y(Sc46) + -screened_rates(k_Ca46_to_Sc46_weaktab)*Y(Ca46)); + (screened_rates(k_Sc46_to_Ca46_electron_capture_weaktab)*Y(Sc46) + -screened_rates(k_Ca46_to_Sc46_beta_neg_weaktab)*Y(Ca46)); ydot_nuc(Ca47) = - (-screened_rates(k_Ca47_to_Sc47_weaktab)*Y(Ca47) + screened_rates(k_Sc47_to_Ca47_weaktab)*Y(Sc47)); + (-screened_rates(k_Ca47_to_Sc47_beta_neg_weaktab)*Y(Ca47) + screened_rates(k_Sc47_to_Ca47_electron_capture_weaktab)*Y(Sc47)); ydot_nuc(Ca48) = - (-screened_rates(k_Ca48_to_Sc48_weaktab)*Y(Ca48) + screened_rates(k_Sc48_to_Ca48_weaktab)*Y(Sc48)); + (-screened_rates(k_Ca48_to_Sc48_beta_neg_weaktab)*Y(Ca48) + screened_rates(k_Sc48_to_Ca48_electron_capture_weaktab)*Y(Sc48)); ydot_nuc(Sc43) = - (-screened_rates(k_Sc43_to_Ca43_weaktab)*Y(Sc43) + screened_rates(k_Ca43_to_Sc43_weaktab)*Y(Ca43)); + (-screened_rates(k_Sc43_to_Ca43_electron_capture_weaktab)*Y(Sc43) + screened_rates(k_Ca43_to_Sc43_beta_neg_weaktab)*Y(Ca43)); ydot_nuc(Sc44) = - (-screened_rates(k_Sc44_to_Ca44_weaktab)*Y(Sc44) + screened_rates(k_Ca44_to_Sc44_weaktab)*Y(Ca44)) + - (screened_rates(k_Ti44_to_Sc44_weaktab)*Y(Ti44) + -screened_rates(k_Sc44_to_Ti44_weaktab)*Y(Sc44)); + (-screened_rates(k_Sc44_to_Ca44_electron_capture_weaktab)*Y(Sc44) + screened_rates(k_Ca44_to_Sc44_beta_neg_weaktab)*Y(Ca44)) + + (screened_rates(k_Ti44_to_Sc44_electron_capture_weaktab)*Y(Ti44) + -screened_rates(k_Sc44_to_Ti44_beta_neg_weaktab)*Y(Sc44)); ydot_nuc(Sc45) = - (screened_rates(k_Ca45_to_Sc45_weaktab)*Y(Ca45) + -screened_rates(k_Sc45_to_Ca45_weaktab)*Y(Sc45)) + - (screened_rates(k_Ti45_to_Sc45_weaktab)*Y(Ti45) + -screened_rates(k_Sc45_to_Ti45_weaktab)*Y(Sc45)); + (screened_rates(k_Ca45_to_Sc45_beta_neg_weaktab)*Y(Ca45) + -screened_rates(k_Sc45_to_Ca45_electron_capture_weaktab)*Y(Sc45)) + + (screened_rates(k_Ti45_to_Sc45_electron_capture_weaktab)*Y(Ti45) + -screened_rates(k_Sc45_to_Ti45_beta_neg_weaktab)*Y(Sc45)); ydot_nuc(Sc46) = - (-screened_rates(k_Sc46_to_Ca46_weaktab)*Y(Sc46) + screened_rates(k_Ca46_to_Sc46_weaktab)*Y(Ca46)) + - (-screened_rates(k_Sc46_to_Ti46_weaktab)*Y(Sc46) + screened_rates(k_Ti46_to_Sc46_weaktab)*Y(Ti46)); + (-screened_rates(k_Sc46_to_Ca46_electron_capture_weaktab)*Y(Sc46) + screened_rates(k_Ca46_to_Sc46_beta_neg_weaktab)*Y(Ca46)) + + (-screened_rates(k_Sc46_to_Ti46_beta_neg_weaktab)*Y(Sc46) + screened_rates(k_Ti46_to_Sc46_electron_capture_weaktab)*Y(Ti46)); ydot_nuc(Sc47) = - (screened_rates(k_Ca47_to_Sc47_weaktab)*Y(Ca47) + -screened_rates(k_Sc47_to_Ca47_weaktab)*Y(Sc47)) + - (-screened_rates(k_Sc47_to_Ti47_weaktab)*Y(Sc47) + screened_rates(k_Ti47_to_Sc47_weaktab)*Y(Ti47)); + (screened_rates(k_Ca47_to_Sc47_beta_neg_weaktab)*Y(Ca47) + -screened_rates(k_Sc47_to_Ca47_electron_capture_weaktab)*Y(Sc47)) + + (-screened_rates(k_Sc47_to_Ti47_beta_neg_weaktab)*Y(Sc47) + screened_rates(k_Ti47_to_Sc47_electron_capture_weaktab)*Y(Ti47)); ydot_nuc(Sc48) = - (screened_rates(k_Ca48_to_Sc48_weaktab)*Y(Ca48) + -screened_rates(k_Sc48_to_Ca48_weaktab)*Y(Sc48)) + - (-screened_rates(k_Sc48_to_Ti48_weaktab)*Y(Sc48) + screened_rates(k_Ti48_to_Sc48_weaktab)*Y(Ti48)); + (screened_rates(k_Ca48_to_Sc48_beta_neg_weaktab)*Y(Ca48) + -screened_rates(k_Sc48_to_Ca48_electron_capture_weaktab)*Y(Sc48)) + + (-screened_rates(k_Sc48_to_Ti48_beta_neg_weaktab)*Y(Sc48) + screened_rates(k_Ti48_to_Sc48_electron_capture_weaktab)*Y(Ti48)); ydot_nuc(Sc49) = - (-screened_rates(k_Sc49_to_Ti49_weaktab)*Y(Sc49) + screened_rates(k_Ti49_to_Sc49_weaktab)*Y(Ti49)); + (-screened_rates(k_Sc49_to_Ti49_beta_neg_weaktab)*Y(Sc49) + screened_rates(k_Ti49_to_Sc49_electron_capture_weaktab)*Y(Ti49)); ydot_nuc(Ti44) = - (-screened_rates(k_Ti44_to_Sc44_weaktab)*Y(Ti44) + screened_rates(k_Sc44_to_Ti44_weaktab)*Y(Sc44)); + (-screened_rates(k_Ti44_to_Sc44_electron_capture_weaktab)*Y(Ti44) + screened_rates(k_Sc44_to_Ti44_beta_neg_weaktab)*Y(Sc44)); ydot_nuc(Ti45) = - (-screened_rates(k_Ti45_to_Sc45_weaktab)*Y(Ti45) + screened_rates(k_Sc45_to_Ti45_weaktab)*Y(Sc45)); + (-screened_rates(k_Ti45_to_Sc45_electron_capture_weaktab)*Y(Ti45) + screened_rates(k_Sc45_to_Ti45_beta_neg_weaktab)*Y(Sc45)); ydot_nuc(Ti46) = - (screened_rates(k_Sc46_to_Ti46_weaktab)*Y(Sc46) + -screened_rates(k_Ti46_to_Sc46_weaktab)*Y(Ti46)) + - (screened_rates(k_V46_to_Ti46_weaktab)*Y(V46) + -screened_rates(k_Ti46_to_V46_weaktab)*Y(Ti46)); + (screened_rates(k_Sc46_to_Ti46_beta_neg_weaktab)*Y(Sc46) + -screened_rates(k_Ti46_to_Sc46_electron_capture_weaktab)*Y(Ti46)) + + (screened_rates(k_V46_to_Ti46_electron_capture_weaktab)*Y(V46) + -screened_rates(k_Ti46_to_V46_beta_neg_weaktab)*Y(Ti46)); ydot_nuc(Ti47) = - (screened_rates(k_Sc47_to_Ti47_weaktab)*Y(Sc47) + -screened_rates(k_Ti47_to_Sc47_weaktab)*Y(Ti47)) + - (screened_rates(k_V47_to_Ti47_weaktab)*Y(V47) + -screened_rates(k_Ti47_to_V47_weaktab)*Y(Ti47)); + (screened_rates(k_Sc47_to_Ti47_beta_neg_weaktab)*Y(Sc47) + -screened_rates(k_Ti47_to_Sc47_electron_capture_weaktab)*Y(Ti47)) + + (screened_rates(k_V47_to_Ti47_electron_capture_weaktab)*Y(V47) + -screened_rates(k_Ti47_to_V47_beta_neg_weaktab)*Y(Ti47)); ydot_nuc(Ti48) = - (screened_rates(k_Sc48_to_Ti48_weaktab)*Y(Sc48) + -screened_rates(k_Ti48_to_Sc48_weaktab)*Y(Ti48)) + - (screened_rates(k_V48_to_Ti48_weaktab)*Y(V48) + -screened_rates(k_Ti48_to_V48_weaktab)*Y(Ti48)); + (screened_rates(k_Sc48_to_Ti48_beta_neg_weaktab)*Y(Sc48) + -screened_rates(k_Ti48_to_Sc48_electron_capture_weaktab)*Y(Ti48)) + + (screened_rates(k_V48_to_Ti48_electron_capture_weaktab)*Y(V48) + -screened_rates(k_Ti48_to_V48_beta_neg_weaktab)*Y(Ti48)); ydot_nuc(Ti49) = - (screened_rates(k_Sc49_to_Ti49_weaktab)*Y(Sc49) + -screened_rates(k_Ti49_to_Sc49_weaktab)*Y(Ti49)) + - (screened_rates(k_V49_to_Ti49_weaktab)*Y(V49) + -screened_rates(k_Ti49_to_V49_weaktab)*Y(Ti49)); + (screened_rates(k_Sc49_to_Ti49_beta_neg_weaktab)*Y(Sc49) + -screened_rates(k_Ti49_to_Sc49_electron_capture_weaktab)*Y(Ti49)) + + (screened_rates(k_V49_to_Ti49_electron_capture_weaktab)*Y(V49) + -screened_rates(k_Ti49_to_V49_beta_neg_weaktab)*Y(Ti49)); ydot_nuc(Ti50) = - (screened_rates(k_V50_to_Ti50_weaktab)*Y(V50) + -screened_rates(k_Ti50_to_V50_weaktab)*Y(Ti50)); + (screened_rates(k_V50_to_Ti50_electron_capture_weaktab)*Y(V50) + -screened_rates(k_Ti50_to_V50_beta_neg_weaktab)*Y(Ti50)); ydot_nuc(Ti51) = - (-screened_rates(k_Ti51_to_V51_weaktab)*Y(Ti51) + screened_rates(k_V51_to_Ti51_weaktab)*Y(V51)); + (-screened_rates(k_Ti51_to_V51_beta_neg_weaktab)*Y(Ti51) + screened_rates(k_V51_to_Ti51_electron_capture_weaktab)*Y(V51)); ydot_nuc(V46) = - (-screened_rates(k_V46_to_Ti46_weaktab)*Y(V46) + screened_rates(k_Ti46_to_V46_weaktab)*Y(Ti46)); + (-screened_rates(k_V46_to_Ti46_electron_capture_weaktab)*Y(V46) + screened_rates(k_Ti46_to_V46_beta_neg_weaktab)*Y(Ti46)); ydot_nuc(V47) = - (-screened_rates(k_V47_to_Ti47_weaktab)*Y(V47) + screened_rates(k_Ti47_to_V47_weaktab)*Y(Ti47)); + (-screened_rates(k_V47_to_Ti47_electron_capture_weaktab)*Y(V47) + screened_rates(k_Ti47_to_V47_beta_neg_weaktab)*Y(Ti47)); ydot_nuc(V48) = - (screened_rates(k_Cr48_to_V48_weaktab)*Y(Cr48) + -screened_rates(k_V48_to_Cr48_weaktab)*Y(V48)) + - (-screened_rates(k_V48_to_Ti48_weaktab)*Y(V48) + screened_rates(k_Ti48_to_V48_weaktab)*Y(Ti48)); + (screened_rates(k_Cr48_to_V48_electron_capture_weaktab)*Y(Cr48) + -screened_rates(k_V48_to_Cr48_beta_neg_weaktab)*Y(V48)) + + (-screened_rates(k_V48_to_Ti48_electron_capture_weaktab)*Y(V48) + screened_rates(k_Ti48_to_V48_beta_neg_weaktab)*Y(Ti48)); ydot_nuc(V49) = - (screened_rates(k_Cr49_to_V49_weaktab)*Y(Cr49) + -screened_rates(k_V49_to_Cr49_weaktab)*Y(V49)) + - (-screened_rates(k_V49_to_Ti49_weaktab)*Y(V49) + screened_rates(k_Ti49_to_V49_weaktab)*Y(Ti49)); + (screened_rates(k_Cr49_to_V49_electron_capture_weaktab)*Y(Cr49) + -screened_rates(k_V49_to_Cr49_beta_neg_weaktab)*Y(V49)) + + (-screened_rates(k_V49_to_Ti49_electron_capture_weaktab)*Y(V49) + screened_rates(k_Ti49_to_V49_beta_neg_weaktab)*Y(Ti49)); ydot_nuc(V50) = - (-screened_rates(k_V50_to_Cr50_weaktab)*Y(V50) + screened_rates(k_Cr50_to_V50_weaktab)*Y(Cr50)) + - (-screened_rates(k_V50_to_Ti50_weaktab)*Y(V50) + screened_rates(k_Ti50_to_V50_weaktab)*Y(Ti50)); + (-screened_rates(k_V50_to_Cr50_beta_neg_weaktab)*Y(V50) + screened_rates(k_Cr50_to_V50_electron_capture_weaktab)*Y(Cr50)) + + (-screened_rates(k_V50_to_Ti50_electron_capture_weaktab)*Y(V50) + screened_rates(k_Ti50_to_V50_beta_neg_weaktab)*Y(Ti50)); ydot_nuc(V51) = - (screened_rates(k_Cr51_to_V51_weaktab)*Y(Cr51) + -screened_rates(k_V51_to_Cr51_weaktab)*Y(V51)) + - (screened_rates(k_Ti51_to_V51_weaktab)*Y(Ti51) + -screened_rates(k_V51_to_Ti51_weaktab)*Y(V51)); + (screened_rates(k_Cr51_to_V51_electron_capture_weaktab)*Y(Cr51) + -screened_rates(k_V51_to_Cr51_beta_neg_weaktab)*Y(V51)) + + (screened_rates(k_Ti51_to_V51_beta_neg_weaktab)*Y(Ti51) + -screened_rates(k_V51_to_Ti51_electron_capture_weaktab)*Y(V51)); ydot_nuc(V52) = - (-screened_rates(k_V52_to_Cr52_weaktab)*Y(V52) + screened_rates(k_Cr52_to_V52_weaktab)*Y(Cr52)); + (-screened_rates(k_V52_to_Cr52_beta_neg_weaktab)*Y(V52) + screened_rates(k_Cr52_to_V52_electron_capture_weaktab)*Y(Cr52)); ydot_nuc(Cr48) = - (-screened_rates(k_Cr48_to_V48_weaktab)*Y(Cr48) + screened_rates(k_V48_to_Cr48_weaktab)*Y(V48)); + (-screened_rates(k_Cr48_to_V48_electron_capture_weaktab)*Y(Cr48) + screened_rates(k_V48_to_Cr48_beta_neg_weaktab)*Y(V48)); ydot_nuc(Cr49) = - (-screened_rates(k_Cr49_to_V49_weaktab)*Y(Cr49) + screened_rates(k_V49_to_Cr49_weaktab)*Y(V49)); + (-screened_rates(k_Cr49_to_V49_electron_capture_weaktab)*Y(Cr49) + screened_rates(k_V49_to_Cr49_beta_neg_weaktab)*Y(V49)); ydot_nuc(Cr50) = - (screened_rates(k_Mn50_to_Cr50_weaktab)*Y(Mn50) + -screened_rates(k_Cr50_to_Mn50_weaktab)*Y(Cr50)) + - (screened_rates(k_V50_to_Cr50_weaktab)*Y(V50) + -screened_rates(k_Cr50_to_V50_weaktab)*Y(Cr50)); + (screened_rates(k_Mn50_to_Cr50_electron_capture_weaktab)*Y(Mn50) + -screened_rates(k_Cr50_to_Mn50_beta_neg_weaktab)*Y(Cr50)) + + (screened_rates(k_V50_to_Cr50_beta_neg_weaktab)*Y(V50) + -screened_rates(k_Cr50_to_V50_electron_capture_weaktab)*Y(Cr50)); ydot_nuc(Cr51) = - (-screened_rates(k_Cr51_to_V51_weaktab)*Y(Cr51) + screened_rates(k_V51_to_Cr51_weaktab)*Y(V51)) + - (screened_rates(k_Mn51_to_Cr51_weaktab)*Y(Mn51) + -screened_rates(k_Cr51_to_Mn51_weaktab)*Y(Cr51)); + (-screened_rates(k_Cr51_to_V51_electron_capture_weaktab)*Y(Cr51) + screened_rates(k_V51_to_Cr51_beta_neg_weaktab)*Y(V51)) + + (screened_rates(k_Mn51_to_Cr51_electron_capture_weaktab)*Y(Mn51) + -screened_rates(k_Cr51_to_Mn51_beta_neg_weaktab)*Y(Cr51)); ydot_nuc(Cr52) = - (screened_rates(k_Mn52_to_Cr52_weaktab)*Y(Mn52) + -screened_rates(k_Cr52_to_Mn52_weaktab)*Y(Cr52)) + - (screened_rates(k_V52_to_Cr52_weaktab)*Y(V52) + -screened_rates(k_Cr52_to_V52_weaktab)*Y(Cr52)); + (screened_rates(k_Mn52_to_Cr52_electron_capture_weaktab)*Y(Mn52) + -screened_rates(k_Cr52_to_Mn52_beta_neg_weaktab)*Y(Cr52)) + + (screened_rates(k_V52_to_Cr52_beta_neg_weaktab)*Y(V52) + -screened_rates(k_Cr52_to_V52_electron_capture_weaktab)*Y(Cr52)); ydot_nuc(Cr53) = - (screened_rates(k_Mn53_to_Cr53_weaktab)*Y(Mn53) + -screened_rates(k_Cr53_to_Mn53_weaktab)*Y(Cr53)); + (screened_rates(k_Mn53_to_Cr53_electron_capture_weaktab)*Y(Mn53) + -screened_rates(k_Cr53_to_Mn53_beta_neg_weaktab)*Y(Cr53)); ydot_nuc(Cr54) = - (screened_rates(k_Mn54_to_Cr54_weaktab)*Y(Mn54) + -screened_rates(k_Cr54_to_Mn54_weaktab)*Y(Cr54)); + (screened_rates(k_Mn54_to_Cr54_electron_capture_weaktab)*Y(Mn54) + -screened_rates(k_Cr54_to_Mn54_beta_neg_weaktab)*Y(Cr54)); ydot_nuc(Mn50) = - (-screened_rates(k_Mn50_to_Cr50_weaktab)*Y(Mn50) + screened_rates(k_Cr50_to_Mn50_weaktab)*Y(Cr50)); + (-screened_rates(k_Mn50_to_Cr50_electron_capture_weaktab)*Y(Mn50) + screened_rates(k_Cr50_to_Mn50_beta_neg_weaktab)*Y(Cr50)); ydot_nuc(Mn51) = - (-screened_rates(k_Mn51_to_Cr51_weaktab)*Y(Mn51) + screened_rates(k_Cr51_to_Mn51_weaktab)*Y(Cr51)); + (-screened_rates(k_Mn51_to_Cr51_electron_capture_weaktab)*Y(Mn51) + screened_rates(k_Cr51_to_Mn51_beta_neg_weaktab)*Y(Cr51)); ydot_nuc(Mn52) = - (screened_rates(k_Fe52_to_Mn52_weaktab)*Y(Fe52) + -screened_rates(k_Mn52_to_Fe52_weaktab)*Y(Mn52)) + - (-screened_rates(k_Mn52_to_Cr52_weaktab)*Y(Mn52) + screened_rates(k_Cr52_to_Mn52_weaktab)*Y(Cr52)); + (screened_rates(k_Fe52_to_Mn52_electron_capture_weaktab)*Y(Fe52) + -screened_rates(k_Mn52_to_Fe52_beta_neg_weaktab)*Y(Mn52)) + + (-screened_rates(k_Mn52_to_Cr52_electron_capture_weaktab)*Y(Mn52) + screened_rates(k_Cr52_to_Mn52_beta_neg_weaktab)*Y(Cr52)); ydot_nuc(Mn53) = - (screened_rates(k_Fe53_to_Mn53_weaktab)*Y(Fe53) + -screened_rates(k_Mn53_to_Fe53_weaktab)*Y(Mn53)) + - (-screened_rates(k_Mn53_to_Cr53_weaktab)*Y(Mn53) + screened_rates(k_Cr53_to_Mn53_weaktab)*Y(Cr53)); + (screened_rates(k_Fe53_to_Mn53_electron_capture_weaktab)*Y(Fe53) + -screened_rates(k_Mn53_to_Fe53_beta_neg_weaktab)*Y(Mn53)) + + (-screened_rates(k_Mn53_to_Cr53_electron_capture_weaktab)*Y(Mn53) + screened_rates(k_Cr53_to_Mn53_beta_neg_weaktab)*Y(Cr53)); ydot_nuc(Mn54) = - (-screened_rates(k_Mn54_to_Cr54_weaktab)*Y(Mn54) + screened_rates(k_Cr54_to_Mn54_weaktab)*Y(Cr54)) + - (-screened_rates(k_Mn54_to_Fe54_weaktab)*Y(Mn54) + screened_rates(k_Fe54_to_Mn54_weaktab)*Y(Fe54)); + (-screened_rates(k_Mn54_to_Cr54_electron_capture_weaktab)*Y(Mn54) + screened_rates(k_Cr54_to_Mn54_beta_neg_weaktab)*Y(Cr54)) + + (-screened_rates(k_Mn54_to_Fe54_beta_neg_weaktab)*Y(Mn54) + screened_rates(k_Fe54_to_Mn54_electron_capture_weaktab)*Y(Fe54)); ydot_nuc(Mn55) = - (screened_rates(k_Fe55_to_Mn55_weaktab)*Y(Fe55) + -screened_rates(k_Mn55_to_Fe55_weaktab)*Y(Mn55)); + (screened_rates(k_Fe55_to_Mn55_electron_capture_weaktab)*Y(Fe55) + -screened_rates(k_Mn55_to_Fe55_beta_neg_weaktab)*Y(Mn55)); ydot_nuc(Fe52) = - (-screened_rates(k_Fe52_to_Mn52_weaktab)*Y(Fe52) + screened_rates(k_Mn52_to_Fe52_weaktab)*Y(Mn52)); + (-screened_rates(k_Fe52_to_Mn52_electron_capture_weaktab)*Y(Fe52) + screened_rates(k_Mn52_to_Fe52_beta_neg_weaktab)*Y(Mn52)); ydot_nuc(Fe53) = - (screened_rates(k_Co53_to_Fe53_weaktab)*Y(Co53) + -screened_rates(k_Fe53_to_Co53_weaktab)*Y(Fe53)) + - (-screened_rates(k_Fe53_to_Mn53_weaktab)*Y(Fe53) + screened_rates(k_Mn53_to_Fe53_weaktab)*Y(Mn53)); + (screened_rates(k_Co53_to_Fe53_electron_capture_weaktab)*Y(Co53) + -screened_rates(k_Fe53_to_Co53_beta_neg_weaktab)*Y(Fe53)) + + (-screened_rates(k_Fe53_to_Mn53_electron_capture_weaktab)*Y(Fe53) + screened_rates(k_Mn53_to_Fe53_beta_neg_weaktab)*Y(Mn53)); ydot_nuc(Fe54) = - (screened_rates(k_Co54_to_Fe54_weaktab)*Y(Co54) + -screened_rates(k_Fe54_to_Co54_weaktab)*Y(Fe54)) + - (screened_rates(k_Mn54_to_Fe54_weaktab)*Y(Mn54) + -screened_rates(k_Fe54_to_Mn54_weaktab)*Y(Fe54)); + (screened_rates(k_Co54_to_Fe54_electron_capture_weaktab)*Y(Co54) + -screened_rates(k_Fe54_to_Co54_beta_neg_weaktab)*Y(Fe54)) + + (screened_rates(k_Mn54_to_Fe54_beta_neg_weaktab)*Y(Mn54) + -screened_rates(k_Fe54_to_Mn54_electron_capture_weaktab)*Y(Fe54)); ydot_nuc(Fe55) = - (screened_rates(k_Co55_to_Fe55_weaktab)*Y(Co55) + -screened_rates(k_Fe55_to_Co55_weaktab)*Y(Fe55)) + - (-screened_rates(k_Fe55_to_Mn55_weaktab)*Y(Fe55) + screened_rates(k_Mn55_to_Fe55_weaktab)*Y(Mn55)); + (screened_rates(k_Co55_to_Fe55_electron_capture_weaktab)*Y(Co55) + -screened_rates(k_Fe55_to_Co55_beta_neg_weaktab)*Y(Fe55)) + + (-screened_rates(k_Fe55_to_Mn55_electron_capture_weaktab)*Y(Fe55) + screened_rates(k_Mn55_to_Fe55_beta_neg_weaktab)*Y(Mn55)); ydot_nuc(Fe56) = - (screened_rates(k_Co56_to_Fe56_weaktab)*Y(Co56) + -screened_rates(k_Fe56_to_Co56_weaktab)*Y(Fe56)); + (screened_rates(k_Co56_to_Fe56_electron_capture_weaktab)*Y(Co56) + -screened_rates(k_Fe56_to_Co56_beta_neg_weaktab)*Y(Fe56)); ydot_nuc(Fe57) = - (screened_rates(k_Co57_to_Fe57_weaktab)*Y(Co57) + -screened_rates(k_Fe57_to_Co57_weaktab)*Y(Fe57)); + (screened_rates(k_Co57_to_Fe57_electron_capture_weaktab)*Y(Co57) + -screened_rates(k_Fe57_to_Co57_beta_neg_weaktab)*Y(Fe57)); ydot_nuc(Fe58) = - (screened_rates(k_Co58_to_Fe58_weaktab)*Y(Co58) + -screened_rates(k_Fe58_to_Co58_weaktab)*Y(Fe58)); + (screened_rates(k_Co58_to_Fe58_electron_capture_weaktab)*Y(Co58) + -screened_rates(k_Fe58_to_Co58_beta_neg_weaktab)*Y(Fe58)); ydot_nuc(Co53) = - (-screened_rates(k_Co53_to_Fe53_weaktab)*Y(Co53) + screened_rates(k_Fe53_to_Co53_weaktab)*Y(Fe53)); + (-screened_rates(k_Co53_to_Fe53_electron_capture_weaktab)*Y(Co53) + screened_rates(k_Fe53_to_Co53_beta_neg_weaktab)*Y(Fe53)); ydot_nuc(Co54) = - (-screened_rates(k_Co54_to_Fe54_weaktab)*Y(Co54) + screened_rates(k_Fe54_to_Co54_weaktab)*Y(Fe54)); + (-screened_rates(k_Co54_to_Fe54_electron_capture_weaktab)*Y(Co54) + screened_rates(k_Fe54_to_Co54_beta_neg_weaktab)*Y(Fe54)); ydot_nuc(Co55) = - (-screened_rates(k_Co55_to_Fe55_weaktab)*Y(Co55) + screened_rates(k_Fe55_to_Co55_weaktab)*Y(Fe55)); + (-screened_rates(k_Co55_to_Fe55_electron_capture_weaktab)*Y(Co55) + screened_rates(k_Fe55_to_Co55_beta_neg_weaktab)*Y(Fe55)); ydot_nuc(Co56) = - (-screened_rates(k_Co56_to_Fe56_weaktab)*Y(Co56) + screened_rates(k_Fe56_to_Co56_weaktab)*Y(Fe56)) + - (screened_rates(k_Ni56_to_Co56_weaktab)*Y(Ni56) + -screened_rates(k_Co56_to_Ni56_weaktab)*Y(Co56)); + (-screened_rates(k_Co56_to_Fe56_electron_capture_weaktab)*Y(Co56) + screened_rates(k_Fe56_to_Co56_beta_neg_weaktab)*Y(Fe56)) + + (screened_rates(k_Ni56_to_Co56_electron_capture_weaktab)*Y(Ni56) + -screened_rates(k_Co56_to_Ni56_beta_neg_weaktab)*Y(Co56)); ydot_nuc(Co57) = - (-screened_rates(k_Co57_to_Fe57_weaktab)*Y(Co57) + screened_rates(k_Fe57_to_Co57_weaktab)*Y(Fe57)) + - (screened_rates(k_Ni57_to_Co57_weaktab)*Y(Ni57) + -screened_rates(k_Co57_to_Ni57_weaktab)*Y(Co57)); + (-screened_rates(k_Co57_to_Fe57_electron_capture_weaktab)*Y(Co57) + screened_rates(k_Fe57_to_Co57_beta_neg_weaktab)*Y(Fe57)) + + (screened_rates(k_Ni57_to_Co57_electron_capture_weaktab)*Y(Ni57) + -screened_rates(k_Co57_to_Ni57_beta_neg_weaktab)*Y(Co57)); ydot_nuc(Co58) = - (-screened_rates(k_Co58_to_Fe58_weaktab)*Y(Co58) + screened_rates(k_Fe58_to_Co58_weaktab)*Y(Fe58)) + - (-screened_rates(k_Co58_to_Ni58_weaktab)*Y(Co58) + screened_rates(k_Ni58_to_Co58_weaktab)*Y(Ni58)); + (-screened_rates(k_Co58_to_Fe58_electron_capture_weaktab)*Y(Co58) + screened_rates(k_Fe58_to_Co58_beta_neg_weaktab)*Y(Fe58)) + + (-screened_rates(k_Co58_to_Ni58_beta_neg_weaktab)*Y(Co58) + screened_rates(k_Ni58_to_Co58_electron_capture_weaktab)*Y(Ni58)); ydot_nuc(Co59) = - (screened_rates(k_Ni59_to_Co59_weaktab)*Y(Ni59) + -screened_rates(k_Co59_to_Ni59_weaktab)*Y(Co59)); + (screened_rates(k_Ni59_to_Co59_electron_capture_weaktab)*Y(Ni59) + -screened_rates(k_Co59_to_Ni59_beta_neg_weaktab)*Y(Co59)); ydot_nuc(Ni56) = - (-screened_rates(k_Ni56_to_Co56_weaktab)*Y(Ni56) + screened_rates(k_Co56_to_Ni56_weaktab)*Y(Co56)); + (-screened_rates(k_Ni56_to_Co56_electron_capture_weaktab)*Y(Ni56) + screened_rates(k_Co56_to_Ni56_beta_neg_weaktab)*Y(Co56)); ydot_nuc(Ni57) = - (screened_rates(k_Cu57_to_Ni57_weaktab)*Y(Cu57) + -screened_rates(k_Ni57_to_Cu57_weaktab)*Y(Ni57)) + - (-screened_rates(k_Ni57_to_Co57_weaktab)*Y(Ni57) + screened_rates(k_Co57_to_Ni57_weaktab)*Y(Co57)); + (screened_rates(k_Cu57_to_Ni57_electron_capture_weaktab)*Y(Cu57) + -screened_rates(k_Ni57_to_Cu57_beta_neg_weaktab)*Y(Ni57)) + + (-screened_rates(k_Ni57_to_Co57_electron_capture_weaktab)*Y(Ni57) + screened_rates(k_Co57_to_Ni57_beta_neg_weaktab)*Y(Co57)); ydot_nuc(Ni58) = - screened_rates(k_Zn59_to_p_Ni58_reaclib)*Y(Zn59) + - (screened_rates(k_Co58_to_Ni58_weaktab)*Y(Co58) + -screened_rates(k_Ni58_to_Co58_weaktab)*Y(Ni58)) + - (screened_rates(k_Cu58_to_Ni58_weaktab)*Y(Cu58) + -screened_rates(k_Ni58_to_Cu58_weaktab)*Y(Ni58)); + screened_rates(k_Zn59_to_p_Ni58_beta_pos_reaclib)*Y(Zn59) + + (screened_rates(k_Co58_to_Ni58_beta_neg_weaktab)*Y(Co58) + -screened_rates(k_Ni58_to_Co58_electron_capture_weaktab)*Y(Ni58)) + + (screened_rates(k_Cu58_to_Ni58_electron_capture_weaktab)*Y(Cu58) + -screened_rates(k_Ni58_to_Cu58_beta_neg_weaktab)*Y(Ni58)); ydot_nuc(Ni59) = - (screened_rates(k_Cu59_to_Ni59_weaktab)*Y(Cu59) + -screened_rates(k_Ni59_to_Cu59_weaktab)*Y(Ni59)) + - (-screened_rates(k_Ni59_to_Co59_weaktab)*Y(Ni59) + screened_rates(k_Co59_to_Ni59_weaktab)*Y(Co59)); + (screened_rates(k_Cu59_to_Ni59_electron_capture_weaktab)*Y(Cu59) + -screened_rates(k_Ni59_to_Cu59_beta_neg_weaktab)*Y(Ni59)) + + (-screened_rates(k_Ni59_to_Co59_electron_capture_weaktab)*Y(Ni59) + screened_rates(k_Co59_to_Ni59_beta_neg_weaktab)*Y(Co59)); ydot_nuc(Ni60) = - (screened_rates(k_Cu60_to_Ni60_weaktab)*Y(Cu60) + -screened_rates(k_Ni60_to_Cu60_weaktab)*Y(Ni60)); + (screened_rates(k_Cu60_to_Ni60_electron_capture_weaktab)*Y(Cu60) + -screened_rates(k_Ni60_to_Cu60_beta_neg_weaktab)*Y(Ni60)); ydot_nuc(Ni61) = - (screened_rates(k_Cu61_to_Ni61_weaktab)*Y(Cu61) + -screened_rates(k_Ni61_to_Cu61_weaktab)*Y(Ni61)); + (screened_rates(k_Cu61_to_Ni61_electron_capture_weaktab)*Y(Cu61) + -screened_rates(k_Ni61_to_Cu61_beta_neg_weaktab)*Y(Ni61)); ydot_nuc(Ni62) = - (screened_rates(k_Cu62_to_Ni62_weaktab)*Y(Cu62) + -screened_rates(k_Ni62_to_Cu62_weaktab)*Y(Ni62)); + (screened_rates(k_Cu62_to_Ni62_electron_capture_weaktab)*Y(Cu62) + -screened_rates(k_Ni62_to_Cu62_beta_neg_weaktab)*Y(Ni62)); ydot_nuc(Ni63) = - (-screened_rates(k_Ni63_to_Cu63_weaktab)*Y(Ni63) + screened_rates(k_Cu63_to_Ni63_weaktab)*Y(Cu63)); + (-screened_rates(k_Ni63_to_Cu63_beta_neg_weaktab)*Y(Ni63) + screened_rates(k_Cu63_to_Ni63_electron_capture_weaktab)*Y(Cu63)); ydot_nuc(Ni64) = - (screened_rates(k_Cu64_to_Ni64_weaktab)*Y(Cu64) + -screened_rates(k_Ni64_to_Cu64_weaktab)*Y(Ni64)); + (screened_rates(k_Cu64_to_Ni64_electron_capture_weaktab)*Y(Cu64) + -screened_rates(k_Ni64_to_Cu64_beta_neg_weaktab)*Y(Ni64)); ydot_nuc(Cu57) = - (-screened_rates(k_Cu57_to_Ni57_weaktab)*Y(Cu57) + screened_rates(k_Ni57_to_Cu57_weaktab)*Y(Ni57)); + (-screened_rates(k_Cu57_to_Ni57_electron_capture_weaktab)*Y(Cu57) + screened_rates(k_Ni57_to_Cu57_beta_neg_weaktab)*Y(Ni57)); ydot_nuc(Cu58) = - (-screened_rates(k_Cu58_to_Ni58_weaktab)*Y(Cu58) + screened_rates(k_Ni58_to_Cu58_weaktab)*Y(Ni58)); + (-screened_rates(k_Cu58_to_Ni58_electron_capture_weaktab)*Y(Cu58) + screened_rates(k_Ni58_to_Cu58_beta_neg_weaktab)*Y(Ni58)); ydot_nuc(Cu59) = - screened_rates(k_Zn59_to_Cu59_reaclib)*Y(Zn59) + - (-screened_rates(k_Cu59_to_Ni59_weaktab)*Y(Cu59) + screened_rates(k_Ni59_to_Cu59_weaktab)*Y(Ni59)); + screened_rates(k_Zn59_to_Cu59_beta_pos_reaclib)*Y(Zn59) + + (-screened_rates(k_Cu59_to_Ni59_electron_capture_weaktab)*Y(Cu59) + screened_rates(k_Ni59_to_Cu59_beta_neg_weaktab)*Y(Ni59)); ydot_nuc(Cu60) = - (-screened_rates(k_Cu60_to_Ni60_weaktab)*Y(Cu60) + screened_rates(k_Ni60_to_Cu60_weaktab)*Y(Ni60)) + - (screened_rates(k_Zn60_to_Cu60_weaktab)*Y(Zn60) + -screened_rates(k_Cu60_to_Zn60_weaktab)*Y(Cu60)); + (-screened_rates(k_Cu60_to_Ni60_electron_capture_weaktab)*Y(Cu60) + screened_rates(k_Ni60_to_Cu60_beta_neg_weaktab)*Y(Ni60)) + + (screened_rates(k_Zn60_to_Cu60_electron_capture_weaktab)*Y(Zn60) + -screened_rates(k_Cu60_to_Zn60_beta_neg_weaktab)*Y(Cu60)); ydot_nuc(Cu61) = - (-screened_rates(k_Cu61_to_Ni61_weaktab)*Y(Cu61) + screened_rates(k_Ni61_to_Cu61_weaktab)*Y(Ni61)) + - (screened_rates(k_Zn61_to_Cu61_weaktab)*Y(Zn61) + -screened_rates(k_Cu61_to_Zn61_weaktab)*Y(Cu61)); + (-screened_rates(k_Cu61_to_Ni61_electron_capture_weaktab)*Y(Cu61) + screened_rates(k_Ni61_to_Cu61_beta_neg_weaktab)*Y(Ni61)) + + (screened_rates(k_Zn61_to_Cu61_electron_capture_weaktab)*Y(Zn61) + -screened_rates(k_Cu61_to_Zn61_beta_neg_weaktab)*Y(Cu61)); ydot_nuc(Cu62) = - (-screened_rates(k_Cu62_to_Ni62_weaktab)*Y(Cu62) + screened_rates(k_Ni62_to_Cu62_weaktab)*Y(Ni62)) + - (screened_rates(k_Zn62_to_Cu62_weaktab)*Y(Zn62) + -screened_rates(k_Cu62_to_Zn62_weaktab)*Y(Cu62)); + (-screened_rates(k_Cu62_to_Ni62_electron_capture_weaktab)*Y(Cu62) + screened_rates(k_Ni62_to_Cu62_beta_neg_weaktab)*Y(Ni62)) + + (screened_rates(k_Zn62_to_Cu62_electron_capture_weaktab)*Y(Zn62) + -screened_rates(k_Cu62_to_Zn62_beta_neg_weaktab)*Y(Cu62)); ydot_nuc(Cu63) = - (screened_rates(k_Ni63_to_Cu63_weaktab)*Y(Ni63) + -screened_rates(k_Cu63_to_Ni63_weaktab)*Y(Cu63)) + - (screened_rates(k_Zn63_to_Cu63_weaktab)*Y(Zn63) + -screened_rates(k_Cu63_to_Zn63_weaktab)*Y(Cu63)); + (screened_rates(k_Ni63_to_Cu63_beta_neg_weaktab)*Y(Ni63) + -screened_rates(k_Cu63_to_Ni63_electron_capture_weaktab)*Y(Cu63)) + + (screened_rates(k_Zn63_to_Cu63_electron_capture_weaktab)*Y(Zn63) + -screened_rates(k_Cu63_to_Zn63_beta_neg_weaktab)*Y(Cu63)); ydot_nuc(Cu64) = - (-screened_rates(k_Cu64_to_Ni64_weaktab)*Y(Cu64) + screened_rates(k_Ni64_to_Cu64_weaktab)*Y(Ni64)) + - (-screened_rates(k_Cu64_to_Zn64_weaktab)*Y(Cu64) + screened_rates(k_Zn64_to_Cu64_weaktab)*Y(Zn64)); + (-screened_rates(k_Cu64_to_Ni64_electron_capture_weaktab)*Y(Cu64) + screened_rates(k_Ni64_to_Cu64_beta_neg_weaktab)*Y(Ni64)) + + (-screened_rates(k_Cu64_to_Zn64_beta_neg_weaktab)*Y(Cu64) + screened_rates(k_Zn64_to_Cu64_electron_capture_weaktab)*Y(Zn64)); ydot_nuc(Cu65) = - (screened_rates(k_Zn65_to_Cu65_weaktab)*Y(Zn65) + -screened_rates(k_Cu65_to_Zn65_weaktab)*Y(Cu65)); + (screened_rates(k_Zn65_to_Cu65_electron_capture_weaktab)*Y(Zn65) + -screened_rates(k_Cu65_to_Zn65_beta_neg_weaktab)*Y(Cu65)); ydot_nuc(Zn59) = - -screened_rates(k_Zn59_to_Cu59_reaclib)*Y(Zn59) + - -screened_rates(k_Zn59_to_p_Ni58_reaclib)*Y(Zn59); + -screened_rates(k_Zn59_to_Cu59_beta_pos_reaclib)*Y(Zn59) + + -screened_rates(k_Zn59_to_p_Ni58_beta_pos_reaclib)*Y(Zn59); ydot_nuc(Zn60) = - (-screened_rates(k_Zn60_to_Cu60_weaktab)*Y(Zn60) + screened_rates(k_Cu60_to_Zn60_weaktab)*Y(Cu60)); + (-screened_rates(k_Zn60_to_Cu60_electron_capture_weaktab)*Y(Zn60) + screened_rates(k_Cu60_to_Zn60_beta_neg_weaktab)*Y(Cu60)); ydot_nuc(Zn61) = - (-screened_rates(k_Zn61_to_Cu61_weaktab)*Y(Zn61) + screened_rates(k_Cu61_to_Zn61_weaktab)*Y(Cu61)); + (-screened_rates(k_Zn61_to_Cu61_electron_capture_weaktab)*Y(Zn61) + screened_rates(k_Cu61_to_Zn61_beta_neg_weaktab)*Y(Cu61)); ydot_nuc(Zn62) = - (screened_rates(k_Ga62_to_Zn62_weaktab)*Y(Ga62) + -screened_rates(k_Zn62_to_Ga62_weaktab)*Y(Zn62)) + - (-screened_rates(k_Zn62_to_Cu62_weaktab)*Y(Zn62) + screened_rates(k_Cu62_to_Zn62_weaktab)*Y(Cu62)); + (screened_rates(k_Ga62_to_Zn62_electron_capture_weaktab)*Y(Ga62) + -screened_rates(k_Zn62_to_Ga62_beta_neg_weaktab)*Y(Zn62)) + + (-screened_rates(k_Zn62_to_Cu62_electron_capture_weaktab)*Y(Zn62) + screened_rates(k_Cu62_to_Zn62_beta_neg_weaktab)*Y(Cu62)); ydot_nuc(Zn63) = - (screened_rates(k_Ga63_to_Zn63_weaktab)*Y(Ga63) + -screened_rates(k_Zn63_to_Ga63_weaktab)*Y(Zn63)) + - (-screened_rates(k_Zn63_to_Cu63_weaktab)*Y(Zn63) + screened_rates(k_Cu63_to_Zn63_weaktab)*Y(Cu63)); + (screened_rates(k_Ga63_to_Zn63_electron_capture_weaktab)*Y(Ga63) + -screened_rates(k_Zn63_to_Ga63_beta_neg_weaktab)*Y(Zn63)) + + (-screened_rates(k_Zn63_to_Cu63_electron_capture_weaktab)*Y(Zn63) + screened_rates(k_Cu63_to_Zn63_beta_neg_weaktab)*Y(Cu63)); ydot_nuc(Zn64) = - (screened_rates(k_Cu64_to_Zn64_weaktab)*Y(Cu64) + -screened_rates(k_Zn64_to_Cu64_weaktab)*Y(Zn64)) + - (screened_rates(k_Ga64_to_Zn64_weaktab)*Y(Ga64) + -screened_rates(k_Zn64_to_Ga64_weaktab)*Y(Zn64)); + (screened_rates(k_Cu64_to_Zn64_beta_neg_weaktab)*Y(Cu64) + -screened_rates(k_Zn64_to_Cu64_electron_capture_weaktab)*Y(Zn64)) + + (screened_rates(k_Ga64_to_Zn64_electron_capture_weaktab)*Y(Ga64) + -screened_rates(k_Zn64_to_Ga64_beta_neg_weaktab)*Y(Zn64)); ydot_nuc(Zn65) = - (-screened_rates(k_Zn65_to_Cu65_weaktab)*Y(Zn65) + screened_rates(k_Cu65_to_Zn65_weaktab)*Y(Cu65)); + (-screened_rates(k_Zn65_to_Cu65_electron_capture_weaktab)*Y(Zn65) + screened_rates(k_Cu65_to_Zn65_beta_neg_weaktab)*Y(Cu65)); ydot_nuc(Zn66) = 0.0_rt; ydot_nuc(Ga62) = - (-screened_rates(k_Ga62_to_Zn62_weaktab)*Y(Ga62) + screened_rates(k_Zn62_to_Ga62_weaktab)*Y(Zn62)); + (-screened_rates(k_Ga62_to_Zn62_electron_capture_weaktab)*Y(Ga62) + screened_rates(k_Zn62_to_Ga62_beta_neg_weaktab)*Y(Zn62)); ydot_nuc(Ga63) = - screened_rates(k_Ge63_to_Ga63_reaclib)*Y(Ge63) + - (-screened_rates(k_Ga63_to_Zn63_weaktab)*Y(Ga63) + screened_rates(k_Zn63_to_Ga63_weaktab)*Y(Zn63)); + screened_rates(k_Ge63_to_Ga63_beta_pos_reaclib)*Y(Ge63) + + (-screened_rates(k_Ga63_to_Zn63_electron_capture_weaktab)*Y(Ga63) + screened_rates(k_Zn63_to_Ga63_beta_neg_weaktab)*Y(Zn63)); ydot_nuc(Ga64) = - (-screened_rates(k_Ga64_to_Zn64_weaktab)*Y(Ga64) + screened_rates(k_Zn64_to_Ga64_weaktab)*Y(Zn64)) + - (screened_rates(k_Ge64_to_Ga64_weaktab)*Y(Ge64) + -screened_rates(k_Ga64_to_Ge64_weaktab)*Y(Ga64)); + (-screened_rates(k_Ga64_to_Zn64_electron_capture_weaktab)*Y(Ga64) + screened_rates(k_Zn64_to_Ga64_beta_neg_weaktab)*Y(Zn64)) + + (screened_rates(k_Ge64_to_Ga64_electron_capture_weaktab)*Y(Ge64) + -screened_rates(k_Ga64_to_Ge64_beta_neg_weaktab)*Y(Ga64)); ydot_nuc(Ge63) = - -screened_rates(k_Ge63_to_Ga63_reaclib)*Y(Ge63); + -screened_rates(k_Ge63_to_Ga63_beta_pos_reaclib)*Y(Ge63); ydot_nuc(Ge64) = - (-screened_rates(k_Ge64_to_Ga64_weaktab)*Y(Ge64) + screened_rates(k_Ga64_to_Ge64_weaktab)*Y(Ga64)); + (-screened_rates(k_Ge64_to_Ga64_electron_capture_weaktab)*Y(Ge64) + screened_rates(k_Ga64_to_Ge64_beta_neg_weaktab)*Y(Ga64)); enuc_weak = rate_eval.enuc_weak; } @@ -6064,3030 +3872,3029 @@ AMREX_GPU_DEVICE AMREX_INLINE void rhs_nuc(const burn_t& state, amrex::Array1D& ydot_nuc, const amrex::Array1D& Y, - const amrex::Array1D& screened_rates) { + const amrex::Array1D& screened_rates) { using namespace Rates; ydot_nuc(N) = - (-screened_rates(k_n_p_to_d_reaclib)*Y(N)*Y(H1)*state.rho + screened_rates(k_d_to_n_p_reaclib)*Y(H2)) + - (-screened_rates(k_n_He3_to_He4_reaclib)*Y(He3)*Y(N)*state.rho + screened_rates(k_He4_to_n_He3_reaclib)*Y(He4)) + - (-screened_rates(k_n_Li6_to_Li7_reaclib)*Y(Li6)*Y(N)*state.rho + screened_rates(k_Li7_to_n_Li6_reaclib)*Y(Li7)) + - (-screened_rates(k_n_B10_to_B11_reaclib)*Y(B10)*Y(N)*state.rho + screened_rates(k_B11_to_n_B10_reaclib)*Y(B11)) + - (-screened_rates(k_n_C12_to_C13_reaclib)*Y(C12)*Y(N)*state.rho + screened_rates(k_C13_to_n_C12_reaclib)*Y(C13)) + - (-screened_rates(k_n_C13_to_C14_reaclib)*Y(C13)*Y(N)*state.rho + screened_rates(k_C14_to_n_C13_reaclib)*Y(C14)) + - (-screened_rates(k_n_N13_to_N14_reaclib)*Y(N13)*Y(N)*state.rho + screened_rates(k_N14_to_n_N13_reaclib)*Y(N14)) + - (-screened_rates(k_n_N14_to_N15_reaclib)*Y(N14)*Y(N)*state.rho + screened_rates(k_N15_to_n_N14_reaclib)*Y(N15)) + - (-screened_rates(k_n_O14_to_O15_reaclib)*Y(O14)*Y(N)*state.rho + screened_rates(k_O15_to_n_O14_reaclib)*Y(O15)) + - (-screened_rates(k_n_O15_to_O16_reaclib)*Y(O15)*Y(N)*state.rho + screened_rates(k_O16_to_n_O15_reaclib)*Y(O16)) + - (-screened_rates(k_n_O16_to_O17_reaclib)*Y(O16)*Y(N)*state.rho + screened_rates(k_O17_to_n_O16_reaclib)*Y(O17)) + - (-screened_rates(k_n_O17_to_O18_reaclib)*Y(O17)*Y(N)*state.rho + screened_rates(k_O18_to_n_O17_reaclib)*Y(O18)) + - (-screened_rates(k_n_F17_to_F18_reaclib)*Y(F17)*Y(N)*state.rho + screened_rates(k_F18_to_n_F17_reaclib)*Y(F18)) + - (-screened_rates(k_n_F18_to_F19_reaclib)*Y(F18)*Y(N)*state.rho + screened_rates(k_F19_to_n_F18_reaclib)*Y(F19)) + - (-screened_rates(k_n_Ne18_to_Ne19_reaclib)*Y(Ne18)*Y(N)*state.rho + screened_rates(k_Ne19_to_n_Ne18_reaclib)*Y(Ne19)) + - (-screened_rates(k_n_Ne19_to_Ne20_reaclib)*Y(Ne19)*Y(N)*state.rho + screened_rates(k_Ne20_to_n_Ne19_reaclib)*Y(Ne20)) + - (-screened_rates(k_n_Ne20_to_Ne21_reaclib)*Y(Ne20)*Y(N)*state.rho + screened_rates(k_Ne21_to_n_Ne20_reaclib)*Y(Ne21)) + - (-screened_rates(k_n_Ne21_to_Ne22_reaclib)*Y(Ne21)*Y(N)*state.rho + screened_rates(k_Ne22_to_n_Ne21_reaclib)*Y(Ne22)) + - (-screened_rates(k_n_Na21_to_Na22_reaclib)*Y(Na21)*Y(N)*state.rho + screened_rates(k_Na22_to_n_Na21_reaclib)*Y(Na22)) + - (-screened_rates(k_n_Na22_to_Na23_reaclib)*Y(Na22)*Y(N)*state.rho + screened_rates(k_Na23_to_n_Na22_reaclib)*Y(Na23)) + - (-screened_rates(k_n_Mg23_to_Mg24_reaclib)*Y(Mg23)*Y(N)*state.rho + screened_rates(k_Mg24_to_n_Mg23_reaclib)*Y(Mg24)) + - (-screened_rates(k_n_Mg24_to_Mg25_reaclib)*Y(Mg24)*Y(N)*state.rho + screened_rates(k_Mg25_to_n_Mg24_reaclib)*Y(Mg25)) + - (-screened_rates(k_n_Mg25_to_Mg26_reaclib)*Y(Mg25)*Y(N)*state.rho + screened_rates(k_Mg26_to_n_Mg25_reaclib)*Y(Mg26)) + - (-screened_rates(k_n_Al25_to_Al26_reaclib)*Y(Al25)*Y(N)*state.rho + screened_rates(k_Al26_to_n_Al25_reaclib)*Y(Al26)) + - (-screened_rates(k_n_Al26_to_Al27_reaclib)*Y(Al26)*Y(N)*state.rho + screened_rates(k_Al27_to_n_Al26_reaclib)*Y(Al27)) + - (-screened_rates(k_n_Si28_to_Si29_reaclib)*Y(Si28)*Y(N)*state.rho + screened_rates(k_Si29_to_n_Si28_reaclib)*Y(Si29)) + - (-screened_rates(k_n_Si29_to_Si30_reaclib)*Y(Si29)*Y(N)*state.rho + screened_rates(k_Si30_to_n_Si29_reaclib)*Y(Si30)) + - (-screened_rates(k_n_Si30_to_Si31_reaclib)*Y(Si30)*Y(N)*state.rho + screened_rates(k_Si31_to_n_Si30_reaclib)*Y(Si31)) + - (-screened_rates(k_n_Si31_to_Si32_reaclib)*Y(Si31)*Y(N)*state.rho + screened_rates(k_Si32_to_n_Si31_reaclib)*Y(Si32)) + - (-screened_rates(k_n_P29_to_P30_reaclib)*Y(P29)*Y(N)*state.rho + screened_rates(k_P30_to_n_P29_reaclib)*Y(P30)) + - (-screened_rates(k_n_P30_to_P31_reaclib)*Y(P30)*Y(N)*state.rho + screened_rates(k_P31_to_n_P30_reaclib)*Y(P31)) + - (-screened_rates(k_n_P31_to_P32_reaclib)*Y(P31)*Y(N)*state.rho + screened_rates(k_P32_to_n_P31_reaclib)*Y(P32)) + - (-screened_rates(k_n_P32_to_P33_reaclib)*Y(P32)*Y(N)*state.rho + screened_rates(k_P33_to_n_P32_reaclib)*Y(P33)) + - (-screened_rates(k_n_S32_to_S33_reaclib)*Y(S32)*Y(N)*state.rho + screened_rates(k_S33_to_n_S32_reaclib)*Y(S33)) + - (-screened_rates(k_n_S33_to_S34_reaclib)*Y(S33)*Y(N)*state.rho + screened_rates(k_S34_to_n_S33_reaclib)*Y(S34)) + - (-screened_rates(k_n_S34_to_S35_reaclib)*Y(S34)*Y(N)*state.rho + screened_rates(k_S35_to_n_S34_reaclib)*Y(S35)) + - (-screened_rates(k_n_S35_to_S36_reaclib)*Y(S35)*Y(N)*state.rho + screened_rates(k_S36_to_n_S35_reaclib)*Y(S36)) + - (-screened_rates(k_n_Cl33_to_Cl34_reaclib)*Y(Cl33)*Y(N)*state.rho + screened_rates(k_Cl34_to_n_Cl33_reaclib)*Y(Cl34)) + - (-screened_rates(k_n_Cl34_to_Cl35_reaclib)*Y(Cl34)*Y(N)*state.rho + screened_rates(k_Cl35_to_n_Cl34_reaclib)*Y(Cl35)) + - (-screened_rates(k_n_Cl35_to_Cl36_reaclib)*Y(Cl35)*Y(N)*state.rho + screened_rates(k_Cl36_to_n_Cl35_reaclib)*Y(Cl36)) + - (-screened_rates(k_n_Cl36_to_Cl37_reaclib)*Y(Cl36)*Y(N)*state.rho + screened_rates(k_Cl37_to_n_Cl36_reaclib)*Y(Cl37)) + - (-screened_rates(k_n_Ar36_to_Ar37_reaclib)*Y(Ar36)*Y(N)*state.rho + screened_rates(k_Ar37_to_n_Ar36_reaclib)*Y(Ar37)) + - (-screened_rates(k_n_Ar37_to_Ar38_reaclib)*Y(Ar37)*Y(N)*state.rho + screened_rates(k_Ar38_to_n_Ar37_reaclib)*Y(Ar38)) + - (-screened_rates(k_n_Ar38_to_Ar39_reaclib)*Y(Ar38)*Y(N)*state.rho + screened_rates(k_Ar39_to_n_Ar38_reaclib)*Y(Ar39)) + - (-screened_rates(k_n_Ar39_to_Ar40_reaclib)*Y(Ar39)*Y(N)*state.rho + screened_rates(k_Ar40_to_n_Ar39_reaclib)*Y(Ar40)) + - (-screened_rates(k_n_K37_to_K38_reaclib)*Y(K37)*Y(N)*state.rho + screened_rates(k_K38_to_n_K37_reaclib)*Y(K38)) + - (-screened_rates(k_n_K38_to_K39_reaclib)*Y(K38)*Y(N)*state.rho + screened_rates(k_K39_to_n_K38_reaclib)*Y(K39)) + - (-screened_rates(k_n_K39_to_K40_reaclib)*Y(K39)*Y(N)*state.rho + screened_rates(k_K40_to_n_K39_reaclib)*Y(K40)) + - (-screened_rates(k_n_K40_to_K41_reaclib)*Y(K40)*Y(N)*state.rho + screened_rates(k_K41_to_n_K40_reaclib)*Y(K41)) + - (-screened_rates(k_n_Ca40_to_Ca41_reaclib)*Y(Ca40)*Y(N)*state.rho + screened_rates(k_Ca41_to_n_Ca40_reaclib)*Y(Ca41)) + - (-screened_rates(k_n_Ca41_to_Ca42_reaclib)*Y(Ca41)*Y(N)*state.rho + screened_rates(k_Ca42_to_n_Ca41_reaclib)*Y(Ca42)) + - (-screened_rates(k_n_Ca42_to_Ca43_reaclib)*Y(Ca42)*Y(N)*state.rho + screened_rates(k_Ca43_to_n_Ca42_reaclib)*Y(Ca43)) + - (-screened_rates(k_n_Ca43_to_Ca44_reaclib)*Y(Ca43)*Y(N)*state.rho + screened_rates(k_Ca44_to_n_Ca43_reaclib)*Y(Ca44)) + - (-screened_rates(k_n_Ca44_to_Ca45_reaclib)*Y(Ca44)*Y(N)*state.rho + screened_rates(k_Ca45_to_n_Ca44_reaclib)*Y(Ca45)) + - (-screened_rates(k_n_Ca45_to_Ca46_reaclib)*Y(Ca45)*Y(N)*state.rho + screened_rates(k_Ca46_to_n_Ca45_reaclib)*Y(Ca46)) + - (-screened_rates(k_n_Ca46_to_Ca47_reaclib)*Y(Ca46)*Y(N)*state.rho + screened_rates(k_Ca47_to_n_Ca46_reaclib)*Y(Ca47)) + - (-screened_rates(k_n_Ca47_to_Ca48_reaclib)*Y(Ca47)*Y(N)*state.rho + screened_rates(k_Ca48_to_n_Ca47_reaclib)*Y(Ca48)) + - (-screened_rates(k_n_Sc43_to_Sc44_reaclib)*Y(Sc43)*Y(N)*state.rho + screened_rates(k_Sc44_to_n_Sc43_reaclib)*Y(Sc44)) + - (-screened_rates(k_n_Sc44_to_Sc45_reaclib)*Y(Sc44)*Y(N)*state.rho + screened_rates(k_Sc45_to_n_Sc44_reaclib)*Y(Sc45)) + - (-screened_rates(k_n_Sc45_to_Sc46_reaclib)*Y(Sc45)*Y(N)*state.rho + screened_rates(k_Sc46_to_n_Sc45_reaclib)*Y(Sc46)) + - (-screened_rates(k_n_Sc46_to_Sc47_reaclib)*Y(Sc46)*Y(N)*state.rho + screened_rates(k_Sc47_to_n_Sc46_reaclib)*Y(Sc47)) + - (-screened_rates(k_n_Sc47_to_Sc48_reaclib)*Y(Sc47)*Y(N)*state.rho + screened_rates(k_Sc48_to_n_Sc47_reaclib)*Y(Sc48)) + - (-screened_rates(k_n_Sc48_to_Sc49_reaclib)*Y(Sc48)*Y(N)*state.rho + screened_rates(k_Sc49_to_n_Sc48_reaclib)*Y(Sc49)) + - (-screened_rates(k_n_Ti44_to_Ti45_reaclib)*Y(Ti44)*Y(N)*state.rho + screened_rates(k_Ti45_to_n_Ti44_reaclib)*Y(Ti45)) + - (-screened_rates(k_n_Ti45_to_Ti46_reaclib)*Y(Ti45)*Y(N)*state.rho + screened_rates(k_Ti46_to_n_Ti45_reaclib)*Y(Ti46)) + - (-screened_rates(k_n_Ti46_to_Ti47_reaclib)*Y(Ti46)*Y(N)*state.rho + screened_rates(k_Ti47_to_n_Ti46_reaclib)*Y(Ti47)) + - (-screened_rates(k_n_Ti47_to_Ti48_reaclib)*Y(Ti47)*Y(N)*state.rho + screened_rates(k_Ti48_to_n_Ti47_reaclib)*Y(Ti48)) + - (-screened_rates(k_n_Ti48_to_Ti49_reaclib)*Y(Ti48)*Y(N)*state.rho + screened_rates(k_Ti49_to_n_Ti48_reaclib)*Y(Ti49)) + - (-screened_rates(k_n_Ti49_to_Ti50_reaclib)*Y(Ti49)*Y(N)*state.rho + screened_rates(k_Ti50_to_n_Ti49_reaclib)*Y(Ti50)) + - (-screened_rates(k_n_Ti50_to_Ti51_reaclib)*Y(Ti50)*Y(N)*state.rho + screened_rates(k_Ti51_to_n_Ti50_reaclib)*Y(Ti51)) + - (-screened_rates(k_n_V46_to_V47_reaclib)*Y(V46)*Y(N)*state.rho + screened_rates(k_V47_to_n_V46_reaclib)*Y(V47)) + - (-screened_rates(k_n_V47_to_V48_reaclib)*Y(V47)*Y(N)*state.rho + screened_rates(k_V48_to_n_V47_reaclib)*Y(V48)) + - (-screened_rates(k_n_V48_to_V49_reaclib)*Y(V48)*Y(N)*state.rho + screened_rates(k_V49_to_n_V48_reaclib)*Y(V49)) + - (-screened_rates(k_n_V49_to_V50_reaclib)*Y(V49)*Y(N)*state.rho + screened_rates(k_V50_to_n_V49_reaclib)*Y(V50)) + - (-screened_rates(k_n_V50_to_V51_reaclib)*Y(V50)*Y(N)*state.rho + screened_rates(k_V51_to_n_V50_reaclib)*Y(V51)) + - (-screened_rates(k_n_V51_to_V52_reaclib)*Y(V51)*Y(N)*state.rho + screened_rates(k_V52_to_n_V51_reaclib)*Y(V52)) + - (-screened_rates(k_n_Cr48_to_Cr49_reaclib)*Y(Cr48)*Y(N)*state.rho + screened_rates(k_Cr49_to_n_Cr48_reaclib)*Y(Cr49)) + - (-screened_rates(k_n_Cr49_to_Cr50_reaclib)*Y(Cr49)*Y(N)*state.rho + screened_rates(k_Cr50_to_n_Cr49_reaclib)*Y(Cr50)) + - (-screened_rates(k_n_Cr50_to_Cr51_reaclib)*Y(Cr50)*Y(N)*state.rho + screened_rates(k_Cr51_to_n_Cr50_reaclib)*Y(Cr51)) + - (-screened_rates(k_n_Cr51_to_Cr52_reaclib)*Y(Cr51)*Y(N)*state.rho + screened_rates(k_Cr52_to_n_Cr51_reaclib)*Y(Cr52)) + - (-screened_rates(k_n_Cr52_to_Cr53_reaclib)*Y(Cr52)*Y(N)*state.rho + screened_rates(k_Cr53_to_n_Cr52_reaclib)*Y(Cr53)) + - (-screened_rates(k_n_Cr53_to_Cr54_reaclib)*Y(Cr53)*Y(N)*state.rho + screened_rates(k_Cr54_to_n_Cr53_reaclib)*Y(Cr54)) + - (-screened_rates(k_n_Mn50_to_Mn51_reaclib)*Y(Mn50)*Y(N)*state.rho + screened_rates(k_Mn51_to_n_Mn50_reaclib)*Y(Mn51)) + - (-screened_rates(k_n_Mn51_to_Mn52_reaclib)*Y(Mn51)*Y(N)*state.rho + screened_rates(k_Mn52_to_n_Mn51_reaclib)*Y(Mn52)) + - (-screened_rates(k_n_Mn52_to_Mn53_reaclib)*Y(Mn52)*Y(N)*state.rho + screened_rates(k_Mn53_to_n_Mn52_reaclib)*Y(Mn53)) + - (-screened_rates(k_n_Mn53_to_Mn54_reaclib)*Y(Mn53)*Y(N)*state.rho + screened_rates(k_Mn54_to_n_Mn53_reaclib)*Y(Mn54)) + - (-screened_rates(k_n_Mn54_to_Mn55_reaclib)*Y(Mn54)*Y(N)*state.rho + screened_rates(k_Mn55_to_n_Mn54_reaclib)*Y(Mn55)) + - (-screened_rates(k_n_Fe52_to_Fe53_reaclib)*Y(Fe52)*Y(N)*state.rho + screened_rates(k_Fe53_to_n_Fe52_reaclib)*Y(Fe53)) + - (-screened_rates(k_n_Fe53_to_Fe54_reaclib)*Y(Fe53)*Y(N)*state.rho + screened_rates(k_Fe54_to_n_Fe53_reaclib)*Y(Fe54)) + - (-screened_rates(k_n_Fe54_to_Fe55_reaclib)*Y(Fe54)*Y(N)*state.rho + screened_rates(k_Fe55_to_n_Fe54_reaclib)*Y(Fe55)) + - (-screened_rates(k_n_Fe55_to_Fe56_reaclib)*Y(Fe55)*Y(N)*state.rho + screened_rates(k_Fe56_to_n_Fe55_reaclib)*Y(Fe56)) + - (-screened_rates(k_n_Fe56_to_Fe57_reaclib)*Y(Fe56)*Y(N)*state.rho + screened_rates(k_Fe57_to_n_Fe56_reaclib)*Y(Fe57)) + - (-screened_rates(k_n_Fe57_to_Fe58_reaclib)*Y(Fe57)*Y(N)*state.rho + screened_rates(k_Fe58_to_n_Fe57_reaclib)*Y(Fe58)) + - (-screened_rates(k_n_Co53_to_Co54_reaclib)*Y(Co53)*Y(N)*state.rho + screened_rates(k_Co54_to_n_Co53_reaclib)*Y(Co54)) + - (-screened_rates(k_n_Co54_to_Co55_reaclib)*Y(Co54)*Y(N)*state.rho + screened_rates(k_Co55_to_n_Co54_reaclib)*Y(Co55)) + - (-screened_rates(k_n_Co55_to_Co56_reaclib)*Y(Co55)*Y(N)*state.rho + screened_rates(k_Co56_to_n_Co55_reaclib)*Y(Co56)) + - (-screened_rates(k_n_Co56_to_Co57_reaclib)*Y(Co56)*Y(N)*state.rho + screened_rates(k_Co57_to_n_Co56_reaclib)*Y(Co57)) + - (-screened_rates(k_n_Co57_to_Co58_reaclib)*Y(Co57)*Y(N)*state.rho + screened_rates(k_Co58_to_n_Co57_reaclib)*Y(Co58)) + - (-screened_rates(k_n_Co58_to_Co59_reaclib)*Y(Co58)*Y(N)*state.rho + screened_rates(k_Co59_to_n_Co58_reaclib)*Y(Co59)) + - (-screened_rates(k_n_Ni56_to_Ni57_reaclib)*Y(Ni56)*Y(N)*state.rho + screened_rates(k_Ni57_to_n_Ni56_reaclib)*Y(Ni57)) + - (-screened_rates(k_n_Ni57_to_Ni58_reaclib)*Y(Ni57)*Y(N)*state.rho + screened_rates(k_Ni58_to_n_Ni57_reaclib)*Y(Ni58)) + - (-screened_rates(k_n_Ni58_to_Ni59_reaclib)*Y(Ni58)*Y(N)*state.rho + screened_rates(k_Ni59_to_n_Ni58_reaclib)*Y(Ni59)) + - (-screened_rates(k_n_Ni59_to_Ni60_reaclib)*Y(Ni59)*Y(N)*state.rho + screened_rates(k_Ni60_to_n_Ni59_reaclib)*Y(Ni60)) + - (-screened_rates(k_n_Ni60_to_Ni61_reaclib)*Y(Ni60)*Y(N)*state.rho + screened_rates(k_Ni61_to_n_Ni60_reaclib)*Y(Ni61)) + - (-screened_rates(k_n_Ni61_to_Ni62_reaclib)*Y(Ni61)*Y(N)*state.rho + screened_rates(k_Ni62_to_n_Ni61_reaclib)*Y(Ni62)) + - (-screened_rates(k_n_Ni62_to_Ni63_reaclib)*Y(Ni62)*Y(N)*state.rho + screened_rates(k_Ni63_to_n_Ni62_reaclib)*Y(Ni63)) + - (-screened_rates(k_n_Ni63_to_Ni64_reaclib)*Y(Ni63)*Y(N)*state.rho + screened_rates(k_Ni64_to_n_Ni63_reaclib)*Y(Ni64)) + - (-screened_rates(k_n_Cu57_to_Cu58_reaclib)*Y(Cu57)*Y(N)*state.rho + screened_rates(k_Cu58_to_n_Cu57_reaclib)*Y(Cu58)) + - (-screened_rates(k_n_Cu58_to_Cu59_reaclib)*Y(Cu58)*Y(N)*state.rho + screened_rates(k_Cu59_to_n_Cu58_reaclib)*Y(Cu59)) + - (-screened_rates(k_n_Cu59_to_Cu60_reaclib)*Y(Cu59)*Y(N)*state.rho + screened_rates(k_Cu60_to_n_Cu59_reaclib)*Y(Cu60)) + - (-screened_rates(k_n_Cu60_to_Cu61_reaclib)*Y(Cu60)*Y(N)*state.rho + screened_rates(k_Cu61_to_n_Cu60_reaclib)*Y(Cu61)) + - (-screened_rates(k_n_Cu61_to_Cu62_reaclib)*Y(Cu61)*Y(N)*state.rho + screened_rates(k_Cu62_to_n_Cu61_reaclib)*Y(Cu62)) + - (-screened_rates(k_n_Cu62_to_Cu63_reaclib)*Y(Cu62)*Y(N)*state.rho + screened_rates(k_Cu63_to_n_Cu62_reaclib)*Y(Cu63)) + - (-screened_rates(k_n_Cu63_to_Cu64_reaclib)*Y(Cu63)*Y(N)*state.rho + screened_rates(k_Cu64_to_n_Cu63_reaclib)*Y(Cu64)) + - (-screened_rates(k_n_Cu64_to_Cu65_reaclib)*Y(Cu64)*Y(N)*state.rho + screened_rates(k_Cu65_to_n_Cu64_reaclib)*Y(Cu65)) + - (-screened_rates(k_n_Zn59_to_Zn60_reaclib)*Y(Zn59)*Y(N)*state.rho + screened_rates(k_Zn60_to_n_Zn59_reaclib)*Y(Zn60)) + - (-screened_rates(k_n_Zn60_to_Zn61_reaclib)*Y(Zn60)*Y(N)*state.rho + screened_rates(k_Zn61_to_n_Zn60_reaclib)*Y(Zn61)) + - (-screened_rates(k_n_Zn61_to_Zn62_reaclib)*Y(Zn61)*Y(N)*state.rho + screened_rates(k_Zn62_to_n_Zn61_reaclib)*Y(Zn62)) + - (-screened_rates(k_n_Zn62_to_Zn63_reaclib)*Y(Zn62)*Y(N)*state.rho + screened_rates(k_Zn63_to_n_Zn62_reaclib)*Y(Zn63)) + - (-screened_rates(k_n_Zn63_to_Zn64_reaclib)*Y(Zn63)*Y(N)*state.rho + screened_rates(k_Zn64_to_n_Zn63_reaclib)*Y(Zn64)) + - (-screened_rates(k_n_Zn64_to_Zn65_reaclib)*Y(Zn64)*Y(N)*state.rho + screened_rates(k_Zn65_to_n_Zn64_reaclib)*Y(Zn65)) + - (-screened_rates(k_n_Zn65_to_Zn66_reaclib)*Y(Zn65)*Y(N)*state.rho + screened_rates(k_Zn66_to_n_Zn65_reaclib)*Y(Zn66)) + - (-screened_rates(k_n_Ga62_to_Ga63_reaclib)*Y(Ga62)*Y(N)*state.rho + screened_rates(k_Ga63_to_n_Ga62_reaclib)*Y(Ga63)) + - (-screened_rates(k_n_Ga63_to_Ga64_reaclib)*Y(Ga63)*Y(N)*state.rho + screened_rates(k_Ga64_to_n_Ga63_reaclib)*Y(Ga64)) + - (-screened_rates(k_n_Ge63_to_Ge64_reaclib)*Y(Ge63)*Y(N)*state.rho + screened_rates(k_Ge64_to_n_Ge63_reaclib)*Y(Ge64)) + - (0.5*screened_rates(k_d_d_to_n_He3_reaclib)*amrex::Math::powi<2>(Y(H2))*state.rho + -screened_rates(k_n_He3_to_d_d_reaclib)*Y(He3)*Y(N)*state.rho) + - (screened_rates(k_d_Li6_to_n_Be7_reaclib)*Y(Li6)*Y(H2)*state.rho + -screened_rates(k_n_Be7_to_d_Li6_reaclib)*Y(Be7)*Y(N)*state.rho) + - (-screened_rates(k_n_Be7_to_p_Li7_reaclib)*Y(Be7)*Y(N)*state.rho + screened_rates(k_p_Li7_to_n_Be7_reaclib)*Y(Li7)*Y(H1)*state.rho) + - (-screened_rates(k_n_Be7_to_He4_He4_reaclib)*Y(Be7)*Y(N)*state.rho + 0.5*screened_rates(k_He4_He4_to_n_Be7_reaclib)*amrex::Math::powi<2>(Y(He4))*state.rho) + - (screened_rates(k_He4_Be9_to_n_C12_reaclib)*Y(Be9)*Y(He4)*state.rho + -screened_rates(k_n_C12_to_He4_Be9_reaclib)*Y(C12)*Y(N)*state.rho) + - (-screened_rates(k_n_B10_to_He4_Li7_reaclib)*Y(B10)*Y(N)*state.rho + screened_rates(k_He4_Li7_to_n_B10_reaclib)*Y(He4)*Y(Li7)*state.rho) + - (screened_rates(k_He4_B10_to_n_N13_reaclib)*Y(B10)*Y(He4)*state.rho + -screened_rates(k_n_N13_to_He4_B10_reaclib)*Y(N13)*Y(N)*state.rho) + - (screened_rates(k_He4_B11_to_n_N14_reaclib)*Y(B11)*Y(He4)*state.rho + -screened_rates(k_n_N14_to_He4_B11_reaclib)*Y(N14)*Y(N)*state.rho) + - (screened_rates(k_d_C13_to_n_N14_reaclib)*Y(C13)*Y(H2)*state.rho + -screened_rates(k_n_N14_to_d_C13_reaclib)*Y(N14)*Y(N)*state.rho) + - (screened_rates(k_He4_C13_to_n_O16_reaclib)*Y(C13)*Y(He4)*state.rho + -screened_rates(k_n_O16_to_He4_C13_reaclib)*Y(O16)*Y(N)*state.rho) + - (screened_rates(k_d_C14_to_n_N15_reaclib)*Y(C14)*Y(H2)*state.rho + -screened_rates(k_n_N15_to_d_C14_reaclib)*Y(N15)*Y(N)*state.rho) + - (-screened_rates(k_n_N13_to_p_C13_reaclib)*Y(N13)*Y(N)*state.rho + screened_rates(k_p_C13_to_n_N13_reaclib)*Y(C13)*Y(H1)*state.rho) + - (-screened_rates(k_n_N14_to_p_C14_reaclib)*Y(N14)*Y(N)*state.rho + screened_rates(k_p_C14_to_n_N14_reaclib)*Y(C14)*Y(H1)*state.rho) + - (-screened_rates(k_n_O14_to_p_N14_reaclib)*Y(O14)*Y(N)*state.rho + screened_rates(k_p_N14_to_n_O14_reaclib)*Y(N14)*Y(H1)*state.rho) + - (-screened_rates(k_n_O15_to_p_N15_reaclib)*Y(O15)*Y(N)*state.rho + screened_rates(k_p_N15_to_n_O15_reaclib)*Y(N15)*Y(H1)*state.rho) + - (-screened_rates(k_n_O15_to_He4_C12_reaclib)*Y(O15)*Y(N)*state.rho + screened_rates(k_He4_C12_to_n_O15_reaclib)*Y(C12)*Y(He4)*state.rho) + - (-screened_rates(k_n_O17_to_He4_C14_reaclib)*Y(O17)*Y(N)*state.rho + screened_rates(k_He4_C14_to_n_O17_reaclib)*Y(C14)*Y(He4)*state.rho) + - (screened_rates(k_He4_O17_to_n_Ne20_reaclib)*Y(He4)*Y(O17)*state.rho + -screened_rates(k_n_Ne20_to_He4_O17_reaclib)*Y(Ne20)*Y(N)*state.rho) + - (-screened_rates(k_n_F17_to_p_O17_reaclib)*Y(F17)*Y(N)*state.rho + screened_rates(k_p_O17_to_n_F17_reaclib)*Y(O17)*Y(H1)*state.rho) + - (-screened_rates(k_n_F17_to_He4_N14_reaclib)*Y(F17)*Y(N)*state.rho + screened_rates(k_He4_N14_to_n_F17_reaclib)*Y(He4)*Y(N14)*state.rho) + - (-screened_rates(k_n_F18_to_p_O18_reaclib)*Y(F18)*Y(N)*state.rho + screened_rates(k_p_O18_to_n_F18_reaclib)*Y(O18)*Y(H1)*state.rho) + - (-screened_rates(k_n_F18_to_He4_N15_reaclib)*Y(F18)*Y(N)*state.rho + screened_rates(k_He4_N15_to_n_F18_reaclib)*Y(He4)*Y(N15)*state.rho) + - (-screened_rates(k_n_Ne18_to_p_F18_reaclib)*Y(Ne18)*Y(N)*state.rho + screened_rates(k_p_F18_to_n_Ne18_reaclib)*Y(F18)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ne18_to_He4_O15_reaclib)*Y(Ne18)*Y(N)*state.rho + screened_rates(k_He4_O15_to_n_Ne18_reaclib)*Y(He4)*Y(O15)*state.rho) + - (-screened_rates(k_n_Ne19_to_p_F19_reaclib)*Y(Ne19)*Y(N)*state.rho + screened_rates(k_p_F19_to_n_Ne19_reaclib)*Y(F19)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ne19_to_He4_O16_reaclib)*Y(Ne19)*Y(N)*state.rho + screened_rates(k_He4_O16_to_n_Ne19_reaclib)*Y(He4)*Y(O16)*state.rho) + - (-screened_rates(k_n_Ne21_to_He4_O18_reaclib)*Y(Ne21)*Y(N)*state.rho + screened_rates(k_He4_O18_to_n_Ne21_reaclib)*Y(He4)*Y(O18)*state.rho) + - (screened_rates(k_He4_Ne21_to_n_Mg24_reaclib)*Y(He4)*Y(Ne21)*state.rho + -screened_rates(k_n_Mg24_to_He4_Ne21_reaclib)*Y(Mg24)*Y(N)*state.rho) + - (-screened_rates(k_n_Na21_to_p_Ne21_reaclib)*Y(Na21)*Y(N)*state.rho + screened_rates(k_p_Ne21_to_n_Na21_reaclib)*Y(Ne21)*Y(H1)*state.rho) + - (-screened_rates(k_n_Na21_to_He4_F18_reaclib)*Y(Na21)*Y(N)*state.rho + screened_rates(k_He4_F18_to_n_Na21_reaclib)*Y(F18)*Y(He4)*state.rho) + - (-screened_rates(k_n_Na22_to_p_Ne22_reaclib)*Y(Na22)*Y(N)*state.rho + screened_rates(k_p_Ne22_to_n_Na22_reaclib)*Y(Ne22)*Y(H1)*state.rho) + - (-screened_rates(k_n_Na22_to_He4_F19_reaclib)*Y(Na22)*Y(N)*state.rho + screened_rates(k_He4_F19_to_n_Na22_reaclib)*Y(F19)*Y(He4)*state.rho) + - (-screened_rates(k_n_Mg23_to_p_Na23_reaclib)*Y(Mg23)*Y(N)*state.rho + screened_rates(k_p_Na23_to_n_Mg23_reaclib)*Y(Na23)*Y(H1)*state.rho) + - (-screened_rates(k_n_Mg23_to_He4_Ne20_reaclib)*Y(Mg23)*Y(N)*state.rho + screened_rates(k_He4_Ne20_to_n_Mg23_reaclib)*Y(He4)*Y(Ne20)*state.rho) + - (-screened_rates(k_n_Mg23_to_C12_C12_reaclib)*Y(Mg23)*Y(N)*state.rho + 0.5*screened_rates(k_C12_C12_to_n_Mg23_reaclib)*amrex::Math::powi<2>(Y(C12))*state.rho) + - (-screened_rates(k_n_Mg25_to_He4_Ne22_reaclib)*Y(Mg25)*Y(N)*state.rho + screened_rates(k_He4_Ne22_to_n_Mg25_reaclib)*Y(He4)*Y(Ne22)*state.rho) + - (screened_rates(k_He4_Mg25_to_n_Si28_reaclib)*Y(He4)*Y(Mg25)*state.rho + -screened_rates(k_n_Si28_to_He4_Mg25_reaclib)*Y(Si28)*Y(N)*state.rho) + - (screened_rates(k_He4_Mg26_to_n_Si29_reaclib)*Y(He4)*Y(Mg26)*state.rho + -screened_rates(k_n_Si29_to_He4_Mg26_reaclib)*Y(Si29)*Y(N)*state.rho) + - (-screened_rates(k_n_Al25_to_p_Mg25_reaclib)*Y(Al25)*Y(N)*state.rho + screened_rates(k_p_Mg25_to_n_Al25_reaclib)*Y(Mg25)*Y(H1)*state.rho) + - (-screened_rates(k_n_Al25_to_He4_Na22_reaclib)*Y(Al25)*Y(N)*state.rho + screened_rates(k_He4_Na22_to_n_Al25_reaclib)*Y(He4)*Y(Na22)*state.rho) + - (-screened_rates(k_n_Al26_to_p_Mg26_reaclib)*Y(Al26)*Y(N)*state.rho + screened_rates(k_p_Mg26_to_n_Al26_reaclib)*Y(Mg26)*Y(H1)*state.rho) + - (-screened_rates(k_n_Al26_to_He4_Na23_reaclib)*Y(Al26)*Y(N)*state.rho + screened_rates(k_He4_Na23_to_n_Al26_reaclib)*Y(He4)*Y(Na23)*state.rho) + - (screened_rates(k_p_Si31_to_n_P31_reaclib)*Y(Si31)*Y(H1)*state.rho + -screened_rates(k_n_P31_to_p_Si31_reaclib)*Y(P31)*Y(N)*state.rho) + - (screened_rates(k_He4_Si31_to_n_S34_reaclib)*Y(He4)*Y(Si31)*state.rho + -screened_rates(k_n_S34_to_He4_Si31_reaclib)*Y(S34)*Y(N)*state.rho) + - (-screened_rates(k_n_P29_to_p_Si29_reaclib)*Y(P29)*Y(N)*state.rho + screened_rates(k_p_Si29_to_n_P29_reaclib)*Y(Si29)*Y(H1)*state.rho) + - (-screened_rates(k_n_P29_to_He4_Al26_reaclib)*Y(P29)*Y(N)*state.rho + screened_rates(k_He4_Al26_to_n_P29_reaclib)*Y(Al26)*Y(He4)*state.rho) + - (-screened_rates(k_n_P30_to_p_Si30_reaclib)*Y(P30)*Y(N)*state.rho + screened_rates(k_p_Si30_to_n_P30_reaclib)*Y(Si30)*Y(H1)*state.rho) + - (-screened_rates(k_n_P30_to_He4_Al27_reaclib)*Y(P30)*Y(N)*state.rho + screened_rates(k_He4_Al27_to_n_P30_reaclib)*Y(Al27)*Y(He4)*state.rho) + - (-screened_rates(k_n_P32_to_p_Si32_reaclib)*Y(P32)*Y(N)*state.rho + screened_rates(k_p_Si32_to_n_P32_reaclib)*Y(Si32)*Y(H1)*state.rho) + - (screened_rates(k_p_P32_to_n_S32_reaclib)*Y(P32)*Y(H1)*state.rho + -screened_rates(k_n_S32_to_p_P32_reaclib)*Y(S32)*Y(N)*state.rho) + - (-screened_rates(k_n_S32_to_He4_Si29_reaclib)*Y(S32)*Y(N)*state.rho + screened_rates(k_He4_Si29_to_n_S32_reaclib)*Y(He4)*Y(Si29)*state.rho) + - (-screened_rates(k_n_S33_to_p_P33_reaclib)*Y(S33)*Y(N)*state.rho + screened_rates(k_p_P33_to_n_S33_reaclib)*Y(P33)*Y(H1)*state.rho) + - (-screened_rates(k_n_S33_to_He4_Si30_reaclib)*Y(S33)*Y(N)*state.rho + screened_rates(k_He4_Si30_to_n_S33_reaclib)*Y(He4)*Y(Si30)*state.rho) + - (-screened_rates(k_n_S35_to_He4_Si32_reaclib)*Y(S35)*Y(N)*state.rho + screened_rates(k_He4_Si32_to_n_S35_reaclib)*Y(He4)*Y(Si32)*state.rho) + - (screened_rates(k_He4_S35_to_n_Ar38_reaclib)*Y(He4)*Y(S35)*state.rho + -screened_rates(k_n_Ar38_to_He4_S35_reaclib)*Y(Ar38)*Y(N)*state.rho) + - (-screened_rates(k_n_Cl33_to_p_S33_reaclib)*Y(Cl33)*Y(N)*state.rho + screened_rates(k_p_S33_to_n_Cl33_reaclib)*Y(S33)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cl33_to_He4_P30_reaclib)*Y(Cl33)*Y(N)*state.rho + screened_rates(k_He4_P30_to_n_Cl33_reaclib)*Y(He4)*Y(P30)*state.rho) + - (-screened_rates(k_n_Cl34_to_p_S34_reaclib)*Y(Cl34)*Y(N)*state.rho + screened_rates(k_p_S34_to_n_Cl34_reaclib)*Y(S34)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cl34_to_He4_P31_reaclib)*Y(Cl34)*Y(N)*state.rho + screened_rates(k_He4_P31_to_n_Cl34_reaclib)*Y(He4)*Y(P31)*state.rho) + - (-screened_rates(k_n_Cl35_to_p_S35_reaclib)*Y(Cl35)*Y(N)*state.rho + screened_rates(k_p_S35_to_n_Cl35_reaclib)*Y(S35)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cl35_to_He4_P32_reaclib)*Y(Cl35)*Y(N)*state.rho + screened_rates(k_He4_P32_to_n_Cl35_reaclib)*Y(He4)*Y(P32)*state.rho) + - (-screened_rates(k_n_Cl36_to_p_S36_reaclib)*Y(Cl36)*Y(N)*state.rho + screened_rates(k_p_S36_to_n_Cl36_reaclib)*Y(S36)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cl36_to_He4_P33_reaclib)*Y(Cl36)*Y(N)*state.rho + screened_rates(k_He4_P33_to_n_Cl36_reaclib)*Y(He4)*Y(P33)*state.rho) + - (-screened_rates(k_n_Ar36_to_p_Cl36_reaclib)*Y(Ar36)*Y(N)*state.rho + screened_rates(k_p_Cl36_to_n_Ar36_reaclib)*Y(Cl36)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ar36_to_He4_S33_reaclib)*Y(Ar36)*Y(N)*state.rho + screened_rates(k_He4_S33_to_n_Ar36_reaclib)*Y(He4)*Y(S33)*state.rho) + - (-screened_rates(k_n_Ar37_to_p_Cl37_reaclib)*Y(Ar37)*Y(N)*state.rho + screened_rates(k_p_Cl37_to_n_Ar37_reaclib)*Y(Cl37)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ar37_to_He4_S34_reaclib)*Y(Ar37)*Y(N)*state.rho + screened_rates(k_He4_S34_to_n_Ar37_reaclib)*Y(He4)*Y(S34)*state.rho) + - (-screened_rates(k_n_Ar39_to_He4_S36_reaclib)*Y(Ar39)*Y(N)*state.rho + screened_rates(k_He4_S36_to_n_Ar39_reaclib)*Y(He4)*Y(S36)*state.rho) + - (-screened_rates(k_n_K37_to_p_Ar37_reaclib)*Y(K37)*Y(N)*state.rho + screened_rates(k_p_Ar37_to_n_K37_reaclib)*Y(Ar37)*Y(H1)*state.rho) + - (-screened_rates(k_n_K37_to_He4_Cl34_reaclib)*Y(K37)*Y(N)*state.rho + screened_rates(k_He4_Cl34_to_n_K37_reaclib)*Y(Cl34)*Y(He4)*state.rho) + - (-screened_rates(k_n_K38_to_p_Ar38_reaclib)*Y(K38)*Y(N)*state.rho + screened_rates(k_p_Ar38_to_n_K38_reaclib)*Y(Ar38)*Y(H1)*state.rho) + - (-screened_rates(k_n_K38_to_He4_Cl35_reaclib)*Y(K38)*Y(N)*state.rho + screened_rates(k_He4_Cl35_to_n_K38_reaclib)*Y(Cl35)*Y(He4)*state.rho) + - (-screened_rates(k_n_K39_to_p_Ar39_reaclib)*Y(K39)*Y(N)*state.rho + screened_rates(k_p_Ar39_to_n_K39_reaclib)*Y(Ar39)*Y(H1)*state.rho) + - (-screened_rates(k_n_K39_to_He4_Cl36_reaclib)*Y(K39)*Y(N)*state.rho + screened_rates(k_He4_Cl36_to_n_K39_reaclib)*Y(Cl36)*Y(He4)*state.rho) + - (-screened_rates(k_n_K40_to_p_Ar40_reaclib)*Y(K40)*Y(N)*state.rho + screened_rates(k_p_Ar40_to_n_K40_reaclib)*Y(Ar40)*Y(H1)*state.rho) + - (-screened_rates(k_n_K40_to_He4_Cl37_reaclib)*Y(K40)*Y(N)*state.rho + screened_rates(k_He4_Cl37_to_n_K40_reaclib)*Y(Cl37)*Y(He4)*state.rho) + - (screened_rates(k_p_K40_to_n_Ca40_reaclib)*Y(K40)*Y(H1)*state.rho + -screened_rates(k_n_Ca40_to_p_K40_reaclib)*Y(Ca40)*Y(N)*state.rho) + - (-screened_rates(k_n_Ca40_to_He4_Ar37_reaclib)*Y(Ca40)*Y(N)*state.rho + screened_rates(k_He4_Ar37_to_n_Ca40_reaclib)*Y(Ar37)*Y(He4)*state.rho) + - (-screened_rates(k_n_Ca41_to_p_K41_reaclib)*Y(Ca41)*Y(N)*state.rho + screened_rates(k_p_K41_to_n_Ca41_reaclib)*Y(K41)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ca41_to_He4_Ar38_reaclib)*Y(Ca41)*Y(N)*state.rho + screened_rates(k_He4_Ar38_to_n_Ca41_reaclib)*Y(Ar38)*Y(He4)*state.rho) + - (-screened_rates(k_n_Ca42_to_He4_Ar39_reaclib)*Y(Ca42)*Y(N)*state.rho + screened_rates(k_He4_Ar39_to_n_Ca42_reaclib)*Y(Ar39)*Y(He4)*state.rho) + - (-screened_rates(k_n_Ca43_to_He4_Ar40_reaclib)*Y(Ca43)*Y(N)*state.rho + screened_rates(k_He4_Ar40_to_n_Ca43_reaclib)*Y(Ar40)*Y(He4)*state.rho) + - (screened_rates(k_He4_Ca43_to_n_Ti46_reaclib)*Y(Ca43)*Y(He4)*state.rho + -screened_rates(k_n_Ti46_to_He4_Ca43_reaclib)*Y(Ti46)*Y(N)*state.rho) + - (screened_rates(k_He4_Ca45_to_n_Ti48_reaclib)*Y(Ca45)*Y(He4)*state.rho + -screened_rates(k_n_Ti48_to_He4_Ca45_reaclib)*Y(Ti48)*Y(N)*state.rho) + - (screened_rates(k_p_Ca47_to_n_Sc47_reaclib)*Y(Ca47)*Y(H1)*state.rho + -screened_rates(k_n_Sc47_to_p_Ca47_reaclib)*Y(Sc47)*Y(N)*state.rho) + - (screened_rates(k_He4_Ca47_to_n_Ti50_reaclib)*Y(Ca47)*Y(He4)*state.rho + -screened_rates(k_n_Ti50_to_He4_Ca47_reaclib)*Y(Ti50)*Y(N)*state.rho) + - (-screened_rates(k_n_Sc43_to_p_Ca43_reaclib)*Y(Sc43)*Y(N)*state.rho + screened_rates(k_p_Ca43_to_n_Sc43_reaclib)*Y(Ca43)*Y(H1)*state.rho) + - (-screened_rates(k_n_Sc43_to_He4_K40_reaclib)*Y(Sc43)*Y(N)*state.rho + screened_rates(k_He4_K40_to_n_Sc43_reaclib)*Y(He4)*Y(K40)*state.rho) + - (-screened_rates(k_n_Sc44_to_p_Ca44_reaclib)*Y(Sc44)*Y(N)*state.rho + screened_rates(k_p_Ca44_to_n_Sc44_reaclib)*Y(Ca44)*Y(H1)*state.rho) + - (-screened_rates(k_n_Sc44_to_He4_K41_reaclib)*Y(Sc44)*Y(N)*state.rho + screened_rates(k_He4_K41_to_n_Sc44_reaclib)*Y(He4)*Y(K41)*state.rho) + - (-screened_rates(k_n_Sc45_to_p_Ca45_reaclib)*Y(Sc45)*Y(N)*state.rho + screened_rates(k_p_Ca45_to_n_Sc45_reaclib)*Y(Ca45)*Y(H1)*state.rho) + - (-screened_rates(k_n_Sc46_to_p_Ca46_reaclib)*Y(Sc46)*Y(N)*state.rho + screened_rates(k_p_Ca46_to_n_Sc46_reaclib)*Y(Ca46)*Y(H1)*state.rho) + - (screened_rates(k_p_Sc46_to_n_Ti46_reaclib)*Y(Sc46)*Y(H1)*state.rho + -screened_rates(k_n_Ti46_to_p_Sc46_reaclib)*Y(Ti46)*Y(N)*state.rho) + - (screened_rates(k_He4_Sc46_to_n_V49_reaclib)*Y(He4)*Y(Sc46)*state.rho + -screened_rates(k_n_V49_to_He4_Sc46_reaclib)*Y(V49)*Y(N)*state.rho) + - (-screened_rates(k_n_Sc48_to_p_Ca48_reaclib)*Y(Sc48)*Y(N)*state.rho + screened_rates(k_p_Ca48_to_n_Sc48_reaclib)*Y(Ca48)*Y(H1)*state.rho) + - (screened_rates(k_p_Sc48_to_n_Ti48_reaclib)*Y(Sc48)*Y(H1)*state.rho + -screened_rates(k_n_Ti48_to_p_Sc48_reaclib)*Y(Ti48)*Y(N)*state.rho) + - (screened_rates(k_He4_Sc48_to_n_V51_reaclib)*Y(He4)*Y(Sc48)*state.rho + -screened_rates(k_n_V51_to_He4_Sc48_reaclib)*Y(V51)*Y(N)*state.rho) + - (screened_rates(k_p_Sc49_to_n_Ti49_reaclib)*Y(Sc49)*Y(H1)*state.rho + -screened_rates(k_n_Ti49_to_p_Sc49_reaclib)*Y(Ti49)*Y(N)*state.rho) + - (-screened_rates(k_n_Ti44_to_p_Sc44_reaclib)*Y(Ti44)*Y(N)*state.rho + screened_rates(k_p_Sc44_to_n_Ti44_reaclib)*Y(Sc44)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ti44_to_He4_Ca41_reaclib)*Y(Ti44)*Y(N)*state.rho + screened_rates(k_He4_Ca41_to_n_Ti44_reaclib)*Y(Ca41)*Y(He4)*state.rho) + - (-screened_rates(k_n_Ti45_to_p_Sc45_reaclib)*Y(Ti45)*Y(N)*state.rho + screened_rates(k_p_Sc45_to_n_Ti45_reaclib)*Y(Sc45)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ti45_to_He4_Ca42_reaclib)*Y(Ti45)*Y(N)*state.rho + screened_rates(k_He4_Ca42_to_n_Ti45_reaclib)*Y(Ca42)*Y(He4)*state.rho) + - (-screened_rates(k_n_Ti47_to_p_Sc47_reaclib)*Y(Ti47)*Y(N)*state.rho + screened_rates(k_p_Sc47_to_n_Ti47_reaclib)*Y(Sc47)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ti47_to_He4_Ca44_reaclib)*Y(Ti47)*Y(N)*state.rho + screened_rates(k_He4_Ca44_to_n_Ti47_reaclib)*Y(Ca44)*Y(He4)*state.rho) + - (-screened_rates(k_n_Ti49_to_He4_Ca46_reaclib)*Y(Ti49)*Y(N)*state.rho + screened_rates(k_He4_Ca46_to_n_Ti49_reaclib)*Y(Ca46)*Y(He4)*state.rho) + - (screened_rates(k_He4_Ti49_to_n_Cr52_reaclib)*Y(He4)*Y(Ti49)*state.rho + -screened_rates(k_n_Cr52_to_He4_Ti49_reaclib)*Y(Cr52)*Y(N)*state.rho) + - (-screened_rates(k_n_Ti51_to_He4_Ca48_reaclib)*Y(Ti51)*Y(N)*state.rho + screened_rates(k_He4_Ca48_to_n_Ti51_reaclib)*Y(Ca48)*Y(He4)*state.rho) + - (screened_rates(k_p_Ti51_to_n_V51_reaclib)*Y(Ti51)*Y(H1)*state.rho + -screened_rates(k_n_V51_to_p_Ti51_reaclib)*Y(V51)*Y(N)*state.rho) + - (screened_rates(k_He4_Ti51_to_n_Cr54_reaclib)*Y(He4)*Y(Ti51)*state.rho + -screened_rates(k_n_Cr54_to_He4_Ti51_reaclib)*Y(Cr54)*Y(N)*state.rho) + - (-screened_rates(k_n_V46_to_p_Ti46_reaclib)*Y(V46)*Y(N)*state.rho + screened_rates(k_p_Ti46_to_n_V46_reaclib)*Y(Ti46)*Y(H1)*state.rho) + - (-screened_rates(k_n_V46_to_He4_Sc43_reaclib)*Y(V46)*Y(N)*state.rho + screened_rates(k_He4_Sc43_to_n_V46_reaclib)*Y(He4)*Y(Sc43)*state.rho) + - (-screened_rates(k_n_V47_to_p_Ti47_reaclib)*Y(V47)*Y(N)*state.rho + screened_rates(k_p_Ti47_to_n_V47_reaclib)*Y(Ti47)*Y(H1)*state.rho) + - (-screened_rates(k_n_V47_to_He4_Sc44_reaclib)*Y(V47)*Y(N)*state.rho + screened_rates(k_He4_Sc44_to_n_V47_reaclib)*Y(He4)*Y(Sc44)*state.rho) + - (-screened_rates(k_n_V48_to_p_Ti48_reaclib)*Y(V48)*Y(N)*state.rho + screened_rates(k_p_Ti48_to_n_V48_reaclib)*Y(Ti48)*Y(H1)*state.rho) + - (-screened_rates(k_n_V48_to_He4_Sc45_reaclib)*Y(V48)*Y(N)*state.rho + screened_rates(k_He4_Sc45_to_n_V48_reaclib)*Y(He4)*Y(Sc45)*state.rho) + - (-screened_rates(k_n_V49_to_p_Ti49_reaclib)*Y(V49)*Y(N)*state.rho + screened_rates(k_p_Ti49_to_n_V49_reaclib)*Y(Ti49)*Y(H1)*state.rho) + - (-screened_rates(k_n_V50_to_p_Ti50_reaclib)*Y(V50)*Y(N)*state.rho + screened_rates(k_p_Ti50_to_n_V50_reaclib)*Y(Ti50)*Y(H1)*state.rho) + - (-screened_rates(k_n_V50_to_He4_Sc47_reaclib)*Y(V50)*Y(N)*state.rho + screened_rates(k_He4_Sc47_to_n_V50_reaclib)*Y(He4)*Y(Sc47)*state.rho) + - (screened_rates(k_p_V50_to_n_Cr50_reaclib)*Y(V50)*Y(H1)*state.rho + -screened_rates(k_n_Cr50_to_p_V50_reaclib)*Y(Cr50)*Y(N)*state.rho) + - (-screened_rates(k_n_V52_to_He4_Sc49_reaclib)*Y(V52)*Y(N)*state.rho + screened_rates(k_He4_Sc49_to_n_V52_reaclib)*Y(He4)*Y(Sc49)*state.rho) + - (screened_rates(k_p_V52_to_n_Cr52_reaclib)*Y(V52)*Y(H1)*state.rho + -screened_rates(k_n_Cr52_to_p_V52_reaclib)*Y(Cr52)*Y(N)*state.rho) + - (screened_rates(k_He4_V52_to_n_Mn55_reaclib)*Y(He4)*Y(V52)*state.rho + -screened_rates(k_n_Mn55_to_He4_V52_reaclib)*Y(Mn55)*Y(N)*state.rho) + - (-screened_rates(k_n_Cr48_to_p_V48_reaclib)*Y(Cr48)*Y(N)*state.rho + screened_rates(k_p_V48_to_n_Cr48_reaclib)*Y(V48)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cr48_to_He4_Ti45_reaclib)*Y(Cr48)*Y(N)*state.rho + screened_rates(k_He4_Ti45_to_n_Cr48_reaclib)*Y(He4)*Y(Ti45)*state.rho) + - (-screened_rates(k_n_Cr49_to_p_V49_reaclib)*Y(Cr49)*Y(N)*state.rho + screened_rates(k_p_V49_to_n_Cr49_reaclib)*Y(V49)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cr49_to_He4_Ti46_reaclib)*Y(Cr49)*Y(N)*state.rho + screened_rates(k_He4_Ti46_to_n_Cr49_reaclib)*Y(He4)*Y(Ti46)*state.rho) + - (-screened_rates(k_n_Cr50_to_He4_Ti47_reaclib)*Y(Cr50)*Y(N)*state.rho + screened_rates(k_He4_Ti47_to_n_Cr50_reaclib)*Y(He4)*Y(Ti47)*state.rho) + - (-screened_rates(k_n_Cr51_to_p_V51_reaclib)*Y(Cr51)*Y(N)*state.rho + screened_rates(k_p_V51_to_n_Cr51_reaclib)*Y(V51)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cr51_to_He4_Ti48_reaclib)*Y(Cr51)*Y(N)*state.rho + screened_rates(k_He4_Ti48_to_n_Cr51_reaclib)*Y(He4)*Y(Ti48)*state.rho) + - (-screened_rates(k_n_Cr53_to_He4_Ti50_reaclib)*Y(Cr53)*Y(N)*state.rho + screened_rates(k_He4_Ti50_to_n_Cr53_reaclib)*Y(He4)*Y(Ti50)*state.rho) + - (-screened_rates(k_n_Mn50_to_p_Cr50_reaclib)*Y(Mn50)*Y(N)*state.rho + screened_rates(k_p_Cr50_to_n_Mn50_reaclib)*Y(Cr50)*Y(H1)*state.rho) + - (-screened_rates(k_n_Mn50_to_He4_V47_reaclib)*Y(Mn50)*Y(N)*state.rho + screened_rates(k_He4_V47_to_n_Mn50_reaclib)*Y(He4)*Y(V47)*state.rho) + - (-screened_rates(k_n_Mn51_to_p_Cr51_reaclib)*Y(Mn51)*Y(N)*state.rho + screened_rates(k_p_Cr51_to_n_Mn51_reaclib)*Y(Cr51)*Y(H1)*state.rho) + - (-screened_rates(k_n_Mn51_to_He4_V48_reaclib)*Y(Mn51)*Y(N)*state.rho + screened_rates(k_He4_V48_to_n_Mn51_reaclib)*Y(He4)*Y(V48)*state.rho) + - (-screened_rates(k_n_Mn52_to_p_Cr52_reaclib)*Y(Mn52)*Y(N)*state.rho + screened_rates(k_p_Cr52_to_n_Mn52_reaclib)*Y(Cr52)*Y(H1)*state.rho) + - (-screened_rates(k_n_Mn52_to_He4_V49_reaclib)*Y(Mn52)*Y(N)*state.rho + screened_rates(k_He4_V49_to_n_Mn52_reaclib)*Y(He4)*Y(V49)*state.rho) + - (-screened_rates(k_n_Mn53_to_p_Cr53_reaclib)*Y(Mn53)*Y(N)*state.rho + screened_rates(k_p_Cr53_to_n_Mn53_reaclib)*Y(Cr53)*Y(H1)*state.rho) + - (-screened_rates(k_n_Mn53_to_He4_V50_reaclib)*Y(Mn53)*Y(N)*state.rho + screened_rates(k_He4_V50_to_n_Mn53_reaclib)*Y(He4)*Y(V50)*state.rho) + - (-screened_rates(k_n_Mn54_to_p_Cr54_reaclib)*Y(Mn54)*Y(N)*state.rho + screened_rates(k_p_Cr54_to_n_Mn54_reaclib)*Y(Cr54)*Y(H1)*state.rho) + - (-screened_rates(k_n_Mn54_to_He4_V51_reaclib)*Y(Mn54)*Y(N)*state.rho + screened_rates(k_He4_V51_to_n_Mn54_reaclib)*Y(He4)*Y(V51)*state.rho) + - (-screened_rates(k_n_Fe52_to_p_Mn52_reaclib)*Y(Fe52)*Y(N)*state.rho + screened_rates(k_p_Mn52_to_n_Fe52_reaclib)*Y(Mn52)*Y(H1)*state.rho) + - (-screened_rates(k_n_Fe52_to_He4_Cr49_reaclib)*Y(Fe52)*Y(N)*state.rho + screened_rates(k_He4_Cr49_to_n_Fe52_reaclib)*Y(Cr49)*Y(He4)*state.rho) + - (-screened_rates(k_n_Fe53_to_p_Mn53_reaclib)*Y(Fe53)*Y(N)*state.rho + screened_rates(k_p_Mn53_to_n_Fe53_reaclib)*Y(Mn53)*Y(H1)*state.rho) + - (-screened_rates(k_n_Fe53_to_He4_Cr50_reaclib)*Y(Fe53)*Y(N)*state.rho + screened_rates(k_He4_Cr50_to_n_Fe53_reaclib)*Y(Cr50)*Y(He4)*state.rho) + - (-screened_rates(k_n_Fe54_to_p_Mn54_reaclib)*Y(Fe54)*Y(N)*state.rho + screened_rates(k_p_Mn54_to_n_Fe54_reaclib)*Y(Mn54)*Y(H1)*state.rho) + - (-screened_rates(k_n_Fe54_to_He4_Cr51_reaclib)*Y(Fe54)*Y(N)*state.rho + screened_rates(k_He4_Cr51_to_n_Fe54_reaclib)*Y(Cr51)*Y(He4)*state.rho) + - (-screened_rates(k_n_Fe55_to_p_Mn55_reaclib)*Y(Fe55)*Y(N)*state.rho + screened_rates(k_p_Mn55_to_n_Fe55_reaclib)*Y(Mn55)*Y(H1)*state.rho) + - (-screened_rates(k_n_Fe55_to_He4_Cr52_reaclib)*Y(Fe55)*Y(N)*state.rho + screened_rates(k_He4_Cr52_to_n_Fe55_reaclib)*Y(Cr52)*Y(He4)*state.rho) + - (-screened_rates(k_n_Fe56_to_He4_Cr53_reaclib)*Y(Fe56)*Y(N)*state.rho + screened_rates(k_He4_Cr53_to_n_Fe56_reaclib)*Y(Cr53)*Y(He4)*state.rho) + - (-screened_rates(k_n_Fe57_to_He4_Cr54_reaclib)*Y(Fe57)*Y(N)*state.rho + screened_rates(k_He4_Cr54_to_n_Fe57_reaclib)*Y(Cr54)*Y(He4)*state.rho) + - (-screened_rates(k_n_Co53_to_p_Fe53_reaclib)*Y(Co53)*Y(N)*state.rho + screened_rates(k_p_Fe53_to_n_Co53_reaclib)*Y(Fe53)*Y(H1)*state.rho) + - (-screened_rates(k_n_Co53_to_He4_Mn50_reaclib)*Y(Co53)*Y(N)*state.rho + screened_rates(k_He4_Mn50_to_n_Co53_reaclib)*Y(He4)*Y(Mn50)*state.rho) + - (-screened_rates(k_n_Co54_to_p_Fe54_reaclib)*Y(Co54)*Y(N)*state.rho + screened_rates(k_p_Fe54_to_n_Co54_reaclib)*Y(Fe54)*Y(H1)*state.rho) + - (-screened_rates(k_n_Co54_to_He4_Mn51_reaclib)*Y(Co54)*Y(N)*state.rho + screened_rates(k_He4_Mn51_to_n_Co54_reaclib)*Y(He4)*Y(Mn51)*state.rho) + - (-screened_rates(k_n_Co55_to_p_Fe55_reaclib)*Y(Co55)*Y(N)*state.rho + screened_rates(k_p_Fe55_to_n_Co55_reaclib)*Y(Fe55)*Y(H1)*state.rho) + - (-screened_rates(k_n_Co55_to_He4_Mn52_reaclib)*Y(Co55)*Y(N)*state.rho + screened_rates(k_He4_Mn52_to_n_Co55_reaclib)*Y(He4)*Y(Mn52)*state.rho) + - (-screened_rates(k_n_Co56_to_p_Fe56_reaclib)*Y(Co56)*Y(N)*state.rho + screened_rates(k_p_Fe56_to_n_Co56_reaclib)*Y(Fe56)*Y(H1)*state.rho) + - (-screened_rates(k_n_Co56_to_He4_Mn53_reaclib)*Y(Co56)*Y(N)*state.rho + screened_rates(k_He4_Mn53_to_n_Co56_reaclib)*Y(He4)*Y(Mn53)*state.rho) + - (-screened_rates(k_n_Co57_to_p_Fe57_reaclib)*Y(Co57)*Y(N)*state.rho + screened_rates(k_p_Fe57_to_n_Co57_reaclib)*Y(Fe57)*Y(H1)*state.rho) + - (-screened_rates(k_n_Co57_to_He4_Mn54_reaclib)*Y(Co57)*Y(N)*state.rho + screened_rates(k_He4_Mn54_to_n_Co57_reaclib)*Y(He4)*Y(Mn54)*state.rho) + - (-screened_rates(k_n_Co58_to_p_Fe58_reaclib)*Y(Co58)*Y(N)*state.rho + screened_rates(k_p_Fe58_to_n_Co58_reaclib)*Y(Fe58)*Y(H1)*state.rho) + - (-screened_rates(k_n_Co58_to_He4_Mn55_reaclib)*Y(Co58)*Y(N)*state.rho + screened_rates(k_He4_Mn55_to_n_Co58_reaclib)*Y(He4)*Y(Mn55)*state.rho) + - (-screened_rates(k_n_Ni56_to_p_Co56_reaclib)*Y(Ni56)*Y(N)*state.rho + screened_rates(k_p_Co56_to_n_Ni56_reaclib)*Y(Co56)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ni56_to_He4_Fe53_reaclib)*Y(Ni56)*Y(N)*state.rho + screened_rates(k_He4_Fe53_to_n_Ni56_reaclib)*Y(Fe53)*Y(He4)*state.rho) + - (-screened_rates(k_n_Ni57_to_p_Co57_reaclib)*Y(Ni57)*Y(N)*state.rho + screened_rates(k_p_Co57_to_n_Ni57_reaclib)*Y(Co57)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ni57_to_He4_Fe54_reaclib)*Y(Ni57)*Y(N)*state.rho + screened_rates(k_He4_Fe54_to_n_Ni57_reaclib)*Y(Fe54)*Y(He4)*state.rho) + - (-screened_rates(k_n_Ni58_to_p_Co58_reaclib)*Y(Ni58)*Y(N)*state.rho + screened_rates(k_p_Co58_to_n_Ni58_reaclib)*Y(Co58)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ni58_to_He4_Fe55_reaclib)*Y(Ni58)*Y(N)*state.rho + screened_rates(k_He4_Fe55_to_n_Ni58_reaclib)*Y(Fe55)*Y(He4)*state.rho) + - (-screened_rates(k_n_Ni59_to_p_Co59_reaclib)*Y(Ni59)*Y(N)*state.rho + screened_rates(k_p_Co59_to_n_Ni59_reaclib)*Y(Co59)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ni59_to_He4_Fe56_reaclib)*Y(Ni59)*Y(N)*state.rho + screened_rates(k_He4_Fe56_to_n_Ni59_reaclib)*Y(Fe56)*Y(He4)*state.rho) + - (-screened_rates(k_n_Ni60_to_He4_Fe57_reaclib)*Y(Ni60)*Y(N)*state.rho + screened_rates(k_He4_Fe57_to_n_Ni60_reaclib)*Y(Fe57)*Y(He4)*state.rho) + - (-screened_rates(k_n_Ni61_to_He4_Fe58_reaclib)*Y(Ni61)*Y(N)*state.rho + screened_rates(k_He4_Fe58_to_n_Ni61_reaclib)*Y(Fe58)*Y(He4)*state.rho) + - (-screened_rates(k_n_Cu57_to_p_Ni57_reaclib)*Y(Cu57)*Y(N)*state.rho + screened_rates(k_p_Ni57_to_n_Cu57_reaclib)*Y(Ni57)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cu57_to_He4_Co54_reaclib)*Y(Cu57)*Y(N)*state.rho + screened_rates(k_He4_Co54_to_n_Cu57_reaclib)*Y(Co54)*Y(He4)*state.rho) + - (-screened_rates(k_n_Cu58_to_p_Ni58_reaclib)*Y(Cu58)*Y(N)*state.rho + screened_rates(k_p_Ni58_to_n_Cu58_reaclib)*Y(Ni58)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cu58_to_He4_Co55_reaclib)*Y(Cu58)*Y(N)*state.rho + screened_rates(k_He4_Co55_to_n_Cu58_reaclib)*Y(Co55)*Y(He4)*state.rho) + - (-screened_rates(k_n_Cu59_to_p_Ni59_reaclib)*Y(Cu59)*Y(N)*state.rho + screened_rates(k_p_Ni59_to_n_Cu59_reaclib)*Y(Ni59)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cu59_to_He4_Co56_reaclib)*Y(Cu59)*Y(N)*state.rho + screened_rates(k_He4_Co56_to_n_Cu59_reaclib)*Y(Co56)*Y(He4)*state.rho) + - (-screened_rates(k_n_Cu60_to_p_Ni60_reaclib)*Y(Cu60)*Y(N)*state.rho + screened_rates(k_p_Ni60_to_n_Cu60_reaclib)*Y(Ni60)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cu60_to_He4_Co57_reaclib)*Y(Cu60)*Y(N)*state.rho + screened_rates(k_He4_Co57_to_n_Cu60_reaclib)*Y(Co57)*Y(He4)*state.rho) + - (-screened_rates(k_n_Cu61_to_p_Ni61_reaclib)*Y(Cu61)*Y(N)*state.rho + screened_rates(k_p_Ni61_to_n_Cu61_reaclib)*Y(Ni61)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cu61_to_He4_Co58_reaclib)*Y(Cu61)*Y(N)*state.rho + screened_rates(k_He4_Co58_to_n_Cu61_reaclib)*Y(Co58)*Y(He4)*state.rho) + - (-screened_rates(k_n_Cu62_to_p_Ni62_reaclib)*Y(Cu62)*Y(N)*state.rho + screened_rates(k_p_Ni62_to_n_Cu62_reaclib)*Y(Ni62)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cu62_to_He4_Co59_reaclib)*Y(Cu62)*Y(N)*state.rho + screened_rates(k_He4_Co59_to_n_Cu62_reaclib)*Y(Co59)*Y(He4)*state.rho) + - (-screened_rates(k_n_Cu63_to_p_Ni63_reaclib)*Y(Cu63)*Y(N)*state.rho + screened_rates(k_p_Ni63_to_n_Cu63_reaclib)*Y(Ni63)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cu64_to_p_Ni64_reaclib)*Y(Cu64)*Y(N)*state.rho + screened_rates(k_p_Ni64_to_n_Cu64_reaclib)*Y(Ni64)*Y(H1)*state.rho) + - (-screened_rates(k_n_Zn59_to_p_Cu59_reaclib)*Y(Zn59)*Y(N)*state.rho + screened_rates(k_p_Cu59_to_n_Zn59_reaclib)*Y(Cu59)*Y(H1)*state.rho) + - (-screened_rates(k_n_Zn59_to_He4_Ni56_reaclib)*Y(Zn59)*Y(N)*state.rho + screened_rates(k_He4_Ni56_to_n_Zn59_reaclib)*Y(He4)*Y(Ni56)*state.rho) + - (-screened_rates(k_n_Zn60_to_p_Cu60_reaclib)*Y(Zn60)*Y(N)*state.rho + screened_rates(k_p_Cu60_to_n_Zn60_reaclib)*Y(Cu60)*Y(H1)*state.rho) + - (-screened_rates(k_n_Zn60_to_He4_Ni57_reaclib)*Y(Zn60)*Y(N)*state.rho + screened_rates(k_He4_Ni57_to_n_Zn60_reaclib)*Y(He4)*Y(Ni57)*state.rho) + - (-screened_rates(k_n_Zn61_to_p_Cu61_reaclib)*Y(Zn61)*Y(N)*state.rho + screened_rates(k_p_Cu61_to_n_Zn61_reaclib)*Y(Cu61)*Y(H1)*state.rho) + - (-screened_rates(k_n_Zn61_to_He4_Ni58_reaclib)*Y(Zn61)*Y(N)*state.rho + screened_rates(k_He4_Ni58_to_n_Zn61_reaclib)*Y(He4)*Y(Ni58)*state.rho) + - (-screened_rates(k_n_Zn62_to_p_Cu62_reaclib)*Y(Zn62)*Y(N)*state.rho + screened_rates(k_p_Cu62_to_n_Zn62_reaclib)*Y(Cu62)*Y(H1)*state.rho) + - (-screened_rates(k_n_Zn62_to_He4_Ni59_reaclib)*Y(Zn62)*Y(N)*state.rho + screened_rates(k_He4_Ni59_to_n_Zn62_reaclib)*Y(He4)*Y(Ni59)*state.rho) + - (-screened_rates(k_n_Zn63_to_p_Cu63_reaclib)*Y(Zn63)*Y(N)*state.rho + screened_rates(k_p_Cu63_to_n_Zn63_reaclib)*Y(Cu63)*Y(H1)*state.rho) + - (-screened_rates(k_n_Zn63_to_He4_Ni60_reaclib)*Y(Zn63)*Y(N)*state.rho + screened_rates(k_He4_Ni60_to_n_Zn63_reaclib)*Y(He4)*Y(Ni60)*state.rho) + - (-screened_rates(k_n_Zn64_to_p_Cu64_reaclib)*Y(Zn64)*Y(N)*state.rho + screened_rates(k_p_Cu64_to_n_Zn64_reaclib)*Y(Cu64)*Y(H1)*state.rho) + - (-screened_rates(k_n_Zn64_to_He4_Ni61_reaclib)*Y(Zn64)*Y(N)*state.rho + screened_rates(k_He4_Ni61_to_n_Zn64_reaclib)*Y(He4)*Y(Ni61)*state.rho) + - (-screened_rates(k_n_Zn65_to_p_Cu65_reaclib)*Y(Zn65)*Y(N)*state.rho + screened_rates(k_p_Cu65_to_n_Zn65_reaclib)*Y(Cu65)*Y(H1)*state.rho) + - (-screened_rates(k_n_Zn65_to_He4_Ni62_reaclib)*Y(Zn65)*Y(N)*state.rho + screened_rates(k_He4_Ni62_to_n_Zn65_reaclib)*Y(He4)*Y(Ni62)*state.rho) + - (-screened_rates(k_n_Zn66_to_He4_Ni63_reaclib)*Y(Zn66)*Y(N)*state.rho + screened_rates(k_He4_Ni63_to_n_Zn66_reaclib)*Y(He4)*Y(Ni63)*state.rho) + - (-screened_rates(k_n_Ga62_to_p_Zn62_reaclib)*Y(Ga62)*Y(N)*state.rho + screened_rates(k_p_Zn62_to_n_Ga62_reaclib)*Y(Zn62)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ga62_to_He4_Cu59_reaclib)*Y(Ga62)*Y(N)*state.rho + screened_rates(k_He4_Cu59_to_n_Ga62_reaclib)*Y(Cu59)*Y(He4)*state.rho) + - (-screened_rates(k_n_Ga63_to_p_Zn63_reaclib)*Y(Ga63)*Y(N)*state.rho + screened_rates(k_p_Zn63_to_n_Ga63_reaclib)*Y(Zn63)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ga63_to_He4_Cu60_reaclib)*Y(Ga63)*Y(N)*state.rho + screened_rates(k_He4_Cu60_to_n_Ga63_reaclib)*Y(Cu60)*Y(He4)*state.rho) + - (-screened_rates(k_n_Ga64_to_p_Zn64_reaclib)*Y(Ga64)*Y(N)*state.rho + screened_rates(k_p_Zn64_to_n_Ga64_reaclib)*Y(Zn64)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ga64_to_He4_Cu61_reaclib)*Y(Ga64)*Y(N)*state.rho + screened_rates(k_He4_Cu61_to_n_Ga64_reaclib)*Y(Cu61)*Y(He4)*state.rho) + - (-screened_rates(k_n_Ge63_to_p_Ga63_reaclib)*Y(Ge63)*Y(N)*state.rho + screened_rates(k_p_Ga63_to_n_Ge63_reaclib)*Y(Ga63)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ge63_to_He4_Zn60_reaclib)*Y(Ge63)*Y(N)*state.rho + screened_rates(k_He4_Zn60_to_n_Ge63_reaclib)*Y(He4)*Y(Zn60)*state.rho) + - (-screened_rates(k_n_Ge64_to_p_Ga64_reaclib)*Y(Ge64)*Y(N)*state.rho + screened_rates(k_p_Ga64_to_n_Ge64_reaclib)*Y(Ga64)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ge64_to_He4_Zn61_reaclib)*Y(Ge64)*Y(N)*state.rho + screened_rates(k_He4_Zn61_to_n_Ge64_reaclib)*Y(He4)*Y(Zn61)*state.rho) + - (screened_rates(k_d_Li7_to_n_He4_He4_reaclib)*Y(Li7)*Y(H2)*state.rho + -0.5*screened_rates(k_n_He4_He4_to_d_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<2>(state.rho)) + - (-screened_rates(k_n_B8_to_p_He4_He4_reaclib)*Y(B8)*Y(N)*state.rho + 0.5*screened_rates(k_p_He4_He4_to_n_B8_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<2>(state.rho)) + - (screened_rates(k_He3_Li7_to_n_p_He4_He4_reaclib)*Y(He3)*Y(Li7)*state.rho + -0.5*screened_rates(k_n_p_He4_He4_to_He3_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho)) + - (-screened_rates(k_n_p_He4_to_Li6_reaclib)*Y(He4)*Y(N)*Y(H1)*amrex::Math::powi<2>(state.rho) + screened_rates(k_Li6_to_n_p_He4_reaclib)*Y(Li6)) + - (-0.5*screened_rates(k_n_He4_He4_to_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<2>(state.rho) + screened_rates(k_Be9_to_n_He4_He4_reaclib)*Y(Be9)) + - (-0.5*screened_rates(k_n_p_p_to_p_d_reaclib)*Y(N)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho) + screened_rates(k_p_d_to_n_p_p_reaclib)*Y(H2)*Y(H1)*state.rho) + - (-0.5*screened_rates(k_n_p_He4_He4_to_p_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho) + screened_rates(k_p_Be9_to_n_p_He4_He4_reaclib)*Y(Be9)*Y(H1)*state.rho) + - (-screened_rates(k_n_to_p_weaktab)*Y(N) + screened_rates(k_p_to_n_weaktab)*Y(H1)); + (-screened_rates(k_p_n_to_d_reaclib)*Y(N)*Y(H1)*state.rho + screened_rates(k_d_to_n_p_derived)*Y(H2)) + + (-screened_rates(k_He3_n_to_He4_reaclib)*Y(He3)*Y(N)*state.rho + screened_rates(k_He4_to_n_He3_derived)*Y(He4)) + + (-screened_rates(k_Li6_n_to_Li7_reaclib)*Y(Li6)*Y(N)*state.rho + screened_rates(k_Li7_to_n_Li6_derived)*Y(Li7)) + + (-screened_rates(k_B10_n_to_B11_reaclib)*Y(B10)*Y(N)*state.rho + screened_rates(k_B11_to_n_B10_derived)*Y(B11)) + + (-screened_rates(k_C12_n_to_C13_reaclib)*Y(C12)*Y(N)*state.rho + screened_rates(k_C13_to_n_C12_derived)*Y(C13)) + + (-screened_rates(k_C13_n_to_C14_reaclib)*Y(C13)*Y(N)*state.rho + screened_rates(k_C14_to_n_C13_derived)*Y(C14)) + + (-screened_rates(k_N13_n_to_N14_reaclib)*Y(N13)*Y(N)*state.rho + screened_rates(k_N14_to_n_N13_derived)*Y(N14)) + + (-screened_rates(k_N14_n_to_N15_reaclib)*Y(N14)*Y(N)*state.rho + screened_rates(k_N15_to_n_N14_derived)*Y(N15)) + + (-screened_rates(k_O14_n_to_O15_reaclib)*Y(O14)*Y(N)*state.rho + screened_rates(k_O15_to_n_O14_derived)*Y(O15)) + + (-screened_rates(k_O15_n_to_O16_reaclib)*Y(O15)*Y(N)*state.rho + screened_rates(k_O16_to_n_O15_derived)*Y(O16)) + + (-screened_rates(k_O16_n_to_O17_reaclib)*Y(O16)*Y(N)*state.rho + screened_rates(k_O17_to_n_O16_derived)*Y(O17)) + + (-screened_rates(k_O17_n_to_O18_reaclib)*Y(O17)*Y(N)*state.rho + screened_rates(k_O18_to_n_O17_derived)*Y(O18)) + + (-screened_rates(k_F17_n_to_F18_reaclib)*Y(F17)*Y(N)*state.rho + screened_rates(k_F18_to_n_F17_derived)*Y(F18)) + + (-screened_rates(k_F18_n_to_F19_reaclib)*Y(F18)*Y(N)*state.rho + screened_rates(k_F19_to_n_F18_derived)*Y(F19)) + + (-screened_rates(k_Ne18_n_to_Ne19_reaclib)*Y(Ne18)*Y(N)*state.rho + screened_rates(k_Ne19_to_n_Ne18_derived)*Y(Ne19)) + + (-screened_rates(k_Ne19_n_to_Ne20_reaclib)*Y(Ne19)*Y(N)*state.rho + screened_rates(k_Ne20_to_n_Ne19_derived)*Y(Ne20)) + + (-screened_rates(k_Ne20_n_to_Ne21_reaclib)*Y(Ne20)*Y(N)*state.rho + screened_rates(k_Ne21_to_n_Ne20_derived)*Y(Ne21)) + + (-screened_rates(k_Ne21_n_to_Ne22_reaclib)*Y(Ne21)*Y(N)*state.rho + screened_rates(k_Ne22_to_n_Ne21_derived)*Y(Ne22)) + + (-screened_rates(k_Na21_n_to_Na22_reaclib)*Y(Na21)*Y(N)*state.rho + screened_rates(k_Na22_to_n_Na21_derived)*Y(Na22)) + + (-screened_rates(k_Na22_n_to_Na23_reaclib)*Y(Na22)*Y(N)*state.rho + screened_rates(k_Na23_to_n_Na22_derived)*Y(Na23)) + + (-screened_rates(k_Mg23_n_to_Mg24_reaclib)*Y(Mg23)*Y(N)*state.rho + screened_rates(k_Mg24_to_n_Mg23_derived)*Y(Mg24)) + + (-screened_rates(k_Mg24_n_to_Mg25_reaclib)*Y(Mg24)*Y(N)*state.rho + screened_rates(k_Mg25_to_n_Mg24_derived)*Y(Mg25)) + + (-screened_rates(k_Mg25_n_to_Mg26_reaclib)*Y(Mg25)*Y(N)*state.rho + screened_rates(k_Mg26_to_n_Mg25_derived)*Y(Mg26)) + + (-screened_rates(k_Al25_n_to_Al26_reaclib)*Y(Al25)*Y(N)*state.rho + screened_rates(k_Al26_to_n_Al25_derived)*Y(Al26)) + + (-screened_rates(k_Al26_n_to_Al27_reaclib)*Y(Al26)*Y(N)*state.rho + screened_rates(k_Al27_to_n_Al26_derived)*Y(Al27)) + + (-screened_rates(k_Si28_n_to_Si29_reaclib)*Y(Si28)*Y(N)*state.rho + screened_rates(k_Si29_to_n_Si28_derived)*Y(Si29)) + + (-screened_rates(k_Si29_n_to_Si30_reaclib)*Y(Si29)*Y(N)*state.rho + screened_rates(k_Si30_to_n_Si29_derived)*Y(Si30)) + + (-screened_rates(k_Si30_n_to_Si31_reaclib)*Y(Si30)*Y(N)*state.rho + screened_rates(k_Si31_to_n_Si30_derived)*Y(Si31)) + + (-screened_rates(k_Si31_n_to_Si32_reaclib)*Y(Si31)*Y(N)*state.rho + screened_rates(k_Si32_to_n_Si31_derived)*Y(Si32)) + + (-screened_rates(k_P29_n_to_P30_reaclib)*Y(P29)*Y(N)*state.rho + screened_rates(k_P30_to_n_P29_derived)*Y(P30)) + + (-screened_rates(k_P30_n_to_P31_reaclib)*Y(P30)*Y(N)*state.rho + screened_rates(k_P31_to_n_P30_derived)*Y(P31)) + + (-screened_rates(k_P31_n_to_P32_reaclib)*Y(P31)*Y(N)*state.rho + screened_rates(k_P32_to_n_P31_derived)*Y(P32)) + + (-screened_rates(k_P32_n_to_P33_reaclib)*Y(P32)*Y(N)*state.rho + screened_rates(k_P33_to_n_P32_derived)*Y(P33)) + + (-screened_rates(k_S32_n_to_S33_reaclib)*Y(S32)*Y(N)*state.rho + screened_rates(k_S33_to_n_S32_derived)*Y(S33)) + + (-screened_rates(k_S33_n_to_S34_reaclib)*Y(S33)*Y(N)*state.rho + screened_rates(k_S34_to_n_S33_derived)*Y(S34)) + + (-screened_rates(k_S34_n_to_S35_reaclib)*Y(S34)*Y(N)*state.rho + screened_rates(k_S35_to_n_S34_derived)*Y(S35)) + + (-screened_rates(k_S35_n_to_S36_reaclib)*Y(S35)*Y(N)*state.rho + screened_rates(k_S36_to_n_S35_derived)*Y(S36)) + + (-screened_rates(k_Cl33_n_to_Cl34_reaclib)*Y(Cl33)*Y(N)*state.rho + screened_rates(k_Cl34_to_n_Cl33_derived)*Y(Cl34)) + + (-screened_rates(k_Cl34_n_to_Cl35_reaclib)*Y(Cl34)*Y(N)*state.rho + screened_rates(k_Cl35_to_n_Cl34_derived)*Y(Cl35)) + + (-screened_rates(k_Cl35_n_to_Cl36_reaclib)*Y(Cl35)*Y(N)*state.rho + screened_rates(k_Cl36_to_n_Cl35_derived)*Y(Cl36)) + + (-screened_rates(k_Cl36_n_to_Cl37_reaclib)*Y(Cl36)*Y(N)*state.rho + screened_rates(k_Cl37_to_n_Cl36_derived)*Y(Cl37)) + + (-screened_rates(k_Ar36_n_to_Ar37_reaclib)*Y(Ar36)*Y(N)*state.rho + screened_rates(k_Ar37_to_n_Ar36_derived)*Y(Ar37)) + + (-screened_rates(k_Ar37_n_to_Ar38_reaclib)*Y(Ar37)*Y(N)*state.rho + screened_rates(k_Ar38_to_n_Ar37_derived)*Y(Ar38)) + + (-screened_rates(k_Ar38_n_to_Ar39_reaclib)*Y(Ar38)*Y(N)*state.rho + screened_rates(k_Ar39_to_n_Ar38_derived)*Y(Ar39)) + + (-screened_rates(k_Ar39_n_to_Ar40_reaclib)*Y(Ar39)*Y(N)*state.rho + screened_rates(k_Ar40_to_n_Ar39_derived)*Y(Ar40)) + + (-screened_rates(k_K37_n_to_K38_reaclib)*Y(K37)*Y(N)*state.rho + screened_rates(k_K38_to_n_K37_derived)*Y(K38)) + + (-screened_rates(k_K38_n_to_K39_reaclib)*Y(K38)*Y(N)*state.rho + screened_rates(k_K39_to_n_K38_derived)*Y(K39)) + + (-screened_rates(k_K39_n_to_K40_reaclib)*Y(K39)*Y(N)*state.rho + screened_rates(k_K40_to_n_K39_derived)*Y(K40)) + + (-screened_rates(k_K40_n_to_K41_reaclib)*Y(K40)*Y(N)*state.rho + screened_rates(k_K41_to_n_K40_derived)*Y(K41)) + + (-screened_rates(k_Ca40_n_to_Ca41_reaclib)*Y(Ca40)*Y(N)*state.rho + screened_rates(k_Ca41_to_n_Ca40_derived)*Y(Ca41)) + + (-screened_rates(k_Ca41_n_to_Ca42_reaclib)*Y(Ca41)*Y(N)*state.rho + screened_rates(k_Ca42_to_n_Ca41_derived)*Y(Ca42)) + + (-screened_rates(k_Ca42_n_to_Ca43_reaclib)*Y(Ca42)*Y(N)*state.rho + screened_rates(k_Ca43_to_n_Ca42_derived)*Y(Ca43)) + + (-screened_rates(k_Ca43_n_to_Ca44_reaclib)*Y(Ca43)*Y(N)*state.rho + screened_rates(k_Ca44_to_n_Ca43_derived)*Y(Ca44)) + + (-screened_rates(k_Ca44_n_to_Ca45_reaclib)*Y(Ca44)*Y(N)*state.rho + screened_rates(k_Ca45_to_n_Ca44_derived)*Y(Ca45)) + + (-screened_rates(k_Ca45_n_to_Ca46_reaclib)*Y(Ca45)*Y(N)*state.rho + screened_rates(k_Ca46_to_n_Ca45_derived)*Y(Ca46)) + + (-screened_rates(k_Ca46_n_to_Ca47_reaclib)*Y(Ca46)*Y(N)*state.rho + screened_rates(k_Ca47_to_n_Ca46_derived)*Y(Ca47)) + + (-screened_rates(k_Ca47_n_to_Ca48_reaclib)*Y(Ca47)*Y(N)*state.rho + screened_rates(k_Ca48_to_n_Ca47_derived)*Y(Ca48)) + + (-screened_rates(k_Sc43_n_to_Sc44_reaclib)*Y(Sc43)*Y(N)*state.rho + screened_rates(k_Sc44_to_n_Sc43_derived)*Y(Sc44)) + + (-screened_rates(k_Sc44_n_to_Sc45_reaclib)*Y(Sc44)*Y(N)*state.rho + screened_rates(k_Sc45_to_n_Sc44_derived)*Y(Sc45)) + + (-screened_rates(k_Sc45_n_to_Sc46_reaclib)*Y(Sc45)*Y(N)*state.rho + screened_rates(k_Sc46_to_n_Sc45_derived)*Y(Sc46)) + + (-screened_rates(k_Sc46_n_to_Sc47_reaclib)*Y(Sc46)*Y(N)*state.rho + screened_rates(k_Sc47_to_n_Sc46_derived)*Y(Sc47)) + + (-screened_rates(k_Sc47_n_to_Sc48_reaclib)*Y(Sc47)*Y(N)*state.rho + screened_rates(k_Sc48_to_n_Sc47_derived)*Y(Sc48)) + + (-screened_rates(k_Sc48_n_to_Sc49_reaclib)*Y(Sc48)*Y(N)*state.rho + screened_rates(k_Sc49_to_n_Sc48_derived)*Y(Sc49)) + + (-screened_rates(k_Ti44_n_to_Ti45_reaclib)*Y(Ti44)*Y(N)*state.rho + screened_rates(k_Ti45_to_n_Ti44_derived)*Y(Ti45)) + + (-screened_rates(k_Ti45_n_to_Ti46_reaclib)*Y(Ti45)*Y(N)*state.rho + screened_rates(k_Ti46_to_n_Ti45_derived)*Y(Ti46)) + + (-screened_rates(k_Ti46_n_to_Ti47_reaclib)*Y(Ti46)*Y(N)*state.rho + screened_rates(k_Ti47_to_n_Ti46_derived)*Y(Ti47)) + + (-screened_rates(k_Ti47_n_to_Ti48_reaclib)*Y(Ti47)*Y(N)*state.rho + screened_rates(k_Ti48_to_n_Ti47_derived)*Y(Ti48)) + + (-screened_rates(k_Ti48_n_to_Ti49_reaclib)*Y(Ti48)*Y(N)*state.rho + screened_rates(k_Ti49_to_n_Ti48_derived)*Y(Ti49)) + + (-screened_rates(k_Ti49_n_to_Ti50_reaclib)*Y(Ti49)*Y(N)*state.rho + screened_rates(k_Ti50_to_n_Ti49_derived)*Y(Ti50)) + + (-screened_rates(k_Ti50_n_to_Ti51_reaclib)*Y(Ti50)*Y(N)*state.rho + screened_rates(k_Ti51_to_n_Ti50_derived)*Y(Ti51)) + + (-screened_rates(k_V46_n_to_V47_reaclib)*Y(V46)*Y(N)*state.rho + screened_rates(k_V47_to_n_V46_derived)*Y(V47)) + + (-screened_rates(k_V47_n_to_V48_reaclib)*Y(V47)*Y(N)*state.rho + screened_rates(k_V48_to_n_V47_derived)*Y(V48)) + + (-screened_rates(k_V48_n_to_V49_reaclib)*Y(V48)*Y(N)*state.rho + screened_rates(k_V49_to_n_V48_derived)*Y(V49)) + + (-screened_rates(k_V49_n_to_V50_reaclib)*Y(V49)*Y(N)*state.rho + screened_rates(k_V50_to_n_V49_derived)*Y(V50)) + + (-screened_rates(k_V50_n_to_V51_reaclib)*Y(V50)*Y(N)*state.rho + screened_rates(k_V51_to_n_V50_derived)*Y(V51)) + + (-screened_rates(k_V51_n_to_V52_reaclib)*Y(V51)*Y(N)*state.rho + screened_rates(k_V52_to_n_V51_derived)*Y(V52)) + + (-screened_rates(k_Cr48_n_to_Cr49_reaclib)*Y(Cr48)*Y(N)*state.rho + screened_rates(k_Cr49_to_n_Cr48_derived)*Y(Cr49)) + + (-screened_rates(k_Cr49_n_to_Cr50_reaclib)*Y(Cr49)*Y(N)*state.rho + screened_rates(k_Cr50_to_n_Cr49_derived)*Y(Cr50)) + + (-screened_rates(k_Cr50_n_to_Cr51_reaclib)*Y(Cr50)*Y(N)*state.rho + screened_rates(k_Cr51_to_n_Cr50_derived)*Y(Cr51)) + + (-screened_rates(k_Cr51_n_to_Cr52_reaclib)*Y(Cr51)*Y(N)*state.rho + screened_rates(k_Cr52_to_n_Cr51_derived)*Y(Cr52)) + + (-screened_rates(k_Cr52_n_to_Cr53_reaclib)*Y(Cr52)*Y(N)*state.rho + screened_rates(k_Cr53_to_n_Cr52_derived)*Y(Cr53)) + + (-screened_rates(k_Cr53_n_to_Cr54_reaclib)*Y(Cr53)*Y(N)*state.rho + screened_rates(k_Cr54_to_n_Cr53_derived)*Y(Cr54)) + + (-screened_rates(k_Mn50_n_to_Mn51_reaclib)*Y(Mn50)*Y(N)*state.rho + screened_rates(k_Mn51_to_n_Mn50_derived)*Y(Mn51)) + + (-screened_rates(k_Mn51_n_to_Mn52_reaclib)*Y(Mn51)*Y(N)*state.rho + screened_rates(k_Mn52_to_n_Mn51_derived)*Y(Mn52)) + + (-screened_rates(k_Mn52_n_to_Mn53_reaclib)*Y(Mn52)*Y(N)*state.rho + screened_rates(k_Mn53_to_n_Mn52_derived)*Y(Mn53)) + + (-screened_rates(k_Mn53_n_to_Mn54_reaclib)*Y(Mn53)*Y(N)*state.rho + screened_rates(k_Mn54_to_n_Mn53_derived)*Y(Mn54)) + + (-screened_rates(k_Mn54_n_to_Mn55_reaclib)*Y(Mn54)*Y(N)*state.rho + screened_rates(k_Mn55_to_n_Mn54_derived)*Y(Mn55)) + + (-screened_rates(k_Fe52_n_to_Fe53_reaclib)*Y(Fe52)*Y(N)*state.rho + screened_rates(k_Fe53_to_n_Fe52_derived)*Y(Fe53)) + + (-screened_rates(k_Fe53_n_to_Fe54_reaclib)*Y(Fe53)*Y(N)*state.rho + screened_rates(k_Fe54_to_n_Fe53_derived)*Y(Fe54)) + + (-screened_rates(k_Fe54_n_to_Fe55_reaclib)*Y(Fe54)*Y(N)*state.rho + screened_rates(k_Fe55_to_n_Fe54_derived)*Y(Fe55)) + + (-screened_rates(k_Fe55_n_to_Fe56_reaclib)*Y(Fe55)*Y(N)*state.rho + screened_rates(k_Fe56_to_n_Fe55_derived)*Y(Fe56)) + + (-screened_rates(k_Fe56_n_to_Fe57_reaclib)*Y(Fe56)*Y(N)*state.rho + screened_rates(k_Fe57_to_n_Fe56_derived)*Y(Fe57)) + + (-screened_rates(k_Fe57_n_to_Fe58_reaclib)*Y(Fe57)*Y(N)*state.rho + screened_rates(k_Fe58_to_n_Fe57_derived)*Y(Fe58)) + + (-screened_rates(k_Co53_n_to_Co54_reaclib)*Y(Co53)*Y(N)*state.rho + screened_rates(k_Co54_to_n_Co53_derived)*Y(Co54)) + + (-screened_rates(k_Co54_n_to_Co55_reaclib)*Y(Co54)*Y(N)*state.rho + screened_rates(k_Co55_to_n_Co54_derived)*Y(Co55)) + + (-screened_rates(k_Co55_n_to_Co56_reaclib)*Y(Co55)*Y(N)*state.rho + screened_rates(k_Co56_to_n_Co55_derived)*Y(Co56)) + + (-screened_rates(k_Co56_n_to_Co57_reaclib)*Y(Co56)*Y(N)*state.rho + screened_rates(k_Co57_to_n_Co56_derived)*Y(Co57)) + + (-screened_rates(k_Co57_n_to_Co58_reaclib)*Y(Co57)*Y(N)*state.rho + screened_rates(k_Co58_to_n_Co57_derived)*Y(Co58)) + + (-screened_rates(k_Co58_n_to_Co59_reaclib)*Y(Co58)*Y(N)*state.rho + screened_rates(k_Co59_to_n_Co58_derived)*Y(Co59)) + + (-screened_rates(k_Ni56_n_to_Ni57_reaclib)*Y(Ni56)*Y(N)*state.rho + screened_rates(k_Ni57_to_n_Ni56_derived)*Y(Ni57)) + + (-screened_rates(k_Ni57_n_to_Ni58_reaclib)*Y(Ni57)*Y(N)*state.rho + screened_rates(k_Ni58_to_n_Ni57_derived)*Y(Ni58)) + + (-screened_rates(k_Ni58_n_to_Ni59_reaclib)*Y(Ni58)*Y(N)*state.rho + screened_rates(k_Ni59_to_n_Ni58_derived)*Y(Ni59)) + + (-screened_rates(k_Ni59_n_to_Ni60_reaclib)*Y(Ni59)*Y(N)*state.rho + screened_rates(k_Ni60_to_n_Ni59_derived)*Y(Ni60)) + + (-screened_rates(k_Ni60_n_to_Ni61_reaclib)*Y(Ni60)*Y(N)*state.rho + screened_rates(k_Ni61_to_n_Ni60_derived)*Y(Ni61)) + + (-screened_rates(k_Ni61_n_to_Ni62_reaclib)*Y(Ni61)*Y(N)*state.rho + screened_rates(k_Ni62_to_n_Ni61_derived)*Y(Ni62)) + + (-screened_rates(k_Ni62_n_to_Ni63_reaclib)*Y(Ni62)*Y(N)*state.rho + screened_rates(k_Ni63_to_n_Ni62_derived)*Y(Ni63)) + + (-screened_rates(k_Ni63_n_to_Ni64_reaclib)*Y(Ni63)*Y(N)*state.rho + screened_rates(k_Ni64_to_n_Ni63_derived)*Y(Ni64)) + + (-screened_rates(k_Cu57_n_to_Cu58_reaclib)*Y(Cu57)*Y(N)*state.rho + screened_rates(k_Cu58_to_n_Cu57_derived)*Y(Cu58)) + + (-screened_rates(k_Cu58_n_to_Cu59_reaclib)*Y(Cu58)*Y(N)*state.rho + screened_rates(k_Cu59_to_n_Cu58_derived)*Y(Cu59)) + + (-screened_rates(k_Cu59_n_to_Cu60_reaclib)*Y(Cu59)*Y(N)*state.rho + screened_rates(k_Cu60_to_n_Cu59_derived)*Y(Cu60)) + + (-screened_rates(k_Cu60_n_to_Cu61_reaclib)*Y(Cu60)*Y(N)*state.rho + screened_rates(k_Cu61_to_n_Cu60_derived)*Y(Cu61)) + + (-screened_rates(k_Cu61_n_to_Cu62_reaclib)*Y(Cu61)*Y(N)*state.rho + screened_rates(k_Cu62_to_n_Cu61_derived)*Y(Cu62)) + + (-screened_rates(k_Cu62_n_to_Cu63_reaclib)*Y(Cu62)*Y(N)*state.rho + screened_rates(k_Cu63_to_n_Cu62_derived)*Y(Cu63)) + + (-screened_rates(k_Cu63_n_to_Cu64_reaclib)*Y(Cu63)*Y(N)*state.rho + screened_rates(k_Cu64_to_n_Cu63_derived)*Y(Cu64)) + + (-screened_rates(k_Cu64_n_to_Cu65_reaclib)*Y(Cu64)*Y(N)*state.rho + screened_rates(k_Cu65_to_n_Cu64_derived)*Y(Cu65)) + + (-screened_rates(k_Zn59_n_to_Zn60_reaclib)*Y(Zn59)*Y(N)*state.rho + screened_rates(k_Zn60_to_n_Zn59_derived)*Y(Zn60)) + + (-screened_rates(k_Zn60_n_to_Zn61_reaclib)*Y(Zn60)*Y(N)*state.rho + screened_rates(k_Zn61_to_n_Zn60_derived)*Y(Zn61)) + + (-screened_rates(k_Zn61_n_to_Zn62_reaclib)*Y(Zn61)*Y(N)*state.rho + screened_rates(k_Zn62_to_n_Zn61_derived)*Y(Zn62)) + + (-screened_rates(k_Zn62_n_to_Zn63_reaclib)*Y(Zn62)*Y(N)*state.rho + screened_rates(k_Zn63_to_n_Zn62_derived)*Y(Zn63)) + + (-screened_rates(k_Zn63_n_to_Zn64_reaclib)*Y(Zn63)*Y(N)*state.rho + screened_rates(k_Zn64_to_n_Zn63_derived)*Y(Zn64)) + + (-screened_rates(k_Zn64_n_to_Zn65_reaclib)*Y(Zn64)*Y(N)*state.rho + screened_rates(k_Zn65_to_n_Zn64_derived)*Y(Zn65)) + + (-screened_rates(k_Zn65_n_to_Zn66_reaclib)*Y(Zn65)*Y(N)*state.rho + screened_rates(k_Zn66_to_n_Zn65_derived)*Y(Zn66)) + + (-screened_rates(k_Ga62_n_to_Ga63_reaclib)*Y(Ga62)*Y(N)*state.rho + screened_rates(k_Ga63_to_n_Ga62_derived)*Y(Ga63)) + + (-screened_rates(k_Ga63_n_to_Ga64_reaclib)*Y(Ga63)*Y(N)*state.rho + screened_rates(k_Ga64_to_n_Ga63_derived)*Y(Ga64)) + + (-screened_rates(k_Ge63_n_to_Ge64_reaclib)*Y(Ge63)*Y(N)*state.rho + screened_rates(k_Ge64_to_n_Ge63_derived)*Y(Ge64)) + + (0.5*screened_rates(k_d_d_to_n_He3_reaclib)*amrex::Math::powi<2>(Y(H2))*state.rho + -screened_rates(k_He3_n_to_d_d_derived)*Y(He3)*Y(N)*state.rho) + + (screened_rates(k_Li6_d_to_n_Be7_reaclib)*Y(Li6)*Y(H2)*state.rho + -screened_rates(k_Be7_n_to_d_Li6_derived)*Y(Be7)*Y(N)*state.rho) + + (-screened_rates(k_Be7_n_to_p_Li7_reaclib)*Y(Be7)*Y(N)*state.rho + screened_rates(k_Li7_p_to_n_Be7_derived)*Y(Li7)*Y(H1)*state.rho) + + (-screened_rates(k_Be7_n_to_He4_He4_reaclib)*Y(Be7)*Y(N)*state.rho + 0.5*screened_rates(k_He4_He4_to_n_Be7_derived)*amrex::Math::powi<2>(Y(He4))*state.rho) + + (screened_rates(k_Be9_He4_to_n_C12_reaclib)*Y(Be9)*Y(He4)*state.rho + -screened_rates(k_C12_n_to_He4_Be9_derived)*Y(C12)*Y(N)*state.rho) + + (-screened_rates(k_B10_n_to_He4_Li7_reaclib)*Y(B10)*Y(N)*state.rho + screened_rates(k_Li7_He4_to_n_B10_derived)*Y(He4)*Y(Li7)*state.rho) + + (screened_rates(k_B10_He4_to_n_N13_reaclib)*Y(B10)*Y(He4)*state.rho + -screened_rates(k_N13_n_to_He4_B10_derived)*Y(N13)*Y(N)*state.rho) + + (screened_rates(k_B11_He4_to_n_N14_reaclib)*Y(B11)*Y(He4)*state.rho + -screened_rates(k_N14_n_to_He4_B11_derived)*Y(N14)*Y(N)*state.rho) + + (screened_rates(k_C13_d_to_n_N14_reaclib)*Y(C13)*Y(H2)*state.rho + -screened_rates(k_N14_n_to_d_C13_derived)*Y(N14)*Y(N)*state.rho) + + (screened_rates(k_C13_He4_to_n_O16_reaclib)*Y(C13)*Y(He4)*state.rho + -screened_rates(k_O16_n_to_He4_C13_derived)*Y(O16)*Y(N)*state.rho) + + (screened_rates(k_C14_d_to_n_N15_reaclib)*Y(C14)*Y(H2)*state.rho + -screened_rates(k_N15_n_to_d_C14_derived)*Y(N15)*Y(N)*state.rho) + + (-screened_rates(k_N14_n_to_p_C14_reaclib)*Y(N14)*Y(N)*state.rho + screened_rates(k_C14_p_to_n_N14_derived)*Y(C14)*Y(H1)*state.rho) + + (-screened_rates(k_O15_n_to_He4_C12_reaclib)*Y(O15)*Y(N)*state.rho + screened_rates(k_C12_He4_to_n_O15_derived)*Y(C12)*Y(He4)*state.rho) + + (-screened_rates(k_O17_n_to_He4_C14_reaclib)*Y(O17)*Y(N)*state.rho + screened_rates(k_C14_He4_to_n_O17_derived)*Y(C14)*Y(He4)*state.rho) + + (screened_rates(k_O17_He4_to_n_Ne20_reaclib)*Y(He4)*Y(O17)*state.rho + -screened_rates(k_Ne20_n_to_He4_O17_derived)*Y(Ne20)*Y(N)*state.rho) + + (-screened_rates(k_F17_n_to_p_O17_reaclib)*Y(F17)*Y(N)*state.rho + screened_rates(k_O17_p_to_n_F17_derived)*Y(O17)*Y(H1)*state.rho) + + (-screened_rates(k_F18_n_to_p_O18_reaclib)*Y(F18)*Y(N)*state.rho + screened_rates(k_O18_p_to_n_F18_derived)*Y(O18)*Y(H1)*state.rho) + + (-screened_rates(k_F18_n_to_He4_N15_reaclib)*Y(F18)*Y(N)*state.rho + screened_rates(k_N15_He4_to_n_F18_derived)*Y(He4)*Y(N15)*state.rho) + + (-screened_rates(k_Ne18_n_to_p_F18_reaclib)*Y(Ne18)*Y(N)*state.rho + screened_rates(k_F18_p_to_n_Ne18_derived)*Y(F18)*Y(H1)*state.rho) + + (-screened_rates(k_Ne18_n_to_He4_O15_reaclib)*Y(Ne18)*Y(N)*state.rho + screened_rates(k_O15_He4_to_n_Ne18_derived)*Y(He4)*Y(O15)*state.rho) + + (-screened_rates(k_Ne19_n_to_He4_O16_reaclib)*Y(Ne19)*Y(N)*state.rho + screened_rates(k_O16_He4_to_n_Ne19_derived)*Y(He4)*Y(O16)*state.rho) + + (screened_rates(k_Ne21_He4_to_n_Mg24_reaclib)*Y(He4)*Y(Ne21)*state.rho + -screened_rates(k_Mg24_n_to_He4_Ne21_derived)*Y(Mg24)*Y(N)*state.rho) + + (-screened_rates(k_Na21_n_to_p_Ne21_reaclib)*Y(Na21)*Y(N)*state.rho + screened_rates(k_Ne21_p_to_n_Na21_derived)*Y(Ne21)*Y(H1)*state.rho) + + (-screened_rates(k_Na21_n_to_He4_F18_reaclib)*Y(Na21)*Y(N)*state.rho + screened_rates(k_F18_He4_to_n_Na21_derived)*Y(F18)*Y(He4)*state.rho) + + (-screened_rates(k_Na22_n_to_p_Ne22_reaclib)*Y(Na22)*Y(N)*state.rho + screened_rates(k_Ne22_p_to_n_Na22_derived)*Y(Ne22)*Y(H1)*state.rho) + + (-screened_rates(k_Na22_n_to_He4_F19_reaclib)*Y(Na22)*Y(N)*state.rho + screened_rates(k_F19_He4_to_n_Na22_derived)*Y(F19)*Y(He4)*state.rho) + + (-screened_rates(k_Mg23_n_to_He4_Ne20_reaclib)*Y(Mg23)*Y(N)*state.rho + screened_rates(k_Ne20_He4_to_n_Mg23_derived)*Y(He4)*Y(Ne20)*state.rho) + + (-screened_rates(k_Mg23_n_to_C12_C12_reaclib)*Y(Mg23)*Y(N)*state.rho + 0.5*screened_rates(k_C12_C12_to_n_Mg23_derived)*amrex::Math::powi<2>(Y(C12))*state.rho) + + (screened_rates(k_Mg25_He4_to_n_Si28_reaclib)*Y(He4)*Y(Mg25)*state.rho + -screened_rates(k_Si28_n_to_He4_Mg25_derived)*Y(Si28)*Y(N)*state.rho) + + (screened_rates(k_Mg26_He4_to_n_Si29_reaclib)*Y(He4)*Y(Mg26)*state.rho + -screened_rates(k_Si29_n_to_He4_Mg26_derived)*Y(Si29)*Y(N)*state.rho) + + (-screened_rates(k_Al25_n_to_p_Mg25_reaclib)*Y(Al25)*Y(N)*state.rho + screened_rates(k_Mg25_p_to_n_Al25_derived)*Y(Mg25)*Y(H1)*state.rho) + + (-screened_rates(k_Al25_n_to_He4_Na22_reaclib)*Y(Al25)*Y(N)*state.rho + screened_rates(k_Na22_He4_to_n_Al25_derived)*Y(He4)*Y(Na22)*state.rho) + + (-screened_rates(k_Al26_n_to_p_Mg26_reaclib)*Y(Al26)*Y(N)*state.rho + screened_rates(k_Mg26_p_to_n_Al26_derived)*Y(Mg26)*Y(H1)*state.rho) + + (-screened_rates(k_Al26_n_to_He4_Na23_reaclib)*Y(Al26)*Y(N)*state.rho + screened_rates(k_Na23_He4_to_n_Al26_derived)*Y(He4)*Y(Na23)*state.rho) + + (screened_rates(k_Si31_p_to_n_P31_reaclib)*Y(Si31)*Y(H1)*state.rho + -screened_rates(k_P31_n_to_p_Si31_derived)*Y(P31)*Y(N)*state.rho) + + (screened_rates(k_Si31_He4_to_n_S34_reaclib)*Y(He4)*Y(Si31)*state.rho + -screened_rates(k_S34_n_to_He4_Si31_derived)*Y(S34)*Y(N)*state.rho) + + (-screened_rates(k_P29_n_to_p_Si29_reaclib)*Y(P29)*Y(N)*state.rho + screened_rates(k_Si29_p_to_n_P29_derived)*Y(Si29)*Y(H1)*state.rho) + + (-screened_rates(k_P29_n_to_He4_Al26_reaclib)*Y(P29)*Y(N)*state.rho + screened_rates(k_Al26_He4_to_n_P29_derived)*Y(Al26)*Y(He4)*state.rho) + + (-screened_rates(k_P30_n_to_p_Si30_reaclib)*Y(P30)*Y(N)*state.rho + screened_rates(k_Si30_p_to_n_P30_derived)*Y(Si30)*Y(H1)*state.rho) + + (-screened_rates(k_P32_n_to_p_Si32_reaclib)*Y(P32)*Y(N)*state.rho + screened_rates(k_Si32_p_to_n_P32_derived)*Y(Si32)*Y(H1)*state.rho) + + (screened_rates(k_P32_p_to_n_S32_reaclib)*Y(P32)*Y(H1)*state.rho + -screened_rates(k_S32_n_to_p_P32_derived)*Y(S32)*Y(N)*state.rho) + + (-screened_rates(k_S32_n_to_He4_Si29_reaclib)*Y(S32)*Y(N)*state.rho + screened_rates(k_Si29_He4_to_n_S32_derived)*Y(He4)*Y(Si29)*state.rho) + + (-screened_rates(k_S33_n_to_p_P33_reaclib)*Y(S33)*Y(N)*state.rho + screened_rates(k_P33_p_to_n_S33_derived)*Y(P33)*Y(H1)*state.rho) + + (-screened_rates(k_S33_n_to_He4_Si30_reaclib)*Y(S33)*Y(N)*state.rho + screened_rates(k_Si30_He4_to_n_S33_derived)*Y(He4)*Y(Si30)*state.rho) + + (-screened_rates(k_S35_n_to_He4_Si32_reaclib)*Y(S35)*Y(N)*state.rho + screened_rates(k_Si32_He4_to_n_S35_derived)*Y(He4)*Y(Si32)*state.rho) + + (screened_rates(k_S35_He4_to_n_Ar38_reaclib)*Y(He4)*Y(S35)*state.rho + -screened_rates(k_Ar38_n_to_He4_S35_derived)*Y(Ar38)*Y(N)*state.rho) + + (-screened_rates(k_Cl33_n_to_p_S33_reaclib)*Y(Cl33)*Y(N)*state.rho + screened_rates(k_S33_p_to_n_Cl33_derived)*Y(S33)*Y(H1)*state.rho) + + (-screened_rates(k_Cl33_n_to_He4_P30_reaclib)*Y(Cl33)*Y(N)*state.rho + screened_rates(k_P30_He4_to_n_Cl33_derived)*Y(He4)*Y(P30)*state.rho) + + (-screened_rates(k_Cl34_n_to_p_S34_reaclib)*Y(Cl34)*Y(N)*state.rho + screened_rates(k_S34_p_to_n_Cl34_derived)*Y(S34)*Y(H1)*state.rho) + + (-screened_rates(k_Cl34_n_to_He4_P31_reaclib)*Y(Cl34)*Y(N)*state.rho + screened_rates(k_P31_He4_to_n_Cl34_derived)*Y(He4)*Y(P31)*state.rho) + + (-screened_rates(k_Cl35_n_to_p_S35_reaclib)*Y(Cl35)*Y(N)*state.rho + screened_rates(k_S35_p_to_n_Cl35_derived)*Y(S35)*Y(H1)*state.rho) + + (-screened_rates(k_Cl35_n_to_He4_P32_reaclib)*Y(Cl35)*Y(N)*state.rho + screened_rates(k_P32_He4_to_n_Cl35_derived)*Y(He4)*Y(P32)*state.rho) + + (-screened_rates(k_Cl36_n_to_p_S36_reaclib)*Y(Cl36)*Y(N)*state.rho + screened_rates(k_S36_p_to_n_Cl36_derived)*Y(S36)*Y(H1)*state.rho) + + (-screened_rates(k_Cl36_n_to_He4_P33_reaclib)*Y(Cl36)*Y(N)*state.rho + screened_rates(k_P33_He4_to_n_Cl36_derived)*Y(He4)*Y(P33)*state.rho) + + (-screened_rates(k_Ar36_n_to_p_Cl36_reaclib)*Y(Ar36)*Y(N)*state.rho + screened_rates(k_Cl36_p_to_n_Ar36_derived)*Y(Cl36)*Y(H1)*state.rho) + + (-screened_rates(k_Ar36_n_to_He4_S33_reaclib)*Y(Ar36)*Y(N)*state.rho + screened_rates(k_S33_He4_to_n_Ar36_derived)*Y(He4)*Y(S33)*state.rho) + + (-screened_rates(k_Ar37_n_to_p_Cl37_reaclib)*Y(Ar37)*Y(N)*state.rho + screened_rates(k_Cl37_p_to_n_Ar37_derived)*Y(Cl37)*Y(H1)*state.rho) + + (-screened_rates(k_Ar39_n_to_He4_S36_reaclib)*Y(Ar39)*Y(N)*state.rho + screened_rates(k_S36_He4_to_n_Ar39_derived)*Y(He4)*Y(S36)*state.rho) + + (-screened_rates(k_K37_n_to_p_Ar37_reaclib)*Y(K37)*Y(N)*state.rho + screened_rates(k_Ar37_p_to_n_K37_derived)*Y(Ar37)*Y(H1)*state.rho) + + (-screened_rates(k_K37_n_to_He4_Cl34_reaclib)*Y(K37)*Y(N)*state.rho + screened_rates(k_Cl34_He4_to_n_K37_derived)*Y(Cl34)*Y(He4)*state.rho) + + (-screened_rates(k_K38_n_to_p_Ar38_reaclib)*Y(K38)*Y(N)*state.rho + screened_rates(k_Ar38_p_to_n_K38_derived)*Y(Ar38)*Y(H1)*state.rho) + + (-screened_rates(k_K38_n_to_He4_Cl35_reaclib)*Y(K38)*Y(N)*state.rho + screened_rates(k_Cl35_He4_to_n_K38_derived)*Y(Cl35)*Y(He4)*state.rho) + + (-screened_rates(k_K39_n_to_p_Ar39_reaclib)*Y(K39)*Y(N)*state.rho + screened_rates(k_Ar39_p_to_n_K39_derived)*Y(Ar39)*Y(H1)*state.rho) + + (-screened_rates(k_K39_n_to_He4_Cl36_reaclib)*Y(K39)*Y(N)*state.rho + screened_rates(k_Cl36_He4_to_n_K39_derived)*Y(Cl36)*Y(He4)*state.rho) + + (-screened_rates(k_K40_n_to_p_Ar40_reaclib)*Y(K40)*Y(N)*state.rho + screened_rates(k_Ar40_p_to_n_K40_derived)*Y(Ar40)*Y(H1)*state.rho) + + (-screened_rates(k_K40_n_to_He4_Cl37_reaclib)*Y(K40)*Y(N)*state.rho + screened_rates(k_Cl37_He4_to_n_K40_derived)*Y(Cl37)*Y(He4)*state.rho) + + (screened_rates(k_K40_p_to_n_Ca40_reaclib)*Y(K40)*Y(H1)*state.rho + -screened_rates(k_Ca40_n_to_p_K40_derived)*Y(Ca40)*Y(N)*state.rho) + + (-screened_rates(k_Ca40_n_to_He4_Ar37_reaclib)*Y(Ca40)*Y(N)*state.rho + screened_rates(k_Ar37_He4_to_n_Ca40_derived)*Y(Ar37)*Y(He4)*state.rho) + + (-screened_rates(k_Ca41_n_to_He4_Ar38_reaclib)*Y(Ca41)*Y(N)*state.rho + screened_rates(k_Ar38_He4_to_n_Ca41_derived)*Y(Ar38)*Y(He4)*state.rho) + + (-screened_rates(k_Ca42_n_to_He4_Ar39_reaclib)*Y(Ca42)*Y(N)*state.rho + screened_rates(k_Ar39_He4_to_n_Ca42_derived)*Y(Ar39)*Y(He4)*state.rho) + + (-screened_rates(k_Ca43_n_to_He4_Ar40_reaclib)*Y(Ca43)*Y(N)*state.rho + screened_rates(k_Ar40_He4_to_n_Ca43_derived)*Y(Ar40)*Y(He4)*state.rho) + + (screened_rates(k_Ca43_He4_to_n_Ti46_reaclib)*Y(Ca43)*Y(He4)*state.rho + -screened_rates(k_Ti46_n_to_He4_Ca43_derived)*Y(Ti46)*Y(N)*state.rho) + + (screened_rates(k_Ca45_He4_to_n_Ti48_reaclib)*Y(Ca45)*Y(He4)*state.rho + -screened_rates(k_Ti48_n_to_He4_Ca45_derived)*Y(Ti48)*Y(N)*state.rho) + + (screened_rates(k_Ca47_p_to_n_Sc47_reaclib)*Y(Ca47)*Y(H1)*state.rho + -screened_rates(k_Sc47_n_to_p_Ca47_derived)*Y(Sc47)*Y(N)*state.rho) + + (screened_rates(k_Ca47_He4_to_n_Ti50_reaclib)*Y(Ca47)*Y(He4)*state.rho + -screened_rates(k_Ti50_n_to_He4_Ca47_derived)*Y(Ti50)*Y(N)*state.rho) + + (-screened_rates(k_Sc43_n_to_p_Ca43_reaclib)*Y(Sc43)*Y(N)*state.rho + screened_rates(k_Ca43_p_to_n_Sc43_derived)*Y(Ca43)*Y(H1)*state.rho) + + (-screened_rates(k_Sc43_n_to_He4_K40_reaclib)*Y(Sc43)*Y(N)*state.rho + screened_rates(k_K40_He4_to_n_Sc43_derived)*Y(He4)*Y(K40)*state.rho) + + (-screened_rates(k_Sc44_n_to_p_Ca44_reaclib)*Y(Sc44)*Y(N)*state.rho + screened_rates(k_Ca44_p_to_n_Sc44_derived)*Y(Ca44)*Y(H1)*state.rho) + + (-screened_rates(k_Sc45_n_to_p_Ca45_reaclib)*Y(Sc45)*Y(N)*state.rho + screened_rates(k_Ca45_p_to_n_Sc45_derived)*Y(Ca45)*Y(H1)*state.rho) + + (-screened_rates(k_Sc46_n_to_p_Ca46_reaclib)*Y(Sc46)*Y(N)*state.rho + screened_rates(k_Ca46_p_to_n_Sc46_derived)*Y(Ca46)*Y(H1)*state.rho) + + (screened_rates(k_Sc46_p_to_n_Ti46_reaclib)*Y(Sc46)*Y(H1)*state.rho + -screened_rates(k_Ti46_n_to_p_Sc46_derived)*Y(Ti46)*Y(N)*state.rho) + + (screened_rates(k_Sc46_He4_to_n_V49_reaclib)*Y(He4)*Y(Sc46)*state.rho + -screened_rates(k_V49_n_to_He4_Sc46_derived)*Y(V49)*Y(N)*state.rho) + + (-screened_rates(k_Sc48_n_to_p_Ca48_reaclib)*Y(Sc48)*Y(N)*state.rho + screened_rates(k_Ca48_p_to_n_Sc48_derived)*Y(Ca48)*Y(H1)*state.rho) + + (screened_rates(k_Sc48_p_to_n_Ti48_reaclib)*Y(Sc48)*Y(H1)*state.rho + -screened_rates(k_Ti48_n_to_p_Sc48_derived)*Y(Ti48)*Y(N)*state.rho) + + (screened_rates(k_Sc48_He4_to_n_V51_reaclib)*Y(He4)*Y(Sc48)*state.rho + -screened_rates(k_V51_n_to_He4_Sc48_derived)*Y(V51)*Y(N)*state.rho) + + (screened_rates(k_Sc49_p_to_n_Ti49_reaclib)*Y(Sc49)*Y(H1)*state.rho + -screened_rates(k_Ti49_n_to_p_Sc49_derived)*Y(Ti49)*Y(N)*state.rho) + + (-screened_rates(k_Ti44_n_to_p_Sc44_reaclib)*Y(Ti44)*Y(N)*state.rho + screened_rates(k_Sc44_p_to_n_Ti44_derived)*Y(Sc44)*Y(H1)*state.rho) + + (-screened_rates(k_Ti44_n_to_He4_Ca41_reaclib)*Y(Ti44)*Y(N)*state.rho + screened_rates(k_Ca41_He4_to_n_Ti44_derived)*Y(Ca41)*Y(He4)*state.rho) + + (-screened_rates(k_Ti45_n_to_p_Sc45_reaclib)*Y(Ti45)*Y(N)*state.rho + screened_rates(k_Sc45_p_to_n_Ti45_derived)*Y(Sc45)*Y(H1)*state.rho) + + (-screened_rates(k_Ti45_n_to_He4_Ca42_reaclib)*Y(Ti45)*Y(N)*state.rho + screened_rates(k_Ca42_He4_to_n_Ti45_derived)*Y(Ca42)*Y(He4)*state.rho) + + (-screened_rates(k_Ti47_n_to_p_Sc47_reaclib)*Y(Ti47)*Y(N)*state.rho + screened_rates(k_Sc47_p_to_n_Ti47_derived)*Y(Sc47)*Y(H1)*state.rho) + + (-screened_rates(k_Ti47_n_to_He4_Ca44_reaclib)*Y(Ti47)*Y(N)*state.rho + screened_rates(k_Ca44_He4_to_n_Ti47_derived)*Y(Ca44)*Y(He4)*state.rho) + + (-screened_rates(k_Ti49_n_to_He4_Ca46_reaclib)*Y(Ti49)*Y(N)*state.rho + screened_rates(k_Ca46_He4_to_n_Ti49_derived)*Y(Ca46)*Y(He4)*state.rho) + + (screened_rates(k_Ti49_He4_to_n_Cr52_reaclib)*Y(He4)*Y(Ti49)*state.rho + -screened_rates(k_Cr52_n_to_He4_Ti49_derived)*Y(Cr52)*Y(N)*state.rho) + + (-screened_rates(k_Ti51_n_to_He4_Ca48_reaclib)*Y(Ti51)*Y(N)*state.rho + screened_rates(k_Ca48_He4_to_n_Ti51_derived)*Y(Ca48)*Y(He4)*state.rho) + + (screened_rates(k_Ti51_p_to_n_V51_reaclib)*Y(Ti51)*Y(H1)*state.rho + -screened_rates(k_V51_n_to_p_Ti51_derived)*Y(V51)*Y(N)*state.rho) + + (screened_rates(k_Ti51_He4_to_n_Cr54_reaclib)*Y(He4)*Y(Ti51)*state.rho + -screened_rates(k_Cr54_n_to_He4_Ti51_derived)*Y(Cr54)*Y(N)*state.rho) + + (-screened_rates(k_V46_n_to_p_Ti46_reaclib)*Y(V46)*Y(N)*state.rho + screened_rates(k_Ti46_p_to_n_V46_derived)*Y(Ti46)*Y(H1)*state.rho) + + (-screened_rates(k_V46_n_to_He4_Sc43_reaclib)*Y(V46)*Y(N)*state.rho + screened_rates(k_Sc43_He4_to_n_V46_derived)*Y(He4)*Y(Sc43)*state.rho) + + (-screened_rates(k_V47_n_to_p_Ti47_reaclib)*Y(V47)*Y(N)*state.rho + screened_rates(k_Ti47_p_to_n_V47_derived)*Y(Ti47)*Y(H1)*state.rho) + + (-screened_rates(k_V47_n_to_He4_Sc44_reaclib)*Y(V47)*Y(N)*state.rho + screened_rates(k_Sc44_He4_to_n_V47_derived)*Y(He4)*Y(Sc44)*state.rho) + + (-screened_rates(k_V48_n_to_p_Ti48_reaclib)*Y(V48)*Y(N)*state.rho + screened_rates(k_Ti48_p_to_n_V48_derived)*Y(Ti48)*Y(H1)*state.rho) + + (-screened_rates(k_V48_n_to_He4_Sc45_reaclib)*Y(V48)*Y(N)*state.rho + screened_rates(k_Sc45_He4_to_n_V48_derived)*Y(He4)*Y(Sc45)*state.rho) + + (-screened_rates(k_V49_n_to_p_Ti49_reaclib)*Y(V49)*Y(N)*state.rho + screened_rates(k_Ti49_p_to_n_V49_derived)*Y(Ti49)*Y(H1)*state.rho) + + (-screened_rates(k_V50_n_to_p_Ti50_reaclib)*Y(V50)*Y(N)*state.rho + screened_rates(k_Ti50_p_to_n_V50_derived)*Y(Ti50)*Y(H1)*state.rho) + + (-screened_rates(k_V50_n_to_He4_Sc47_reaclib)*Y(V50)*Y(N)*state.rho + screened_rates(k_Sc47_He4_to_n_V50_derived)*Y(He4)*Y(Sc47)*state.rho) + + (screened_rates(k_V50_p_to_n_Cr50_reaclib)*Y(V50)*Y(H1)*state.rho + -screened_rates(k_Cr50_n_to_p_V50_derived)*Y(Cr50)*Y(N)*state.rho) + + (-screened_rates(k_V52_n_to_He4_Sc49_reaclib)*Y(V52)*Y(N)*state.rho + screened_rates(k_Sc49_He4_to_n_V52_derived)*Y(He4)*Y(Sc49)*state.rho) + + (screened_rates(k_V52_p_to_n_Cr52_reaclib)*Y(V52)*Y(H1)*state.rho + -screened_rates(k_Cr52_n_to_p_V52_derived)*Y(Cr52)*Y(N)*state.rho) + + (screened_rates(k_V52_He4_to_n_Mn55_reaclib)*Y(He4)*Y(V52)*state.rho + -screened_rates(k_Mn55_n_to_He4_V52_derived)*Y(Mn55)*Y(N)*state.rho) + + (-screened_rates(k_Cr48_n_to_p_V48_reaclib)*Y(Cr48)*Y(N)*state.rho + screened_rates(k_V48_p_to_n_Cr48_derived)*Y(V48)*Y(H1)*state.rho) + + (-screened_rates(k_Cr48_n_to_He4_Ti45_reaclib)*Y(Cr48)*Y(N)*state.rho + screened_rates(k_Ti45_He4_to_n_Cr48_derived)*Y(He4)*Y(Ti45)*state.rho) + + (-screened_rates(k_Cr49_n_to_p_V49_reaclib)*Y(Cr49)*Y(N)*state.rho + screened_rates(k_V49_p_to_n_Cr49_derived)*Y(V49)*Y(H1)*state.rho) + + (-screened_rates(k_Cr49_n_to_He4_Ti46_reaclib)*Y(Cr49)*Y(N)*state.rho + screened_rates(k_Ti46_He4_to_n_Cr49_derived)*Y(He4)*Y(Ti46)*state.rho) + + (-screened_rates(k_Cr50_n_to_He4_Ti47_reaclib)*Y(Cr50)*Y(N)*state.rho + screened_rates(k_Ti47_He4_to_n_Cr50_derived)*Y(He4)*Y(Ti47)*state.rho) + + (-screened_rates(k_Cr51_n_to_p_V51_reaclib)*Y(Cr51)*Y(N)*state.rho + screened_rates(k_V51_p_to_n_Cr51_derived)*Y(V51)*Y(H1)*state.rho) + + (-screened_rates(k_Cr51_n_to_He4_Ti48_reaclib)*Y(Cr51)*Y(N)*state.rho + screened_rates(k_Ti48_He4_to_n_Cr51_derived)*Y(He4)*Y(Ti48)*state.rho) + + (-screened_rates(k_Cr53_n_to_He4_Ti50_reaclib)*Y(Cr53)*Y(N)*state.rho + screened_rates(k_Ti50_He4_to_n_Cr53_derived)*Y(He4)*Y(Ti50)*state.rho) + + (-screened_rates(k_Mn50_n_to_p_Cr50_reaclib)*Y(Mn50)*Y(N)*state.rho + screened_rates(k_Cr50_p_to_n_Mn50_derived)*Y(Cr50)*Y(H1)*state.rho) + + (-screened_rates(k_Mn50_n_to_He4_V47_reaclib)*Y(Mn50)*Y(N)*state.rho + screened_rates(k_V47_He4_to_n_Mn50_derived)*Y(He4)*Y(V47)*state.rho) + + (-screened_rates(k_Mn51_n_to_p_Cr51_reaclib)*Y(Mn51)*Y(N)*state.rho + screened_rates(k_Cr51_p_to_n_Mn51_derived)*Y(Cr51)*Y(H1)*state.rho) + + (-screened_rates(k_Mn51_n_to_He4_V48_reaclib)*Y(Mn51)*Y(N)*state.rho + screened_rates(k_V48_He4_to_n_Mn51_derived)*Y(He4)*Y(V48)*state.rho) + + (-screened_rates(k_Mn52_n_to_p_Cr52_reaclib)*Y(Mn52)*Y(N)*state.rho + screened_rates(k_Cr52_p_to_n_Mn52_derived)*Y(Cr52)*Y(H1)*state.rho) + + (-screened_rates(k_Mn52_n_to_He4_V49_reaclib)*Y(Mn52)*Y(N)*state.rho + screened_rates(k_V49_He4_to_n_Mn52_derived)*Y(He4)*Y(V49)*state.rho) + + (-screened_rates(k_Mn53_n_to_p_Cr53_reaclib)*Y(Mn53)*Y(N)*state.rho + screened_rates(k_Cr53_p_to_n_Mn53_derived)*Y(Cr53)*Y(H1)*state.rho) + + (-screened_rates(k_Mn53_n_to_He4_V50_reaclib)*Y(Mn53)*Y(N)*state.rho + screened_rates(k_V50_He4_to_n_Mn53_derived)*Y(He4)*Y(V50)*state.rho) + + (-screened_rates(k_Mn54_n_to_p_Cr54_reaclib)*Y(Mn54)*Y(N)*state.rho + screened_rates(k_Cr54_p_to_n_Mn54_derived)*Y(Cr54)*Y(H1)*state.rho) + + (-screened_rates(k_Mn54_n_to_He4_V51_reaclib)*Y(Mn54)*Y(N)*state.rho + screened_rates(k_V51_He4_to_n_Mn54_derived)*Y(He4)*Y(V51)*state.rho) + + (-screened_rates(k_Fe52_n_to_p_Mn52_reaclib)*Y(Fe52)*Y(N)*state.rho + screened_rates(k_Mn52_p_to_n_Fe52_derived)*Y(Mn52)*Y(H1)*state.rho) + + (-screened_rates(k_Fe52_n_to_He4_Cr49_reaclib)*Y(Fe52)*Y(N)*state.rho + screened_rates(k_Cr49_He4_to_n_Fe52_derived)*Y(Cr49)*Y(He4)*state.rho) + + (-screened_rates(k_Fe53_n_to_p_Mn53_reaclib)*Y(Fe53)*Y(N)*state.rho + screened_rates(k_Mn53_p_to_n_Fe53_derived)*Y(Mn53)*Y(H1)*state.rho) + + (-screened_rates(k_Fe53_n_to_He4_Cr50_reaclib)*Y(Fe53)*Y(N)*state.rho + screened_rates(k_Cr50_He4_to_n_Fe53_derived)*Y(Cr50)*Y(He4)*state.rho) + + (-screened_rates(k_Fe54_n_to_p_Mn54_reaclib)*Y(Fe54)*Y(N)*state.rho + screened_rates(k_Mn54_p_to_n_Fe54_derived)*Y(Mn54)*Y(H1)*state.rho) + + (-screened_rates(k_Fe54_n_to_He4_Cr51_reaclib)*Y(Fe54)*Y(N)*state.rho + screened_rates(k_Cr51_He4_to_n_Fe54_derived)*Y(Cr51)*Y(He4)*state.rho) + + (-screened_rates(k_Fe55_n_to_p_Mn55_reaclib)*Y(Fe55)*Y(N)*state.rho + screened_rates(k_Mn55_p_to_n_Fe55_derived)*Y(Mn55)*Y(H1)*state.rho) + + (-screened_rates(k_Fe55_n_to_He4_Cr52_reaclib)*Y(Fe55)*Y(N)*state.rho + screened_rates(k_Cr52_He4_to_n_Fe55_derived)*Y(Cr52)*Y(He4)*state.rho) + + (-screened_rates(k_Fe56_n_to_He4_Cr53_reaclib)*Y(Fe56)*Y(N)*state.rho + screened_rates(k_Cr53_He4_to_n_Fe56_derived)*Y(Cr53)*Y(He4)*state.rho) + + (-screened_rates(k_Fe57_n_to_He4_Cr54_reaclib)*Y(Fe57)*Y(N)*state.rho + screened_rates(k_Cr54_He4_to_n_Fe57_derived)*Y(Cr54)*Y(He4)*state.rho) + + (-screened_rates(k_Co53_n_to_p_Fe53_reaclib)*Y(Co53)*Y(N)*state.rho + screened_rates(k_Fe53_p_to_n_Co53_derived)*Y(Fe53)*Y(H1)*state.rho) + + (-screened_rates(k_Co53_n_to_He4_Mn50_reaclib)*Y(Co53)*Y(N)*state.rho + screened_rates(k_Mn50_He4_to_n_Co53_derived)*Y(He4)*Y(Mn50)*state.rho) + + (-screened_rates(k_Co54_n_to_p_Fe54_reaclib)*Y(Co54)*Y(N)*state.rho + screened_rates(k_Fe54_p_to_n_Co54_derived)*Y(Fe54)*Y(H1)*state.rho) + + (-screened_rates(k_Co54_n_to_He4_Mn51_reaclib)*Y(Co54)*Y(N)*state.rho + screened_rates(k_Mn51_He4_to_n_Co54_derived)*Y(He4)*Y(Mn51)*state.rho) + + (-screened_rates(k_Co55_n_to_p_Fe55_reaclib)*Y(Co55)*Y(N)*state.rho + screened_rates(k_Fe55_p_to_n_Co55_derived)*Y(Fe55)*Y(H1)*state.rho) + + (-screened_rates(k_Co55_n_to_He4_Mn52_reaclib)*Y(Co55)*Y(N)*state.rho + screened_rates(k_Mn52_He4_to_n_Co55_derived)*Y(He4)*Y(Mn52)*state.rho) + + (-screened_rates(k_Co56_n_to_p_Fe56_reaclib)*Y(Co56)*Y(N)*state.rho + screened_rates(k_Fe56_p_to_n_Co56_derived)*Y(Fe56)*Y(H1)*state.rho) + + (-screened_rates(k_Co56_n_to_He4_Mn53_reaclib)*Y(Co56)*Y(N)*state.rho + screened_rates(k_Mn53_He4_to_n_Co56_derived)*Y(He4)*Y(Mn53)*state.rho) + + (-screened_rates(k_Co57_n_to_p_Fe57_reaclib)*Y(Co57)*Y(N)*state.rho + screened_rates(k_Fe57_p_to_n_Co57_derived)*Y(Fe57)*Y(H1)*state.rho) + + (-screened_rates(k_Co57_n_to_He4_Mn54_reaclib)*Y(Co57)*Y(N)*state.rho + screened_rates(k_Mn54_He4_to_n_Co57_derived)*Y(He4)*Y(Mn54)*state.rho) + + (-screened_rates(k_Co58_n_to_p_Fe58_reaclib)*Y(Co58)*Y(N)*state.rho + screened_rates(k_Fe58_p_to_n_Co58_derived)*Y(Fe58)*Y(H1)*state.rho) + + (-screened_rates(k_Co58_n_to_He4_Mn55_reaclib)*Y(Co58)*Y(N)*state.rho + screened_rates(k_Mn55_He4_to_n_Co58_derived)*Y(He4)*Y(Mn55)*state.rho) + + (-screened_rates(k_Ni56_n_to_p_Co56_reaclib)*Y(Ni56)*Y(N)*state.rho + screened_rates(k_Co56_p_to_n_Ni56_derived)*Y(Co56)*Y(H1)*state.rho) + + (-screened_rates(k_Ni56_n_to_He4_Fe53_reaclib)*Y(Ni56)*Y(N)*state.rho + screened_rates(k_Fe53_He4_to_n_Ni56_derived)*Y(Fe53)*Y(He4)*state.rho) + + (-screened_rates(k_Ni57_n_to_p_Co57_reaclib)*Y(Ni57)*Y(N)*state.rho + screened_rates(k_Co57_p_to_n_Ni57_derived)*Y(Co57)*Y(H1)*state.rho) + + (-screened_rates(k_Ni57_n_to_He4_Fe54_reaclib)*Y(Ni57)*Y(N)*state.rho + screened_rates(k_Fe54_He4_to_n_Ni57_derived)*Y(Fe54)*Y(He4)*state.rho) + + (-screened_rates(k_Ni58_n_to_p_Co58_reaclib)*Y(Ni58)*Y(N)*state.rho + screened_rates(k_Co58_p_to_n_Ni58_derived)*Y(Co58)*Y(H1)*state.rho) + + (-screened_rates(k_Ni58_n_to_He4_Fe55_reaclib)*Y(Ni58)*Y(N)*state.rho + screened_rates(k_Fe55_He4_to_n_Ni58_derived)*Y(Fe55)*Y(He4)*state.rho) + + (-screened_rates(k_Ni59_n_to_p_Co59_reaclib)*Y(Ni59)*Y(N)*state.rho + screened_rates(k_Co59_p_to_n_Ni59_derived)*Y(Co59)*Y(H1)*state.rho) + + (-screened_rates(k_Ni59_n_to_He4_Fe56_reaclib)*Y(Ni59)*Y(N)*state.rho + screened_rates(k_Fe56_He4_to_n_Ni59_derived)*Y(Fe56)*Y(He4)*state.rho) + + (-screened_rates(k_Ni60_n_to_He4_Fe57_reaclib)*Y(Ni60)*Y(N)*state.rho + screened_rates(k_Fe57_He4_to_n_Ni60_derived)*Y(Fe57)*Y(He4)*state.rho) + + (-screened_rates(k_Ni61_n_to_He4_Fe58_reaclib)*Y(Ni61)*Y(N)*state.rho + screened_rates(k_Fe58_He4_to_n_Ni61_derived)*Y(Fe58)*Y(He4)*state.rho) + + (-screened_rates(k_Cu57_n_to_p_Ni57_reaclib)*Y(Cu57)*Y(N)*state.rho + screened_rates(k_Ni57_p_to_n_Cu57_derived)*Y(Ni57)*Y(H1)*state.rho) + + (-screened_rates(k_Cu57_n_to_He4_Co54_reaclib)*Y(Cu57)*Y(N)*state.rho + screened_rates(k_Co54_He4_to_n_Cu57_derived)*Y(Co54)*Y(He4)*state.rho) + + (-screened_rates(k_Cu58_n_to_p_Ni58_reaclib)*Y(Cu58)*Y(N)*state.rho + screened_rates(k_Ni58_p_to_n_Cu58_derived)*Y(Ni58)*Y(H1)*state.rho) + + (-screened_rates(k_Cu58_n_to_He4_Co55_reaclib)*Y(Cu58)*Y(N)*state.rho + screened_rates(k_Co55_He4_to_n_Cu58_derived)*Y(Co55)*Y(He4)*state.rho) + + (-screened_rates(k_Cu59_n_to_p_Ni59_reaclib)*Y(Cu59)*Y(N)*state.rho + screened_rates(k_Ni59_p_to_n_Cu59_derived)*Y(Ni59)*Y(H1)*state.rho) + + (-screened_rates(k_Cu59_n_to_He4_Co56_reaclib)*Y(Cu59)*Y(N)*state.rho + screened_rates(k_Co56_He4_to_n_Cu59_derived)*Y(Co56)*Y(He4)*state.rho) + + (-screened_rates(k_Cu60_n_to_p_Ni60_reaclib)*Y(Cu60)*Y(N)*state.rho + screened_rates(k_Ni60_p_to_n_Cu60_derived)*Y(Ni60)*Y(H1)*state.rho) + + (-screened_rates(k_Cu60_n_to_He4_Co57_reaclib)*Y(Cu60)*Y(N)*state.rho + screened_rates(k_Co57_He4_to_n_Cu60_derived)*Y(Co57)*Y(He4)*state.rho) + + (-screened_rates(k_Cu61_n_to_p_Ni61_reaclib)*Y(Cu61)*Y(N)*state.rho + screened_rates(k_Ni61_p_to_n_Cu61_derived)*Y(Ni61)*Y(H1)*state.rho) + + (-screened_rates(k_Cu61_n_to_He4_Co58_reaclib)*Y(Cu61)*Y(N)*state.rho + screened_rates(k_Co58_He4_to_n_Cu61_derived)*Y(Co58)*Y(He4)*state.rho) + + (-screened_rates(k_Cu62_n_to_p_Ni62_reaclib)*Y(Cu62)*Y(N)*state.rho + screened_rates(k_Ni62_p_to_n_Cu62_derived)*Y(Ni62)*Y(H1)*state.rho) + + (-screened_rates(k_Cu62_n_to_He4_Co59_reaclib)*Y(Cu62)*Y(N)*state.rho + screened_rates(k_Co59_He4_to_n_Cu62_derived)*Y(Co59)*Y(He4)*state.rho) + + (-screened_rates(k_Cu63_n_to_p_Ni63_reaclib)*Y(Cu63)*Y(N)*state.rho + screened_rates(k_Ni63_p_to_n_Cu63_derived)*Y(Ni63)*Y(H1)*state.rho) + + (-screened_rates(k_Cu64_n_to_p_Ni64_reaclib)*Y(Cu64)*Y(N)*state.rho + screened_rates(k_Ni64_p_to_n_Cu64_derived)*Y(Ni64)*Y(H1)*state.rho) + + (-screened_rates(k_Zn59_n_to_p_Cu59_reaclib)*Y(Zn59)*Y(N)*state.rho + screened_rates(k_Cu59_p_to_n_Zn59_derived)*Y(Cu59)*Y(H1)*state.rho) + + (-screened_rates(k_Zn59_n_to_He4_Ni56_reaclib)*Y(Zn59)*Y(N)*state.rho + screened_rates(k_Ni56_He4_to_n_Zn59_derived)*Y(He4)*Y(Ni56)*state.rho) + + (-screened_rates(k_Zn60_n_to_p_Cu60_reaclib)*Y(Zn60)*Y(N)*state.rho + screened_rates(k_Cu60_p_to_n_Zn60_derived)*Y(Cu60)*Y(H1)*state.rho) + + (-screened_rates(k_Zn60_n_to_He4_Ni57_reaclib)*Y(Zn60)*Y(N)*state.rho + screened_rates(k_Ni57_He4_to_n_Zn60_derived)*Y(He4)*Y(Ni57)*state.rho) + + (-screened_rates(k_Zn61_n_to_p_Cu61_reaclib)*Y(Zn61)*Y(N)*state.rho + screened_rates(k_Cu61_p_to_n_Zn61_derived)*Y(Cu61)*Y(H1)*state.rho) + + (-screened_rates(k_Zn61_n_to_He4_Ni58_reaclib)*Y(Zn61)*Y(N)*state.rho + screened_rates(k_Ni58_He4_to_n_Zn61_derived)*Y(He4)*Y(Ni58)*state.rho) + + (-screened_rates(k_Zn62_n_to_p_Cu62_reaclib)*Y(Zn62)*Y(N)*state.rho + screened_rates(k_Cu62_p_to_n_Zn62_derived)*Y(Cu62)*Y(H1)*state.rho) + + (-screened_rates(k_Zn62_n_to_He4_Ni59_reaclib)*Y(Zn62)*Y(N)*state.rho + screened_rates(k_Ni59_He4_to_n_Zn62_derived)*Y(He4)*Y(Ni59)*state.rho) + + (-screened_rates(k_Zn63_n_to_p_Cu63_reaclib)*Y(Zn63)*Y(N)*state.rho + screened_rates(k_Cu63_p_to_n_Zn63_derived)*Y(Cu63)*Y(H1)*state.rho) + + (-screened_rates(k_Zn63_n_to_He4_Ni60_reaclib)*Y(Zn63)*Y(N)*state.rho + screened_rates(k_Ni60_He4_to_n_Zn63_derived)*Y(He4)*Y(Ni60)*state.rho) + + (-screened_rates(k_Zn64_n_to_p_Cu64_reaclib)*Y(Zn64)*Y(N)*state.rho + screened_rates(k_Cu64_p_to_n_Zn64_derived)*Y(Cu64)*Y(H1)*state.rho) + + (-screened_rates(k_Zn64_n_to_He4_Ni61_reaclib)*Y(Zn64)*Y(N)*state.rho + screened_rates(k_Ni61_He4_to_n_Zn64_derived)*Y(He4)*Y(Ni61)*state.rho) + + (-screened_rates(k_Zn65_n_to_p_Cu65_reaclib)*Y(Zn65)*Y(N)*state.rho + screened_rates(k_Cu65_p_to_n_Zn65_derived)*Y(Cu65)*Y(H1)*state.rho) + + (-screened_rates(k_Zn65_n_to_He4_Ni62_reaclib)*Y(Zn65)*Y(N)*state.rho + screened_rates(k_Ni62_He4_to_n_Zn65_derived)*Y(He4)*Y(Ni62)*state.rho) + + (-screened_rates(k_Zn66_n_to_He4_Ni63_reaclib)*Y(Zn66)*Y(N)*state.rho + screened_rates(k_Ni63_He4_to_n_Zn66_derived)*Y(He4)*Y(Ni63)*state.rho) + + (-screened_rates(k_Ga62_n_to_p_Zn62_reaclib)*Y(Ga62)*Y(N)*state.rho + screened_rates(k_Zn62_p_to_n_Ga62_derived)*Y(Zn62)*Y(H1)*state.rho) + + (-screened_rates(k_Ga62_n_to_He4_Cu59_reaclib)*Y(Ga62)*Y(N)*state.rho + screened_rates(k_Cu59_He4_to_n_Ga62_derived)*Y(Cu59)*Y(He4)*state.rho) + + (-screened_rates(k_Ga63_n_to_p_Zn63_reaclib)*Y(Ga63)*Y(N)*state.rho + screened_rates(k_Zn63_p_to_n_Ga63_derived)*Y(Zn63)*Y(H1)*state.rho) + + (-screened_rates(k_Ga63_n_to_He4_Cu60_reaclib)*Y(Ga63)*Y(N)*state.rho + screened_rates(k_Cu60_He4_to_n_Ga63_derived)*Y(Cu60)*Y(He4)*state.rho) + + (-screened_rates(k_Ga64_n_to_p_Zn64_reaclib)*Y(Ga64)*Y(N)*state.rho + screened_rates(k_Zn64_p_to_n_Ga64_derived)*Y(Zn64)*Y(H1)*state.rho) + + (-screened_rates(k_Ga64_n_to_He4_Cu61_reaclib)*Y(Ga64)*Y(N)*state.rho + screened_rates(k_Cu61_He4_to_n_Ga64_derived)*Y(Cu61)*Y(He4)*state.rho) + + (-screened_rates(k_Ge63_n_to_p_Ga63_reaclib)*Y(Ge63)*Y(N)*state.rho + screened_rates(k_Ga63_p_to_n_Ge63_derived)*Y(Ga63)*Y(H1)*state.rho) + + (-screened_rates(k_Ge63_n_to_He4_Zn60_reaclib)*Y(Ge63)*Y(N)*state.rho + screened_rates(k_Zn60_He4_to_n_Ge63_derived)*Y(He4)*Y(Zn60)*state.rho) + + (-screened_rates(k_Ge64_n_to_p_Ga64_reaclib)*Y(Ge64)*Y(N)*state.rho + screened_rates(k_Ga64_p_to_n_Ge64_derived)*Y(Ga64)*Y(H1)*state.rho) + + (-screened_rates(k_Ge64_n_to_He4_Zn61_reaclib)*Y(Ge64)*Y(N)*state.rho + screened_rates(k_Zn61_He4_to_n_Ge64_derived)*Y(He4)*Y(Zn61)*state.rho) + + (screened_rates(k_Li7_d_to_n_He4_He4_reaclib)*Y(Li7)*Y(H2)*state.rho + -0.5*screened_rates(k_He4_He4_n_to_d_Li7_derived)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<2>(state.rho)) + + (-screened_rates(k_B8_n_to_p_He4_He4_reaclib)*Y(B8)*Y(N)*state.rho + 0.5*screened_rates(k_He4_He4_p_to_n_B8_derived)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<2>(state.rho)) + + (screened_rates(k_Li7_He3_to_n_p_He4_He4_reaclib)*Y(He3)*Y(Li7)*state.rho + -0.5*screened_rates(k_He4_He4_p_n_to_He3_Li7_derived)*amrex::Math::powi<2>(Y(He4))*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho)) + + (-screened_rates(k_He4_p_n_to_Li6_reaclib)*Y(He4)*Y(N)*Y(H1)*amrex::Math::powi<2>(state.rho) + screened_rates(k_Li6_to_n_p_He4_derived)*Y(Li6)) + + (-0.5*screened_rates(k_He4_He4_n_to_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<2>(state.rho) + screened_rates(k_Be9_to_n_He4_He4_derived)*Y(Be9)) + + (-0.5*screened_rates(k_p_p_n_to_p_d_reaclib)*Y(N)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho) + screened_rates(k_d_p_to_n_p_p_derived)*Y(H2)*Y(H1)*state.rho) + + (-screened_rates(k_n_to_p_beta_neg_weaktab)*Y(N) + screened_rates(k_p_to_n_electron_capture_weaktab)*Y(H1)) + + (-screened_rates(k_N13_n_to_p_C13_derived)*Y(N13)*Y(N)*state.rho + screened_rates(k_C13_p_to_n_N13_reaclib)*Y(C13)*Y(H1)*state.rho) + + (-screened_rates(k_O14_n_to_p_N14_derived)*Y(O14)*Y(N)*state.rho + screened_rates(k_N14_p_to_n_O14_reaclib)*Y(N14)*Y(H1)*state.rho) + + (-screened_rates(k_O15_n_to_p_N15_derived)*Y(O15)*Y(N)*state.rho + screened_rates(k_N15_p_to_n_O15_reaclib)*Y(N15)*Y(H1)*state.rho) + + (-screened_rates(k_F17_n_to_He4_N14_derived)*Y(F17)*Y(N)*state.rho + screened_rates(k_N14_He4_to_n_F17_reaclib)*Y(He4)*Y(N14)*state.rho) + + (-screened_rates(k_Ne19_n_to_p_F19_derived)*Y(Ne19)*Y(N)*state.rho + screened_rates(k_F19_p_to_n_Ne19_reaclib)*Y(F19)*Y(H1)*state.rho) + + (-screened_rates(k_Ne21_n_to_He4_O18_derived)*Y(Ne21)*Y(N)*state.rho + screened_rates(k_O18_He4_to_n_Ne21_reaclib)*Y(He4)*Y(O18)*state.rho) + + (-screened_rates(k_Mg23_n_to_p_Na23_derived)*Y(Mg23)*Y(N)*state.rho + screened_rates(k_Na23_p_to_n_Mg23_reaclib)*Y(Na23)*Y(H1)*state.rho) + + (-screened_rates(k_Mg25_n_to_He4_Ne22_derived)*Y(Mg25)*Y(N)*state.rho + screened_rates(k_Ne22_He4_to_n_Mg25_reaclib)*Y(He4)*Y(Ne22)*state.rho) + + (-screened_rates(k_P30_n_to_He4_Al27_derived)*Y(P30)*Y(N)*state.rho + screened_rates(k_Al27_He4_to_n_P30_reaclib)*Y(Al27)*Y(He4)*state.rho) + + (-screened_rates(k_Ar37_n_to_He4_S34_derived)*Y(Ar37)*Y(N)*state.rho + screened_rates(k_S34_He4_to_n_Ar37_reaclib)*Y(He4)*Y(S34)*state.rho) + + (-screened_rates(k_Ca41_n_to_p_K41_derived)*Y(Ca41)*Y(N)*state.rho + screened_rates(k_K41_p_to_n_Ca41_reaclib)*Y(K41)*Y(H1)*state.rho) + + (-screened_rates(k_Sc44_n_to_He4_K41_derived)*Y(Sc44)*Y(N)*state.rho + screened_rates(k_K41_He4_to_n_Sc44_reaclib)*Y(He4)*Y(K41)*state.rho) + + (-0.5*screened_rates(k_He4_He4_p_n_to_p_Be9_derived)*amrex::Math::powi<2>(Y(He4))*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho) + screened_rates(k_Be9_p_to_n_p_He4_He4_reaclib)*Y(Be9)*Y(H1)*state.rho); ydot_nuc(H1) = - screened_rates(k_Zn59_to_p_Ni58_reaclib)*Y(Zn59) + - (-screened_rates(k_n_p_to_d_reaclib)*Y(N)*Y(H1)*state.rho + screened_rates(k_d_to_n_p_reaclib)*Y(H2)) + - -screened_rates(k_p_p_to_d_reaclib_beta_pos)*amrex::Math::powi<2>(Y(H1))*state.rho + - -screened_rates(k_p_p_to_d_reaclib_electron_capture)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho)*state.y_e + - (-screened_rates(k_p_d_to_He3_reaclib)*Y(H2)*Y(H1)*state.rho + screened_rates(k_He3_to_p_d_reaclib)*Y(He3)) + - -screened_rates(k_p_He3_to_He4_reaclib)*Y(He3)*Y(H1)*state.rho + - (-screened_rates(k_p_Li6_to_Be7_reaclib)*Y(Li6)*Y(H1)*state.rho + screened_rates(k_Be7_to_p_Li6_reaclib)*Y(Be7)) + - (-screened_rates(k_p_Be7_to_B8_reaclib)*Y(Be7)*Y(H1)*state.rho + screened_rates(k_B8_to_p_Be7_reaclib)*Y(B8)) + - (-screened_rates(k_p_Be9_to_B10_reaclib)*Y(Be9)*Y(H1)*state.rho + screened_rates(k_B10_to_p_Be9_reaclib)*Y(B10)) + - (-screened_rates(k_p_B11_to_C12_reaclib)*Y(B11)*Y(H1)*state.rho + screened_rates(k_C12_to_p_B11_reaclib)*Y(C12)) + - (-screened_rates(k_p_C12_to_N13_reaclib)*Y(C12)*Y(H1)*state.rho + screened_rates(k_N13_to_p_C12_reaclib)*Y(N13)) + - (-screened_rates(k_p_C13_to_N14_reaclib)*Y(C13)*Y(H1)*state.rho + screened_rates(k_N14_to_p_C13_reaclib)*Y(N14)) + - (-screened_rates(k_p_C14_to_N15_reaclib)*Y(C14)*Y(H1)*state.rho + screened_rates(k_N15_to_p_C14_reaclib)*Y(N15)) + - (-screened_rates(k_p_N13_to_O14_reaclib)*Y(N13)*Y(H1)*state.rho + screened_rates(k_O14_to_p_N13_reaclib)*Y(O14)) + - (-screened_rates(k_p_N14_to_O15_reaclib)*Y(N14)*Y(H1)*state.rho + screened_rates(k_O15_to_p_N14_reaclib)*Y(O15)) + - (-screened_rates(k_p_N15_to_O16_reaclib)*Y(N15)*Y(H1)*state.rho + screened_rates(k_O16_to_p_N15_reaclib)*Y(O16)) + - (-screened_rates(k_p_O16_to_F17_reaclib)*Y(O16)*Y(H1)*state.rho + screened_rates(k_F17_to_p_O16_reaclib)*Y(F17)) + - (-screened_rates(k_p_O17_to_F18_reaclib)*Y(O17)*Y(H1)*state.rho + screened_rates(k_F18_to_p_O17_reaclib)*Y(F18)) + - (-screened_rates(k_p_O18_to_F19_reaclib)*Y(O18)*Y(H1)*state.rho + screened_rates(k_F19_to_p_O18_reaclib)*Y(F19)) + - (-screened_rates(k_p_F17_to_Ne18_reaclib)*Y(F17)*Y(H1)*state.rho + screened_rates(k_Ne18_to_p_F17_reaclib)*Y(Ne18)) + - (-screened_rates(k_p_F18_to_Ne19_reaclib)*Y(F18)*Y(H1)*state.rho + screened_rates(k_Ne19_to_p_F18_reaclib)*Y(Ne19)) + - (-screened_rates(k_p_F19_to_Ne20_reaclib)*Y(F19)*Y(H1)*state.rho + screened_rates(k_Ne20_to_p_F19_reaclib)*Y(Ne20)) + - (-screened_rates(k_p_Ne20_to_Na21_reaclib)*Y(Ne20)*Y(H1)*state.rho + screened_rates(k_Na21_to_p_Ne20_reaclib)*Y(Na21)) + - (-screened_rates(k_p_Ne21_to_Na22_reaclib)*Y(Ne21)*Y(H1)*state.rho + screened_rates(k_Na22_to_p_Ne21_reaclib)*Y(Na22)) + - (-screened_rates(k_p_Ne22_to_Na23_reaclib)*Y(Ne22)*Y(H1)*state.rho + screened_rates(k_Na23_to_p_Ne22_reaclib)*Y(Na23)) + - (-screened_rates(k_p_Na22_to_Mg23_reaclib)*Y(Na22)*Y(H1)*state.rho + screened_rates(k_Mg23_to_p_Na22_reaclib)*Y(Mg23)) + - (-screened_rates(k_p_Na23_to_Mg24_reaclib)*Y(Na23)*Y(H1)*state.rho + screened_rates(k_Mg24_to_p_Na23_reaclib)*Y(Mg24)) + - (-screened_rates(k_p_Mg24_to_Al25_reaclib)*Y(Mg24)*Y(H1)*state.rho + screened_rates(k_Al25_to_p_Mg24_reaclib)*Y(Al25)) + - (-screened_rates(k_p_Mg25_to_Al26_reaclib)*Y(Mg25)*Y(H1)*state.rho + screened_rates(k_Al26_to_p_Mg25_reaclib)*Y(Al26)) + - (-screened_rates(k_p_Mg26_to_Al27_reaclib)*Y(Mg26)*Y(H1)*state.rho + screened_rates(k_Al27_to_p_Mg26_reaclib)*Y(Al27)) + - (-screened_rates(k_p_Al27_to_Si28_reaclib)*Y(Al27)*Y(H1)*state.rho + screened_rates(k_Si28_to_p_Al27_reaclib)*Y(Si28)) + - (-screened_rates(k_p_Si28_to_P29_reaclib)*Y(Si28)*Y(H1)*state.rho + screened_rates(k_P29_to_p_Si28_reaclib)*Y(P29)) + - (-screened_rates(k_p_Si29_to_P30_reaclib)*Y(Si29)*Y(H1)*state.rho + screened_rates(k_P30_to_p_Si29_reaclib)*Y(P30)) + - (-screened_rates(k_p_Si30_to_P31_reaclib)*Y(Si30)*Y(H1)*state.rho + screened_rates(k_P31_to_p_Si30_reaclib)*Y(P31)) + - (-screened_rates(k_p_Si31_to_P32_reaclib)*Y(Si31)*Y(H1)*state.rho + screened_rates(k_P32_to_p_Si31_reaclib)*Y(P32)) + - (-screened_rates(k_p_Si32_to_P33_reaclib)*Y(Si32)*Y(H1)*state.rho + screened_rates(k_P33_to_p_Si32_reaclib)*Y(P33)) + - (-screened_rates(k_p_P31_to_S32_reaclib)*Y(P31)*Y(H1)*state.rho + screened_rates(k_S32_to_p_P31_reaclib)*Y(S32)) + - (-screened_rates(k_p_P32_to_S33_reaclib)*Y(P32)*Y(H1)*state.rho + screened_rates(k_S33_to_p_P32_reaclib)*Y(S33)) + - (-screened_rates(k_p_P33_to_S34_reaclib)*Y(P33)*Y(H1)*state.rho + screened_rates(k_S34_to_p_P33_reaclib)*Y(S34)) + - (-screened_rates(k_p_S32_to_Cl33_reaclib)*Y(S32)*Y(H1)*state.rho + screened_rates(k_Cl33_to_p_S32_reaclib)*Y(Cl33)) + - (-screened_rates(k_p_S33_to_Cl34_reaclib)*Y(S33)*Y(H1)*state.rho + screened_rates(k_Cl34_to_p_S33_reaclib)*Y(Cl34)) + - (-screened_rates(k_p_S34_to_Cl35_reaclib)*Y(S34)*Y(H1)*state.rho + screened_rates(k_Cl35_to_p_S34_reaclib)*Y(Cl35)) + - (-screened_rates(k_p_S35_to_Cl36_reaclib)*Y(S35)*Y(H1)*state.rho + screened_rates(k_Cl36_to_p_S35_reaclib)*Y(Cl36)) + - (-screened_rates(k_p_S36_to_Cl37_reaclib)*Y(S36)*Y(H1)*state.rho + screened_rates(k_Cl37_to_p_S36_reaclib)*Y(Cl37)) + - (-screened_rates(k_p_Cl35_to_Ar36_reaclib)*Y(Cl35)*Y(H1)*state.rho + screened_rates(k_Ar36_to_p_Cl35_reaclib)*Y(Ar36)) + - (-screened_rates(k_p_Cl36_to_Ar37_reaclib)*Y(Cl36)*Y(H1)*state.rho + screened_rates(k_Ar37_to_p_Cl36_reaclib)*Y(Ar37)) + - (-screened_rates(k_p_Cl37_to_Ar38_reaclib)*Y(Cl37)*Y(H1)*state.rho + screened_rates(k_Ar38_to_p_Cl37_reaclib)*Y(Ar38)) + - (-screened_rates(k_p_Ar36_to_K37_reaclib)*Y(Ar36)*Y(H1)*state.rho + screened_rates(k_K37_to_p_Ar36_reaclib)*Y(K37)) + - (-screened_rates(k_p_Ar37_to_K38_reaclib)*Y(Ar37)*Y(H1)*state.rho + screened_rates(k_K38_to_p_Ar37_reaclib)*Y(K38)) + - (-screened_rates(k_p_Ar38_to_K39_reaclib)*Y(Ar38)*Y(H1)*state.rho + screened_rates(k_K39_to_p_Ar38_reaclib)*Y(K39)) + - (-screened_rates(k_p_Ar39_to_K40_reaclib)*Y(Ar39)*Y(H1)*state.rho + screened_rates(k_K40_to_p_Ar39_reaclib)*Y(K40)) + - (-screened_rates(k_p_Ar40_to_K41_reaclib)*Y(Ar40)*Y(H1)*state.rho + screened_rates(k_K41_to_p_Ar40_reaclib)*Y(K41)) + - (-screened_rates(k_p_K39_to_Ca40_reaclib)*Y(K39)*Y(H1)*state.rho + screened_rates(k_Ca40_to_p_K39_reaclib)*Y(Ca40)) + - (-screened_rates(k_p_K40_to_Ca41_reaclib)*Y(K40)*Y(H1)*state.rho + screened_rates(k_Ca41_to_p_K40_reaclib)*Y(Ca41)) + - (-screened_rates(k_p_K41_to_Ca42_reaclib)*Y(K41)*Y(H1)*state.rho + screened_rates(k_Ca42_to_p_K41_reaclib)*Y(Ca42)) + - (-screened_rates(k_p_Ca42_to_Sc43_reaclib)*Y(Ca42)*Y(H1)*state.rho + screened_rates(k_Sc43_to_p_Ca42_reaclib)*Y(Sc43)) + - (-screened_rates(k_p_Ca43_to_Sc44_reaclib)*Y(Ca43)*Y(H1)*state.rho + screened_rates(k_Sc44_to_p_Ca43_reaclib)*Y(Sc44)) + - (-screened_rates(k_p_Ca44_to_Sc45_reaclib)*Y(Ca44)*Y(H1)*state.rho + screened_rates(k_Sc45_to_p_Ca44_reaclib)*Y(Sc45)) + - (-screened_rates(k_p_Ca45_to_Sc46_reaclib)*Y(Ca45)*Y(H1)*state.rho + screened_rates(k_Sc46_to_p_Ca45_reaclib)*Y(Sc46)) + - (-screened_rates(k_p_Ca46_to_Sc47_reaclib)*Y(Ca46)*Y(H1)*state.rho + screened_rates(k_Sc47_to_p_Ca46_reaclib)*Y(Sc47)) + - (-screened_rates(k_p_Ca47_to_Sc48_reaclib)*Y(Ca47)*Y(H1)*state.rho + screened_rates(k_Sc48_to_p_Ca47_reaclib)*Y(Sc48)) + - (-screened_rates(k_p_Ca48_to_Sc49_reaclib)*Y(Ca48)*Y(H1)*state.rho + screened_rates(k_Sc49_to_p_Ca48_reaclib)*Y(Sc49)) + - (-screened_rates(k_p_Sc43_to_Ti44_reaclib)*Y(Sc43)*Y(H1)*state.rho + screened_rates(k_Ti44_to_p_Sc43_reaclib)*Y(Ti44)) + - (-screened_rates(k_p_Sc44_to_Ti45_reaclib)*Y(Sc44)*Y(H1)*state.rho + screened_rates(k_Ti45_to_p_Sc44_reaclib)*Y(Ti45)) + - (-screened_rates(k_p_Sc45_to_Ti46_reaclib)*Y(Sc45)*Y(H1)*state.rho + screened_rates(k_Ti46_to_p_Sc45_reaclib)*Y(Ti46)) + - (-screened_rates(k_p_Sc46_to_Ti47_reaclib)*Y(Sc46)*Y(H1)*state.rho + screened_rates(k_Ti47_to_p_Sc46_reaclib)*Y(Ti47)) + - (-screened_rates(k_p_Sc47_to_Ti48_reaclib)*Y(Sc47)*Y(H1)*state.rho + screened_rates(k_Ti48_to_p_Sc47_reaclib)*Y(Ti48)) + - (-screened_rates(k_p_Sc48_to_Ti49_reaclib)*Y(Sc48)*Y(H1)*state.rho + screened_rates(k_Ti49_to_p_Sc48_reaclib)*Y(Ti49)) + - (-screened_rates(k_p_Sc49_to_Ti50_reaclib)*Y(Sc49)*Y(H1)*state.rho + screened_rates(k_Ti50_to_p_Sc49_reaclib)*Y(Ti50)) + - (-screened_rates(k_p_Ti45_to_V46_reaclib)*Y(Ti45)*Y(H1)*state.rho + screened_rates(k_V46_to_p_Ti45_reaclib)*Y(V46)) + - (-screened_rates(k_p_Ti46_to_V47_reaclib)*Y(Ti46)*Y(H1)*state.rho + screened_rates(k_V47_to_p_Ti46_reaclib)*Y(V47)) + - (-screened_rates(k_p_Ti47_to_V48_reaclib)*Y(Ti47)*Y(H1)*state.rho + screened_rates(k_V48_to_p_Ti47_reaclib)*Y(V48)) + - (-screened_rates(k_p_Ti48_to_V49_reaclib)*Y(Ti48)*Y(H1)*state.rho + screened_rates(k_V49_to_p_Ti48_reaclib)*Y(V49)) + - (-screened_rates(k_p_Ti49_to_V50_reaclib)*Y(Ti49)*Y(H1)*state.rho + screened_rates(k_V50_to_p_Ti49_reaclib)*Y(V50)) + - (-screened_rates(k_p_Ti50_to_V51_reaclib)*Y(Ti50)*Y(H1)*state.rho + screened_rates(k_V51_to_p_Ti50_reaclib)*Y(V51)) + - (-screened_rates(k_p_Ti51_to_V52_reaclib)*Y(Ti51)*Y(H1)*state.rho + screened_rates(k_V52_to_p_Ti51_reaclib)*Y(V52)) + - (-screened_rates(k_p_V47_to_Cr48_reaclib)*Y(V47)*Y(H1)*state.rho + screened_rates(k_Cr48_to_p_V47_reaclib)*Y(Cr48)) + - (-screened_rates(k_p_V48_to_Cr49_reaclib)*Y(V48)*Y(H1)*state.rho + screened_rates(k_Cr49_to_p_V48_reaclib)*Y(Cr49)) + - (-screened_rates(k_p_V49_to_Cr50_reaclib)*Y(V49)*Y(H1)*state.rho + screened_rates(k_Cr50_to_p_V49_reaclib)*Y(Cr50)) + - (-screened_rates(k_p_V50_to_Cr51_reaclib)*Y(V50)*Y(H1)*state.rho + screened_rates(k_Cr51_to_p_V50_reaclib)*Y(Cr51)) + - (-screened_rates(k_p_V51_to_Cr52_reaclib)*Y(V51)*Y(H1)*state.rho + screened_rates(k_Cr52_to_p_V51_reaclib)*Y(Cr52)) + - (-screened_rates(k_p_V52_to_Cr53_reaclib)*Y(V52)*Y(H1)*state.rho + screened_rates(k_Cr53_to_p_V52_reaclib)*Y(Cr53)) + - (-screened_rates(k_p_Cr49_to_Mn50_reaclib)*Y(Cr49)*Y(H1)*state.rho + screened_rates(k_Mn50_to_p_Cr49_reaclib)*Y(Mn50)) + - (-screened_rates(k_p_Cr50_to_Mn51_reaclib)*Y(Cr50)*Y(H1)*state.rho + screened_rates(k_Mn51_to_p_Cr50_reaclib)*Y(Mn51)) + - (-screened_rates(k_p_Cr51_to_Mn52_reaclib)*Y(Cr51)*Y(H1)*state.rho + screened_rates(k_Mn52_to_p_Cr51_reaclib)*Y(Mn52)) + - (-screened_rates(k_p_Cr52_to_Mn53_reaclib)*Y(Cr52)*Y(H1)*state.rho + screened_rates(k_Mn53_to_p_Cr52_reaclib)*Y(Mn53)) + - (-screened_rates(k_p_Cr53_to_Mn54_reaclib)*Y(Cr53)*Y(H1)*state.rho + screened_rates(k_Mn54_to_p_Cr53_reaclib)*Y(Mn54)) + - (-screened_rates(k_p_Cr54_to_Mn55_reaclib)*Y(Cr54)*Y(H1)*state.rho + screened_rates(k_Mn55_to_p_Cr54_reaclib)*Y(Mn55)) + - (-screened_rates(k_p_Mn51_to_Fe52_reaclib)*Y(Mn51)*Y(H1)*state.rho + screened_rates(k_Fe52_to_p_Mn51_reaclib)*Y(Fe52)) + - (-screened_rates(k_p_Mn52_to_Fe53_reaclib)*Y(Mn52)*Y(H1)*state.rho + screened_rates(k_Fe53_to_p_Mn52_reaclib)*Y(Fe53)) + - (-screened_rates(k_p_Mn53_to_Fe54_reaclib)*Y(Mn53)*Y(H1)*state.rho + screened_rates(k_Fe54_to_p_Mn53_reaclib)*Y(Fe54)) + - (-screened_rates(k_p_Mn54_to_Fe55_reaclib)*Y(Mn54)*Y(H1)*state.rho + screened_rates(k_Fe55_to_p_Mn54_reaclib)*Y(Fe55)) + - (-screened_rates(k_p_Mn55_to_Fe56_reaclib)*Y(Mn55)*Y(H1)*state.rho + screened_rates(k_Fe56_to_p_Mn55_reaclib)*Y(Fe56)) + - (-screened_rates(k_p_Fe52_to_Co53_reaclib)*Y(Fe52)*Y(H1)*state.rho + screened_rates(k_Co53_to_p_Fe52_reaclib)*Y(Co53)) + - (-screened_rates(k_p_Fe53_to_Co54_reaclib)*Y(Fe53)*Y(H1)*state.rho + screened_rates(k_Co54_to_p_Fe53_reaclib)*Y(Co54)) + - (-screened_rates(k_p_Fe54_to_Co55_reaclib)*Y(Fe54)*Y(H1)*state.rho + screened_rates(k_Co55_to_p_Fe54_reaclib)*Y(Co55)) + - (-screened_rates(k_p_Fe55_to_Co56_reaclib)*Y(Fe55)*Y(H1)*state.rho + screened_rates(k_Co56_to_p_Fe55_reaclib)*Y(Co56)) + - (-screened_rates(k_p_Fe56_to_Co57_reaclib)*Y(Fe56)*Y(H1)*state.rho + screened_rates(k_Co57_to_p_Fe56_reaclib)*Y(Co57)) + - (-screened_rates(k_p_Fe57_to_Co58_reaclib)*Y(Fe57)*Y(H1)*state.rho + screened_rates(k_Co58_to_p_Fe57_reaclib)*Y(Co58)) + - (-screened_rates(k_p_Fe58_to_Co59_reaclib)*Y(Fe58)*Y(H1)*state.rho + screened_rates(k_Co59_to_p_Fe58_reaclib)*Y(Co59)) + - (-screened_rates(k_p_Co55_to_Ni56_reaclib)*Y(Co55)*Y(H1)*state.rho + screened_rates(k_Ni56_to_p_Co55_reaclib)*Y(Ni56)) + - (-screened_rates(k_p_Co56_to_Ni57_reaclib)*Y(Co56)*Y(H1)*state.rho + screened_rates(k_Ni57_to_p_Co56_reaclib)*Y(Ni57)) + - (-screened_rates(k_p_Co57_to_Ni58_reaclib)*Y(Co57)*Y(H1)*state.rho + screened_rates(k_Ni58_to_p_Co57_reaclib)*Y(Ni58)) + - (-screened_rates(k_p_Co58_to_Ni59_reaclib)*Y(Co58)*Y(H1)*state.rho + screened_rates(k_Ni59_to_p_Co58_reaclib)*Y(Ni59)) + - (-screened_rates(k_p_Co59_to_Ni60_reaclib)*Y(Co59)*Y(H1)*state.rho + screened_rates(k_Ni60_to_p_Co59_reaclib)*Y(Ni60)) + - (-screened_rates(k_p_Ni56_to_Cu57_reaclib)*Y(Ni56)*Y(H1)*state.rho + screened_rates(k_Cu57_to_p_Ni56_reaclib)*Y(Cu57)) + - (-screened_rates(k_p_Ni57_to_Cu58_reaclib)*Y(Ni57)*Y(H1)*state.rho + screened_rates(k_Cu58_to_p_Ni57_reaclib)*Y(Cu58)) + - (-screened_rates(k_p_Ni58_to_Cu59_reaclib)*Y(Ni58)*Y(H1)*state.rho + screened_rates(k_Cu59_to_p_Ni58_reaclib)*Y(Cu59)) + - (-screened_rates(k_p_Ni59_to_Cu60_reaclib)*Y(Ni59)*Y(H1)*state.rho + screened_rates(k_Cu60_to_p_Ni59_reaclib)*Y(Cu60)) + - (-screened_rates(k_p_Ni60_to_Cu61_reaclib)*Y(Ni60)*Y(H1)*state.rho + screened_rates(k_Cu61_to_p_Ni60_reaclib)*Y(Cu61)) + - (-screened_rates(k_p_Ni61_to_Cu62_reaclib)*Y(Ni61)*Y(H1)*state.rho + screened_rates(k_Cu62_to_p_Ni61_reaclib)*Y(Cu62)) + - (-screened_rates(k_p_Ni62_to_Cu63_reaclib)*Y(Ni62)*Y(H1)*state.rho + screened_rates(k_Cu63_to_p_Ni62_reaclib)*Y(Cu63)) + - (-screened_rates(k_p_Ni63_to_Cu64_reaclib)*Y(Ni63)*Y(H1)*state.rho + screened_rates(k_Cu64_to_p_Ni63_reaclib)*Y(Cu64)) + - (-screened_rates(k_p_Ni64_to_Cu65_reaclib)*Y(Ni64)*Y(H1)*state.rho + screened_rates(k_Cu65_to_p_Ni64_reaclib)*Y(Cu65)) + - (-screened_rates(k_p_Cu58_to_Zn59_reaclib)*Y(Cu58)*Y(H1)*state.rho + screened_rates(k_Zn59_to_p_Cu58_reaclib)*Y(Zn59)) + - (-screened_rates(k_p_Cu59_to_Zn60_reaclib)*Y(Cu59)*Y(H1)*state.rho + screened_rates(k_Zn60_to_p_Cu59_reaclib)*Y(Zn60)) + - (-screened_rates(k_p_Cu60_to_Zn61_reaclib)*Y(Cu60)*Y(H1)*state.rho + screened_rates(k_Zn61_to_p_Cu60_reaclib)*Y(Zn61)) + - (-screened_rates(k_p_Cu61_to_Zn62_reaclib)*Y(Cu61)*Y(H1)*state.rho + screened_rates(k_Zn62_to_p_Cu61_reaclib)*Y(Zn62)) + - (-screened_rates(k_p_Cu62_to_Zn63_reaclib)*Y(Cu62)*Y(H1)*state.rho + screened_rates(k_Zn63_to_p_Cu62_reaclib)*Y(Zn63)) + - (-screened_rates(k_p_Cu63_to_Zn64_reaclib)*Y(Cu63)*Y(H1)*state.rho + screened_rates(k_Zn64_to_p_Cu63_reaclib)*Y(Zn64)) + - (-screened_rates(k_p_Cu64_to_Zn65_reaclib)*Y(Cu64)*Y(H1)*state.rho + screened_rates(k_Zn65_to_p_Cu64_reaclib)*Y(Zn65)) + - (-screened_rates(k_p_Cu65_to_Zn66_reaclib)*Y(Cu65)*Y(H1)*state.rho + screened_rates(k_Zn66_to_p_Cu65_reaclib)*Y(Zn66)) + - (-screened_rates(k_p_Zn61_to_Ga62_reaclib)*Y(Zn61)*Y(H1)*state.rho + screened_rates(k_Ga62_to_p_Zn61_reaclib)*Y(Ga62)) + - (-screened_rates(k_p_Zn62_to_Ga63_reaclib)*Y(Zn62)*Y(H1)*state.rho + screened_rates(k_Ga63_to_p_Zn62_reaclib)*Y(Ga63)) + - (-screened_rates(k_p_Zn63_to_Ga64_reaclib)*Y(Zn63)*Y(H1)*state.rho + screened_rates(k_Ga64_to_p_Zn63_reaclib)*Y(Ga64)) + - (-screened_rates(k_p_Ga62_to_Ge63_reaclib)*Y(Ga62)*Y(H1)*state.rho + screened_rates(k_Ge63_to_p_Ga62_reaclib)*Y(Ge63)) + - (-screened_rates(k_p_Ga63_to_Ge64_reaclib)*Y(Ga63)*Y(H1)*state.rho + screened_rates(k_Ge64_to_p_Ga63_reaclib)*Y(Ge64)) + - (screened_rates(k_d_He3_to_p_He4_reaclib)*Y(He3)*Y(H2)*state.rho + -screened_rates(k_p_He4_to_d_He3_reaclib)*Y(He4)*Y(H1)*state.rho) + - (-screened_rates(k_p_Li6_to_He4_He3_reaclib)*Y(Li6)*Y(H1)*state.rho + screened_rates(k_He4_He3_to_p_Li6_reaclib)*Y(He3)*Y(He4)*state.rho) + - (screened_rates(k_d_Li6_to_p_Li7_reaclib)*Y(Li6)*Y(H2)*state.rho + -screened_rates(k_p_Li7_to_d_Li6_reaclib)*Y(Li7)*Y(H1)*state.rho) + - (-screened_rates(k_p_Li7_to_He4_He4_reaclib)*Y(Li7)*Y(H1)*state.rho + 0.5*screened_rates(k_He4_He4_to_p_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*state.rho) + - (screened_rates(k_n_Be7_to_p_Li7_reaclib)*Y(Be7)*Y(N)*state.rho + -screened_rates(k_p_Li7_to_n_Be7_reaclib)*Y(Li7)*Y(H1)*state.rho) + - (-screened_rates(k_p_Be9_to_He4_Li6_reaclib)*Y(Be9)*Y(H1)*state.rho + screened_rates(k_He4_Li6_to_p_Be9_reaclib)*Y(He4)*Y(Li6)*state.rho) + - (-screened_rates(k_p_B10_to_He4_Be7_reaclib)*Y(B10)*Y(H1)*state.rho + screened_rates(k_He4_Be7_to_p_B10_reaclib)*Y(Be7)*Y(He4)*state.rho) + - (screened_rates(k_He4_B10_to_p_C13_reaclib)*Y(B10)*Y(He4)*state.rho + -screened_rates(k_p_C13_to_He4_B10_reaclib)*Y(C13)*Y(H1)*state.rho) + - (screened_rates(k_He4_B11_to_p_C14_reaclib)*Y(B11)*Y(He4)*state.rho + -screened_rates(k_p_C14_to_He4_B11_reaclib)*Y(C14)*Y(H1)*state.rho) + - (0.5*screened_rates(k_C12_C12_to_p_Na23_reaclib)*amrex::Math::powi<2>(Y(C12))*state.rho + -screened_rates(k_p_Na23_to_C12_C12_reaclib)*Y(Na23)*Y(H1)*state.rho) + - (screened_rates(k_n_N13_to_p_C13_reaclib)*Y(N13)*Y(N)*state.rho + -screened_rates(k_p_C13_to_n_N13_reaclib)*Y(C13)*Y(H1)*state.rho) + - (screened_rates(k_He4_N13_to_p_O16_reaclib)*Y(He4)*Y(N13)*state.rho + -screened_rates(k_p_O16_to_He4_N13_reaclib)*Y(O16)*Y(H1)*state.rho) + - (screened_rates(k_n_N14_to_p_C14_reaclib)*Y(N14)*Y(N)*state.rho + -screened_rates(k_p_C14_to_n_N14_reaclib)*Y(C14)*Y(H1)*state.rho) + - (-screened_rates(k_p_N15_to_He4_C12_reaclib)*Y(N15)*Y(H1)*state.rho + screened_rates(k_He4_C12_to_p_N15_reaclib)*Y(C12)*Y(He4)*state.rho) + - (screened_rates(k_n_O14_to_p_N14_reaclib)*Y(O14)*Y(N)*state.rho + -screened_rates(k_p_N14_to_n_O14_reaclib)*Y(N14)*Y(H1)*state.rho) + - (screened_rates(k_He4_O14_to_p_F17_reaclib)*Y(He4)*Y(O14)*state.rho + -screened_rates(k_p_F17_to_He4_O14_reaclib)*Y(F17)*Y(H1)*state.rho) + - (screened_rates(k_n_O15_to_p_N15_reaclib)*Y(O15)*Y(N)*state.rho + -screened_rates(k_p_N15_to_n_O15_reaclib)*Y(N15)*Y(H1)*state.rho) + - (screened_rates(k_C12_O16_to_p_Al27_reaclib)*Y(C12)*Y(O16)*state.rho + -screened_rates(k_p_Al27_to_C12_O16_reaclib)*Y(Al27)*Y(H1)*state.rho) + - (0.5*screened_rates(k_O16_O16_to_p_P31_reaclib)*amrex::Math::powi<2>(Y(O16))*state.rho + -screened_rates(k_p_P31_to_O16_O16_reaclib)*Y(P31)*Y(H1)*state.rho) + - (-screened_rates(k_p_O17_to_He4_N14_reaclib)*Y(O17)*Y(H1)*state.rho + screened_rates(k_He4_N14_to_p_O17_reaclib)*Y(He4)*Y(N14)*state.rho) + - (-screened_rates(k_p_O18_to_He4_N15_reaclib)*Y(O18)*Y(H1)*state.rho + screened_rates(k_He4_N15_to_p_O18_reaclib)*Y(He4)*Y(N15)*state.rho) + - (screened_rates(k_n_F17_to_p_O17_reaclib)*Y(F17)*Y(N)*state.rho + -screened_rates(k_p_O17_to_n_F17_reaclib)*Y(O17)*Y(H1)*state.rho) + - (screened_rates(k_He4_F17_to_p_Ne20_reaclib)*Y(F17)*Y(He4)*state.rho + -screened_rates(k_p_Ne20_to_He4_F17_reaclib)*Y(Ne20)*Y(H1)*state.rho) + - (screened_rates(k_n_F18_to_p_O18_reaclib)*Y(F18)*Y(N)*state.rho + -screened_rates(k_p_O18_to_n_F18_reaclib)*Y(O18)*Y(H1)*state.rho) + - (-screened_rates(k_p_F18_to_He4_O15_reaclib)*Y(F18)*Y(H1)*state.rho + screened_rates(k_He4_O15_to_p_F18_reaclib)*Y(He4)*Y(O15)*state.rho) + - (screened_rates(k_He4_F18_to_p_Ne21_reaclib)*Y(F18)*Y(He4)*state.rho + -screened_rates(k_p_Ne21_to_He4_F18_reaclib)*Y(Ne21)*Y(H1)*state.rho) + - (-screened_rates(k_p_F19_to_He4_O16_reaclib)*Y(F19)*Y(H1)*state.rho + screened_rates(k_He4_O16_to_p_F19_reaclib)*Y(He4)*Y(O16)*state.rho) + - (screened_rates(k_He4_F19_to_p_Ne22_reaclib)*Y(F19)*Y(He4)*state.rho + -screened_rates(k_p_Ne22_to_He4_F19_reaclib)*Y(Ne22)*Y(H1)*state.rho) + - (screened_rates(k_n_Ne18_to_p_F18_reaclib)*Y(Ne18)*Y(N)*state.rho + -screened_rates(k_p_F18_to_n_Ne18_reaclib)*Y(F18)*Y(H1)*state.rho) + - (screened_rates(k_He4_Ne18_to_p_Na21_reaclib)*Y(He4)*Y(Ne18)*state.rho + -screened_rates(k_p_Na21_to_He4_Ne18_reaclib)*Y(Na21)*Y(H1)*state.rho) + - (screened_rates(k_n_Ne19_to_p_F19_reaclib)*Y(Ne19)*Y(N)*state.rho + -screened_rates(k_p_F19_to_n_Ne19_reaclib)*Y(F19)*Y(H1)*state.rho) + - (screened_rates(k_He4_Ne19_to_p_Na22_reaclib)*Y(He4)*Y(Ne19)*state.rho + -screened_rates(k_p_Na22_to_He4_Ne19_reaclib)*Y(Na22)*Y(H1)*state.rho) + - (screened_rates(k_C12_Ne20_to_p_P31_reaclib)*Y(C12)*Y(Ne20)*state.rho + -screened_rates(k_p_P31_to_C12_Ne20_reaclib)*Y(P31)*Y(H1)*state.rho) + - (screened_rates(k_n_Na21_to_p_Ne21_reaclib)*Y(Na21)*Y(N)*state.rho + -screened_rates(k_p_Ne21_to_n_Na21_reaclib)*Y(Ne21)*Y(H1)*state.rho) + - (screened_rates(k_He4_Na21_to_p_Mg24_reaclib)*Y(He4)*Y(Na21)*state.rho + -screened_rates(k_p_Mg24_to_He4_Na21_reaclib)*Y(Mg24)*Y(H1)*state.rho) + - (screened_rates(k_n_Na22_to_p_Ne22_reaclib)*Y(Na22)*Y(N)*state.rho + -screened_rates(k_p_Ne22_to_n_Na22_reaclib)*Y(Ne22)*Y(H1)*state.rho) + - (screened_rates(k_He4_Na22_to_p_Mg25_reaclib)*Y(He4)*Y(Na22)*state.rho + -screened_rates(k_p_Mg25_to_He4_Na22_reaclib)*Y(Mg25)*Y(H1)*state.rho) + - (-screened_rates(k_p_Na23_to_He4_Ne20_reaclib)*Y(Na23)*Y(H1)*state.rho + screened_rates(k_He4_Ne20_to_p_Na23_reaclib)*Y(He4)*Y(Ne20)*state.rho) + - (screened_rates(k_He4_Na23_to_p_Mg26_reaclib)*Y(He4)*Y(Na23)*state.rho + -screened_rates(k_p_Mg26_to_He4_Na23_reaclib)*Y(Mg26)*Y(H1)*state.rho) + - (screened_rates(k_n_Mg23_to_p_Na23_reaclib)*Y(Mg23)*Y(N)*state.rho + -screened_rates(k_p_Na23_to_n_Mg23_reaclib)*Y(Na23)*Y(H1)*state.rho) + - (screened_rates(k_He4_Mg23_to_p_Al26_reaclib)*Y(He4)*Y(Mg23)*state.rho + -screened_rates(k_p_Al26_to_He4_Mg23_reaclib)*Y(Al26)*Y(H1)*state.rho) + - (screened_rates(k_n_Al25_to_p_Mg25_reaclib)*Y(Al25)*Y(N)*state.rho + -screened_rates(k_p_Mg25_to_n_Al25_reaclib)*Y(Mg25)*Y(H1)*state.rho) + - (screened_rates(k_He4_Al25_to_p_Si28_reaclib)*Y(Al25)*Y(He4)*state.rho + -screened_rates(k_p_Si28_to_He4_Al25_reaclib)*Y(Si28)*Y(H1)*state.rho) + - (screened_rates(k_n_Al26_to_p_Mg26_reaclib)*Y(Al26)*Y(N)*state.rho + -screened_rates(k_p_Mg26_to_n_Al26_reaclib)*Y(Mg26)*Y(H1)*state.rho) + - (screened_rates(k_He4_Al26_to_p_Si29_reaclib)*Y(Al26)*Y(He4)*state.rho + -screened_rates(k_p_Si29_to_He4_Al26_reaclib)*Y(Si29)*Y(H1)*state.rho) + - (-screened_rates(k_p_Al27_to_He4_Mg24_reaclib)*Y(Al27)*Y(H1)*state.rho + screened_rates(k_He4_Mg24_to_p_Al27_reaclib)*Y(He4)*Y(Mg24)*state.rho) + - (screened_rates(k_He4_Al27_to_p_Si30_reaclib)*Y(Al27)*Y(He4)*state.rho + -screened_rates(k_p_Si30_to_He4_Al27_reaclib)*Y(Si30)*Y(H1)*state.rho) + - (-screened_rates(k_p_Si31_to_n_P31_reaclib)*Y(Si31)*Y(H1)*state.rho + screened_rates(k_n_P31_to_p_Si31_reaclib)*Y(P31)*Y(N)*state.rho) + - (screened_rates(k_n_P29_to_p_Si29_reaclib)*Y(P29)*Y(N)*state.rho + -screened_rates(k_p_Si29_to_n_P29_reaclib)*Y(Si29)*Y(H1)*state.rho) + - (screened_rates(k_He4_P29_to_p_S32_reaclib)*Y(He4)*Y(P29)*state.rho + -screened_rates(k_p_S32_to_He4_P29_reaclib)*Y(S32)*Y(H1)*state.rho) + - (screened_rates(k_n_P30_to_p_Si30_reaclib)*Y(P30)*Y(N)*state.rho + -screened_rates(k_p_Si30_to_n_P30_reaclib)*Y(Si30)*Y(H1)*state.rho) + - (screened_rates(k_He4_P30_to_p_S33_reaclib)*Y(He4)*Y(P30)*state.rho + -screened_rates(k_p_S33_to_He4_P30_reaclib)*Y(S33)*Y(H1)*state.rho) + - (-screened_rates(k_p_P31_to_He4_Si28_reaclib)*Y(P31)*Y(H1)*state.rho + screened_rates(k_He4_Si28_to_p_P31_reaclib)*Y(He4)*Y(Si28)*state.rho) + - (screened_rates(k_He4_P31_to_p_S34_reaclib)*Y(He4)*Y(P31)*state.rho + -screened_rates(k_p_S34_to_He4_P31_reaclib)*Y(S34)*Y(H1)*state.rho) + - (screened_rates(k_n_P32_to_p_Si32_reaclib)*Y(P32)*Y(N)*state.rho + -screened_rates(k_p_Si32_to_n_P32_reaclib)*Y(Si32)*Y(H1)*state.rho) + - (-screened_rates(k_p_P32_to_n_S32_reaclib)*Y(P32)*Y(H1)*state.rho + screened_rates(k_n_S32_to_p_P32_reaclib)*Y(S32)*Y(N)*state.rho) + - (-screened_rates(k_p_P32_to_He4_Si29_reaclib)*Y(P32)*Y(H1)*state.rho + screened_rates(k_He4_Si29_to_p_P32_reaclib)*Y(He4)*Y(Si29)*state.rho) + - (-screened_rates(k_p_P33_to_He4_Si30_reaclib)*Y(P33)*Y(H1)*state.rho + screened_rates(k_He4_Si30_to_p_P33_reaclib)*Y(He4)*Y(Si30)*state.rho) + - (screened_rates(k_n_S33_to_p_P33_reaclib)*Y(S33)*Y(N)*state.rho + -screened_rates(k_p_P33_to_n_S33_reaclib)*Y(P33)*Y(H1)*state.rho) + - (-screened_rates(k_p_S35_to_He4_P32_reaclib)*Y(S35)*Y(H1)*state.rho + screened_rates(k_He4_P32_to_p_S35_reaclib)*Y(He4)*Y(P32)*state.rho) + - (-screened_rates(k_p_S36_to_He4_P33_reaclib)*Y(S36)*Y(H1)*state.rho + screened_rates(k_He4_P33_to_p_S36_reaclib)*Y(He4)*Y(P33)*state.rho) + - (screened_rates(k_n_Cl33_to_p_S33_reaclib)*Y(Cl33)*Y(N)*state.rho + -screened_rates(k_p_S33_to_n_Cl33_reaclib)*Y(S33)*Y(H1)*state.rho) + - (screened_rates(k_He4_Cl33_to_p_Ar36_reaclib)*Y(Cl33)*Y(He4)*state.rho + -screened_rates(k_p_Ar36_to_He4_Cl33_reaclib)*Y(Ar36)*Y(H1)*state.rho) + - (screened_rates(k_n_Cl34_to_p_S34_reaclib)*Y(Cl34)*Y(N)*state.rho + -screened_rates(k_p_S34_to_n_Cl34_reaclib)*Y(S34)*Y(H1)*state.rho) + - (screened_rates(k_He4_Cl34_to_p_Ar37_reaclib)*Y(Cl34)*Y(He4)*state.rho + -screened_rates(k_p_Ar37_to_He4_Cl34_reaclib)*Y(Ar37)*Y(H1)*state.rho) + - (screened_rates(k_n_Cl35_to_p_S35_reaclib)*Y(Cl35)*Y(N)*state.rho + -screened_rates(k_p_S35_to_n_Cl35_reaclib)*Y(S35)*Y(H1)*state.rho) + - (-screened_rates(k_p_Cl35_to_He4_S32_reaclib)*Y(Cl35)*Y(H1)*state.rho + screened_rates(k_He4_S32_to_p_Cl35_reaclib)*Y(He4)*Y(S32)*state.rho) + - (screened_rates(k_He4_Cl35_to_p_Ar38_reaclib)*Y(Cl35)*Y(He4)*state.rho + -screened_rates(k_p_Ar38_to_He4_Cl35_reaclib)*Y(Ar38)*Y(H1)*state.rho) + - (screened_rates(k_n_Cl36_to_p_S36_reaclib)*Y(Cl36)*Y(N)*state.rho + -screened_rates(k_p_S36_to_n_Cl36_reaclib)*Y(S36)*Y(H1)*state.rho) + - (-screened_rates(k_p_Cl36_to_He4_S33_reaclib)*Y(Cl36)*Y(H1)*state.rho + screened_rates(k_He4_S33_to_p_Cl36_reaclib)*Y(He4)*Y(S33)*state.rho) + - (-screened_rates(k_p_Cl37_to_He4_S34_reaclib)*Y(Cl37)*Y(H1)*state.rho + screened_rates(k_He4_S34_to_p_Cl37_reaclib)*Y(He4)*Y(S34)*state.rho) + - (screened_rates(k_n_Ar36_to_p_Cl36_reaclib)*Y(Ar36)*Y(N)*state.rho + -screened_rates(k_p_Cl36_to_n_Ar36_reaclib)*Y(Cl36)*Y(H1)*state.rho) + - (screened_rates(k_n_Ar37_to_p_Cl37_reaclib)*Y(Ar37)*Y(N)*state.rho + -screened_rates(k_p_Cl37_to_n_Ar37_reaclib)*Y(Cl37)*Y(H1)*state.rho) + - (-screened_rates(k_p_Ar39_to_He4_Cl36_reaclib)*Y(Ar39)*Y(H1)*state.rho + screened_rates(k_He4_Cl36_to_p_Ar39_reaclib)*Y(Cl36)*Y(He4)*state.rho) + - (-screened_rates(k_p_Ar40_to_He4_Cl37_reaclib)*Y(Ar40)*Y(H1)*state.rho + screened_rates(k_He4_Cl37_to_p_Ar40_reaclib)*Y(Cl37)*Y(He4)*state.rho) + - (screened_rates(k_n_K37_to_p_Ar37_reaclib)*Y(K37)*Y(N)*state.rho + -screened_rates(k_p_Ar37_to_n_K37_reaclib)*Y(Ar37)*Y(H1)*state.rho) + - (screened_rates(k_He4_K37_to_p_Ca40_reaclib)*Y(He4)*Y(K37)*state.rho + -screened_rates(k_p_Ca40_to_He4_K37_reaclib)*Y(Ca40)*Y(H1)*state.rho) + - (screened_rates(k_n_K38_to_p_Ar38_reaclib)*Y(K38)*Y(N)*state.rho + -screened_rates(k_p_Ar38_to_n_K38_reaclib)*Y(Ar38)*Y(H1)*state.rho) + - (screened_rates(k_He4_K38_to_p_Ca41_reaclib)*Y(He4)*Y(K38)*state.rho + -screened_rates(k_p_Ca41_to_He4_K38_reaclib)*Y(Ca41)*Y(H1)*state.rho) + - (screened_rates(k_n_K39_to_p_Ar39_reaclib)*Y(K39)*Y(N)*state.rho + -screened_rates(k_p_Ar39_to_n_K39_reaclib)*Y(Ar39)*Y(H1)*state.rho) + - (-screened_rates(k_p_K39_to_He4_Ar36_reaclib)*Y(K39)*Y(H1)*state.rho + screened_rates(k_He4_Ar36_to_p_K39_reaclib)*Y(Ar36)*Y(He4)*state.rho) + - (screened_rates(k_n_K40_to_p_Ar40_reaclib)*Y(K40)*Y(N)*state.rho + -screened_rates(k_p_Ar40_to_n_K40_reaclib)*Y(Ar40)*Y(H1)*state.rho) + - (-screened_rates(k_p_K40_to_n_Ca40_reaclib)*Y(K40)*Y(H1)*state.rho + screened_rates(k_n_Ca40_to_p_K40_reaclib)*Y(Ca40)*Y(N)*state.rho) + - (-screened_rates(k_p_K40_to_He4_Ar37_reaclib)*Y(K40)*Y(H1)*state.rho + screened_rates(k_He4_Ar37_to_p_K40_reaclib)*Y(Ar37)*Y(He4)*state.rho) + - (screened_rates(k_He4_K40_to_p_Ca43_reaclib)*Y(He4)*Y(K40)*state.rho + -screened_rates(k_p_Ca43_to_He4_K40_reaclib)*Y(Ca43)*Y(H1)*state.rho) + - (-screened_rates(k_p_K41_to_He4_Ar38_reaclib)*Y(K41)*Y(H1)*state.rho + screened_rates(k_He4_Ar38_to_p_K41_reaclib)*Y(Ar38)*Y(He4)*state.rho) + - (screened_rates(k_He4_K41_to_p_Ca44_reaclib)*Y(He4)*Y(K41)*state.rho + -screened_rates(k_p_Ca44_to_He4_K41_reaclib)*Y(Ca44)*Y(H1)*state.rho) + - (screened_rates(k_n_Ca41_to_p_K41_reaclib)*Y(Ca41)*Y(N)*state.rho + -screened_rates(k_p_K41_to_n_Ca41_reaclib)*Y(K41)*Y(H1)*state.rho) + - (-screened_rates(k_p_Ca42_to_He4_K39_reaclib)*Y(Ca42)*Y(H1)*state.rho + screened_rates(k_He4_K39_to_p_Ca42_reaclib)*Y(He4)*Y(K39)*state.rho) + - (-screened_rates(k_p_Ca47_to_n_Sc47_reaclib)*Y(Ca47)*Y(H1)*state.rho + screened_rates(k_n_Sc47_to_p_Ca47_reaclib)*Y(Sc47)*Y(N)*state.rho) + - (screened_rates(k_n_Sc43_to_p_Ca43_reaclib)*Y(Sc43)*Y(N)*state.rho + -screened_rates(k_p_Ca43_to_n_Sc43_reaclib)*Y(Ca43)*Y(H1)*state.rho) + - (-screened_rates(k_p_Sc43_to_He4_Ca40_reaclib)*Y(Sc43)*Y(H1)*state.rho + screened_rates(k_He4_Ca40_to_p_Sc43_reaclib)*Y(Ca40)*Y(He4)*state.rho) + - (screened_rates(k_He4_Sc43_to_p_Ti46_reaclib)*Y(He4)*Y(Sc43)*state.rho + -screened_rates(k_p_Ti46_to_He4_Sc43_reaclib)*Y(Ti46)*Y(H1)*state.rho) + - (screened_rates(k_n_Sc44_to_p_Ca44_reaclib)*Y(Sc44)*Y(N)*state.rho + -screened_rates(k_p_Ca44_to_n_Sc44_reaclib)*Y(Ca44)*Y(H1)*state.rho) + - (-screened_rates(k_p_Sc44_to_He4_Ca41_reaclib)*Y(Sc44)*Y(H1)*state.rho + screened_rates(k_He4_Ca41_to_p_Sc44_reaclib)*Y(Ca41)*Y(He4)*state.rho) + - (screened_rates(k_He4_Sc44_to_p_Ti47_reaclib)*Y(He4)*Y(Sc44)*state.rho + -screened_rates(k_p_Ti47_to_He4_Sc44_reaclib)*Y(Ti47)*Y(H1)*state.rho) + - (screened_rates(k_n_Sc45_to_p_Ca45_reaclib)*Y(Sc45)*Y(N)*state.rho + -screened_rates(k_p_Ca45_to_n_Sc45_reaclib)*Y(Ca45)*Y(H1)*state.rho) + - (-screened_rates(k_p_Sc45_to_He4_Ca42_reaclib)*Y(Sc45)*Y(H1)*state.rho + screened_rates(k_He4_Ca42_to_p_Sc45_reaclib)*Y(Ca42)*Y(He4)*state.rho) + - (screened_rates(k_He4_Sc45_to_p_Ti48_reaclib)*Y(He4)*Y(Sc45)*state.rho + -screened_rates(k_p_Ti48_to_He4_Sc45_reaclib)*Y(Ti48)*Y(H1)*state.rho) + - (screened_rates(k_n_Sc46_to_p_Ca46_reaclib)*Y(Sc46)*Y(N)*state.rho + -screened_rates(k_p_Ca46_to_n_Sc46_reaclib)*Y(Ca46)*Y(H1)*state.rho) + - (-screened_rates(k_p_Sc46_to_n_Ti46_reaclib)*Y(Sc46)*Y(H1)*state.rho + screened_rates(k_n_Ti46_to_p_Sc46_reaclib)*Y(Ti46)*Y(N)*state.rho) + - (-screened_rates(k_p_Sc46_to_He4_Ca43_reaclib)*Y(Sc46)*Y(H1)*state.rho + screened_rates(k_He4_Ca43_to_p_Sc46_reaclib)*Y(Ca43)*Y(He4)*state.rho) + - (screened_rates(k_He4_Sc46_to_p_Ti49_reaclib)*Y(He4)*Y(Sc46)*state.rho + -screened_rates(k_p_Ti49_to_He4_Sc46_reaclib)*Y(Ti49)*Y(H1)*state.rho) + - (-screened_rates(k_p_Sc47_to_He4_Ca44_reaclib)*Y(Sc47)*Y(H1)*state.rho + screened_rates(k_He4_Ca44_to_p_Sc47_reaclib)*Y(Ca44)*Y(He4)*state.rho) + - (screened_rates(k_He4_Sc47_to_p_Ti50_reaclib)*Y(He4)*Y(Sc47)*state.rho + -screened_rates(k_p_Ti50_to_He4_Sc47_reaclib)*Y(Ti50)*Y(H1)*state.rho) + - (screened_rates(k_n_Sc48_to_p_Ca48_reaclib)*Y(Sc48)*Y(N)*state.rho + -screened_rates(k_p_Ca48_to_n_Sc48_reaclib)*Y(Ca48)*Y(H1)*state.rho) + - (-screened_rates(k_p_Sc48_to_n_Ti48_reaclib)*Y(Sc48)*Y(H1)*state.rho + screened_rates(k_n_Ti48_to_p_Sc48_reaclib)*Y(Ti48)*Y(N)*state.rho) + - (-screened_rates(k_p_Sc48_to_He4_Ca45_reaclib)*Y(Sc48)*Y(H1)*state.rho + screened_rates(k_He4_Ca45_to_p_Sc48_reaclib)*Y(Ca45)*Y(He4)*state.rho) + - (screened_rates(k_He4_Sc48_to_p_Ti51_reaclib)*Y(He4)*Y(Sc48)*state.rho + -screened_rates(k_p_Ti51_to_He4_Sc48_reaclib)*Y(Ti51)*Y(H1)*state.rho) + - (-screened_rates(k_p_Sc49_to_n_Ti49_reaclib)*Y(Sc49)*Y(H1)*state.rho + screened_rates(k_n_Ti49_to_p_Sc49_reaclib)*Y(Ti49)*Y(N)*state.rho) + - (-screened_rates(k_p_Sc49_to_He4_Ca46_reaclib)*Y(Sc49)*Y(H1)*state.rho + screened_rates(k_He4_Ca46_to_p_Sc49_reaclib)*Y(Ca46)*Y(He4)*state.rho) + - (screened_rates(k_n_Ti44_to_p_Sc44_reaclib)*Y(Ti44)*Y(N)*state.rho + -screened_rates(k_p_Sc44_to_n_Ti44_reaclib)*Y(Sc44)*Y(H1)*state.rho) + - (screened_rates(k_n_Ti45_to_p_Sc45_reaclib)*Y(Ti45)*Y(N)*state.rho + -screened_rates(k_p_Sc45_to_n_Ti45_reaclib)*Y(Sc45)*Y(H1)*state.rho) + - (screened_rates(k_He4_Ti45_to_p_V48_reaclib)*Y(He4)*Y(Ti45)*state.rho + -screened_rates(k_p_V48_to_He4_Ti45_reaclib)*Y(V48)*Y(H1)*state.rho) + - (screened_rates(k_n_Ti47_to_p_Sc47_reaclib)*Y(Ti47)*Y(N)*state.rho + -screened_rates(k_p_Sc47_to_n_Ti47_reaclib)*Y(Sc47)*Y(H1)*state.rho) + - (-screened_rates(k_p_Ti51_to_n_V51_reaclib)*Y(Ti51)*Y(H1)*state.rho + screened_rates(k_n_V51_to_p_Ti51_reaclib)*Y(V51)*Y(N)*state.rho) + - (screened_rates(k_n_V46_to_p_Ti46_reaclib)*Y(V46)*Y(N)*state.rho + -screened_rates(k_p_Ti46_to_n_V46_reaclib)*Y(Ti46)*Y(H1)*state.rho) + - (screened_rates(k_He4_V46_to_p_Cr49_reaclib)*Y(He4)*Y(V46)*state.rho + -screened_rates(k_p_Cr49_to_He4_V46_reaclib)*Y(Cr49)*Y(H1)*state.rho) + - (screened_rates(k_n_V47_to_p_Ti47_reaclib)*Y(V47)*Y(N)*state.rho + -screened_rates(k_p_Ti47_to_n_V47_reaclib)*Y(Ti47)*Y(H1)*state.rho) + - (-screened_rates(k_p_V47_to_He4_Ti44_reaclib)*Y(V47)*Y(H1)*state.rho + screened_rates(k_He4_Ti44_to_p_V47_reaclib)*Y(He4)*Y(Ti44)*state.rho) + - (screened_rates(k_He4_V47_to_p_Cr50_reaclib)*Y(He4)*Y(V47)*state.rho + -screened_rates(k_p_Cr50_to_He4_V47_reaclib)*Y(Cr50)*Y(H1)*state.rho) + - (screened_rates(k_n_V48_to_p_Ti48_reaclib)*Y(V48)*Y(N)*state.rho + -screened_rates(k_p_Ti48_to_n_V48_reaclib)*Y(Ti48)*Y(H1)*state.rho) + - (screened_rates(k_He4_V48_to_p_Cr51_reaclib)*Y(He4)*Y(V48)*state.rho + -screened_rates(k_p_Cr51_to_He4_V48_reaclib)*Y(Cr51)*Y(H1)*state.rho) + - (screened_rates(k_n_V49_to_p_Ti49_reaclib)*Y(V49)*Y(N)*state.rho + -screened_rates(k_p_Ti49_to_n_V49_reaclib)*Y(Ti49)*Y(H1)*state.rho) + - (-screened_rates(k_p_V49_to_He4_Ti46_reaclib)*Y(V49)*Y(H1)*state.rho + screened_rates(k_He4_Ti46_to_p_V49_reaclib)*Y(He4)*Y(Ti46)*state.rho) + - (screened_rates(k_He4_V49_to_p_Cr52_reaclib)*Y(He4)*Y(V49)*state.rho + -screened_rates(k_p_Cr52_to_He4_V49_reaclib)*Y(Cr52)*Y(H1)*state.rho) + - (screened_rates(k_n_V50_to_p_Ti50_reaclib)*Y(V50)*Y(N)*state.rho + -screened_rates(k_p_Ti50_to_n_V50_reaclib)*Y(Ti50)*Y(H1)*state.rho) + - (-screened_rates(k_p_V50_to_n_Cr50_reaclib)*Y(V50)*Y(H1)*state.rho + screened_rates(k_n_Cr50_to_p_V50_reaclib)*Y(Cr50)*Y(N)*state.rho) + - (-screened_rates(k_p_V50_to_He4_Ti47_reaclib)*Y(V50)*Y(H1)*state.rho + screened_rates(k_He4_Ti47_to_p_V50_reaclib)*Y(He4)*Y(Ti47)*state.rho) + - (screened_rates(k_He4_V50_to_p_Cr53_reaclib)*Y(He4)*Y(V50)*state.rho + -screened_rates(k_p_Cr53_to_He4_V50_reaclib)*Y(Cr53)*Y(H1)*state.rho) + - (-screened_rates(k_p_V51_to_He4_Ti48_reaclib)*Y(V51)*Y(H1)*state.rho + screened_rates(k_He4_Ti48_to_p_V51_reaclib)*Y(He4)*Y(Ti48)*state.rho) + - (-screened_rates(k_p_V52_to_n_Cr52_reaclib)*Y(V52)*Y(H1)*state.rho + screened_rates(k_n_Cr52_to_p_V52_reaclib)*Y(Cr52)*Y(N)*state.rho) + - (-screened_rates(k_p_V52_to_He4_Ti49_reaclib)*Y(V52)*Y(H1)*state.rho + screened_rates(k_He4_Ti49_to_p_V52_reaclib)*Y(He4)*Y(Ti49)*state.rho) + - (screened_rates(k_n_Cr48_to_p_V48_reaclib)*Y(Cr48)*Y(N)*state.rho + -screened_rates(k_p_V48_to_n_Cr48_reaclib)*Y(V48)*Y(H1)*state.rho) + - (screened_rates(k_He4_Cr48_to_p_Mn51_reaclib)*Y(Cr48)*Y(He4)*state.rho + -screened_rates(k_p_Mn51_to_He4_Cr48_reaclib)*Y(Mn51)*Y(H1)*state.rho) + - (screened_rates(k_n_Cr49_to_p_V49_reaclib)*Y(Cr49)*Y(N)*state.rho + -screened_rates(k_p_V49_to_n_Cr49_reaclib)*Y(V49)*Y(H1)*state.rho) + - (screened_rates(k_He4_Cr49_to_p_Mn52_reaclib)*Y(Cr49)*Y(He4)*state.rho + -screened_rates(k_p_Mn52_to_He4_Cr49_reaclib)*Y(Mn52)*Y(H1)*state.rho) + - (screened_rates(k_n_Cr51_to_p_V51_reaclib)*Y(Cr51)*Y(N)*state.rho + -screened_rates(k_p_V51_to_n_Cr51_reaclib)*Y(V51)*Y(H1)*state.rho) + - (-screened_rates(k_p_Cr54_to_He4_V51_reaclib)*Y(Cr54)*Y(H1)*state.rho + screened_rates(k_He4_V51_to_p_Cr54_reaclib)*Y(He4)*Y(V51)*state.rho) + - (screened_rates(k_n_Mn50_to_p_Cr50_reaclib)*Y(Mn50)*Y(N)*state.rho + -screened_rates(k_p_Cr50_to_n_Mn50_reaclib)*Y(Cr50)*Y(H1)*state.rho) + - (screened_rates(k_He4_Mn50_to_p_Fe53_reaclib)*Y(He4)*Y(Mn50)*state.rho + -screened_rates(k_p_Fe53_to_He4_Mn50_reaclib)*Y(Fe53)*Y(H1)*state.rho) + - (screened_rates(k_n_Mn51_to_p_Cr51_reaclib)*Y(Mn51)*Y(N)*state.rho + -screened_rates(k_p_Cr51_to_n_Mn51_reaclib)*Y(Cr51)*Y(H1)*state.rho) + - (screened_rates(k_He4_Mn51_to_p_Fe54_reaclib)*Y(He4)*Y(Mn51)*state.rho + -screened_rates(k_p_Fe54_to_He4_Mn51_reaclib)*Y(Fe54)*Y(H1)*state.rho) + - (screened_rates(k_n_Mn52_to_p_Cr52_reaclib)*Y(Mn52)*Y(N)*state.rho + -screened_rates(k_p_Cr52_to_n_Mn52_reaclib)*Y(Cr52)*Y(H1)*state.rho) + - (screened_rates(k_He4_Mn52_to_p_Fe55_reaclib)*Y(He4)*Y(Mn52)*state.rho + -screened_rates(k_p_Fe55_to_He4_Mn52_reaclib)*Y(Fe55)*Y(H1)*state.rho) + - (screened_rates(k_n_Mn53_to_p_Cr53_reaclib)*Y(Mn53)*Y(N)*state.rho + -screened_rates(k_p_Cr53_to_n_Mn53_reaclib)*Y(Cr53)*Y(H1)*state.rho) + - (-screened_rates(k_p_Mn53_to_He4_Cr50_reaclib)*Y(Mn53)*Y(H1)*state.rho + screened_rates(k_He4_Cr50_to_p_Mn53_reaclib)*Y(Cr50)*Y(He4)*state.rho) + - (screened_rates(k_He4_Mn53_to_p_Fe56_reaclib)*Y(He4)*Y(Mn53)*state.rho + -screened_rates(k_p_Fe56_to_He4_Mn53_reaclib)*Y(Fe56)*Y(H1)*state.rho) + - (screened_rates(k_n_Mn54_to_p_Cr54_reaclib)*Y(Mn54)*Y(N)*state.rho + -screened_rates(k_p_Cr54_to_n_Mn54_reaclib)*Y(Cr54)*Y(H1)*state.rho) + - (-screened_rates(k_p_Mn54_to_He4_Cr51_reaclib)*Y(Mn54)*Y(H1)*state.rho + screened_rates(k_He4_Cr51_to_p_Mn54_reaclib)*Y(Cr51)*Y(He4)*state.rho) + - (-screened_rates(k_p_Mn55_to_He4_Cr52_reaclib)*Y(Mn55)*Y(H1)*state.rho + screened_rates(k_He4_Cr52_to_p_Mn55_reaclib)*Y(Cr52)*Y(He4)*state.rho) + - (screened_rates(k_n_Fe52_to_p_Mn52_reaclib)*Y(Fe52)*Y(N)*state.rho + -screened_rates(k_p_Mn52_to_n_Fe52_reaclib)*Y(Mn52)*Y(H1)*state.rho) + - (screened_rates(k_He4_Fe52_to_p_Co55_reaclib)*Y(Fe52)*Y(He4)*state.rho + -screened_rates(k_p_Co55_to_He4_Fe52_reaclib)*Y(Co55)*Y(H1)*state.rho) + - (screened_rates(k_n_Fe53_to_p_Mn53_reaclib)*Y(Fe53)*Y(N)*state.rho + -screened_rates(k_p_Mn53_to_n_Fe53_reaclib)*Y(Mn53)*Y(H1)*state.rho) + - (screened_rates(k_He4_Fe53_to_p_Co56_reaclib)*Y(Fe53)*Y(He4)*state.rho + -screened_rates(k_p_Co56_to_He4_Fe53_reaclib)*Y(Co56)*Y(H1)*state.rho) + - (screened_rates(k_n_Fe54_to_p_Mn54_reaclib)*Y(Fe54)*Y(N)*state.rho + -screened_rates(k_p_Mn54_to_n_Fe54_reaclib)*Y(Mn54)*Y(H1)*state.rho) + - (screened_rates(k_n_Fe55_to_p_Mn55_reaclib)*Y(Fe55)*Y(N)*state.rho + -screened_rates(k_p_Mn55_to_n_Fe55_reaclib)*Y(Mn55)*Y(H1)*state.rho) + - (-screened_rates(k_p_Fe57_to_He4_Mn54_reaclib)*Y(Fe57)*Y(H1)*state.rho + screened_rates(k_He4_Mn54_to_p_Fe57_reaclib)*Y(He4)*Y(Mn54)*state.rho) + - (-screened_rates(k_p_Fe58_to_He4_Mn55_reaclib)*Y(Fe58)*Y(H1)*state.rho + screened_rates(k_He4_Mn55_to_p_Fe58_reaclib)*Y(He4)*Y(Mn55)*state.rho) + - (screened_rates(k_n_Co53_to_p_Fe53_reaclib)*Y(Co53)*Y(N)*state.rho + -screened_rates(k_p_Fe53_to_n_Co53_reaclib)*Y(Fe53)*Y(H1)*state.rho) + - (screened_rates(k_He4_Co53_to_p_Ni56_reaclib)*Y(Co53)*Y(He4)*state.rho + -screened_rates(k_p_Ni56_to_He4_Co53_reaclib)*Y(Ni56)*Y(H1)*state.rho) + - (screened_rates(k_n_Co54_to_p_Fe54_reaclib)*Y(Co54)*Y(N)*state.rho + -screened_rates(k_p_Fe54_to_n_Co54_reaclib)*Y(Fe54)*Y(H1)*state.rho) + - (screened_rates(k_He4_Co54_to_p_Ni57_reaclib)*Y(Co54)*Y(He4)*state.rho + -screened_rates(k_p_Ni57_to_He4_Co54_reaclib)*Y(Ni57)*Y(H1)*state.rho) + - (screened_rates(k_n_Co55_to_p_Fe55_reaclib)*Y(Co55)*Y(N)*state.rho + -screened_rates(k_p_Fe55_to_n_Co55_reaclib)*Y(Fe55)*Y(H1)*state.rho) + - (screened_rates(k_He4_Co55_to_p_Ni58_reaclib)*Y(Co55)*Y(He4)*state.rho + -screened_rates(k_p_Ni58_to_He4_Co55_reaclib)*Y(Ni58)*Y(H1)*state.rho) + - (screened_rates(k_n_Co56_to_p_Fe56_reaclib)*Y(Co56)*Y(N)*state.rho + -screened_rates(k_p_Fe56_to_n_Co56_reaclib)*Y(Fe56)*Y(H1)*state.rho) + - (screened_rates(k_He4_Co56_to_p_Ni59_reaclib)*Y(Co56)*Y(He4)*state.rho + -screened_rates(k_p_Ni59_to_He4_Co56_reaclib)*Y(Ni59)*Y(H1)*state.rho) + - (screened_rates(k_n_Co57_to_p_Fe57_reaclib)*Y(Co57)*Y(N)*state.rho + -screened_rates(k_p_Fe57_to_n_Co57_reaclib)*Y(Fe57)*Y(H1)*state.rho) + - (-screened_rates(k_p_Co57_to_He4_Fe54_reaclib)*Y(Co57)*Y(H1)*state.rho + screened_rates(k_He4_Fe54_to_p_Co57_reaclib)*Y(Fe54)*Y(He4)*state.rho) + - (screened_rates(k_He4_Co57_to_p_Ni60_reaclib)*Y(Co57)*Y(He4)*state.rho + -screened_rates(k_p_Ni60_to_He4_Co57_reaclib)*Y(Ni60)*Y(H1)*state.rho) + - (screened_rates(k_n_Co58_to_p_Fe58_reaclib)*Y(Co58)*Y(N)*state.rho + -screened_rates(k_p_Fe58_to_n_Co58_reaclib)*Y(Fe58)*Y(H1)*state.rho) + - (-screened_rates(k_p_Co58_to_He4_Fe55_reaclib)*Y(Co58)*Y(H1)*state.rho + screened_rates(k_He4_Fe55_to_p_Co58_reaclib)*Y(Fe55)*Y(He4)*state.rho) + - (-screened_rates(k_p_Co59_to_He4_Fe56_reaclib)*Y(Co59)*Y(H1)*state.rho + screened_rates(k_He4_Fe56_to_p_Co59_reaclib)*Y(Fe56)*Y(He4)*state.rho) + - (screened_rates(k_n_Ni56_to_p_Co56_reaclib)*Y(Ni56)*Y(N)*state.rho + -screened_rates(k_p_Co56_to_n_Ni56_reaclib)*Y(Co56)*Y(H1)*state.rho) + - (screened_rates(k_n_Ni57_to_p_Co57_reaclib)*Y(Ni57)*Y(N)*state.rho + -screened_rates(k_p_Co57_to_n_Ni57_reaclib)*Y(Co57)*Y(H1)*state.rho) + - (screened_rates(k_n_Ni58_to_p_Co58_reaclib)*Y(Ni58)*Y(N)*state.rho + -screened_rates(k_p_Co58_to_n_Ni58_reaclib)*Y(Co58)*Y(H1)*state.rho) + - (screened_rates(k_n_Ni59_to_p_Co59_reaclib)*Y(Ni59)*Y(N)*state.rho + -screened_rates(k_p_Co59_to_n_Ni59_reaclib)*Y(Co59)*Y(H1)*state.rho) + - (-screened_rates(k_p_Ni61_to_He4_Co58_reaclib)*Y(Ni61)*Y(H1)*state.rho + screened_rates(k_He4_Co58_to_p_Ni61_reaclib)*Y(Co58)*Y(He4)*state.rho) + - (-screened_rates(k_p_Ni62_to_He4_Co59_reaclib)*Y(Ni62)*Y(H1)*state.rho + screened_rates(k_He4_Co59_to_p_Ni62_reaclib)*Y(Co59)*Y(He4)*state.rho) + - (screened_rates(k_n_Cu57_to_p_Ni57_reaclib)*Y(Cu57)*Y(N)*state.rho + -screened_rates(k_p_Ni57_to_n_Cu57_reaclib)*Y(Ni57)*Y(H1)*state.rho) + - (screened_rates(k_He4_Cu57_to_p_Zn60_reaclib)*Y(Cu57)*Y(He4)*state.rho + -screened_rates(k_p_Zn60_to_He4_Cu57_reaclib)*Y(Zn60)*Y(H1)*state.rho) + - (screened_rates(k_n_Cu58_to_p_Ni58_reaclib)*Y(Cu58)*Y(N)*state.rho + -screened_rates(k_p_Ni58_to_n_Cu58_reaclib)*Y(Ni58)*Y(H1)*state.rho) + - (screened_rates(k_n_Cu59_to_p_Ni59_reaclib)*Y(Cu59)*Y(N)*state.rho + -screened_rates(k_p_Ni59_to_n_Cu59_reaclib)*Y(Ni59)*Y(H1)*state.rho) + - (-screened_rates(k_p_Cu59_to_He4_Ni56_reaclib)*Y(Cu59)*Y(H1)*state.rho + screened_rates(k_He4_Ni56_to_p_Cu59_reaclib)*Y(He4)*Y(Ni56)*state.rho) + - (screened_rates(k_n_Cu60_to_p_Ni60_reaclib)*Y(Cu60)*Y(N)*state.rho + -screened_rates(k_p_Ni60_to_n_Cu60_reaclib)*Y(Ni60)*Y(H1)*state.rho) + - (-screened_rates(k_p_Cu60_to_He4_Ni57_reaclib)*Y(Cu60)*Y(H1)*state.rho + screened_rates(k_He4_Ni57_to_p_Cu60_reaclib)*Y(He4)*Y(Ni57)*state.rho) + - (screened_rates(k_n_Cu61_to_p_Ni61_reaclib)*Y(Cu61)*Y(N)*state.rho + -screened_rates(k_p_Ni61_to_n_Cu61_reaclib)*Y(Ni61)*Y(H1)*state.rho) + - (-screened_rates(k_p_Cu61_to_He4_Ni58_reaclib)*Y(Cu61)*Y(H1)*state.rho + screened_rates(k_He4_Ni58_to_p_Cu61_reaclib)*Y(He4)*Y(Ni58)*state.rho) + - (screened_rates(k_n_Cu62_to_p_Ni62_reaclib)*Y(Cu62)*Y(N)*state.rho + -screened_rates(k_p_Ni62_to_n_Cu62_reaclib)*Y(Ni62)*Y(H1)*state.rho) + - (-screened_rates(k_p_Cu62_to_He4_Ni59_reaclib)*Y(Cu62)*Y(H1)*state.rho + screened_rates(k_He4_Ni59_to_p_Cu62_reaclib)*Y(He4)*Y(Ni59)*state.rho) + - (screened_rates(k_n_Cu63_to_p_Ni63_reaclib)*Y(Cu63)*Y(N)*state.rho + -screened_rates(k_p_Ni63_to_n_Cu63_reaclib)*Y(Ni63)*Y(H1)*state.rho) + - (-screened_rates(k_p_Cu63_to_He4_Ni60_reaclib)*Y(Cu63)*Y(H1)*state.rho + screened_rates(k_He4_Ni60_to_p_Cu63_reaclib)*Y(He4)*Y(Ni60)*state.rho) + - (screened_rates(k_n_Cu64_to_p_Ni64_reaclib)*Y(Cu64)*Y(N)*state.rho + -screened_rates(k_p_Ni64_to_n_Cu64_reaclib)*Y(Ni64)*Y(H1)*state.rho) + - (-screened_rates(k_p_Cu64_to_He4_Ni61_reaclib)*Y(Cu64)*Y(H1)*state.rho + screened_rates(k_He4_Ni61_to_p_Cu64_reaclib)*Y(He4)*Y(Ni61)*state.rho) + - (-screened_rates(k_p_Cu65_to_He4_Ni62_reaclib)*Y(Cu65)*Y(H1)*state.rho + screened_rates(k_He4_Ni62_to_p_Cu65_reaclib)*Y(He4)*Y(Ni62)*state.rho) + - (screened_rates(k_n_Zn59_to_p_Cu59_reaclib)*Y(Zn59)*Y(N)*state.rho + -screened_rates(k_p_Cu59_to_n_Zn59_reaclib)*Y(Cu59)*Y(H1)*state.rho) + - (screened_rates(k_n_Zn60_to_p_Cu60_reaclib)*Y(Zn60)*Y(N)*state.rho + -screened_rates(k_p_Cu60_to_n_Zn60_reaclib)*Y(Cu60)*Y(H1)*state.rho) + - (screened_rates(k_n_Zn61_to_p_Cu61_reaclib)*Y(Zn61)*Y(N)*state.rho + -screened_rates(k_p_Cu61_to_n_Zn61_reaclib)*Y(Cu61)*Y(H1)*state.rho) + - (-screened_rates(k_p_Zn61_to_He4_Cu58_reaclib)*Y(Zn61)*Y(H1)*state.rho + screened_rates(k_He4_Cu58_to_p_Zn61_reaclib)*Y(Cu58)*Y(He4)*state.rho) + - (screened_rates(k_n_Zn62_to_p_Cu62_reaclib)*Y(Zn62)*Y(N)*state.rho + -screened_rates(k_p_Cu62_to_n_Zn62_reaclib)*Y(Cu62)*Y(H1)*state.rho) + - (-screened_rates(k_p_Zn62_to_He4_Cu59_reaclib)*Y(Zn62)*Y(H1)*state.rho + screened_rates(k_He4_Cu59_to_p_Zn62_reaclib)*Y(Cu59)*Y(He4)*state.rho) + - (screened_rates(k_n_Zn63_to_p_Cu63_reaclib)*Y(Zn63)*Y(N)*state.rho + -screened_rates(k_p_Cu63_to_n_Zn63_reaclib)*Y(Cu63)*Y(H1)*state.rho) + - (-screened_rates(k_p_Zn63_to_He4_Cu60_reaclib)*Y(Zn63)*Y(H1)*state.rho + screened_rates(k_He4_Cu60_to_p_Zn63_reaclib)*Y(Cu60)*Y(He4)*state.rho) + - (screened_rates(k_n_Zn64_to_p_Cu64_reaclib)*Y(Zn64)*Y(N)*state.rho + -screened_rates(k_p_Cu64_to_n_Zn64_reaclib)*Y(Cu64)*Y(H1)*state.rho) + - (-screened_rates(k_p_Zn64_to_He4_Cu61_reaclib)*Y(Zn64)*Y(H1)*state.rho + screened_rates(k_He4_Cu61_to_p_Zn64_reaclib)*Y(Cu61)*Y(He4)*state.rho) + - (screened_rates(k_n_Zn65_to_p_Cu65_reaclib)*Y(Zn65)*Y(N)*state.rho + -screened_rates(k_p_Cu65_to_n_Zn65_reaclib)*Y(Cu65)*Y(H1)*state.rho) + - (-screened_rates(k_p_Zn65_to_He4_Cu62_reaclib)*Y(Zn65)*Y(H1)*state.rho + screened_rates(k_He4_Cu62_to_p_Zn65_reaclib)*Y(Cu62)*Y(He4)*state.rho) + - (-screened_rates(k_p_Zn66_to_He4_Cu63_reaclib)*Y(Zn66)*Y(H1)*state.rho + screened_rates(k_He4_Cu63_to_p_Zn66_reaclib)*Y(Cu63)*Y(He4)*state.rho) + - (screened_rates(k_n_Ga62_to_p_Zn62_reaclib)*Y(Ga62)*Y(N)*state.rho + -screened_rates(k_p_Zn62_to_n_Ga62_reaclib)*Y(Zn62)*Y(H1)*state.rho) + - (-screened_rates(k_p_Ga62_to_He4_Zn59_reaclib)*Y(Ga62)*Y(H1)*state.rho + screened_rates(k_He4_Zn59_to_p_Ga62_reaclib)*Y(He4)*Y(Zn59)*state.rho) + - (screened_rates(k_n_Ga63_to_p_Zn63_reaclib)*Y(Ga63)*Y(N)*state.rho + -screened_rates(k_p_Zn63_to_n_Ga63_reaclib)*Y(Zn63)*Y(H1)*state.rho) + - (-screened_rates(k_p_Ga63_to_He4_Zn60_reaclib)*Y(Ga63)*Y(H1)*state.rho + screened_rates(k_He4_Zn60_to_p_Ga63_reaclib)*Y(He4)*Y(Zn60)*state.rho) + - (screened_rates(k_n_Ga64_to_p_Zn64_reaclib)*Y(Ga64)*Y(N)*state.rho + -screened_rates(k_p_Zn64_to_n_Ga64_reaclib)*Y(Zn64)*Y(H1)*state.rho) + - (-screened_rates(k_p_Ga64_to_He4_Zn61_reaclib)*Y(Ga64)*Y(H1)*state.rho + screened_rates(k_He4_Zn61_to_p_Ga64_reaclib)*Y(He4)*Y(Zn61)*state.rho) + - (screened_rates(k_n_Ge63_to_p_Ga63_reaclib)*Y(Ge63)*Y(N)*state.rho + -screened_rates(k_p_Ga63_to_n_Ge63_reaclib)*Y(Ga63)*Y(H1)*state.rho) + - (screened_rates(k_n_Ge64_to_p_Ga64_reaclib)*Y(Ge64)*Y(N)*state.rho + -screened_rates(k_p_Ga64_to_n_Ge64_reaclib)*Y(Ga64)*Y(H1)*state.rho) + - (screened_rates(k_He3_He3_to_p_p_He4_reaclib)*amrex::Math::powi<2>(Y(He3))*state.rho + -screened_rates(k_p_p_He4_to_He3_He3_reaclib)*Y(He4)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho)) + - (screened_rates(k_d_Be7_to_p_He4_He4_reaclib)*Y(Be7)*Y(H2)*state.rho + -0.5*screened_rates(k_p_He4_He4_to_d_Be7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<2>(state.rho)) + - (-screened_rates(k_p_Be9_to_d_He4_He4_reaclib)*Y(Be9)*Y(H1)*state.rho + 0.5*screened_rates(k_d_He4_He4_to_p_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(H2)*amrex::Math::powi<2>(state.rho)) + - (screened_rates(k_n_B8_to_p_He4_He4_reaclib)*Y(B8)*Y(N)*state.rho + -0.5*screened_rates(k_p_He4_He4_to_n_B8_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<2>(state.rho)) + - (-screened_rates(k_p_B11_to_He4_He4_He4_reaclib)*Y(B11)*Y(H1)*state.rho + 0.16666666666666667*screened_rates(k_He4_He4_He4_to_p_B11_reaclib)*amrex::Math::powi<3>(Y(He4))*amrex::Math::powi<2>(state.rho)) + - (screened_rates(k_He3_Li7_to_n_p_He4_He4_reaclib)*Y(He3)*Y(Li7)*state.rho + -0.5*screened_rates(k_n_p_He4_He4_to_He3_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho)) + - (2.0*screened_rates(k_He3_Be7_to_p_p_He4_He4_reaclib)*Y(Be7)*Y(He3)*state.rho + -0.5*screened_rates(k_p_p_He4_He4_to_He3_Be7_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<3>(state.rho)) + - (-screened_rates(k_n_p_He4_to_Li6_reaclib)*Y(He4)*Y(N)*Y(H1)*amrex::Math::powi<2>(state.rho) + screened_rates(k_Li6_to_n_p_He4_reaclib)*Y(Li6)) + - (-0.5*screened_rates(k_n_p_p_to_p_d_reaclib)*Y(N)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho) + screened_rates(k_p_d_to_n_p_p_reaclib)*Y(H2)*Y(H1)*state.rho) + - (0.0e0_rt + 0.0e0_rt) + - (screened_rates(k_n_to_p_weaktab)*Y(N) + -screened_rates(k_p_to_n_weaktab)*Y(H1)); + screened_rates(k_Zn59_to_p_Ni58_beta_pos_reaclib)*Y(Zn59) + + (-screened_rates(k_p_n_to_d_reaclib)*Y(N)*Y(H1)*state.rho + screened_rates(k_d_to_n_p_derived)*Y(H2)) + + -screened_rates(k_p_p_to_d_beta_pos_reaclib)*amrex::Math::powi<2>(Y(H1))*state.rho + + -screened_rates(k_p_p_to_d_electron_capture_reaclib)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho)*state.y_e + + (-screened_rates(k_d_p_to_He3_reaclib)*Y(H2)*Y(H1)*state.rho + screened_rates(k_He3_to_p_d_derived)*Y(He3)) + + -screened_rates(k_He3_p_to_He4_beta_pos_reaclib)*Y(He3)*Y(H1)*state.rho + + (-screened_rates(k_Li6_p_to_Be7_reaclib)*Y(Li6)*Y(H1)*state.rho + screened_rates(k_Be7_to_p_Li6_derived)*Y(Be7)) + + (-screened_rates(k_Be7_p_to_B8_reaclib)*Y(Be7)*Y(H1)*state.rho + screened_rates(k_B8_to_p_Be7_derived)*Y(B8)) + + (-screened_rates(k_Be9_p_to_B10_reaclib)*Y(Be9)*Y(H1)*state.rho + screened_rates(k_B10_to_p_Be9_derived)*Y(B10)) + + (-screened_rates(k_B11_p_to_C12_reaclib)*Y(B11)*Y(H1)*state.rho + screened_rates(k_C12_to_p_B11_derived)*Y(C12)) + + (-screened_rates(k_C12_p_to_N13_reaclib)*Y(C12)*Y(H1)*state.rho + screened_rates(k_N13_to_p_C12_derived)*Y(N13)) + + (-screened_rates(k_C13_p_to_N14_reaclib)*Y(C13)*Y(H1)*state.rho + screened_rates(k_N14_to_p_C13_derived)*Y(N14)) + + (-screened_rates(k_C14_p_to_N15_reaclib)*Y(C14)*Y(H1)*state.rho + screened_rates(k_N15_to_p_C14_derived)*Y(N15)) + + (-screened_rates(k_N13_p_to_O14_reaclib)*Y(N13)*Y(H1)*state.rho + screened_rates(k_O14_to_p_N13_derived)*Y(O14)) + + (-screened_rates(k_N14_p_to_O15_reaclib)*Y(N14)*Y(H1)*state.rho + screened_rates(k_O15_to_p_N14_derived)*Y(O15)) + + (-screened_rates(k_N15_p_to_O16_reaclib)*Y(N15)*Y(H1)*state.rho + screened_rates(k_O16_to_p_N15_derived)*Y(O16)) + + (-screened_rates(k_O16_p_to_F17_reaclib)*Y(O16)*Y(H1)*state.rho + screened_rates(k_F17_to_p_O16_derived)*Y(F17)) + + (-screened_rates(k_O17_p_to_F18_reaclib)*Y(O17)*Y(H1)*state.rho + screened_rates(k_F18_to_p_O17_derived)*Y(F18)) + + (-screened_rates(k_O18_p_to_F19_reaclib)*Y(O18)*Y(H1)*state.rho + screened_rates(k_F19_to_p_O18_derived)*Y(F19)) + + (-screened_rates(k_F17_p_to_Ne18_reaclib)*Y(F17)*Y(H1)*state.rho + screened_rates(k_Ne18_to_p_F17_derived)*Y(Ne18)) + + (-screened_rates(k_F18_p_to_Ne19_reaclib)*Y(F18)*Y(H1)*state.rho + screened_rates(k_Ne19_to_p_F18_derived)*Y(Ne19)) + + (-screened_rates(k_F19_p_to_Ne20_reaclib)*Y(F19)*Y(H1)*state.rho + screened_rates(k_Ne20_to_p_F19_derived)*Y(Ne20)) + + (-screened_rates(k_Ne20_p_to_Na21_reaclib)*Y(Ne20)*Y(H1)*state.rho + screened_rates(k_Na21_to_p_Ne20_derived)*Y(Na21)) + + (-screened_rates(k_Ne21_p_to_Na22_reaclib)*Y(Ne21)*Y(H1)*state.rho + screened_rates(k_Na22_to_p_Ne21_derived)*Y(Na22)) + + (-screened_rates(k_Ne22_p_to_Na23_reaclib)*Y(Ne22)*Y(H1)*state.rho + screened_rates(k_Na23_to_p_Ne22_derived)*Y(Na23)) + + (-screened_rates(k_Na22_p_to_Mg23_reaclib)*Y(Na22)*Y(H1)*state.rho + screened_rates(k_Mg23_to_p_Na22_derived)*Y(Mg23)) + + (-screened_rates(k_Na23_p_to_Mg24_reaclib)*Y(Na23)*Y(H1)*state.rho + screened_rates(k_Mg24_to_p_Na23_derived)*Y(Mg24)) + + (-screened_rates(k_Mg24_p_to_Al25_reaclib)*Y(Mg24)*Y(H1)*state.rho + screened_rates(k_Al25_to_p_Mg24_derived)*Y(Al25)) + + (-screened_rates(k_Mg25_p_to_Al26_reaclib)*Y(Mg25)*Y(H1)*state.rho + screened_rates(k_Al26_to_p_Mg25_derived)*Y(Al26)) + + (-screened_rates(k_Mg26_p_to_Al27_reaclib)*Y(Mg26)*Y(H1)*state.rho + screened_rates(k_Al27_to_p_Mg26_derived)*Y(Al27)) + + (-screened_rates(k_Al27_p_to_Si28_reaclib)*Y(Al27)*Y(H1)*state.rho + screened_rates(k_Si28_to_p_Al27_derived)*Y(Si28)) + + (-screened_rates(k_Si28_p_to_P29_reaclib)*Y(Si28)*Y(H1)*state.rho + screened_rates(k_P29_to_p_Si28_derived)*Y(P29)) + + (-screened_rates(k_Si29_p_to_P30_reaclib)*Y(Si29)*Y(H1)*state.rho + screened_rates(k_P30_to_p_Si29_derived)*Y(P30)) + + (-screened_rates(k_Si30_p_to_P31_reaclib)*Y(Si30)*Y(H1)*state.rho + screened_rates(k_P31_to_p_Si30_derived)*Y(P31)) + + (-screened_rates(k_Si31_p_to_P32_reaclib)*Y(Si31)*Y(H1)*state.rho + screened_rates(k_P32_to_p_Si31_derived)*Y(P32)) + + (-screened_rates(k_Si32_p_to_P33_reaclib)*Y(Si32)*Y(H1)*state.rho + screened_rates(k_P33_to_p_Si32_derived)*Y(P33)) + + (-screened_rates(k_P31_p_to_S32_reaclib)*Y(P31)*Y(H1)*state.rho + screened_rates(k_S32_to_p_P31_derived)*Y(S32)) + + (-screened_rates(k_P32_p_to_S33_reaclib)*Y(P32)*Y(H1)*state.rho + screened_rates(k_S33_to_p_P32_derived)*Y(S33)) + + (-screened_rates(k_P33_p_to_S34_reaclib)*Y(P33)*Y(H1)*state.rho + screened_rates(k_S34_to_p_P33_derived)*Y(S34)) + + (-screened_rates(k_S32_p_to_Cl33_reaclib)*Y(S32)*Y(H1)*state.rho + screened_rates(k_Cl33_to_p_S32_derived)*Y(Cl33)) + + (-screened_rates(k_S33_p_to_Cl34_reaclib)*Y(S33)*Y(H1)*state.rho + screened_rates(k_Cl34_to_p_S33_derived)*Y(Cl34)) + + (-screened_rates(k_S34_p_to_Cl35_reaclib)*Y(S34)*Y(H1)*state.rho + screened_rates(k_Cl35_to_p_S34_derived)*Y(Cl35)) + + (-screened_rates(k_S35_p_to_Cl36_reaclib)*Y(S35)*Y(H1)*state.rho + screened_rates(k_Cl36_to_p_S35_derived)*Y(Cl36)) + + (-screened_rates(k_S36_p_to_Cl37_reaclib)*Y(S36)*Y(H1)*state.rho + screened_rates(k_Cl37_to_p_S36_derived)*Y(Cl37)) + + (-screened_rates(k_Cl35_p_to_Ar36_reaclib)*Y(Cl35)*Y(H1)*state.rho + screened_rates(k_Ar36_to_p_Cl35_derived)*Y(Ar36)) + + (-screened_rates(k_Cl36_p_to_Ar37_reaclib)*Y(Cl36)*Y(H1)*state.rho + screened_rates(k_Ar37_to_p_Cl36_derived)*Y(Ar37)) + + (-screened_rates(k_Cl37_p_to_Ar38_reaclib)*Y(Cl37)*Y(H1)*state.rho + screened_rates(k_Ar38_to_p_Cl37_derived)*Y(Ar38)) + + (-screened_rates(k_Ar36_p_to_K37_reaclib)*Y(Ar36)*Y(H1)*state.rho + screened_rates(k_K37_to_p_Ar36_derived)*Y(K37)) + + (-screened_rates(k_Ar37_p_to_K38_reaclib)*Y(Ar37)*Y(H1)*state.rho + screened_rates(k_K38_to_p_Ar37_derived)*Y(K38)) + + (-screened_rates(k_Ar38_p_to_K39_reaclib)*Y(Ar38)*Y(H1)*state.rho + screened_rates(k_K39_to_p_Ar38_derived)*Y(K39)) + + (-screened_rates(k_Ar39_p_to_K40_reaclib)*Y(Ar39)*Y(H1)*state.rho + screened_rates(k_K40_to_p_Ar39_derived)*Y(K40)) + + (-screened_rates(k_Ar40_p_to_K41_reaclib)*Y(Ar40)*Y(H1)*state.rho + screened_rates(k_K41_to_p_Ar40_derived)*Y(K41)) + + (-screened_rates(k_K39_p_to_Ca40_reaclib)*Y(K39)*Y(H1)*state.rho + screened_rates(k_Ca40_to_p_K39_derived)*Y(Ca40)) + + (-screened_rates(k_K40_p_to_Ca41_reaclib)*Y(K40)*Y(H1)*state.rho + screened_rates(k_Ca41_to_p_K40_derived)*Y(Ca41)) + + (-screened_rates(k_K41_p_to_Ca42_reaclib)*Y(K41)*Y(H1)*state.rho + screened_rates(k_Ca42_to_p_K41_derived)*Y(Ca42)) + + (-screened_rates(k_Ca42_p_to_Sc43_reaclib)*Y(Ca42)*Y(H1)*state.rho + screened_rates(k_Sc43_to_p_Ca42_derived)*Y(Sc43)) + + (-screened_rates(k_Ca43_p_to_Sc44_reaclib)*Y(Ca43)*Y(H1)*state.rho + screened_rates(k_Sc44_to_p_Ca43_derived)*Y(Sc44)) + + (-screened_rates(k_Ca44_p_to_Sc45_reaclib)*Y(Ca44)*Y(H1)*state.rho + screened_rates(k_Sc45_to_p_Ca44_derived)*Y(Sc45)) + + (-screened_rates(k_Ca45_p_to_Sc46_reaclib)*Y(Ca45)*Y(H1)*state.rho + screened_rates(k_Sc46_to_p_Ca45_derived)*Y(Sc46)) + + (-screened_rates(k_Ca46_p_to_Sc47_reaclib)*Y(Ca46)*Y(H1)*state.rho + screened_rates(k_Sc47_to_p_Ca46_derived)*Y(Sc47)) + + (-screened_rates(k_Ca47_p_to_Sc48_reaclib)*Y(Ca47)*Y(H1)*state.rho + screened_rates(k_Sc48_to_p_Ca47_derived)*Y(Sc48)) + + (-screened_rates(k_Ca48_p_to_Sc49_reaclib)*Y(Ca48)*Y(H1)*state.rho + screened_rates(k_Sc49_to_p_Ca48_derived)*Y(Sc49)) + + (-screened_rates(k_Sc43_p_to_Ti44_reaclib)*Y(Sc43)*Y(H1)*state.rho + screened_rates(k_Ti44_to_p_Sc43_derived)*Y(Ti44)) + + (-screened_rates(k_Sc44_p_to_Ti45_reaclib)*Y(Sc44)*Y(H1)*state.rho + screened_rates(k_Ti45_to_p_Sc44_derived)*Y(Ti45)) + + (-screened_rates(k_Sc45_p_to_Ti46_reaclib)*Y(Sc45)*Y(H1)*state.rho + screened_rates(k_Ti46_to_p_Sc45_derived)*Y(Ti46)) + + (-screened_rates(k_Sc46_p_to_Ti47_reaclib)*Y(Sc46)*Y(H1)*state.rho + screened_rates(k_Ti47_to_p_Sc46_derived)*Y(Ti47)) + + (-screened_rates(k_Sc47_p_to_Ti48_reaclib)*Y(Sc47)*Y(H1)*state.rho + screened_rates(k_Ti48_to_p_Sc47_derived)*Y(Ti48)) + + (-screened_rates(k_Sc48_p_to_Ti49_reaclib)*Y(Sc48)*Y(H1)*state.rho + screened_rates(k_Ti49_to_p_Sc48_derived)*Y(Ti49)) + + (-screened_rates(k_Sc49_p_to_Ti50_reaclib)*Y(Sc49)*Y(H1)*state.rho + screened_rates(k_Ti50_to_p_Sc49_derived)*Y(Ti50)) + + (-screened_rates(k_Ti45_p_to_V46_reaclib)*Y(Ti45)*Y(H1)*state.rho + screened_rates(k_V46_to_p_Ti45_derived)*Y(V46)) + + (-screened_rates(k_Ti46_p_to_V47_reaclib)*Y(Ti46)*Y(H1)*state.rho + screened_rates(k_V47_to_p_Ti46_derived)*Y(V47)) + + (-screened_rates(k_Ti47_p_to_V48_reaclib)*Y(Ti47)*Y(H1)*state.rho + screened_rates(k_V48_to_p_Ti47_derived)*Y(V48)) + + (-screened_rates(k_Ti48_p_to_V49_reaclib)*Y(Ti48)*Y(H1)*state.rho + screened_rates(k_V49_to_p_Ti48_derived)*Y(V49)) + + (-screened_rates(k_Ti49_p_to_V50_reaclib)*Y(Ti49)*Y(H1)*state.rho + screened_rates(k_V50_to_p_Ti49_derived)*Y(V50)) + + (-screened_rates(k_Ti50_p_to_V51_reaclib)*Y(Ti50)*Y(H1)*state.rho + screened_rates(k_V51_to_p_Ti50_derived)*Y(V51)) + + (-screened_rates(k_Ti51_p_to_V52_reaclib)*Y(Ti51)*Y(H1)*state.rho + screened_rates(k_V52_to_p_Ti51_derived)*Y(V52)) + + (-screened_rates(k_V47_p_to_Cr48_reaclib)*Y(V47)*Y(H1)*state.rho + screened_rates(k_Cr48_to_p_V47_derived)*Y(Cr48)) + + (-screened_rates(k_V48_p_to_Cr49_reaclib)*Y(V48)*Y(H1)*state.rho + screened_rates(k_Cr49_to_p_V48_derived)*Y(Cr49)) + + (-screened_rates(k_V49_p_to_Cr50_reaclib)*Y(V49)*Y(H1)*state.rho + screened_rates(k_Cr50_to_p_V49_derived)*Y(Cr50)) + + (-screened_rates(k_V50_p_to_Cr51_reaclib)*Y(V50)*Y(H1)*state.rho + screened_rates(k_Cr51_to_p_V50_derived)*Y(Cr51)) + + (-screened_rates(k_V51_p_to_Cr52_reaclib)*Y(V51)*Y(H1)*state.rho + screened_rates(k_Cr52_to_p_V51_derived)*Y(Cr52)) + + (-screened_rates(k_V52_p_to_Cr53_reaclib)*Y(V52)*Y(H1)*state.rho + screened_rates(k_Cr53_to_p_V52_derived)*Y(Cr53)) + + (-screened_rates(k_Cr49_p_to_Mn50_reaclib)*Y(Cr49)*Y(H1)*state.rho + screened_rates(k_Mn50_to_p_Cr49_derived)*Y(Mn50)) + + (-screened_rates(k_Cr50_p_to_Mn51_reaclib)*Y(Cr50)*Y(H1)*state.rho + screened_rates(k_Mn51_to_p_Cr50_derived)*Y(Mn51)) + + (-screened_rates(k_Cr51_p_to_Mn52_reaclib)*Y(Cr51)*Y(H1)*state.rho + screened_rates(k_Mn52_to_p_Cr51_derived)*Y(Mn52)) + + (-screened_rates(k_Cr52_p_to_Mn53_reaclib)*Y(Cr52)*Y(H1)*state.rho + screened_rates(k_Mn53_to_p_Cr52_derived)*Y(Mn53)) + + (-screened_rates(k_Cr53_p_to_Mn54_reaclib)*Y(Cr53)*Y(H1)*state.rho + screened_rates(k_Mn54_to_p_Cr53_derived)*Y(Mn54)) + + (-screened_rates(k_Cr54_p_to_Mn55_reaclib)*Y(Cr54)*Y(H1)*state.rho + screened_rates(k_Mn55_to_p_Cr54_derived)*Y(Mn55)) + + (-screened_rates(k_Mn51_p_to_Fe52_reaclib)*Y(Mn51)*Y(H1)*state.rho + screened_rates(k_Fe52_to_p_Mn51_derived)*Y(Fe52)) + + (-screened_rates(k_Mn52_p_to_Fe53_reaclib)*Y(Mn52)*Y(H1)*state.rho + screened_rates(k_Fe53_to_p_Mn52_derived)*Y(Fe53)) + + (-screened_rates(k_Mn53_p_to_Fe54_reaclib)*Y(Mn53)*Y(H1)*state.rho + screened_rates(k_Fe54_to_p_Mn53_derived)*Y(Fe54)) + + (-screened_rates(k_Mn54_p_to_Fe55_reaclib)*Y(Mn54)*Y(H1)*state.rho + screened_rates(k_Fe55_to_p_Mn54_derived)*Y(Fe55)) + + (-screened_rates(k_Mn55_p_to_Fe56_reaclib)*Y(Mn55)*Y(H1)*state.rho + screened_rates(k_Fe56_to_p_Mn55_derived)*Y(Fe56)) + + (-screened_rates(k_Fe52_p_to_Co53_reaclib)*Y(Fe52)*Y(H1)*state.rho + screened_rates(k_Co53_to_p_Fe52_derived)*Y(Co53)) + + (-screened_rates(k_Fe53_p_to_Co54_reaclib)*Y(Fe53)*Y(H1)*state.rho + screened_rates(k_Co54_to_p_Fe53_derived)*Y(Co54)) + + (-screened_rates(k_Fe54_p_to_Co55_reaclib)*Y(Fe54)*Y(H1)*state.rho + screened_rates(k_Co55_to_p_Fe54_derived)*Y(Co55)) + + (-screened_rates(k_Fe55_p_to_Co56_reaclib)*Y(Fe55)*Y(H1)*state.rho + screened_rates(k_Co56_to_p_Fe55_derived)*Y(Co56)) + + (-screened_rates(k_Fe56_p_to_Co57_reaclib)*Y(Fe56)*Y(H1)*state.rho + screened_rates(k_Co57_to_p_Fe56_derived)*Y(Co57)) + + (-screened_rates(k_Fe57_p_to_Co58_reaclib)*Y(Fe57)*Y(H1)*state.rho + screened_rates(k_Co58_to_p_Fe57_derived)*Y(Co58)) + + (-screened_rates(k_Fe58_p_to_Co59_reaclib)*Y(Fe58)*Y(H1)*state.rho + screened_rates(k_Co59_to_p_Fe58_derived)*Y(Co59)) + + (-screened_rates(k_Co55_p_to_Ni56_reaclib)*Y(Co55)*Y(H1)*state.rho + screened_rates(k_Ni56_to_p_Co55_derived)*Y(Ni56)) + + (-screened_rates(k_Co56_p_to_Ni57_reaclib)*Y(Co56)*Y(H1)*state.rho + screened_rates(k_Ni57_to_p_Co56_derived)*Y(Ni57)) + + (-screened_rates(k_Co57_p_to_Ni58_reaclib)*Y(Co57)*Y(H1)*state.rho + screened_rates(k_Ni58_to_p_Co57_derived)*Y(Ni58)) + + (-screened_rates(k_Co58_p_to_Ni59_reaclib)*Y(Co58)*Y(H1)*state.rho + screened_rates(k_Ni59_to_p_Co58_derived)*Y(Ni59)) + + (-screened_rates(k_Co59_p_to_Ni60_reaclib)*Y(Co59)*Y(H1)*state.rho + screened_rates(k_Ni60_to_p_Co59_derived)*Y(Ni60)) + + (-screened_rates(k_Ni56_p_to_Cu57_reaclib)*Y(Ni56)*Y(H1)*state.rho + screened_rates(k_Cu57_to_p_Ni56_derived)*Y(Cu57)) + + (-screened_rates(k_Ni57_p_to_Cu58_reaclib)*Y(Ni57)*Y(H1)*state.rho + screened_rates(k_Cu58_to_p_Ni57_derived)*Y(Cu58)) + + (-screened_rates(k_Ni58_p_to_Cu59_reaclib)*Y(Ni58)*Y(H1)*state.rho + screened_rates(k_Cu59_to_p_Ni58_derived)*Y(Cu59)) + + (-screened_rates(k_Ni59_p_to_Cu60_reaclib)*Y(Ni59)*Y(H1)*state.rho + screened_rates(k_Cu60_to_p_Ni59_derived)*Y(Cu60)) + + (-screened_rates(k_Ni60_p_to_Cu61_reaclib)*Y(Ni60)*Y(H1)*state.rho + screened_rates(k_Cu61_to_p_Ni60_derived)*Y(Cu61)) + + (-screened_rates(k_Ni61_p_to_Cu62_reaclib)*Y(Ni61)*Y(H1)*state.rho + screened_rates(k_Cu62_to_p_Ni61_derived)*Y(Cu62)) + + (-screened_rates(k_Ni62_p_to_Cu63_reaclib)*Y(Ni62)*Y(H1)*state.rho + screened_rates(k_Cu63_to_p_Ni62_derived)*Y(Cu63)) + + (-screened_rates(k_Ni63_p_to_Cu64_reaclib)*Y(Ni63)*Y(H1)*state.rho + screened_rates(k_Cu64_to_p_Ni63_derived)*Y(Cu64)) + + (-screened_rates(k_Ni64_p_to_Cu65_reaclib)*Y(Ni64)*Y(H1)*state.rho + screened_rates(k_Cu65_to_p_Ni64_derived)*Y(Cu65)) + + (-screened_rates(k_Cu58_p_to_Zn59_reaclib)*Y(Cu58)*Y(H1)*state.rho + screened_rates(k_Zn59_to_p_Cu58_derived)*Y(Zn59)) + + (-screened_rates(k_Cu59_p_to_Zn60_reaclib)*Y(Cu59)*Y(H1)*state.rho + screened_rates(k_Zn60_to_p_Cu59_derived)*Y(Zn60)) + + (-screened_rates(k_Cu60_p_to_Zn61_reaclib)*Y(Cu60)*Y(H1)*state.rho + screened_rates(k_Zn61_to_p_Cu60_derived)*Y(Zn61)) + + (-screened_rates(k_Cu61_p_to_Zn62_reaclib)*Y(Cu61)*Y(H1)*state.rho + screened_rates(k_Zn62_to_p_Cu61_derived)*Y(Zn62)) + + (-screened_rates(k_Cu62_p_to_Zn63_reaclib)*Y(Cu62)*Y(H1)*state.rho + screened_rates(k_Zn63_to_p_Cu62_derived)*Y(Zn63)) + + (-screened_rates(k_Cu63_p_to_Zn64_reaclib)*Y(Cu63)*Y(H1)*state.rho + screened_rates(k_Zn64_to_p_Cu63_derived)*Y(Zn64)) + + (-screened_rates(k_Cu64_p_to_Zn65_reaclib)*Y(Cu64)*Y(H1)*state.rho + screened_rates(k_Zn65_to_p_Cu64_derived)*Y(Zn65)) + + (-screened_rates(k_Cu65_p_to_Zn66_reaclib)*Y(Cu65)*Y(H1)*state.rho + screened_rates(k_Zn66_to_p_Cu65_derived)*Y(Zn66)) + + (-screened_rates(k_Zn61_p_to_Ga62_reaclib)*Y(Zn61)*Y(H1)*state.rho + screened_rates(k_Ga62_to_p_Zn61_derived)*Y(Ga62)) + + (-screened_rates(k_Zn62_p_to_Ga63_reaclib)*Y(Zn62)*Y(H1)*state.rho + screened_rates(k_Ga63_to_p_Zn62_derived)*Y(Ga63)) + + (-screened_rates(k_Zn63_p_to_Ga64_reaclib)*Y(Zn63)*Y(H1)*state.rho + screened_rates(k_Ga64_to_p_Zn63_derived)*Y(Ga64)) + + (-screened_rates(k_Ga62_p_to_Ge63_reaclib)*Y(Ga62)*Y(H1)*state.rho + screened_rates(k_Ge63_to_p_Ga62_derived)*Y(Ge63)) + + (-screened_rates(k_Ga63_p_to_Ge64_reaclib)*Y(Ga63)*Y(H1)*state.rho + screened_rates(k_Ge64_to_p_Ga63_derived)*Y(Ge64)) + + (screened_rates(k_He3_d_to_p_He4_reaclib)*Y(He3)*Y(H2)*state.rho + -screened_rates(k_He4_p_to_d_He3_derived)*Y(He4)*Y(H1)*state.rho) + + (-screened_rates(k_Li6_p_to_He4_He3_reaclib)*Y(Li6)*Y(H1)*state.rho + screened_rates(k_He3_He4_to_p_Li6_derived)*Y(He3)*Y(He4)*state.rho) + + (screened_rates(k_Li6_d_to_p_Li7_reaclib)*Y(Li6)*Y(H2)*state.rho + -screened_rates(k_Li7_p_to_d_Li6_derived)*Y(Li7)*Y(H1)*state.rho) + + (-screened_rates(k_Li7_p_to_He4_He4_reaclib)*Y(Li7)*Y(H1)*state.rho + 0.5*screened_rates(k_He4_He4_to_p_Li7_derived)*amrex::Math::powi<2>(Y(He4))*state.rho) + + (screened_rates(k_Be7_n_to_p_Li7_reaclib)*Y(Be7)*Y(N)*state.rho + -screened_rates(k_Li7_p_to_n_Be7_derived)*Y(Li7)*Y(H1)*state.rho) + + (-screened_rates(k_Be9_p_to_He4_Li6_reaclib)*Y(Be9)*Y(H1)*state.rho + screened_rates(k_Li6_He4_to_p_Be9_derived)*Y(He4)*Y(Li6)*state.rho) + + (-screened_rates(k_B10_p_to_He4_Be7_reaclib)*Y(B10)*Y(H1)*state.rho + screened_rates(k_Be7_He4_to_p_B10_derived)*Y(Be7)*Y(He4)*state.rho) + + (screened_rates(k_B10_He4_to_p_C13_reaclib)*Y(B10)*Y(He4)*state.rho + -screened_rates(k_C13_p_to_He4_B10_derived)*Y(C13)*Y(H1)*state.rho) + + (screened_rates(k_B11_He4_to_p_C14_reaclib)*Y(B11)*Y(He4)*state.rho + -screened_rates(k_C14_p_to_He4_B11_derived)*Y(C14)*Y(H1)*state.rho) + + (0.5*screened_rates(k_C12_C12_to_p_Na23_reaclib)*amrex::Math::powi<2>(Y(C12))*state.rho + -screened_rates(k_Na23_p_to_C12_C12_derived)*Y(Na23)*Y(H1)*state.rho) + + (screened_rates(k_N13_He4_to_p_O16_reaclib)*Y(He4)*Y(N13)*state.rho + -screened_rates(k_O16_p_to_He4_N13_derived)*Y(O16)*Y(H1)*state.rho) + + (screened_rates(k_N14_n_to_p_C14_reaclib)*Y(N14)*Y(N)*state.rho + -screened_rates(k_C14_p_to_n_N14_derived)*Y(C14)*Y(H1)*state.rho) + + (-screened_rates(k_N15_p_to_He4_C12_reaclib)*Y(N15)*Y(H1)*state.rho + screened_rates(k_C12_He4_to_p_N15_derived)*Y(C12)*Y(He4)*state.rho) + + (screened_rates(k_O14_He4_to_p_F17_reaclib)*Y(He4)*Y(O14)*state.rho + -screened_rates(k_F17_p_to_He4_O14_derived)*Y(F17)*Y(H1)*state.rho) + + (screened_rates(k_O16_C12_to_p_Al27_reaclib)*Y(C12)*Y(O16)*state.rho + -screened_rates(k_Al27_p_to_C12_O16_derived)*Y(Al27)*Y(H1)*state.rho) + + (0.5*screened_rates(k_O16_O16_to_p_P31_reaclib)*amrex::Math::powi<2>(Y(O16))*state.rho + -screened_rates(k_P31_p_to_O16_O16_derived)*Y(P31)*Y(H1)*state.rho) + + (-screened_rates(k_O17_p_to_He4_N14_reaclib)*Y(O17)*Y(H1)*state.rho + screened_rates(k_N14_He4_to_p_O17_derived)*Y(He4)*Y(N14)*state.rho) + + (-screened_rates(k_O18_p_to_He4_N15_reaclib)*Y(O18)*Y(H1)*state.rho + screened_rates(k_N15_He4_to_p_O18_derived)*Y(He4)*Y(N15)*state.rho) + + (screened_rates(k_F17_n_to_p_O17_reaclib)*Y(F17)*Y(N)*state.rho + -screened_rates(k_O17_p_to_n_F17_derived)*Y(O17)*Y(H1)*state.rho) + + (screened_rates(k_F18_n_to_p_O18_reaclib)*Y(F18)*Y(N)*state.rho + -screened_rates(k_O18_p_to_n_F18_derived)*Y(O18)*Y(H1)*state.rho) + + (-screened_rates(k_F18_p_to_He4_O15_reaclib)*Y(F18)*Y(H1)*state.rho + screened_rates(k_O15_He4_to_p_F18_derived)*Y(He4)*Y(O15)*state.rho) + + (screened_rates(k_F18_He4_to_p_Ne21_reaclib)*Y(F18)*Y(He4)*state.rho + -screened_rates(k_Ne21_p_to_He4_F18_derived)*Y(Ne21)*Y(H1)*state.rho) + + (-screened_rates(k_F19_p_to_He4_O16_reaclib)*Y(F19)*Y(H1)*state.rho + screened_rates(k_O16_He4_to_p_F19_derived)*Y(He4)*Y(O16)*state.rho) + + (screened_rates(k_F19_He4_to_p_Ne22_reaclib)*Y(F19)*Y(He4)*state.rho + -screened_rates(k_Ne22_p_to_He4_F19_derived)*Y(Ne22)*Y(H1)*state.rho) + + (screened_rates(k_Ne18_n_to_p_F18_reaclib)*Y(Ne18)*Y(N)*state.rho + -screened_rates(k_F18_p_to_n_Ne18_derived)*Y(F18)*Y(H1)*state.rho) + + (screened_rates(k_Ne18_He4_to_p_Na21_reaclib)*Y(He4)*Y(Ne18)*state.rho + -screened_rates(k_Na21_p_to_He4_Ne18_derived)*Y(Na21)*Y(H1)*state.rho) + + (screened_rates(k_Ne19_He4_to_p_Na22_reaclib)*Y(He4)*Y(Ne19)*state.rho + -screened_rates(k_Na22_p_to_He4_Ne19_derived)*Y(Na22)*Y(H1)*state.rho) + + (screened_rates(k_Ne20_C12_to_p_P31_reaclib)*Y(C12)*Y(Ne20)*state.rho + -screened_rates(k_P31_p_to_C12_Ne20_derived)*Y(P31)*Y(H1)*state.rho) + + (screened_rates(k_Na21_n_to_p_Ne21_reaclib)*Y(Na21)*Y(N)*state.rho + -screened_rates(k_Ne21_p_to_n_Na21_derived)*Y(Ne21)*Y(H1)*state.rho) + + (screened_rates(k_Na22_n_to_p_Ne22_reaclib)*Y(Na22)*Y(N)*state.rho + -screened_rates(k_Ne22_p_to_n_Na22_derived)*Y(Ne22)*Y(H1)*state.rho) + + (screened_rates(k_Na22_He4_to_p_Mg25_reaclib)*Y(He4)*Y(Na22)*state.rho + -screened_rates(k_Mg25_p_to_He4_Na22_derived)*Y(Mg25)*Y(H1)*state.rho) + + (-screened_rates(k_Na23_p_to_He4_Ne20_reaclib)*Y(Na23)*Y(H1)*state.rho + screened_rates(k_Ne20_He4_to_p_Na23_derived)*Y(He4)*Y(Ne20)*state.rho) + + (screened_rates(k_Na23_He4_to_p_Mg26_reaclib)*Y(He4)*Y(Na23)*state.rho + -screened_rates(k_Mg26_p_to_He4_Na23_derived)*Y(Mg26)*Y(H1)*state.rho) + + (screened_rates(k_Mg23_He4_to_p_Al26_reaclib)*Y(He4)*Y(Mg23)*state.rho + -screened_rates(k_Al26_p_to_He4_Mg23_derived)*Y(Al26)*Y(H1)*state.rho) + + (screened_rates(k_Al25_n_to_p_Mg25_reaclib)*Y(Al25)*Y(N)*state.rho + -screened_rates(k_Mg25_p_to_n_Al25_derived)*Y(Mg25)*Y(H1)*state.rho) + + (screened_rates(k_Al25_He4_to_p_Si28_reaclib)*Y(Al25)*Y(He4)*state.rho + -screened_rates(k_Si28_p_to_He4_Al25_derived)*Y(Si28)*Y(H1)*state.rho) + + (screened_rates(k_Al26_n_to_p_Mg26_reaclib)*Y(Al26)*Y(N)*state.rho + -screened_rates(k_Mg26_p_to_n_Al26_derived)*Y(Mg26)*Y(H1)*state.rho) + + (screened_rates(k_Al26_He4_to_p_Si29_reaclib)*Y(Al26)*Y(He4)*state.rho + -screened_rates(k_Si29_p_to_He4_Al26_derived)*Y(Si29)*Y(H1)*state.rho) + + (-screened_rates(k_Al27_p_to_He4_Mg24_reaclib)*Y(Al27)*Y(H1)*state.rho + screened_rates(k_Mg24_He4_to_p_Al27_derived)*Y(He4)*Y(Mg24)*state.rho) + + (screened_rates(k_Al27_He4_to_p_Si30_reaclib)*Y(Al27)*Y(He4)*state.rho + -screened_rates(k_Si30_p_to_He4_Al27_derived)*Y(Si30)*Y(H1)*state.rho) + + (-screened_rates(k_Si31_p_to_n_P31_reaclib)*Y(Si31)*Y(H1)*state.rho + screened_rates(k_P31_n_to_p_Si31_derived)*Y(P31)*Y(N)*state.rho) + + (screened_rates(k_P29_n_to_p_Si29_reaclib)*Y(P29)*Y(N)*state.rho + -screened_rates(k_Si29_p_to_n_P29_derived)*Y(Si29)*Y(H1)*state.rho) + + (screened_rates(k_P29_He4_to_p_S32_reaclib)*Y(He4)*Y(P29)*state.rho + -screened_rates(k_S32_p_to_He4_P29_derived)*Y(S32)*Y(H1)*state.rho) + + (screened_rates(k_P30_n_to_p_Si30_reaclib)*Y(P30)*Y(N)*state.rho + -screened_rates(k_Si30_p_to_n_P30_derived)*Y(Si30)*Y(H1)*state.rho) + + (screened_rates(k_P30_He4_to_p_S33_reaclib)*Y(He4)*Y(P30)*state.rho + -screened_rates(k_S33_p_to_He4_P30_derived)*Y(S33)*Y(H1)*state.rho) + + (-screened_rates(k_P31_p_to_He4_Si28_reaclib)*Y(P31)*Y(H1)*state.rho + screened_rates(k_Si28_He4_to_p_P31_derived)*Y(He4)*Y(Si28)*state.rho) + + (screened_rates(k_P31_He4_to_p_S34_reaclib)*Y(He4)*Y(P31)*state.rho + -screened_rates(k_S34_p_to_He4_P31_derived)*Y(S34)*Y(H1)*state.rho) + + (screened_rates(k_P32_n_to_p_Si32_reaclib)*Y(P32)*Y(N)*state.rho + -screened_rates(k_Si32_p_to_n_P32_derived)*Y(Si32)*Y(H1)*state.rho) + + (-screened_rates(k_P32_p_to_n_S32_reaclib)*Y(P32)*Y(H1)*state.rho + screened_rates(k_S32_n_to_p_P32_derived)*Y(S32)*Y(N)*state.rho) + + (-screened_rates(k_P32_p_to_He4_Si29_reaclib)*Y(P32)*Y(H1)*state.rho + screened_rates(k_Si29_He4_to_p_P32_derived)*Y(He4)*Y(Si29)*state.rho) + + (-screened_rates(k_P33_p_to_He4_Si30_reaclib)*Y(P33)*Y(H1)*state.rho + screened_rates(k_Si30_He4_to_p_P33_derived)*Y(He4)*Y(Si30)*state.rho) + + (screened_rates(k_S33_n_to_p_P33_reaclib)*Y(S33)*Y(N)*state.rho + -screened_rates(k_P33_p_to_n_S33_derived)*Y(P33)*Y(H1)*state.rho) + + (-screened_rates(k_S35_p_to_He4_P32_reaclib)*Y(S35)*Y(H1)*state.rho + screened_rates(k_P32_He4_to_p_S35_derived)*Y(He4)*Y(P32)*state.rho) + + (-screened_rates(k_S36_p_to_He4_P33_reaclib)*Y(S36)*Y(H1)*state.rho + screened_rates(k_P33_He4_to_p_S36_derived)*Y(He4)*Y(P33)*state.rho) + + (screened_rates(k_Cl33_n_to_p_S33_reaclib)*Y(Cl33)*Y(N)*state.rho + -screened_rates(k_S33_p_to_n_Cl33_derived)*Y(S33)*Y(H1)*state.rho) + + (screened_rates(k_Cl33_He4_to_p_Ar36_reaclib)*Y(Cl33)*Y(He4)*state.rho + -screened_rates(k_Ar36_p_to_He4_Cl33_derived)*Y(Ar36)*Y(H1)*state.rho) + + (screened_rates(k_Cl34_n_to_p_S34_reaclib)*Y(Cl34)*Y(N)*state.rho + -screened_rates(k_S34_p_to_n_Cl34_derived)*Y(S34)*Y(H1)*state.rho) + + (screened_rates(k_Cl34_He4_to_p_Ar37_reaclib)*Y(Cl34)*Y(He4)*state.rho + -screened_rates(k_Ar37_p_to_He4_Cl34_derived)*Y(Ar37)*Y(H1)*state.rho) + + (screened_rates(k_Cl35_n_to_p_S35_reaclib)*Y(Cl35)*Y(N)*state.rho + -screened_rates(k_S35_p_to_n_Cl35_derived)*Y(S35)*Y(H1)*state.rho) + + (-screened_rates(k_Cl35_p_to_He4_S32_reaclib)*Y(Cl35)*Y(H1)*state.rho + screened_rates(k_S32_He4_to_p_Cl35_derived)*Y(He4)*Y(S32)*state.rho) + + (screened_rates(k_Cl35_He4_to_p_Ar38_reaclib)*Y(Cl35)*Y(He4)*state.rho + -screened_rates(k_Ar38_p_to_He4_Cl35_derived)*Y(Ar38)*Y(H1)*state.rho) + + (screened_rates(k_Cl36_n_to_p_S36_reaclib)*Y(Cl36)*Y(N)*state.rho + -screened_rates(k_S36_p_to_n_Cl36_derived)*Y(S36)*Y(H1)*state.rho) + + (-screened_rates(k_Cl36_p_to_He4_S33_reaclib)*Y(Cl36)*Y(H1)*state.rho + screened_rates(k_S33_He4_to_p_Cl36_derived)*Y(He4)*Y(S33)*state.rho) + + (screened_rates(k_Ar36_n_to_p_Cl36_reaclib)*Y(Ar36)*Y(N)*state.rho + -screened_rates(k_Cl36_p_to_n_Ar36_derived)*Y(Cl36)*Y(H1)*state.rho) + + (screened_rates(k_Ar37_n_to_p_Cl37_reaclib)*Y(Ar37)*Y(N)*state.rho + -screened_rates(k_Cl37_p_to_n_Ar37_derived)*Y(Cl37)*Y(H1)*state.rho) + + (-screened_rates(k_Ar39_p_to_He4_Cl36_reaclib)*Y(Ar39)*Y(H1)*state.rho + screened_rates(k_Cl36_He4_to_p_Ar39_derived)*Y(Cl36)*Y(He4)*state.rho) + + (-screened_rates(k_Ar40_p_to_He4_Cl37_reaclib)*Y(Ar40)*Y(H1)*state.rho + screened_rates(k_Cl37_He4_to_p_Ar40_derived)*Y(Cl37)*Y(He4)*state.rho) + + (screened_rates(k_K37_n_to_p_Ar37_reaclib)*Y(K37)*Y(N)*state.rho + -screened_rates(k_Ar37_p_to_n_K37_derived)*Y(Ar37)*Y(H1)*state.rho) + + (screened_rates(k_K37_He4_to_p_Ca40_reaclib)*Y(He4)*Y(K37)*state.rho + -screened_rates(k_Ca40_p_to_He4_K37_derived)*Y(Ca40)*Y(H1)*state.rho) + + (screened_rates(k_K38_n_to_p_Ar38_reaclib)*Y(K38)*Y(N)*state.rho + -screened_rates(k_Ar38_p_to_n_K38_derived)*Y(Ar38)*Y(H1)*state.rho) + + (screened_rates(k_K38_He4_to_p_Ca41_reaclib)*Y(He4)*Y(K38)*state.rho + -screened_rates(k_Ca41_p_to_He4_K38_derived)*Y(Ca41)*Y(H1)*state.rho) + + (screened_rates(k_K39_n_to_p_Ar39_reaclib)*Y(K39)*Y(N)*state.rho + -screened_rates(k_Ar39_p_to_n_K39_derived)*Y(Ar39)*Y(H1)*state.rho) + + (-screened_rates(k_K39_p_to_He4_Ar36_reaclib)*Y(K39)*Y(H1)*state.rho + screened_rates(k_Ar36_He4_to_p_K39_derived)*Y(Ar36)*Y(He4)*state.rho) + + (screened_rates(k_K40_n_to_p_Ar40_reaclib)*Y(K40)*Y(N)*state.rho + -screened_rates(k_Ar40_p_to_n_K40_derived)*Y(Ar40)*Y(H1)*state.rho) + + (-screened_rates(k_K40_p_to_n_Ca40_reaclib)*Y(K40)*Y(H1)*state.rho + screened_rates(k_Ca40_n_to_p_K40_derived)*Y(Ca40)*Y(N)*state.rho) + + (-screened_rates(k_K40_p_to_He4_Ar37_reaclib)*Y(K40)*Y(H1)*state.rho + screened_rates(k_Ar37_He4_to_p_K40_derived)*Y(Ar37)*Y(He4)*state.rho) + + (screened_rates(k_K40_He4_to_p_Ca43_reaclib)*Y(He4)*Y(K40)*state.rho + -screened_rates(k_Ca43_p_to_He4_K40_derived)*Y(Ca43)*Y(H1)*state.rho) + + (-screened_rates(k_K41_p_to_He4_Ar38_reaclib)*Y(K41)*Y(H1)*state.rho + screened_rates(k_Ar38_He4_to_p_K41_derived)*Y(Ar38)*Y(He4)*state.rho) + + (screened_rates(k_K41_He4_to_p_Ca44_reaclib)*Y(He4)*Y(K41)*state.rho + -screened_rates(k_Ca44_p_to_He4_K41_derived)*Y(Ca44)*Y(H1)*state.rho) + + (-screened_rates(k_Ca42_p_to_He4_K39_reaclib)*Y(Ca42)*Y(H1)*state.rho + screened_rates(k_K39_He4_to_p_Ca42_derived)*Y(He4)*Y(K39)*state.rho) + + (-screened_rates(k_Ca47_p_to_n_Sc47_reaclib)*Y(Ca47)*Y(H1)*state.rho + screened_rates(k_Sc47_n_to_p_Ca47_derived)*Y(Sc47)*Y(N)*state.rho) + + (screened_rates(k_Sc43_n_to_p_Ca43_reaclib)*Y(Sc43)*Y(N)*state.rho + -screened_rates(k_Ca43_p_to_n_Sc43_derived)*Y(Ca43)*Y(H1)*state.rho) + + (-screened_rates(k_Sc43_p_to_He4_Ca40_reaclib)*Y(Sc43)*Y(H1)*state.rho + screened_rates(k_Ca40_He4_to_p_Sc43_derived)*Y(Ca40)*Y(He4)*state.rho) + + (screened_rates(k_Sc43_He4_to_p_Ti46_reaclib)*Y(He4)*Y(Sc43)*state.rho + -screened_rates(k_Ti46_p_to_He4_Sc43_derived)*Y(Ti46)*Y(H1)*state.rho) + + (screened_rates(k_Sc44_n_to_p_Ca44_reaclib)*Y(Sc44)*Y(N)*state.rho + -screened_rates(k_Ca44_p_to_n_Sc44_derived)*Y(Ca44)*Y(H1)*state.rho) + + (-screened_rates(k_Sc44_p_to_He4_Ca41_reaclib)*Y(Sc44)*Y(H1)*state.rho + screened_rates(k_Ca41_He4_to_p_Sc44_derived)*Y(Ca41)*Y(He4)*state.rho) + + (screened_rates(k_Sc44_He4_to_p_Ti47_reaclib)*Y(He4)*Y(Sc44)*state.rho + -screened_rates(k_Ti47_p_to_He4_Sc44_derived)*Y(Ti47)*Y(H1)*state.rho) + + (screened_rates(k_Sc45_n_to_p_Ca45_reaclib)*Y(Sc45)*Y(N)*state.rho + -screened_rates(k_Ca45_p_to_n_Sc45_derived)*Y(Ca45)*Y(H1)*state.rho) + + (-screened_rates(k_Sc45_p_to_He4_Ca42_reaclib)*Y(Sc45)*Y(H1)*state.rho + screened_rates(k_Ca42_He4_to_p_Sc45_derived)*Y(Ca42)*Y(He4)*state.rho) + + (screened_rates(k_Sc45_He4_to_p_Ti48_reaclib)*Y(He4)*Y(Sc45)*state.rho + -screened_rates(k_Ti48_p_to_He4_Sc45_derived)*Y(Ti48)*Y(H1)*state.rho) + + (screened_rates(k_Sc46_n_to_p_Ca46_reaclib)*Y(Sc46)*Y(N)*state.rho + -screened_rates(k_Ca46_p_to_n_Sc46_derived)*Y(Ca46)*Y(H1)*state.rho) + + (-screened_rates(k_Sc46_p_to_n_Ti46_reaclib)*Y(Sc46)*Y(H1)*state.rho + screened_rates(k_Ti46_n_to_p_Sc46_derived)*Y(Ti46)*Y(N)*state.rho) + + (-screened_rates(k_Sc46_p_to_He4_Ca43_reaclib)*Y(Sc46)*Y(H1)*state.rho + screened_rates(k_Ca43_He4_to_p_Sc46_derived)*Y(Ca43)*Y(He4)*state.rho) + + (screened_rates(k_Sc46_He4_to_p_Ti49_reaclib)*Y(He4)*Y(Sc46)*state.rho + -screened_rates(k_Ti49_p_to_He4_Sc46_derived)*Y(Ti49)*Y(H1)*state.rho) + + (-screened_rates(k_Sc47_p_to_He4_Ca44_reaclib)*Y(Sc47)*Y(H1)*state.rho + screened_rates(k_Ca44_He4_to_p_Sc47_derived)*Y(Ca44)*Y(He4)*state.rho) + + (screened_rates(k_Sc47_He4_to_p_Ti50_reaclib)*Y(He4)*Y(Sc47)*state.rho + -screened_rates(k_Ti50_p_to_He4_Sc47_derived)*Y(Ti50)*Y(H1)*state.rho) + + (screened_rates(k_Sc48_n_to_p_Ca48_reaclib)*Y(Sc48)*Y(N)*state.rho + -screened_rates(k_Ca48_p_to_n_Sc48_derived)*Y(Ca48)*Y(H1)*state.rho) + + (-screened_rates(k_Sc48_p_to_n_Ti48_reaclib)*Y(Sc48)*Y(H1)*state.rho + screened_rates(k_Ti48_n_to_p_Sc48_derived)*Y(Ti48)*Y(N)*state.rho) + + (-screened_rates(k_Sc48_p_to_He4_Ca45_reaclib)*Y(Sc48)*Y(H1)*state.rho + screened_rates(k_Ca45_He4_to_p_Sc48_derived)*Y(Ca45)*Y(He4)*state.rho) + + (screened_rates(k_Sc48_He4_to_p_Ti51_reaclib)*Y(He4)*Y(Sc48)*state.rho + -screened_rates(k_Ti51_p_to_He4_Sc48_derived)*Y(Ti51)*Y(H1)*state.rho) + + (-screened_rates(k_Sc49_p_to_n_Ti49_reaclib)*Y(Sc49)*Y(H1)*state.rho + screened_rates(k_Ti49_n_to_p_Sc49_derived)*Y(Ti49)*Y(N)*state.rho) + + (-screened_rates(k_Sc49_p_to_He4_Ca46_reaclib)*Y(Sc49)*Y(H1)*state.rho + screened_rates(k_Ca46_He4_to_p_Sc49_derived)*Y(Ca46)*Y(He4)*state.rho) + + (screened_rates(k_Ti44_n_to_p_Sc44_reaclib)*Y(Ti44)*Y(N)*state.rho + -screened_rates(k_Sc44_p_to_n_Ti44_derived)*Y(Sc44)*Y(H1)*state.rho) + + (screened_rates(k_Ti45_n_to_p_Sc45_reaclib)*Y(Ti45)*Y(N)*state.rho + -screened_rates(k_Sc45_p_to_n_Ti45_derived)*Y(Sc45)*Y(H1)*state.rho) + + (screened_rates(k_Ti45_He4_to_p_V48_reaclib)*Y(He4)*Y(Ti45)*state.rho + -screened_rates(k_V48_p_to_He4_Ti45_derived)*Y(V48)*Y(H1)*state.rho) + + (screened_rates(k_Ti47_n_to_p_Sc47_reaclib)*Y(Ti47)*Y(N)*state.rho + -screened_rates(k_Sc47_p_to_n_Ti47_derived)*Y(Sc47)*Y(H1)*state.rho) + + (-screened_rates(k_Ti51_p_to_n_V51_reaclib)*Y(Ti51)*Y(H1)*state.rho + screened_rates(k_V51_n_to_p_Ti51_derived)*Y(V51)*Y(N)*state.rho) + + (screened_rates(k_V46_n_to_p_Ti46_reaclib)*Y(V46)*Y(N)*state.rho + -screened_rates(k_Ti46_p_to_n_V46_derived)*Y(Ti46)*Y(H1)*state.rho) + + (screened_rates(k_V46_He4_to_p_Cr49_reaclib)*Y(He4)*Y(V46)*state.rho + -screened_rates(k_Cr49_p_to_He4_V46_derived)*Y(Cr49)*Y(H1)*state.rho) + + (screened_rates(k_V47_n_to_p_Ti47_reaclib)*Y(V47)*Y(N)*state.rho + -screened_rates(k_Ti47_p_to_n_V47_derived)*Y(Ti47)*Y(H1)*state.rho) + + (screened_rates(k_V47_He4_to_p_Cr50_reaclib)*Y(He4)*Y(V47)*state.rho + -screened_rates(k_Cr50_p_to_He4_V47_derived)*Y(Cr50)*Y(H1)*state.rho) + + (screened_rates(k_V48_n_to_p_Ti48_reaclib)*Y(V48)*Y(N)*state.rho + -screened_rates(k_Ti48_p_to_n_V48_derived)*Y(Ti48)*Y(H1)*state.rho) + + (screened_rates(k_V48_He4_to_p_Cr51_reaclib)*Y(He4)*Y(V48)*state.rho + -screened_rates(k_Cr51_p_to_He4_V48_derived)*Y(Cr51)*Y(H1)*state.rho) + + (screened_rates(k_V49_n_to_p_Ti49_reaclib)*Y(V49)*Y(N)*state.rho + -screened_rates(k_Ti49_p_to_n_V49_derived)*Y(Ti49)*Y(H1)*state.rho) + + (-screened_rates(k_V49_p_to_He4_Ti46_reaclib)*Y(V49)*Y(H1)*state.rho + screened_rates(k_Ti46_He4_to_p_V49_derived)*Y(He4)*Y(Ti46)*state.rho) + + (screened_rates(k_V49_He4_to_p_Cr52_reaclib)*Y(He4)*Y(V49)*state.rho + -screened_rates(k_Cr52_p_to_He4_V49_derived)*Y(Cr52)*Y(H1)*state.rho) + + (screened_rates(k_V50_n_to_p_Ti50_reaclib)*Y(V50)*Y(N)*state.rho + -screened_rates(k_Ti50_p_to_n_V50_derived)*Y(Ti50)*Y(H1)*state.rho) + + (-screened_rates(k_V50_p_to_n_Cr50_reaclib)*Y(V50)*Y(H1)*state.rho + screened_rates(k_Cr50_n_to_p_V50_derived)*Y(Cr50)*Y(N)*state.rho) + + (-screened_rates(k_V50_p_to_He4_Ti47_reaclib)*Y(V50)*Y(H1)*state.rho + screened_rates(k_Ti47_He4_to_p_V50_derived)*Y(He4)*Y(Ti47)*state.rho) + + (screened_rates(k_V50_He4_to_p_Cr53_reaclib)*Y(He4)*Y(V50)*state.rho + -screened_rates(k_Cr53_p_to_He4_V50_derived)*Y(Cr53)*Y(H1)*state.rho) + + (-screened_rates(k_V51_p_to_He4_Ti48_reaclib)*Y(V51)*Y(H1)*state.rho + screened_rates(k_Ti48_He4_to_p_V51_derived)*Y(He4)*Y(Ti48)*state.rho) + + (-screened_rates(k_V52_p_to_n_Cr52_reaclib)*Y(V52)*Y(H1)*state.rho + screened_rates(k_Cr52_n_to_p_V52_derived)*Y(Cr52)*Y(N)*state.rho) + + (-screened_rates(k_V52_p_to_He4_Ti49_reaclib)*Y(V52)*Y(H1)*state.rho + screened_rates(k_Ti49_He4_to_p_V52_derived)*Y(He4)*Y(Ti49)*state.rho) + + (screened_rates(k_Cr48_n_to_p_V48_reaclib)*Y(Cr48)*Y(N)*state.rho + -screened_rates(k_V48_p_to_n_Cr48_derived)*Y(V48)*Y(H1)*state.rho) + + (screened_rates(k_Cr48_He4_to_p_Mn51_reaclib)*Y(Cr48)*Y(He4)*state.rho + -screened_rates(k_Mn51_p_to_He4_Cr48_derived)*Y(Mn51)*Y(H1)*state.rho) + + (screened_rates(k_Cr49_n_to_p_V49_reaclib)*Y(Cr49)*Y(N)*state.rho + -screened_rates(k_V49_p_to_n_Cr49_derived)*Y(V49)*Y(H1)*state.rho) + + (screened_rates(k_Cr49_He4_to_p_Mn52_reaclib)*Y(Cr49)*Y(He4)*state.rho + -screened_rates(k_Mn52_p_to_He4_Cr49_derived)*Y(Mn52)*Y(H1)*state.rho) + + (screened_rates(k_Cr51_n_to_p_V51_reaclib)*Y(Cr51)*Y(N)*state.rho + -screened_rates(k_V51_p_to_n_Cr51_derived)*Y(V51)*Y(H1)*state.rho) + + (-screened_rates(k_Cr54_p_to_He4_V51_reaclib)*Y(Cr54)*Y(H1)*state.rho + screened_rates(k_V51_He4_to_p_Cr54_derived)*Y(He4)*Y(V51)*state.rho) + + (screened_rates(k_Mn50_n_to_p_Cr50_reaclib)*Y(Mn50)*Y(N)*state.rho + -screened_rates(k_Cr50_p_to_n_Mn50_derived)*Y(Cr50)*Y(H1)*state.rho) + + (screened_rates(k_Mn50_He4_to_p_Fe53_reaclib)*Y(He4)*Y(Mn50)*state.rho + -screened_rates(k_Fe53_p_to_He4_Mn50_derived)*Y(Fe53)*Y(H1)*state.rho) + + (screened_rates(k_Mn51_n_to_p_Cr51_reaclib)*Y(Mn51)*Y(N)*state.rho + -screened_rates(k_Cr51_p_to_n_Mn51_derived)*Y(Cr51)*Y(H1)*state.rho) + + (screened_rates(k_Mn51_He4_to_p_Fe54_reaclib)*Y(He4)*Y(Mn51)*state.rho + -screened_rates(k_Fe54_p_to_He4_Mn51_derived)*Y(Fe54)*Y(H1)*state.rho) + + (screened_rates(k_Mn52_n_to_p_Cr52_reaclib)*Y(Mn52)*Y(N)*state.rho + -screened_rates(k_Cr52_p_to_n_Mn52_derived)*Y(Cr52)*Y(H1)*state.rho) + + (screened_rates(k_Mn52_He4_to_p_Fe55_reaclib)*Y(He4)*Y(Mn52)*state.rho + -screened_rates(k_Fe55_p_to_He4_Mn52_derived)*Y(Fe55)*Y(H1)*state.rho) + + (screened_rates(k_Mn53_n_to_p_Cr53_reaclib)*Y(Mn53)*Y(N)*state.rho + -screened_rates(k_Cr53_p_to_n_Mn53_derived)*Y(Cr53)*Y(H1)*state.rho) + + (-screened_rates(k_Mn53_p_to_He4_Cr50_reaclib)*Y(Mn53)*Y(H1)*state.rho + screened_rates(k_Cr50_He4_to_p_Mn53_derived)*Y(Cr50)*Y(He4)*state.rho) + + (screened_rates(k_Mn53_He4_to_p_Fe56_reaclib)*Y(He4)*Y(Mn53)*state.rho + -screened_rates(k_Fe56_p_to_He4_Mn53_derived)*Y(Fe56)*Y(H1)*state.rho) + + (screened_rates(k_Mn54_n_to_p_Cr54_reaclib)*Y(Mn54)*Y(N)*state.rho + -screened_rates(k_Cr54_p_to_n_Mn54_derived)*Y(Cr54)*Y(H1)*state.rho) + + (-screened_rates(k_Mn54_p_to_He4_Cr51_reaclib)*Y(Mn54)*Y(H1)*state.rho + screened_rates(k_Cr51_He4_to_p_Mn54_derived)*Y(Cr51)*Y(He4)*state.rho) + + (-screened_rates(k_Mn55_p_to_He4_Cr52_reaclib)*Y(Mn55)*Y(H1)*state.rho + screened_rates(k_Cr52_He4_to_p_Mn55_derived)*Y(Cr52)*Y(He4)*state.rho) + + (screened_rates(k_Fe52_n_to_p_Mn52_reaclib)*Y(Fe52)*Y(N)*state.rho + -screened_rates(k_Mn52_p_to_n_Fe52_derived)*Y(Mn52)*Y(H1)*state.rho) + + (screened_rates(k_Fe52_He4_to_p_Co55_reaclib)*Y(Fe52)*Y(He4)*state.rho + -screened_rates(k_Co55_p_to_He4_Fe52_derived)*Y(Co55)*Y(H1)*state.rho) + + (screened_rates(k_Fe53_n_to_p_Mn53_reaclib)*Y(Fe53)*Y(N)*state.rho + -screened_rates(k_Mn53_p_to_n_Fe53_derived)*Y(Mn53)*Y(H1)*state.rho) + + (screened_rates(k_Fe53_He4_to_p_Co56_reaclib)*Y(Fe53)*Y(He4)*state.rho + -screened_rates(k_Co56_p_to_He4_Fe53_derived)*Y(Co56)*Y(H1)*state.rho) + + (screened_rates(k_Fe54_n_to_p_Mn54_reaclib)*Y(Fe54)*Y(N)*state.rho + -screened_rates(k_Mn54_p_to_n_Fe54_derived)*Y(Mn54)*Y(H1)*state.rho) + + (screened_rates(k_Fe55_n_to_p_Mn55_reaclib)*Y(Fe55)*Y(N)*state.rho + -screened_rates(k_Mn55_p_to_n_Fe55_derived)*Y(Mn55)*Y(H1)*state.rho) + + (-screened_rates(k_Fe57_p_to_He4_Mn54_reaclib)*Y(Fe57)*Y(H1)*state.rho + screened_rates(k_Mn54_He4_to_p_Fe57_derived)*Y(He4)*Y(Mn54)*state.rho) + + (-screened_rates(k_Fe58_p_to_He4_Mn55_reaclib)*Y(Fe58)*Y(H1)*state.rho + screened_rates(k_Mn55_He4_to_p_Fe58_derived)*Y(He4)*Y(Mn55)*state.rho) + + (screened_rates(k_Co53_n_to_p_Fe53_reaclib)*Y(Co53)*Y(N)*state.rho + -screened_rates(k_Fe53_p_to_n_Co53_derived)*Y(Fe53)*Y(H1)*state.rho) + + (screened_rates(k_Co53_He4_to_p_Ni56_reaclib)*Y(Co53)*Y(He4)*state.rho + -screened_rates(k_Ni56_p_to_He4_Co53_derived)*Y(Ni56)*Y(H1)*state.rho) + + (screened_rates(k_Co54_n_to_p_Fe54_reaclib)*Y(Co54)*Y(N)*state.rho + -screened_rates(k_Fe54_p_to_n_Co54_derived)*Y(Fe54)*Y(H1)*state.rho) + + (screened_rates(k_Co54_He4_to_p_Ni57_reaclib)*Y(Co54)*Y(He4)*state.rho + -screened_rates(k_Ni57_p_to_He4_Co54_derived)*Y(Ni57)*Y(H1)*state.rho) + + (screened_rates(k_Co55_n_to_p_Fe55_reaclib)*Y(Co55)*Y(N)*state.rho + -screened_rates(k_Fe55_p_to_n_Co55_derived)*Y(Fe55)*Y(H1)*state.rho) + + (screened_rates(k_Co55_He4_to_p_Ni58_reaclib)*Y(Co55)*Y(He4)*state.rho + -screened_rates(k_Ni58_p_to_He4_Co55_derived)*Y(Ni58)*Y(H1)*state.rho) + + (screened_rates(k_Co56_n_to_p_Fe56_reaclib)*Y(Co56)*Y(N)*state.rho + -screened_rates(k_Fe56_p_to_n_Co56_derived)*Y(Fe56)*Y(H1)*state.rho) + + (screened_rates(k_Co56_He4_to_p_Ni59_reaclib)*Y(Co56)*Y(He4)*state.rho + -screened_rates(k_Ni59_p_to_He4_Co56_derived)*Y(Ni59)*Y(H1)*state.rho) + + (screened_rates(k_Co57_n_to_p_Fe57_reaclib)*Y(Co57)*Y(N)*state.rho + -screened_rates(k_Fe57_p_to_n_Co57_derived)*Y(Fe57)*Y(H1)*state.rho) + + (-screened_rates(k_Co57_p_to_He4_Fe54_reaclib)*Y(Co57)*Y(H1)*state.rho + screened_rates(k_Fe54_He4_to_p_Co57_derived)*Y(Fe54)*Y(He4)*state.rho) + + (screened_rates(k_Co57_He4_to_p_Ni60_reaclib)*Y(Co57)*Y(He4)*state.rho + -screened_rates(k_Ni60_p_to_He4_Co57_derived)*Y(Ni60)*Y(H1)*state.rho) + + (screened_rates(k_Co58_n_to_p_Fe58_reaclib)*Y(Co58)*Y(N)*state.rho + -screened_rates(k_Fe58_p_to_n_Co58_derived)*Y(Fe58)*Y(H1)*state.rho) + + (-screened_rates(k_Co58_p_to_He4_Fe55_reaclib)*Y(Co58)*Y(H1)*state.rho + screened_rates(k_Fe55_He4_to_p_Co58_derived)*Y(Fe55)*Y(He4)*state.rho) + + (-screened_rates(k_Co59_p_to_He4_Fe56_reaclib)*Y(Co59)*Y(H1)*state.rho + screened_rates(k_Fe56_He4_to_p_Co59_derived)*Y(Fe56)*Y(He4)*state.rho) + + (screened_rates(k_Ni56_n_to_p_Co56_reaclib)*Y(Ni56)*Y(N)*state.rho + -screened_rates(k_Co56_p_to_n_Ni56_derived)*Y(Co56)*Y(H1)*state.rho) + + (screened_rates(k_Ni57_n_to_p_Co57_reaclib)*Y(Ni57)*Y(N)*state.rho + -screened_rates(k_Co57_p_to_n_Ni57_derived)*Y(Co57)*Y(H1)*state.rho) + + (screened_rates(k_Ni58_n_to_p_Co58_reaclib)*Y(Ni58)*Y(N)*state.rho + -screened_rates(k_Co58_p_to_n_Ni58_derived)*Y(Co58)*Y(H1)*state.rho) + + (screened_rates(k_Ni59_n_to_p_Co59_reaclib)*Y(Ni59)*Y(N)*state.rho + -screened_rates(k_Co59_p_to_n_Ni59_derived)*Y(Co59)*Y(H1)*state.rho) + + (-screened_rates(k_Ni61_p_to_He4_Co58_reaclib)*Y(Ni61)*Y(H1)*state.rho + screened_rates(k_Co58_He4_to_p_Ni61_derived)*Y(Co58)*Y(He4)*state.rho) + + (-screened_rates(k_Ni62_p_to_He4_Co59_reaclib)*Y(Ni62)*Y(H1)*state.rho + screened_rates(k_Co59_He4_to_p_Ni62_derived)*Y(Co59)*Y(He4)*state.rho) + + (screened_rates(k_Cu57_n_to_p_Ni57_reaclib)*Y(Cu57)*Y(N)*state.rho + -screened_rates(k_Ni57_p_to_n_Cu57_derived)*Y(Ni57)*Y(H1)*state.rho) + + (screened_rates(k_Cu57_He4_to_p_Zn60_reaclib)*Y(Cu57)*Y(He4)*state.rho + -screened_rates(k_Zn60_p_to_He4_Cu57_derived)*Y(Zn60)*Y(H1)*state.rho) + + (screened_rates(k_Cu58_n_to_p_Ni58_reaclib)*Y(Cu58)*Y(N)*state.rho + -screened_rates(k_Ni58_p_to_n_Cu58_derived)*Y(Ni58)*Y(H1)*state.rho) + + (screened_rates(k_Cu59_n_to_p_Ni59_reaclib)*Y(Cu59)*Y(N)*state.rho + -screened_rates(k_Ni59_p_to_n_Cu59_derived)*Y(Ni59)*Y(H1)*state.rho) + + (-screened_rates(k_Cu59_p_to_He4_Ni56_reaclib)*Y(Cu59)*Y(H1)*state.rho + screened_rates(k_Ni56_He4_to_p_Cu59_derived)*Y(He4)*Y(Ni56)*state.rho) + + (screened_rates(k_Cu60_n_to_p_Ni60_reaclib)*Y(Cu60)*Y(N)*state.rho + -screened_rates(k_Ni60_p_to_n_Cu60_derived)*Y(Ni60)*Y(H1)*state.rho) + + (-screened_rates(k_Cu60_p_to_He4_Ni57_reaclib)*Y(Cu60)*Y(H1)*state.rho + screened_rates(k_Ni57_He4_to_p_Cu60_derived)*Y(He4)*Y(Ni57)*state.rho) + + (screened_rates(k_Cu61_n_to_p_Ni61_reaclib)*Y(Cu61)*Y(N)*state.rho + -screened_rates(k_Ni61_p_to_n_Cu61_derived)*Y(Ni61)*Y(H1)*state.rho) + + (-screened_rates(k_Cu61_p_to_He4_Ni58_reaclib)*Y(Cu61)*Y(H1)*state.rho + screened_rates(k_Ni58_He4_to_p_Cu61_derived)*Y(He4)*Y(Ni58)*state.rho) + + (screened_rates(k_Cu62_n_to_p_Ni62_reaclib)*Y(Cu62)*Y(N)*state.rho + -screened_rates(k_Ni62_p_to_n_Cu62_derived)*Y(Ni62)*Y(H1)*state.rho) + + (-screened_rates(k_Cu62_p_to_He4_Ni59_reaclib)*Y(Cu62)*Y(H1)*state.rho + screened_rates(k_Ni59_He4_to_p_Cu62_derived)*Y(He4)*Y(Ni59)*state.rho) + + (screened_rates(k_Cu63_n_to_p_Ni63_reaclib)*Y(Cu63)*Y(N)*state.rho + -screened_rates(k_Ni63_p_to_n_Cu63_derived)*Y(Ni63)*Y(H1)*state.rho) + + (-screened_rates(k_Cu63_p_to_He4_Ni60_reaclib)*Y(Cu63)*Y(H1)*state.rho + screened_rates(k_Ni60_He4_to_p_Cu63_derived)*Y(He4)*Y(Ni60)*state.rho) + + (screened_rates(k_Cu64_n_to_p_Ni64_reaclib)*Y(Cu64)*Y(N)*state.rho + -screened_rates(k_Ni64_p_to_n_Cu64_derived)*Y(Ni64)*Y(H1)*state.rho) + + (-screened_rates(k_Cu64_p_to_He4_Ni61_reaclib)*Y(Cu64)*Y(H1)*state.rho + screened_rates(k_Ni61_He4_to_p_Cu64_derived)*Y(He4)*Y(Ni61)*state.rho) + + (-screened_rates(k_Cu65_p_to_He4_Ni62_reaclib)*Y(Cu65)*Y(H1)*state.rho + screened_rates(k_Ni62_He4_to_p_Cu65_derived)*Y(He4)*Y(Ni62)*state.rho) + + (screened_rates(k_Zn59_n_to_p_Cu59_reaclib)*Y(Zn59)*Y(N)*state.rho + -screened_rates(k_Cu59_p_to_n_Zn59_derived)*Y(Cu59)*Y(H1)*state.rho) + + (screened_rates(k_Zn60_n_to_p_Cu60_reaclib)*Y(Zn60)*Y(N)*state.rho + -screened_rates(k_Cu60_p_to_n_Zn60_derived)*Y(Cu60)*Y(H1)*state.rho) + + (screened_rates(k_Zn61_n_to_p_Cu61_reaclib)*Y(Zn61)*Y(N)*state.rho + -screened_rates(k_Cu61_p_to_n_Zn61_derived)*Y(Cu61)*Y(H1)*state.rho) + + (-screened_rates(k_Zn61_p_to_He4_Cu58_reaclib)*Y(Zn61)*Y(H1)*state.rho + screened_rates(k_Cu58_He4_to_p_Zn61_derived)*Y(Cu58)*Y(He4)*state.rho) + + (screened_rates(k_Zn62_n_to_p_Cu62_reaclib)*Y(Zn62)*Y(N)*state.rho + -screened_rates(k_Cu62_p_to_n_Zn62_derived)*Y(Cu62)*Y(H1)*state.rho) + + (-screened_rates(k_Zn62_p_to_He4_Cu59_reaclib)*Y(Zn62)*Y(H1)*state.rho + screened_rates(k_Cu59_He4_to_p_Zn62_derived)*Y(Cu59)*Y(He4)*state.rho) + + (screened_rates(k_Zn63_n_to_p_Cu63_reaclib)*Y(Zn63)*Y(N)*state.rho + -screened_rates(k_Cu63_p_to_n_Zn63_derived)*Y(Cu63)*Y(H1)*state.rho) + + (-screened_rates(k_Zn63_p_to_He4_Cu60_reaclib)*Y(Zn63)*Y(H1)*state.rho + screened_rates(k_Cu60_He4_to_p_Zn63_derived)*Y(Cu60)*Y(He4)*state.rho) + + (screened_rates(k_Zn64_n_to_p_Cu64_reaclib)*Y(Zn64)*Y(N)*state.rho + -screened_rates(k_Cu64_p_to_n_Zn64_derived)*Y(Cu64)*Y(H1)*state.rho) + + (-screened_rates(k_Zn64_p_to_He4_Cu61_reaclib)*Y(Zn64)*Y(H1)*state.rho + screened_rates(k_Cu61_He4_to_p_Zn64_derived)*Y(Cu61)*Y(He4)*state.rho) + + (screened_rates(k_Zn65_n_to_p_Cu65_reaclib)*Y(Zn65)*Y(N)*state.rho + -screened_rates(k_Cu65_p_to_n_Zn65_derived)*Y(Cu65)*Y(H1)*state.rho) + + (-screened_rates(k_Zn65_p_to_He4_Cu62_reaclib)*Y(Zn65)*Y(H1)*state.rho + screened_rates(k_Cu62_He4_to_p_Zn65_derived)*Y(Cu62)*Y(He4)*state.rho) + + (-screened_rates(k_Zn66_p_to_He4_Cu63_reaclib)*Y(Zn66)*Y(H1)*state.rho + screened_rates(k_Cu63_He4_to_p_Zn66_derived)*Y(Cu63)*Y(He4)*state.rho) + + (screened_rates(k_Ga62_n_to_p_Zn62_reaclib)*Y(Ga62)*Y(N)*state.rho + -screened_rates(k_Zn62_p_to_n_Ga62_derived)*Y(Zn62)*Y(H1)*state.rho) + + (-screened_rates(k_Ga62_p_to_He4_Zn59_reaclib)*Y(Ga62)*Y(H1)*state.rho + screened_rates(k_Zn59_He4_to_p_Ga62_derived)*Y(He4)*Y(Zn59)*state.rho) + + (screened_rates(k_Ga63_n_to_p_Zn63_reaclib)*Y(Ga63)*Y(N)*state.rho + -screened_rates(k_Zn63_p_to_n_Ga63_derived)*Y(Zn63)*Y(H1)*state.rho) + + (-screened_rates(k_Ga63_p_to_He4_Zn60_reaclib)*Y(Ga63)*Y(H1)*state.rho + screened_rates(k_Zn60_He4_to_p_Ga63_derived)*Y(He4)*Y(Zn60)*state.rho) + + (screened_rates(k_Ga64_n_to_p_Zn64_reaclib)*Y(Ga64)*Y(N)*state.rho + -screened_rates(k_Zn64_p_to_n_Ga64_derived)*Y(Zn64)*Y(H1)*state.rho) + + (-screened_rates(k_Ga64_p_to_He4_Zn61_reaclib)*Y(Ga64)*Y(H1)*state.rho + screened_rates(k_Zn61_He4_to_p_Ga64_derived)*Y(He4)*Y(Zn61)*state.rho) + + (screened_rates(k_Ge63_n_to_p_Ga63_reaclib)*Y(Ge63)*Y(N)*state.rho + -screened_rates(k_Ga63_p_to_n_Ge63_derived)*Y(Ga63)*Y(H1)*state.rho) + + (screened_rates(k_Ge64_n_to_p_Ga64_reaclib)*Y(Ge64)*Y(N)*state.rho + -screened_rates(k_Ga64_p_to_n_Ge64_derived)*Y(Ga64)*Y(H1)*state.rho) + + (screened_rates(k_He3_He3_to_p_p_He4_reaclib)*amrex::Math::powi<2>(Y(He3))*state.rho + -screened_rates(k_He4_p_p_to_He3_He3_derived)*Y(He4)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho)) + + (screened_rates(k_Be7_d_to_p_He4_He4_reaclib)*Y(Be7)*Y(H2)*state.rho + -0.5*screened_rates(k_He4_He4_p_to_d_Be7_derived)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<2>(state.rho)) + + (-screened_rates(k_Be9_p_to_d_He4_He4_reaclib)*Y(Be9)*Y(H1)*state.rho + 0.5*screened_rates(k_d_He4_He4_to_p_Be9_derived)*amrex::Math::powi<2>(Y(He4))*Y(H2)*amrex::Math::powi<2>(state.rho)) + + (screened_rates(k_B8_n_to_p_He4_He4_reaclib)*Y(B8)*Y(N)*state.rho + -0.5*screened_rates(k_He4_He4_p_to_n_B8_derived)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<2>(state.rho)) + + (-screened_rates(k_B11_p_to_3He4_reaclib)*Y(B11)*Y(H1)*state.rho + 0.16666666666666667*screened_rates(k_He4_He4_He4_to_p_B11_derived)*amrex::Math::powi<3>(Y(He4))*amrex::Math::powi<2>(state.rho)) + + (screened_rates(k_Li7_He3_to_n_p_He4_He4_reaclib)*Y(He3)*Y(Li7)*state.rho + -0.5*screened_rates(k_He4_He4_p_n_to_He3_Li7_derived)*amrex::Math::powi<2>(Y(He4))*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho)) + + (2.0*screened_rates(k_Be7_He3_to_p_p_He4_He4_reaclib)*Y(Be7)*Y(He3)*state.rho + -0.5*screened_rates(k_He4_He4_p_p_to_He3_Be7_derived)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<3>(state.rho)) + + (-screened_rates(k_He4_p_n_to_Li6_reaclib)*Y(He4)*Y(N)*Y(H1)*amrex::Math::powi<2>(state.rho) + screened_rates(k_Li6_to_n_p_He4_derived)*Y(Li6)) + + (-0.5*screened_rates(k_p_p_n_to_p_d_reaclib)*Y(N)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho) + screened_rates(k_d_p_to_n_p_p_derived)*Y(H2)*Y(H1)*state.rho) + + (screened_rates(k_n_to_p_beta_neg_weaktab)*Y(N) + -screened_rates(k_p_to_n_electron_capture_weaktab)*Y(H1)) + + (screened_rates(k_N13_n_to_p_C13_derived)*Y(N13)*Y(N)*state.rho + -screened_rates(k_C13_p_to_n_N13_reaclib)*Y(C13)*Y(H1)*state.rho) + + (screened_rates(k_O14_n_to_p_N14_derived)*Y(O14)*Y(N)*state.rho + -screened_rates(k_N14_p_to_n_O14_reaclib)*Y(N14)*Y(H1)*state.rho) + + (screened_rates(k_O15_n_to_p_N15_derived)*Y(O15)*Y(N)*state.rho + -screened_rates(k_N15_p_to_n_O15_reaclib)*Y(N15)*Y(H1)*state.rho) + + (screened_rates(k_F17_He4_to_p_Ne20_derived)*Y(F17)*Y(He4)*state.rho + -screened_rates(k_Ne20_p_to_He4_F17_reaclib)*Y(Ne20)*Y(H1)*state.rho) + + (screened_rates(k_Ne19_n_to_p_F19_derived)*Y(Ne19)*Y(N)*state.rho + -screened_rates(k_F19_p_to_n_Ne19_reaclib)*Y(F19)*Y(H1)*state.rho) + + (screened_rates(k_Na21_He4_to_p_Mg24_derived)*Y(He4)*Y(Na21)*state.rho + -screened_rates(k_Mg24_p_to_He4_Na21_reaclib)*Y(Mg24)*Y(H1)*state.rho) + + (screened_rates(k_Mg23_n_to_p_Na23_derived)*Y(Mg23)*Y(N)*state.rho + -screened_rates(k_Na23_p_to_n_Mg23_reaclib)*Y(Na23)*Y(H1)*state.rho) + + (-screened_rates(k_Cl37_p_to_He4_S34_derived)*Y(Cl37)*Y(H1)*state.rho + screened_rates(k_S34_He4_to_p_Cl37_reaclib)*Y(He4)*Y(S34)*state.rho) + + (screened_rates(k_Ca41_n_to_p_K41_derived)*Y(Ca41)*Y(N)*state.rho + -screened_rates(k_K41_p_to_n_Ca41_reaclib)*Y(K41)*Y(H1)*state.rho) + + (-screened_rates(k_V47_p_to_He4_Ti44_derived)*Y(V47)*Y(H1)*state.rho + screened_rates(k_Ti44_He4_to_p_V47_reaclib)*Y(He4)*Y(Ti44)*state.rho); ydot_nuc(H2) = - (screened_rates(k_n_p_to_d_reaclib)*Y(N)*Y(H1)*state.rho + -screened_rates(k_d_to_n_p_reaclib)*Y(H2)) + - 0.5*screened_rates(k_p_p_to_d_reaclib_beta_pos)*amrex::Math::powi<2>(Y(H1))*state.rho + - 0.5*screened_rates(k_p_p_to_d_reaclib_electron_capture)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho)*state.y_e + - (-screened_rates(k_p_d_to_He3_reaclib)*Y(H2)*Y(H1)*state.rho + screened_rates(k_He3_to_p_d_reaclib)*Y(He3)) + - (-screened_rates(k_d_d_to_He4_reaclib)*amrex::Math::powi<2>(Y(H2))*state.rho + 2.0*screened_rates(k_He4_to_d_d_reaclib)*Y(He4)) + - (-screened_rates(k_He4_d_to_Li6_reaclib)*Y(He4)*Y(H2)*state.rho + screened_rates(k_Li6_to_He4_d_reaclib)*Y(Li6)) + - (-screened_rates(k_d_d_to_n_He3_reaclib)*amrex::Math::powi<2>(Y(H2))*state.rho + 2.0*screened_rates(k_n_He3_to_d_d_reaclib)*Y(He3)*Y(N)*state.rho) + - (-screened_rates(k_d_He3_to_p_He4_reaclib)*Y(He3)*Y(H2)*state.rho + screened_rates(k_p_He4_to_d_He3_reaclib)*Y(He4)*Y(H1)*state.rho) + - (-screened_rates(k_d_Li6_to_n_Be7_reaclib)*Y(Li6)*Y(H2)*state.rho + screened_rates(k_n_Be7_to_d_Li6_reaclib)*Y(Be7)*Y(N)*state.rho) + - (-screened_rates(k_d_Li6_to_p_Li7_reaclib)*Y(Li6)*Y(H2)*state.rho + screened_rates(k_p_Li7_to_d_Li6_reaclib)*Y(Li7)*Y(H1)*state.rho) + - (-screened_rates(k_d_C13_to_n_N14_reaclib)*Y(C13)*Y(H2)*state.rho + screened_rates(k_n_N14_to_d_C13_reaclib)*Y(N14)*Y(N)*state.rho) + - (-screened_rates(k_d_C14_to_n_N15_reaclib)*Y(C14)*Y(H2)*state.rho + screened_rates(k_n_N15_to_d_C14_reaclib)*Y(N15)*Y(N)*state.rho) + - (-screened_rates(k_d_Li7_to_n_He4_He4_reaclib)*Y(Li7)*Y(H2)*state.rho + 0.5*screened_rates(k_n_He4_He4_to_d_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<2>(state.rho)) + - (-screened_rates(k_d_Be7_to_p_He4_He4_reaclib)*Y(Be7)*Y(H2)*state.rho + 0.5*screened_rates(k_p_He4_He4_to_d_Be7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<2>(state.rho)) + - (screened_rates(k_p_Be9_to_d_He4_He4_reaclib)*Y(Be9)*Y(H1)*state.rho + -0.5*screened_rates(k_d_He4_He4_to_p_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(H2)*amrex::Math::powi<2>(state.rho)) + - (0.5*screened_rates(k_n_p_p_to_p_d_reaclib)*Y(N)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho) + -screened_rates(k_p_d_to_n_p_p_reaclib)*Y(H2)*Y(H1)*state.rho); + (screened_rates(k_p_n_to_d_reaclib)*Y(N)*Y(H1)*state.rho + -screened_rates(k_d_to_n_p_derived)*Y(H2)) + + 0.5*screened_rates(k_p_p_to_d_beta_pos_reaclib)*amrex::Math::powi<2>(Y(H1))*state.rho + + 0.5*screened_rates(k_p_p_to_d_electron_capture_reaclib)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho)*state.y_e + + (-screened_rates(k_d_p_to_He3_reaclib)*Y(H2)*Y(H1)*state.rho + screened_rates(k_He3_to_p_d_derived)*Y(He3)) + + (-screened_rates(k_d_d_to_He4_reaclib)*amrex::Math::powi<2>(Y(H2))*state.rho + 2.0*screened_rates(k_He4_to_d_d_derived)*Y(He4)) + + (-screened_rates(k_d_He4_to_Li6_reaclib)*Y(He4)*Y(H2)*state.rho + screened_rates(k_Li6_to_He4_d_derived)*Y(Li6)) + + (-screened_rates(k_d_d_to_n_He3_reaclib)*amrex::Math::powi<2>(Y(H2))*state.rho + 2.0*screened_rates(k_He3_n_to_d_d_derived)*Y(He3)*Y(N)*state.rho) + + (-screened_rates(k_He3_d_to_p_He4_reaclib)*Y(He3)*Y(H2)*state.rho + screened_rates(k_He4_p_to_d_He3_derived)*Y(He4)*Y(H1)*state.rho) + + (-screened_rates(k_Li6_d_to_n_Be7_reaclib)*Y(Li6)*Y(H2)*state.rho + screened_rates(k_Be7_n_to_d_Li6_derived)*Y(Be7)*Y(N)*state.rho) + + (-screened_rates(k_Li6_d_to_p_Li7_reaclib)*Y(Li6)*Y(H2)*state.rho + screened_rates(k_Li7_p_to_d_Li6_derived)*Y(Li7)*Y(H1)*state.rho) + + (-screened_rates(k_C13_d_to_n_N14_reaclib)*Y(C13)*Y(H2)*state.rho + screened_rates(k_N14_n_to_d_C13_derived)*Y(N14)*Y(N)*state.rho) + + (-screened_rates(k_C14_d_to_n_N15_reaclib)*Y(C14)*Y(H2)*state.rho + screened_rates(k_N15_n_to_d_C14_derived)*Y(N15)*Y(N)*state.rho) + + (-screened_rates(k_Li7_d_to_n_He4_He4_reaclib)*Y(Li7)*Y(H2)*state.rho + 0.5*screened_rates(k_He4_He4_n_to_d_Li7_derived)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<2>(state.rho)) + + (-screened_rates(k_Be7_d_to_p_He4_He4_reaclib)*Y(Be7)*Y(H2)*state.rho + 0.5*screened_rates(k_He4_He4_p_to_d_Be7_derived)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<2>(state.rho)) + + (screened_rates(k_Be9_p_to_d_He4_He4_reaclib)*Y(Be9)*Y(H1)*state.rho + -0.5*screened_rates(k_d_He4_He4_to_p_Be9_derived)*amrex::Math::powi<2>(Y(He4))*Y(H2)*amrex::Math::powi<2>(state.rho)) + + (0.5*screened_rates(k_p_p_n_to_p_d_reaclib)*Y(N)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho) + -screened_rates(k_d_p_to_n_p_p_derived)*Y(H2)*Y(H1)*state.rho); ydot_nuc(He3) = - (screened_rates(k_p_d_to_He3_reaclib)*Y(H2)*Y(H1)*state.rho + -screened_rates(k_He3_to_p_d_reaclib)*Y(He3)) + - (-screened_rates(k_n_He3_to_He4_reaclib)*Y(He3)*Y(N)*state.rho + screened_rates(k_He4_to_n_He3_reaclib)*Y(He4)) + - -screened_rates(k_p_He3_to_He4_reaclib)*Y(He3)*Y(H1)*state.rho + - (-screened_rates(k_He4_He3_to_Be7_reaclib)*Y(He3)*Y(He4)*state.rho + screened_rates(k_Be7_to_He4_He3_reaclib)*Y(Be7)) + - (0.5*screened_rates(k_d_d_to_n_He3_reaclib)*amrex::Math::powi<2>(Y(H2))*state.rho + -screened_rates(k_n_He3_to_d_d_reaclib)*Y(He3)*Y(N)*state.rho) + - (-screened_rates(k_d_He3_to_p_He4_reaclib)*Y(He3)*Y(H2)*state.rho + screened_rates(k_p_He4_to_d_He3_reaclib)*Y(He4)*Y(H1)*state.rho) + - (screened_rates(k_p_Li6_to_He4_He3_reaclib)*Y(Li6)*Y(H1)*state.rho + -screened_rates(k_He4_He3_to_p_Li6_reaclib)*Y(He3)*Y(He4)*state.rho) + - (-screened_rates(k_He3_He3_to_p_p_He4_reaclib)*amrex::Math::powi<2>(Y(He3))*state.rho + screened_rates(k_p_p_He4_to_He3_He3_reaclib)*Y(He4)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho)) + - (-screened_rates(k_He3_Li7_to_n_p_He4_He4_reaclib)*Y(He3)*Y(Li7)*state.rho + 0.5*screened_rates(k_n_p_He4_He4_to_He3_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho)) + - (-screened_rates(k_He3_Be7_to_p_p_He4_He4_reaclib)*Y(Be7)*Y(He3)*state.rho + 0.25*screened_rates(k_p_p_He4_He4_to_He3_Be7_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<3>(state.rho)); + (screened_rates(k_d_p_to_He3_reaclib)*Y(H2)*Y(H1)*state.rho + -screened_rates(k_He3_to_p_d_derived)*Y(He3)) + + (-screened_rates(k_He3_n_to_He4_reaclib)*Y(He3)*Y(N)*state.rho + screened_rates(k_He4_to_n_He3_derived)*Y(He4)) + + -screened_rates(k_He3_p_to_He4_beta_pos_reaclib)*Y(He3)*Y(H1)*state.rho + + (-screened_rates(k_He3_He4_to_Be7_reaclib)*Y(He3)*Y(He4)*state.rho + screened_rates(k_Be7_to_He4_He3_derived)*Y(Be7)) + + (0.5*screened_rates(k_d_d_to_n_He3_reaclib)*amrex::Math::powi<2>(Y(H2))*state.rho + -screened_rates(k_He3_n_to_d_d_derived)*Y(He3)*Y(N)*state.rho) + + (-screened_rates(k_He3_d_to_p_He4_reaclib)*Y(He3)*Y(H2)*state.rho + screened_rates(k_He4_p_to_d_He3_derived)*Y(He4)*Y(H1)*state.rho) + + (screened_rates(k_Li6_p_to_He4_He3_reaclib)*Y(Li6)*Y(H1)*state.rho + -screened_rates(k_He3_He4_to_p_Li6_derived)*Y(He3)*Y(He4)*state.rho) + + (-screened_rates(k_He3_He3_to_p_p_He4_reaclib)*amrex::Math::powi<2>(Y(He3))*state.rho + screened_rates(k_He4_p_p_to_He3_He3_derived)*Y(He4)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho)) + + (-screened_rates(k_Li7_He3_to_n_p_He4_He4_reaclib)*Y(He3)*Y(Li7)*state.rho + 0.5*screened_rates(k_He4_He4_p_n_to_He3_Li7_derived)*amrex::Math::powi<2>(Y(He4))*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho)) + + (-screened_rates(k_Be7_He3_to_p_p_He4_He4_reaclib)*Y(Be7)*Y(He3)*state.rho + 0.25*screened_rates(k_He4_He4_p_p_to_He3_Be7_derived)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<3>(state.rho)); ydot_nuc(He4) = - 2.0*screened_rates(k_B8_to_He4_He4_reaclib)*Y(B8) + - (0.5*screened_rates(k_d_d_to_He4_reaclib)*amrex::Math::powi<2>(Y(H2))*state.rho + -screened_rates(k_He4_to_d_d_reaclib)*Y(He4)) + - (-screened_rates(k_He4_d_to_Li6_reaclib)*Y(He4)*Y(H2)*state.rho + screened_rates(k_Li6_to_He4_d_reaclib)*Y(Li6)) + - (screened_rates(k_n_He3_to_He4_reaclib)*Y(He3)*Y(N)*state.rho + -screened_rates(k_He4_to_n_He3_reaclib)*Y(He4)) + - screened_rates(k_p_He3_to_He4_reaclib)*Y(He3)*Y(H1)*state.rho + - (-screened_rates(k_He4_He3_to_Be7_reaclib)*Y(He3)*Y(He4)*state.rho + screened_rates(k_Be7_to_He4_He3_reaclib)*Y(Be7)) + - (-screened_rates(k_He4_Li6_to_B10_reaclib)*Y(He4)*Y(Li6)*state.rho + screened_rates(k_B10_to_He4_Li6_reaclib)*Y(B10)) + - (-screened_rates(k_He4_Li7_to_B11_reaclib)*Y(He4)*Y(Li7)*state.rho + screened_rates(k_B11_to_He4_Li7_reaclib)*Y(B11)) + - (-screened_rates(k_He4_C12_to_O16_reaclib)*Y(C12)*Y(He4)*state.rho + screened_rates(k_O16_to_He4_C12_reaclib)*Y(O16)) + - (-screened_rates(k_He4_C14_to_O18_reaclib)*Y(C14)*Y(He4)*state.rho + screened_rates(k_O18_to_He4_C14_reaclib)*Y(O18)) + - (-screened_rates(k_He4_N14_to_F18_reaclib)*Y(He4)*Y(N14)*state.rho + screened_rates(k_F18_to_He4_N14_reaclib)*Y(F18)) + - (-screened_rates(k_He4_N15_to_F19_reaclib)*Y(He4)*Y(N15)*state.rho + screened_rates(k_F19_to_He4_N15_reaclib)*Y(F19)) + - (-screened_rates(k_He4_O14_to_Ne18_reaclib)*Y(He4)*Y(O14)*state.rho + screened_rates(k_Ne18_to_He4_O14_reaclib)*Y(Ne18)) + - (-screened_rates(k_He4_O15_to_Ne19_reaclib)*Y(He4)*Y(O15)*state.rho + screened_rates(k_Ne19_to_He4_O15_reaclib)*Y(Ne19)) + - (-screened_rates(k_He4_O16_to_Ne20_reaclib)*Y(He4)*Y(O16)*state.rho + screened_rates(k_Ne20_to_He4_O16_reaclib)*Y(Ne20)) + - (-screened_rates(k_He4_O17_to_Ne21_reaclib)*Y(He4)*Y(O17)*state.rho + screened_rates(k_Ne21_to_He4_O17_reaclib)*Y(Ne21)) + - (-screened_rates(k_He4_O18_to_Ne22_reaclib)*Y(He4)*Y(O18)*state.rho + screened_rates(k_Ne22_to_He4_O18_reaclib)*Y(Ne22)) + - (-screened_rates(k_He4_F17_to_Na21_reaclib)*Y(F17)*Y(He4)*state.rho + screened_rates(k_Na21_to_He4_F17_reaclib)*Y(Na21)) + - (-screened_rates(k_He4_F18_to_Na22_reaclib)*Y(F18)*Y(He4)*state.rho + screened_rates(k_Na22_to_He4_F18_reaclib)*Y(Na22)) + - (-screened_rates(k_He4_F19_to_Na23_reaclib)*Y(F19)*Y(He4)*state.rho + screened_rates(k_Na23_to_He4_F19_reaclib)*Y(Na23)) + - (-screened_rates(k_He4_Ne19_to_Mg23_reaclib)*Y(He4)*Y(Ne19)*state.rho + screened_rates(k_Mg23_to_He4_Ne19_reaclib)*Y(Mg23)) + - (-screened_rates(k_He4_Ne20_to_Mg24_reaclib)*Y(He4)*Y(Ne20)*state.rho + screened_rates(k_Mg24_to_He4_Ne20_reaclib)*Y(Mg24)) + - (-screened_rates(k_He4_Ne21_to_Mg25_reaclib)*Y(He4)*Y(Ne21)*state.rho + screened_rates(k_Mg25_to_He4_Ne21_reaclib)*Y(Mg25)) + - (-screened_rates(k_He4_Ne22_to_Mg26_reaclib)*Y(He4)*Y(Ne22)*state.rho + screened_rates(k_Mg26_to_He4_Ne22_reaclib)*Y(Mg26)) + - (-screened_rates(k_He4_Na21_to_Al25_reaclib)*Y(He4)*Y(Na21)*state.rho + screened_rates(k_Al25_to_He4_Na21_reaclib)*Y(Al25)) + - (-screened_rates(k_He4_Na22_to_Al26_reaclib)*Y(He4)*Y(Na22)*state.rho + screened_rates(k_Al26_to_He4_Na22_reaclib)*Y(Al26)) + - (-screened_rates(k_He4_Na23_to_Al27_reaclib)*Y(He4)*Y(Na23)*state.rho + screened_rates(k_Al27_to_He4_Na23_reaclib)*Y(Al27)) + - (-screened_rates(k_He4_Mg24_to_Si28_reaclib)*Y(He4)*Y(Mg24)*state.rho + screened_rates(k_Si28_to_He4_Mg24_reaclib)*Y(Si28)) + - (-screened_rates(k_He4_Mg25_to_Si29_reaclib)*Y(He4)*Y(Mg25)*state.rho + screened_rates(k_Si29_to_He4_Mg25_reaclib)*Y(Si29)) + - (-screened_rates(k_He4_Mg26_to_Si30_reaclib)*Y(He4)*Y(Mg26)*state.rho + screened_rates(k_Si30_to_He4_Mg26_reaclib)*Y(Si30)) + - (-screened_rates(k_He4_Al25_to_P29_reaclib)*Y(Al25)*Y(He4)*state.rho + screened_rates(k_P29_to_He4_Al25_reaclib)*Y(P29)) + - (-screened_rates(k_He4_Al26_to_P30_reaclib)*Y(Al26)*Y(He4)*state.rho + screened_rates(k_P30_to_He4_Al26_reaclib)*Y(P30)) + - (-screened_rates(k_He4_Al27_to_P31_reaclib)*Y(Al27)*Y(He4)*state.rho + screened_rates(k_P31_to_He4_Al27_reaclib)*Y(P31)) + - (-screened_rates(k_He4_Si28_to_S32_reaclib)*Y(He4)*Y(Si28)*state.rho + screened_rates(k_S32_to_He4_Si28_reaclib)*Y(S32)) + - (-screened_rates(k_He4_Si29_to_S33_reaclib)*Y(He4)*Y(Si29)*state.rho + screened_rates(k_S33_to_He4_Si29_reaclib)*Y(S33)) + - (-screened_rates(k_He4_Si30_to_S34_reaclib)*Y(He4)*Y(Si30)*state.rho + screened_rates(k_S34_to_He4_Si30_reaclib)*Y(S34)) + - (-screened_rates(k_He4_Si31_to_S35_reaclib)*Y(He4)*Y(Si31)*state.rho + screened_rates(k_S35_to_He4_Si31_reaclib)*Y(S35)) + - (-screened_rates(k_He4_Si32_to_S36_reaclib)*Y(He4)*Y(Si32)*state.rho + screened_rates(k_S36_to_He4_Si32_reaclib)*Y(S36)) + - (-screened_rates(k_He4_P29_to_Cl33_reaclib)*Y(He4)*Y(P29)*state.rho + screened_rates(k_Cl33_to_He4_P29_reaclib)*Y(Cl33)) + - (-screened_rates(k_He4_P30_to_Cl34_reaclib)*Y(He4)*Y(P30)*state.rho + screened_rates(k_Cl34_to_He4_P30_reaclib)*Y(Cl34)) + - (-screened_rates(k_He4_P31_to_Cl35_reaclib)*Y(He4)*Y(P31)*state.rho + screened_rates(k_Cl35_to_He4_P31_reaclib)*Y(Cl35)) + - (-screened_rates(k_He4_P32_to_Cl36_reaclib)*Y(He4)*Y(P32)*state.rho + screened_rates(k_Cl36_to_He4_P32_reaclib)*Y(Cl36)) + - (-screened_rates(k_He4_P33_to_Cl37_reaclib)*Y(He4)*Y(P33)*state.rho + screened_rates(k_Cl37_to_He4_P33_reaclib)*Y(Cl37)) + - (-screened_rates(k_He4_S32_to_Ar36_reaclib)*Y(He4)*Y(S32)*state.rho + screened_rates(k_Ar36_to_He4_S32_reaclib)*Y(Ar36)) + - (-screened_rates(k_He4_S33_to_Ar37_reaclib)*Y(He4)*Y(S33)*state.rho + screened_rates(k_Ar37_to_He4_S33_reaclib)*Y(Ar37)) + - (-screened_rates(k_He4_S34_to_Ar38_reaclib)*Y(He4)*Y(S34)*state.rho + screened_rates(k_Ar38_to_He4_S34_reaclib)*Y(Ar38)) + - (-screened_rates(k_He4_S35_to_Ar39_reaclib)*Y(He4)*Y(S35)*state.rho + screened_rates(k_Ar39_to_He4_S35_reaclib)*Y(Ar39)) + - (-screened_rates(k_He4_S36_to_Ar40_reaclib)*Y(He4)*Y(S36)*state.rho + screened_rates(k_Ar40_to_He4_S36_reaclib)*Y(Ar40)) + - (-screened_rates(k_He4_Cl33_to_K37_reaclib)*Y(Cl33)*Y(He4)*state.rho + screened_rates(k_K37_to_He4_Cl33_reaclib)*Y(K37)) + - (-screened_rates(k_He4_Cl34_to_K38_reaclib)*Y(Cl34)*Y(He4)*state.rho + screened_rates(k_K38_to_He4_Cl34_reaclib)*Y(K38)) + - (-screened_rates(k_He4_Cl35_to_K39_reaclib)*Y(Cl35)*Y(He4)*state.rho + screened_rates(k_K39_to_He4_Cl35_reaclib)*Y(K39)) + - (-screened_rates(k_He4_Cl36_to_K40_reaclib)*Y(Cl36)*Y(He4)*state.rho + screened_rates(k_K40_to_He4_Cl36_reaclib)*Y(K40)) + - (-screened_rates(k_He4_Cl37_to_K41_reaclib)*Y(Cl37)*Y(He4)*state.rho + screened_rates(k_K41_to_He4_Cl37_reaclib)*Y(K41)) + - (-screened_rates(k_He4_Ar36_to_Ca40_reaclib)*Y(Ar36)*Y(He4)*state.rho + screened_rates(k_Ca40_to_He4_Ar36_reaclib)*Y(Ca40)) + - (-screened_rates(k_He4_Ar37_to_Ca41_reaclib)*Y(Ar37)*Y(He4)*state.rho + screened_rates(k_Ca41_to_He4_Ar37_reaclib)*Y(Ca41)) + - (-screened_rates(k_He4_Ar38_to_Ca42_reaclib)*Y(Ar38)*Y(He4)*state.rho + screened_rates(k_Ca42_to_He4_Ar38_reaclib)*Y(Ca42)) + - (-screened_rates(k_He4_Ar39_to_Ca43_reaclib)*Y(Ar39)*Y(He4)*state.rho + screened_rates(k_Ca43_to_He4_Ar39_reaclib)*Y(Ca43)) + - (-screened_rates(k_He4_Ar40_to_Ca44_reaclib)*Y(Ar40)*Y(He4)*state.rho + screened_rates(k_Ca44_to_He4_Ar40_reaclib)*Y(Ca44)) + - (-screened_rates(k_He4_K39_to_Sc43_reaclib)*Y(He4)*Y(K39)*state.rho + screened_rates(k_Sc43_to_He4_K39_reaclib)*Y(Sc43)) + - (-screened_rates(k_He4_K40_to_Sc44_reaclib)*Y(He4)*Y(K40)*state.rho + screened_rates(k_Sc44_to_He4_K40_reaclib)*Y(Sc44)) + - (-screened_rates(k_He4_K41_to_Sc45_reaclib)*Y(He4)*Y(K41)*state.rho + screened_rates(k_Sc45_to_He4_K41_reaclib)*Y(Sc45)) + - (-screened_rates(k_He4_Ca40_to_Ti44_reaclib)*Y(Ca40)*Y(He4)*state.rho + screened_rates(k_Ti44_to_He4_Ca40_reaclib)*Y(Ti44)) + - (-screened_rates(k_He4_Ca41_to_Ti45_reaclib)*Y(Ca41)*Y(He4)*state.rho + screened_rates(k_Ti45_to_He4_Ca41_reaclib)*Y(Ti45)) + - (-screened_rates(k_He4_Ca42_to_Ti46_reaclib)*Y(Ca42)*Y(He4)*state.rho + screened_rates(k_Ti46_to_He4_Ca42_reaclib)*Y(Ti46)) + - (-screened_rates(k_He4_Ca43_to_Ti47_reaclib)*Y(Ca43)*Y(He4)*state.rho + screened_rates(k_Ti47_to_He4_Ca43_reaclib)*Y(Ti47)) + - (-screened_rates(k_He4_Ca44_to_Ti48_reaclib)*Y(Ca44)*Y(He4)*state.rho + screened_rates(k_Ti48_to_He4_Ca44_reaclib)*Y(Ti48)) + - (-screened_rates(k_He4_Ca45_to_Ti49_reaclib)*Y(Ca45)*Y(He4)*state.rho + screened_rates(k_Ti49_to_He4_Ca45_reaclib)*Y(Ti49)) + - (-screened_rates(k_He4_Ca46_to_Ti50_reaclib)*Y(Ca46)*Y(He4)*state.rho + screened_rates(k_Ti50_to_He4_Ca46_reaclib)*Y(Ti50)) + - (-screened_rates(k_He4_Ca47_to_Ti51_reaclib)*Y(Ca47)*Y(He4)*state.rho + screened_rates(k_Ti51_to_He4_Ca47_reaclib)*Y(Ti51)) + - (-screened_rates(k_He4_Sc43_to_V47_reaclib)*Y(He4)*Y(Sc43)*state.rho + screened_rates(k_V47_to_He4_Sc43_reaclib)*Y(V47)) + - (-screened_rates(k_He4_Sc44_to_V48_reaclib)*Y(He4)*Y(Sc44)*state.rho + screened_rates(k_V48_to_He4_Sc44_reaclib)*Y(V48)) + - (-screened_rates(k_He4_Sc45_to_V49_reaclib)*Y(He4)*Y(Sc45)*state.rho + screened_rates(k_V49_to_He4_Sc45_reaclib)*Y(V49)) + - (-screened_rates(k_He4_Sc46_to_V50_reaclib)*Y(He4)*Y(Sc46)*state.rho + screened_rates(k_V50_to_He4_Sc46_reaclib)*Y(V50)) + - (-screened_rates(k_He4_Sc47_to_V51_reaclib)*Y(He4)*Y(Sc47)*state.rho + screened_rates(k_V51_to_He4_Sc47_reaclib)*Y(V51)) + - (-screened_rates(k_He4_Sc48_to_V52_reaclib)*Y(He4)*Y(Sc48)*state.rho + screened_rates(k_V52_to_He4_Sc48_reaclib)*Y(V52)) + - (-screened_rates(k_He4_Ti44_to_Cr48_reaclib)*Y(He4)*Y(Ti44)*state.rho + screened_rates(k_Cr48_to_He4_Ti44_reaclib)*Y(Cr48)) + - (-screened_rates(k_He4_Ti45_to_Cr49_reaclib)*Y(He4)*Y(Ti45)*state.rho + screened_rates(k_Cr49_to_He4_Ti45_reaclib)*Y(Cr49)) + - (-screened_rates(k_He4_Ti46_to_Cr50_reaclib)*Y(He4)*Y(Ti46)*state.rho + screened_rates(k_Cr50_to_He4_Ti46_reaclib)*Y(Cr50)) + - (-screened_rates(k_He4_Ti47_to_Cr51_reaclib)*Y(He4)*Y(Ti47)*state.rho + screened_rates(k_Cr51_to_He4_Ti47_reaclib)*Y(Cr51)) + - (-screened_rates(k_He4_Ti48_to_Cr52_reaclib)*Y(He4)*Y(Ti48)*state.rho + screened_rates(k_Cr52_to_He4_Ti48_reaclib)*Y(Cr52)) + - (-screened_rates(k_He4_Ti49_to_Cr53_reaclib)*Y(He4)*Y(Ti49)*state.rho + screened_rates(k_Cr53_to_He4_Ti49_reaclib)*Y(Cr53)) + - (-screened_rates(k_He4_Ti50_to_Cr54_reaclib)*Y(He4)*Y(Ti50)*state.rho + screened_rates(k_Cr54_to_He4_Ti50_reaclib)*Y(Cr54)) + - (-screened_rates(k_He4_V46_to_Mn50_reaclib)*Y(He4)*Y(V46)*state.rho + screened_rates(k_Mn50_to_He4_V46_reaclib)*Y(Mn50)) + - (-screened_rates(k_He4_V47_to_Mn51_reaclib)*Y(He4)*Y(V47)*state.rho + screened_rates(k_Mn51_to_He4_V47_reaclib)*Y(Mn51)) + - (-screened_rates(k_He4_V48_to_Mn52_reaclib)*Y(He4)*Y(V48)*state.rho + screened_rates(k_Mn52_to_He4_V48_reaclib)*Y(Mn52)) + - (-screened_rates(k_He4_V49_to_Mn53_reaclib)*Y(He4)*Y(V49)*state.rho + screened_rates(k_Mn53_to_He4_V49_reaclib)*Y(Mn53)) + - (-screened_rates(k_He4_V50_to_Mn54_reaclib)*Y(He4)*Y(V50)*state.rho + screened_rates(k_Mn54_to_He4_V50_reaclib)*Y(Mn54)) + - (-screened_rates(k_He4_V51_to_Mn55_reaclib)*Y(He4)*Y(V51)*state.rho + screened_rates(k_Mn55_to_He4_V51_reaclib)*Y(Mn55)) + - (-screened_rates(k_He4_Cr48_to_Fe52_reaclib)*Y(Cr48)*Y(He4)*state.rho + screened_rates(k_Fe52_to_He4_Cr48_reaclib)*Y(Fe52)) + - (-screened_rates(k_He4_Cr49_to_Fe53_reaclib)*Y(Cr49)*Y(He4)*state.rho + screened_rates(k_Fe53_to_He4_Cr49_reaclib)*Y(Fe53)) + - (-screened_rates(k_He4_Cr50_to_Fe54_reaclib)*Y(Cr50)*Y(He4)*state.rho + screened_rates(k_Fe54_to_He4_Cr50_reaclib)*Y(Fe54)) + - (-screened_rates(k_He4_Cr51_to_Fe55_reaclib)*Y(Cr51)*Y(He4)*state.rho + screened_rates(k_Fe55_to_He4_Cr51_reaclib)*Y(Fe55)) + - (-screened_rates(k_He4_Cr52_to_Fe56_reaclib)*Y(Cr52)*Y(He4)*state.rho + screened_rates(k_Fe56_to_He4_Cr52_reaclib)*Y(Fe56)) + - (-screened_rates(k_He4_Cr53_to_Fe57_reaclib)*Y(Cr53)*Y(He4)*state.rho + screened_rates(k_Fe57_to_He4_Cr53_reaclib)*Y(Fe57)) + - (-screened_rates(k_He4_Cr54_to_Fe58_reaclib)*Y(Cr54)*Y(He4)*state.rho + screened_rates(k_Fe58_to_He4_Cr54_reaclib)*Y(Fe58)) + - (-screened_rates(k_He4_Mn50_to_Co54_reaclib)*Y(He4)*Y(Mn50)*state.rho + screened_rates(k_Co54_to_He4_Mn50_reaclib)*Y(Co54)) + - (-screened_rates(k_He4_Mn51_to_Co55_reaclib)*Y(He4)*Y(Mn51)*state.rho + screened_rates(k_Co55_to_He4_Mn51_reaclib)*Y(Co55)) + - (-screened_rates(k_He4_Mn52_to_Co56_reaclib)*Y(He4)*Y(Mn52)*state.rho + screened_rates(k_Co56_to_He4_Mn52_reaclib)*Y(Co56)) + - (-screened_rates(k_He4_Mn53_to_Co57_reaclib)*Y(He4)*Y(Mn53)*state.rho + screened_rates(k_Co57_to_He4_Mn53_reaclib)*Y(Co57)) + - (-screened_rates(k_He4_Mn54_to_Co58_reaclib)*Y(He4)*Y(Mn54)*state.rho + screened_rates(k_Co58_to_He4_Mn54_reaclib)*Y(Co58)) + - (-screened_rates(k_He4_Mn55_to_Co59_reaclib)*Y(He4)*Y(Mn55)*state.rho + screened_rates(k_Co59_to_He4_Mn55_reaclib)*Y(Co59)) + - (-screened_rates(k_He4_Fe52_to_Ni56_reaclib)*Y(Fe52)*Y(He4)*state.rho + screened_rates(k_Ni56_to_He4_Fe52_reaclib)*Y(Ni56)) + - (-screened_rates(k_He4_Fe53_to_Ni57_reaclib)*Y(Fe53)*Y(He4)*state.rho + screened_rates(k_Ni57_to_He4_Fe53_reaclib)*Y(Ni57)) + - (-screened_rates(k_He4_Fe54_to_Ni58_reaclib)*Y(Fe54)*Y(He4)*state.rho + screened_rates(k_Ni58_to_He4_Fe54_reaclib)*Y(Ni58)) + - (-screened_rates(k_He4_Fe55_to_Ni59_reaclib)*Y(Fe55)*Y(He4)*state.rho + screened_rates(k_Ni59_to_He4_Fe55_reaclib)*Y(Ni59)) + - (-screened_rates(k_He4_Fe56_to_Ni60_reaclib)*Y(Fe56)*Y(He4)*state.rho + screened_rates(k_Ni60_to_He4_Fe56_reaclib)*Y(Ni60)) + - (-screened_rates(k_He4_Fe57_to_Ni61_reaclib)*Y(Fe57)*Y(He4)*state.rho + screened_rates(k_Ni61_to_He4_Fe57_reaclib)*Y(Ni61)) + - (-screened_rates(k_He4_Fe58_to_Ni62_reaclib)*Y(Fe58)*Y(He4)*state.rho + screened_rates(k_Ni62_to_He4_Fe58_reaclib)*Y(Ni62)) + - (-screened_rates(k_He4_Co53_to_Cu57_reaclib)*Y(Co53)*Y(He4)*state.rho + screened_rates(k_Cu57_to_He4_Co53_reaclib)*Y(Cu57)) + - (-screened_rates(k_He4_Co54_to_Cu58_reaclib)*Y(Co54)*Y(He4)*state.rho + screened_rates(k_Cu58_to_He4_Co54_reaclib)*Y(Cu58)) + - (-screened_rates(k_He4_Co55_to_Cu59_reaclib)*Y(Co55)*Y(He4)*state.rho + screened_rates(k_Cu59_to_He4_Co55_reaclib)*Y(Cu59)) + - (-screened_rates(k_He4_Co56_to_Cu60_reaclib)*Y(Co56)*Y(He4)*state.rho + screened_rates(k_Cu60_to_He4_Co56_reaclib)*Y(Cu60)) + - (-screened_rates(k_He4_Co57_to_Cu61_reaclib)*Y(Co57)*Y(He4)*state.rho + screened_rates(k_Cu61_to_He4_Co57_reaclib)*Y(Cu61)) + - (-screened_rates(k_He4_Co58_to_Cu62_reaclib)*Y(Co58)*Y(He4)*state.rho + screened_rates(k_Cu62_to_He4_Co58_reaclib)*Y(Cu62)) + - (-screened_rates(k_He4_Co59_to_Cu63_reaclib)*Y(Co59)*Y(He4)*state.rho + screened_rates(k_Cu63_to_He4_Co59_reaclib)*Y(Cu63)) + - (-screened_rates(k_He4_Ni56_to_Zn60_reaclib)*Y(He4)*Y(Ni56)*state.rho + screened_rates(k_Zn60_to_He4_Ni56_reaclib)*Y(Zn60)) + - (-screened_rates(k_He4_Ni57_to_Zn61_reaclib)*Y(He4)*Y(Ni57)*state.rho + screened_rates(k_Zn61_to_He4_Ni57_reaclib)*Y(Zn61)) + - (-screened_rates(k_He4_Ni58_to_Zn62_reaclib)*Y(He4)*Y(Ni58)*state.rho + screened_rates(k_Zn62_to_He4_Ni58_reaclib)*Y(Zn62)) + - (-screened_rates(k_He4_Ni59_to_Zn63_reaclib)*Y(He4)*Y(Ni59)*state.rho + screened_rates(k_Zn63_to_He4_Ni59_reaclib)*Y(Zn63)) + - (-screened_rates(k_He4_Ni60_to_Zn64_reaclib)*Y(He4)*Y(Ni60)*state.rho + screened_rates(k_Zn64_to_He4_Ni60_reaclib)*Y(Zn64)) + - (-screened_rates(k_He4_Ni61_to_Zn65_reaclib)*Y(He4)*Y(Ni61)*state.rho + screened_rates(k_Zn65_to_He4_Ni61_reaclib)*Y(Zn65)) + - (-screened_rates(k_He4_Ni62_to_Zn66_reaclib)*Y(He4)*Y(Ni62)*state.rho + screened_rates(k_Zn66_to_He4_Ni62_reaclib)*Y(Zn66)) + - (-screened_rates(k_He4_Cu58_to_Ga62_reaclib)*Y(Cu58)*Y(He4)*state.rho + screened_rates(k_Ga62_to_He4_Cu58_reaclib)*Y(Ga62)) + - (-screened_rates(k_He4_Cu59_to_Ga63_reaclib)*Y(Cu59)*Y(He4)*state.rho + screened_rates(k_Ga63_to_He4_Cu59_reaclib)*Y(Ga63)) + - (-screened_rates(k_He4_Cu60_to_Ga64_reaclib)*Y(Cu60)*Y(He4)*state.rho + screened_rates(k_Ga64_to_He4_Cu60_reaclib)*Y(Ga64)) + - (-screened_rates(k_He4_Zn59_to_Ge63_reaclib)*Y(He4)*Y(Zn59)*state.rho + screened_rates(k_Ge63_to_He4_Zn59_reaclib)*Y(Ge63)) + - (-screened_rates(k_He4_Zn60_to_Ge64_reaclib)*Y(He4)*Y(Zn60)*state.rho + screened_rates(k_Ge64_to_He4_Zn60_reaclib)*Y(Ge64)) + - (screened_rates(k_d_He3_to_p_He4_reaclib)*Y(He3)*Y(H2)*state.rho + -screened_rates(k_p_He4_to_d_He3_reaclib)*Y(He4)*Y(H1)*state.rho) + - (screened_rates(k_p_Li6_to_He4_He3_reaclib)*Y(Li6)*Y(H1)*state.rho + -screened_rates(k_He4_He3_to_p_Li6_reaclib)*Y(He3)*Y(He4)*state.rho) + - (2.0*screened_rates(k_p_Li7_to_He4_He4_reaclib)*Y(Li7)*Y(H1)*state.rho + -screened_rates(k_He4_He4_to_p_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*state.rho) + - (2.0*screened_rates(k_n_Be7_to_He4_He4_reaclib)*Y(Be7)*Y(N)*state.rho + -screened_rates(k_He4_He4_to_n_Be7_reaclib)*amrex::Math::powi<2>(Y(He4))*state.rho) + - (screened_rates(k_p_Be9_to_He4_Li6_reaclib)*Y(Be9)*Y(H1)*state.rho + -screened_rates(k_He4_Li6_to_p_Be9_reaclib)*Y(He4)*Y(Li6)*state.rho) + - (-screened_rates(k_He4_Be9_to_n_C12_reaclib)*Y(Be9)*Y(He4)*state.rho + screened_rates(k_n_C12_to_He4_Be9_reaclib)*Y(C12)*Y(N)*state.rho) + - (screened_rates(k_n_B10_to_He4_Li7_reaclib)*Y(B10)*Y(N)*state.rho + -screened_rates(k_He4_Li7_to_n_B10_reaclib)*Y(He4)*Y(Li7)*state.rho) + - (screened_rates(k_p_B10_to_He4_Be7_reaclib)*Y(B10)*Y(H1)*state.rho + -screened_rates(k_He4_Be7_to_p_B10_reaclib)*Y(Be7)*Y(He4)*state.rho) + - (-screened_rates(k_He4_B10_to_n_N13_reaclib)*Y(B10)*Y(He4)*state.rho + screened_rates(k_n_N13_to_He4_B10_reaclib)*Y(N13)*Y(N)*state.rho) + - (-screened_rates(k_He4_B10_to_p_C13_reaclib)*Y(B10)*Y(He4)*state.rho + screened_rates(k_p_C13_to_He4_B10_reaclib)*Y(C13)*Y(H1)*state.rho) + - (-screened_rates(k_He4_B11_to_n_N14_reaclib)*Y(B11)*Y(He4)*state.rho + screened_rates(k_n_N14_to_He4_B11_reaclib)*Y(N14)*Y(N)*state.rho) + - (-screened_rates(k_He4_B11_to_p_C14_reaclib)*Y(B11)*Y(He4)*state.rho + screened_rates(k_p_C14_to_He4_B11_reaclib)*Y(C14)*Y(H1)*state.rho) + - (0.5*screened_rates(k_C12_C12_to_He4_Ne20_reaclib)*amrex::Math::powi<2>(Y(C12))*state.rho + -screened_rates(k_He4_Ne20_to_C12_C12_reaclib)*Y(He4)*Y(Ne20)*state.rho) + - (-screened_rates(k_He4_C13_to_n_O16_reaclib)*Y(C13)*Y(He4)*state.rho + screened_rates(k_n_O16_to_He4_C13_reaclib)*Y(O16)*Y(N)*state.rho) + - (-screened_rates(k_He4_N13_to_p_O16_reaclib)*Y(He4)*Y(N13)*state.rho + screened_rates(k_p_O16_to_He4_N13_reaclib)*Y(O16)*Y(H1)*state.rho) + - (screened_rates(k_p_N15_to_He4_C12_reaclib)*Y(N15)*Y(H1)*state.rho + -screened_rates(k_He4_C12_to_p_N15_reaclib)*Y(C12)*Y(He4)*state.rho) + - (-screened_rates(k_He4_O14_to_p_F17_reaclib)*Y(He4)*Y(O14)*state.rho + screened_rates(k_p_F17_to_He4_O14_reaclib)*Y(F17)*Y(H1)*state.rho) + - (screened_rates(k_n_O15_to_He4_C12_reaclib)*Y(O15)*Y(N)*state.rho + -screened_rates(k_He4_C12_to_n_O15_reaclib)*Y(C12)*Y(He4)*state.rho) + - (screened_rates(k_C12_O16_to_He4_Mg24_reaclib)*Y(C12)*Y(O16)*state.rho + -screened_rates(k_He4_Mg24_to_C12_O16_reaclib)*Y(He4)*Y(Mg24)*state.rho) + - (0.5*screened_rates(k_O16_O16_to_He4_Si28_reaclib)*amrex::Math::powi<2>(Y(O16))*state.rho + -screened_rates(k_He4_Si28_to_O16_O16_reaclib)*Y(He4)*Y(Si28)*state.rho) + - (screened_rates(k_n_O17_to_He4_C14_reaclib)*Y(O17)*Y(N)*state.rho + -screened_rates(k_He4_C14_to_n_O17_reaclib)*Y(C14)*Y(He4)*state.rho) + - (screened_rates(k_p_O17_to_He4_N14_reaclib)*Y(O17)*Y(H1)*state.rho + -screened_rates(k_He4_N14_to_p_O17_reaclib)*Y(He4)*Y(N14)*state.rho) + - (-screened_rates(k_He4_O17_to_n_Ne20_reaclib)*Y(He4)*Y(O17)*state.rho + screened_rates(k_n_Ne20_to_He4_O17_reaclib)*Y(Ne20)*Y(N)*state.rho) + - (screened_rates(k_p_O18_to_He4_N15_reaclib)*Y(O18)*Y(H1)*state.rho + -screened_rates(k_He4_N15_to_p_O18_reaclib)*Y(He4)*Y(N15)*state.rho) + - (screened_rates(k_n_F17_to_He4_N14_reaclib)*Y(F17)*Y(N)*state.rho + -screened_rates(k_He4_N14_to_n_F17_reaclib)*Y(He4)*Y(N14)*state.rho) + - (-screened_rates(k_He4_F17_to_p_Ne20_reaclib)*Y(F17)*Y(He4)*state.rho + screened_rates(k_p_Ne20_to_He4_F17_reaclib)*Y(Ne20)*Y(H1)*state.rho) + - (screened_rates(k_n_F18_to_He4_N15_reaclib)*Y(F18)*Y(N)*state.rho + -screened_rates(k_He4_N15_to_n_F18_reaclib)*Y(He4)*Y(N15)*state.rho) + - (screened_rates(k_p_F18_to_He4_O15_reaclib)*Y(F18)*Y(H1)*state.rho + -screened_rates(k_He4_O15_to_p_F18_reaclib)*Y(He4)*Y(O15)*state.rho) + - (-screened_rates(k_He4_F18_to_p_Ne21_reaclib)*Y(F18)*Y(He4)*state.rho + screened_rates(k_p_Ne21_to_He4_F18_reaclib)*Y(Ne21)*Y(H1)*state.rho) + - (screened_rates(k_p_F19_to_He4_O16_reaclib)*Y(F19)*Y(H1)*state.rho + -screened_rates(k_He4_O16_to_p_F19_reaclib)*Y(He4)*Y(O16)*state.rho) + - (-screened_rates(k_He4_F19_to_p_Ne22_reaclib)*Y(F19)*Y(He4)*state.rho + screened_rates(k_p_Ne22_to_He4_F19_reaclib)*Y(Ne22)*Y(H1)*state.rho) + - (screened_rates(k_n_Ne18_to_He4_O15_reaclib)*Y(Ne18)*Y(N)*state.rho + -screened_rates(k_He4_O15_to_n_Ne18_reaclib)*Y(He4)*Y(O15)*state.rho) + - (-screened_rates(k_He4_Ne18_to_p_Na21_reaclib)*Y(He4)*Y(Ne18)*state.rho + screened_rates(k_p_Na21_to_He4_Ne18_reaclib)*Y(Na21)*Y(H1)*state.rho) + - (screened_rates(k_n_Ne19_to_He4_O16_reaclib)*Y(Ne19)*Y(N)*state.rho + -screened_rates(k_He4_O16_to_n_Ne19_reaclib)*Y(He4)*Y(O16)*state.rho) + - (-screened_rates(k_He4_Ne19_to_p_Na22_reaclib)*Y(He4)*Y(Ne19)*state.rho + screened_rates(k_p_Na22_to_He4_Ne19_reaclib)*Y(Na22)*Y(H1)*state.rho) + - (screened_rates(k_C12_Ne20_to_He4_Si28_reaclib)*Y(C12)*Y(Ne20)*state.rho + -screened_rates(k_He4_Si28_to_C12_Ne20_reaclib)*Y(He4)*Y(Si28)*state.rho) + - (screened_rates(k_n_Ne21_to_He4_O18_reaclib)*Y(Ne21)*Y(N)*state.rho + -screened_rates(k_He4_O18_to_n_Ne21_reaclib)*Y(He4)*Y(O18)*state.rho) + - (-screened_rates(k_He4_Ne21_to_n_Mg24_reaclib)*Y(He4)*Y(Ne21)*state.rho + screened_rates(k_n_Mg24_to_He4_Ne21_reaclib)*Y(Mg24)*Y(N)*state.rho) + - (screened_rates(k_n_Na21_to_He4_F18_reaclib)*Y(Na21)*Y(N)*state.rho + -screened_rates(k_He4_F18_to_n_Na21_reaclib)*Y(F18)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Na21_to_p_Mg24_reaclib)*Y(He4)*Y(Na21)*state.rho + screened_rates(k_p_Mg24_to_He4_Na21_reaclib)*Y(Mg24)*Y(H1)*state.rho) + - (screened_rates(k_n_Na22_to_He4_F19_reaclib)*Y(Na22)*Y(N)*state.rho + -screened_rates(k_He4_F19_to_n_Na22_reaclib)*Y(F19)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Na22_to_p_Mg25_reaclib)*Y(He4)*Y(Na22)*state.rho + screened_rates(k_p_Mg25_to_He4_Na22_reaclib)*Y(Mg25)*Y(H1)*state.rho) + - (screened_rates(k_p_Na23_to_He4_Ne20_reaclib)*Y(Na23)*Y(H1)*state.rho + -screened_rates(k_He4_Ne20_to_p_Na23_reaclib)*Y(He4)*Y(Ne20)*state.rho) + - (-screened_rates(k_He4_Na23_to_p_Mg26_reaclib)*Y(He4)*Y(Na23)*state.rho + screened_rates(k_p_Mg26_to_He4_Na23_reaclib)*Y(Mg26)*Y(H1)*state.rho) + - (screened_rates(k_n_Mg23_to_He4_Ne20_reaclib)*Y(Mg23)*Y(N)*state.rho + -screened_rates(k_He4_Ne20_to_n_Mg23_reaclib)*Y(He4)*Y(Ne20)*state.rho) + - (-screened_rates(k_He4_Mg23_to_p_Al26_reaclib)*Y(He4)*Y(Mg23)*state.rho + screened_rates(k_p_Al26_to_He4_Mg23_reaclib)*Y(Al26)*Y(H1)*state.rho) + - (screened_rates(k_n_Mg25_to_He4_Ne22_reaclib)*Y(Mg25)*Y(N)*state.rho + -screened_rates(k_He4_Ne22_to_n_Mg25_reaclib)*Y(He4)*Y(Ne22)*state.rho) + - (-screened_rates(k_He4_Mg25_to_n_Si28_reaclib)*Y(He4)*Y(Mg25)*state.rho + screened_rates(k_n_Si28_to_He4_Mg25_reaclib)*Y(Si28)*Y(N)*state.rho) + - (-screened_rates(k_He4_Mg26_to_n_Si29_reaclib)*Y(He4)*Y(Mg26)*state.rho + screened_rates(k_n_Si29_to_He4_Mg26_reaclib)*Y(Si29)*Y(N)*state.rho) + - (screened_rates(k_n_Al25_to_He4_Na22_reaclib)*Y(Al25)*Y(N)*state.rho + -screened_rates(k_He4_Na22_to_n_Al25_reaclib)*Y(He4)*Y(Na22)*state.rho) + - (-screened_rates(k_He4_Al25_to_p_Si28_reaclib)*Y(Al25)*Y(He4)*state.rho + screened_rates(k_p_Si28_to_He4_Al25_reaclib)*Y(Si28)*Y(H1)*state.rho) + - (screened_rates(k_n_Al26_to_He4_Na23_reaclib)*Y(Al26)*Y(N)*state.rho + -screened_rates(k_He4_Na23_to_n_Al26_reaclib)*Y(He4)*Y(Na23)*state.rho) + - (-screened_rates(k_He4_Al26_to_p_Si29_reaclib)*Y(Al26)*Y(He4)*state.rho + screened_rates(k_p_Si29_to_He4_Al26_reaclib)*Y(Si29)*Y(H1)*state.rho) + - (screened_rates(k_p_Al27_to_He4_Mg24_reaclib)*Y(Al27)*Y(H1)*state.rho + -screened_rates(k_He4_Mg24_to_p_Al27_reaclib)*Y(He4)*Y(Mg24)*state.rho) + - (-screened_rates(k_He4_Al27_to_p_Si30_reaclib)*Y(Al27)*Y(He4)*state.rho + screened_rates(k_p_Si30_to_He4_Al27_reaclib)*Y(Si30)*Y(H1)*state.rho) + - (-screened_rates(k_He4_Si31_to_n_S34_reaclib)*Y(He4)*Y(Si31)*state.rho + screened_rates(k_n_S34_to_He4_Si31_reaclib)*Y(S34)*Y(N)*state.rho) + - (screened_rates(k_n_P29_to_He4_Al26_reaclib)*Y(P29)*Y(N)*state.rho + -screened_rates(k_He4_Al26_to_n_P29_reaclib)*Y(Al26)*Y(He4)*state.rho) + - (-screened_rates(k_He4_P29_to_p_S32_reaclib)*Y(He4)*Y(P29)*state.rho + screened_rates(k_p_S32_to_He4_P29_reaclib)*Y(S32)*Y(H1)*state.rho) + - (screened_rates(k_n_P30_to_He4_Al27_reaclib)*Y(P30)*Y(N)*state.rho + -screened_rates(k_He4_Al27_to_n_P30_reaclib)*Y(Al27)*Y(He4)*state.rho) + - (-screened_rates(k_He4_P30_to_p_S33_reaclib)*Y(He4)*Y(P30)*state.rho + screened_rates(k_p_S33_to_He4_P30_reaclib)*Y(S33)*Y(H1)*state.rho) + - (screened_rates(k_p_P31_to_He4_Si28_reaclib)*Y(P31)*Y(H1)*state.rho + -screened_rates(k_He4_Si28_to_p_P31_reaclib)*Y(He4)*Y(Si28)*state.rho) + - (-screened_rates(k_He4_P31_to_p_S34_reaclib)*Y(He4)*Y(P31)*state.rho + screened_rates(k_p_S34_to_He4_P31_reaclib)*Y(S34)*Y(H1)*state.rho) + - (screened_rates(k_p_P32_to_He4_Si29_reaclib)*Y(P32)*Y(H1)*state.rho + -screened_rates(k_He4_Si29_to_p_P32_reaclib)*Y(He4)*Y(Si29)*state.rho) + - (screened_rates(k_p_P33_to_He4_Si30_reaclib)*Y(P33)*Y(H1)*state.rho + -screened_rates(k_He4_Si30_to_p_P33_reaclib)*Y(He4)*Y(Si30)*state.rho) + - (screened_rates(k_n_S32_to_He4_Si29_reaclib)*Y(S32)*Y(N)*state.rho + -screened_rates(k_He4_Si29_to_n_S32_reaclib)*Y(He4)*Y(Si29)*state.rho) + - (screened_rates(k_n_S33_to_He4_Si30_reaclib)*Y(S33)*Y(N)*state.rho + -screened_rates(k_He4_Si30_to_n_S33_reaclib)*Y(He4)*Y(Si30)*state.rho) + - (screened_rates(k_n_S35_to_He4_Si32_reaclib)*Y(S35)*Y(N)*state.rho + -screened_rates(k_He4_Si32_to_n_S35_reaclib)*Y(He4)*Y(Si32)*state.rho) + - (screened_rates(k_p_S35_to_He4_P32_reaclib)*Y(S35)*Y(H1)*state.rho + -screened_rates(k_He4_P32_to_p_S35_reaclib)*Y(He4)*Y(P32)*state.rho) + - (-screened_rates(k_He4_S35_to_n_Ar38_reaclib)*Y(He4)*Y(S35)*state.rho + screened_rates(k_n_Ar38_to_He4_S35_reaclib)*Y(Ar38)*Y(N)*state.rho) + - (screened_rates(k_p_S36_to_He4_P33_reaclib)*Y(S36)*Y(H1)*state.rho + -screened_rates(k_He4_P33_to_p_S36_reaclib)*Y(He4)*Y(P33)*state.rho) + - (screened_rates(k_n_Cl33_to_He4_P30_reaclib)*Y(Cl33)*Y(N)*state.rho + -screened_rates(k_He4_P30_to_n_Cl33_reaclib)*Y(He4)*Y(P30)*state.rho) + - (-screened_rates(k_He4_Cl33_to_p_Ar36_reaclib)*Y(Cl33)*Y(He4)*state.rho + screened_rates(k_p_Ar36_to_He4_Cl33_reaclib)*Y(Ar36)*Y(H1)*state.rho) + - (screened_rates(k_n_Cl34_to_He4_P31_reaclib)*Y(Cl34)*Y(N)*state.rho + -screened_rates(k_He4_P31_to_n_Cl34_reaclib)*Y(He4)*Y(P31)*state.rho) + - (-screened_rates(k_He4_Cl34_to_p_Ar37_reaclib)*Y(Cl34)*Y(He4)*state.rho + screened_rates(k_p_Ar37_to_He4_Cl34_reaclib)*Y(Ar37)*Y(H1)*state.rho) + - (screened_rates(k_n_Cl35_to_He4_P32_reaclib)*Y(Cl35)*Y(N)*state.rho + -screened_rates(k_He4_P32_to_n_Cl35_reaclib)*Y(He4)*Y(P32)*state.rho) + - (screened_rates(k_p_Cl35_to_He4_S32_reaclib)*Y(Cl35)*Y(H1)*state.rho + -screened_rates(k_He4_S32_to_p_Cl35_reaclib)*Y(He4)*Y(S32)*state.rho) + - (-screened_rates(k_He4_Cl35_to_p_Ar38_reaclib)*Y(Cl35)*Y(He4)*state.rho + screened_rates(k_p_Ar38_to_He4_Cl35_reaclib)*Y(Ar38)*Y(H1)*state.rho) + - (screened_rates(k_n_Cl36_to_He4_P33_reaclib)*Y(Cl36)*Y(N)*state.rho + -screened_rates(k_He4_P33_to_n_Cl36_reaclib)*Y(He4)*Y(P33)*state.rho) + - (screened_rates(k_p_Cl36_to_He4_S33_reaclib)*Y(Cl36)*Y(H1)*state.rho + -screened_rates(k_He4_S33_to_p_Cl36_reaclib)*Y(He4)*Y(S33)*state.rho) + - (screened_rates(k_p_Cl37_to_He4_S34_reaclib)*Y(Cl37)*Y(H1)*state.rho + -screened_rates(k_He4_S34_to_p_Cl37_reaclib)*Y(He4)*Y(S34)*state.rho) + - (screened_rates(k_n_Ar36_to_He4_S33_reaclib)*Y(Ar36)*Y(N)*state.rho + -screened_rates(k_He4_S33_to_n_Ar36_reaclib)*Y(He4)*Y(S33)*state.rho) + - (screened_rates(k_n_Ar37_to_He4_S34_reaclib)*Y(Ar37)*Y(N)*state.rho + -screened_rates(k_He4_S34_to_n_Ar37_reaclib)*Y(He4)*Y(S34)*state.rho) + - (screened_rates(k_n_Ar39_to_He4_S36_reaclib)*Y(Ar39)*Y(N)*state.rho + -screened_rates(k_He4_S36_to_n_Ar39_reaclib)*Y(He4)*Y(S36)*state.rho) + - (screened_rates(k_p_Ar39_to_He4_Cl36_reaclib)*Y(Ar39)*Y(H1)*state.rho + -screened_rates(k_He4_Cl36_to_p_Ar39_reaclib)*Y(Cl36)*Y(He4)*state.rho) + - (screened_rates(k_p_Ar40_to_He4_Cl37_reaclib)*Y(Ar40)*Y(H1)*state.rho + -screened_rates(k_He4_Cl37_to_p_Ar40_reaclib)*Y(Cl37)*Y(He4)*state.rho) + - (screened_rates(k_n_K37_to_He4_Cl34_reaclib)*Y(K37)*Y(N)*state.rho + -screened_rates(k_He4_Cl34_to_n_K37_reaclib)*Y(Cl34)*Y(He4)*state.rho) + - (-screened_rates(k_He4_K37_to_p_Ca40_reaclib)*Y(He4)*Y(K37)*state.rho + screened_rates(k_p_Ca40_to_He4_K37_reaclib)*Y(Ca40)*Y(H1)*state.rho) + - (screened_rates(k_n_K38_to_He4_Cl35_reaclib)*Y(K38)*Y(N)*state.rho + -screened_rates(k_He4_Cl35_to_n_K38_reaclib)*Y(Cl35)*Y(He4)*state.rho) + - (-screened_rates(k_He4_K38_to_p_Ca41_reaclib)*Y(He4)*Y(K38)*state.rho + screened_rates(k_p_Ca41_to_He4_K38_reaclib)*Y(Ca41)*Y(H1)*state.rho) + - (screened_rates(k_n_K39_to_He4_Cl36_reaclib)*Y(K39)*Y(N)*state.rho + -screened_rates(k_He4_Cl36_to_n_K39_reaclib)*Y(Cl36)*Y(He4)*state.rho) + - (screened_rates(k_p_K39_to_He4_Ar36_reaclib)*Y(K39)*Y(H1)*state.rho + -screened_rates(k_He4_Ar36_to_p_K39_reaclib)*Y(Ar36)*Y(He4)*state.rho) + - (screened_rates(k_n_K40_to_He4_Cl37_reaclib)*Y(K40)*Y(N)*state.rho + -screened_rates(k_He4_Cl37_to_n_K40_reaclib)*Y(Cl37)*Y(He4)*state.rho) + - (screened_rates(k_p_K40_to_He4_Ar37_reaclib)*Y(K40)*Y(H1)*state.rho + -screened_rates(k_He4_Ar37_to_p_K40_reaclib)*Y(Ar37)*Y(He4)*state.rho) + - (-screened_rates(k_He4_K40_to_p_Ca43_reaclib)*Y(He4)*Y(K40)*state.rho + screened_rates(k_p_Ca43_to_He4_K40_reaclib)*Y(Ca43)*Y(H1)*state.rho) + - (screened_rates(k_p_K41_to_He4_Ar38_reaclib)*Y(K41)*Y(H1)*state.rho + -screened_rates(k_He4_Ar38_to_p_K41_reaclib)*Y(Ar38)*Y(He4)*state.rho) + - (-screened_rates(k_He4_K41_to_p_Ca44_reaclib)*Y(He4)*Y(K41)*state.rho + screened_rates(k_p_Ca44_to_He4_K41_reaclib)*Y(Ca44)*Y(H1)*state.rho) + - (screened_rates(k_n_Ca40_to_He4_Ar37_reaclib)*Y(Ca40)*Y(N)*state.rho + -screened_rates(k_He4_Ar37_to_n_Ca40_reaclib)*Y(Ar37)*Y(He4)*state.rho) + - (screened_rates(k_n_Ca41_to_He4_Ar38_reaclib)*Y(Ca41)*Y(N)*state.rho + -screened_rates(k_He4_Ar38_to_n_Ca41_reaclib)*Y(Ar38)*Y(He4)*state.rho) + - (screened_rates(k_n_Ca42_to_He4_Ar39_reaclib)*Y(Ca42)*Y(N)*state.rho + -screened_rates(k_He4_Ar39_to_n_Ca42_reaclib)*Y(Ar39)*Y(He4)*state.rho) + - (screened_rates(k_p_Ca42_to_He4_K39_reaclib)*Y(Ca42)*Y(H1)*state.rho + -screened_rates(k_He4_K39_to_p_Ca42_reaclib)*Y(He4)*Y(K39)*state.rho) + - (screened_rates(k_n_Ca43_to_He4_Ar40_reaclib)*Y(Ca43)*Y(N)*state.rho + -screened_rates(k_He4_Ar40_to_n_Ca43_reaclib)*Y(Ar40)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Ca43_to_n_Ti46_reaclib)*Y(Ca43)*Y(He4)*state.rho + screened_rates(k_n_Ti46_to_He4_Ca43_reaclib)*Y(Ti46)*Y(N)*state.rho) + - (-screened_rates(k_He4_Ca45_to_n_Ti48_reaclib)*Y(Ca45)*Y(He4)*state.rho + screened_rates(k_n_Ti48_to_He4_Ca45_reaclib)*Y(Ti48)*Y(N)*state.rho) + - (-screened_rates(k_He4_Ca47_to_n_Ti50_reaclib)*Y(Ca47)*Y(He4)*state.rho + screened_rates(k_n_Ti50_to_He4_Ca47_reaclib)*Y(Ti50)*Y(N)*state.rho) + - (screened_rates(k_n_Sc43_to_He4_K40_reaclib)*Y(Sc43)*Y(N)*state.rho + -screened_rates(k_He4_K40_to_n_Sc43_reaclib)*Y(He4)*Y(K40)*state.rho) + - (screened_rates(k_p_Sc43_to_He4_Ca40_reaclib)*Y(Sc43)*Y(H1)*state.rho + -screened_rates(k_He4_Ca40_to_p_Sc43_reaclib)*Y(Ca40)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Sc43_to_p_Ti46_reaclib)*Y(He4)*Y(Sc43)*state.rho + screened_rates(k_p_Ti46_to_He4_Sc43_reaclib)*Y(Ti46)*Y(H1)*state.rho) + - (screened_rates(k_n_Sc44_to_He4_K41_reaclib)*Y(Sc44)*Y(N)*state.rho + -screened_rates(k_He4_K41_to_n_Sc44_reaclib)*Y(He4)*Y(K41)*state.rho) + - (screened_rates(k_p_Sc44_to_He4_Ca41_reaclib)*Y(Sc44)*Y(H1)*state.rho + -screened_rates(k_He4_Ca41_to_p_Sc44_reaclib)*Y(Ca41)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Sc44_to_p_Ti47_reaclib)*Y(He4)*Y(Sc44)*state.rho + screened_rates(k_p_Ti47_to_He4_Sc44_reaclib)*Y(Ti47)*Y(H1)*state.rho) + - (screened_rates(k_p_Sc45_to_He4_Ca42_reaclib)*Y(Sc45)*Y(H1)*state.rho + -screened_rates(k_He4_Ca42_to_p_Sc45_reaclib)*Y(Ca42)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Sc45_to_p_Ti48_reaclib)*Y(He4)*Y(Sc45)*state.rho + screened_rates(k_p_Ti48_to_He4_Sc45_reaclib)*Y(Ti48)*Y(H1)*state.rho) + - (screened_rates(k_p_Sc46_to_He4_Ca43_reaclib)*Y(Sc46)*Y(H1)*state.rho + -screened_rates(k_He4_Ca43_to_p_Sc46_reaclib)*Y(Ca43)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Sc46_to_n_V49_reaclib)*Y(He4)*Y(Sc46)*state.rho + screened_rates(k_n_V49_to_He4_Sc46_reaclib)*Y(V49)*Y(N)*state.rho) + - (-screened_rates(k_He4_Sc46_to_p_Ti49_reaclib)*Y(He4)*Y(Sc46)*state.rho + screened_rates(k_p_Ti49_to_He4_Sc46_reaclib)*Y(Ti49)*Y(H1)*state.rho) + - (screened_rates(k_p_Sc47_to_He4_Ca44_reaclib)*Y(Sc47)*Y(H1)*state.rho + -screened_rates(k_He4_Ca44_to_p_Sc47_reaclib)*Y(Ca44)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Sc47_to_p_Ti50_reaclib)*Y(He4)*Y(Sc47)*state.rho + screened_rates(k_p_Ti50_to_He4_Sc47_reaclib)*Y(Ti50)*Y(H1)*state.rho) + - (screened_rates(k_p_Sc48_to_He4_Ca45_reaclib)*Y(Sc48)*Y(H1)*state.rho + -screened_rates(k_He4_Ca45_to_p_Sc48_reaclib)*Y(Ca45)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Sc48_to_n_V51_reaclib)*Y(He4)*Y(Sc48)*state.rho + screened_rates(k_n_V51_to_He4_Sc48_reaclib)*Y(V51)*Y(N)*state.rho) + - (-screened_rates(k_He4_Sc48_to_p_Ti51_reaclib)*Y(He4)*Y(Sc48)*state.rho + screened_rates(k_p_Ti51_to_He4_Sc48_reaclib)*Y(Ti51)*Y(H1)*state.rho) + - (screened_rates(k_p_Sc49_to_He4_Ca46_reaclib)*Y(Sc49)*Y(H1)*state.rho + -screened_rates(k_He4_Ca46_to_p_Sc49_reaclib)*Y(Ca46)*Y(He4)*state.rho) + - (screened_rates(k_n_Ti44_to_He4_Ca41_reaclib)*Y(Ti44)*Y(N)*state.rho + -screened_rates(k_He4_Ca41_to_n_Ti44_reaclib)*Y(Ca41)*Y(He4)*state.rho) + - (screened_rates(k_n_Ti45_to_He4_Ca42_reaclib)*Y(Ti45)*Y(N)*state.rho + -screened_rates(k_He4_Ca42_to_n_Ti45_reaclib)*Y(Ca42)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Ti45_to_p_V48_reaclib)*Y(He4)*Y(Ti45)*state.rho + screened_rates(k_p_V48_to_He4_Ti45_reaclib)*Y(V48)*Y(H1)*state.rho) + - (screened_rates(k_n_Ti47_to_He4_Ca44_reaclib)*Y(Ti47)*Y(N)*state.rho + -screened_rates(k_He4_Ca44_to_n_Ti47_reaclib)*Y(Ca44)*Y(He4)*state.rho) + - (screened_rates(k_n_Ti49_to_He4_Ca46_reaclib)*Y(Ti49)*Y(N)*state.rho + -screened_rates(k_He4_Ca46_to_n_Ti49_reaclib)*Y(Ca46)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Ti49_to_n_Cr52_reaclib)*Y(He4)*Y(Ti49)*state.rho + screened_rates(k_n_Cr52_to_He4_Ti49_reaclib)*Y(Cr52)*Y(N)*state.rho) + - (screened_rates(k_n_Ti51_to_He4_Ca48_reaclib)*Y(Ti51)*Y(N)*state.rho + -screened_rates(k_He4_Ca48_to_n_Ti51_reaclib)*Y(Ca48)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Ti51_to_n_Cr54_reaclib)*Y(He4)*Y(Ti51)*state.rho + screened_rates(k_n_Cr54_to_He4_Ti51_reaclib)*Y(Cr54)*Y(N)*state.rho) + - (screened_rates(k_n_V46_to_He4_Sc43_reaclib)*Y(V46)*Y(N)*state.rho + -screened_rates(k_He4_Sc43_to_n_V46_reaclib)*Y(He4)*Y(Sc43)*state.rho) + - (-screened_rates(k_He4_V46_to_p_Cr49_reaclib)*Y(He4)*Y(V46)*state.rho + screened_rates(k_p_Cr49_to_He4_V46_reaclib)*Y(Cr49)*Y(H1)*state.rho) + - (screened_rates(k_n_V47_to_He4_Sc44_reaclib)*Y(V47)*Y(N)*state.rho + -screened_rates(k_He4_Sc44_to_n_V47_reaclib)*Y(He4)*Y(Sc44)*state.rho) + - (screened_rates(k_p_V47_to_He4_Ti44_reaclib)*Y(V47)*Y(H1)*state.rho + -screened_rates(k_He4_Ti44_to_p_V47_reaclib)*Y(He4)*Y(Ti44)*state.rho) + - (-screened_rates(k_He4_V47_to_p_Cr50_reaclib)*Y(He4)*Y(V47)*state.rho + screened_rates(k_p_Cr50_to_He4_V47_reaclib)*Y(Cr50)*Y(H1)*state.rho) + - (screened_rates(k_n_V48_to_He4_Sc45_reaclib)*Y(V48)*Y(N)*state.rho + -screened_rates(k_He4_Sc45_to_n_V48_reaclib)*Y(He4)*Y(Sc45)*state.rho) + - (-screened_rates(k_He4_V48_to_p_Cr51_reaclib)*Y(He4)*Y(V48)*state.rho + screened_rates(k_p_Cr51_to_He4_V48_reaclib)*Y(Cr51)*Y(H1)*state.rho) + - (screened_rates(k_p_V49_to_He4_Ti46_reaclib)*Y(V49)*Y(H1)*state.rho + -screened_rates(k_He4_Ti46_to_p_V49_reaclib)*Y(He4)*Y(Ti46)*state.rho) + - (-screened_rates(k_He4_V49_to_p_Cr52_reaclib)*Y(He4)*Y(V49)*state.rho + screened_rates(k_p_Cr52_to_He4_V49_reaclib)*Y(Cr52)*Y(H1)*state.rho) + - (screened_rates(k_n_V50_to_He4_Sc47_reaclib)*Y(V50)*Y(N)*state.rho + -screened_rates(k_He4_Sc47_to_n_V50_reaclib)*Y(He4)*Y(Sc47)*state.rho) + - (screened_rates(k_p_V50_to_He4_Ti47_reaclib)*Y(V50)*Y(H1)*state.rho + -screened_rates(k_He4_Ti47_to_p_V50_reaclib)*Y(He4)*Y(Ti47)*state.rho) + - (-screened_rates(k_He4_V50_to_p_Cr53_reaclib)*Y(He4)*Y(V50)*state.rho + screened_rates(k_p_Cr53_to_He4_V50_reaclib)*Y(Cr53)*Y(H1)*state.rho) + - (screened_rates(k_p_V51_to_He4_Ti48_reaclib)*Y(V51)*Y(H1)*state.rho + -screened_rates(k_He4_Ti48_to_p_V51_reaclib)*Y(He4)*Y(Ti48)*state.rho) + - (screened_rates(k_n_V52_to_He4_Sc49_reaclib)*Y(V52)*Y(N)*state.rho + -screened_rates(k_He4_Sc49_to_n_V52_reaclib)*Y(He4)*Y(Sc49)*state.rho) + - (screened_rates(k_p_V52_to_He4_Ti49_reaclib)*Y(V52)*Y(H1)*state.rho + -screened_rates(k_He4_Ti49_to_p_V52_reaclib)*Y(He4)*Y(Ti49)*state.rho) + - (-screened_rates(k_He4_V52_to_n_Mn55_reaclib)*Y(He4)*Y(V52)*state.rho + screened_rates(k_n_Mn55_to_He4_V52_reaclib)*Y(Mn55)*Y(N)*state.rho) + - (screened_rates(k_n_Cr48_to_He4_Ti45_reaclib)*Y(Cr48)*Y(N)*state.rho + -screened_rates(k_He4_Ti45_to_n_Cr48_reaclib)*Y(He4)*Y(Ti45)*state.rho) + - (-screened_rates(k_He4_Cr48_to_p_Mn51_reaclib)*Y(Cr48)*Y(He4)*state.rho + screened_rates(k_p_Mn51_to_He4_Cr48_reaclib)*Y(Mn51)*Y(H1)*state.rho) + - (screened_rates(k_n_Cr49_to_He4_Ti46_reaclib)*Y(Cr49)*Y(N)*state.rho + -screened_rates(k_He4_Ti46_to_n_Cr49_reaclib)*Y(He4)*Y(Ti46)*state.rho) + - (-screened_rates(k_He4_Cr49_to_p_Mn52_reaclib)*Y(Cr49)*Y(He4)*state.rho + screened_rates(k_p_Mn52_to_He4_Cr49_reaclib)*Y(Mn52)*Y(H1)*state.rho) + - (screened_rates(k_n_Cr50_to_He4_Ti47_reaclib)*Y(Cr50)*Y(N)*state.rho + -screened_rates(k_He4_Ti47_to_n_Cr50_reaclib)*Y(He4)*Y(Ti47)*state.rho) + - (screened_rates(k_n_Cr51_to_He4_Ti48_reaclib)*Y(Cr51)*Y(N)*state.rho + -screened_rates(k_He4_Ti48_to_n_Cr51_reaclib)*Y(He4)*Y(Ti48)*state.rho) + - (screened_rates(k_n_Cr53_to_He4_Ti50_reaclib)*Y(Cr53)*Y(N)*state.rho + -screened_rates(k_He4_Ti50_to_n_Cr53_reaclib)*Y(He4)*Y(Ti50)*state.rho) + - (screened_rates(k_p_Cr54_to_He4_V51_reaclib)*Y(Cr54)*Y(H1)*state.rho + -screened_rates(k_He4_V51_to_p_Cr54_reaclib)*Y(He4)*Y(V51)*state.rho) + - (screened_rates(k_n_Mn50_to_He4_V47_reaclib)*Y(Mn50)*Y(N)*state.rho + -screened_rates(k_He4_V47_to_n_Mn50_reaclib)*Y(He4)*Y(V47)*state.rho) + - (-screened_rates(k_He4_Mn50_to_p_Fe53_reaclib)*Y(He4)*Y(Mn50)*state.rho + screened_rates(k_p_Fe53_to_He4_Mn50_reaclib)*Y(Fe53)*Y(H1)*state.rho) + - (screened_rates(k_n_Mn51_to_He4_V48_reaclib)*Y(Mn51)*Y(N)*state.rho + -screened_rates(k_He4_V48_to_n_Mn51_reaclib)*Y(He4)*Y(V48)*state.rho) + - (-screened_rates(k_He4_Mn51_to_p_Fe54_reaclib)*Y(He4)*Y(Mn51)*state.rho + screened_rates(k_p_Fe54_to_He4_Mn51_reaclib)*Y(Fe54)*Y(H1)*state.rho) + - (screened_rates(k_n_Mn52_to_He4_V49_reaclib)*Y(Mn52)*Y(N)*state.rho + -screened_rates(k_He4_V49_to_n_Mn52_reaclib)*Y(He4)*Y(V49)*state.rho) + - (-screened_rates(k_He4_Mn52_to_p_Fe55_reaclib)*Y(He4)*Y(Mn52)*state.rho + screened_rates(k_p_Fe55_to_He4_Mn52_reaclib)*Y(Fe55)*Y(H1)*state.rho) + - (screened_rates(k_n_Mn53_to_He4_V50_reaclib)*Y(Mn53)*Y(N)*state.rho + -screened_rates(k_He4_V50_to_n_Mn53_reaclib)*Y(He4)*Y(V50)*state.rho) + - (screened_rates(k_p_Mn53_to_He4_Cr50_reaclib)*Y(Mn53)*Y(H1)*state.rho + -screened_rates(k_He4_Cr50_to_p_Mn53_reaclib)*Y(Cr50)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Mn53_to_p_Fe56_reaclib)*Y(He4)*Y(Mn53)*state.rho + screened_rates(k_p_Fe56_to_He4_Mn53_reaclib)*Y(Fe56)*Y(H1)*state.rho) + - (screened_rates(k_n_Mn54_to_He4_V51_reaclib)*Y(Mn54)*Y(N)*state.rho + -screened_rates(k_He4_V51_to_n_Mn54_reaclib)*Y(He4)*Y(V51)*state.rho) + - (screened_rates(k_p_Mn54_to_He4_Cr51_reaclib)*Y(Mn54)*Y(H1)*state.rho + -screened_rates(k_He4_Cr51_to_p_Mn54_reaclib)*Y(Cr51)*Y(He4)*state.rho) + - (screened_rates(k_p_Mn55_to_He4_Cr52_reaclib)*Y(Mn55)*Y(H1)*state.rho + -screened_rates(k_He4_Cr52_to_p_Mn55_reaclib)*Y(Cr52)*Y(He4)*state.rho) + - (screened_rates(k_n_Fe52_to_He4_Cr49_reaclib)*Y(Fe52)*Y(N)*state.rho + -screened_rates(k_He4_Cr49_to_n_Fe52_reaclib)*Y(Cr49)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Fe52_to_p_Co55_reaclib)*Y(Fe52)*Y(He4)*state.rho + screened_rates(k_p_Co55_to_He4_Fe52_reaclib)*Y(Co55)*Y(H1)*state.rho) + - (screened_rates(k_n_Fe53_to_He4_Cr50_reaclib)*Y(Fe53)*Y(N)*state.rho + -screened_rates(k_He4_Cr50_to_n_Fe53_reaclib)*Y(Cr50)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Fe53_to_p_Co56_reaclib)*Y(Fe53)*Y(He4)*state.rho + screened_rates(k_p_Co56_to_He4_Fe53_reaclib)*Y(Co56)*Y(H1)*state.rho) + - (screened_rates(k_n_Fe54_to_He4_Cr51_reaclib)*Y(Fe54)*Y(N)*state.rho + -screened_rates(k_He4_Cr51_to_n_Fe54_reaclib)*Y(Cr51)*Y(He4)*state.rho) + - (screened_rates(k_n_Fe55_to_He4_Cr52_reaclib)*Y(Fe55)*Y(N)*state.rho + -screened_rates(k_He4_Cr52_to_n_Fe55_reaclib)*Y(Cr52)*Y(He4)*state.rho) + - (screened_rates(k_n_Fe56_to_He4_Cr53_reaclib)*Y(Fe56)*Y(N)*state.rho + -screened_rates(k_He4_Cr53_to_n_Fe56_reaclib)*Y(Cr53)*Y(He4)*state.rho) + - (screened_rates(k_n_Fe57_to_He4_Cr54_reaclib)*Y(Fe57)*Y(N)*state.rho + -screened_rates(k_He4_Cr54_to_n_Fe57_reaclib)*Y(Cr54)*Y(He4)*state.rho) + - (screened_rates(k_p_Fe57_to_He4_Mn54_reaclib)*Y(Fe57)*Y(H1)*state.rho + -screened_rates(k_He4_Mn54_to_p_Fe57_reaclib)*Y(He4)*Y(Mn54)*state.rho) + - (screened_rates(k_p_Fe58_to_He4_Mn55_reaclib)*Y(Fe58)*Y(H1)*state.rho + -screened_rates(k_He4_Mn55_to_p_Fe58_reaclib)*Y(He4)*Y(Mn55)*state.rho) + - (screened_rates(k_n_Co53_to_He4_Mn50_reaclib)*Y(Co53)*Y(N)*state.rho + -screened_rates(k_He4_Mn50_to_n_Co53_reaclib)*Y(He4)*Y(Mn50)*state.rho) + - (-screened_rates(k_He4_Co53_to_p_Ni56_reaclib)*Y(Co53)*Y(He4)*state.rho + screened_rates(k_p_Ni56_to_He4_Co53_reaclib)*Y(Ni56)*Y(H1)*state.rho) + - (screened_rates(k_n_Co54_to_He4_Mn51_reaclib)*Y(Co54)*Y(N)*state.rho + -screened_rates(k_He4_Mn51_to_n_Co54_reaclib)*Y(He4)*Y(Mn51)*state.rho) + - (-screened_rates(k_He4_Co54_to_p_Ni57_reaclib)*Y(Co54)*Y(He4)*state.rho + screened_rates(k_p_Ni57_to_He4_Co54_reaclib)*Y(Ni57)*Y(H1)*state.rho) + - (screened_rates(k_n_Co55_to_He4_Mn52_reaclib)*Y(Co55)*Y(N)*state.rho + -screened_rates(k_He4_Mn52_to_n_Co55_reaclib)*Y(He4)*Y(Mn52)*state.rho) + - (-screened_rates(k_He4_Co55_to_p_Ni58_reaclib)*Y(Co55)*Y(He4)*state.rho + screened_rates(k_p_Ni58_to_He4_Co55_reaclib)*Y(Ni58)*Y(H1)*state.rho) + - (screened_rates(k_n_Co56_to_He4_Mn53_reaclib)*Y(Co56)*Y(N)*state.rho + -screened_rates(k_He4_Mn53_to_n_Co56_reaclib)*Y(He4)*Y(Mn53)*state.rho) + - (-screened_rates(k_He4_Co56_to_p_Ni59_reaclib)*Y(Co56)*Y(He4)*state.rho + screened_rates(k_p_Ni59_to_He4_Co56_reaclib)*Y(Ni59)*Y(H1)*state.rho) + - (screened_rates(k_n_Co57_to_He4_Mn54_reaclib)*Y(Co57)*Y(N)*state.rho + -screened_rates(k_He4_Mn54_to_n_Co57_reaclib)*Y(He4)*Y(Mn54)*state.rho) + - (screened_rates(k_p_Co57_to_He4_Fe54_reaclib)*Y(Co57)*Y(H1)*state.rho + -screened_rates(k_He4_Fe54_to_p_Co57_reaclib)*Y(Fe54)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Co57_to_p_Ni60_reaclib)*Y(Co57)*Y(He4)*state.rho + screened_rates(k_p_Ni60_to_He4_Co57_reaclib)*Y(Ni60)*Y(H1)*state.rho) + - (screened_rates(k_n_Co58_to_He4_Mn55_reaclib)*Y(Co58)*Y(N)*state.rho + -screened_rates(k_He4_Mn55_to_n_Co58_reaclib)*Y(He4)*Y(Mn55)*state.rho) + - (screened_rates(k_p_Co58_to_He4_Fe55_reaclib)*Y(Co58)*Y(H1)*state.rho + -screened_rates(k_He4_Fe55_to_p_Co58_reaclib)*Y(Fe55)*Y(He4)*state.rho) + - (screened_rates(k_p_Co59_to_He4_Fe56_reaclib)*Y(Co59)*Y(H1)*state.rho + -screened_rates(k_He4_Fe56_to_p_Co59_reaclib)*Y(Fe56)*Y(He4)*state.rho) + - (screened_rates(k_n_Ni56_to_He4_Fe53_reaclib)*Y(Ni56)*Y(N)*state.rho + -screened_rates(k_He4_Fe53_to_n_Ni56_reaclib)*Y(Fe53)*Y(He4)*state.rho) + - (screened_rates(k_n_Ni57_to_He4_Fe54_reaclib)*Y(Ni57)*Y(N)*state.rho + -screened_rates(k_He4_Fe54_to_n_Ni57_reaclib)*Y(Fe54)*Y(He4)*state.rho) + - (screened_rates(k_n_Ni58_to_He4_Fe55_reaclib)*Y(Ni58)*Y(N)*state.rho + -screened_rates(k_He4_Fe55_to_n_Ni58_reaclib)*Y(Fe55)*Y(He4)*state.rho) + - (screened_rates(k_n_Ni59_to_He4_Fe56_reaclib)*Y(Ni59)*Y(N)*state.rho + -screened_rates(k_He4_Fe56_to_n_Ni59_reaclib)*Y(Fe56)*Y(He4)*state.rho) + - (screened_rates(k_n_Ni60_to_He4_Fe57_reaclib)*Y(Ni60)*Y(N)*state.rho + -screened_rates(k_He4_Fe57_to_n_Ni60_reaclib)*Y(Fe57)*Y(He4)*state.rho) + - (screened_rates(k_n_Ni61_to_He4_Fe58_reaclib)*Y(Ni61)*Y(N)*state.rho + -screened_rates(k_He4_Fe58_to_n_Ni61_reaclib)*Y(Fe58)*Y(He4)*state.rho) + - (screened_rates(k_p_Ni61_to_He4_Co58_reaclib)*Y(Ni61)*Y(H1)*state.rho + -screened_rates(k_He4_Co58_to_p_Ni61_reaclib)*Y(Co58)*Y(He4)*state.rho) + - (screened_rates(k_p_Ni62_to_He4_Co59_reaclib)*Y(Ni62)*Y(H1)*state.rho + -screened_rates(k_He4_Co59_to_p_Ni62_reaclib)*Y(Co59)*Y(He4)*state.rho) + - (screened_rates(k_n_Cu57_to_He4_Co54_reaclib)*Y(Cu57)*Y(N)*state.rho + -screened_rates(k_He4_Co54_to_n_Cu57_reaclib)*Y(Co54)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Cu57_to_p_Zn60_reaclib)*Y(Cu57)*Y(He4)*state.rho + screened_rates(k_p_Zn60_to_He4_Cu57_reaclib)*Y(Zn60)*Y(H1)*state.rho) + - (screened_rates(k_n_Cu58_to_He4_Co55_reaclib)*Y(Cu58)*Y(N)*state.rho + -screened_rates(k_He4_Co55_to_n_Cu58_reaclib)*Y(Co55)*Y(He4)*state.rho) + - (screened_rates(k_n_Cu59_to_He4_Co56_reaclib)*Y(Cu59)*Y(N)*state.rho + -screened_rates(k_He4_Co56_to_n_Cu59_reaclib)*Y(Co56)*Y(He4)*state.rho) + - (screened_rates(k_p_Cu59_to_He4_Ni56_reaclib)*Y(Cu59)*Y(H1)*state.rho + -screened_rates(k_He4_Ni56_to_p_Cu59_reaclib)*Y(He4)*Y(Ni56)*state.rho) + - (screened_rates(k_n_Cu60_to_He4_Co57_reaclib)*Y(Cu60)*Y(N)*state.rho + -screened_rates(k_He4_Co57_to_n_Cu60_reaclib)*Y(Co57)*Y(He4)*state.rho) + - (screened_rates(k_p_Cu60_to_He4_Ni57_reaclib)*Y(Cu60)*Y(H1)*state.rho + -screened_rates(k_He4_Ni57_to_p_Cu60_reaclib)*Y(He4)*Y(Ni57)*state.rho) + - (screened_rates(k_n_Cu61_to_He4_Co58_reaclib)*Y(Cu61)*Y(N)*state.rho + -screened_rates(k_He4_Co58_to_n_Cu61_reaclib)*Y(Co58)*Y(He4)*state.rho) + - (screened_rates(k_p_Cu61_to_He4_Ni58_reaclib)*Y(Cu61)*Y(H1)*state.rho + -screened_rates(k_He4_Ni58_to_p_Cu61_reaclib)*Y(He4)*Y(Ni58)*state.rho) + - (screened_rates(k_n_Cu62_to_He4_Co59_reaclib)*Y(Cu62)*Y(N)*state.rho + -screened_rates(k_He4_Co59_to_n_Cu62_reaclib)*Y(Co59)*Y(He4)*state.rho) + - (screened_rates(k_p_Cu62_to_He4_Ni59_reaclib)*Y(Cu62)*Y(H1)*state.rho + -screened_rates(k_He4_Ni59_to_p_Cu62_reaclib)*Y(He4)*Y(Ni59)*state.rho) + - (screened_rates(k_p_Cu63_to_He4_Ni60_reaclib)*Y(Cu63)*Y(H1)*state.rho + -screened_rates(k_He4_Ni60_to_p_Cu63_reaclib)*Y(He4)*Y(Ni60)*state.rho) + - (screened_rates(k_p_Cu64_to_He4_Ni61_reaclib)*Y(Cu64)*Y(H1)*state.rho + -screened_rates(k_He4_Ni61_to_p_Cu64_reaclib)*Y(He4)*Y(Ni61)*state.rho) + - (screened_rates(k_p_Cu65_to_He4_Ni62_reaclib)*Y(Cu65)*Y(H1)*state.rho + -screened_rates(k_He4_Ni62_to_p_Cu65_reaclib)*Y(He4)*Y(Ni62)*state.rho) + - (screened_rates(k_n_Zn59_to_He4_Ni56_reaclib)*Y(Zn59)*Y(N)*state.rho + -screened_rates(k_He4_Ni56_to_n_Zn59_reaclib)*Y(He4)*Y(Ni56)*state.rho) + - (screened_rates(k_n_Zn60_to_He4_Ni57_reaclib)*Y(Zn60)*Y(N)*state.rho + -screened_rates(k_He4_Ni57_to_n_Zn60_reaclib)*Y(He4)*Y(Ni57)*state.rho) + - (screened_rates(k_n_Zn61_to_He4_Ni58_reaclib)*Y(Zn61)*Y(N)*state.rho + -screened_rates(k_He4_Ni58_to_n_Zn61_reaclib)*Y(He4)*Y(Ni58)*state.rho) + - (screened_rates(k_p_Zn61_to_He4_Cu58_reaclib)*Y(Zn61)*Y(H1)*state.rho + -screened_rates(k_He4_Cu58_to_p_Zn61_reaclib)*Y(Cu58)*Y(He4)*state.rho) + - (screened_rates(k_n_Zn62_to_He4_Ni59_reaclib)*Y(Zn62)*Y(N)*state.rho + -screened_rates(k_He4_Ni59_to_n_Zn62_reaclib)*Y(He4)*Y(Ni59)*state.rho) + - (screened_rates(k_p_Zn62_to_He4_Cu59_reaclib)*Y(Zn62)*Y(H1)*state.rho + -screened_rates(k_He4_Cu59_to_p_Zn62_reaclib)*Y(Cu59)*Y(He4)*state.rho) + - (screened_rates(k_n_Zn63_to_He4_Ni60_reaclib)*Y(Zn63)*Y(N)*state.rho + -screened_rates(k_He4_Ni60_to_n_Zn63_reaclib)*Y(He4)*Y(Ni60)*state.rho) + - (screened_rates(k_p_Zn63_to_He4_Cu60_reaclib)*Y(Zn63)*Y(H1)*state.rho + -screened_rates(k_He4_Cu60_to_p_Zn63_reaclib)*Y(Cu60)*Y(He4)*state.rho) + - (screened_rates(k_n_Zn64_to_He4_Ni61_reaclib)*Y(Zn64)*Y(N)*state.rho + -screened_rates(k_He4_Ni61_to_n_Zn64_reaclib)*Y(He4)*Y(Ni61)*state.rho) + - (screened_rates(k_p_Zn64_to_He4_Cu61_reaclib)*Y(Zn64)*Y(H1)*state.rho + -screened_rates(k_He4_Cu61_to_p_Zn64_reaclib)*Y(Cu61)*Y(He4)*state.rho) + - (screened_rates(k_n_Zn65_to_He4_Ni62_reaclib)*Y(Zn65)*Y(N)*state.rho + -screened_rates(k_He4_Ni62_to_n_Zn65_reaclib)*Y(He4)*Y(Ni62)*state.rho) + - (screened_rates(k_p_Zn65_to_He4_Cu62_reaclib)*Y(Zn65)*Y(H1)*state.rho + -screened_rates(k_He4_Cu62_to_p_Zn65_reaclib)*Y(Cu62)*Y(He4)*state.rho) + - (screened_rates(k_n_Zn66_to_He4_Ni63_reaclib)*Y(Zn66)*Y(N)*state.rho + -screened_rates(k_He4_Ni63_to_n_Zn66_reaclib)*Y(He4)*Y(Ni63)*state.rho) + - (screened_rates(k_p_Zn66_to_He4_Cu63_reaclib)*Y(Zn66)*Y(H1)*state.rho + -screened_rates(k_He4_Cu63_to_p_Zn66_reaclib)*Y(Cu63)*Y(He4)*state.rho) + - (screened_rates(k_n_Ga62_to_He4_Cu59_reaclib)*Y(Ga62)*Y(N)*state.rho + -screened_rates(k_He4_Cu59_to_n_Ga62_reaclib)*Y(Cu59)*Y(He4)*state.rho) + - (screened_rates(k_p_Ga62_to_He4_Zn59_reaclib)*Y(Ga62)*Y(H1)*state.rho + -screened_rates(k_He4_Zn59_to_p_Ga62_reaclib)*Y(He4)*Y(Zn59)*state.rho) + - (screened_rates(k_n_Ga63_to_He4_Cu60_reaclib)*Y(Ga63)*Y(N)*state.rho + -screened_rates(k_He4_Cu60_to_n_Ga63_reaclib)*Y(Cu60)*Y(He4)*state.rho) + - (screened_rates(k_p_Ga63_to_He4_Zn60_reaclib)*Y(Ga63)*Y(H1)*state.rho + -screened_rates(k_He4_Zn60_to_p_Ga63_reaclib)*Y(He4)*Y(Zn60)*state.rho) + - (screened_rates(k_n_Ga64_to_He4_Cu61_reaclib)*Y(Ga64)*Y(N)*state.rho + -screened_rates(k_He4_Cu61_to_n_Ga64_reaclib)*Y(Cu61)*Y(He4)*state.rho) + - (screened_rates(k_p_Ga64_to_He4_Zn61_reaclib)*Y(Ga64)*Y(H1)*state.rho + -screened_rates(k_He4_Zn61_to_p_Ga64_reaclib)*Y(He4)*Y(Zn61)*state.rho) + - (screened_rates(k_n_Ge63_to_He4_Zn60_reaclib)*Y(Ge63)*Y(N)*state.rho + -screened_rates(k_He4_Zn60_to_n_Ge63_reaclib)*Y(He4)*Y(Zn60)*state.rho) + - (screened_rates(k_n_Ge64_to_He4_Zn61_reaclib)*Y(Ge64)*Y(N)*state.rho + -screened_rates(k_He4_Zn61_to_n_Ge64_reaclib)*Y(He4)*Y(Zn61)*state.rho) + - (0.5*screened_rates(k_He3_He3_to_p_p_He4_reaclib)*amrex::Math::powi<2>(Y(He3))*state.rho + -0.5*screened_rates(k_p_p_He4_to_He3_He3_reaclib)*Y(He4)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho)) + - (2.0*screened_rates(k_d_Li7_to_n_He4_He4_reaclib)*Y(Li7)*Y(H2)*state.rho + -screened_rates(k_n_He4_He4_to_d_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<2>(state.rho)) + - (2.0*screened_rates(k_d_Be7_to_p_He4_He4_reaclib)*Y(Be7)*Y(H2)*state.rho + -screened_rates(k_p_He4_He4_to_d_Be7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<2>(state.rho)) + - (2.0*screened_rates(k_p_Be9_to_d_He4_He4_reaclib)*Y(Be9)*Y(H1)*state.rho + -screened_rates(k_d_He4_He4_to_p_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(H2)*amrex::Math::powi<2>(state.rho)) + - (2.0*screened_rates(k_n_B8_to_p_He4_He4_reaclib)*Y(B8)*Y(N)*state.rho + -screened_rates(k_p_He4_He4_to_n_B8_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<2>(state.rho)) + - (3.0*screened_rates(k_p_B11_to_He4_He4_He4_reaclib)*Y(B11)*Y(H1)*state.rho + -0.5*screened_rates(k_He4_He4_He4_to_p_B11_reaclib)*amrex::Math::powi<3>(Y(He4))*amrex::Math::powi<2>(state.rho)) + - (2.0*screened_rates(k_He3_Li7_to_n_p_He4_He4_reaclib)*Y(He3)*Y(Li7)*state.rho + -screened_rates(k_n_p_He4_He4_to_He3_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho)) + - (2.0*screened_rates(k_He3_Be7_to_p_p_He4_He4_reaclib)*Y(Be7)*Y(He3)*state.rho + -0.5*screened_rates(k_p_p_He4_He4_to_He3_Be7_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<3>(state.rho)) + - (-screened_rates(k_n_p_He4_to_Li6_reaclib)*Y(He4)*Y(N)*Y(H1)*amrex::Math::powi<2>(state.rho) + screened_rates(k_Li6_to_n_p_He4_reaclib)*Y(Li6)) + - (-screened_rates(k_n_He4_He4_to_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<2>(state.rho) + 2.0*screened_rates(k_Be9_to_n_He4_He4_reaclib)*Y(Be9)) + - (-0.5*screened_rates(k_He4_He4_He4_to_C12_reaclib)*amrex::Math::powi<3>(Y(He4))*amrex::Math::powi<2>(state.rho) + 3.0*screened_rates(k_C12_to_He4_He4_He4_reaclib)*Y(C12)) + - (-screened_rates(k_n_p_He4_He4_to_p_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho) + 2.0*screened_rates(k_p_Be9_to_n_p_He4_He4_reaclib)*Y(Be9)*Y(H1)*state.rho); + 2.0*screened_rates(k_B8_to_He4_He4_beta_pos_reaclib)*Y(B8) + + (0.5*screened_rates(k_d_d_to_He4_reaclib)*amrex::Math::powi<2>(Y(H2))*state.rho + -screened_rates(k_He4_to_d_d_derived)*Y(He4)) + + (-screened_rates(k_d_He4_to_Li6_reaclib)*Y(He4)*Y(H2)*state.rho + screened_rates(k_Li6_to_He4_d_derived)*Y(Li6)) + + (screened_rates(k_He3_n_to_He4_reaclib)*Y(He3)*Y(N)*state.rho + -screened_rates(k_He4_to_n_He3_derived)*Y(He4)) + + screened_rates(k_He3_p_to_He4_beta_pos_reaclib)*Y(He3)*Y(H1)*state.rho + + (-screened_rates(k_He3_He4_to_Be7_reaclib)*Y(He3)*Y(He4)*state.rho + screened_rates(k_Be7_to_He4_He3_derived)*Y(Be7)) + + (-screened_rates(k_Li6_He4_to_B10_reaclib)*Y(He4)*Y(Li6)*state.rho + screened_rates(k_B10_to_He4_Li6_derived)*Y(B10)) + + (-screened_rates(k_Li7_He4_to_B11_reaclib)*Y(He4)*Y(Li7)*state.rho + screened_rates(k_B11_to_He4_Li7_derived)*Y(B11)) + + (-screened_rates(k_C12_He4_to_O16_reaclib)*Y(C12)*Y(He4)*state.rho + screened_rates(k_O16_to_He4_C12_derived)*Y(O16)) + + (-screened_rates(k_C14_He4_to_O18_reaclib)*Y(C14)*Y(He4)*state.rho + screened_rates(k_O18_to_He4_C14_derived)*Y(O18)) + + (-screened_rates(k_N14_He4_to_F18_reaclib)*Y(He4)*Y(N14)*state.rho + screened_rates(k_F18_to_He4_N14_derived)*Y(F18)) + + (-screened_rates(k_N15_He4_to_F19_reaclib)*Y(He4)*Y(N15)*state.rho + screened_rates(k_F19_to_He4_N15_derived)*Y(F19)) + + (-screened_rates(k_O14_He4_to_Ne18_reaclib)*Y(He4)*Y(O14)*state.rho + screened_rates(k_Ne18_to_He4_O14_derived)*Y(Ne18)) + + (-screened_rates(k_O15_He4_to_Ne19_reaclib)*Y(He4)*Y(O15)*state.rho + screened_rates(k_Ne19_to_He4_O15_derived)*Y(Ne19)) + + (-screened_rates(k_O16_He4_to_Ne20_reaclib)*Y(He4)*Y(O16)*state.rho + screened_rates(k_Ne20_to_He4_O16_derived)*Y(Ne20)) + + (-screened_rates(k_O17_He4_to_Ne21_reaclib)*Y(He4)*Y(O17)*state.rho + screened_rates(k_Ne21_to_He4_O17_derived)*Y(Ne21)) + + (-screened_rates(k_O18_He4_to_Ne22_reaclib)*Y(He4)*Y(O18)*state.rho + screened_rates(k_Ne22_to_He4_O18_derived)*Y(Ne22)) + + (-screened_rates(k_F17_He4_to_Na21_reaclib)*Y(F17)*Y(He4)*state.rho + screened_rates(k_Na21_to_He4_F17_derived)*Y(Na21)) + + (-screened_rates(k_F18_He4_to_Na22_reaclib)*Y(F18)*Y(He4)*state.rho + screened_rates(k_Na22_to_He4_F18_derived)*Y(Na22)) + + (-screened_rates(k_F19_He4_to_Na23_reaclib)*Y(F19)*Y(He4)*state.rho + screened_rates(k_Na23_to_He4_F19_derived)*Y(Na23)) + + (-screened_rates(k_Ne19_He4_to_Mg23_reaclib)*Y(He4)*Y(Ne19)*state.rho + screened_rates(k_Mg23_to_He4_Ne19_derived)*Y(Mg23)) + + (-screened_rates(k_Ne20_He4_to_Mg24_reaclib)*Y(He4)*Y(Ne20)*state.rho + screened_rates(k_Mg24_to_He4_Ne20_derived)*Y(Mg24)) + + (-screened_rates(k_Ne21_He4_to_Mg25_reaclib)*Y(He4)*Y(Ne21)*state.rho + screened_rates(k_Mg25_to_He4_Ne21_derived)*Y(Mg25)) + + (-screened_rates(k_Ne22_He4_to_Mg26_reaclib)*Y(He4)*Y(Ne22)*state.rho + screened_rates(k_Mg26_to_He4_Ne22_derived)*Y(Mg26)) + + (-screened_rates(k_Na21_He4_to_Al25_reaclib)*Y(He4)*Y(Na21)*state.rho + screened_rates(k_Al25_to_He4_Na21_derived)*Y(Al25)) + + (-screened_rates(k_Na22_He4_to_Al26_reaclib)*Y(He4)*Y(Na22)*state.rho + screened_rates(k_Al26_to_He4_Na22_derived)*Y(Al26)) + + (-screened_rates(k_Na23_He4_to_Al27_reaclib)*Y(He4)*Y(Na23)*state.rho + screened_rates(k_Al27_to_He4_Na23_derived)*Y(Al27)) + + (-screened_rates(k_Mg24_He4_to_Si28_reaclib)*Y(He4)*Y(Mg24)*state.rho + screened_rates(k_Si28_to_He4_Mg24_derived)*Y(Si28)) + + (-screened_rates(k_Mg25_He4_to_Si29_reaclib)*Y(He4)*Y(Mg25)*state.rho + screened_rates(k_Si29_to_He4_Mg25_derived)*Y(Si29)) + + (-screened_rates(k_Mg26_He4_to_Si30_reaclib)*Y(He4)*Y(Mg26)*state.rho + screened_rates(k_Si30_to_He4_Mg26_derived)*Y(Si30)) + + (-screened_rates(k_Al25_He4_to_P29_reaclib)*Y(Al25)*Y(He4)*state.rho + screened_rates(k_P29_to_He4_Al25_derived)*Y(P29)) + + (-screened_rates(k_Al26_He4_to_P30_reaclib)*Y(Al26)*Y(He4)*state.rho + screened_rates(k_P30_to_He4_Al26_derived)*Y(P30)) + + (-screened_rates(k_Al27_He4_to_P31_reaclib)*Y(Al27)*Y(He4)*state.rho + screened_rates(k_P31_to_He4_Al27_derived)*Y(P31)) + + (-screened_rates(k_Si28_He4_to_S32_reaclib)*Y(He4)*Y(Si28)*state.rho + screened_rates(k_S32_to_He4_Si28_derived)*Y(S32)) + + (-screened_rates(k_Si29_He4_to_S33_reaclib)*Y(He4)*Y(Si29)*state.rho + screened_rates(k_S33_to_He4_Si29_derived)*Y(S33)) + + (-screened_rates(k_Si30_He4_to_S34_reaclib)*Y(He4)*Y(Si30)*state.rho + screened_rates(k_S34_to_He4_Si30_derived)*Y(S34)) + + (-screened_rates(k_Si31_He4_to_S35_reaclib)*Y(He4)*Y(Si31)*state.rho + screened_rates(k_S35_to_He4_Si31_derived)*Y(S35)) + + (-screened_rates(k_Si32_He4_to_S36_reaclib)*Y(He4)*Y(Si32)*state.rho + screened_rates(k_S36_to_He4_Si32_derived)*Y(S36)) + + (-screened_rates(k_P29_He4_to_Cl33_reaclib)*Y(He4)*Y(P29)*state.rho + screened_rates(k_Cl33_to_He4_P29_derived)*Y(Cl33)) + + (-screened_rates(k_P30_He4_to_Cl34_reaclib)*Y(He4)*Y(P30)*state.rho + screened_rates(k_Cl34_to_He4_P30_derived)*Y(Cl34)) + + (-screened_rates(k_P31_He4_to_Cl35_reaclib)*Y(He4)*Y(P31)*state.rho + screened_rates(k_Cl35_to_He4_P31_derived)*Y(Cl35)) + + (-screened_rates(k_P32_He4_to_Cl36_reaclib)*Y(He4)*Y(P32)*state.rho + screened_rates(k_Cl36_to_He4_P32_derived)*Y(Cl36)) + + (-screened_rates(k_P33_He4_to_Cl37_reaclib)*Y(He4)*Y(P33)*state.rho + screened_rates(k_Cl37_to_He4_P33_derived)*Y(Cl37)) + + (-screened_rates(k_S32_He4_to_Ar36_reaclib)*Y(He4)*Y(S32)*state.rho + screened_rates(k_Ar36_to_He4_S32_derived)*Y(Ar36)) + + (-screened_rates(k_S33_He4_to_Ar37_reaclib)*Y(He4)*Y(S33)*state.rho + screened_rates(k_Ar37_to_He4_S33_derived)*Y(Ar37)) + + (-screened_rates(k_S34_He4_to_Ar38_reaclib)*Y(He4)*Y(S34)*state.rho + screened_rates(k_Ar38_to_He4_S34_derived)*Y(Ar38)) + + (-screened_rates(k_S35_He4_to_Ar39_reaclib)*Y(He4)*Y(S35)*state.rho + screened_rates(k_Ar39_to_He4_S35_derived)*Y(Ar39)) + + (-screened_rates(k_S36_He4_to_Ar40_reaclib)*Y(He4)*Y(S36)*state.rho + screened_rates(k_Ar40_to_He4_S36_derived)*Y(Ar40)) + + (-screened_rates(k_Cl33_He4_to_K37_reaclib)*Y(Cl33)*Y(He4)*state.rho + screened_rates(k_K37_to_He4_Cl33_derived)*Y(K37)) + + (-screened_rates(k_Cl34_He4_to_K38_reaclib)*Y(Cl34)*Y(He4)*state.rho + screened_rates(k_K38_to_He4_Cl34_derived)*Y(K38)) + + (-screened_rates(k_Cl35_He4_to_K39_reaclib)*Y(Cl35)*Y(He4)*state.rho + screened_rates(k_K39_to_He4_Cl35_derived)*Y(K39)) + + (-screened_rates(k_Cl36_He4_to_K40_reaclib)*Y(Cl36)*Y(He4)*state.rho + screened_rates(k_K40_to_He4_Cl36_derived)*Y(K40)) + + (-screened_rates(k_Cl37_He4_to_K41_reaclib)*Y(Cl37)*Y(He4)*state.rho + screened_rates(k_K41_to_He4_Cl37_derived)*Y(K41)) + + (-screened_rates(k_Ar36_He4_to_Ca40_reaclib)*Y(Ar36)*Y(He4)*state.rho + screened_rates(k_Ca40_to_He4_Ar36_derived)*Y(Ca40)) + + (-screened_rates(k_Ar37_He4_to_Ca41_reaclib)*Y(Ar37)*Y(He4)*state.rho + screened_rates(k_Ca41_to_He4_Ar37_derived)*Y(Ca41)) + + (-screened_rates(k_Ar38_He4_to_Ca42_reaclib)*Y(Ar38)*Y(He4)*state.rho + screened_rates(k_Ca42_to_He4_Ar38_derived)*Y(Ca42)) + + (-screened_rates(k_Ar39_He4_to_Ca43_reaclib)*Y(Ar39)*Y(He4)*state.rho + screened_rates(k_Ca43_to_He4_Ar39_derived)*Y(Ca43)) + + (-screened_rates(k_Ar40_He4_to_Ca44_reaclib)*Y(Ar40)*Y(He4)*state.rho + screened_rates(k_Ca44_to_He4_Ar40_derived)*Y(Ca44)) + + (-screened_rates(k_K39_He4_to_Sc43_reaclib)*Y(He4)*Y(K39)*state.rho + screened_rates(k_Sc43_to_He4_K39_derived)*Y(Sc43)) + + (-screened_rates(k_K40_He4_to_Sc44_reaclib)*Y(He4)*Y(K40)*state.rho + screened_rates(k_Sc44_to_He4_K40_derived)*Y(Sc44)) + + (-screened_rates(k_K41_He4_to_Sc45_reaclib)*Y(He4)*Y(K41)*state.rho + screened_rates(k_Sc45_to_He4_K41_derived)*Y(Sc45)) + + (-screened_rates(k_Ca40_He4_to_Ti44_reaclib)*Y(Ca40)*Y(He4)*state.rho + screened_rates(k_Ti44_to_He4_Ca40_derived)*Y(Ti44)) + + (-screened_rates(k_Ca41_He4_to_Ti45_reaclib)*Y(Ca41)*Y(He4)*state.rho + screened_rates(k_Ti45_to_He4_Ca41_derived)*Y(Ti45)) + + (-screened_rates(k_Ca42_He4_to_Ti46_reaclib)*Y(Ca42)*Y(He4)*state.rho + screened_rates(k_Ti46_to_He4_Ca42_derived)*Y(Ti46)) + + (-screened_rates(k_Ca43_He4_to_Ti47_reaclib)*Y(Ca43)*Y(He4)*state.rho + screened_rates(k_Ti47_to_He4_Ca43_derived)*Y(Ti47)) + + (-screened_rates(k_Ca44_He4_to_Ti48_reaclib)*Y(Ca44)*Y(He4)*state.rho + screened_rates(k_Ti48_to_He4_Ca44_derived)*Y(Ti48)) + + (-screened_rates(k_Ca45_He4_to_Ti49_reaclib)*Y(Ca45)*Y(He4)*state.rho + screened_rates(k_Ti49_to_He4_Ca45_derived)*Y(Ti49)) + + (-screened_rates(k_Ca46_He4_to_Ti50_reaclib)*Y(Ca46)*Y(He4)*state.rho + screened_rates(k_Ti50_to_He4_Ca46_derived)*Y(Ti50)) + + (-screened_rates(k_Ca47_He4_to_Ti51_reaclib)*Y(Ca47)*Y(He4)*state.rho + screened_rates(k_Ti51_to_He4_Ca47_derived)*Y(Ti51)) + + (-screened_rates(k_Sc43_He4_to_V47_reaclib)*Y(He4)*Y(Sc43)*state.rho + screened_rates(k_V47_to_He4_Sc43_derived)*Y(V47)) + + (-screened_rates(k_Sc44_He4_to_V48_reaclib)*Y(He4)*Y(Sc44)*state.rho + screened_rates(k_V48_to_He4_Sc44_derived)*Y(V48)) + + (-screened_rates(k_Sc45_He4_to_V49_reaclib)*Y(He4)*Y(Sc45)*state.rho + screened_rates(k_V49_to_He4_Sc45_derived)*Y(V49)) + + (-screened_rates(k_Sc46_He4_to_V50_reaclib)*Y(He4)*Y(Sc46)*state.rho + screened_rates(k_V50_to_He4_Sc46_derived)*Y(V50)) + + (-screened_rates(k_Sc47_He4_to_V51_reaclib)*Y(He4)*Y(Sc47)*state.rho + screened_rates(k_V51_to_He4_Sc47_derived)*Y(V51)) + + (-screened_rates(k_Sc48_He4_to_V52_reaclib)*Y(He4)*Y(Sc48)*state.rho + screened_rates(k_V52_to_He4_Sc48_derived)*Y(V52)) + + (-screened_rates(k_Ti44_He4_to_Cr48_reaclib)*Y(He4)*Y(Ti44)*state.rho + screened_rates(k_Cr48_to_He4_Ti44_derived)*Y(Cr48)) + + (-screened_rates(k_Ti45_He4_to_Cr49_reaclib)*Y(He4)*Y(Ti45)*state.rho + screened_rates(k_Cr49_to_He4_Ti45_derived)*Y(Cr49)) + + (-screened_rates(k_Ti46_He4_to_Cr50_reaclib)*Y(He4)*Y(Ti46)*state.rho + screened_rates(k_Cr50_to_He4_Ti46_derived)*Y(Cr50)) + + (-screened_rates(k_Ti47_He4_to_Cr51_reaclib)*Y(He4)*Y(Ti47)*state.rho + screened_rates(k_Cr51_to_He4_Ti47_derived)*Y(Cr51)) + + (-screened_rates(k_Ti48_He4_to_Cr52_reaclib)*Y(He4)*Y(Ti48)*state.rho + screened_rates(k_Cr52_to_He4_Ti48_derived)*Y(Cr52)) + + (-screened_rates(k_Ti49_He4_to_Cr53_reaclib)*Y(He4)*Y(Ti49)*state.rho + screened_rates(k_Cr53_to_He4_Ti49_derived)*Y(Cr53)) + + (-screened_rates(k_Ti50_He4_to_Cr54_reaclib)*Y(He4)*Y(Ti50)*state.rho + screened_rates(k_Cr54_to_He4_Ti50_derived)*Y(Cr54)) + + (-screened_rates(k_V46_He4_to_Mn50_reaclib)*Y(He4)*Y(V46)*state.rho + screened_rates(k_Mn50_to_He4_V46_derived)*Y(Mn50)) + + (-screened_rates(k_V47_He4_to_Mn51_reaclib)*Y(He4)*Y(V47)*state.rho + screened_rates(k_Mn51_to_He4_V47_derived)*Y(Mn51)) + + (-screened_rates(k_V48_He4_to_Mn52_reaclib)*Y(He4)*Y(V48)*state.rho + screened_rates(k_Mn52_to_He4_V48_derived)*Y(Mn52)) + + (-screened_rates(k_V49_He4_to_Mn53_reaclib)*Y(He4)*Y(V49)*state.rho + screened_rates(k_Mn53_to_He4_V49_derived)*Y(Mn53)) + + (-screened_rates(k_V50_He4_to_Mn54_reaclib)*Y(He4)*Y(V50)*state.rho + screened_rates(k_Mn54_to_He4_V50_derived)*Y(Mn54)) + + (-screened_rates(k_V51_He4_to_Mn55_reaclib)*Y(He4)*Y(V51)*state.rho + screened_rates(k_Mn55_to_He4_V51_derived)*Y(Mn55)) + + (-screened_rates(k_Cr48_He4_to_Fe52_reaclib)*Y(Cr48)*Y(He4)*state.rho + screened_rates(k_Fe52_to_He4_Cr48_derived)*Y(Fe52)) + + (-screened_rates(k_Cr49_He4_to_Fe53_reaclib)*Y(Cr49)*Y(He4)*state.rho + screened_rates(k_Fe53_to_He4_Cr49_derived)*Y(Fe53)) + + (-screened_rates(k_Cr50_He4_to_Fe54_reaclib)*Y(Cr50)*Y(He4)*state.rho + screened_rates(k_Fe54_to_He4_Cr50_derived)*Y(Fe54)) + + (-screened_rates(k_Cr51_He4_to_Fe55_reaclib)*Y(Cr51)*Y(He4)*state.rho + screened_rates(k_Fe55_to_He4_Cr51_derived)*Y(Fe55)) + + (-screened_rates(k_Cr52_He4_to_Fe56_reaclib)*Y(Cr52)*Y(He4)*state.rho + screened_rates(k_Fe56_to_He4_Cr52_derived)*Y(Fe56)) + + (-screened_rates(k_Cr53_He4_to_Fe57_reaclib)*Y(Cr53)*Y(He4)*state.rho + screened_rates(k_Fe57_to_He4_Cr53_derived)*Y(Fe57)) + + (-screened_rates(k_Cr54_He4_to_Fe58_reaclib)*Y(Cr54)*Y(He4)*state.rho + screened_rates(k_Fe58_to_He4_Cr54_derived)*Y(Fe58)) + + (-screened_rates(k_Mn50_He4_to_Co54_reaclib)*Y(He4)*Y(Mn50)*state.rho + screened_rates(k_Co54_to_He4_Mn50_derived)*Y(Co54)) + + (-screened_rates(k_Mn51_He4_to_Co55_reaclib)*Y(He4)*Y(Mn51)*state.rho + screened_rates(k_Co55_to_He4_Mn51_derived)*Y(Co55)) + + (-screened_rates(k_Mn52_He4_to_Co56_reaclib)*Y(He4)*Y(Mn52)*state.rho + screened_rates(k_Co56_to_He4_Mn52_derived)*Y(Co56)) + + (-screened_rates(k_Mn53_He4_to_Co57_reaclib)*Y(He4)*Y(Mn53)*state.rho + screened_rates(k_Co57_to_He4_Mn53_derived)*Y(Co57)) + + (-screened_rates(k_Mn54_He4_to_Co58_reaclib)*Y(He4)*Y(Mn54)*state.rho + screened_rates(k_Co58_to_He4_Mn54_derived)*Y(Co58)) + + (-screened_rates(k_Mn55_He4_to_Co59_reaclib)*Y(He4)*Y(Mn55)*state.rho + screened_rates(k_Co59_to_He4_Mn55_derived)*Y(Co59)) + + (-screened_rates(k_Fe52_He4_to_Ni56_reaclib)*Y(Fe52)*Y(He4)*state.rho + screened_rates(k_Ni56_to_He4_Fe52_derived)*Y(Ni56)) + + (-screened_rates(k_Fe53_He4_to_Ni57_reaclib)*Y(Fe53)*Y(He4)*state.rho + screened_rates(k_Ni57_to_He4_Fe53_derived)*Y(Ni57)) + + (-screened_rates(k_Fe54_He4_to_Ni58_reaclib)*Y(Fe54)*Y(He4)*state.rho + screened_rates(k_Ni58_to_He4_Fe54_derived)*Y(Ni58)) + + (-screened_rates(k_Fe55_He4_to_Ni59_reaclib)*Y(Fe55)*Y(He4)*state.rho + screened_rates(k_Ni59_to_He4_Fe55_derived)*Y(Ni59)) + + (-screened_rates(k_Fe56_He4_to_Ni60_reaclib)*Y(Fe56)*Y(He4)*state.rho + screened_rates(k_Ni60_to_He4_Fe56_derived)*Y(Ni60)) + + (-screened_rates(k_Fe57_He4_to_Ni61_reaclib)*Y(Fe57)*Y(He4)*state.rho + screened_rates(k_Ni61_to_He4_Fe57_derived)*Y(Ni61)) + + (-screened_rates(k_Fe58_He4_to_Ni62_reaclib)*Y(Fe58)*Y(He4)*state.rho + screened_rates(k_Ni62_to_He4_Fe58_derived)*Y(Ni62)) + + (-screened_rates(k_Co53_He4_to_Cu57_reaclib)*Y(Co53)*Y(He4)*state.rho + screened_rates(k_Cu57_to_He4_Co53_derived)*Y(Cu57)) + + (-screened_rates(k_Co54_He4_to_Cu58_reaclib)*Y(Co54)*Y(He4)*state.rho + screened_rates(k_Cu58_to_He4_Co54_derived)*Y(Cu58)) + + (-screened_rates(k_Co55_He4_to_Cu59_reaclib)*Y(Co55)*Y(He4)*state.rho + screened_rates(k_Cu59_to_He4_Co55_derived)*Y(Cu59)) + + (-screened_rates(k_Co56_He4_to_Cu60_reaclib)*Y(Co56)*Y(He4)*state.rho + screened_rates(k_Cu60_to_He4_Co56_derived)*Y(Cu60)) + + (-screened_rates(k_Co57_He4_to_Cu61_reaclib)*Y(Co57)*Y(He4)*state.rho + screened_rates(k_Cu61_to_He4_Co57_derived)*Y(Cu61)) + + (-screened_rates(k_Co58_He4_to_Cu62_reaclib)*Y(Co58)*Y(He4)*state.rho + screened_rates(k_Cu62_to_He4_Co58_derived)*Y(Cu62)) + + (-screened_rates(k_Co59_He4_to_Cu63_reaclib)*Y(Co59)*Y(He4)*state.rho + screened_rates(k_Cu63_to_He4_Co59_derived)*Y(Cu63)) + + (-screened_rates(k_Ni56_He4_to_Zn60_reaclib)*Y(He4)*Y(Ni56)*state.rho + screened_rates(k_Zn60_to_He4_Ni56_derived)*Y(Zn60)) + + (-screened_rates(k_Ni57_He4_to_Zn61_reaclib)*Y(He4)*Y(Ni57)*state.rho + screened_rates(k_Zn61_to_He4_Ni57_derived)*Y(Zn61)) + + (-screened_rates(k_Ni58_He4_to_Zn62_reaclib)*Y(He4)*Y(Ni58)*state.rho + screened_rates(k_Zn62_to_He4_Ni58_derived)*Y(Zn62)) + + (-screened_rates(k_Ni59_He4_to_Zn63_reaclib)*Y(He4)*Y(Ni59)*state.rho + screened_rates(k_Zn63_to_He4_Ni59_derived)*Y(Zn63)) + + (-screened_rates(k_Ni60_He4_to_Zn64_reaclib)*Y(He4)*Y(Ni60)*state.rho + screened_rates(k_Zn64_to_He4_Ni60_derived)*Y(Zn64)) + + (-screened_rates(k_Ni61_He4_to_Zn65_reaclib)*Y(He4)*Y(Ni61)*state.rho + screened_rates(k_Zn65_to_He4_Ni61_derived)*Y(Zn65)) + + (-screened_rates(k_Ni62_He4_to_Zn66_reaclib)*Y(He4)*Y(Ni62)*state.rho + screened_rates(k_Zn66_to_He4_Ni62_derived)*Y(Zn66)) + + (-screened_rates(k_Cu58_He4_to_Ga62_reaclib)*Y(Cu58)*Y(He4)*state.rho + screened_rates(k_Ga62_to_He4_Cu58_derived)*Y(Ga62)) + + (-screened_rates(k_Cu59_He4_to_Ga63_reaclib)*Y(Cu59)*Y(He4)*state.rho + screened_rates(k_Ga63_to_He4_Cu59_derived)*Y(Ga63)) + + (-screened_rates(k_Cu60_He4_to_Ga64_reaclib)*Y(Cu60)*Y(He4)*state.rho + screened_rates(k_Ga64_to_He4_Cu60_derived)*Y(Ga64)) + + (-screened_rates(k_Zn59_He4_to_Ge63_reaclib)*Y(He4)*Y(Zn59)*state.rho + screened_rates(k_Ge63_to_He4_Zn59_derived)*Y(Ge63)) + + (-screened_rates(k_Zn60_He4_to_Ge64_reaclib)*Y(He4)*Y(Zn60)*state.rho + screened_rates(k_Ge64_to_He4_Zn60_derived)*Y(Ge64)) + + (screened_rates(k_He3_d_to_p_He4_reaclib)*Y(He3)*Y(H2)*state.rho + -screened_rates(k_He4_p_to_d_He3_derived)*Y(He4)*Y(H1)*state.rho) + + (screened_rates(k_Li6_p_to_He4_He3_reaclib)*Y(Li6)*Y(H1)*state.rho + -screened_rates(k_He3_He4_to_p_Li6_derived)*Y(He3)*Y(He4)*state.rho) + + (2.0*screened_rates(k_Li7_p_to_He4_He4_reaclib)*Y(Li7)*Y(H1)*state.rho + -screened_rates(k_He4_He4_to_p_Li7_derived)*amrex::Math::powi<2>(Y(He4))*state.rho) + + (2.0*screened_rates(k_Be7_n_to_He4_He4_reaclib)*Y(Be7)*Y(N)*state.rho + -screened_rates(k_He4_He4_to_n_Be7_derived)*amrex::Math::powi<2>(Y(He4))*state.rho) + + (screened_rates(k_Be9_p_to_He4_Li6_reaclib)*Y(Be9)*Y(H1)*state.rho + -screened_rates(k_Li6_He4_to_p_Be9_derived)*Y(He4)*Y(Li6)*state.rho) + + (-screened_rates(k_Be9_He4_to_n_C12_reaclib)*Y(Be9)*Y(He4)*state.rho + screened_rates(k_C12_n_to_He4_Be9_derived)*Y(C12)*Y(N)*state.rho) + + (screened_rates(k_B10_n_to_He4_Li7_reaclib)*Y(B10)*Y(N)*state.rho + -screened_rates(k_Li7_He4_to_n_B10_derived)*Y(He4)*Y(Li7)*state.rho) + + (screened_rates(k_B10_p_to_He4_Be7_reaclib)*Y(B10)*Y(H1)*state.rho + -screened_rates(k_Be7_He4_to_p_B10_derived)*Y(Be7)*Y(He4)*state.rho) + + (-screened_rates(k_B10_He4_to_n_N13_reaclib)*Y(B10)*Y(He4)*state.rho + screened_rates(k_N13_n_to_He4_B10_derived)*Y(N13)*Y(N)*state.rho) + + (-screened_rates(k_B10_He4_to_p_C13_reaclib)*Y(B10)*Y(He4)*state.rho + screened_rates(k_C13_p_to_He4_B10_derived)*Y(C13)*Y(H1)*state.rho) + + (-screened_rates(k_B11_He4_to_n_N14_reaclib)*Y(B11)*Y(He4)*state.rho + screened_rates(k_N14_n_to_He4_B11_derived)*Y(N14)*Y(N)*state.rho) + + (-screened_rates(k_B11_He4_to_p_C14_reaclib)*Y(B11)*Y(He4)*state.rho + screened_rates(k_C14_p_to_He4_B11_derived)*Y(C14)*Y(H1)*state.rho) + + (0.5*screened_rates(k_C12_C12_to_He4_Ne20_reaclib)*amrex::Math::powi<2>(Y(C12))*state.rho + -screened_rates(k_Ne20_He4_to_C12_C12_derived)*Y(He4)*Y(Ne20)*state.rho) + + (-screened_rates(k_C13_He4_to_n_O16_reaclib)*Y(C13)*Y(He4)*state.rho + screened_rates(k_O16_n_to_He4_C13_derived)*Y(O16)*Y(N)*state.rho) + + (-screened_rates(k_N13_He4_to_p_O16_reaclib)*Y(He4)*Y(N13)*state.rho + screened_rates(k_O16_p_to_He4_N13_derived)*Y(O16)*Y(H1)*state.rho) + + (screened_rates(k_N15_p_to_He4_C12_reaclib)*Y(N15)*Y(H1)*state.rho + -screened_rates(k_C12_He4_to_p_N15_derived)*Y(C12)*Y(He4)*state.rho) + + (-screened_rates(k_O14_He4_to_p_F17_reaclib)*Y(He4)*Y(O14)*state.rho + screened_rates(k_F17_p_to_He4_O14_derived)*Y(F17)*Y(H1)*state.rho) + + (screened_rates(k_O15_n_to_He4_C12_reaclib)*Y(O15)*Y(N)*state.rho + -screened_rates(k_C12_He4_to_n_O15_derived)*Y(C12)*Y(He4)*state.rho) + + (screened_rates(k_O16_C12_to_He4_Mg24_reaclib)*Y(C12)*Y(O16)*state.rho + -screened_rates(k_Mg24_He4_to_C12_O16_derived)*Y(He4)*Y(Mg24)*state.rho) + + (0.5*screened_rates(k_O16_O16_to_He4_Si28_reaclib)*amrex::Math::powi<2>(Y(O16))*state.rho + -screened_rates(k_Si28_He4_to_O16_O16_derived)*Y(He4)*Y(Si28)*state.rho) + + (screened_rates(k_O17_n_to_He4_C14_reaclib)*Y(O17)*Y(N)*state.rho + -screened_rates(k_C14_He4_to_n_O17_derived)*Y(C14)*Y(He4)*state.rho) + + (screened_rates(k_O17_p_to_He4_N14_reaclib)*Y(O17)*Y(H1)*state.rho + -screened_rates(k_N14_He4_to_p_O17_derived)*Y(He4)*Y(N14)*state.rho) + + (-screened_rates(k_O17_He4_to_n_Ne20_reaclib)*Y(He4)*Y(O17)*state.rho + screened_rates(k_Ne20_n_to_He4_O17_derived)*Y(Ne20)*Y(N)*state.rho) + + (screened_rates(k_O18_p_to_He4_N15_reaclib)*Y(O18)*Y(H1)*state.rho + -screened_rates(k_N15_He4_to_p_O18_derived)*Y(He4)*Y(N15)*state.rho) + + (screened_rates(k_F18_n_to_He4_N15_reaclib)*Y(F18)*Y(N)*state.rho + -screened_rates(k_N15_He4_to_n_F18_derived)*Y(He4)*Y(N15)*state.rho) + + (screened_rates(k_F18_p_to_He4_O15_reaclib)*Y(F18)*Y(H1)*state.rho + -screened_rates(k_O15_He4_to_p_F18_derived)*Y(He4)*Y(O15)*state.rho) + + (-screened_rates(k_F18_He4_to_p_Ne21_reaclib)*Y(F18)*Y(He4)*state.rho + screened_rates(k_Ne21_p_to_He4_F18_derived)*Y(Ne21)*Y(H1)*state.rho) + + (screened_rates(k_F19_p_to_He4_O16_reaclib)*Y(F19)*Y(H1)*state.rho + -screened_rates(k_O16_He4_to_p_F19_derived)*Y(He4)*Y(O16)*state.rho) + + (-screened_rates(k_F19_He4_to_p_Ne22_reaclib)*Y(F19)*Y(He4)*state.rho + screened_rates(k_Ne22_p_to_He4_F19_derived)*Y(Ne22)*Y(H1)*state.rho) + + (screened_rates(k_Ne18_n_to_He4_O15_reaclib)*Y(Ne18)*Y(N)*state.rho + -screened_rates(k_O15_He4_to_n_Ne18_derived)*Y(He4)*Y(O15)*state.rho) + + (-screened_rates(k_Ne18_He4_to_p_Na21_reaclib)*Y(He4)*Y(Ne18)*state.rho + screened_rates(k_Na21_p_to_He4_Ne18_derived)*Y(Na21)*Y(H1)*state.rho) + + (screened_rates(k_Ne19_n_to_He4_O16_reaclib)*Y(Ne19)*Y(N)*state.rho + -screened_rates(k_O16_He4_to_n_Ne19_derived)*Y(He4)*Y(O16)*state.rho) + + (-screened_rates(k_Ne19_He4_to_p_Na22_reaclib)*Y(He4)*Y(Ne19)*state.rho + screened_rates(k_Na22_p_to_He4_Ne19_derived)*Y(Na22)*Y(H1)*state.rho) + + (screened_rates(k_Ne20_C12_to_He4_Si28_reaclib)*Y(C12)*Y(Ne20)*state.rho + -screened_rates(k_Si28_He4_to_C12_Ne20_derived)*Y(He4)*Y(Si28)*state.rho) + + (-screened_rates(k_Ne21_He4_to_n_Mg24_reaclib)*Y(He4)*Y(Ne21)*state.rho + screened_rates(k_Mg24_n_to_He4_Ne21_derived)*Y(Mg24)*Y(N)*state.rho) + + (screened_rates(k_Na21_n_to_He4_F18_reaclib)*Y(Na21)*Y(N)*state.rho + -screened_rates(k_F18_He4_to_n_Na21_derived)*Y(F18)*Y(He4)*state.rho) + + (screened_rates(k_Na22_n_to_He4_F19_reaclib)*Y(Na22)*Y(N)*state.rho + -screened_rates(k_F19_He4_to_n_Na22_derived)*Y(F19)*Y(He4)*state.rho) + + (-screened_rates(k_Na22_He4_to_p_Mg25_reaclib)*Y(He4)*Y(Na22)*state.rho + screened_rates(k_Mg25_p_to_He4_Na22_derived)*Y(Mg25)*Y(H1)*state.rho) + + (screened_rates(k_Na23_p_to_He4_Ne20_reaclib)*Y(Na23)*Y(H1)*state.rho + -screened_rates(k_Ne20_He4_to_p_Na23_derived)*Y(He4)*Y(Ne20)*state.rho) + + (-screened_rates(k_Na23_He4_to_p_Mg26_reaclib)*Y(He4)*Y(Na23)*state.rho + screened_rates(k_Mg26_p_to_He4_Na23_derived)*Y(Mg26)*Y(H1)*state.rho) + + (screened_rates(k_Mg23_n_to_He4_Ne20_reaclib)*Y(Mg23)*Y(N)*state.rho + -screened_rates(k_Ne20_He4_to_n_Mg23_derived)*Y(He4)*Y(Ne20)*state.rho) + + (-screened_rates(k_Mg23_He4_to_p_Al26_reaclib)*Y(He4)*Y(Mg23)*state.rho + screened_rates(k_Al26_p_to_He4_Mg23_derived)*Y(Al26)*Y(H1)*state.rho) + + (-screened_rates(k_Mg25_He4_to_n_Si28_reaclib)*Y(He4)*Y(Mg25)*state.rho + screened_rates(k_Si28_n_to_He4_Mg25_derived)*Y(Si28)*Y(N)*state.rho) + + (-screened_rates(k_Mg26_He4_to_n_Si29_reaclib)*Y(He4)*Y(Mg26)*state.rho + screened_rates(k_Si29_n_to_He4_Mg26_derived)*Y(Si29)*Y(N)*state.rho) + + (screened_rates(k_Al25_n_to_He4_Na22_reaclib)*Y(Al25)*Y(N)*state.rho + -screened_rates(k_Na22_He4_to_n_Al25_derived)*Y(He4)*Y(Na22)*state.rho) + + (-screened_rates(k_Al25_He4_to_p_Si28_reaclib)*Y(Al25)*Y(He4)*state.rho + screened_rates(k_Si28_p_to_He4_Al25_derived)*Y(Si28)*Y(H1)*state.rho) + + (screened_rates(k_Al26_n_to_He4_Na23_reaclib)*Y(Al26)*Y(N)*state.rho + -screened_rates(k_Na23_He4_to_n_Al26_derived)*Y(He4)*Y(Na23)*state.rho) + + (-screened_rates(k_Al26_He4_to_p_Si29_reaclib)*Y(Al26)*Y(He4)*state.rho + screened_rates(k_Si29_p_to_He4_Al26_derived)*Y(Si29)*Y(H1)*state.rho) + + (screened_rates(k_Al27_p_to_He4_Mg24_reaclib)*Y(Al27)*Y(H1)*state.rho + -screened_rates(k_Mg24_He4_to_p_Al27_derived)*Y(He4)*Y(Mg24)*state.rho) + + (-screened_rates(k_Al27_He4_to_p_Si30_reaclib)*Y(Al27)*Y(He4)*state.rho + screened_rates(k_Si30_p_to_He4_Al27_derived)*Y(Si30)*Y(H1)*state.rho) + + (-screened_rates(k_Si31_He4_to_n_S34_reaclib)*Y(He4)*Y(Si31)*state.rho + screened_rates(k_S34_n_to_He4_Si31_derived)*Y(S34)*Y(N)*state.rho) + + (screened_rates(k_P29_n_to_He4_Al26_reaclib)*Y(P29)*Y(N)*state.rho + -screened_rates(k_Al26_He4_to_n_P29_derived)*Y(Al26)*Y(He4)*state.rho) + + (-screened_rates(k_P29_He4_to_p_S32_reaclib)*Y(He4)*Y(P29)*state.rho + screened_rates(k_S32_p_to_He4_P29_derived)*Y(S32)*Y(H1)*state.rho) + + (-screened_rates(k_P30_He4_to_p_S33_reaclib)*Y(He4)*Y(P30)*state.rho + screened_rates(k_S33_p_to_He4_P30_derived)*Y(S33)*Y(H1)*state.rho) + + (screened_rates(k_P31_p_to_He4_Si28_reaclib)*Y(P31)*Y(H1)*state.rho + -screened_rates(k_Si28_He4_to_p_P31_derived)*Y(He4)*Y(Si28)*state.rho) + + (-screened_rates(k_P31_He4_to_p_S34_reaclib)*Y(He4)*Y(P31)*state.rho + screened_rates(k_S34_p_to_He4_P31_derived)*Y(S34)*Y(H1)*state.rho) + + (screened_rates(k_P32_p_to_He4_Si29_reaclib)*Y(P32)*Y(H1)*state.rho + -screened_rates(k_Si29_He4_to_p_P32_derived)*Y(He4)*Y(Si29)*state.rho) + + (screened_rates(k_P33_p_to_He4_Si30_reaclib)*Y(P33)*Y(H1)*state.rho + -screened_rates(k_Si30_He4_to_p_P33_derived)*Y(He4)*Y(Si30)*state.rho) + + (screened_rates(k_S32_n_to_He4_Si29_reaclib)*Y(S32)*Y(N)*state.rho + -screened_rates(k_Si29_He4_to_n_S32_derived)*Y(He4)*Y(Si29)*state.rho) + + (screened_rates(k_S33_n_to_He4_Si30_reaclib)*Y(S33)*Y(N)*state.rho + -screened_rates(k_Si30_He4_to_n_S33_derived)*Y(He4)*Y(Si30)*state.rho) + + (screened_rates(k_S35_n_to_He4_Si32_reaclib)*Y(S35)*Y(N)*state.rho + -screened_rates(k_Si32_He4_to_n_S35_derived)*Y(He4)*Y(Si32)*state.rho) + + (screened_rates(k_S35_p_to_He4_P32_reaclib)*Y(S35)*Y(H1)*state.rho + -screened_rates(k_P32_He4_to_p_S35_derived)*Y(He4)*Y(P32)*state.rho) + + (-screened_rates(k_S35_He4_to_n_Ar38_reaclib)*Y(He4)*Y(S35)*state.rho + screened_rates(k_Ar38_n_to_He4_S35_derived)*Y(Ar38)*Y(N)*state.rho) + + (screened_rates(k_S36_p_to_He4_P33_reaclib)*Y(S36)*Y(H1)*state.rho + -screened_rates(k_P33_He4_to_p_S36_derived)*Y(He4)*Y(P33)*state.rho) + + (screened_rates(k_Cl33_n_to_He4_P30_reaclib)*Y(Cl33)*Y(N)*state.rho + -screened_rates(k_P30_He4_to_n_Cl33_derived)*Y(He4)*Y(P30)*state.rho) + + (-screened_rates(k_Cl33_He4_to_p_Ar36_reaclib)*Y(Cl33)*Y(He4)*state.rho + screened_rates(k_Ar36_p_to_He4_Cl33_derived)*Y(Ar36)*Y(H1)*state.rho) + + (screened_rates(k_Cl34_n_to_He4_P31_reaclib)*Y(Cl34)*Y(N)*state.rho + -screened_rates(k_P31_He4_to_n_Cl34_derived)*Y(He4)*Y(P31)*state.rho) + + (-screened_rates(k_Cl34_He4_to_p_Ar37_reaclib)*Y(Cl34)*Y(He4)*state.rho + screened_rates(k_Ar37_p_to_He4_Cl34_derived)*Y(Ar37)*Y(H1)*state.rho) + + (screened_rates(k_Cl35_n_to_He4_P32_reaclib)*Y(Cl35)*Y(N)*state.rho + -screened_rates(k_P32_He4_to_n_Cl35_derived)*Y(He4)*Y(P32)*state.rho) + + (screened_rates(k_Cl35_p_to_He4_S32_reaclib)*Y(Cl35)*Y(H1)*state.rho + -screened_rates(k_S32_He4_to_p_Cl35_derived)*Y(He4)*Y(S32)*state.rho) + + (-screened_rates(k_Cl35_He4_to_p_Ar38_reaclib)*Y(Cl35)*Y(He4)*state.rho + screened_rates(k_Ar38_p_to_He4_Cl35_derived)*Y(Ar38)*Y(H1)*state.rho) + + (screened_rates(k_Cl36_n_to_He4_P33_reaclib)*Y(Cl36)*Y(N)*state.rho + -screened_rates(k_P33_He4_to_n_Cl36_derived)*Y(He4)*Y(P33)*state.rho) + + (screened_rates(k_Cl36_p_to_He4_S33_reaclib)*Y(Cl36)*Y(H1)*state.rho + -screened_rates(k_S33_He4_to_p_Cl36_derived)*Y(He4)*Y(S33)*state.rho) + + (screened_rates(k_Ar36_n_to_He4_S33_reaclib)*Y(Ar36)*Y(N)*state.rho + -screened_rates(k_S33_He4_to_n_Ar36_derived)*Y(He4)*Y(S33)*state.rho) + + (screened_rates(k_Ar39_n_to_He4_S36_reaclib)*Y(Ar39)*Y(N)*state.rho + -screened_rates(k_S36_He4_to_n_Ar39_derived)*Y(He4)*Y(S36)*state.rho) + + (screened_rates(k_Ar39_p_to_He4_Cl36_reaclib)*Y(Ar39)*Y(H1)*state.rho + -screened_rates(k_Cl36_He4_to_p_Ar39_derived)*Y(Cl36)*Y(He4)*state.rho) + + (screened_rates(k_Ar40_p_to_He4_Cl37_reaclib)*Y(Ar40)*Y(H1)*state.rho + -screened_rates(k_Cl37_He4_to_p_Ar40_derived)*Y(Cl37)*Y(He4)*state.rho) + + (screened_rates(k_K37_n_to_He4_Cl34_reaclib)*Y(K37)*Y(N)*state.rho + -screened_rates(k_Cl34_He4_to_n_K37_derived)*Y(Cl34)*Y(He4)*state.rho) + + (-screened_rates(k_K37_He4_to_p_Ca40_reaclib)*Y(He4)*Y(K37)*state.rho + screened_rates(k_Ca40_p_to_He4_K37_derived)*Y(Ca40)*Y(H1)*state.rho) + + (screened_rates(k_K38_n_to_He4_Cl35_reaclib)*Y(K38)*Y(N)*state.rho + -screened_rates(k_Cl35_He4_to_n_K38_derived)*Y(Cl35)*Y(He4)*state.rho) + + (-screened_rates(k_K38_He4_to_p_Ca41_reaclib)*Y(He4)*Y(K38)*state.rho + screened_rates(k_Ca41_p_to_He4_K38_derived)*Y(Ca41)*Y(H1)*state.rho) + + (screened_rates(k_K39_n_to_He4_Cl36_reaclib)*Y(K39)*Y(N)*state.rho + -screened_rates(k_Cl36_He4_to_n_K39_derived)*Y(Cl36)*Y(He4)*state.rho) + + (screened_rates(k_K39_p_to_He4_Ar36_reaclib)*Y(K39)*Y(H1)*state.rho + -screened_rates(k_Ar36_He4_to_p_K39_derived)*Y(Ar36)*Y(He4)*state.rho) + + (screened_rates(k_K40_n_to_He4_Cl37_reaclib)*Y(K40)*Y(N)*state.rho + -screened_rates(k_Cl37_He4_to_n_K40_derived)*Y(Cl37)*Y(He4)*state.rho) + + (screened_rates(k_K40_p_to_He4_Ar37_reaclib)*Y(K40)*Y(H1)*state.rho + -screened_rates(k_Ar37_He4_to_p_K40_derived)*Y(Ar37)*Y(He4)*state.rho) + + (-screened_rates(k_K40_He4_to_p_Ca43_reaclib)*Y(He4)*Y(K40)*state.rho + screened_rates(k_Ca43_p_to_He4_K40_derived)*Y(Ca43)*Y(H1)*state.rho) + + (screened_rates(k_K41_p_to_He4_Ar38_reaclib)*Y(K41)*Y(H1)*state.rho + -screened_rates(k_Ar38_He4_to_p_K41_derived)*Y(Ar38)*Y(He4)*state.rho) + + (-screened_rates(k_K41_He4_to_p_Ca44_reaclib)*Y(He4)*Y(K41)*state.rho + screened_rates(k_Ca44_p_to_He4_K41_derived)*Y(Ca44)*Y(H1)*state.rho) + + (screened_rates(k_Ca40_n_to_He4_Ar37_reaclib)*Y(Ca40)*Y(N)*state.rho + -screened_rates(k_Ar37_He4_to_n_Ca40_derived)*Y(Ar37)*Y(He4)*state.rho) + + (screened_rates(k_Ca41_n_to_He4_Ar38_reaclib)*Y(Ca41)*Y(N)*state.rho + -screened_rates(k_Ar38_He4_to_n_Ca41_derived)*Y(Ar38)*Y(He4)*state.rho) + + (screened_rates(k_Ca42_n_to_He4_Ar39_reaclib)*Y(Ca42)*Y(N)*state.rho + -screened_rates(k_Ar39_He4_to_n_Ca42_derived)*Y(Ar39)*Y(He4)*state.rho) + + (screened_rates(k_Ca42_p_to_He4_K39_reaclib)*Y(Ca42)*Y(H1)*state.rho + -screened_rates(k_K39_He4_to_p_Ca42_derived)*Y(He4)*Y(K39)*state.rho) + + (screened_rates(k_Ca43_n_to_He4_Ar40_reaclib)*Y(Ca43)*Y(N)*state.rho + -screened_rates(k_Ar40_He4_to_n_Ca43_derived)*Y(Ar40)*Y(He4)*state.rho) + + (-screened_rates(k_Ca43_He4_to_n_Ti46_reaclib)*Y(Ca43)*Y(He4)*state.rho + screened_rates(k_Ti46_n_to_He4_Ca43_derived)*Y(Ti46)*Y(N)*state.rho) + + (-screened_rates(k_Ca45_He4_to_n_Ti48_reaclib)*Y(Ca45)*Y(He4)*state.rho + screened_rates(k_Ti48_n_to_He4_Ca45_derived)*Y(Ti48)*Y(N)*state.rho) + + (-screened_rates(k_Ca47_He4_to_n_Ti50_reaclib)*Y(Ca47)*Y(He4)*state.rho + screened_rates(k_Ti50_n_to_He4_Ca47_derived)*Y(Ti50)*Y(N)*state.rho) + + (screened_rates(k_Sc43_n_to_He4_K40_reaclib)*Y(Sc43)*Y(N)*state.rho + -screened_rates(k_K40_He4_to_n_Sc43_derived)*Y(He4)*Y(K40)*state.rho) + + (screened_rates(k_Sc43_p_to_He4_Ca40_reaclib)*Y(Sc43)*Y(H1)*state.rho + -screened_rates(k_Ca40_He4_to_p_Sc43_derived)*Y(Ca40)*Y(He4)*state.rho) + + (-screened_rates(k_Sc43_He4_to_p_Ti46_reaclib)*Y(He4)*Y(Sc43)*state.rho + screened_rates(k_Ti46_p_to_He4_Sc43_derived)*Y(Ti46)*Y(H1)*state.rho) + + (screened_rates(k_Sc44_p_to_He4_Ca41_reaclib)*Y(Sc44)*Y(H1)*state.rho + -screened_rates(k_Ca41_He4_to_p_Sc44_derived)*Y(Ca41)*Y(He4)*state.rho) + + (-screened_rates(k_Sc44_He4_to_p_Ti47_reaclib)*Y(He4)*Y(Sc44)*state.rho + screened_rates(k_Ti47_p_to_He4_Sc44_derived)*Y(Ti47)*Y(H1)*state.rho) + + (screened_rates(k_Sc45_p_to_He4_Ca42_reaclib)*Y(Sc45)*Y(H1)*state.rho + -screened_rates(k_Ca42_He4_to_p_Sc45_derived)*Y(Ca42)*Y(He4)*state.rho) + + (-screened_rates(k_Sc45_He4_to_p_Ti48_reaclib)*Y(He4)*Y(Sc45)*state.rho + screened_rates(k_Ti48_p_to_He4_Sc45_derived)*Y(Ti48)*Y(H1)*state.rho) + + (screened_rates(k_Sc46_p_to_He4_Ca43_reaclib)*Y(Sc46)*Y(H1)*state.rho + -screened_rates(k_Ca43_He4_to_p_Sc46_derived)*Y(Ca43)*Y(He4)*state.rho) + + (-screened_rates(k_Sc46_He4_to_n_V49_reaclib)*Y(He4)*Y(Sc46)*state.rho + screened_rates(k_V49_n_to_He4_Sc46_derived)*Y(V49)*Y(N)*state.rho) + + (-screened_rates(k_Sc46_He4_to_p_Ti49_reaclib)*Y(He4)*Y(Sc46)*state.rho + screened_rates(k_Ti49_p_to_He4_Sc46_derived)*Y(Ti49)*Y(H1)*state.rho) + + (screened_rates(k_Sc47_p_to_He4_Ca44_reaclib)*Y(Sc47)*Y(H1)*state.rho + -screened_rates(k_Ca44_He4_to_p_Sc47_derived)*Y(Ca44)*Y(He4)*state.rho) + + (-screened_rates(k_Sc47_He4_to_p_Ti50_reaclib)*Y(He4)*Y(Sc47)*state.rho + screened_rates(k_Ti50_p_to_He4_Sc47_derived)*Y(Ti50)*Y(H1)*state.rho) + + (screened_rates(k_Sc48_p_to_He4_Ca45_reaclib)*Y(Sc48)*Y(H1)*state.rho + -screened_rates(k_Ca45_He4_to_p_Sc48_derived)*Y(Ca45)*Y(He4)*state.rho) + + (-screened_rates(k_Sc48_He4_to_n_V51_reaclib)*Y(He4)*Y(Sc48)*state.rho + screened_rates(k_V51_n_to_He4_Sc48_derived)*Y(V51)*Y(N)*state.rho) + + (-screened_rates(k_Sc48_He4_to_p_Ti51_reaclib)*Y(He4)*Y(Sc48)*state.rho + screened_rates(k_Ti51_p_to_He4_Sc48_derived)*Y(Ti51)*Y(H1)*state.rho) + + (screened_rates(k_Sc49_p_to_He4_Ca46_reaclib)*Y(Sc49)*Y(H1)*state.rho + -screened_rates(k_Ca46_He4_to_p_Sc49_derived)*Y(Ca46)*Y(He4)*state.rho) + + (screened_rates(k_Ti44_n_to_He4_Ca41_reaclib)*Y(Ti44)*Y(N)*state.rho + -screened_rates(k_Ca41_He4_to_n_Ti44_derived)*Y(Ca41)*Y(He4)*state.rho) + + (screened_rates(k_Ti45_n_to_He4_Ca42_reaclib)*Y(Ti45)*Y(N)*state.rho + -screened_rates(k_Ca42_He4_to_n_Ti45_derived)*Y(Ca42)*Y(He4)*state.rho) + + (-screened_rates(k_Ti45_He4_to_p_V48_reaclib)*Y(He4)*Y(Ti45)*state.rho + screened_rates(k_V48_p_to_He4_Ti45_derived)*Y(V48)*Y(H1)*state.rho) + + (screened_rates(k_Ti47_n_to_He4_Ca44_reaclib)*Y(Ti47)*Y(N)*state.rho + -screened_rates(k_Ca44_He4_to_n_Ti47_derived)*Y(Ca44)*Y(He4)*state.rho) + + (screened_rates(k_Ti49_n_to_He4_Ca46_reaclib)*Y(Ti49)*Y(N)*state.rho + -screened_rates(k_Ca46_He4_to_n_Ti49_derived)*Y(Ca46)*Y(He4)*state.rho) + + (-screened_rates(k_Ti49_He4_to_n_Cr52_reaclib)*Y(He4)*Y(Ti49)*state.rho + screened_rates(k_Cr52_n_to_He4_Ti49_derived)*Y(Cr52)*Y(N)*state.rho) + + (screened_rates(k_Ti51_n_to_He4_Ca48_reaclib)*Y(Ti51)*Y(N)*state.rho + -screened_rates(k_Ca48_He4_to_n_Ti51_derived)*Y(Ca48)*Y(He4)*state.rho) + + (-screened_rates(k_Ti51_He4_to_n_Cr54_reaclib)*Y(He4)*Y(Ti51)*state.rho + screened_rates(k_Cr54_n_to_He4_Ti51_derived)*Y(Cr54)*Y(N)*state.rho) + + (screened_rates(k_V46_n_to_He4_Sc43_reaclib)*Y(V46)*Y(N)*state.rho + -screened_rates(k_Sc43_He4_to_n_V46_derived)*Y(He4)*Y(Sc43)*state.rho) + + (-screened_rates(k_V46_He4_to_p_Cr49_reaclib)*Y(He4)*Y(V46)*state.rho + screened_rates(k_Cr49_p_to_He4_V46_derived)*Y(Cr49)*Y(H1)*state.rho) + + (screened_rates(k_V47_n_to_He4_Sc44_reaclib)*Y(V47)*Y(N)*state.rho + -screened_rates(k_Sc44_He4_to_n_V47_derived)*Y(He4)*Y(Sc44)*state.rho) + + (-screened_rates(k_V47_He4_to_p_Cr50_reaclib)*Y(He4)*Y(V47)*state.rho + screened_rates(k_Cr50_p_to_He4_V47_derived)*Y(Cr50)*Y(H1)*state.rho) + + (screened_rates(k_V48_n_to_He4_Sc45_reaclib)*Y(V48)*Y(N)*state.rho + -screened_rates(k_Sc45_He4_to_n_V48_derived)*Y(He4)*Y(Sc45)*state.rho) + + (-screened_rates(k_V48_He4_to_p_Cr51_reaclib)*Y(He4)*Y(V48)*state.rho + screened_rates(k_Cr51_p_to_He4_V48_derived)*Y(Cr51)*Y(H1)*state.rho) + + (screened_rates(k_V49_p_to_He4_Ti46_reaclib)*Y(V49)*Y(H1)*state.rho + -screened_rates(k_Ti46_He4_to_p_V49_derived)*Y(He4)*Y(Ti46)*state.rho) + + (-screened_rates(k_V49_He4_to_p_Cr52_reaclib)*Y(He4)*Y(V49)*state.rho + screened_rates(k_Cr52_p_to_He4_V49_derived)*Y(Cr52)*Y(H1)*state.rho) + + (screened_rates(k_V50_n_to_He4_Sc47_reaclib)*Y(V50)*Y(N)*state.rho + -screened_rates(k_Sc47_He4_to_n_V50_derived)*Y(He4)*Y(Sc47)*state.rho) + + (screened_rates(k_V50_p_to_He4_Ti47_reaclib)*Y(V50)*Y(H1)*state.rho + -screened_rates(k_Ti47_He4_to_p_V50_derived)*Y(He4)*Y(Ti47)*state.rho) + + (-screened_rates(k_V50_He4_to_p_Cr53_reaclib)*Y(He4)*Y(V50)*state.rho + screened_rates(k_Cr53_p_to_He4_V50_derived)*Y(Cr53)*Y(H1)*state.rho) + + (screened_rates(k_V51_p_to_He4_Ti48_reaclib)*Y(V51)*Y(H1)*state.rho + -screened_rates(k_Ti48_He4_to_p_V51_derived)*Y(He4)*Y(Ti48)*state.rho) + + (screened_rates(k_V52_n_to_He4_Sc49_reaclib)*Y(V52)*Y(N)*state.rho + -screened_rates(k_Sc49_He4_to_n_V52_derived)*Y(He4)*Y(Sc49)*state.rho) + + (screened_rates(k_V52_p_to_He4_Ti49_reaclib)*Y(V52)*Y(H1)*state.rho + -screened_rates(k_Ti49_He4_to_p_V52_derived)*Y(He4)*Y(Ti49)*state.rho) + + (-screened_rates(k_V52_He4_to_n_Mn55_reaclib)*Y(He4)*Y(V52)*state.rho + screened_rates(k_Mn55_n_to_He4_V52_derived)*Y(Mn55)*Y(N)*state.rho) + + (screened_rates(k_Cr48_n_to_He4_Ti45_reaclib)*Y(Cr48)*Y(N)*state.rho + -screened_rates(k_Ti45_He4_to_n_Cr48_derived)*Y(He4)*Y(Ti45)*state.rho) + + (-screened_rates(k_Cr48_He4_to_p_Mn51_reaclib)*Y(Cr48)*Y(He4)*state.rho + screened_rates(k_Mn51_p_to_He4_Cr48_derived)*Y(Mn51)*Y(H1)*state.rho) + + (screened_rates(k_Cr49_n_to_He4_Ti46_reaclib)*Y(Cr49)*Y(N)*state.rho + -screened_rates(k_Ti46_He4_to_n_Cr49_derived)*Y(He4)*Y(Ti46)*state.rho) + + (-screened_rates(k_Cr49_He4_to_p_Mn52_reaclib)*Y(Cr49)*Y(He4)*state.rho + screened_rates(k_Mn52_p_to_He4_Cr49_derived)*Y(Mn52)*Y(H1)*state.rho) + + (screened_rates(k_Cr50_n_to_He4_Ti47_reaclib)*Y(Cr50)*Y(N)*state.rho + -screened_rates(k_Ti47_He4_to_n_Cr50_derived)*Y(He4)*Y(Ti47)*state.rho) + + (screened_rates(k_Cr51_n_to_He4_Ti48_reaclib)*Y(Cr51)*Y(N)*state.rho + -screened_rates(k_Ti48_He4_to_n_Cr51_derived)*Y(He4)*Y(Ti48)*state.rho) + + (screened_rates(k_Cr53_n_to_He4_Ti50_reaclib)*Y(Cr53)*Y(N)*state.rho + -screened_rates(k_Ti50_He4_to_n_Cr53_derived)*Y(He4)*Y(Ti50)*state.rho) + + (screened_rates(k_Cr54_p_to_He4_V51_reaclib)*Y(Cr54)*Y(H1)*state.rho + -screened_rates(k_V51_He4_to_p_Cr54_derived)*Y(He4)*Y(V51)*state.rho) + + (screened_rates(k_Mn50_n_to_He4_V47_reaclib)*Y(Mn50)*Y(N)*state.rho + -screened_rates(k_V47_He4_to_n_Mn50_derived)*Y(He4)*Y(V47)*state.rho) + + (-screened_rates(k_Mn50_He4_to_p_Fe53_reaclib)*Y(He4)*Y(Mn50)*state.rho + screened_rates(k_Fe53_p_to_He4_Mn50_derived)*Y(Fe53)*Y(H1)*state.rho) + + (screened_rates(k_Mn51_n_to_He4_V48_reaclib)*Y(Mn51)*Y(N)*state.rho + -screened_rates(k_V48_He4_to_n_Mn51_derived)*Y(He4)*Y(V48)*state.rho) + + (-screened_rates(k_Mn51_He4_to_p_Fe54_reaclib)*Y(He4)*Y(Mn51)*state.rho + screened_rates(k_Fe54_p_to_He4_Mn51_derived)*Y(Fe54)*Y(H1)*state.rho) + + (screened_rates(k_Mn52_n_to_He4_V49_reaclib)*Y(Mn52)*Y(N)*state.rho + -screened_rates(k_V49_He4_to_n_Mn52_derived)*Y(He4)*Y(V49)*state.rho) + + (-screened_rates(k_Mn52_He4_to_p_Fe55_reaclib)*Y(He4)*Y(Mn52)*state.rho + screened_rates(k_Fe55_p_to_He4_Mn52_derived)*Y(Fe55)*Y(H1)*state.rho) + + (screened_rates(k_Mn53_n_to_He4_V50_reaclib)*Y(Mn53)*Y(N)*state.rho + -screened_rates(k_V50_He4_to_n_Mn53_derived)*Y(He4)*Y(V50)*state.rho) + + (screened_rates(k_Mn53_p_to_He4_Cr50_reaclib)*Y(Mn53)*Y(H1)*state.rho + -screened_rates(k_Cr50_He4_to_p_Mn53_derived)*Y(Cr50)*Y(He4)*state.rho) + + (-screened_rates(k_Mn53_He4_to_p_Fe56_reaclib)*Y(He4)*Y(Mn53)*state.rho + screened_rates(k_Fe56_p_to_He4_Mn53_derived)*Y(Fe56)*Y(H1)*state.rho) + + (screened_rates(k_Mn54_n_to_He4_V51_reaclib)*Y(Mn54)*Y(N)*state.rho + -screened_rates(k_V51_He4_to_n_Mn54_derived)*Y(He4)*Y(V51)*state.rho) + + (screened_rates(k_Mn54_p_to_He4_Cr51_reaclib)*Y(Mn54)*Y(H1)*state.rho + -screened_rates(k_Cr51_He4_to_p_Mn54_derived)*Y(Cr51)*Y(He4)*state.rho) + + (screened_rates(k_Mn55_p_to_He4_Cr52_reaclib)*Y(Mn55)*Y(H1)*state.rho + -screened_rates(k_Cr52_He4_to_p_Mn55_derived)*Y(Cr52)*Y(He4)*state.rho) + + (screened_rates(k_Fe52_n_to_He4_Cr49_reaclib)*Y(Fe52)*Y(N)*state.rho + -screened_rates(k_Cr49_He4_to_n_Fe52_derived)*Y(Cr49)*Y(He4)*state.rho) + + (-screened_rates(k_Fe52_He4_to_p_Co55_reaclib)*Y(Fe52)*Y(He4)*state.rho + screened_rates(k_Co55_p_to_He4_Fe52_derived)*Y(Co55)*Y(H1)*state.rho) + + (screened_rates(k_Fe53_n_to_He4_Cr50_reaclib)*Y(Fe53)*Y(N)*state.rho + -screened_rates(k_Cr50_He4_to_n_Fe53_derived)*Y(Cr50)*Y(He4)*state.rho) + + (-screened_rates(k_Fe53_He4_to_p_Co56_reaclib)*Y(Fe53)*Y(He4)*state.rho + screened_rates(k_Co56_p_to_He4_Fe53_derived)*Y(Co56)*Y(H1)*state.rho) + + (screened_rates(k_Fe54_n_to_He4_Cr51_reaclib)*Y(Fe54)*Y(N)*state.rho + -screened_rates(k_Cr51_He4_to_n_Fe54_derived)*Y(Cr51)*Y(He4)*state.rho) + + (screened_rates(k_Fe55_n_to_He4_Cr52_reaclib)*Y(Fe55)*Y(N)*state.rho + -screened_rates(k_Cr52_He4_to_n_Fe55_derived)*Y(Cr52)*Y(He4)*state.rho) + + (screened_rates(k_Fe56_n_to_He4_Cr53_reaclib)*Y(Fe56)*Y(N)*state.rho + -screened_rates(k_Cr53_He4_to_n_Fe56_derived)*Y(Cr53)*Y(He4)*state.rho) + + (screened_rates(k_Fe57_n_to_He4_Cr54_reaclib)*Y(Fe57)*Y(N)*state.rho + -screened_rates(k_Cr54_He4_to_n_Fe57_derived)*Y(Cr54)*Y(He4)*state.rho) + + (screened_rates(k_Fe57_p_to_He4_Mn54_reaclib)*Y(Fe57)*Y(H1)*state.rho + -screened_rates(k_Mn54_He4_to_p_Fe57_derived)*Y(He4)*Y(Mn54)*state.rho) + + (screened_rates(k_Fe58_p_to_He4_Mn55_reaclib)*Y(Fe58)*Y(H1)*state.rho + -screened_rates(k_Mn55_He4_to_p_Fe58_derived)*Y(He4)*Y(Mn55)*state.rho) + + (screened_rates(k_Co53_n_to_He4_Mn50_reaclib)*Y(Co53)*Y(N)*state.rho + -screened_rates(k_Mn50_He4_to_n_Co53_derived)*Y(He4)*Y(Mn50)*state.rho) + + (-screened_rates(k_Co53_He4_to_p_Ni56_reaclib)*Y(Co53)*Y(He4)*state.rho + screened_rates(k_Ni56_p_to_He4_Co53_derived)*Y(Ni56)*Y(H1)*state.rho) + + (screened_rates(k_Co54_n_to_He4_Mn51_reaclib)*Y(Co54)*Y(N)*state.rho + -screened_rates(k_Mn51_He4_to_n_Co54_derived)*Y(He4)*Y(Mn51)*state.rho) + + (-screened_rates(k_Co54_He4_to_p_Ni57_reaclib)*Y(Co54)*Y(He4)*state.rho + screened_rates(k_Ni57_p_to_He4_Co54_derived)*Y(Ni57)*Y(H1)*state.rho) + + (screened_rates(k_Co55_n_to_He4_Mn52_reaclib)*Y(Co55)*Y(N)*state.rho + -screened_rates(k_Mn52_He4_to_n_Co55_derived)*Y(He4)*Y(Mn52)*state.rho) + + (-screened_rates(k_Co55_He4_to_p_Ni58_reaclib)*Y(Co55)*Y(He4)*state.rho + screened_rates(k_Ni58_p_to_He4_Co55_derived)*Y(Ni58)*Y(H1)*state.rho) + + (screened_rates(k_Co56_n_to_He4_Mn53_reaclib)*Y(Co56)*Y(N)*state.rho + -screened_rates(k_Mn53_He4_to_n_Co56_derived)*Y(He4)*Y(Mn53)*state.rho) + + (-screened_rates(k_Co56_He4_to_p_Ni59_reaclib)*Y(Co56)*Y(He4)*state.rho + screened_rates(k_Ni59_p_to_He4_Co56_derived)*Y(Ni59)*Y(H1)*state.rho) + + (screened_rates(k_Co57_n_to_He4_Mn54_reaclib)*Y(Co57)*Y(N)*state.rho + -screened_rates(k_Mn54_He4_to_n_Co57_derived)*Y(He4)*Y(Mn54)*state.rho) + + (screened_rates(k_Co57_p_to_He4_Fe54_reaclib)*Y(Co57)*Y(H1)*state.rho + -screened_rates(k_Fe54_He4_to_p_Co57_derived)*Y(Fe54)*Y(He4)*state.rho) + + (-screened_rates(k_Co57_He4_to_p_Ni60_reaclib)*Y(Co57)*Y(He4)*state.rho + screened_rates(k_Ni60_p_to_He4_Co57_derived)*Y(Ni60)*Y(H1)*state.rho) + + (screened_rates(k_Co58_n_to_He4_Mn55_reaclib)*Y(Co58)*Y(N)*state.rho + -screened_rates(k_Mn55_He4_to_n_Co58_derived)*Y(He4)*Y(Mn55)*state.rho) + + (screened_rates(k_Co58_p_to_He4_Fe55_reaclib)*Y(Co58)*Y(H1)*state.rho + -screened_rates(k_Fe55_He4_to_p_Co58_derived)*Y(Fe55)*Y(He4)*state.rho) + + (screened_rates(k_Co59_p_to_He4_Fe56_reaclib)*Y(Co59)*Y(H1)*state.rho + -screened_rates(k_Fe56_He4_to_p_Co59_derived)*Y(Fe56)*Y(He4)*state.rho) + + (screened_rates(k_Ni56_n_to_He4_Fe53_reaclib)*Y(Ni56)*Y(N)*state.rho + -screened_rates(k_Fe53_He4_to_n_Ni56_derived)*Y(Fe53)*Y(He4)*state.rho) + + (screened_rates(k_Ni57_n_to_He4_Fe54_reaclib)*Y(Ni57)*Y(N)*state.rho + -screened_rates(k_Fe54_He4_to_n_Ni57_derived)*Y(Fe54)*Y(He4)*state.rho) + + (screened_rates(k_Ni58_n_to_He4_Fe55_reaclib)*Y(Ni58)*Y(N)*state.rho + -screened_rates(k_Fe55_He4_to_n_Ni58_derived)*Y(Fe55)*Y(He4)*state.rho) + + (screened_rates(k_Ni59_n_to_He4_Fe56_reaclib)*Y(Ni59)*Y(N)*state.rho + -screened_rates(k_Fe56_He4_to_n_Ni59_derived)*Y(Fe56)*Y(He4)*state.rho) + + (screened_rates(k_Ni60_n_to_He4_Fe57_reaclib)*Y(Ni60)*Y(N)*state.rho + -screened_rates(k_Fe57_He4_to_n_Ni60_derived)*Y(Fe57)*Y(He4)*state.rho) + + (screened_rates(k_Ni61_n_to_He4_Fe58_reaclib)*Y(Ni61)*Y(N)*state.rho + -screened_rates(k_Fe58_He4_to_n_Ni61_derived)*Y(Fe58)*Y(He4)*state.rho) + + (screened_rates(k_Ni61_p_to_He4_Co58_reaclib)*Y(Ni61)*Y(H1)*state.rho + -screened_rates(k_Co58_He4_to_p_Ni61_derived)*Y(Co58)*Y(He4)*state.rho) + + (screened_rates(k_Ni62_p_to_He4_Co59_reaclib)*Y(Ni62)*Y(H1)*state.rho + -screened_rates(k_Co59_He4_to_p_Ni62_derived)*Y(Co59)*Y(He4)*state.rho) + + (screened_rates(k_Cu57_n_to_He4_Co54_reaclib)*Y(Cu57)*Y(N)*state.rho + -screened_rates(k_Co54_He4_to_n_Cu57_derived)*Y(Co54)*Y(He4)*state.rho) + + (-screened_rates(k_Cu57_He4_to_p_Zn60_reaclib)*Y(Cu57)*Y(He4)*state.rho + screened_rates(k_Zn60_p_to_He4_Cu57_derived)*Y(Zn60)*Y(H1)*state.rho) + + (screened_rates(k_Cu58_n_to_He4_Co55_reaclib)*Y(Cu58)*Y(N)*state.rho + -screened_rates(k_Co55_He4_to_n_Cu58_derived)*Y(Co55)*Y(He4)*state.rho) + + (screened_rates(k_Cu59_n_to_He4_Co56_reaclib)*Y(Cu59)*Y(N)*state.rho + -screened_rates(k_Co56_He4_to_n_Cu59_derived)*Y(Co56)*Y(He4)*state.rho) + + (screened_rates(k_Cu59_p_to_He4_Ni56_reaclib)*Y(Cu59)*Y(H1)*state.rho + -screened_rates(k_Ni56_He4_to_p_Cu59_derived)*Y(He4)*Y(Ni56)*state.rho) + + (screened_rates(k_Cu60_n_to_He4_Co57_reaclib)*Y(Cu60)*Y(N)*state.rho + -screened_rates(k_Co57_He4_to_n_Cu60_derived)*Y(Co57)*Y(He4)*state.rho) + + (screened_rates(k_Cu60_p_to_He4_Ni57_reaclib)*Y(Cu60)*Y(H1)*state.rho + -screened_rates(k_Ni57_He4_to_p_Cu60_derived)*Y(He4)*Y(Ni57)*state.rho) + + (screened_rates(k_Cu61_n_to_He4_Co58_reaclib)*Y(Cu61)*Y(N)*state.rho + -screened_rates(k_Co58_He4_to_n_Cu61_derived)*Y(Co58)*Y(He4)*state.rho) + + (screened_rates(k_Cu61_p_to_He4_Ni58_reaclib)*Y(Cu61)*Y(H1)*state.rho + -screened_rates(k_Ni58_He4_to_p_Cu61_derived)*Y(He4)*Y(Ni58)*state.rho) + + (screened_rates(k_Cu62_n_to_He4_Co59_reaclib)*Y(Cu62)*Y(N)*state.rho + -screened_rates(k_Co59_He4_to_n_Cu62_derived)*Y(Co59)*Y(He4)*state.rho) + + (screened_rates(k_Cu62_p_to_He4_Ni59_reaclib)*Y(Cu62)*Y(H1)*state.rho + -screened_rates(k_Ni59_He4_to_p_Cu62_derived)*Y(He4)*Y(Ni59)*state.rho) + + (screened_rates(k_Cu63_p_to_He4_Ni60_reaclib)*Y(Cu63)*Y(H1)*state.rho + -screened_rates(k_Ni60_He4_to_p_Cu63_derived)*Y(He4)*Y(Ni60)*state.rho) + + (screened_rates(k_Cu64_p_to_He4_Ni61_reaclib)*Y(Cu64)*Y(H1)*state.rho + -screened_rates(k_Ni61_He4_to_p_Cu64_derived)*Y(He4)*Y(Ni61)*state.rho) + + (screened_rates(k_Cu65_p_to_He4_Ni62_reaclib)*Y(Cu65)*Y(H1)*state.rho + -screened_rates(k_Ni62_He4_to_p_Cu65_derived)*Y(He4)*Y(Ni62)*state.rho) + + (screened_rates(k_Zn59_n_to_He4_Ni56_reaclib)*Y(Zn59)*Y(N)*state.rho + -screened_rates(k_Ni56_He4_to_n_Zn59_derived)*Y(He4)*Y(Ni56)*state.rho) + + (screened_rates(k_Zn60_n_to_He4_Ni57_reaclib)*Y(Zn60)*Y(N)*state.rho + -screened_rates(k_Ni57_He4_to_n_Zn60_derived)*Y(He4)*Y(Ni57)*state.rho) + + (screened_rates(k_Zn61_n_to_He4_Ni58_reaclib)*Y(Zn61)*Y(N)*state.rho + -screened_rates(k_Ni58_He4_to_n_Zn61_derived)*Y(He4)*Y(Ni58)*state.rho) + + (screened_rates(k_Zn61_p_to_He4_Cu58_reaclib)*Y(Zn61)*Y(H1)*state.rho + -screened_rates(k_Cu58_He4_to_p_Zn61_derived)*Y(Cu58)*Y(He4)*state.rho) + + (screened_rates(k_Zn62_n_to_He4_Ni59_reaclib)*Y(Zn62)*Y(N)*state.rho + -screened_rates(k_Ni59_He4_to_n_Zn62_derived)*Y(He4)*Y(Ni59)*state.rho) + + (screened_rates(k_Zn62_p_to_He4_Cu59_reaclib)*Y(Zn62)*Y(H1)*state.rho + -screened_rates(k_Cu59_He4_to_p_Zn62_derived)*Y(Cu59)*Y(He4)*state.rho) + + (screened_rates(k_Zn63_n_to_He4_Ni60_reaclib)*Y(Zn63)*Y(N)*state.rho + -screened_rates(k_Ni60_He4_to_n_Zn63_derived)*Y(He4)*Y(Ni60)*state.rho) + + (screened_rates(k_Zn63_p_to_He4_Cu60_reaclib)*Y(Zn63)*Y(H1)*state.rho + -screened_rates(k_Cu60_He4_to_p_Zn63_derived)*Y(Cu60)*Y(He4)*state.rho) + + (screened_rates(k_Zn64_n_to_He4_Ni61_reaclib)*Y(Zn64)*Y(N)*state.rho + -screened_rates(k_Ni61_He4_to_n_Zn64_derived)*Y(He4)*Y(Ni61)*state.rho) + + (screened_rates(k_Zn64_p_to_He4_Cu61_reaclib)*Y(Zn64)*Y(H1)*state.rho + -screened_rates(k_Cu61_He4_to_p_Zn64_derived)*Y(Cu61)*Y(He4)*state.rho) + + (screened_rates(k_Zn65_n_to_He4_Ni62_reaclib)*Y(Zn65)*Y(N)*state.rho + -screened_rates(k_Ni62_He4_to_n_Zn65_derived)*Y(He4)*Y(Ni62)*state.rho) + + (screened_rates(k_Zn65_p_to_He4_Cu62_reaclib)*Y(Zn65)*Y(H1)*state.rho + -screened_rates(k_Cu62_He4_to_p_Zn65_derived)*Y(Cu62)*Y(He4)*state.rho) + + (screened_rates(k_Zn66_n_to_He4_Ni63_reaclib)*Y(Zn66)*Y(N)*state.rho + -screened_rates(k_Ni63_He4_to_n_Zn66_derived)*Y(He4)*Y(Ni63)*state.rho) + + (screened_rates(k_Zn66_p_to_He4_Cu63_reaclib)*Y(Zn66)*Y(H1)*state.rho + -screened_rates(k_Cu63_He4_to_p_Zn66_derived)*Y(Cu63)*Y(He4)*state.rho) + + (screened_rates(k_Ga62_n_to_He4_Cu59_reaclib)*Y(Ga62)*Y(N)*state.rho + -screened_rates(k_Cu59_He4_to_n_Ga62_derived)*Y(Cu59)*Y(He4)*state.rho) + + (screened_rates(k_Ga62_p_to_He4_Zn59_reaclib)*Y(Ga62)*Y(H1)*state.rho + -screened_rates(k_Zn59_He4_to_p_Ga62_derived)*Y(He4)*Y(Zn59)*state.rho) + + (screened_rates(k_Ga63_n_to_He4_Cu60_reaclib)*Y(Ga63)*Y(N)*state.rho + -screened_rates(k_Cu60_He4_to_n_Ga63_derived)*Y(Cu60)*Y(He4)*state.rho) + + (screened_rates(k_Ga63_p_to_He4_Zn60_reaclib)*Y(Ga63)*Y(H1)*state.rho + -screened_rates(k_Zn60_He4_to_p_Ga63_derived)*Y(He4)*Y(Zn60)*state.rho) + + (screened_rates(k_Ga64_n_to_He4_Cu61_reaclib)*Y(Ga64)*Y(N)*state.rho + -screened_rates(k_Cu61_He4_to_n_Ga64_derived)*Y(Cu61)*Y(He4)*state.rho) + + (screened_rates(k_Ga64_p_to_He4_Zn61_reaclib)*Y(Ga64)*Y(H1)*state.rho + -screened_rates(k_Zn61_He4_to_p_Ga64_derived)*Y(He4)*Y(Zn61)*state.rho) + + (screened_rates(k_Ge63_n_to_He4_Zn60_reaclib)*Y(Ge63)*Y(N)*state.rho + -screened_rates(k_Zn60_He4_to_n_Ge63_derived)*Y(He4)*Y(Zn60)*state.rho) + + (screened_rates(k_Ge64_n_to_He4_Zn61_reaclib)*Y(Ge64)*Y(N)*state.rho + -screened_rates(k_Zn61_He4_to_n_Ge64_derived)*Y(He4)*Y(Zn61)*state.rho) + + (0.5*screened_rates(k_He3_He3_to_p_p_He4_reaclib)*amrex::Math::powi<2>(Y(He3))*state.rho + -0.5*screened_rates(k_He4_p_p_to_He3_He3_derived)*Y(He4)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho)) + + (2.0*screened_rates(k_Li7_d_to_n_He4_He4_reaclib)*Y(Li7)*Y(H2)*state.rho + -screened_rates(k_He4_He4_n_to_d_Li7_derived)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<2>(state.rho)) + + (2.0*screened_rates(k_Be7_d_to_p_He4_He4_reaclib)*Y(Be7)*Y(H2)*state.rho + -screened_rates(k_He4_He4_p_to_d_Be7_derived)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<2>(state.rho)) + + (2.0*screened_rates(k_Be9_p_to_d_He4_He4_reaclib)*Y(Be9)*Y(H1)*state.rho + -screened_rates(k_d_He4_He4_to_p_Be9_derived)*amrex::Math::powi<2>(Y(He4))*Y(H2)*amrex::Math::powi<2>(state.rho)) + + (2.0*screened_rates(k_B8_n_to_p_He4_He4_reaclib)*Y(B8)*Y(N)*state.rho + -screened_rates(k_He4_He4_p_to_n_B8_derived)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<2>(state.rho)) + + (3.0*screened_rates(k_B11_p_to_3He4_reaclib)*Y(B11)*Y(H1)*state.rho + -0.5*screened_rates(k_He4_He4_He4_to_p_B11_derived)*amrex::Math::powi<3>(Y(He4))*amrex::Math::powi<2>(state.rho)) + + (2.0*screened_rates(k_Li7_He3_to_n_p_He4_He4_reaclib)*Y(He3)*Y(Li7)*state.rho + -screened_rates(k_He4_He4_p_n_to_He3_Li7_derived)*amrex::Math::powi<2>(Y(He4))*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho)) + + (2.0*screened_rates(k_Be7_He3_to_p_p_He4_He4_reaclib)*Y(Be7)*Y(He3)*state.rho + -0.5*screened_rates(k_He4_He4_p_p_to_He3_Be7_derived)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<3>(state.rho)) + + (-screened_rates(k_He4_p_n_to_Li6_reaclib)*Y(He4)*Y(N)*Y(H1)*amrex::Math::powi<2>(state.rho) + screened_rates(k_Li6_to_n_p_He4_derived)*Y(Li6)) + + (-screened_rates(k_He4_He4_n_to_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<2>(state.rho) + 2.0*screened_rates(k_Be9_to_n_He4_He4_derived)*Y(Be9)) + + (-0.5*screened_rates(k_He4_He4_He4_to_C12_reaclib)*amrex::Math::powi<3>(Y(He4))*amrex::Math::powi<2>(state.rho) + 3.0*screened_rates(k_C12_to_3He4_derived)*Y(C12)) + + (screened_rates(k_F17_n_to_He4_N14_derived)*Y(F17)*Y(N)*state.rho + -screened_rates(k_N14_He4_to_n_F17_reaclib)*Y(He4)*Y(N14)*state.rho) + + (-screened_rates(k_F17_He4_to_p_Ne20_derived)*Y(F17)*Y(He4)*state.rho + screened_rates(k_Ne20_p_to_He4_F17_reaclib)*Y(Ne20)*Y(H1)*state.rho) + + (screened_rates(k_Ne21_n_to_He4_O18_derived)*Y(Ne21)*Y(N)*state.rho + -screened_rates(k_O18_He4_to_n_Ne21_reaclib)*Y(He4)*Y(O18)*state.rho) + + (-screened_rates(k_Na21_He4_to_p_Mg24_derived)*Y(He4)*Y(Na21)*state.rho + screened_rates(k_Mg24_p_to_He4_Na21_reaclib)*Y(Mg24)*Y(H1)*state.rho) + + (screened_rates(k_Mg25_n_to_He4_Ne22_derived)*Y(Mg25)*Y(N)*state.rho + -screened_rates(k_Ne22_He4_to_n_Mg25_reaclib)*Y(He4)*Y(Ne22)*state.rho) + + (screened_rates(k_P30_n_to_He4_Al27_derived)*Y(P30)*Y(N)*state.rho + -screened_rates(k_Al27_He4_to_n_P30_reaclib)*Y(Al27)*Y(He4)*state.rho) + + (screened_rates(k_Cl37_p_to_He4_S34_derived)*Y(Cl37)*Y(H1)*state.rho + -screened_rates(k_S34_He4_to_p_Cl37_reaclib)*Y(He4)*Y(S34)*state.rho) + + (screened_rates(k_Ar37_n_to_He4_S34_derived)*Y(Ar37)*Y(N)*state.rho + -screened_rates(k_S34_He4_to_n_Ar37_reaclib)*Y(He4)*Y(S34)*state.rho) + + (screened_rates(k_Sc44_n_to_He4_K41_derived)*Y(Sc44)*Y(N)*state.rho + -screened_rates(k_K41_He4_to_n_Sc44_reaclib)*Y(He4)*Y(K41)*state.rho) + + (screened_rates(k_V47_p_to_He4_Ti44_derived)*Y(V47)*Y(H1)*state.rho + -screened_rates(k_Ti44_He4_to_p_V47_reaclib)*Y(He4)*Y(Ti44)*state.rho) + + (-screened_rates(k_He4_He4_p_n_to_p_Be9_derived)*amrex::Math::powi<2>(Y(He4))*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho) + 2.0*screened_rates(k_Be9_p_to_n_p_He4_He4_reaclib)*Y(Be9)*Y(H1)*state.rho); ydot_nuc(Li6) = - (screened_rates(k_He4_d_to_Li6_reaclib)*Y(He4)*Y(H2)*state.rho + -screened_rates(k_Li6_to_He4_d_reaclib)*Y(Li6)) + - (-screened_rates(k_n_Li6_to_Li7_reaclib)*Y(Li6)*Y(N)*state.rho + screened_rates(k_Li7_to_n_Li6_reaclib)*Y(Li7)) + - (-screened_rates(k_p_Li6_to_Be7_reaclib)*Y(Li6)*Y(H1)*state.rho + screened_rates(k_Be7_to_p_Li6_reaclib)*Y(Be7)) + - (-screened_rates(k_He4_Li6_to_B10_reaclib)*Y(He4)*Y(Li6)*state.rho + screened_rates(k_B10_to_He4_Li6_reaclib)*Y(B10)) + - (-screened_rates(k_p_Li6_to_He4_He3_reaclib)*Y(Li6)*Y(H1)*state.rho + screened_rates(k_He4_He3_to_p_Li6_reaclib)*Y(He3)*Y(He4)*state.rho) + - (-screened_rates(k_d_Li6_to_n_Be7_reaclib)*Y(Li6)*Y(H2)*state.rho + screened_rates(k_n_Be7_to_d_Li6_reaclib)*Y(Be7)*Y(N)*state.rho) + - (-screened_rates(k_d_Li6_to_p_Li7_reaclib)*Y(Li6)*Y(H2)*state.rho + screened_rates(k_p_Li7_to_d_Li6_reaclib)*Y(Li7)*Y(H1)*state.rho) + - (screened_rates(k_p_Be9_to_He4_Li6_reaclib)*Y(Be9)*Y(H1)*state.rho + -screened_rates(k_He4_Li6_to_p_Be9_reaclib)*Y(He4)*Y(Li6)*state.rho) + - (screened_rates(k_n_p_He4_to_Li6_reaclib)*Y(He4)*Y(N)*Y(H1)*amrex::Math::powi<2>(state.rho) + -screened_rates(k_Li6_to_n_p_He4_reaclib)*Y(Li6)); + (screened_rates(k_d_He4_to_Li6_reaclib)*Y(He4)*Y(H2)*state.rho + -screened_rates(k_Li6_to_He4_d_derived)*Y(Li6)) + + (-screened_rates(k_Li6_n_to_Li7_reaclib)*Y(Li6)*Y(N)*state.rho + screened_rates(k_Li7_to_n_Li6_derived)*Y(Li7)) + + (-screened_rates(k_Li6_p_to_Be7_reaclib)*Y(Li6)*Y(H1)*state.rho + screened_rates(k_Be7_to_p_Li6_derived)*Y(Be7)) + + (-screened_rates(k_Li6_He4_to_B10_reaclib)*Y(He4)*Y(Li6)*state.rho + screened_rates(k_B10_to_He4_Li6_derived)*Y(B10)) + + (-screened_rates(k_Li6_p_to_He4_He3_reaclib)*Y(Li6)*Y(H1)*state.rho + screened_rates(k_He3_He4_to_p_Li6_derived)*Y(He3)*Y(He4)*state.rho) + + (-screened_rates(k_Li6_d_to_n_Be7_reaclib)*Y(Li6)*Y(H2)*state.rho + screened_rates(k_Be7_n_to_d_Li6_derived)*Y(Be7)*Y(N)*state.rho) + + (-screened_rates(k_Li6_d_to_p_Li7_reaclib)*Y(Li6)*Y(H2)*state.rho + screened_rates(k_Li7_p_to_d_Li6_derived)*Y(Li7)*Y(H1)*state.rho) + + (screened_rates(k_Be9_p_to_He4_Li6_reaclib)*Y(Be9)*Y(H1)*state.rho + -screened_rates(k_Li6_He4_to_p_Be9_derived)*Y(He4)*Y(Li6)*state.rho) + + (screened_rates(k_He4_p_n_to_Li6_reaclib)*Y(He4)*Y(N)*Y(H1)*amrex::Math::powi<2>(state.rho) + -screened_rates(k_Li6_to_n_p_He4_derived)*Y(Li6)); ydot_nuc(Li7) = - screened_rates(k_Be7_to_Li7_reaclib)*Y(Be7)*state.rho*state.y_e + - (screened_rates(k_n_Li6_to_Li7_reaclib)*Y(Li6)*Y(N)*state.rho + -screened_rates(k_Li7_to_n_Li6_reaclib)*Y(Li7)) + - (-screened_rates(k_He4_Li7_to_B11_reaclib)*Y(He4)*Y(Li7)*state.rho + screened_rates(k_B11_to_He4_Li7_reaclib)*Y(B11)) + - (screened_rates(k_d_Li6_to_p_Li7_reaclib)*Y(Li6)*Y(H2)*state.rho + -screened_rates(k_p_Li7_to_d_Li6_reaclib)*Y(Li7)*Y(H1)*state.rho) + - (-screened_rates(k_p_Li7_to_He4_He4_reaclib)*Y(Li7)*Y(H1)*state.rho + 0.5*screened_rates(k_He4_He4_to_p_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*state.rho) + - (screened_rates(k_n_Be7_to_p_Li7_reaclib)*Y(Be7)*Y(N)*state.rho + -screened_rates(k_p_Li7_to_n_Be7_reaclib)*Y(Li7)*Y(H1)*state.rho) + - (screened_rates(k_n_B10_to_He4_Li7_reaclib)*Y(B10)*Y(N)*state.rho + -screened_rates(k_He4_Li7_to_n_B10_reaclib)*Y(He4)*Y(Li7)*state.rho) + - (-screened_rates(k_d_Li7_to_n_He4_He4_reaclib)*Y(Li7)*Y(H2)*state.rho + 0.5*screened_rates(k_n_He4_He4_to_d_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<2>(state.rho)) + - (-screened_rates(k_He3_Li7_to_n_p_He4_He4_reaclib)*Y(He3)*Y(Li7)*state.rho + 0.5*screened_rates(k_n_p_He4_He4_to_He3_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho)); + screened_rates(k_Be7_to_Li7_electron_capture_reaclib)*Y(Be7)*state.rho*state.y_e + + (screened_rates(k_Li6_n_to_Li7_reaclib)*Y(Li6)*Y(N)*state.rho + -screened_rates(k_Li7_to_n_Li6_derived)*Y(Li7)) + + (-screened_rates(k_Li7_He4_to_B11_reaclib)*Y(He4)*Y(Li7)*state.rho + screened_rates(k_B11_to_He4_Li7_derived)*Y(B11)) + + (screened_rates(k_Li6_d_to_p_Li7_reaclib)*Y(Li6)*Y(H2)*state.rho + -screened_rates(k_Li7_p_to_d_Li6_derived)*Y(Li7)*Y(H1)*state.rho) + + (-screened_rates(k_Li7_p_to_He4_He4_reaclib)*Y(Li7)*Y(H1)*state.rho + 0.5*screened_rates(k_He4_He4_to_p_Li7_derived)*amrex::Math::powi<2>(Y(He4))*state.rho) + + (screened_rates(k_Be7_n_to_p_Li7_reaclib)*Y(Be7)*Y(N)*state.rho + -screened_rates(k_Li7_p_to_n_Be7_derived)*Y(Li7)*Y(H1)*state.rho) + + (screened_rates(k_B10_n_to_He4_Li7_reaclib)*Y(B10)*Y(N)*state.rho + -screened_rates(k_Li7_He4_to_n_B10_derived)*Y(He4)*Y(Li7)*state.rho) + + (-screened_rates(k_Li7_d_to_n_He4_He4_reaclib)*Y(Li7)*Y(H2)*state.rho + 0.5*screened_rates(k_He4_He4_n_to_d_Li7_derived)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<2>(state.rho)) + + (-screened_rates(k_Li7_He3_to_n_p_He4_He4_reaclib)*Y(He3)*Y(Li7)*state.rho + 0.5*screened_rates(k_He4_He4_p_n_to_He3_Li7_derived)*amrex::Math::powi<2>(Y(He4))*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho)); ydot_nuc(Be7) = - -screened_rates(k_Be7_to_Li7_reaclib)*Y(Be7)*state.rho*state.y_e + - (screened_rates(k_He4_He3_to_Be7_reaclib)*Y(He3)*Y(He4)*state.rho + -screened_rates(k_Be7_to_He4_He3_reaclib)*Y(Be7)) + - (screened_rates(k_p_Li6_to_Be7_reaclib)*Y(Li6)*Y(H1)*state.rho + -screened_rates(k_Be7_to_p_Li6_reaclib)*Y(Be7)) + - (-screened_rates(k_p_Be7_to_B8_reaclib)*Y(Be7)*Y(H1)*state.rho + screened_rates(k_B8_to_p_Be7_reaclib)*Y(B8)) + - (screened_rates(k_d_Li6_to_n_Be7_reaclib)*Y(Li6)*Y(H2)*state.rho + -screened_rates(k_n_Be7_to_d_Li6_reaclib)*Y(Be7)*Y(N)*state.rho) + - (-screened_rates(k_n_Be7_to_p_Li7_reaclib)*Y(Be7)*Y(N)*state.rho + screened_rates(k_p_Li7_to_n_Be7_reaclib)*Y(Li7)*Y(H1)*state.rho) + - (-screened_rates(k_n_Be7_to_He4_He4_reaclib)*Y(Be7)*Y(N)*state.rho + 0.5*screened_rates(k_He4_He4_to_n_Be7_reaclib)*amrex::Math::powi<2>(Y(He4))*state.rho) + - (screened_rates(k_p_B10_to_He4_Be7_reaclib)*Y(B10)*Y(H1)*state.rho + -screened_rates(k_He4_Be7_to_p_B10_reaclib)*Y(Be7)*Y(He4)*state.rho) + - (-screened_rates(k_d_Be7_to_p_He4_He4_reaclib)*Y(Be7)*Y(H2)*state.rho + 0.5*screened_rates(k_p_He4_He4_to_d_Be7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<2>(state.rho)) + - (-screened_rates(k_He3_Be7_to_p_p_He4_He4_reaclib)*Y(Be7)*Y(He3)*state.rho + 0.25*screened_rates(k_p_p_He4_He4_to_He3_Be7_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<3>(state.rho)); + -screened_rates(k_Be7_to_Li7_electron_capture_reaclib)*Y(Be7)*state.rho*state.y_e + + (screened_rates(k_He3_He4_to_Be7_reaclib)*Y(He3)*Y(He4)*state.rho + -screened_rates(k_Be7_to_He4_He3_derived)*Y(Be7)) + + (screened_rates(k_Li6_p_to_Be7_reaclib)*Y(Li6)*Y(H1)*state.rho + -screened_rates(k_Be7_to_p_Li6_derived)*Y(Be7)) + + (-screened_rates(k_Be7_p_to_B8_reaclib)*Y(Be7)*Y(H1)*state.rho + screened_rates(k_B8_to_p_Be7_derived)*Y(B8)) + + (screened_rates(k_Li6_d_to_n_Be7_reaclib)*Y(Li6)*Y(H2)*state.rho + -screened_rates(k_Be7_n_to_d_Li6_derived)*Y(Be7)*Y(N)*state.rho) + + (-screened_rates(k_Be7_n_to_p_Li7_reaclib)*Y(Be7)*Y(N)*state.rho + screened_rates(k_Li7_p_to_n_Be7_derived)*Y(Li7)*Y(H1)*state.rho) + + (-screened_rates(k_Be7_n_to_He4_He4_reaclib)*Y(Be7)*Y(N)*state.rho + 0.5*screened_rates(k_He4_He4_to_n_Be7_derived)*amrex::Math::powi<2>(Y(He4))*state.rho) + + (screened_rates(k_B10_p_to_He4_Be7_reaclib)*Y(B10)*Y(H1)*state.rho + -screened_rates(k_Be7_He4_to_p_B10_derived)*Y(Be7)*Y(He4)*state.rho) + + (-screened_rates(k_Be7_d_to_p_He4_He4_reaclib)*Y(Be7)*Y(H2)*state.rho + 0.5*screened_rates(k_He4_He4_p_to_d_Be7_derived)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<2>(state.rho)) + + (-screened_rates(k_Be7_He3_to_p_p_He4_He4_reaclib)*Y(Be7)*Y(He3)*state.rho + 0.25*screened_rates(k_He4_He4_p_p_to_He3_Be7_derived)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<3>(state.rho)); ydot_nuc(Be9) = - (-screened_rates(k_p_Be9_to_B10_reaclib)*Y(Be9)*Y(H1)*state.rho + screened_rates(k_B10_to_p_Be9_reaclib)*Y(B10)) + - (-screened_rates(k_p_Be9_to_He4_Li6_reaclib)*Y(Be9)*Y(H1)*state.rho + screened_rates(k_He4_Li6_to_p_Be9_reaclib)*Y(He4)*Y(Li6)*state.rho) + - (-screened_rates(k_He4_Be9_to_n_C12_reaclib)*Y(Be9)*Y(He4)*state.rho + screened_rates(k_n_C12_to_He4_Be9_reaclib)*Y(C12)*Y(N)*state.rho) + - (-screened_rates(k_p_Be9_to_d_He4_He4_reaclib)*Y(Be9)*Y(H1)*state.rho + 0.5*screened_rates(k_d_He4_He4_to_p_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(H2)*amrex::Math::powi<2>(state.rho)) + - (0.5*screened_rates(k_n_He4_He4_to_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<2>(state.rho) + -screened_rates(k_Be9_to_n_He4_He4_reaclib)*Y(Be9)) + - (0.5*screened_rates(k_n_p_He4_He4_to_p_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho) + -screened_rates(k_p_Be9_to_n_p_He4_He4_reaclib)*Y(Be9)*Y(H1)*state.rho); + (-screened_rates(k_Be9_p_to_B10_reaclib)*Y(Be9)*Y(H1)*state.rho + screened_rates(k_B10_to_p_Be9_derived)*Y(B10)) + + (-screened_rates(k_Be9_p_to_He4_Li6_reaclib)*Y(Be9)*Y(H1)*state.rho + screened_rates(k_Li6_He4_to_p_Be9_derived)*Y(He4)*Y(Li6)*state.rho) + + (-screened_rates(k_Be9_He4_to_n_C12_reaclib)*Y(Be9)*Y(He4)*state.rho + screened_rates(k_C12_n_to_He4_Be9_derived)*Y(C12)*Y(N)*state.rho) + + (-screened_rates(k_Be9_p_to_d_He4_He4_reaclib)*Y(Be9)*Y(H1)*state.rho + 0.5*screened_rates(k_d_He4_He4_to_p_Be9_derived)*amrex::Math::powi<2>(Y(He4))*Y(H2)*amrex::Math::powi<2>(state.rho)) + + (0.5*screened_rates(k_He4_He4_n_to_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<2>(state.rho) + -screened_rates(k_Be9_to_n_He4_He4_derived)*Y(Be9)) + + (0.5*screened_rates(k_He4_He4_p_n_to_p_Be9_derived)*amrex::Math::powi<2>(Y(He4))*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho) + -screened_rates(k_Be9_p_to_n_p_He4_He4_reaclib)*Y(Be9)*Y(H1)*state.rho); ydot_nuc(B8) = - -screened_rates(k_B8_to_He4_He4_reaclib)*Y(B8) + - (screened_rates(k_p_Be7_to_B8_reaclib)*Y(Be7)*Y(H1)*state.rho + -screened_rates(k_B8_to_p_Be7_reaclib)*Y(B8)) + - (-screened_rates(k_n_B8_to_p_He4_He4_reaclib)*Y(B8)*Y(N)*state.rho + 0.5*screened_rates(k_p_He4_He4_to_n_B8_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<2>(state.rho)); + -screened_rates(k_B8_to_He4_He4_beta_pos_reaclib)*Y(B8) + + (screened_rates(k_Be7_p_to_B8_reaclib)*Y(Be7)*Y(H1)*state.rho + -screened_rates(k_B8_to_p_Be7_derived)*Y(B8)) + + (-screened_rates(k_B8_n_to_p_He4_He4_reaclib)*Y(B8)*Y(N)*state.rho + 0.5*screened_rates(k_He4_He4_p_to_n_B8_derived)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<2>(state.rho)); ydot_nuc(B10) = - (screened_rates(k_He4_Li6_to_B10_reaclib)*Y(He4)*Y(Li6)*state.rho + -screened_rates(k_B10_to_He4_Li6_reaclib)*Y(B10)) + - (screened_rates(k_p_Be9_to_B10_reaclib)*Y(Be9)*Y(H1)*state.rho + -screened_rates(k_B10_to_p_Be9_reaclib)*Y(B10)) + - (-screened_rates(k_n_B10_to_B11_reaclib)*Y(B10)*Y(N)*state.rho + screened_rates(k_B11_to_n_B10_reaclib)*Y(B11)) + - (-screened_rates(k_n_B10_to_He4_Li7_reaclib)*Y(B10)*Y(N)*state.rho + screened_rates(k_He4_Li7_to_n_B10_reaclib)*Y(He4)*Y(Li7)*state.rho) + - (-screened_rates(k_p_B10_to_He4_Be7_reaclib)*Y(B10)*Y(H1)*state.rho + screened_rates(k_He4_Be7_to_p_B10_reaclib)*Y(Be7)*Y(He4)*state.rho) + - (-screened_rates(k_He4_B10_to_n_N13_reaclib)*Y(B10)*Y(He4)*state.rho + screened_rates(k_n_N13_to_He4_B10_reaclib)*Y(N13)*Y(N)*state.rho) + - (-screened_rates(k_He4_B10_to_p_C13_reaclib)*Y(B10)*Y(He4)*state.rho + screened_rates(k_p_C13_to_He4_B10_reaclib)*Y(C13)*Y(H1)*state.rho); + (screened_rates(k_Li6_He4_to_B10_reaclib)*Y(He4)*Y(Li6)*state.rho + -screened_rates(k_B10_to_He4_Li6_derived)*Y(B10)) + + (screened_rates(k_Be9_p_to_B10_reaclib)*Y(Be9)*Y(H1)*state.rho + -screened_rates(k_B10_to_p_Be9_derived)*Y(B10)) + + (-screened_rates(k_B10_n_to_B11_reaclib)*Y(B10)*Y(N)*state.rho + screened_rates(k_B11_to_n_B10_derived)*Y(B11)) + + (-screened_rates(k_B10_n_to_He4_Li7_reaclib)*Y(B10)*Y(N)*state.rho + screened_rates(k_Li7_He4_to_n_B10_derived)*Y(He4)*Y(Li7)*state.rho) + + (-screened_rates(k_B10_p_to_He4_Be7_reaclib)*Y(B10)*Y(H1)*state.rho + screened_rates(k_Be7_He4_to_p_B10_derived)*Y(Be7)*Y(He4)*state.rho) + + (-screened_rates(k_B10_He4_to_n_N13_reaclib)*Y(B10)*Y(He4)*state.rho + screened_rates(k_N13_n_to_He4_B10_derived)*Y(N13)*Y(N)*state.rho) + + (-screened_rates(k_B10_He4_to_p_C13_reaclib)*Y(B10)*Y(He4)*state.rho + screened_rates(k_C13_p_to_He4_B10_derived)*Y(C13)*Y(H1)*state.rho); ydot_nuc(B11) = - (screened_rates(k_He4_Li7_to_B11_reaclib)*Y(He4)*Y(Li7)*state.rho + -screened_rates(k_B11_to_He4_Li7_reaclib)*Y(B11)) + - (screened_rates(k_n_B10_to_B11_reaclib)*Y(B10)*Y(N)*state.rho + -screened_rates(k_B11_to_n_B10_reaclib)*Y(B11)) + - (-screened_rates(k_p_B11_to_C12_reaclib)*Y(B11)*Y(H1)*state.rho + screened_rates(k_C12_to_p_B11_reaclib)*Y(C12)) + - (-screened_rates(k_He4_B11_to_n_N14_reaclib)*Y(B11)*Y(He4)*state.rho + screened_rates(k_n_N14_to_He4_B11_reaclib)*Y(N14)*Y(N)*state.rho) + - (-screened_rates(k_He4_B11_to_p_C14_reaclib)*Y(B11)*Y(He4)*state.rho + screened_rates(k_p_C14_to_He4_B11_reaclib)*Y(C14)*Y(H1)*state.rho) + - (-screened_rates(k_p_B11_to_He4_He4_He4_reaclib)*Y(B11)*Y(H1)*state.rho + 0.16666666666666667*screened_rates(k_He4_He4_He4_to_p_B11_reaclib)*amrex::Math::powi<3>(Y(He4))*amrex::Math::powi<2>(state.rho)); + (screened_rates(k_Li7_He4_to_B11_reaclib)*Y(He4)*Y(Li7)*state.rho + -screened_rates(k_B11_to_He4_Li7_derived)*Y(B11)) + + (screened_rates(k_B10_n_to_B11_reaclib)*Y(B10)*Y(N)*state.rho + -screened_rates(k_B11_to_n_B10_derived)*Y(B11)) + + (-screened_rates(k_B11_p_to_C12_reaclib)*Y(B11)*Y(H1)*state.rho + screened_rates(k_C12_to_p_B11_derived)*Y(C12)) + + (-screened_rates(k_B11_He4_to_n_N14_reaclib)*Y(B11)*Y(He4)*state.rho + screened_rates(k_N14_n_to_He4_B11_derived)*Y(N14)*Y(N)*state.rho) + + (-screened_rates(k_B11_He4_to_p_C14_reaclib)*Y(B11)*Y(He4)*state.rho + screened_rates(k_C14_p_to_He4_B11_derived)*Y(C14)*Y(H1)*state.rho) + + (-screened_rates(k_B11_p_to_3He4_reaclib)*Y(B11)*Y(H1)*state.rho + 0.16666666666666667*screened_rates(k_He4_He4_He4_to_p_B11_derived)*amrex::Math::powi<3>(Y(He4))*amrex::Math::powi<2>(state.rho)); ydot_nuc(C12) = - (screened_rates(k_p_B11_to_C12_reaclib)*Y(B11)*Y(H1)*state.rho + -screened_rates(k_C12_to_p_B11_reaclib)*Y(C12)) + - (-screened_rates(k_n_C12_to_C13_reaclib)*Y(C12)*Y(N)*state.rho + screened_rates(k_C13_to_n_C12_reaclib)*Y(C13)) + - (-screened_rates(k_p_C12_to_N13_reaclib)*Y(C12)*Y(H1)*state.rho + screened_rates(k_N13_to_p_C12_reaclib)*Y(N13)) + - (-screened_rates(k_He4_C12_to_O16_reaclib)*Y(C12)*Y(He4)*state.rho + screened_rates(k_O16_to_He4_C12_reaclib)*Y(O16)) + - (screened_rates(k_He4_Be9_to_n_C12_reaclib)*Y(Be9)*Y(He4)*state.rho + -screened_rates(k_n_C12_to_He4_Be9_reaclib)*Y(C12)*Y(N)*state.rho) + - (-screened_rates(k_C12_C12_to_p_Na23_reaclib)*amrex::Math::powi<2>(Y(C12))*state.rho + 2.0*screened_rates(k_p_Na23_to_C12_C12_reaclib)*Y(Na23)*Y(H1)*state.rho) + - (-screened_rates(k_C12_C12_to_He4_Ne20_reaclib)*amrex::Math::powi<2>(Y(C12))*state.rho + 2.0*screened_rates(k_He4_Ne20_to_C12_C12_reaclib)*Y(He4)*Y(Ne20)*state.rho) + - (screened_rates(k_p_N15_to_He4_C12_reaclib)*Y(N15)*Y(H1)*state.rho + -screened_rates(k_He4_C12_to_p_N15_reaclib)*Y(C12)*Y(He4)*state.rho) + - (screened_rates(k_n_O15_to_He4_C12_reaclib)*Y(O15)*Y(N)*state.rho + -screened_rates(k_He4_C12_to_n_O15_reaclib)*Y(C12)*Y(He4)*state.rho) + - (-screened_rates(k_C12_O16_to_p_Al27_reaclib)*Y(C12)*Y(O16)*state.rho + screened_rates(k_p_Al27_to_C12_O16_reaclib)*Y(Al27)*Y(H1)*state.rho) + - (-screened_rates(k_C12_O16_to_He4_Mg24_reaclib)*Y(C12)*Y(O16)*state.rho + screened_rates(k_He4_Mg24_to_C12_O16_reaclib)*Y(He4)*Y(Mg24)*state.rho) + - (-screened_rates(k_C12_Ne20_to_p_P31_reaclib)*Y(C12)*Y(Ne20)*state.rho + screened_rates(k_p_P31_to_C12_Ne20_reaclib)*Y(P31)*Y(H1)*state.rho) + - (-screened_rates(k_C12_Ne20_to_He4_Si28_reaclib)*Y(C12)*Y(Ne20)*state.rho + screened_rates(k_He4_Si28_to_C12_Ne20_reaclib)*Y(He4)*Y(Si28)*state.rho) + - (2.0*screened_rates(k_n_Mg23_to_C12_C12_reaclib)*Y(Mg23)*Y(N)*state.rho + -screened_rates(k_C12_C12_to_n_Mg23_reaclib)*amrex::Math::powi<2>(Y(C12))*state.rho) + - (0.16666666666666667*screened_rates(k_He4_He4_He4_to_C12_reaclib)*amrex::Math::powi<3>(Y(He4))*amrex::Math::powi<2>(state.rho) + -screened_rates(k_C12_to_He4_He4_He4_reaclib)*Y(C12)); + (screened_rates(k_B11_p_to_C12_reaclib)*Y(B11)*Y(H1)*state.rho + -screened_rates(k_C12_to_p_B11_derived)*Y(C12)) + + (-screened_rates(k_C12_n_to_C13_reaclib)*Y(C12)*Y(N)*state.rho + screened_rates(k_C13_to_n_C12_derived)*Y(C13)) + + (-screened_rates(k_C12_p_to_N13_reaclib)*Y(C12)*Y(H1)*state.rho + screened_rates(k_N13_to_p_C12_derived)*Y(N13)) + + (-screened_rates(k_C12_He4_to_O16_reaclib)*Y(C12)*Y(He4)*state.rho + screened_rates(k_O16_to_He4_C12_derived)*Y(O16)) + + (screened_rates(k_Be9_He4_to_n_C12_reaclib)*Y(Be9)*Y(He4)*state.rho + -screened_rates(k_C12_n_to_He4_Be9_derived)*Y(C12)*Y(N)*state.rho) + + (-screened_rates(k_C12_C12_to_p_Na23_reaclib)*amrex::Math::powi<2>(Y(C12))*state.rho + 2.0*screened_rates(k_Na23_p_to_C12_C12_derived)*Y(Na23)*Y(H1)*state.rho) + + (-screened_rates(k_C12_C12_to_He4_Ne20_reaclib)*amrex::Math::powi<2>(Y(C12))*state.rho + 2.0*screened_rates(k_Ne20_He4_to_C12_C12_derived)*Y(He4)*Y(Ne20)*state.rho) + + (screened_rates(k_N15_p_to_He4_C12_reaclib)*Y(N15)*Y(H1)*state.rho + -screened_rates(k_C12_He4_to_p_N15_derived)*Y(C12)*Y(He4)*state.rho) + + (screened_rates(k_O15_n_to_He4_C12_reaclib)*Y(O15)*Y(N)*state.rho + -screened_rates(k_C12_He4_to_n_O15_derived)*Y(C12)*Y(He4)*state.rho) + + (-screened_rates(k_O16_C12_to_p_Al27_reaclib)*Y(C12)*Y(O16)*state.rho + screened_rates(k_Al27_p_to_C12_O16_derived)*Y(Al27)*Y(H1)*state.rho) + + (-screened_rates(k_O16_C12_to_He4_Mg24_reaclib)*Y(C12)*Y(O16)*state.rho + screened_rates(k_Mg24_He4_to_C12_O16_derived)*Y(He4)*Y(Mg24)*state.rho) + + (-screened_rates(k_Ne20_C12_to_p_P31_reaclib)*Y(C12)*Y(Ne20)*state.rho + screened_rates(k_P31_p_to_C12_Ne20_derived)*Y(P31)*Y(H1)*state.rho) + + (-screened_rates(k_Ne20_C12_to_He4_Si28_reaclib)*Y(C12)*Y(Ne20)*state.rho + screened_rates(k_Si28_He4_to_C12_Ne20_derived)*Y(He4)*Y(Si28)*state.rho) + + (2.0*screened_rates(k_Mg23_n_to_C12_C12_reaclib)*Y(Mg23)*Y(N)*state.rho + -screened_rates(k_C12_C12_to_n_Mg23_derived)*amrex::Math::powi<2>(Y(C12))*state.rho) + + (0.16666666666666667*screened_rates(k_He4_He4_He4_to_C12_reaclib)*amrex::Math::powi<3>(Y(He4))*amrex::Math::powi<2>(state.rho) + -screened_rates(k_C12_to_3He4_derived)*Y(C12)); ydot_nuc(C13) = - screened_rates(k_N13_to_C13_reaclib)*Y(N13) + - (screened_rates(k_n_C12_to_C13_reaclib)*Y(C12)*Y(N)*state.rho + -screened_rates(k_C13_to_n_C12_reaclib)*Y(C13)) + - (-screened_rates(k_n_C13_to_C14_reaclib)*Y(C13)*Y(N)*state.rho + screened_rates(k_C14_to_n_C13_reaclib)*Y(C14)) + - (-screened_rates(k_p_C13_to_N14_reaclib)*Y(C13)*Y(H1)*state.rho + screened_rates(k_N14_to_p_C13_reaclib)*Y(N14)) + - (screened_rates(k_He4_B10_to_p_C13_reaclib)*Y(B10)*Y(He4)*state.rho + -screened_rates(k_p_C13_to_He4_B10_reaclib)*Y(C13)*Y(H1)*state.rho) + - (-screened_rates(k_d_C13_to_n_N14_reaclib)*Y(C13)*Y(H2)*state.rho + screened_rates(k_n_N14_to_d_C13_reaclib)*Y(N14)*Y(N)*state.rho) + - (-screened_rates(k_He4_C13_to_n_O16_reaclib)*Y(C13)*Y(He4)*state.rho + screened_rates(k_n_O16_to_He4_C13_reaclib)*Y(O16)*Y(N)*state.rho) + - (screened_rates(k_n_N13_to_p_C13_reaclib)*Y(N13)*Y(N)*state.rho + -screened_rates(k_p_C13_to_n_N13_reaclib)*Y(C13)*Y(H1)*state.rho); + screened_rates(k_N13_to_C13_beta_pos_reaclib)*Y(N13) + + (screened_rates(k_C12_n_to_C13_reaclib)*Y(C12)*Y(N)*state.rho + -screened_rates(k_C13_to_n_C12_derived)*Y(C13)) + + (-screened_rates(k_C13_n_to_C14_reaclib)*Y(C13)*Y(N)*state.rho + screened_rates(k_C14_to_n_C13_derived)*Y(C14)) + + (-screened_rates(k_C13_p_to_N14_reaclib)*Y(C13)*Y(H1)*state.rho + screened_rates(k_N14_to_p_C13_derived)*Y(N14)) + + (screened_rates(k_B10_He4_to_p_C13_reaclib)*Y(B10)*Y(He4)*state.rho + -screened_rates(k_C13_p_to_He4_B10_derived)*Y(C13)*Y(H1)*state.rho) + + (-screened_rates(k_C13_d_to_n_N14_reaclib)*Y(C13)*Y(H2)*state.rho + screened_rates(k_N14_n_to_d_C13_derived)*Y(N14)*Y(N)*state.rho) + + (-screened_rates(k_C13_He4_to_n_O16_reaclib)*Y(C13)*Y(He4)*state.rho + screened_rates(k_O16_n_to_He4_C13_derived)*Y(O16)*Y(N)*state.rho) + + (screened_rates(k_N13_n_to_p_C13_derived)*Y(N13)*Y(N)*state.rho + -screened_rates(k_C13_p_to_n_N13_reaclib)*Y(C13)*Y(H1)*state.rho); ydot_nuc(C14) = - -screened_rates(k_C14_to_N14_reaclib)*Y(C14) + - (screened_rates(k_n_C13_to_C14_reaclib)*Y(C13)*Y(N)*state.rho + -screened_rates(k_C14_to_n_C13_reaclib)*Y(C14)) + - (-screened_rates(k_p_C14_to_N15_reaclib)*Y(C14)*Y(H1)*state.rho + screened_rates(k_N15_to_p_C14_reaclib)*Y(N15)) + - (-screened_rates(k_He4_C14_to_O18_reaclib)*Y(C14)*Y(He4)*state.rho + screened_rates(k_O18_to_He4_C14_reaclib)*Y(O18)) + - (screened_rates(k_He4_B11_to_p_C14_reaclib)*Y(B11)*Y(He4)*state.rho + -screened_rates(k_p_C14_to_He4_B11_reaclib)*Y(C14)*Y(H1)*state.rho) + - (-screened_rates(k_d_C14_to_n_N15_reaclib)*Y(C14)*Y(H2)*state.rho + screened_rates(k_n_N15_to_d_C14_reaclib)*Y(N15)*Y(N)*state.rho) + - (screened_rates(k_n_N14_to_p_C14_reaclib)*Y(N14)*Y(N)*state.rho + -screened_rates(k_p_C14_to_n_N14_reaclib)*Y(C14)*Y(H1)*state.rho) + - (screened_rates(k_n_O17_to_He4_C14_reaclib)*Y(O17)*Y(N)*state.rho + -screened_rates(k_He4_C14_to_n_O17_reaclib)*Y(C14)*Y(He4)*state.rho); + -screened_rates(k_C14_to_N14_beta_neg_reaclib)*Y(C14) + + (screened_rates(k_C13_n_to_C14_reaclib)*Y(C13)*Y(N)*state.rho + -screened_rates(k_C14_to_n_C13_derived)*Y(C14)) + + (-screened_rates(k_C14_p_to_N15_reaclib)*Y(C14)*Y(H1)*state.rho + screened_rates(k_N15_to_p_C14_derived)*Y(N15)) + + (-screened_rates(k_C14_He4_to_O18_reaclib)*Y(C14)*Y(He4)*state.rho + screened_rates(k_O18_to_He4_C14_derived)*Y(O18)) + + (screened_rates(k_B11_He4_to_p_C14_reaclib)*Y(B11)*Y(He4)*state.rho + -screened_rates(k_C14_p_to_He4_B11_derived)*Y(C14)*Y(H1)*state.rho) + + (-screened_rates(k_C14_d_to_n_N15_reaclib)*Y(C14)*Y(H2)*state.rho + screened_rates(k_N15_n_to_d_C14_derived)*Y(N15)*Y(N)*state.rho) + + (screened_rates(k_N14_n_to_p_C14_reaclib)*Y(N14)*Y(N)*state.rho + -screened_rates(k_C14_p_to_n_N14_derived)*Y(C14)*Y(H1)*state.rho) + + (screened_rates(k_O17_n_to_He4_C14_reaclib)*Y(O17)*Y(N)*state.rho + -screened_rates(k_C14_He4_to_n_O17_derived)*Y(C14)*Y(He4)*state.rho); ydot_nuc(N13) = - -screened_rates(k_N13_to_C13_reaclib)*Y(N13) + - (screened_rates(k_p_C12_to_N13_reaclib)*Y(C12)*Y(H1)*state.rho + -screened_rates(k_N13_to_p_C12_reaclib)*Y(N13)) + - (-screened_rates(k_n_N13_to_N14_reaclib)*Y(N13)*Y(N)*state.rho + screened_rates(k_N14_to_n_N13_reaclib)*Y(N14)) + - (-screened_rates(k_p_N13_to_O14_reaclib)*Y(N13)*Y(H1)*state.rho + screened_rates(k_O14_to_p_N13_reaclib)*Y(O14)) + - (screened_rates(k_He4_B10_to_n_N13_reaclib)*Y(B10)*Y(He4)*state.rho + -screened_rates(k_n_N13_to_He4_B10_reaclib)*Y(N13)*Y(N)*state.rho) + - (-screened_rates(k_n_N13_to_p_C13_reaclib)*Y(N13)*Y(N)*state.rho + screened_rates(k_p_C13_to_n_N13_reaclib)*Y(C13)*Y(H1)*state.rho) + - (-screened_rates(k_He4_N13_to_p_O16_reaclib)*Y(He4)*Y(N13)*state.rho + screened_rates(k_p_O16_to_He4_N13_reaclib)*Y(O16)*Y(H1)*state.rho); + -screened_rates(k_N13_to_C13_beta_pos_reaclib)*Y(N13) + + (screened_rates(k_C12_p_to_N13_reaclib)*Y(C12)*Y(H1)*state.rho + -screened_rates(k_N13_to_p_C12_derived)*Y(N13)) + + (-screened_rates(k_N13_n_to_N14_reaclib)*Y(N13)*Y(N)*state.rho + screened_rates(k_N14_to_n_N13_derived)*Y(N14)) + + (-screened_rates(k_N13_p_to_O14_reaclib)*Y(N13)*Y(H1)*state.rho + screened_rates(k_O14_to_p_N13_derived)*Y(O14)) + + (screened_rates(k_B10_He4_to_n_N13_reaclib)*Y(B10)*Y(He4)*state.rho + -screened_rates(k_N13_n_to_He4_B10_derived)*Y(N13)*Y(N)*state.rho) + + (-screened_rates(k_N13_He4_to_p_O16_reaclib)*Y(He4)*Y(N13)*state.rho + screened_rates(k_O16_p_to_He4_N13_derived)*Y(O16)*Y(H1)*state.rho) + + (-screened_rates(k_N13_n_to_p_C13_derived)*Y(N13)*Y(N)*state.rho + screened_rates(k_C13_p_to_n_N13_reaclib)*Y(C13)*Y(H1)*state.rho); ydot_nuc(N14) = - screened_rates(k_C14_to_N14_reaclib)*Y(C14) + - screened_rates(k_O14_to_N14_reaclib)*Y(O14) + - (screened_rates(k_p_C13_to_N14_reaclib)*Y(C13)*Y(H1)*state.rho + -screened_rates(k_N14_to_p_C13_reaclib)*Y(N14)) + - (screened_rates(k_n_N13_to_N14_reaclib)*Y(N13)*Y(N)*state.rho + -screened_rates(k_N14_to_n_N13_reaclib)*Y(N14)) + - (-screened_rates(k_n_N14_to_N15_reaclib)*Y(N14)*Y(N)*state.rho + screened_rates(k_N15_to_n_N14_reaclib)*Y(N15)) + - (-screened_rates(k_p_N14_to_O15_reaclib)*Y(N14)*Y(H1)*state.rho + screened_rates(k_O15_to_p_N14_reaclib)*Y(O15)) + - (-screened_rates(k_He4_N14_to_F18_reaclib)*Y(He4)*Y(N14)*state.rho + screened_rates(k_F18_to_He4_N14_reaclib)*Y(F18)) + - (screened_rates(k_He4_B11_to_n_N14_reaclib)*Y(B11)*Y(He4)*state.rho + -screened_rates(k_n_N14_to_He4_B11_reaclib)*Y(N14)*Y(N)*state.rho) + - (screened_rates(k_d_C13_to_n_N14_reaclib)*Y(C13)*Y(H2)*state.rho + -screened_rates(k_n_N14_to_d_C13_reaclib)*Y(N14)*Y(N)*state.rho) + - (-screened_rates(k_n_N14_to_p_C14_reaclib)*Y(N14)*Y(N)*state.rho + screened_rates(k_p_C14_to_n_N14_reaclib)*Y(C14)*Y(H1)*state.rho) + - (screened_rates(k_n_O14_to_p_N14_reaclib)*Y(O14)*Y(N)*state.rho + -screened_rates(k_p_N14_to_n_O14_reaclib)*Y(N14)*Y(H1)*state.rho) + - (screened_rates(k_p_O17_to_He4_N14_reaclib)*Y(O17)*Y(H1)*state.rho + -screened_rates(k_He4_N14_to_p_O17_reaclib)*Y(He4)*Y(N14)*state.rho) + - (screened_rates(k_n_F17_to_He4_N14_reaclib)*Y(F17)*Y(N)*state.rho + -screened_rates(k_He4_N14_to_n_F17_reaclib)*Y(He4)*Y(N14)*state.rho); + screened_rates(k_C14_to_N14_beta_neg_reaclib)*Y(C14) + + screened_rates(k_O14_to_N14_beta_pos_reaclib)*Y(O14) + + (screened_rates(k_C13_p_to_N14_reaclib)*Y(C13)*Y(H1)*state.rho + -screened_rates(k_N14_to_p_C13_derived)*Y(N14)) + + (screened_rates(k_N13_n_to_N14_reaclib)*Y(N13)*Y(N)*state.rho + -screened_rates(k_N14_to_n_N13_derived)*Y(N14)) + + (-screened_rates(k_N14_n_to_N15_reaclib)*Y(N14)*Y(N)*state.rho + screened_rates(k_N15_to_n_N14_derived)*Y(N15)) + + (-screened_rates(k_N14_p_to_O15_reaclib)*Y(N14)*Y(H1)*state.rho + screened_rates(k_O15_to_p_N14_derived)*Y(O15)) + + (-screened_rates(k_N14_He4_to_F18_reaclib)*Y(He4)*Y(N14)*state.rho + screened_rates(k_F18_to_He4_N14_derived)*Y(F18)) + + (screened_rates(k_B11_He4_to_n_N14_reaclib)*Y(B11)*Y(He4)*state.rho + -screened_rates(k_N14_n_to_He4_B11_derived)*Y(N14)*Y(N)*state.rho) + + (screened_rates(k_C13_d_to_n_N14_reaclib)*Y(C13)*Y(H2)*state.rho + -screened_rates(k_N14_n_to_d_C13_derived)*Y(N14)*Y(N)*state.rho) + + (-screened_rates(k_N14_n_to_p_C14_reaclib)*Y(N14)*Y(N)*state.rho + screened_rates(k_C14_p_to_n_N14_derived)*Y(C14)*Y(H1)*state.rho) + + (screened_rates(k_O17_p_to_He4_N14_reaclib)*Y(O17)*Y(H1)*state.rho + -screened_rates(k_N14_He4_to_p_O17_derived)*Y(He4)*Y(N14)*state.rho) + + (screened_rates(k_O14_n_to_p_N14_derived)*Y(O14)*Y(N)*state.rho + -screened_rates(k_N14_p_to_n_O14_reaclib)*Y(N14)*Y(H1)*state.rho) + + (screened_rates(k_F17_n_to_He4_N14_derived)*Y(F17)*Y(N)*state.rho + -screened_rates(k_N14_He4_to_n_F17_reaclib)*Y(He4)*Y(N14)*state.rho); ydot_nuc(N15) = - screened_rates(k_O15_to_N15_reaclib)*Y(O15) + - (screened_rates(k_p_C14_to_N15_reaclib)*Y(C14)*Y(H1)*state.rho + -screened_rates(k_N15_to_p_C14_reaclib)*Y(N15)) + - (screened_rates(k_n_N14_to_N15_reaclib)*Y(N14)*Y(N)*state.rho + -screened_rates(k_N15_to_n_N14_reaclib)*Y(N15)) + - (-screened_rates(k_p_N15_to_O16_reaclib)*Y(N15)*Y(H1)*state.rho + screened_rates(k_O16_to_p_N15_reaclib)*Y(O16)) + - (-screened_rates(k_He4_N15_to_F19_reaclib)*Y(He4)*Y(N15)*state.rho + screened_rates(k_F19_to_He4_N15_reaclib)*Y(F19)) + - (screened_rates(k_d_C14_to_n_N15_reaclib)*Y(C14)*Y(H2)*state.rho + -screened_rates(k_n_N15_to_d_C14_reaclib)*Y(N15)*Y(N)*state.rho) + - (-screened_rates(k_p_N15_to_He4_C12_reaclib)*Y(N15)*Y(H1)*state.rho + screened_rates(k_He4_C12_to_p_N15_reaclib)*Y(C12)*Y(He4)*state.rho) + - (screened_rates(k_n_O15_to_p_N15_reaclib)*Y(O15)*Y(N)*state.rho + -screened_rates(k_p_N15_to_n_O15_reaclib)*Y(N15)*Y(H1)*state.rho) + - (screened_rates(k_p_O18_to_He4_N15_reaclib)*Y(O18)*Y(H1)*state.rho + -screened_rates(k_He4_N15_to_p_O18_reaclib)*Y(He4)*Y(N15)*state.rho) + - (screened_rates(k_n_F18_to_He4_N15_reaclib)*Y(F18)*Y(N)*state.rho + -screened_rates(k_He4_N15_to_n_F18_reaclib)*Y(He4)*Y(N15)*state.rho); + screened_rates(k_O15_to_N15_beta_pos_reaclib)*Y(O15) + + (screened_rates(k_C14_p_to_N15_reaclib)*Y(C14)*Y(H1)*state.rho + -screened_rates(k_N15_to_p_C14_derived)*Y(N15)) + + (screened_rates(k_N14_n_to_N15_reaclib)*Y(N14)*Y(N)*state.rho + -screened_rates(k_N15_to_n_N14_derived)*Y(N15)) + + (-screened_rates(k_N15_p_to_O16_reaclib)*Y(N15)*Y(H1)*state.rho + screened_rates(k_O16_to_p_N15_derived)*Y(O16)) + + (-screened_rates(k_N15_He4_to_F19_reaclib)*Y(He4)*Y(N15)*state.rho + screened_rates(k_F19_to_He4_N15_derived)*Y(F19)) + + (screened_rates(k_C14_d_to_n_N15_reaclib)*Y(C14)*Y(H2)*state.rho + -screened_rates(k_N15_n_to_d_C14_derived)*Y(N15)*Y(N)*state.rho) + + (-screened_rates(k_N15_p_to_He4_C12_reaclib)*Y(N15)*Y(H1)*state.rho + screened_rates(k_C12_He4_to_p_N15_derived)*Y(C12)*Y(He4)*state.rho) + + (screened_rates(k_O18_p_to_He4_N15_reaclib)*Y(O18)*Y(H1)*state.rho + -screened_rates(k_N15_He4_to_p_O18_derived)*Y(He4)*Y(N15)*state.rho) + + (screened_rates(k_F18_n_to_He4_N15_reaclib)*Y(F18)*Y(N)*state.rho + -screened_rates(k_N15_He4_to_n_F18_derived)*Y(He4)*Y(N15)*state.rho) + + (screened_rates(k_O15_n_to_p_N15_derived)*Y(O15)*Y(N)*state.rho + -screened_rates(k_N15_p_to_n_O15_reaclib)*Y(N15)*Y(H1)*state.rho); ydot_nuc(O14) = - -screened_rates(k_O14_to_N14_reaclib)*Y(O14) + - (screened_rates(k_p_N13_to_O14_reaclib)*Y(N13)*Y(H1)*state.rho + -screened_rates(k_O14_to_p_N13_reaclib)*Y(O14)) + - (-screened_rates(k_n_O14_to_O15_reaclib)*Y(O14)*Y(N)*state.rho + screened_rates(k_O15_to_n_O14_reaclib)*Y(O15)) + - (-screened_rates(k_He4_O14_to_Ne18_reaclib)*Y(He4)*Y(O14)*state.rho + screened_rates(k_Ne18_to_He4_O14_reaclib)*Y(Ne18)) + - (-screened_rates(k_n_O14_to_p_N14_reaclib)*Y(O14)*Y(N)*state.rho + screened_rates(k_p_N14_to_n_O14_reaclib)*Y(N14)*Y(H1)*state.rho) + - (-screened_rates(k_He4_O14_to_p_F17_reaclib)*Y(He4)*Y(O14)*state.rho + screened_rates(k_p_F17_to_He4_O14_reaclib)*Y(F17)*Y(H1)*state.rho); + -screened_rates(k_O14_to_N14_beta_pos_reaclib)*Y(O14) + + (screened_rates(k_N13_p_to_O14_reaclib)*Y(N13)*Y(H1)*state.rho + -screened_rates(k_O14_to_p_N13_derived)*Y(O14)) + + (-screened_rates(k_O14_n_to_O15_reaclib)*Y(O14)*Y(N)*state.rho + screened_rates(k_O15_to_n_O14_derived)*Y(O15)) + + (-screened_rates(k_O14_He4_to_Ne18_reaclib)*Y(He4)*Y(O14)*state.rho + screened_rates(k_Ne18_to_He4_O14_derived)*Y(Ne18)) + + (-screened_rates(k_O14_He4_to_p_F17_reaclib)*Y(He4)*Y(O14)*state.rho + screened_rates(k_F17_p_to_He4_O14_derived)*Y(F17)*Y(H1)*state.rho) + + (-screened_rates(k_O14_n_to_p_N14_derived)*Y(O14)*Y(N)*state.rho + screened_rates(k_N14_p_to_n_O14_reaclib)*Y(N14)*Y(H1)*state.rho); ydot_nuc(O15) = - -screened_rates(k_O15_to_N15_reaclib)*Y(O15) + - (screened_rates(k_p_N14_to_O15_reaclib)*Y(N14)*Y(H1)*state.rho + -screened_rates(k_O15_to_p_N14_reaclib)*Y(O15)) + - (screened_rates(k_n_O14_to_O15_reaclib)*Y(O14)*Y(N)*state.rho + -screened_rates(k_O15_to_n_O14_reaclib)*Y(O15)) + - (-screened_rates(k_n_O15_to_O16_reaclib)*Y(O15)*Y(N)*state.rho + screened_rates(k_O16_to_n_O15_reaclib)*Y(O16)) + - (-screened_rates(k_He4_O15_to_Ne19_reaclib)*Y(He4)*Y(O15)*state.rho + screened_rates(k_Ne19_to_He4_O15_reaclib)*Y(Ne19)) + - (-screened_rates(k_n_O15_to_p_N15_reaclib)*Y(O15)*Y(N)*state.rho + screened_rates(k_p_N15_to_n_O15_reaclib)*Y(N15)*Y(H1)*state.rho) + - (-screened_rates(k_n_O15_to_He4_C12_reaclib)*Y(O15)*Y(N)*state.rho + screened_rates(k_He4_C12_to_n_O15_reaclib)*Y(C12)*Y(He4)*state.rho) + - (screened_rates(k_p_F18_to_He4_O15_reaclib)*Y(F18)*Y(H1)*state.rho + -screened_rates(k_He4_O15_to_p_F18_reaclib)*Y(He4)*Y(O15)*state.rho) + - (screened_rates(k_n_Ne18_to_He4_O15_reaclib)*Y(Ne18)*Y(N)*state.rho + -screened_rates(k_He4_O15_to_n_Ne18_reaclib)*Y(He4)*Y(O15)*state.rho); + -screened_rates(k_O15_to_N15_beta_pos_reaclib)*Y(O15) + + (screened_rates(k_N14_p_to_O15_reaclib)*Y(N14)*Y(H1)*state.rho + -screened_rates(k_O15_to_p_N14_derived)*Y(O15)) + + (screened_rates(k_O14_n_to_O15_reaclib)*Y(O14)*Y(N)*state.rho + -screened_rates(k_O15_to_n_O14_derived)*Y(O15)) + + (-screened_rates(k_O15_n_to_O16_reaclib)*Y(O15)*Y(N)*state.rho + screened_rates(k_O16_to_n_O15_derived)*Y(O16)) + + (-screened_rates(k_O15_He4_to_Ne19_reaclib)*Y(He4)*Y(O15)*state.rho + screened_rates(k_Ne19_to_He4_O15_derived)*Y(Ne19)) + + (-screened_rates(k_O15_n_to_He4_C12_reaclib)*Y(O15)*Y(N)*state.rho + screened_rates(k_C12_He4_to_n_O15_derived)*Y(C12)*Y(He4)*state.rho) + + (screened_rates(k_F18_p_to_He4_O15_reaclib)*Y(F18)*Y(H1)*state.rho + -screened_rates(k_O15_He4_to_p_F18_derived)*Y(He4)*Y(O15)*state.rho) + + (screened_rates(k_Ne18_n_to_He4_O15_reaclib)*Y(Ne18)*Y(N)*state.rho + -screened_rates(k_O15_He4_to_n_Ne18_derived)*Y(He4)*Y(O15)*state.rho) + + (-screened_rates(k_O15_n_to_p_N15_derived)*Y(O15)*Y(N)*state.rho + screened_rates(k_N15_p_to_n_O15_reaclib)*Y(N15)*Y(H1)*state.rho); ydot_nuc(O16) = - (screened_rates(k_He4_C12_to_O16_reaclib)*Y(C12)*Y(He4)*state.rho + -screened_rates(k_O16_to_He4_C12_reaclib)*Y(O16)) + - (screened_rates(k_p_N15_to_O16_reaclib)*Y(N15)*Y(H1)*state.rho + -screened_rates(k_O16_to_p_N15_reaclib)*Y(O16)) + - (screened_rates(k_n_O15_to_O16_reaclib)*Y(O15)*Y(N)*state.rho + -screened_rates(k_O16_to_n_O15_reaclib)*Y(O16)) + - (-screened_rates(k_n_O16_to_O17_reaclib)*Y(O16)*Y(N)*state.rho + screened_rates(k_O17_to_n_O16_reaclib)*Y(O17)) + - (-screened_rates(k_p_O16_to_F17_reaclib)*Y(O16)*Y(H1)*state.rho + screened_rates(k_F17_to_p_O16_reaclib)*Y(F17)) + - (-screened_rates(k_He4_O16_to_Ne20_reaclib)*Y(He4)*Y(O16)*state.rho + screened_rates(k_Ne20_to_He4_O16_reaclib)*Y(Ne20)) + - (screened_rates(k_He4_C13_to_n_O16_reaclib)*Y(C13)*Y(He4)*state.rho + -screened_rates(k_n_O16_to_He4_C13_reaclib)*Y(O16)*Y(N)*state.rho) + - (screened_rates(k_He4_N13_to_p_O16_reaclib)*Y(He4)*Y(N13)*state.rho + -screened_rates(k_p_O16_to_He4_N13_reaclib)*Y(O16)*Y(H1)*state.rho) + - (-screened_rates(k_C12_O16_to_p_Al27_reaclib)*Y(C12)*Y(O16)*state.rho + screened_rates(k_p_Al27_to_C12_O16_reaclib)*Y(Al27)*Y(H1)*state.rho) + - (-screened_rates(k_C12_O16_to_He4_Mg24_reaclib)*Y(C12)*Y(O16)*state.rho + screened_rates(k_He4_Mg24_to_C12_O16_reaclib)*Y(He4)*Y(Mg24)*state.rho) + - (-screened_rates(k_O16_O16_to_p_P31_reaclib)*amrex::Math::powi<2>(Y(O16))*state.rho + 2.0*screened_rates(k_p_P31_to_O16_O16_reaclib)*Y(P31)*Y(H1)*state.rho) + - (-screened_rates(k_O16_O16_to_He4_Si28_reaclib)*amrex::Math::powi<2>(Y(O16))*state.rho + 2.0*screened_rates(k_He4_Si28_to_O16_O16_reaclib)*Y(He4)*Y(Si28)*state.rho) + - (screened_rates(k_p_F19_to_He4_O16_reaclib)*Y(F19)*Y(H1)*state.rho + -screened_rates(k_He4_O16_to_p_F19_reaclib)*Y(He4)*Y(O16)*state.rho) + - (screened_rates(k_n_Ne19_to_He4_O16_reaclib)*Y(Ne19)*Y(N)*state.rho + -screened_rates(k_He4_O16_to_n_Ne19_reaclib)*Y(He4)*Y(O16)*state.rho); + (screened_rates(k_C12_He4_to_O16_reaclib)*Y(C12)*Y(He4)*state.rho + -screened_rates(k_O16_to_He4_C12_derived)*Y(O16)) + + (screened_rates(k_N15_p_to_O16_reaclib)*Y(N15)*Y(H1)*state.rho + -screened_rates(k_O16_to_p_N15_derived)*Y(O16)) + + (screened_rates(k_O15_n_to_O16_reaclib)*Y(O15)*Y(N)*state.rho + -screened_rates(k_O16_to_n_O15_derived)*Y(O16)) + + (-screened_rates(k_O16_n_to_O17_reaclib)*Y(O16)*Y(N)*state.rho + screened_rates(k_O17_to_n_O16_derived)*Y(O17)) + + (-screened_rates(k_O16_p_to_F17_reaclib)*Y(O16)*Y(H1)*state.rho + screened_rates(k_F17_to_p_O16_derived)*Y(F17)) + + (-screened_rates(k_O16_He4_to_Ne20_reaclib)*Y(He4)*Y(O16)*state.rho + screened_rates(k_Ne20_to_He4_O16_derived)*Y(Ne20)) + + (screened_rates(k_C13_He4_to_n_O16_reaclib)*Y(C13)*Y(He4)*state.rho + -screened_rates(k_O16_n_to_He4_C13_derived)*Y(O16)*Y(N)*state.rho) + + (screened_rates(k_N13_He4_to_p_O16_reaclib)*Y(He4)*Y(N13)*state.rho + -screened_rates(k_O16_p_to_He4_N13_derived)*Y(O16)*Y(H1)*state.rho) + + (-screened_rates(k_O16_C12_to_p_Al27_reaclib)*Y(C12)*Y(O16)*state.rho + screened_rates(k_Al27_p_to_C12_O16_derived)*Y(Al27)*Y(H1)*state.rho) + + (-screened_rates(k_O16_C12_to_He4_Mg24_reaclib)*Y(C12)*Y(O16)*state.rho + screened_rates(k_Mg24_He4_to_C12_O16_derived)*Y(He4)*Y(Mg24)*state.rho) + + (-screened_rates(k_O16_O16_to_p_P31_reaclib)*amrex::Math::powi<2>(Y(O16))*state.rho + 2.0*screened_rates(k_P31_p_to_O16_O16_derived)*Y(P31)*Y(H1)*state.rho) + + (-screened_rates(k_O16_O16_to_He4_Si28_reaclib)*amrex::Math::powi<2>(Y(O16))*state.rho + 2.0*screened_rates(k_Si28_He4_to_O16_O16_derived)*Y(He4)*Y(Si28)*state.rho) + + (screened_rates(k_F19_p_to_He4_O16_reaclib)*Y(F19)*Y(H1)*state.rho + -screened_rates(k_O16_He4_to_p_F19_derived)*Y(He4)*Y(O16)*state.rho) + + (screened_rates(k_Ne19_n_to_He4_O16_reaclib)*Y(Ne19)*Y(N)*state.rho + -screened_rates(k_O16_He4_to_n_Ne19_derived)*Y(He4)*Y(O16)*state.rho); ydot_nuc(O17) = - screened_rates(k_F17_to_O17_reaclib)*Y(F17) + - (screened_rates(k_n_O16_to_O17_reaclib)*Y(O16)*Y(N)*state.rho + -screened_rates(k_O17_to_n_O16_reaclib)*Y(O17)) + - (-screened_rates(k_n_O17_to_O18_reaclib)*Y(O17)*Y(N)*state.rho + screened_rates(k_O18_to_n_O17_reaclib)*Y(O18)) + - (-screened_rates(k_p_O17_to_F18_reaclib)*Y(O17)*Y(H1)*state.rho + screened_rates(k_F18_to_p_O17_reaclib)*Y(F18)) + - (-screened_rates(k_He4_O17_to_Ne21_reaclib)*Y(He4)*Y(O17)*state.rho + screened_rates(k_Ne21_to_He4_O17_reaclib)*Y(Ne21)) + - (-screened_rates(k_n_O17_to_He4_C14_reaclib)*Y(O17)*Y(N)*state.rho + screened_rates(k_He4_C14_to_n_O17_reaclib)*Y(C14)*Y(He4)*state.rho) + - (-screened_rates(k_p_O17_to_He4_N14_reaclib)*Y(O17)*Y(H1)*state.rho + screened_rates(k_He4_N14_to_p_O17_reaclib)*Y(He4)*Y(N14)*state.rho) + - (-screened_rates(k_He4_O17_to_n_Ne20_reaclib)*Y(He4)*Y(O17)*state.rho + screened_rates(k_n_Ne20_to_He4_O17_reaclib)*Y(Ne20)*Y(N)*state.rho) + - (screened_rates(k_n_F17_to_p_O17_reaclib)*Y(F17)*Y(N)*state.rho + -screened_rates(k_p_O17_to_n_F17_reaclib)*Y(O17)*Y(H1)*state.rho); + screened_rates(k_F17_to_O17_beta_pos_reaclib)*Y(F17) + + (screened_rates(k_O16_n_to_O17_reaclib)*Y(O16)*Y(N)*state.rho + -screened_rates(k_O17_to_n_O16_derived)*Y(O17)) + + (-screened_rates(k_O17_n_to_O18_reaclib)*Y(O17)*Y(N)*state.rho + screened_rates(k_O18_to_n_O17_derived)*Y(O18)) + + (-screened_rates(k_O17_p_to_F18_reaclib)*Y(O17)*Y(H1)*state.rho + screened_rates(k_F18_to_p_O17_derived)*Y(F18)) + + (-screened_rates(k_O17_He4_to_Ne21_reaclib)*Y(He4)*Y(O17)*state.rho + screened_rates(k_Ne21_to_He4_O17_derived)*Y(Ne21)) + + (-screened_rates(k_O17_n_to_He4_C14_reaclib)*Y(O17)*Y(N)*state.rho + screened_rates(k_C14_He4_to_n_O17_derived)*Y(C14)*Y(He4)*state.rho) + + (-screened_rates(k_O17_p_to_He4_N14_reaclib)*Y(O17)*Y(H1)*state.rho + screened_rates(k_N14_He4_to_p_O17_derived)*Y(He4)*Y(N14)*state.rho) + + (-screened_rates(k_O17_He4_to_n_Ne20_reaclib)*Y(He4)*Y(O17)*state.rho + screened_rates(k_Ne20_n_to_He4_O17_derived)*Y(Ne20)*Y(N)*state.rho) + + (screened_rates(k_F17_n_to_p_O17_reaclib)*Y(F17)*Y(N)*state.rho + -screened_rates(k_O17_p_to_n_F17_derived)*Y(O17)*Y(H1)*state.rho); ydot_nuc(O18) = - screened_rates(k_F18_to_O18_reaclib)*Y(F18) + - (screened_rates(k_He4_C14_to_O18_reaclib)*Y(C14)*Y(He4)*state.rho + -screened_rates(k_O18_to_He4_C14_reaclib)*Y(O18)) + - (screened_rates(k_n_O17_to_O18_reaclib)*Y(O17)*Y(N)*state.rho + -screened_rates(k_O18_to_n_O17_reaclib)*Y(O18)) + - (-screened_rates(k_p_O18_to_F19_reaclib)*Y(O18)*Y(H1)*state.rho + screened_rates(k_F19_to_p_O18_reaclib)*Y(F19)) + - (-screened_rates(k_He4_O18_to_Ne22_reaclib)*Y(He4)*Y(O18)*state.rho + screened_rates(k_Ne22_to_He4_O18_reaclib)*Y(Ne22)) + - (-screened_rates(k_p_O18_to_He4_N15_reaclib)*Y(O18)*Y(H1)*state.rho + screened_rates(k_He4_N15_to_p_O18_reaclib)*Y(He4)*Y(N15)*state.rho) + - (screened_rates(k_n_F18_to_p_O18_reaclib)*Y(F18)*Y(N)*state.rho + -screened_rates(k_p_O18_to_n_F18_reaclib)*Y(O18)*Y(H1)*state.rho) + - (screened_rates(k_n_Ne21_to_He4_O18_reaclib)*Y(Ne21)*Y(N)*state.rho + -screened_rates(k_He4_O18_to_n_Ne21_reaclib)*Y(He4)*Y(O18)*state.rho); + screened_rates(k_F18_to_O18_beta_pos_reaclib)*Y(F18) + + (screened_rates(k_C14_He4_to_O18_reaclib)*Y(C14)*Y(He4)*state.rho + -screened_rates(k_O18_to_He4_C14_derived)*Y(O18)) + + (screened_rates(k_O17_n_to_O18_reaclib)*Y(O17)*Y(N)*state.rho + -screened_rates(k_O18_to_n_O17_derived)*Y(O18)) + + (-screened_rates(k_O18_p_to_F19_reaclib)*Y(O18)*Y(H1)*state.rho + screened_rates(k_F19_to_p_O18_derived)*Y(F19)) + + (-screened_rates(k_O18_He4_to_Ne22_reaclib)*Y(He4)*Y(O18)*state.rho + screened_rates(k_Ne22_to_He4_O18_derived)*Y(Ne22)) + + (-screened_rates(k_O18_p_to_He4_N15_reaclib)*Y(O18)*Y(H1)*state.rho + screened_rates(k_N15_He4_to_p_O18_derived)*Y(He4)*Y(N15)*state.rho) + + (screened_rates(k_F18_n_to_p_O18_reaclib)*Y(F18)*Y(N)*state.rho + -screened_rates(k_O18_p_to_n_F18_derived)*Y(O18)*Y(H1)*state.rho) + + (screened_rates(k_Ne21_n_to_He4_O18_derived)*Y(Ne21)*Y(N)*state.rho + -screened_rates(k_O18_He4_to_n_Ne21_reaclib)*Y(He4)*Y(O18)*state.rho); ydot_nuc(F17) = - -screened_rates(k_F17_to_O17_reaclib)*Y(F17) + - (screened_rates(k_p_O16_to_F17_reaclib)*Y(O16)*Y(H1)*state.rho + -screened_rates(k_F17_to_p_O16_reaclib)*Y(F17)) + - (-screened_rates(k_n_F17_to_F18_reaclib)*Y(F17)*Y(N)*state.rho + screened_rates(k_F18_to_n_F17_reaclib)*Y(F18)) + - (-screened_rates(k_p_F17_to_Ne18_reaclib)*Y(F17)*Y(H1)*state.rho + screened_rates(k_Ne18_to_p_F17_reaclib)*Y(Ne18)) + - (-screened_rates(k_He4_F17_to_Na21_reaclib)*Y(F17)*Y(He4)*state.rho + screened_rates(k_Na21_to_He4_F17_reaclib)*Y(Na21)) + - (screened_rates(k_He4_O14_to_p_F17_reaclib)*Y(He4)*Y(O14)*state.rho + -screened_rates(k_p_F17_to_He4_O14_reaclib)*Y(F17)*Y(H1)*state.rho) + - (-screened_rates(k_n_F17_to_p_O17_reaclib)*Y(F17)*Y(N)*state.rho + screened_rates(k_p_O17_to_n_F17_reaclib)*Y(O17)*Y(H1)*state.rho) + - (-screened_rates(k_n_F17_to_He4_N14_reaclib)*Y(F17)*Y(N)*state.rho + screened_rates(k_He4_N14_to_n_F17_reaclib)*Y(He4)*Y(N14)*state.rho) + - (-screened_rates(k_He4_F17_to_p_Ne20_reaclib)*Y(F17)*Y(He4)*state.rho + screened_rates(k_p_Ne20_to_He4_F17_reaclib)*Y(Ne20)*Y(H1)*state.rho); + -screened_rates(k_F17_to_O17_beta_pos_reaclib)*Y(F17) + + (screened_rates(k_O16_p_to_F17_reaclib)*Y(O16)*Y(H1)*state.rho + -screened_rates(k_F17_to_p_O16_derived)*Y(F17)) + + (-screened_rates(k_F17_n_to_F18_reaclib)*Y(F17)*Y(N)*state.rho + screened_rates(k_F18_to_n_F17_derived)*Y(F18)) + + (-screened_rates(k_F17_p_to_Ne18_reaclib)*Y(F17)*Y(H1)*state.rho + screened_rates(k_Ne18_to_p_F17_derived)*Y(Ne18)) + + (-screened_rates(k_F17_He4_to_Na21_reaclib)*Y(F17)*Y(He4)*state.rho + screened_rates(k_Na21_to_He4_F17_derived)*Y(Na21)) + + (screened_rates(k_O14_He4_to_p_F17_reaclib)*Y(He4)*Y(O14)*state.rho + -screened_rates(k_F17_p_to_He4_O14_derived)*Y(F17)*Y(H1)*state.rho) + + (-screened_rates(k_F17_n_to_p_O17_reaclib)*Y(F17)*Y(N)*state.rho + screened_rates(k_O17_p_to_n_F17_derived)*Y(O17)*Y(H1)*state.rho) + + (-screened_rates(k_F17_n_to_He4_N14_derived)*Y(F17)*Y(N)*state.rho + screened_rates(k_N14_He4_to_n_F17_reaclib)*Y(He4)*Y(N14)*state.rho) + + (-screened_rates(k_F17_He4_to_p_Ne20_derived)*Y(F17)*Y(He4)*state.rho + screened_rates(k_Ne20_p_to_He4_F17_reaclib)*Y(Ne20)*Y(H1)*state.rho); ydot_nuc(F18) = - -screened_rates(k_F18_to_O18_reaclib)*Y(F18) + - screened_rates(k_Ne18_to_F18_reaclib)*Y(Ne18) + - (screened_rates(k_He4_N14_to_F18_reaclib)*Y(He4)*Y(N14)*state.rho + -screened_rates(k_F18_to_He4_N14_reaclib)*Y(F18)) + - (screened_rates(k_p_O17_to_F18_reaclib)*Y(O17)*Y(H1)*state.rho + -screened_rates(k_F18_to_p_O17_reaclib)*Y(F18)) + - (screened_rates(k_n_F17_to_F18_reaclib)*Y(F17)*Y(N)*state.rho + -screened_rates(k_F18_to_n_F17_reaclib)*Y(F18)) + - (-screened_rates(k_n_F18_to_F19_reaclib)*Y(F18)*Y(N)*state.rho + screened_rates(k_F19_to_n_F18_reaclib)*Y(F19)) + - (-screened_rates(k_p_F18_to_Ne19_reaclib)*Y(F18)*Y(H1)*state.rho + screened_rates(k_Ne19_to_p_F18_reaclib)*Y(Ne19)) + - (-screened_rates(k_He4_F18_to_Na22_reaclib)*Y(F18)*Y(He4)*state.rho + screened_rates(k_Na22_to_He4_F18_reaclib)*Y(Na22)) + - (-screened_rates(k_n_F18_to_p_O18_reaclib)*Y(F18)*Y(N)*state.rho + screened_rates(k_p_O18_to_n_F18_reaclib)*Y(O18)*Y(H1)*state.rho) + - (-screened_rates(k_n_F18_to_He4_N15_reaclib)*Y(F18)*Y(N)*state.rho + screened_rates(k_He4_N15_to_n_F18_reaclib)*Y(He4)*Y(N15)*state.rho) + - (-screened_rates(k_p_F18_to_He4_O15_reaclib)*Y(F18)*Y(H1)*state.rho + screened_rates(k_He4_O15_to_p_F18_reaclib)*Y(He4)*Y(O15)*state.rho) + - (-screened_rates(k_He4_F18_to_p_Ne21_reaclib)*Y(F18)*Y(He4)*state.rho + screened_rates(k_p_Ne21_to_He4_F18_reaclib)*Y(Ne21)*Y(H1)*state.rho) + - (screened_rates(k_n_Ne18_to_p_F18_reaclib)*Y(Ne18)*Y(N)*state.rho + -screened_rates(k_p_F18_to_n_Ne18_reaclib)*Y(F18)*Y(H1)*state.rho) + - (screened_rates(k_n_Na21_to_He4_F18_reaclib)*Y(Na21)*Y(N)*state.rho + -screened_rates(k_He4_F18_to_n_Na21_reaclib)*Y(F18)*Y(He4)*state.rho); + -screened_rates(k_F18_to_O18_beta_pos_reaclib)*Y(F18) + + screened_rates(k_Ne18_to_F18_beta_pos_reaclib)*Y(Ne18) + + (screened_rates(k_N14_He4_to_F18_reaclib)*Y(He4)*Y(N14)*state.rho + -screened_rates(k_F18_to_He4_N14_derived)*Y(F18)) + + (screened_rates(k_O17_p_to_F18_reaclib)*Y(O17)*Y(H1)*state.rho + -screened_rates(k_F18_to_p_O17_derived)*Y(F18)) + + (screened_rates(k_F17_n_to_F18_reaclib)*Y(F17)*Y(N)*state.rho + -screened_rates(k_F18_to_n_F17_derived)*Y(F18)) + + (-screened_rates(k_F18_n_to_F19_reaclib)*Y(F18)*Y(N)*state.rho + screened_rates(k_F19_to_n_F18_derived)*Y(F19)) + + (-screened_rates(k_F18_p_to_Ne19_reaclib)*Y(F18)*Y(H1)*state.rho + screened_rates(k_Ne19_to_p_F18_derived)*Y(Ne19)) + + (-screened_rates(k_F18_He4_to_Na22_reaclib)*Y(F18)*Y(He4)*state.rho + screened_rates(k_Na22_to_He4_F18_derived)*Y(Na22)) + + (-screened_rates(k_F18_n_to_p_O18_reaclib)*Y(F18)*Y(N)*state.rho + screened_rates(k_O18_p_to_n_F18_derived)*Y(O18)*Y(H1)*state.rho) + + (-screened_rates(k_F18_n_to_He4_N15_reaclib)*Y(F18)*Y(N)*state.rho + screened_rates(k_N15_He4_to_n_F18_derived)*Y(He4)*Y(N15)*state.rho) + + (-screened_rates(k_F18_p_to_He4_O15_reaclib)*Y(F18)*Y(H1)*state.rho + screened_rates(k_O15_He4_to_p_F18_derived)*Y(He4)*Y(O15)*state.rho) + + (-screened_rates(k_F18_He4_to_p_Ne21_reaclib)*Y(F18)*Y(He4)*state.rho + screened_rates(k_Ne21_p_to_He4_F18_derived)*Y(Ne21)*Y(H1)*state.rho) + + (screened_rates(k_Ne18_n_to_p_F18_reaclib)*Y(Ne18)*Y(N)*state.rho + -screened_rates(k_F18_p_to_n_Ne18_derived)*Y(F18)*Y(H1)*state.rho) + + (screened_rates(k_Na21_n_to_He4_F18_reaclib)*Y(Na21)*Y(N)*state.rho + -screened_rates(k_F18_He4_to_n_Na21_derived)*Y(F18)*Y(He4)*state.rho); ydot_nuc(F19) = - screened_rates(k_Ne19_to_F19_reaclib)*Y(Ne19) + - (screened_rates(k_He4_N15_to_F19_reaclib)*Y(He4)*Y(N15)*state.rho + -screened_rates(k_F19_to_He4_N15_reaclib)*Y(F19)) + - (screened_rates(k_p_O18_to_F19_reaclib)*Y(O18)*Y(H1)*state.rho + -screened_rates(k_F19_to_p_O18_reaclib)*Y(F19)) + - (screened_rates(k_n_F18_to_F19_reaclib)*Y(F18)*Y(N)*state.rho + -screened_rates(k_F19_to_n_F18_reaclib)*Y(F19)) + - (-screened_rates(k_p_F19_to_Ne20_reaclib)*Y(F19)*Y(H1)*state.rho + screened_rates(k_Ne20_to_p_F19_reaclib)*Y(Ne20)) + - (-screened_rates(k_He4_F19_to_Na23_reaclib)*Y(F19)*Y(He4)*state.rho + screened_rates(k_Na23_to_He4_F19_reaclib)*Y(Na23)) + - (-screened_rates(k_p_F19_to_He4_O16_reaclib)*Y(F19)*Y(H1)*state.rho + screened_rates(k_He4_O16_to_p_F19_reaclib)*Y(He4)*Y(O16)*state.rho) + - (-screened_rates(k_He4_F19_to_p_Ne22_reaclib)*Y(F19)*Y(He4)*state.rho + screened_rates(k_p_Ne22_to_He4_F19_reaclib)*Y(Ne22)*Y(H1)*state.rho) + - (screened_rates(k_n_Ne19_to_p_F19_reaclib)*Y(Ne19)*Y(N)*state.rho + -screened_rates(k_p_F19_to_n_Ne19_reaclib)*Y(F19)*Y(H1)*state.rho) + - (screened_rates(k_n_Na22_to_He4_F19_reaclib)*Y(Na22)*Y(N)*state.rho + -screened_rates(k_He4_F19_to_n_Na22_reaclib)*Y(F19)*Y(He4)*state.rho); + screened_rates(k_Ne19_to_F19_beta_pos_reaclib)*Y(Ne19) + + (screened_rates(k_N15_He4_to_F19_reaclib)*Y(He4)*Y(N15)*state.rho + -screened_rates(k_F19_to_He4_N15_derived)*Y(F19)) + + (screened_rates(k_O18_p_to_F19_reaclib)*Y(O18)*Y(H1)*state.rho + -screened_rates(k_F19_to_p_O18_derived)*Y(F19)) + + (screened_rates(k_F18_n_to_F19_reaclib)*Y(F18)*Y(N)*state.rho + -screened_rates(k_F19_to_n_F18_derived)*Y(F19)) + + (-screened_rates(k_F19_p_to_Ne20_reaclib)*Y(F19)*Y(H1)*state.rho + screened_rates(k_Ne20_to_p_F19_derived)*Y(Ne20)) + + (-screened_rates(k_F19_He4_to_Na23_reaclib)*Y(F19)*Y(He4)*state.rho + screened_rates(k_Na23_to_He4_F19_derived)*Y(Na23)) + + (-screened_rates(k_F19_p_to_He4_O16_reaclib)*Y(F19)*Y(H1)*state.rho + screened_rates(k_O16_He4_to_p_F19_derived)*Y(He4)*Y(O16)*state.rho) + + (-screened_rates(k_F19_He4_to_p_Ne22_reaclib)*Y(F19)*Y(He4)*state.rho + screened_rates(k_Ne22_p_to_He4_F19_derived)*Y(Ne22)*Y(H1)*state.rho) + + (screened_rates(k_Na22_n_to_He4_F19_reaclib)*Y(Na22)*Y(N)*state.rho + -screened_rates(k_F19_He4_to_n_Na22_derived)*Y(F19)*Y(He4)*state.rho) + + (screened_rates(k_Ne19_n_to_p_F19_derived)*Y(Ne19)*Y(N)*state.rho + -screened_rates(k_F19_p_to_n_Ne19_reaclib)*Y(F19)*Y(H1)*state.rho); ydot_nuc(Ne18) = - -screened_rates(k_Ne18_to_F18_reaclib)*Y(Ne18) + - (screened_rates(k_He4_O14_to_Ne18_reaclib)*Y(He4)*Y(O14)*state.rho + -screened_rates(k_Ne18_to_He4_O14_reaclib)*Y(Ne18)) + - (screened_rates(k_p_F17_to_Ne18_reaclib)*Y(F17)*Y(H1)*state.rho + -screened_rates(k_Ne18_to_p_F17_reaclib)*Y(Ne18)) + - (-screened_rates(k_n_Ne18_to_Ne19_reaclib)*Y(Ne18)*Y(N)*state.rho + screened_rates(k_Ne19_to_n_Ne18_reaclib)*Y(Ne19)) + - (-screened_rates(k_n_Ne18_to_p_F18_reaclib)*Y(Ne18)*Y(N)*state.rho + screened_rates(k_p_F18_to_n_Ne18_reaclib)*Y(F18)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ne18_to_He4_O15_reaclib)*Y(Ne18)*Y(N)*state.rho + screened_rates(k_He4_O15_to_n_Ne18_reaclib)*Y(He4)*Y(O15)*state.rho) + - (-screened_rates(k_He4_Ne18_to_p_Na21_reaclib)*Y(He4)*Y(Ne18)*state.rho + screened_rates(k_p_Na21_to_He4_Ne18_reaclib)*Y(Na21)*Y(H1)*state.rho); + -screened_rates(k_Ne18_to_F18_beta_pos_reaclib)*Y(Ne18) + + (screened_rates(k_O14_He4_to_Ne18_reaclib)*Y(He4)*Y(O14)*state.rho + -screened_rates(k_Ne18_to_He4_O14_derived)*Y(Ne18)) + + (screened_rates(k_F17_p_to_Ne18_reaclib)*Y(F17)*Y(H1)*state.rho + -screened_rates(k_Ne18_to_p_F17_derived)*Y(Ne18)) + + (-screened_rates(k_Ne18_n_to_Ne19_reaclib)*Y(Ne18)*Y(N)*state.rho + screened_rates(k_Ne19_to_n_Ne18_derived)*Y(Ne19)) + + (-screened_rates(k_Ne18_n_to_p_F18_reaclib)*Y(Ne18)*Y(N)*state.rho + screened_rates(k_F18_p_to_n_Ne18_derived)*Y(F18)*Y(H1)*state.rho) + + (-screened_rates(k_Ne18_n_to_He4_O15_reaclib)*Y(Ne18)*Y(N)*state.rho + screened_rates(k_O15_He4_to_n_Ne18_derived)*Y(He4)*Y(O15)*state.rho) + + (-screened_rates(k_Ne18_He4_to_p_Na21_reaclib)*Y(He4)*Y(Ne18)*state.rho + screened_rates(k_Na21_p_to_He4_Ne18_derived)*Y(Na21)*Y(H1)*state.rho); ydot_nuc(Ne19) = - -screened_rates(k_Ne19_to_F19_reaclib)*Y(Ne19) + - (screened_rates(k_He4_O15_to_Ne19_reaclib)*Y(He4)*Y(O15)*state.rho + -screened_rates(k_Ne19_to_He4_O15_reaclib)*Y(Ne19)) + - (screened_rates(k_p_F18_to_Ne19_reaclib)*Y(F18)*Y(H1)*state.rho + -screened_rates(k_Ne19_to_p_F18_reaclib)*Y(Ne19)) + - (screened_rates(k_n_Ne18_to_Ne19_reaclib)*Y(Ne18)*Y(N)*state.rho + -screened_rates(k_Ne19_to_n_Ne18_reaclib)*Y(Ne19)) + - (-screened_rates(k_n_Ne19_to_Ne20_reaclib)*Y(Ne19)*Y(N)*state.rho + screened_rates(k_Ne20_to_n_Ne19_reaclib)*Y(Ne20)) + - (-screened_rates(k_He4_Ne19_to_Mg23_reaclib)*Y(He4)*Y(Ne19)*state.rho + screened_rates(k_Mg23_to_He4_Ne19_reaclib)*Y(Mg23)) + - (-screened_rates(k_n_Ne19_to_p_F19_reaclib)*Y(Ne19)*Y(N)*state.rho + screened_rates(k_p_F19_to_n_Ne19_reaclib)*Y(F19)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ne19_to_He4_O16_reaclib)*Y(Ne19)*Y(N)*state.rho + screened_rates(k_He4_O16_to_n_Ne19_reaclib)*Y(He4)*Y(O16)*state.rho) + - (-screened_rates(k_He4_Ne19_to_p_Na22_reaclib)*Y(He4)*Y(Ne19)*state.rho + screened_rates(k_p_Na22_to_He4_Ne19_reaclib)*Y(Na22)*Y(H1)*state.rho); + -screened_rates(k_Ne19_to_F19_beta_pos_reaclib)*Y(Ne19) + + (screened_rates(k_O15_He4_to_Ne19_reaclib)*Y(He4)*Y(O15)*state.rho + -screened_rates(k_Ne19_to_He4_O15_derived)*Y(Ne19)) + + (screened_rates(k_F18_p_to_Ne19_reaclib)*Y(F18)*Y(H1)*state.rho + -screened_rates(k_Ne19_to_p_F18_derived)*Y(Ne19)) + + (screened_rates(k_Ne18_n_to_Ne19_reaclib)*Y(Ne18)*Y(N)*state.rho + -screened_rates(k_Ne19_to_n_Ne18_derived)*Y(Ne19)) + + (-screened_rates(k_Ne19_n_to_Ne20_reaclib)*Y(Ne19)*Y(N)*state.rho + screened_rates(k_Ne20_to_n_Ne19_derived)*Y(Ne20)) + + (-screened_rates(k_Ne19_He4_to_Mg23_reaclib)*Y(He4)*Y(Ne19)*state.rho + screened_rates(k_Mg23_to_He4_Ne19_derived)*Y(Mg23)) + + (-screened_rates(k_Ne19_n_to_He4_O16_reaclib)*Y(Ne19)*Y(N)*state.rho + screened_rates(k_O16_He4_to_n_Ne19_derived)*Y(He4)*Y(O16)*state.rho) + + (-screened_rates(k_Ne19_He4_to_p_Na22_reaclib)*Y(He4)*Y(Ne19)*state.rho + screened_rates(k_Na22_p_to_He4_Ne19_derived)*Y(Na22)*Y(H1)*state.rho) + + (-screened_rates(k_Ne19_n_to_p_F19_derived)*Y(Ne19)*Y(N)*state.rho + screened_rates(k_F19_p_to_n_Ne19_reaclib)*Y(F19)*Y(H1)*state.rho); ydot_nuc(Ne20) = - (screened_rates(k_He4_O16_to_Ne20_reaclib)*Y(He4)*Y(O16)*state.rho + -screened_rates(k_Ne20_to_He4_O16_reaclib)*Y(Ne20)) + - (screened_rates(k_p_F19_to_Ne20_reaclib)*Y(F19)*Y(H1)*state.rho + -screened_rates(k_Ne20_to_p_F19_reaclib)*Y(Ne20)) + - (screened_rates(k_n_Ne19_to_Ne20_reaclib)*Y(Ne19)*Y(N)*state.rho + -screened_rates(k_Ne20_to_n_Ne19_reaclib)*Y(Ne20)) + - (-screened_rates(k_n_Ne20_to_Ne21_reaclib)*Y(Ne20)*Y(N)*state.rho + screened_rates(k_Ne21_to_n_Ne20_reaclib)*Y(Ne21)) + - (-screened_rates(k_p_Ne20_to_Na21_reaclib)*Y(Ne20)*Y(H1)*state.rho + screened_rates(k_Na21_to_p_Ne20_reaclib)*Y(Na21)) + - (-screened_rates(k_He4_Ne20_to_Mg24_reaclib)*Y(He4)*Y(Ne20)*state.rho + screened_rates(k_Mg24_to_He4_Ne20_reaclib)*Y(Mg24)) + - (0.5*screened_rates(k_C12_C12_to_He4_Ne20_reaclib)*amrex::Math::powi<2>(Y(C12))*state.rho + -screened_rates(k_He4_Ne20_to_C12_C12_reaclib)*Y(He4)*Y(Ne20)*state.rho) + - (screened_rates(k_He4_O17_to_n_Ne20_reaclib)*Y(He4)*Y(O17)*state.rho + -screened_rates(k_n_Ne20_to_He4_O17_reaclib)*Y(Ne20)*Y(N)*state.rho) + - (screened_rates(k_He4_F17_to_p_Ne20_reaclib)*Y(F17)*Y(He4)*state.rho + -screened_rates(k_p_Ne20_to_He4_F17_reaclib)*Y(Ne20)*Y(H1)*state.rho) + - (-screened_rates(k_C12_Ne20_to_p_P31_reaclib)*Y(C12)*Y(Ne20)*state.rho + screened_rates(k_p_P31_to_C12_Ne20_reaclib)*Y(P31)*Y(H1)*state.rho) + - (-screened_rates(k_C12_Ne20_to_He4_Si28_reaclib)*Y(C12)*Y(Ne20)*state.rho + screened_rates(k_He4_Si28_to_C12_Ne20_reaclib)*Y(He4)*Y(Si28)*state.rho) + - (screened_rates(k_p_Na23_to_He4_Ne20_reaclib)*Y(Na23)*Y(H1)*state.rho + -screened_rates(k_He4_Ne20_to_p_Na23_reaclib)*Y(He4)*Y(Ne20)*state.rho) + - (screened_rates(k_n_Mg23_to_He4_Ne20_reaclib)*Y(Mg23)*Y(N)*state.rho + -screened_rates(k_He4_Ne20_to_n_Mg23_reaclib)*Y(He4)*Y(Ne20)*state.rho); + (screened_rates(k_O16_He4_to_Ne20_reaclib)*Y(He4)*Y(O16)*state.rho + -screened_rates(k_Ne20_to_He4_O16_derived)*Y(Ne20)) + + (screened_rates(k_F19_p_to_Ne20_reaclib)*Y(F19)*Y(H1)*state.rho + -screened_rates(k_Ne20_to_p_F19_derived)*Y(Ne20)) + + (screened_rates(k_Ne19_n_to_Ne20_reaclib)*Y(Ne19)*Y(N)*state.rho + -screened_rates(k_Ne20_to_n_Ne19_derived)*Y(Ne20)) + + (-screened_rates(k_Ne20_n_to_Ne21_reaclib)*Y(Ne20)*Y(N)*state.rho + screened_rates(k_Ne21_to_n_Ne20_derived)*Y(Ne21)) + + (-screened_rates(k_Ne20_p_to_Na21_reaclib)*Y(Ne20)*Y(H1)*state.rho + screened_rates(k_Na21_to_p_Ne20_derived)*Y(Na21)) + + (-screened_rates(k_Ne20_He4_to_Mg24_reaclib)*Y(He4)*Y(Ne20)*state.rho + screened_rates(k_Mg24_to_He4_Ne20_derived)*Y(Mg24)) + + (0.5*screened_rates(k_C12_C12_to_He4_Ne20_reaclib)*amrex::Math::powi<2>(Y(C12))*state.rho + -screened_rates(k_Ne20_He4_to_C12_C12_derived)*Y(He4)*Y(Ne20)*state.rho) + + (screened_rates(k_O17_He4_to_n_Ne20_reaclib)*Y(He4)*Y(O17)*state.rho + -screened_rates(k_Ne20_n_to_He4_O17_derived)*Y(Ne20)*Y(N)*state.rho) + + (-screened_rates(k_Ne20_C12_to_p_P31_reaclib)*Y(C12)*Y(Ne20)*state.rho + screened_rates(k_P31_p_to_C12_Ne20_derived)*Y(P31)*Y(H1)*state.rho) + + (-screened_rates(k_Ne20_C12_to_He4_Si28_reaclib)*Y(C12)*Y(Ne20)*state.rho + screened_rates(k_Si28_He4_to_C12_Ne20_derived)*Y(He4)*Y(Si28)*state.rho) + + (screened_rates(k_Na23_p_to_He4_Ne20_reaclib)*Y(Na23)*Y(H1)*state.rho + -screened_rates(k_Ne20_He4_to_p_Na23_derived)*Y(He4)*Y(Ne20)*state.rho) + + (screened_rates(k_Mg23_n_to_He4_Ne20_reaclib)*Y(Mg23)*Y(N)*state.rho + -screened_rates(k_Ne20_He4_to_n_Mg23_derived)*Y(He4)*Y(Ne20)*state.rho) + + (screened_rates(k_F17_He4_to_p_Ne20_derived)*Y(F17)*Y(He4)*state.rho + -screened_rates(k_Ne20_p_to_He4_F17_reaclib)*Y(Ne20)*Y(H1)*state.rho); ydot_nuc(Ne21) = - (screened_rates(k_He4_O17_to_Ne21_reaclib)*Y(He4)*Y(O17)*state.rho + -screened_rates(k_Ne21_to_He4_O17_reaclib)*Y(Ne21)) + - (screened_rates(k_n_Ne20_to_Ne21_reaclib)*Y(Ne20)*Y(N)*state.rho + -screened_rates(k_Ne21_to_n_Ne20_reaclib)*Y(Ne21)) + - (-screened_rates(k_n_Ne21_to_Ne22_reaclib)*Y(Ne21)*Y(N)*state.rho + screened_rates(k_Ne22_to_n_Ne21_reaclib)*Y(Ne22)) + - (-screened_rates(k_p_Ne21_to_Na22_reaclib)*Y(Ne21)*Y(H1)*state.rho + screened_rates(k_Na22_to_p_Ne21_reaclib)*Y(Na22)) + - (-screened_rates(k_He4_Ne21_to_Mg25_reaclib)*Y(He4)*Y(Ne21)*state.rho + screened_rates(k_Mg25_to_He4_Ne21_reaclib)*Y(Mg25)) + - (screened_rates(k_He4_F18_to_p_Ne21_reaclib)*Y(F18)*Y(He4)*state.rho + -screened_rates(k_p_Ne21_to_He4_F18_reaclib)*Y(Ne21)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ne21_to_He4_O18_reaclib)*Y(Ne21)*Y(N)*state.rho + screened_rates(k_He4_O18_to_n_Ne21_reaclib)*Y(He4)*Y(O18)*state.rho) + - (-screened_rates(k_He4_Ne21_to_n_Mg24_reaclib)*Y(He4)*Y(Ne21)*state.rho + screened_rates(k_n_Mg24_to_He4_Ne21_reaclib)*Y(Mg24)*Y(N)*state.rho) + - (screened_rates(k_n_Na21_to_p_Ne21_reaclib)*Y(Na21)*Y(N)*state.rho + -screened_rates(k_p_Ne21_to_n_Na21_reaclib)*Y(Ne21)*Y(H1)*state.rho) + - (screened_rates(k_Na21_to_Ne21_weaktab)*Y(Na21) + -screened_rates(k_Ne21_to_Na21_weaktab)*Y(Ne21)); + (screened_rates(k_O17_He4_to_Ne21_reaclib)*Y(He4)*Y(O17)*state.rho + -screened_rates(k_Ne21_to_He4_O17_derived)*Y(Ne21)) + + (screened_rates(k_Ne20_n_to_Ne21_reaclib)*Y(Ne20)*Y(N)*state.rho + -screened_rates(k_Ne21_to_n_Ne20_derived)*Y(Ne21)) + + (-screened_rates(k_Ne21_n_to_Ne22_reaclib)*Y(Ne21)*Y(N)*state.rho + screened_rates(k_Ne22_to_n_Ne21_derived)*Y(Ne22)) + + (-screened_rates(k_Ne21_p_to_Na22_reaclib)*Y(Ne21)*Y(H1)*state.rho + screened_rates(k_Na22_to_p_Ne21_derived)*Y(Na22)) + + (-screened_rates(k_Ne21_He4_to_Mg25_reaclib)*Y(He4)*Y(Ne21)*state.rho + screened_rates(k_Mg25_to_He4_Ne21_derived)*Y(Mg25)) + + (screened_rates(k_F18_He4_to_p_Ne21_reaclib)*Y(F18)*Y(He4)*state.rho + -screened_rates(k_Ne21_p_to_He4_F18_derived)*Y(Ne21)*Y(H1)*state.rho) + + (-screened_rates(k_Ne21_He4_to_n_Mg24_reaclib)*Y(He4)*Y(Ne21)*state.rho + screened_rates(k_Mg24_n_to_He4_Ne21_derived)*Y(Mg24)*Y(N)*state.rho) + + (screened_rates(k_Na21_n_to_p_Ne21_reaclib)*Y(Na21)*Y(N)*state.rho + -screened_rates(k_Ne21_p_to_n_Na21_derived)*Y(Ne21)*Y(H1)*state.rho) + + (screened_rates(k_Na21_to_Ne21_electron_capture_weaktab)*Y(Na21) + -screened_rates(k_Ne21_to_Na21_beta_neg_weaktab)*Y(Ne21)) + + (-screened_rates(k_Ne21_n_to_He4_O18_derived)*Y(Ne21)*Y(N)*state.rho + screened_rates(k_O18_He4_to_n_Ne21_reaclib)*Y(He4)*Y(O18)*state.rho); ydot_nuc(Ne22) = - (screened_rates(k_He4_O18_to_Ne22_reaclib)*Y(He4)*Y(O18)*state.rho + -screened_rates(k_Ne22_to_He4_O18_reaclib)*Y(Ne22)) + - (screened_rates(k_n_Ne21_to_Ne22_reaclib)*Y(Ne21)*Y(N)*state.rho + -screened_rates(k_Ne22_to_n_Ne21_reaclib)*Y(Ne22)) + - (-screened_rates(k_p_Ne22_to_Na23_reaclib)*Y(Ne22)*Y(H1)*state.rho + screened_rates(k_Na23_to_p_Ne22_reaclib)*Y(Na23)) + - (-screened_rates(k_He4_Ne22_to_Mg26_reaclib)*Y(He4)*Y(Ne22)*state.rho + screened_rates(k_Mg26_to_He4_Ne22_reaclib)*Y(Mg26)) + - (screened_rates(k_He4_F19_to_p_Ne22_reaclib)*Y(F19)*Y(He4)*state.rho + -screened_rates(k_p_Ne22_to_He4_F19_reaclib)*Y(Ne22)*Y(H1)*state.rho) + - (screened_rates(k_n_Na22_to_p_Ne22_reaclib)*Y(Na22)*Y(N)*state.rho + -screened_rates(k_p_Ne22_to_n_Na22_reaclib)*Y(Ne22)*Y(H1)*state.rho) + - (screened_rates(k_n_Mg25_to_He4_Ne22_reaclib)*Y(Mg25)*Y(N)*state.rho + -screened_rates(k_He4_Ne22_to_n_Mg25_reaclib)*Y(He4)*Y(Ne22)*state.rho) + - (screened_rates(k_Na22_to_Ne22_weaktab)*Y(Na22) + -screened_rates(k_Ne22_to_Na22_weaktab)*Y(Ne22)); + (screened_rates(k_O18_He4_to_Ne22_reaclib)*Y(He4)*Y(O18)*state.rho + -screened_rates(k_Ne22_to_He4_O18_derived)*Y(Ne22)) + + (screened_rates(k_Ne21_n_to_Ne22_reaclib)*Y(Ne21)*Y(N)*state.rho + -screened_rates(k_Ne22_to_n_Ne21_derived)*Y(Ne22)) + + (-screened_rates(k_Ne22_p_to_Na23_reaclib)*Y(Ne22)*Y(H1)*state.rho + screened_rates(k_Na23_to_p_Ne22_derived)*Y(Na23)) + + (-screened_rates(k_Ne22_He4_to_Mg26_reaclib)*Y(He4)*Y(Ne22)*state.rho + screened_rates(k_Mg26_to_He4_Ne22_derived)*Y(Mg26)) + + (screened_rates(k_F19_He4_to_p_Ne22_reaclib)*Y(F19)*Y(He4)*state.rho + -screened_rates(k_Ne22_p_to_He4_F19_derived)*Y(Ne22)*Y(H1)*state.rho) + + (screened_rates(k_Na22_n_to_p_Ne22_reaclib)*Y(Na22)*Y(N)*state.rho + -screened_rates(k_Ne22_p_to_n_Na22_derived)*Y(Ne22)*Y(H1)*state.rho) + + (screened_rates(k_Na22_to_Ne22_electron_capture_weaktab)*Y(Na22) + -screened_rates(k_Ne22_to_Na22_beta_neg_weaktab)*Y(Ne22)) + + (screened_rates(k_Mg25_n_to_He4_Ne22_derived)*Y(Mg25)*Y(N)*state.rho + -screened_rates(k_Ne22_He4_to_n_Mg25_reaclib)*Y(He4)*Y(Ne22)*state.rho); ydot_nuc(Na21) = - (screened_rates(k_He4_F17_to_Na21_reaclib)*Y(F17)*Y(He4)*state.rho + -screened_rates(k_Na21_to_He4_F17_reaclib)*Y(Na21)) + - (screened_rates(k_p_Ne20_to_Na21_reaclib)*Y(Ne20)*Y(H1)*state.rho + -screened_rates(k_Na21_to_p_Ne20_reaclib)*Y(Na21)) + - (-screened_rates(k_n_Na21_to_Na22_reaclib)*Y(Na21)*Y(N)*state.rho + screened_rates(k_Na22_to_n_Na21_reaclib)*Y(Na22)) + - (-screened_rates(k_He4_Na21_to_Al25_reaclib)*Y(He4)*Y(Na21)*state.rho + screened_rates(k_Al25_to_He4_Na21_reaclib)*Y(Al25)) + - (screened_rates(k_He4_Ne18_to_p_Na21_reaclib)*Y(He4)*Y(Ne18)*state.rho + -screened_rates(k_p_Na21_to_He4_Ne18_reaclib)*Y(Na21)*Y(H1)*state.rho) + - (-screened_rates(k_n_Na21_to_p_Ne21_reaclib)*Y(Na21)*Y(N)*state.rho + screened_rates(k_p_Ne21_to_n_Na21_reaclib)*Y(Ne21)*Y(H1)*state.rho) + - (-screened_rates(k_n_Na21_to_He4_F18_reaclib)*Y(Na21)*Y(N)*state.rho + screened_rates(k_He4_F18_to_n_Na21_reaclib)*Y(F18)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Na21_to_p_Mg24_reaclib)*Y(He4)*Y(Na21)*state.rho + screened_rates(k_p_Mg24_to_He4_Na21_reaclib)*Y(Mg24)*Y(H1)*state.rho) + - (-screened_rates(k_Na21_to_Ne21_weaktab)*Y(Na21) + screened_rates(k_Ne21_to_Na21_weaktab)*Y(Ne21)); + (screened_rates(k_F17_He4_to_Na21_reaclib)*Y(F17)*Y(He4)*state.rho + -screened_rates(k_Na21_to_He4_F17_derived)*Y(Na21)) + + (screened_rates(k_Ne20_p_to_Na21_reaclib)*Y(Ne20)*Y(H1)*state.rho + -screened_rates(k_Na21_to_p_Ne20_derived)*Y(Na21)) + + (-screened_rates(k_Na21_n_to_Na22_reaclib)*Y(Na21)*Y(N)*state.rho + screened_rates(k_Na22_to_n_Na21_derived)*Y(Na22)) + + (-screened_rates(k_Na21_He4_to_Al25_reaclib)*Y(He4)*Y(Na21)*state.rho + screened_rates(k_Al25_to_He4_Na21_derived)*Y(Al25)) + + (screened_rates(k_Ne18_He4_to_p_Na21_reaclib)*Y(He4)*Y(Ne18)*state.rho + -screened_rates(k_Na21_p_to_He4_Ne18_derived)*Y(Na21)*Y(H1)*state.rho) + + (-screened_rates(k_Na21_n_to_p_Ne21_reaclib)*Y(Na21)*Y(N)*state.rho + screened_rates(k_Ne21_p_to_n_Na21_derived)*Y(Ne21)*Y(H1)*state.rho) + + (-screened_rates(k_Na21_n_to_He4_F18_reaclib)*Y(Na21)*Y(N)*state.rho + screened_rates(k_F18_He4_to_n_Na21_derived)*Y(F18)*Y(He4)*state.rho) + + (-screened_rates(k_Na21_to_Ne21_electron_capture_weaktab)*Y(Na21) + screened_rates(k_Ne21_to_Na21_beta_neg_weaktab)*Y(Ne21)) + + (-screened_rates(k_Na21_He4_to_p_Mg24_derived)*Y(He4)*Y(Na21)*state.rho + screened_rates(k_Mg24_p_to_He4_Na21_reaclib)*Y(Mg24)*Y(H1)*state.rho); ydot_nuc(Na22) = - (screened_rates(k_He4_F18_to_Na22_reaclib)*Y(F18)*Y(He4)*state.rho + -screened_rates(k_Na22_to_He4_F18_reaclib)*Y(Na22)) + - (screened_rates(k_p_Ne21_to_Na22_reaclib)*Y(Ne21)*Y(H1)*state.rho + -screened_rates(k_Na22_to_p_Ne21_reaclib)*Y(Na22)) + - (screened_rates(k_n_Na21_to_Na22_reaclib)*Y(Na21)*Y(N)*state.rho + -screened_rates(k_Na22_to_n_Na21_reaclib)*Y(Na22)) + - (-screened_rates(k_n_Na22_to_Na23_reaclib)*Y(Na22)*Y(N)*state.rho + screened_rates(k_Na23_to_n_Na22_reaclib)*Y(Na23)) + - (-screened_rates(k_p_Na22_to_Mg23_reaclib)*Y(Na22)*Y(H1)*state.rho + screened_rates(k_Mg23_to_p_Na22_reaclib)*Y(Mg23)) + - (-screened_rates(k_He4_Na22_to_Al26_reaclib)*Y(He4)*Y(Na22)*state.rho + screened_rates(k_Al26_to_He4_Na22_reaclib)*Y(Al26)) + - (screened_rates(k_He4_Ne19_to_p_Na22_reaclib)*Y(He4)*Y(Ne19)*state.rho + -screened_rates(k_p_Na22_to_He4_Ne19_reaclib)*Y(Na22)*Y(H1)*state.rho) + - (-screened_rates(k_n_Na22_to_p_Ne22_reaclib)*Y(Na22)*Y(N)*state.rho + screened_rates(k_p_Ne22_to_n_Na22_reaclib)*Y(Ne22)*Y(H1)*state.rho) + - (-screened_rates(k_n_Na22_to_He4_F19_reaclib)*Y(Na22)*Y(N)*state.rho + screened_rates(k_He4_F19_to_n_Na22_reaclib)*Y(F19)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Na22_to_p_Mg25_reaclib)*Y(He4)*Y(Na22)*state.rho + screened_rates(k_p_Mg25_to_He4_Na22_reaclib)*Y(Mg25)*Y(H1)*state.rho) + - (screened_rates(k_n_Al25_to_He4_Na22_reaclib)*Y(Al25)*Y(N)*state.rho + -screened_rates(k_He4_Na22_to_n_Al25_reaclib)*Y(He4)*Y(Na22)*state.rho) + - (-screened_rates(k_Na22_to_Ne22_weaktab)*Y(Na22) + screened_rates(k_Ne22_to_Na22_weaktab)*Y(Ne22)); + (screened_rates(k_F18_He4_to_Na22_reaclib)*Y(F18)*Y(He4)*state.rho + -screened_rates(k_Na22_to_He4_F18_derived)*Y(Na22)) + + (screened_rates(k_Ne21_p_to_Na22_reaclib)*Y(Ne21)*Y(H1)*state.rho + -screened_rates(k_Na22_to_p_Ne21_derived)*Y(Na22)) + + (screened_rates(k_Na21_n_to_Na22_reaclib)*Y(Na21)*Y(N)*state.rho + -screened_rates(k_Na22_to_n_Na21_derived)*Y(Na22)) + + (-screened_rates(k_Na22_n_to_Na23_reaclib)*Y(Na22)*Y(N)*state.rho + screened_rates(k_Na23_to_n_Na22_derived)*Y(Na23)) + + (-screened_rates(k_Na22_p_to_Mg23_reaclib)*Y(Na22)*Y(H1)*state.rho + screened_rates(k_Mg23_to_p_Na22_derived)*Y(Mg23)) + + (-screened_rates(k_Na22_He4_to_Al26_reaclib)*Y(He4)*Y(Na22)*state.rho + screened_rates(k_Al26_to_He4_Na22_derived)*Y(Al26)) + + (screened_rates(k_Ne19_He4_to_p_Na22_reaclib)*Y(He4)*Y(Ne19)*state.rho + -screened_rates(k_Na22_p_to_He4_Ne19_derived)*Y(Na22)*Y(H1)*state.rho) + + (-screened_rates(k_Na22_n_to_p_Ne22_reaclib)*Y(Na22)*Y(N)*state.rho + screened_rates(k_Ne22_p_to_n_Na22_derived)*Y(Ne22)*Y(H1)*state.rho) + + (-screened_rates(k_Na22_n_to_He4_F19_reaclib)*Y(Na22)*Y(N)*state.rho + screened_rates(k_F19_He4_to_n_Na22_derived)*Y(F19)*Y(He4)*state.rho) + + (-screened_rates(k_Na22_He4_to_p_Mg25_reaclib)*Y(He4)*Y(Na22)*state.rho + screened_rates(k_Mg25_p_to_He4_Na22_derived)*Y(Mg25)*Y(H1)*state.rho) + + (screened_rates(k_Al25_n_to_He4_Na22_reaclib)*Y(Al25)*Y(N)*state.rho + -screened_rates(k_Na22_He4_to_n_Al25_derived)*Y(He4)*Y(Na22)*state.rho) + + (-screened_rates(k_Na22_to_Ne22_electron_capture_weaktab)*Y(Na22) + screened_rates(k_Ne22_to_Na22_beta_neg_weaktab)*Y(Ne22)); ydot_nuc(Na23) = - (screened_rates(k_He4_F19_to_Na23_reaclib)*Y(F19)*Y(He4)*state.rho + -screened_rates(k_Na23_to_He4_F19_reaclib)*Y(Na23)) + - (screened_rates(k_p_Ne22_to_Na23_reaclib)*Y(Ne22)*Y(H1)*state.rho + -screened_rates(k_Na23_to_p_Ne22_reaclib)*Y(Na23)) + - (screened_rates(k_n_Na22_to_Na23_reaclib)*Y(Na22)*Y(N)*state.rho + -screened_rates(k_Na23_to_n_Na22_reaclib)*Y(Na23)) + - (-screened_rates(k_p_Na23_to_Mg24_reaclib)*Y(Na23)*Y(H1)*state.rho + screened_rates(k_Mg24_to_p_Na23_reaclib)*Y(Mg24)) + - (-screened_rates(k_He4_Na23_to_Al27_reaclib)*Y(He4)*Y(Na23)*state.rho + screened_rates(k_Al27_to_He4_Na23_reaclib)*Y(Al27)) + - (0.5*screened_rates(k_C12_C12_to_p_Na23_reaclib)*amrex::Math::powi<2>(Y(C12))*state.rho + -screened_rates(k_p_Na23_to_C12_C12_reaclib)*Y(Na23)*Y(H1)*state.rho) + - (-screened_rates(k_p_Na23_to_He4_Ne20_reaclib)*Y(Na23)*Y(H1)*state.rho + screened_rates(k_He4_Ne20_to_p_Na23_reaclib)*Y(He4)*Y(Ne20)*state.rho) + - (-screened_rates(k_He4_Na23_to_p_Mg26_reaclib)*Y(He4)*Y(Na23)*state.rho + screened_rates(k_p_Mg26_to_He4_Na23_reaclib)*Y(Mg26)*Y(H1)*state.rho) + - (screened_rates(k_n_Mg23_to_p_Na23_reaclib)*Y(Mg23)*Y(N)*state.rho + -screened_rates(k_p_Na23_to_n_Mg23_reaclib)*Y(Na23)*Y(H1)*state.rho) + - (screened_rates(k_n_Al26_to_He4_Na23_reaclib)*Y(Al26)*Y(N)*state.rho + -screened_rates(k_He4_Na23_to_n_Al26_reaclib)*Y(He4)*Y(Na23)*state.rho) + - (screened_rates(k_Mg23_to_Na23_weaktab)*Y(Mg23) + -screened_rates(k_Na23_to_Mg23_weaktab)*Y(Na23)); + (screened_rates(k_F19_He4_to_Na23_reaclib)*Y(F19)*Y(He4)*state.rho + -screened_rates(k_Na23_to_He4_F19_derived)*Y(Na23)) + + (screened_rates(k_Ne22_p_to_Na23_reaclib)*Y(Ne22)*Y(H1)*state.rho + -screened_rates(k_Na23_to_p_Ne22_derived)*Y(Na23)) + + (screened_rates(k_Na22_n_to_Na23_reaclib)*Y(Na22)*Y(N)*state.rho + -screened_rates(k_Na23_to_n_Na22_derived)*Y(Na23)) + + (-screened_rates(k_Na23_p_to_Mg24_reaclib)*Y(Na23)*Y(H1)*state.rho + screened_rates(k_Mg24_to_p_Na23_derived)*Y(Mg24)) + + (-screened_rates(k_Na23_He4_to_Al27_reaclib)*Y(He4)*Y(Na23)*state.rho + screened_rates(k_Al27_to_He4_Na23_derived)*Y(Al27)) + + (0.5*screened_rates(k_C12_C12_to_p_Na23_reaclib)*amrex::Math::powi<2>(Y(C12))*state.rho + -screened_rates(k_Na23_p_to_C12_C12_derived)*Y(Na23)*Y(H1)*state.rho) + + (-screened_rates(k_Na23_p_to_He4_Ne20_reaclib)*Y(Na23)*Y(H1)*state.rho + screened_rates(k_Ne20_He4_to_p_Na23_derived)*Y(He4)*Y(Ne20)*state.rho) + + (-screened_rates(k_Na23_He4_to_p_Mg26_reaclib)*Y(He4)*Y(Na23)*state.rho + screened_rates(k_Mg26_p_to_He4_Na23_derived)*Y(Mg26)*Y(H1)*state.rho) + + (screened_rates(k_Al26_n_to_He4_Na23_reaclib)*Y(Al26)*Y(N)*state.rho + -screened_rates(k_Na23_He4_to_n_Al26_derived)*Y(He4)*Y(Na23)*state.rho) + + (screened_rates(k_Mg23_to_Na23_electron_capture_weaktab)*Y(Mg23) + -screened_rates(k_Na23_to_Mg23_beta_neg_weaktab)*Y(Na23)) + + (screened_rates(k_Mg23_n_to_p_Na23_derived)*Y(Mg23)*Y(N)*state.rho + -screened_rates(k_Na23_p_to_n_Mg23_reaclib)*Y(Na23)*Y(H1)*state.rho); ydot_nuc(Mg23) = - (screened_rates(k_He4_Ne19_to_Mg23_reaclib)*Y(He4)*Y(Ne19)*state.rho + -screened_rates(k_Mg23_to_He4_Ne19_reaclib)*Y(Mg23)) + - (screened_rates(k_p_Na22_to_Mg23_reaclib)*Y(Na22)*Y(H1)*state.rho + -screened_rates(k_Mg23_to_p_Na22_reaclib)*Y(Mg23)) + - (-screened_rates(k_n_Mg23_to_Mg24_reaclib)*Y(Mg23)*Y(N)*state.rho + screened_rates(k_Mg24_to_n_Mg23_reaclib)*Y(Mg24)) + - (-screened_rates(k_n_Mg23_to_p_Na23_reaclib)*Y(Mg23)*Y(N)*state.rho + screened_rates(k_p_Na23_to_n_Mg23_reaclib)*Y(Na23)*Y(H1)*state.rho) + - (-screened_rates(k_n_Mg23_to_He4_Ne20_reaclib)*Y(Mg23)*Y(N)*state.rho + screened_rates(k_He4_Ne20_to_n_Mg23_reaclib)*Y(He4)*Y(Ne20)*state.rho) + - (-screened_rates(k_n_Mg23_to_C12_C12_reaclib)*Y(Mg23)*Y(N)*state.rho + 0.5*screened_rates(k_C12_C12_to_n_Mg23_reaclib)*amrex::Math::powi<2>(Y(C12))*state.rho) + - (-screened_rates(k_He4_Mg23_to_p_Al26_reaclib)*Y(He4)*Y(Mg23)*state.rho + screened_rates(k_p_Al26_to_He4_Mg23_reaclib)*Y(Al26)*Y(H1)*state.rho) + - (-screened_rates(k_Mg23_to_Na23_weaktab)*Y(Mg23) + screened_rates(k_Na23_to_Mg23_weaktab)*Y(Na23)); + (screened_rates(k_Ne19_He4_to_Mg23_reaclib)*Y(He4)*Y(Ne19)*state.rho + -screened_rates(k_Mg23_to_He4_Ne19_derived)*Y(Mg23)) + + (screened_rates(k_Na22_p_to_Mg23_reaclib)*Y(Na22)*Y(H1)*state.rho + -screened_rates(k_Mg23_to_p_Na22_derived)*Y(Mg23)) + + (-screened_rates(k_Mg23_n_to_Mg24_reaclib)*Y(Mg23)*Y(N)*state.rho + screened_rates(k_Mg24_to_n_Mg23_derived)*Y(Mg24)) + + (-screened_rates(k_Mg23_n_to_He4_Ne20_reaclib)*Y(Mg23)*Y(N)*state.rho + screened_rates(k_Ne20_He4_to_n_Mg23_derived)*Y(He4)*Y(Ne20)*state.rho) + + (-screened_rates(k_Mg23_n_to_C12_C12_reaclib)*Y(Mg23)*Y(N)*state.rho + 0.5*screened_rates(k_C12_C12_to_n_Mg23_derived)*amrex::Math::powi<2>(Y(C12))*state.rho) + + (-screened_rates(k_Mg23_He4_to_p_Al26_reaclib)*Y(He4)*Y(Mg23)*state.rho + screened_rates(k_Al26_p_to_He4_Mg23_derived)*Y(Al26)*Y(H1)*state.rho) + + (-screened_rates(k_Mg23_to_Na23_electron_capture_weaktab)*Y(Mg23) + screened_rates(k_Na23_to_Mg23_beta_neg_weaktab)*Y(Na23)) + + (-screened_rates(k_Mg23_n_to_p_Na23_derived)*Y(Mg23)*Y(N)*state.rho + screened_rates(k_Na23_p_to_n_Mg23_reaclib)*Y(Na23)*Y(H1)*state.rho); ydot_nuc(Mg24) = - (screened_rates(k_He4_Ne20_to_Mg24_reaclib)*Y(He4)*Y(Ne20)*state.rho + -screened_rates(k_Mg24_to_He4_Ne20_reaclib)*Y(Mg24)) + - (screened_rates(k_p_Na23_to_Mg24_reaclib)*Y(Na23)*Y(H1)*state.rho + -screened_rates(k_Mg24_to_p_Na23_reaclib)*Y(Mg24)) + - (screened_rates(k_n_Mg23_to_Mg24_reaclib)*Y(Mg23)*Y(N)*state.rho + -screened_rates(k_Mg24_to_n_Mg23_reaclib)*Y(Mg24)) + - (-screened_rates(k_n_Mg24_to_Mg25_reaclib)*Y(Mg24)*Y(N)*state.rho + screened_rates(k_Mg25_to_n_Mg24_reaclib)*Y(Mg25)) + - (-screened_rates(k_p_Mg24_to_Al25_reaclib)*Y(Mg24)*Y(H1)*state.rho + screened_rates(k_Al25_to_p_Mg24_reaclib)*Y(Al25)) + - (-screened_rates(k_He4_Mg24_to_Si28_reaclib)*Y(He4)*Y(Mg24)*state.rho + screened_rates(k_Si28_to_He4_Mg24_reaclib)*Y(Si28)) + - (screened_rates(k_C12_O16_to_He4_Mg24_reaclib)*Y(C12)*Y(O16)*state.rho + -screened_rates(k_He4_Mg24_to_C12_O16_reaclib)*Y(He4)*Y(Mg24)*state.rho) + - (screened_rates(k_He4_Ne21_to_n_Mg24_reaclib)*Y(He4)*Y(Ne21)*state.rho + -screened_rates(k_n_Mg24_to_He4_Ne21_reaclib)*Y(Mg24)*Y(N)*state.rho) + - (screened_rates(k_He4_Na21_to_p_Mg24_reaclib)*Y(He4)*Y(Na21)*state.rho + -screened_rates(k_p_Mg24_to_He4_Na21_reaclib)*Y(Mg24)*Y(H1)*state.rho) + - (screened_rates(k_p_Al27_to_He4_Mg24_reaclib)*Y(Al27)*Y(H1)*state.rho + -screened_rates(k_He4_Mg24_to_p_Al27_reaclib)*Y(He4)*Y(Mg24)*state.rho); + (screened_rates(k_Ne20_He4_to_Mg24_reaclib)*Y(He4)*Y(Ne20)*state.rho + -screened_rates(k_Mg24_to_He4_Ne20_derived)*Y(Mg24)) + + (screened_rates(k_Na23_p_to_Mg24_reaclib)*Y(Na23)*Y(H1)*state.rho + -screened_rates(k_Mg24_to_p_Na23_derived)*Y(Mg24)) + + (screened_rates(k_Mg23_n_to_Mg24_reaclib)*Y(Mg23)*Y(N)*state.rho + -screened_rates(k_Mg24_to_n_Mg23_derived)*Y(Mg24)) + + (-screened_rates(k_Mg24_n_to_Mg25_reaclib)*Y(Mg24)*Y(N)*state.rho + screened_rates(k_Mg25_to_n_Mg24_derived)*Y(Mg25)) + + (-screened_rates(k_Mg24_p_to_Al25_reaclib)*Y(Mg24)*Y(H1)*state.rho + screened_rates(k_Al25_to_p_Mg24_derived)*Y(Al25)) + + (-screened_rates(k_Mg24_He4_to_Si28_reaclib)*Y(He4)*Y(Mg24)*state.rho + screened_rates(k_Si28_to_He4_Mg24_derived)*Y(Si28)) + + (screened_rates(k_O16_C12_to_He4_Mg24_reaclib)*Y(C12)*Y(O16)*state.rho + -screened_rates(k_Mg24_He4_to_C12_O16_derived)*Y(He4)*Y(Mg24)*state.rho) + + (screened_rates(k_Ne21_He4_to_n_Mg24_reaclib)*Y(He4)*Y(Ne21)*state.rho + -screened_rates(k_Mg24_n_to_He4_Ne21_derived)*Y(Mg24)*Y(N)*state.rho) + + (screened_rates(k_Al27_p_to_He4_Mg24_reaclib)*Y(Al27)*Y(H1)*state.rho + -screened_rates(k_Mg24_He4_to_p_Al27_derived)*Y(He4)*Y(Mg24)*state.rho) + + (screened_rates(k_Na21_He4_to_p_Mg24_derived)*Y(He4)*Y(Na21)*state.rho + -screened_rates(k_Mg24_p_to_He4_Na21_reaclib)*Y(Mg24)*Y(H1)*state.rho); ydot_nuc(Mg25) = - (screened_rates(k_He4_Ne21_to_Mg25_reaclib)*Y(He4)*Y(Ne21)*state.rho + -screened_rates(k_Mg25_to_He4_Ne21_reaclib)*Y(Mg25)) + - (screened_rates(k_n_Mg24_to_Mg25_reaclib)*Y(Mg24)*Y(N)*state.rho + -screened_rates(k_Mg25_to_n_Mg24_reaclib)*Y(Mg25)) + - (-screened_rates(k_n_Mg25_to_Mg26_reaclib)*Y(Mg25)*Y(N)*state.rho + screened_rates(k_Mg26_to_n_Mg25_reaclib)*Y(Mg26)) + - (-screened_rates(k_p_Mg25_to_Al26_reaclib)*Y(Mg25)*Y(H1)*state.rho + screened_rates(k_Al26_to_p_Mg25_reaclib)*Y(Al26)) + - (-screened_rates(k_He4_Mg25_to_Si29_reaclib)*Y(He4)*Y(Mg25)*state.rho + screened_rates(k_Si29_to_He4_Mg25_reaclib)*Y(Si29)) + - (screened_rates(k_He4_Na22_to_p_Mg25_reaclib)*Y(He4)*Y(Na22)*state.rho + -screened_rates(k_p_Mg25_to_He4_Na22_reaclib)*Y(Mg25)*Y(H1)*state.rho) + - (-screened_rates(k_n_Mg25_to_He4_Ne22_reaclib)*Y(Mg25)*Y(N)*state.rho + screened_rates(k_He4_Ne22_to_n_Mg25_reaclib)*Y(He4)*Y(Ne22)*state.rho) + - (-screened_rates(k_He4_Mg25_to_n_Si28_reaclib)*Y(He4)*Y(Mg25)*state.rho + screened_rates(k_n_Si28_to_He4_Mg25_reaclib)*Y(Si28)*Y(N)*state.rho) + - (screened_rates(k_n_Al25_to_p_Mg25_reaclib)*Y(Al25)*Y(N)*state.rho + -screened_rates(k_p_Mg25_to_n_Al25_reaclib)*Y(Mg25)*Y(H1)*state.rho) + - (screened_rates(k_Al25_to_Mg25_weaktab)*Y(Al25) + -screened_rates(k_Mg25_to_Al25_weaktab)*Y(Mg25)); + (screened_rates(k_Ne21_He4_to_Mg25_reaclib)*Y(He4)*Y(Ne21)*state.rho + -screened_rates(k_Mg25_to_He4_Ne21_derived)*Y(Mg25)) + + (screened_rates(k_Mg24_n_to_Mg25_reaclib)*Y(Mg24)*Y(N)*state.rho + -screened_rates(k_Mg25_to_n_Mg24_derived)*Y(Mg25)) + + (-screened_rates(k_Mg25_n_to_Mg26_reaclib)*Y(Mg25)*Y(N)*state.rho + screened_rates(k_Mg26_to_n_Mg25_derived)*Y(Mg26)) + + (-screened_rates(k_Mg25_p_to_Al26_reaclib)*Y(Mg25)*Y(H1)*state.rho + screened_rates(k_Al26_to_p_Mg25_derived)*Y(Al26)) + + (-screened_rates(k_Mg25_He4_to_Si29_reaclib)*Y(He4)*Y(Mg25)*state.rho + screened_rates(k_Si29_to_He4_Mg25_derived)*Y(Si29)) + + (screened_rates(k_Na22_He4_to_p_Mg25_reaclib)*Y(He4)*Y(Na22)*state.rho + -screened_rates(k_Mg25_p_to_He4_Na22_derived)*Y(Mg25)*Y(H1)*state.rho) + + (-screened_rates(k_Mg25_He4_to_n_Si28_reaclib)*Y(He4)*Y(Mg25)*state.rho + screened_rates(k_Si28_n_to_He4_Mg25_derived)*Y(Si28)*Y(N)*state.rho) + + (screened_rates(k_Al25_n_to_p_Mg25_reaclib)*Y(Al25)*Y(N)*state.rho + -screened_rates(k_Mg25_p_to_n_Al25_derived)*Y(Mg25)*Y(H1)*state.rho) + + (screened_rates(k_Al25_to_Mg25_electron_capture_weaktab)*Y(Al25) + -screened_rates(k_Mg25_to_Al25_beta_neg_weaktab)*Y(Mg25)) + + (-screened_rates(k_Mg25_n_to_He4_Ne22_derived)*Y(Mg25)*Y(N)*state.rho + screened_rates(k_Ne22_He4_to_n_Mg25_reaclib)*Y(He4)*Y(Ne22)*state.rho); ydot_nuc(Mg26) = - (screened_rates(k_He4_Ne22_to_Mg26_reaclib)*Y(He4)*Y(Ne22)*state.rho + -screened_rates(k_Mg26_to_He4_Ne22_reaclib)*Y(Mg26)) + - (screened_rates(k_n_Mg25_to_Mg26_reaclib)*Y(Mg25)*Y(N)*state.rho + -screened_rates(k_Mg26_to_n_Mg25_reaclib)*Y(Mg26)) + - (-screened_rates(k_p_Mg26_to_Al27_reaclib)*Y(Mg26)*Y(H1)*state.rho + screened_rates(k_Al27_to_p_Mg26_reaclib)*Y(Al27)) + - (-screened_rates(k_He4_Mg26_to_Si30_reaclib)*Y(He4)*Y(Mg26)*state.rho + screened_rates(k_Si30_to_He4_Mg26_reaclib)*Y(Si30)) + - (screened_rates(k_He4_Na23_to_p_Mg26_reaclib)*Y(He4)*Y(Na23)*state.rho + -screened_rates(k_p_Mg26_to_He4_Na23_reaclib)*Y(Mg26)*Y(H1)*state.rho) + - (-screened_rates(k_He4_Mg26_to_n_Si29_reaclib)*Y(He4)*Y(Mg26)*state.rho + screened_rates(k_n_Si29_to_He4_Mg26_reaclib)*Y(Si29)*Y(N)*state.rho) + - (screened_rates(k_n_Al26_to_p_Mg26_reaclib)*Y(Al26)*Y(N)*state.rho + -screened_rates(k_p_Mg26_to_n_Al26_reaclib)*Y(Mg26)*Y(H1)*state.rho) + - (screened_rates(k_Al26_to_Mg26_weaktab)*Y(Al26) + -screened_rates(k_Mg26_to_Al26_weaktab)*Y(Mg26)); + (screened_rates(k_Ne22_He4_to_Mg26_reaclib)*Y(He4)*Y(Ne22)*state.rho + -screened_rates(k_Mg26_to_He4_Ne22_derived)*Y(Mg26)) + + (screened_rates(k_Mg25_n_to_Mg26_reaclib)*Y(Mg25)*Y(N)*state.rho + -screened_rates(k_Mg26_to_n_Mg25_derived)*Y(Mg26)) + + (-screened_rates(k_Mg26_p_to_Al27_reaclib)*Y(Mg26)*Y(H1)*state.rho + screened_rates(k_Al27_to_p_Mg26_derived)*Y(Al27)) + + (-screened_rates(k_Mg26_He4_to_Si30_reaclib)*Y(He4)*Y(Mg26)*state.rho + screened_rates(k_Si30_to_He4_Mg26_derived)*Y(Si30)) + + (screened_rates(k_Na23_He4_to_p_Mg26_reaclib)*Y(He4)*Y(Na23)*state.rho + -screened_rates(k_Mg26_p_to_He4_Na23_derived)*Y(Mg26)*Y(H1)*state.rho) + + (-screened_rates(k_Mg26_He4_to_n_Si29_reaclib)*Y(He4)*Y(Mg26)*state.rho + screened_rates(k_Si29_n_to_He4_Mg26_derived)*Y(Si29)*Y(N)*state.rho) + + (screened_rates(k_Al26_n_to_p_Mg26_reaclib)*Y(Al26)*Y(N)*state.rho + -screened_rates(k_Mg26_p_to_n_Al26_derived)*Y(Mg26)*Y(H1)*state.rho) + + (screened_rates(k_Al26_to_Mg26_electron_capture_weaktab)*Y(Al26) + -screened_rates(k_Mg26_to_Al26_beta_neg_weaktab)*Y(Mg26)); ydot_nuc(Al25) = - (screened_rates(k_He4_Na21_to_Al25_reaclib)*Y(He4)*Y(Na21)*state.rho + -screened_rates(k_Al25_to_He4_Na21_reaclib)*Y(Al25)) + - (screened_rates(k_p_Mg24_to_Al25_reaclib)*Y(Mg24)*Y(H1)*state.rho + -screened_rates(k_Al25_to_p_Mg24_reaclib)*Y(Al25)) + - (-screened_rates(k_n_Al25_to_Al26_reaclib)*Y(Al25)*Y(N)*state.rho + screened_rates(k_Al26_to_n_Al25_reaclib)*Y(Al26)) + - (-screened_rates(k_He4_Al25_to_P29_reaclib)*Y(Al25)*Y(He4)*state.rho + screened_rates(k_P29_to_He4_Al25_reaclib)*Y(P29)) + - (-screened_rates(k_n_Al25_to_p_Mg25_reaclib)*Y(Al25)*Y(N)*state.rho + screened_rates(k_p_Mg25_to_n_Al25_reaclib)*Y(Mg25)*Y(H1)*state.rho) + - (-screened_rates(k_n_Al25_to_He4_Na22_reaclib)*Y(Al25)*Y(N)*state.rho + screened_rates(k_He4_Na22_to_n_Al25_reaclib)*Y(He4)*Y(Na22)*state.rho) + - (-screened_rates(k_He4_Al25_to_p_Si28_reaclib)*Y(Al25)*Y(He4)*state.rho + screened_rates(k_p_Si28_to_He4_Al25_reaclib)*Y(Si28)*Y(H1)*state.rho) + - (-screened_rates(k_Al25_to_Mg25_weaktab)*Y(Al25) + screened_rates(k_Mg25_to_Al25_weaktab)*Y(Mg25)); + (screened_rates(k_Na21_He4_to_Al25_reaclib)*Y(He4)*Y(Na21)*state.rho + -screened_rates(k_Al25_to_He4_Na21_derived)*Y(Al25)) + + (screened_rates(k_Mg24_p_to_Al25_reaclib)*Y(Mg24)*Y(H1)*state.rho + -screened_rates(k_Al25_to_p_Mg24_derived)*Y(Al25)) + + (-screened_rates(k_Al25_n_to_Al26_reaclib)*Y(Al25)*Y(N)*state.rho + screened_rates(k_Al26_to_n_Al25_derived)*Y(Al26)) + + (-screened_rates(k_Al25_He4_to_P29_reaclib)*Y(Al25)*Y(He4)*state.rho + screened_rates(k_P29_to_He4_Al25_derived)*Y(P29)) + + (-screened_rates(k_Al25_n_to_p_Mg25_reaclib)*Y(Al25)*Y(N)*state.rho + screened_rates(k_Mg25_p_to_n_Al25_derived)*Y(Mg25)*Y(H1)*state.rho) + + (-screened_rates(k_Al25_n_to_He4_Na22_reaclib)*Y(Al25)*Y(N)*state.rho + screened_rates(k_Na22_He4_to_n_Al25_derived)*Y(He4)*Y(Na22)*state.rho) + + (-screened_rates(k_Al25_He4_to_p_Si28_reaclib)*Y(Al25)*Y(He4)*state.rho + screened_rates(k_Si28_p_to_He4_Al25_derived)*Y(Si28)*Y(H1)*state.rho) + + (-screened_rates(k_Al25_to_Mg25_electron_capture_weaktab)*Y(Al25) + screened_rates(k_Mg25_to_Al25_beta_neg_weaktab)*Y(Mg25)); ydot_nuc(Al26) = - (screened_rates(k_He4_Na22_to_Al26_reaclib)*Y(He4)*Y(Na22)*state.rho + -screened_rates(k_Al26_to_He4_Na22_reaclib)*Y(Al26)) + - (screened_rates(k_p_Mg25_to_Al26_reaclib)*Y(Mg25)*Y(H1)*state.rho + -screened_rates(k_Al26_to_p_Mg25_reaclib)*Y(Al26)) + - (screened_rates(k_n_Al25_to_Al26_reaclib)*Y(Al25)*Y(N)*state.rho + -screened_rates(k_Al26_to_n_Al25_reaclib)*Y(Al26)) + - (-screened_rates(k_n_Al26_to_Al27_reaclib)*Y(Al26)*Y(N)*state.rho + screened_rates(k_Al27_to_n_Al26_reaclib)*Y(Al27)) + - (-screened_rates(k_He4_Al26_to_P30_reaclib)*Y(Al26)*Y(He4)*state.rho + screened_rates(k_P30_to_He4_Al26_reaclib)*Y(P30)) + - (screened_rates(k_He4_Mg23_to_p_Al26_reaclib)*Y(He4)*Y(Mg23)*state.rho + -screened_rates(k_p_Al26_to_He4_Mg23_reaclib)*Y(Al26)*Y(H1)*state.rho) + - (-screened_rates(k_n_Al26_to_p_Mg26_reaclib)*Y(Al26)*Y(N)*state.rho + screened_rates(k_p_Mg26_to_n_Al26_reaclib)*Y(Mg26)*Y(H1)*state.rho) + - (-screened_rates(k_n_Al26_to_He4_Na23_reaclib)*Y(Al26)*Y(N)*state.rho + screened_rates(k_He4_Na23_to_n_Al26_reaclib)*Y(He4)*Y(Na23)*state.rho) + - (-screened_rates(k_He4_Al26_to_p_Si29_reaclib)*Y(Al26)*Y(He4)*state.rho + screened_rates(k_p_Si29_to_He4_Al26_reaclib)*Y(Si29)*Y(H1)*state.rho) + - (screened_rates(k_n_P29_to_He4_Al26_reaclib)*Y(P29)*Y(N)*state.rho + -screened_rates(k_He4_Al26_to_n_P29_reaclib)*Y(Al26)*Y(He4)*state.rho) + - (-screened_rates(k_Al26_to_Mg26_weaktab)*Y(Al26) + screened_rates(k_Mg26_to_Al26_weaktab)*Y(Mg26)); + (screened_rates(k_Na22_He4_to_Al26_reaclib)*Y(He4)*Y(Na22)*state.rho + -screened_rates(k_Al26_to_He4_Na22_derived)*Y(Al26)) + + (screened_rates(k_Mg25_p_to_Al26_reaclib)*Y(Mg25)*Y(H1)*state.rho + -screened_rates(k_Al26_to_p_Mg25_derived)*Y(Al26)) + + (screened_rates(k_Al25_n_to_Al26_reaclib)*Y(Al25)*Y(N)*state.rho + -screened_rates(k_Al26_to_n_Al25_derived)*Y(Al26)) + + (-screened_rates(k_Al26_n_to_Al27_reaclib)*Y(Al26)*Y(N)*state.rho + screened_rates(k_Al27_to_n_Al26_derived)*Y(Al27)) + + (-screened_rates(k_Al26_He4_to_P30_reaclib)*Y(Al26)*Y(He4)*state.rho + screened_rates(k_P30_to_He4_Al26_derived)*Y(P30)) + + (screened_rates(k_Mg23_He4_to_p_Al26_reaclib)*Y(He4)*Y(Mg23)*state.rho + -screened_rates(k_Al26_p_to_He4_Mg23_derived)*Y(Al26)*Y(H1)*state.rho) + + (-screened_rates(k_Al26_n_to_p_Mg26_reaclib)*Y(Al26)*Y(N)*state.rho + screened_rates(k_Mg26_p_to_n_Al26_derived)*Y(Mg26)*Y(H1)*state.rho) + + (-screened_rates(k_Al26_n_to_He4_Na23_reaclib)*Y(Al26)*Y(N)*state.rho + screened_rates(k_Na23_He4_to_n_Al26_derived)*Y(He4)*Y(Na23)*state.rho) + + (-screened_rates(k_Al26_He4_to_p_Si29_reaclib)*Y(Al26)*Y(He4)*state.rho + screened_rates(k_Si29_p_to_He4_Al26_derived)*Y(Si29)*Y(H1)*state.rho) + + (screened_rates(k_P29_n_to_He4_Al26_reaclib)*Y(P29)*Y(N)*state.rho + -screened_rates(k_Al26_He4_to_n_P29_derived)*Y(Al26)*Y(He4)*state.rho) + + (-screened_rates(k_Al26_to_Mg26_electron_capture_weaktab)*Y(Al26) + screened_rates(k_Mg26_to_Al26_beta_neg_weaktab)*Y(Mg26)); ydot_nuc(Al27) = - (screened_rates(k_He4_Na23_to_Al27_reaclib)*Y(He4)*Y(Na23)*state.rho + -screened_rates(k_Al27_to_He4_Na23_reaclib)*Y(Al27)) + - (screened_rates(k_p_Mg26_to_Al27_reaclib)*Y(Mg26)*Y(H1)*state.rho + -screened_rates(k_Al27_to_p_Mg26_reaclib)*Y(Al27)) + - (screened_rates(k_n_Al26_to_Al27_reaclib)*Y(Al26)*Y(N)*state.rho + -screened_rates(k_Al27_to_n_Al26_reaclib)*Y(Al27)) + - (-screened_rates(k_p_Al27_to_Si28_reaclib)*Y(Al27)*Y(H1)*state.rho + screened_rates(k_Si28_to_p_Al27_reaclib)*Y(Si28)) + - (-screened_rates(k_He4_Al27_to_P31_reaclib)*Y(Al27)*Y(He4)*state.rho + screened_rates(k_P31_to_He4_Al27_reaclib)*Y(P31)) + - (screened_rates(k_C12_O16_to_p_Al27_reaclib)*Y(C12)*Y(O16)*state.rho + -screened_rates(k_p_Al27_to_C12_O16_reaclib)*Y(Al27)*Y(H1)*state.rho) + - (-screened_rates(k_p_Al27_to_He4_Mg24_reaclib)*Y(Al27)*Y(H1)*state.rho + screened_rates(k_He4_Mg24_to_p_Al27_reaclib)*Y(He4)*Y(Mg24)*state.rho) + - (-screened_rates(k_He4_Al27_to_p_Si30_reaclib)*Y(Al27)*Y(He4)*state.rho + screened_rates(k_p_Si30_to_He4_Al27_reaclib)*Y(Si30)*Y(H1)*state.rho) + - (screened_rates(k_n_P30_to_He4_Al27_reaclib)*Y(P30)*Y(N)*state.rho + -screened_rates(k_He4_Al27_to_n_P30_reaclib)*Y(Al27)*Y(He4)*state.rho); + (screened_rates(k_Na23_He4_to_Al27_reaclib)*Y(He4)*Y(Na23)*state.rho + -screened_rates(k_Al27_to_He4_Na23_derived)*Y(Al27)) + + (screened_rates(k_Mg26_p_to_Al27_reaclib)*Y(Mg26)*Y(H1)*state.rho + -screened_rates(k_Al27_to_p_Mg26_derived)*Y(Al27)) + + (screened_rates(k_Al26_n_to_Al27_reaclib)*Y(Al26)*Y(N)*state.rho + -screened_rates(k_Al27_to_n_Al26_derived)*Y(Al27)) + + (-screened_rates(k_Al27_p_to_Si28_reaclib)*Y(Al27)*Y(H1)*state.rho + screened_rates(k_Si28_to_p_Al27_derived)*Y(Si28)) + + (-screened_rates(k_Al27_He4_to_P31_reaclib)*Y(Al27)*Y(He4)*state.rho + screened_rates(k_P31_to_He4_Al27_derived)*Y(P31)) + + (screened_rates(k_O16_C12_to_p_Al27_reaclib)*Y(C12)*Y(O16)*state.rho + -screened_rates(k_Al27_p_to_C12_O16_derived)*Y(Al27)*Y(H1)*state.rho) + + (-screened_rates(k_Al27_p_to_He4_Mg24_reaclib)*Y(Al27)*Y(H1)*state.rho + screened_rates(k_Mg24_He4_to_p_Al27_derived)*Y(He4)*Y(Mg24)*state.rho) + + (-screened_rates(k_Al27_He4_to_p_Si30_reaclib)*Y(Al27)*Y(He4)*state.rho + screened_rates(k_Si30_p_to_He4_Al27_derived)*Y(Si30)*Y(H1)*state.rho) + + (screened_rates(k_P30_n_to_He4_Al27_derived)*Y(P30)*Y(N)*state.rho + -screened_rates(k_Al27_He4_to_n_P30_reaclib)*Y(Al27)*Y(He4)*state.rho); ydot_nuc(Si28) = - (screened_rates(k_He4_Mg24_to_Si28_reaclib)*Y(He4)*Y(Mg24)*state.rho + -screened_rates(k_Si28_to_He4_Mg24_reaclib)*Y(Si28)) + - (screened_rates(k_p_Al27_to_Si28_reaclib)*Y(Al27)*Y(H1)*state.rho + -screened_rates(k_Si28_to_p_Al27_reaclib)*Y(Si28)) + - (-screened_rates(k_n_Si28_to_Si29_reaclib)*Y(Si28)*Y(N)*state.rho + screened_rates(k_Si29_to_n_Si28_reaclib)*Y(Si29)) + - (-screened_rates(k_p_Si28_to_P29_reaclib)*Y(Si28)*Y(H1)*state.rho + screened_rates(k_P29_to_p_Si28_reaclib)*Y(P29)) + - (-screened_rates(k_He4_Si28_to_S32_reaclib)*Y(He4)*Y(Si28)*state.rho + screened_rates(k_S32_to_He4_Si28_reaclib)*Y(S32)) + - (0.5*screened_rates(k_O16_O16_to_He4_Si28_reaclib)*amrex::Math::powi<2>(Y(O16))*state.rho + -screened_rates(k_He4_Si28_to_O16_O16_reaclib)*Y(He4)*Y(Si28)*state.rho) + - (screened_rates(k_C12_Ne20_to_He4_Si28_reaclib)*Y(C12)*Y(Ne20)*state.rho + -screened_rates(k_He4_Si28_to_C12_Ne20_reaclib)*Y(He4)*Y(Si28)*state.rho) + - (screened_rates(k_He4_Mg25_to_n_Si28_reaclib)*Y(He4)*Y(Mg25)*state.rho + -screened_rates(k_n_Si28_to_He4_Mg25_reaclib)*Y(Si28)*Y(N)*state.rho) + - (screened_rates(k_He4_Al25_to_p_Si28_reaclib)*Y(Al25)*Y(He4)*state.rho + -screened_rates(k_p_Si28_to_He4_Al25_reaclib)*Y(Si28)*Y(H1)*state.rho) + - (screened_rates(k_p_P31_to_He4_Si28_reaclib)*Y(P31)*Y(H1)*state.rho + -screened_rates(k_He4_Si28_to_p_P31_reaclib)*Y(He4)*Y(Si28)*state.rho); + (screened_rates(k_Mg24_He4_to_Si28_reaclib)*Y(He4)*Y(Mg24)*state.rho + -screened_rates(k_Si28_to_He4_Mg24_derived)*Y(Si28)) + + (screened_rates(k_Al27_p_to_Si28_reaclib)*Y(Al27)*Y(H1)*state.rho + -screened_rates(k_Si28_to_p_Al27_derived)*Y(Si28)) + + (-screened_rates(k_Si28_n_to_Si29_reaclib)*Y(Si28)*Y(N)*state.rho + screened_rates(k_Si29_to_n_Si28_derived)*Y(Si29)) + + (-screened_rates(k_Si28_p_to_P29_reaclib)*Y(Si28)*Y(H1)*state.rho + screened_rates(k_P29_to_p_Si28_derived)*Y(P29)) + + (-screened_rates(k_Si28_He4_to_S32_reaclib)*Y(He4)*Y(Si28)*state.rho + screened_rates(k_S32_to_He4_Si28_derived)*Y(S32)) + + (0.5*screened_rates(k_O16_O16_to_He4_Si28_reaclib)*amrex::Math::powi<2>(Y(O16))*state.rho + -screened_rates(k_Si28_He4_to_O16_O16_derived)*Y(He4)*Y(Si28)*state.rho) + + (screened_rates(k_Ne20_C12_to_He4_Si28_reaclib)*Y(C12)*Y(Ne20)*state.rho + -screened_rates(k_Si28_He4_to_C12_Ne20_derived)*Y(He4)*Y(Si28)*state.rho) + + (screened_rates(k_Mg25_He4_to_n_Si28_reaclib)*Y(He4)*Y(Mg25)*state.rho + -screened_rates(k_Si28_n_to_He4_Mg25_derived)*Y(Si28)*Y(N)*state.rho) + + (screened_rates(k_Al25_He4_to_p_Si28_reaclib)*Y(Al25)*Y(He4)*state.rho + -screened_rates(k_Si28_p_to_He4_Al25_derived)*Y(Si28)*Y(H1)*state.rho) + + (screened_rates(k_P31_p_to_He4_Si28_reaclib)*Y(P31)*Y(H1)*state.rho + -screened_rates(k_Si28_He4_to_p_P31_derived)*Y(He4)*Y(Si28)*state.rho); ydot_nuc(Si29) = - (screened_rates(k_He4_Mg25_to_Si29_reaclib)*Y(He4)*Y(Mg25)*state.rho + -screened_rates(k_Si29_to_He4_Mg25_reaclib)*Y(Si29)) + - (screened_rates(k_n_Si28_to_Si29_reaclib)*Y(Si28)*Y(N)*state.rho + -screened_rates(k_Si29_to_n_Si28_reaclib)*Y(Si29)) + - (-screened_rates(k_n_Si29_to_Si30_reaclib)*Y(Si29)*Y(N)*state.rho + screened_rates(k_Si30_to_n_Si29_reaclib)*Y(Si30)) + - (-screened_rates(k_p_Si29_to_P30_reaclib)*Y(Si29)*Y(H1)*state.rho + screened_rates(k_P30_to_p_Si29_reaclib)*Y(P30)) + - (-screened_rates(k_He4_Si29_to_S33_reaclib)*Y(He4)*Y(Si29)*state.rho + screened_rates(k_S33_to_He4_Si29_reaclib)*Y(S33)) + - (screened_rates(k_He4_Mg26_to_n_Si29_reaclib)*Y(He4)*Y(Mg26)*state.rho + -screened_rates(k_n_Si29_to_He4_Mg26_reaclib)*Y(Si29)*Y(N)*state.rho) + - (screened_rates(k_He4_Al26_to_p_Si29_reaclib)*Y(Al26)*Y(He4)*state.rho + -screened_rates(k_p_Si29_to_He4_Al26_reaclib)*Y(Si29)*Y(H1)*state.rho) + - (screened_rates(k_n_P29_to_p_Si29_reaclib)*Y(P29)*Y(N)*state.rho + -screened_rates(k_p_Si29_to_n_P29_reaclib)*Y(Si29)*Y(H1)*state.rho) + - (screened_rates(k_p_P32_to_He4_Si29_reaclib)*Y(P32)*Y(H1)*state.rho + -screened_rates(k_He4_Si29_to_p_P32_reaclib)*Y(He4)*Y(Si29)*state.rho) + - (screened_rates(k_n_S32_to_He4_Si29_reaclib)*Y(S32)*Y(N)*state.rho + -screened_rates(k_He4_Si29_to_n_S32_reaclib)*Y(He4)*Y(Si29)*state.rho) + - (screened_rates(k_P29_to_Si29_weaktab)*Y(P29) + -screened_rates(k_Si29_to_P29_weaktab)*Y(Si29)); + (screened_rates(k_Mg25_He4_to_Si29_reaclib)*Y(He4)*Y(Mg25)*state.rho + -screened_rates(k_Si29_to_He4_Mg25_derived)*Y(Si29)) + + (screened_rates(k_Si28_n_to_Si29_reaclib)*Y(Si28)*Y(N)*state.rho + -screened_rates(k_Si29_to_n_Si28_derived)*Y(Si29)) + + (-screened_rates(k_Si29_n_to_Si30_reaclib)*Y(Si29)*Y(N)*state.rho + screened_rates(k_Si30_to_n_Si29_derived)*Y(Si30)) + + (-screened_rates(k_Si29_p_to_P30_reaclib)*Y(Si29)*Y(H1)*state.rho + screened_rates(k_P30_to_p_Si29_derived)*Y(P30)) + + (-screened_rates(k_Si29_He4_to_S33_reaclib)*Y(He4)*Y(Si29)*state.rho + screened_rates(k_S33_to_He4_Si29_derived)*Y(S33)) + + (screened_rates(k_Mg26_He4_to_n_Si29_reaclib)*Y(He4)*Y(Mg26)*state.rho + -screened_rates(k_Si29_n_to_He4_Mg26_derived)*Y(Si29)*Y(N)*state.rho) + + (screened_rates(k_Al26_He4_to_p_Si29_reaclib)*Y(Al26)*Y(He4)*state.rho + -screened_rates(k_Si29_p_to_He4_Al26_derived)*Y(Si29)*Y(H1)*state.rho) + + (screened_rates(k_P29_n_to_p_Si29_reaclib)*Y(P29)*Y(N)*state.rho + -screened_rates(k_Si29_p_to_n_P29_derived)*Y(Si29)*Y(H1)*state.rho) + + (screened_rates(k_P32_p_to_He4_Si29_reaclib)*Y(P32)*Y(H1)*state.rho + -screened_rates(k_Si29_He4_to_p_P32_derived)*Y(He4)*Y(Si29)*state.rho) + + (screened_rates(k_S32_n_to_He4_Si29_reaclib)*Y(S32)*Y(N)*state.rho + -screened_rates(k_Si29_He4_to_n_S32_derived)*Y(He4)*Y(Si29)*state.rho) + + (screened_rates(k_P29_to_Si29_electron_capture_weaktab)*Y(P29) + -screened_rates(k_Si29_to_P29_beta_neg_weaktab)*Y(Si29)); ydot_nuc(Si30) = - (screened_rates(k_He4_Mg26_to_Si30_reaclib)*Y(He4)*Y(Mg26)*state.rho + -screened_rates(k_Si30_to_He4_Mg26_reaclib)*Y(Si30)) + - (screened_rates(k_n_Si29_to_Si30_reaclib)*Y(Si29)*Y(N)*state.rho + -screened_rates(k_Si30_to_n_Si29_reaclib)*Y(Si30)) + - (-screened_rates(k_n_Si30_to_Si31_reaclib)*Y(Si30)*Y(N)*state.rho + screened_rates(k_Si31_to_n_Si30_reaclib)*Y(Si31)) + - (-screened_rates(k_p_Si30_to_P31_reaclib)*Y(Si30)*Y(H1)*state.rho + screened_rates(k_P31_to_p_Si30_reaclib)*Y(P31)) + - (-screened_rates(k_He4_Si30_to_S34_reaclib)*Y(He4)*Y(Si30)*state.rho + screened_rates(k_S34_to_He4_Si30_reaclib)*Y(S34)) + - (screened_rates(k_He4_Al27_to_p_Si30_reaclib)*Y(Al27)*Y(He4)*state.rho + -screened_rates(k_p_Si30_to_He4_Al27_reaclib)*Y(Si30)*Y(H1)*state.rho) + - (screened_rates(k_n_P30_to_p_Si30_reaclib)*Y(P30)*Y(N)*state.rho + -screened_rates(k_p_Si30_to_n_P30_reaclib)*Y(Si30)*Y(H1)*state.rho) + - (screened_rates(k_p_P33_to_He4_Si30_reaclib)*Y(P33)*Y(H1)*state.rho + -screened_rates(k_He4_Si30_to_p_P33_reaclib)*Y(He4)*Y(Si30)*state.rho) + - (screened_rates(k_n_S33_to_He4_Si30_reaclib)*Y(S33)*Y(N)*state.rho + -screened_rates(k_He4_Si30_to_n_S33_reaclib)*Y(He4)*Y(Si30)*state.rho) + - (screened_rates(k_P30_to_Si30_weaktab)*Y(P30) + -screened_rates(k_Si30_to_P30_weaktab)*Y(Si30)); + (screened_rates(k_Mg26_He4_to_Si30_reaclib)*Y(He4)*Y(Mg26)*state.rho + -screened_rates(k_Si30_to_He4_Mg26_derived)*Y(Si30)) + + (screened_rates(k_Si29_n_to_Si30_reaclib)*Y(Si29)*Y(N)*state.rho + -screened_rates(k_Si30_to_n_Si29_derived)*Y(Si30)) + + (-screened_rates(k_Si30_n_to_Si31_reaclib)*Y(Si30)*Y(N)*state.rho + screened_rates(k_Si31_to_n_Si30_derived)*Y(Si31)) + + (-screened_rates(k_Si30_p_to_P31_reaclib)*Y(Si30)*Y(H1)*state.rho + screened_rates(k_P31_to_p_Si30_derived)*Y(P31)) + + (-screened_rates(k_Si30_He4_to_S34_reaclib)*Y(He4)*Y(Si30)*state.rho + screened_rates(k_S34_to_He4_Si30_derived)*Y(S34)) + + (screened_rates(k_Al27_He4_to_p_Si30_reaclib)*Y(Al27)*Y(He4)*state.rho + -screened_rates(k_Si30_p_to_He4_Al27_derived)*Y(Si30)*Y(H1)*state.rho) + + (screened_rates(k_P30_n_to_p_Si30_reaclib)*Y(P30)*Y(N)*state.rho + -screened_rates(k_Si30_p_to_n_P30_derived)*Y(Si30)*Y(H1)*state.rho) + + (screened_rates(k_P33_p_to_He4_Si30_reaclib)*Y(P33)*Y(H1)*state.rho + -screened_rates(k_Si30_He4_to_p_P33_derived)*Y(He4)*Y(Si30)*state.rho) + + (screened_rates(k_S33_n_to_He4_Si30_reaclib)*Y(S33)*Y(N)*state.rho + -screened_rates(k_Si30_He4_to_n_S33_derived)*Y(He4)*Y(Si30)*state.rho) + + (screened_rates(k_P30_to_Si30_electron_capture_weaktab)*Y(P30) + -screened_rates(k_Si30_to_P30_beta_neg_weaktab)*Y(Si30)); ydot_nuc(Si31) = - (screened_rates(k_n_Si30_to_Si31_reaclib)*Y(Si30)*Y(N)*state.rho + -screened_rates(k_Si31_to_n_Si30_reaclib)*Y(Si31)) + - (-screened_rates(k_n_Si31_to_Si32_reaclib)*Y(Si31)*Y(N)*state.rho + screened_rates(k_Si32_to_n_Si31_reaclib)*Y(Si32)) + - (-screened_rates(k_p_Si31_to_P32_reaclib)*Y(Si31)*Y(H1)*state.rho + screened_rates(k_P32_to_p_Si31_reaclib)*Y(P32)) + - (-screened_rates(k_He4_Si31_to_S35_reaclib)*Y(He4)*Y(Si31)*state.rho + screened_rates(k_S35_to_He4_Si31_reaclib)*Y(S35)) + - (-screened_rates(k_p_Si31_to_n_P31_reaclib)*Y(Si31)*Y(H1)*state.rho + screened_rates(k_n_P31_to_p_Si31_reaclib)*Y(P31)*Y(N)*state.rho) + - (-screened_rates(k_He4_Si31_to_n_S34_reaclib)*Y(He4)*Y(Si31)*state.rho + screened_rates(k_n_S34_to_He4_Si31_reaclib)*Y(S34)*Y(N)*state.rho) + - (-screened_rates(k_Si31_to_P31_weaktab)*Y(Si31) + screened_rates(k_P31_to_Si31_weaktab)*Y(P31)); + (screened_rates(k_Si30_n_to_Si31_reaclib)*Y(Si30)*Y(N)*state.rho + -screened_rates(k_Si31_to_n_Si30_derived)*Y(Si31)) + + (-screened_rates(k_Si31_n_to_Si32_reaclib)*Y(Si31)*Y(N)*state.rho + screened_rates(k_Si32_to_n_Si31_derived)*Y(Si32)) + + (-screened_rates(k_Si31_p_to_P32_reaclib)*Y(Si31)*Y(H1)*state.rho + screened_rates(k_P32_to_p_Si31_derived)*Y(P32)) + + (-screened_rates(k_Si31_He4_to_S35_reaclib)*Y(He4)*Y(Si31)*state.rho + screened_rates(k_S35_to_He4_Si31_derived)*Y(S35)) + + (-screened_rates(k_Si31_p_to_n_P31_reaclib)*Y(Si31)*Y(H1)*state.rho + screened_rates(k_P31_n_to_p_Si31_derived)*Y(P31)*Y(N)*state.rho) + + (-screened_rates(k_Si31_He4_to_n_S34_reaclib)*Y(He4)*Y(Si31)*state.rho + screened_rates(k_S34_n_to_He4_Si31_derived)*Y(S34)*Y(N)*state.rho) + + (-screened_rates(k_Si31_to_P31_beta_neg_weaktab)*Y(Si31) + screened_rates(k_P31_to_Si31_electron_capture_weaktab)*Y(P31)); ydot_nuc(Si32) = - (screened_rates(k_n_Si31_to_Si32_reaclib)*Y(Si31)*Y(N)*state.rho + -screened_rates(k_Si32_to_n_Si31_reaclib)*Y(Si32)) + - (-screened_rates(k_p_Si32_to_P33_reaclib)*Y(Si32)*Y(H1)*state.rho + screened_rates(k_P33_to_p_Si32_reaclib)*Y(P33)) + - (-screened_rates(k_He4_Si32_to_S36_reaclib)*Y(He4)*Y(Si32)*state.rho + screened_rates(k_S36_to_He4_Si32_reaclib)*Y(S36)) + - (screened_rates(k_n_P32_to_p_Si32_reaclib)*Y(P32)*Y(N)*state.rho + -screened_rates(k_p_Si32_to_n_P32_reaclib)*Y(Si32)*Y(H1)*state.rho) + - (screened_rates(k_n_S35_to_He4_Si32_reaclib)*Y(S35)*Y(N)*state.rho + -screened_rates(k_He4_Si32_to_n_S35_reaclib)*Y(He4)*Y(Si32)*state.rho) + - (-screened_rates(k_Si32_to_P32_weaktab)*Y(Si32) + screened_rates(k_P32_to_Si32_weaktab)*Y(P32)); + (screened_rates(k_Si31_n_to_Si32_reaclib)*Y(Si31)*Y(N)*state.rho + -screened_rates(k_Si32_to_n_Si31_derived)*Y(Si32)) + + (-screened_rates(k_Si32_p_to_P33_reaclib)*Y(Si32)*Y(H1)*state.rho + screened_rates(k_P33_to_p_Si32_derived)*Y(P33)) + + (-screened_rates(k_Si32_He4_to_S36_reaclib)*Y(He4)*Y(Si32)*state.rho + screened_rates(k_S36_to_He4_Si32_derived)*Y(S36)) + + (screened_rates(k_P32_n_to_p_Si32_reaclib)*Y(P32)*Y(N)*state.rho + -screened_rates(k_Si32_p_to_n_P32_derived)*Y(Si32)*Y(H1)*state.rho) + + (screened_rates(k_S35_n_to_He4_Si32_reaclib)*Y(S35)*Y(N)*state.rho + -screened_rates(k_Si32_He4_to_n_S35_derived)*Y(He4)*Y(Si32)*state.rho) + + (-screened_rates(k_Si32_to_P32_beta_neg_weaktab)*Y(Si32) + screened_rates(k_P32_to_Si32_electron_capture_weaktab)*Y(P32)); ydot_nuc(P29) = - (screened_rates(k_He4_Al25_to_P29_reaclib)*Y(Al25)*Y(He4)*state.rho + -screened_rates(k_P29_to_He4_Al25_reaclib)*Y(P29)) + - (screened_rates(k_p_Si28_to_P29_reaclib)*Y(Si28)*Y(H1)*state.rho + -screened_rates(k_P29_to_p_Si28_reaclib)*Y(P29)) + - (-screened_rates(k_n_P29_to_P30_reaclib)*Y(P29)*Y(N)*state.rho + screened_rates(k_P30_to_n_P29_reaclib)*Y(P30)) + - (-screened_rates(k_He4_P29_to_Cl33_reaclib)*Y(He4)*Y(P29)*state.rho + screened_rates(k_Cl33_to_He4_P29_reaclib)*Y(Cl33)) + - (-screened_rates(k_n_P29_to_p_Si29_reaclib)*Y(P29)*Y(N)*state.rho + screened_rates(k_p_Si29_to_n_P29_reaclib)*Y(Si29)*Y(H1)*state.rho) + - (-screened_rates(k_n_P29_to_He4_Al26_reaclib)*Y(P29)*Y(N)*state.rho + screened_rates(k_He4_Al26_to_n_P29_reaclib)*Y(Al26)*Y(He4)*state.rho) + - (-screened_rates(k_He4_P29_to_p_S32_reaclib)*Y(He4)*Y(P29)*state.rho + screened_rates(k_p_S32_to_He4_P29_reaclib)*Y(S32)*Y(H1)*state.rho) + - (-screened_rates(k_P29_to_Si29_weaktab)*Y(P29) + screened_rates(k_Si29_to_P29_weaktab)*Y(Si29)); + (screened_rates(k_Al25_He4_to_P29_reaclib)*Y(Al25)*Y(He4)*state.rho + -screened_rates(k_P29_to_He4_Al25_derived)*Y(P29)) + + (screened_rates(k_Si28_p_to_P29_reaclib)*Y(Si28)*Y(H1)*state.rho + -screened_rates(k_P29_to_p_Si28_derived)*Y(P29)) + + (-screened_rates(k_P29_n_to_P30_reaclib)*Y(P29)*Y(N)*state.rho + screened_rates(k_P30_to_n_P29_derived)*Y(P30)) + + (-screened_rates(k_P29_He4_to_Cl33_reaclib)*Y(He4)*Y(P29)*state.rho + screened_rates(k_Cl33_to_He4_P29_derived)*Y(Cl33)) + + (-screened_rates(k_P29_n_to_p_Si29_reaclib)*Y(P29)*Y(N)*state.rho + screened_rates(k_Si29_p_to_n_P29_derived)*Y(Si29)*Y(H1)*state.rho) + + (-screened_rates(k_P29_n_to_He4_Al26_reaclib)*Y(P29)*Y(N)*state.rho + screened_rates(k_Al26_He4_to_n_P29_derived)*Y(Al26)*Y(He4)*state.rho) + + (-screened_rates(k_P29_He4_to_p_S32_reaclib)*Y(He4)*Y(P29)*state.rho + screened_rates(k_S32_p_to_He4_P29_derived)*Y(S32)*Y(H1)*state.rho) + + (-screened_rates(k_P29_to_Si29_electron_capture_weaktab)*Y(P29) + screened_rates(k_Si29_to_P29_beta_neg_weaktab)*Y(Si29)); ydot_nuc(P30) = - (screened_rates(k_He4_Al26_to_P30_reaclib)*Y(Al26)*Y(He4)*state.rho + -screened_rates(k_P30_to_He4_Al26_reaclib)*Y(P30)) + - (screened_rates(k_p_Si29_to_P30_reaclib)*Y(Si29)*Y(H1)*state.rho + -screened_rates(k_P30_to_p_Si29_reaclib)*Y(P30)) + - (screened_rates(k_n_P29_to_P30_reaclib)*Y(P29)*Y(N)*state.rho + -screened_rates(k_P30_to_n_P29_reaclib)*Y(P30)) + - (-screened_rates(k_n_P30_to_P31_reaclib)*Y(P30)*Y(N)*state.rho + screened_rates(k_P31_to_n_P30_reaclib)*Y(P31)) + - (-screened_rates(k_He4_P30_to_Cl34_reaclib)*Y(He4)*Y(P30)*state.rho + screened_rates(k_Cl34_to_He4_P30_reaclib)*Y(Cl34)) + - (-screened_rates(k_n_P30_to_p_Si30_reaclib)*Y(P30)*Y(N)*state.rho + screened_rates(k_p_Si30_to_n_P30_reaclib)*Y(Si30)*Y(H1)*state.rho) + - (-screened_rates(k_n_P30_to_He4_Al27_reaclib)*Y(P30)*Y(N)*state.rho + screened_rates(k_He4_Al27_to_n_P30_reaclib)*Y(Al27)*Y(He4)*state.rho) + - (-screened_rates(k_He4_P30_to_p_S33_reaclib)*Y(He4)*Y(P30)*state.rho + screened_rates(k_p_S33_to_He4_P30_reaclib)*Y(S33)*Y(H1)*state.rho) + - (screened_rates(k_n_Cl33_to_He4_P30_reaclib)*Y(Cl33)*Y(N)*state.rho + -screened_rates(k_He4_P30_to_n_Cl33_reaclib)*Y(He4)*Y(P30)*state.rho) + - (-screened_rates(k_P30_to_Si30_weaktab)*Y(P30) + screened_rates(k_Si30_to_P30_weaktab)*Y(Si30)); + (screened_rates(k_Al26_He4_to_P30_reaclib)*Y(Al26)*Y(He4)*state.rho + -screened_rates(k_P30_to_He4_Al26_derived)*Y(P30)) + + (screened_rates(k_Si29_p_to_P30_reaclib)*Y(Si29)*Y(H1)*state.rho + -screened_rates(k_P30_to_p_Si29_derived)*Y(P30)) + + (screened_rates(k_P29_n_to_P30_reaclib)*Y(P29)*Y(N)*state.rho + -screened_rates(k_P30_to_n_P29_derived)*Y(P30)) + + (-screened_rates(k_P30_n_to_P31_reaclib)*Y(P30)*Y(N)*state.rho + screened_rates(k_P31_to_n_P30_derived)*Y(P31)) + + (-screened_rates(k_P30_He4_to_Cl34_reaclib)*Y(He4)*Y(P30)*state.rho + screened_rates(k_Cl34_to_He4_P30_derived)*Y(Cl34)) + + (-screened_rates(k_P30_n_to_p_Si30_reaclib)*Y(P30)*Y(N)*state.rho + screened_rates(k_Si30_p_to_n_P30_derived)*Y(Si30)*Y(H1)*state.rho) + + (-screened_rates(k_P30_He4_to_p_S33_reaclib)*Y(He4)*Y(P30)*state.rho + screened_rates(k_S33_p_to_He4_P30_derived)*Y(S33)*Y(H1)*state.rho) + + (screened_rates(k_Cl33_n_to_He4_P30_reaclib)*Y(Cl33)*Y(N)*state.rho + -screened_rates(k_P30_He4_to_n_Cl33_derived)*Y(He4)*Y(P30)*state.rho) + + (-screened_rates(k_P30_to_Si30_electron_capture_weaktab)*Y(P30) + screened_rates(k_Si30_to_P30_beta_neg_weaktab)*Y(Si30)) + + (-screened_rates(k_P30_n_to_He4_Al27_derived)*Y(P30)*Y(N)*state.rho + screened_rates(k_Al27_He4_to_n_P30_reaclib)*Y(Al27)*Y(He4)*state.rho); ydot_nuc(P31) = - (screened_rates(k_He4_Al27_to_P31_reaclib)*Y(Al27)*Y(He4)*state.rho + -screened_rates(k_P31_to_He4_Al27_reaclib)*Y(P31)) + - (screened_rates(k_p_Si30_to_P31_reaclib)*Y(Si30)*Y(H1)*state.rho + -screened_rates(k_P31_to_p_Si30_reaclib)*Y(P31)) + - (screened_rates(k_n_P30_to_P31_reaclib)*Y(P30)*Y(N)*state.rho + -screened_rates(k_P31_to_n_P30_reaclib)*Y(P31)) + - (-screened_rates(k_n_P31_to_P32_reaclib)*Y(P31)*Y(N)*state.rho + screened_rates(k_P32_to_n_P31_reaclib)*Y(P32)) + - (-screened_rates(k_p_P31_to_S32_reaclib)*Y(P31)*Y(H1)*state.rho + screened_rates(k_S32_to_p_P31_reaclib)*Y(S32)) + - (-screened_rates(k_He4_P31_to_Cl35_reaclib)*Y(He4)*Y(P31)*state.rho + screened_rates(k_Cl35_to_He4_P31_reaclib)*Y(Cl35)) + - (0.5*screened_rates(k_O16_O16_to_p_P31_reaclib)*amrex::Math::powi<2>(Y(O16))*state.rho + -screened_rates(k_p_P31_to_O16_O16_reaclib)*Y(P31)*Y(H1)*state.rho) + - (screened_rates(k_C12_Ne20_to_p_P31_reaclib)*Y(C12)*Y(Ne20)*state.rho + -screened_rates(k_p_P31_to_C12_Ne20_reaclib)*Y(P31)*Y(H1)*state.rho) + - (screened_rates(k_p_Si31_to_n_P31_reaclib)*Y(Si31)*Y(H1)*state.rho + -screened_rates(k_n_P31_to_p_Si31_reaclib)*Y(P31)*Y(N)*state.rho) + - (-screened_rates(k_p_P31_to_He4_Si28_reaclib)*Y(P31)*Y(H1)*state.rho + screened_rates(k_He4_Si28_to_p_P31_reaclib)*Y(He4)*Y(Si28)*state.rho) + - (-screened_rates(k_He4_P31_to_p_S34_reaclib)*Y(He4)*Y(P31)*state.rho + screened_rates(k_p_S34_to_He4_P31_reaclib)*Y(S34)*Y(H1)*state.rho) + - (screened_rates(k_n_Cl34_to_He4_P31_reaclib)*Y(Cl34)*Y(N)*state.rho + -screened_rates(k_He4_P31_to_n_Cl34_reaclib)*Y(He4)*Y(P31)*state.rho) + - (screened_rates(k_Si31_to_P31_weaktab)*Y(Si31) + -screened_rates(k_P31_to_Si31_weaktab)*Y(P31)); + (screened_rates(k_Al27_He4_to_P31_reaclib)*Y(Al27)*Y(He4)*state.rho + -screened_rates(k_P31_to_He4_Al27_derived)*Y(P31)) + + (screened_rates(k_Si30_p_to_P31_reaclib)*Y(Si30)*Y(H1)*state.rho + -screened_rates(k_P31_to_p_Si30_derived)*Y(P31)) + + (screened_rates(k_P30_n_to_P31_reaclib)*Y(P30)*Y(N)*state.rho + -screened_rates(k_P31_to_n_P30_derived)*Y(P31)) + + (-screened_rates(k_P31_n_to_P32_reaclib)*Y(P31)*Y(N)*state.rho + screened_rates(k_P32_to_n_P31_derived)*Y(P32)) + + (-screened_rates(k_P31_p_to_S32_reaclib)*Y(P31)*Y(H1)*state.rho + screened_rates(k_S32_to_p_P31_derived)*Y(S32)) + + (-screened_rates(k_P31_He4_to_Cl35_reaclib)*Y(He4)*Y(P31)*state.rho + screened_rates(k_Cl35_to_He4_P31_derived)*Y(Cl35)) + + (0.5*screened_rates(k_O16_O16_to_p_P31_reaclib)*amrex::Math::powi<2>(Y(O16))*state.rho + -screened_rates(k_P31_p_to_O16_O16_derived)*Y(P31)*Y(H1)*state.rho) + + (screened_rates(k_Ne20_C12_to_p_P31_reaclib)*Y(C12)*Y(Ne20)*state.rho + -screened_rates(k_P31_p_to_C12_Ne20_derived)*Y(P31)*Y(H1)*state.rho) + + (screened_rates(k_Si31_p_to_n_P31_reaclib)*Y(Si31)*Y(H1)*state.rho + -screened_rates(k_P31_n_to_p_Si31_derived)*Y(P31)*Y(N)*state.rho) + + (-screened_rates(k_P31_p_to_He4_Si28_reaclib)*Y(P31)*Y(H1)*state.rho + screened_rates(k_Si28_He4_to_p_P31_derived)*Y(He4)*Y(Si28)*state.rho) + + (-screened_rates(k_P31_He4_to_p_S34_reaclib)*Y(He4)*Y(P31)*state.rho + screened_rates(k_S34_p_to_He4_P31_derived)*Y(S34)*Y(H1)*state.rho) + + (screened_rates(k_Cl34_n_to_He4_P31_reaclib)*Y(Cl34)*Y(N)*state.rho + -screened_rates(k_P31_He4_to_n_Cl34_derived)*Y(He4)*Y(P31)*state.rho) + + (screened_rates(k_Si31_to_P31_beta_neg_weaktab)*Y(Si31) + -screened_rates(k_P31_to_Si31_electron_capture_weaktab)*Y(P31)); ydot_nuc(P32) = - (screened_rates(k_p_Si31_to_P32_reaclib)*Y(Si31)*Y(H1)*state.rho + -screened_rates(k_P32_to_p_Si31_reaclib)*Y(P32)) + - (screened_rates(k_n_P31_to_P32_reaclib)*Y(P31)*Y(N)*state.rho + -screened_rates(k_P32_to_n_P31_reaclib)*Y(P32)) + - (-screened_rates(k_n_P32_to_P33_reaclib)*Y(P32)*Y(N)*state.rho + screened_rates(k_P33_to_n_P32_reaclib)*Y(P33)) + - (-screened_rates(k_p_P32_to_S33_reaclib)*Y(P32)*Y(H1)*state.rho + screened_rates(k_S33_to_p_P32_reaclib)*Y(S33)) + - (-screened_rates(k_He4_P32_to_Cl36_reaclib)*Y(He4)*Y(P32)*state.rho + screened_rates(k_Cl36_to_He4_P32_reaclib)*Y(Cl36)) + - (-screened_rates(k_n_P32_to_p_Si32_reaclib)*Y(P32)*Y(N)*state.rho + screened_rates(k_p_Si32_to_n_P32_reaclib)*Y(Si32)*Y(H1)*state.rho) + - (-screened_rates(k_p_P32_to_n_S32_reaclib)*Y(P32)*Y(H1)*state.rho + screened_rates(k_n_S32_to_p_P32_reaclib)*Y(S32)*Y(N)*state.rho) + - (-screened_rates(k_p_P32_to_He4_Si29_reaclib)*Y(P32)*Y(H1)*state.rho + screened_rates(k_He4_Si29_to_p_P32_reaclib)*Y(He4)*Y(Si29)*state.rho) + - (screened_rates(k_p_S35_to_He4_P32_reaclib)*Y(S35)*Y(H1)*state.rho + -screened_rates(k_He4_P32_to_p_S35_reaclib)*Y(He4)*Y(P32)*state.rho) + - (screened_rates(k_n_Cl35_to_He4_P32_reaclib)*Y(Cl35)*Y(N)*state.rho + -screened_rates(k_He4_P32_to_n_Cl35_reaclib)*Y(He4)*Y(P32)*state.rho) + - (-screened_rates(k_P32_to_S32_weaktab)*Y(P32) + screened_rates(k_S32_to_P32_weaktab)*Y(S32)) + - (screened_rates(k_Si32_to_P32_weaktab)*Y(Si32) + -screened_rates(k_P32_to_Si32_weaktab)*Y(P32)); + (screened_rates(k_Si31_p_to_P32_reaclib)*Y(Si31)*Y(H1)*state.rho + -screened_rates(k_P32_to_p_Si31_derived)*Y(P32)) + + (screened_rates(k_P31_n_to_P32_reaclib)*Y(P31)*Y(N)*state.rho + -screened_rates(k_P32_to_n_P31_derived)*Y(P32)) + + (-screened_rates(k_P32_n_to_P33_reaclib)*Y(P32)*Y(N)*state.rho + screened_rates(k_P33_to_n_P32_derived)*Y(P33)) + + (-screened_rates(k_P32_p_to_S33_reaclib)*Y(P32)*Y(H1)*state.rho + screened_rates(k_S33_to_p_P32_derived)*Y(S33)) + + (-screened_rates(k_P32_He4_to_Cl36_reaclib)*Y(He4)*Y(P32)*state.rho + screened_rates(k_Cl36_to_He4_P32_derived)*Y(Cl36)) + + (-screened_rates(k_P32_n_to_p_Si32_reaclib)*Y(P32)*Y(N)*state.rho + screened_rates(k_Si32_p_to_n_P32_derived)*Y(Si32)*Y(H1)*state.rho) + + (-screened_rates(k_P32_p_to_n_S32_reaclib)*Y(P32)*Y(H1)*state.rho + screened_rates(k_S32_n_to_p_P32_derived)*Y(S32)*Y(N)*state.rho) + + (-screened_rates(k_P32_p_to_He4_Si29_reaclib)*Y(P32)*Y(H1)*state.rho + screened_rates(k_Si29_He4_to_p_P32_derived)*Y(He4)*Y(Si29)*state.rho) + + (screened_rates(k_S35_p_to_He4_P32_reaclib)*Y(S35)*Y(H1)*state.rho + -screened_rates(k_P32_He4_to_p_S35_derived)*Y(He4)*Y(P32)*state.rho) + + (screened_rates(k_Cl35_n_to_He4_P32_reaclib)*Y(Cl35)*Y(N)*state.rho + -screened_rates(k_P32_He4_to_n_Cl35_derived)*Y(He4)*Y(P32)*state.rho) + + (-screened_rates(k_P32_to_S32_beta_neg_weaktab)*Y(P32) + screened_rates(k_S32_to_P32_electron_capture_weaktab)*Y(S32)) + + (screened_rates(k_Si32_to_P32_beta_neg_weaktab)*Y(Si32) + -screened_rates(k_P32_to_Si32_electron_capture_weaktab)*Y(P32)); ydot_nuc(P33) = - (screened_rates(k_p_Si32_to_P33_reaclib)*Y(Si32)*Y(H1)*state.rho + -screened_rates(k_P33_to_p_Si32_reaclib)*Y(P33)) + - (screened_rates(k_n_P32_to_P33_reaclib)*Y(P32)*Y(N)*state.rho + -screened_rates(k_P33_to_n_P32_reaclib)*Y(P33)) + - (-screened_rates(k_p_P33_to_S34_reaclib)*Y(P33)*Y(H1)*state.rho + screened_rates(k_S34_to_p_P33_reaclib)*Y(S34)) + - (-screened_rates(k_He4_P33_to_Cl37_reaclib)*Y(He4)*Y(P33)*state.rho + screened_rates(k_Cl37_to_He4_P33_reaclib)*Y(Cl37)) + - (-screened_rates(k_p_P33_to_He4_Si30_reaclib)*Y(P33)*Y(H1)*state.rho + screened_rates(k_He4_Si30_to_p_P33_reaclib)*Y(He4)*Y(Si30)*state.rho) + - (screened_rates(k_n_S33_to_p_P33_reaclib)*Y(S33)*Y(N)*state.rho + -screened_rates(k_p_P33_to_n_S33_reaclib)*Y(P33)*Y(H1)*state.rho) + - (screened_rates(k_p_S36_to_He4_P33_reaclib)*Y(S36)*Y(H1)*state.rho + -screened_rates(k_He4_P33_to_p_S36_reaclib)*Y(He4)*Y(P33)*state.rho) + - (screened_rates(k_n_Cl36_to_He4_P33_reaclib)*Y(Cl36)*Y(N)*state.rho + -screened_rates(k_He4_P33_to_n_Cl36_reaclib)*Y(He4)*Y(P33)*state.rho) + - (-screened_rates(k_P33_to_S33_weaktab)*Y(P33) + screened_rates(k_S33_to_P33_weaktab)*Y(S33)); + (screened_rates(k_Si32_p_to_P33_reaclib)*Y(Si32)*Y(H1)*state.rho + -screened_rates(k_P33_to_p_Si32_derived)*Y(P33)) + + (screened_rates(k_P32_n_to_P33_reaclib)*Y(P32)*Y(N)*state.rho + -screened_rates(k_P33_to_n_P32_derived)*Y(P33)) + + (-screened_rates(k_P33_p_to_S34_reaclib)*Y(P33)*Y(H1)*state.rho + screened_rates(k_S34_to_p_P33_derived)*Y(S34)) + + (-screened_rates(k_P33_He4_to_Cl37_reaclib)*Y(He4)*Y(P33)*state.rho + screened_rates(k_Cl37_to_He4_P33_derived)*Y(Cl37)) + + (-screened_rates(k_P33_p_to_He4_Si30_reaclib)*Y(P33)*Y(H1)*state.rho + screened_rates(k_Si30_He4_to_p_P33_derived)*Y(He4)*Y(Si30)*state.rho) + + (screened_rates(k_S33_n_to_p_P33_reaclib)*Y(S33)*Y(N)*state.rho + -screened_rates(k_P33_p_to_n_S33_derived)*Y(P33)*Y(H1)*state.rho) + + (screened_rates(k_S36_p_to_He4_P33_reaclib)*Y(S36)*Y(H1)*state.rho + -screened_rates(k_P33_He4_to_p_S36_derived)*Y(He4)*Y(P33)*state.rho) + + (screened_rates(k_Cl36_n_to_He4_P33_reaclib)*Y(Cl36)*Y(N)*state.rho + -screened_rates(k_P33_He4_to_n_Cl36_derived)*Y(He4)*Y(P33)*state.rho) + + (-screened_rates(k_P33_to_S33_beta_neg_weaktab)*Y(P33) + screened_rates(k_S33_to_P33_electron_capture_weaktab)*Y(S33)); ydot_nuc(S32) = - (screened_rates(k_He4_Si28_to_S32_reaclib)*Y(He4)*Y(Si28)*state.rho + -screened_rates(k_S32_to_He4_Si28_reaclib)*Y(S32)) + - (screened_rates(k_p_P31_to_S32_reaclib)*Y(P31)*Y(H1)*state.rho + -screened_rates(k_S32_to_p_P31_reaclib)*Y(S32)) + - (-screened_rates(k_n_S32_to_S33_reaclib)*Y(S32)*Y(N)*state.rho + screened_rates(k_S33_to_n_S32_reaclib)*Y(S33)) + - (-screened_rates(k_p_S32_to_Cl33_reaclib)*Y(S32)*Y(H1)*state.rho + screened_rates(k_Cl33_to_p_S32_reaclib)*Y(Cl33)) + - (-screened_rates(k_He4_S32_to_Ar36_reaclib)*Y(He4)*Y(S32)*state.rho + screened_rates(k_Ar36_to_He4_S32_reaclib)*Y(Ar36)) + - (screened_rates(k_He4_P29_to_p_S32_reaclib)*Y(He4)*Y(P29)*state.rho + -screened_rates(k_p_S32_to_He4_P29_reaclib)*Y(S32)*Y(H1)*state.rho) + - (screened_rates(k_p_P32_to_n_S32_reaclib)*Y(P32)*Y(H1)*state.rho + -screened_rates(k_n_S32_to_p_P32_reaclib)*Y(S32)*Y(N)*state.rho) + - (-screened_rates(k_n_S32_to_He4_Si29_reaclib)*Y(S32)*Y(N)*state.rho + screened_rates(k_He4_Si29_to_n_S32_reaclib)*Y(He4)*Y(Si29)*state.rho) + - (screened_rates(k_p_Cl35_to_He4_S32_reaclib)*Y(Cl35)*Y(H1)*state.rho + -screened_rates(k_He4_S32_to_p_Cl35_reaclib)*Y(He4)*Y(S32)*state.rho) + - (screened_rates(k_P32_to_S32_weaktab)*Y(P32) + -screened_rates(k_S32_to_P32_weaktab)*Y(S32)); + (screened_rates(k_Si28_He4_to_S32_reaclib)*Y(He4)*Y(Si28)*state.rho + -screened_rates(k_S32_to_He4_Si28_derived)*Y(S32)) + + (screened_rates(k_P31_p_to_S32_reaclib)*Y(P31)*Y(H1)*state.rho + -screened_rates(k_S32_to_p_P31_derived)*Y(S32)) + + (-screened_rates(k_S32_n_to_S33_reaclib)*Y(S32)*Y(N)*state.rho + screened_rates(k_S33_to_n_S32_derived)*Y(S33)) + + (-screened_rates(k_S32_p_to_Cl33_reaclib)*Y(S32)*Y(H1)*state.rho + screened_rates(k_Cl33_to_p_S32_derived)*Y(Cl33)) + + (-screened_rates(k_S32_He4_to_Ar36_reaclib)*Y(He4)*Y(S32)*state.rho + screened_rates(k_Ar36_to_He4_S32_derived)*Y(Ar36)) + + (screened_rates(k_P29_He4_to_p_S32_reaclib)*Y(He4)*Y(P29)*state.rho + -screened_rates(k_S32_p_to_He4_P29_derived)*Y(S32)*Y(H1)*state.rho) + + (screened_rates(k_P32_p_to_n_S32_reaclib)*Y(P32)*Y(H1)*state.rho + -screened_rates(k_S32_n_to_p_P32_derived)*Y(S32)*Y(N)*state.rho) + + (-screened_rates(k_S32_n_to_He4_Si29_reaclib)*Y(S32)*Y(N)*state.rho + screened_rates(k_Si29_He4_to_n_S32_derived)*Y(He4)*Y(Si29)*state.rho) + + (screened_rates(k_Cl35_p_to_He4_S32_reaclib)*Y(Cl35)*Y(H1)*state.rho + -screened_rates(k_S32_He4_to_p_Cl35_derived)*Y(He4)*Y(S32)*state.rho) + + (screened_rates(k_P32_to_S32_beta_neg_weaktab)*Y(P32) + -screened_rates(k_S32_to_P32_electron_capture_weaktab)*Y(S32)); ydot_nuc(S33) = - (screened_rates(k_He4_Si29_to_S33_reaclib)*Y(He4)*Y(Si29)*state.rho + -screened_rates(k_S33_to_He4_Si29_reaclib)*Y(S33)) + - (screened_rates(k_p_P32_to_S33_reaclib)*Y(P32)*Y(H1)*state.rho + -screened_rates(k_S33_to_p_P32_reaclib)*Y(S33)) + - (screened_rates(k_n_S32_to_S33_reaclib)*Y(S32)*Y(N)*state.rho + -screened_rates(k_S33_to_n_S32_reaclib)*Y(S33)) + - (-screened_rates(k_n_S33_to_S34_reaclib)*Y(S33)*Y(N)*state.rho + screened_rates(k_S34_to_n_S33_reaclib)*Y(S34)) + - (-screened_rates(k_p_S33_to_Cl34_reaclib)*Y(S33)*Y(H1)*state.rho + screened_rates(k_Cl34_to_p_S33_reaclib)*Y(Cl34)) + - (-screened_rates(k_He4_S33_to_Ar37_reaclib)*Y(He4)*Y(S33)*state.rho + screened_rates(k_Ar37_to_He4_S33_reaclib)*Y(Ar37)) + - (screened_rates(k_He4_P30_to_p_S33_reaclib)*Y(He4)*Y(P30)*state.rho + -screened_rates(k_p_S33_to_He4_P30_reaclib)*Y(S33)*Y(H1)*state.rho) + - (-screened_rates(k_n_S33_to_p_P33_reaclib)*Y(S33)*Y(N)*state.rho + screened_rates(k_p_P33_to_n_S33_reaclib)*Y(P33)*Y(H1)*state.rho) + - (-screened_rates(k_n_S33_to_He4_Si30_reaclib)*Y(S33)*Y(N)*state.rho + screened_rates(k_He4_Si30_to_n_S33_reaclib)*Y(He4)*Y(Si30)*state.rho) + - (screened_rates(k_n_Cl33_to_p_S33_reaclib)*Y(Cl33)*Y(N)*state.rho + -screened_rates(k_p_S33_to_n_Cl33_reaclib)*Y(S33)*Y(H1)*state.rho) + - (screened_rates(k_p_Cl36_to_He4_S33_reaclib)*Y(Cl36)*Y(H1)*state.rho + -screened_rates(k_He4_S33_to_p_Cl36_reaclib)*Y(He4)*Y(S33)*state.rho) + - (screened_rates(k_n_Ar36_to_He4_S33_reaclib)*Y(Ar36)*Y(N)*state.rho + -screened_rates(k_He4_S33_to_n_Ar36_reaclib)*Y(He4)*Y(S33)*state.rho) + - (screened_rates(k_Cl33_to_S33_weaktab)*Y(Cl33) + -screened_rates(k_S33_to_Cl33_weaktab)*Y(S33)) + - (screened_rates(k_P33_to_S33_weaktab)*Y(P33) + -screened_rates(k_S33_to_P33_weaktab)*Y(S33)); + (screened_rates(k_Si29_He4_to_S33_reaclib)*Y(He4)*Y(Si29)*state.rho + -screened_rates(k_S33_to_He4_Si29_derived)*Y(S33)) + + (screened_rates(k_P32_p_to_S33_reaclib)*Y(P32)*Y(H1)*state.rho + -screened_rates(k_S33_to_p_P32_derived)*Y(S33)) + + (screened_rates(k_S32_n_to_S33_reaclib)*Y(S32)*Y(N)*state.rho + -screened_rates(k_S33_to_n_S32_derived)*Y(S33)) + + (-screened_rates(k_S33_n_to_S34_reaclib)*Y(S33)*Y(N)*state.rho + screened_rates(k_S34_to_n_S33_derived)*Y(S34)) + + (-screened_rates(k_S33_p_to_Cl34_reaclib)*Y(S33)*Y(H1)*state.rho + screened_rates(k_Cl34_to_p_S33_derived)*Y(Cl34)) + + (-screened_rates(k_S33_He4_to_Ar37_reaclib)*Y(He4)*Y(S33)*state.rho + screened_rates(k_Ar37_to_He4_S33_derived)*Y(Ar37)) + + (screened_rates(k_P30_He4_to_p_S33_reaclib)*Y(He4)*Y(P30)*state.rho + -screened_rates(k_S33_p_to_He4_P30_derived)*Y(S33)*Y(H1)*state.rho) + + (-screened_rates(k_S33_n_to_p_P33_reaclib)*Y(S33)*Y(N)*state.rho + screened_rates(k_P33_p_to_n_S33_derived)*Y(P33)*Y(H1)*state.rho) + + (-screened_rates(k_S33_n_to_He4_Si30_reaclib)*Y(S33)*Y(N)*state.rho + screened_rates(k_Si30_He4_to_n_S33_derived)*Y(He4)*Y(Si30)*state.rho) + + (screened_rates(k_Cl33_n_to_p_S33_reaclib)*Y(Cl33)*Y(N)*state.rho + -screened_rates(k_S33_p_to_n_Cl33_derived)*Y(S33)*Y(H1)*state.rho) + + (screened_rates(k_Cl36_p_to_He4_S33_reaclib)*Y(Cl36)*Y(H1)*state.rho + -screened_rates(k_S33_He4_to_p_Cl36_derived)*Y(He4)*Y(S33)*state.rho) + + (screened_rates(k_Ar36_n_to_He4_S33_reaclib)*Y(Ar36)*Y(N)*state.rho + -screened_rates(k_S33_He4_to_n_Ar36_derived)*Y(He4)*Y(S33)*state.rho) + + (screened_rates(k_Cl33_to_S33_electron_capture_weaktab)*Y(Cl33) + -screened_rates(k_S33_to_Cl33_beta_neg_weaktab)*Y(S33)) + + (screened_rates(k_P33_to_S33_beta_neg_weaktab)*Y(P33) + -screened_rates(k_S33_to_P33_electron_capture_weaktab)*Y(S33)); ydot_nuc(S34) = - (screened_rates(k_He4_Si30_to_S34_reaclib)*Y(He4)*Y(Si30)*state.rho + -screened_rates(k_S34_to_He4_Si30_reaclib)*Y(S34)) + - (screened_rates(k_p_P33_to_S34_reaclib)*Y(P33)*Y(H1)*state.rho + -screened_rates(k_S34_to_p_P33_reaclib)*Y(S34)) + - (screened_rates(k_n_S33_to_S34_reaclib)*Y(S33)*Y(N)*state.rho + -screened_rates(k_S34_to_n_S33_reaclib)*Y(S34)) + - (-screened_rates(k_n_S34_to_S35_reaclib)*Y(S34)*Y(N)*state.rho + screened_rates(k_S35_to_n_S34_reaclib)*Y(S35)) + - (-screened_rates(k_p_S34_to_Cl35_reaclib)*Y(S34)*Y(H1)*state.rho + screened_rates(k_Cl35_to_p_S34_reaclib)*Y(Cl35)) + - (-screened_rates(k_He4_S34_to_Ar38_reaclib)*Y(He4)*Y(S34)*state.rho + screened_rates(k_Ar38_to_He4_S34_reaclib)*Y(Ar38)) + - (screened_rates(k_He4_Si31_to_n_S34_reaclib)*Y(He4)*Y(Si31)*state.rho + -screened_rates(k_n_S34_to_He4_Si31_reaclib)*Y(S34)*Y(N)*state.rho) + - (screened_rates(k_He4_P31_to_p_S34_reaclib)*Y(He4)*Y(P31)*state.rho + -screened_rates(k_p_S34_to_He4_P31_reaclib)*Y(S34)*Y(H1)*state.rho) + - (screened_rates(k_n_Cl34_to_p_S34_reaclib)*Y(Cl34)*Y(N)*state.rho + -screened_rates(k_p_S34_to_n_Cl34_reaclib)*Y(S34)*Y(H1)*state.rho) + - (screened_rates(k_p_Cl37_to_He4_S34_reaclib)*Y(Cl37)*Y(H1)*state.rho + -screened_rates(k_He4_S34_to_p_Cl37_reaclib)*Y(He4)*Y(S34)*state.rho) + - (screened_rates(k_n_Ar37_to_He4_S34_reaclib)*Y(Ar37)*Y(N)*state.rho + -screened_rates(k_He4_S34_to_n_Ar37_reaclib)*Y(He4)*Y(S34)*state.rho) + - (screened_rates(k_Cl34_to_S34_weaktab)*Y(Cl34) + -screened_rates(k_S34_to_Cl34_weaktab)*Y(S34)); + (screened_rates(k_Si30_He4_to_S34_reaclib)*Y(He4)*Y(Si30)*state.rho + -screened_rates(k_S34_to_He4_Si30_derived)*Y(S34)) + + (screened_rates(k_P33_p_to_S34_reaclib)*Y(P33)*Y(H1)*state.rho + -screened_rates(k_S34_to_p_P33_derived)*Y(S34)) + + (screened_rates(k_S33_n_to_S34_reaclib)*Y(S33)*Y(N)*state.rho + -screened_rates(k_S34_to_n_S33_derived)*Y(S34)) + + (-screened_rates(k_S34_n_to_S35_reaclib)*Y(S34)*Y(N)*state.rho + screened_rates(k_S35_to_n_S34_derived)*Y(S35)) + + (-screened_rates(k_S34_p_to_Cl35_reaclib)*Y(S34)*Y(H1)*state.rho + screened_rates(k_Cl35_to_p_S34_derived)*Y(Cl35)) + + (-screened_rates(k_S34_He4_to_Ar38_reaclib)*Y(He4)*Y(S34)*state.rho + screened_rates(k_Ar38_to_He4_S34_derived)*Y(Ar38)) + + (screened_rates(k_Si31_He4_to_n_S34_reaclib)*Y(He4)*Y(Si31)*state.rho + -screened_rates(k_S34_n_to_He4_Si31_derived)*Y(S34)*Y(N)*state.rho) + + (screened_rates(k_P31_He4_to_p_S34_reaclib)*Y(He4)*Y(P31)*state.rho + -screened_rates(k_S34_p_to_He4_P31_derived)*Y(S34)*Y(H1)*state.rho) + + (screened_rates(k_Cl34_n_to_p_S34_reaclib)*Y(Cl34)*Y(N)*state.rho + -screened_rates(k_S34_p_to_n_Cl34_derived)*Y(S34)*Y(H1)*state.rho) + + (screened_rates(k_Cl34_to_S34_electron_capture_weaktab)*Y(Cl34) + -screened_rates(k_S34_to_Cl34_beta_neg_weaktab)*Y(S34)) + + (screened_rates(k_Cl37_p_to_He4_S34_derived)*Y(Cl37)*Y(H1)*state.rho + -screened_rates(k_S34_He4_to_p_Cl37_reaclib)*Y(He4)*Y(S34)*state.rho) + + (screened_rates(k_Ar37_n_to_He4_S34_derived)*Y(Ar37)*Y(N)*state.rho + -screened_rates(k_S34_He4_to_n_Ar37_reaclib)*Y(He4)*Y(S34)*state.rho); ydot_nuc(S35) = - (screened_rates(k_He4_Si31_to_S35_reaclib)*Y(He4)*Y(Si31)*state.rho + -screened_rates(k_S35_to_He4_Si31_reaclib)*Y(S35)) + - (screened_rates(k_n_S34_to_S35_reaclib)*Y(S34)*Y(N)*state.rho + -screened_rates(k_S35_to_n_S34_reaclib)*Y(S35)) + - (-screened_rates(k_n_S35_to_S36_reaclib)*Y(S35)*Y(N)*state.rho + screened_rates(k_S36_to_n_S35_reaclib)*Y(S36)) + - (-screened_rates(k_p_S35_to_Cl36_reaclib)*Y(S35)*Y(H1)*state.rho + screened_rates(k_Cl36_to_p_S35_reaclib)*Y(Cl36)) + - (-screened_rates(k_He4_S35_to_Ar39_reaclib)*Y(He4)*Y(S35)*state.rho + screened_rates(k_Ar39_to_He4_S35_reaclib)*Y(Ar39)) + - (-screened_rates(k_n_S35_to_He4_Si32_reaclib)*Y(S35)*Y(N)*state.rho + screened_rates(k_He4_Si32_to_n_S35_reaclib)*Y(He4)*Y(Si32)*state.rho) + - (-screened_rates(k_p_S35_to_He4_P32_reaclib)*Y(S35)*Y(H1)*state.rho + screened_rates(k_He4_P32_to_p_S35_reaclib)*Y(He4)*Y(P32)*state.rho) + - (-screened_rates(k_He4_S35_to_n_Ar38_reaclib)*Y(He4)*Y(S35)*state.rho + screened_rates(k_n_Ar38_to_He4_S35_reaclib)*Y(Ar38)*Y(N)*state.rho) + - (screened_rates(k_n_Cl35_to_p_S35_reaclib)*Y(Cl35)*Y(N)*state.rho + -screened_rates(k_p_S35_to_n_Cl35_reaclib)*Y(S35)*Y(H1)*state.rho) + - (-screened_rates(k_S35_to_Cl35_weaktab)*Y(S35) + screened_rates(k_Cl35_to_S35_weaktab)*Y(Cl35)); + (screened_rates(k_Si31_He4_to_S35_reaclib)*Y(He4)*Y(Si31)*state.rho + -screened_rates(k_S35_to_He4_Si31_derived)*Y(S35)) + + (screened_rates(k_S34_n_to_S35_reaclib)*Y(S34)*Y(N)*state.rho + -screened_rates(k_S35_to_n_S34_derived)*Y(S35)) + + (-screened_rates(k_S35_n_to_S36_reaclib)*Y(S35)*Y(N)*state.rho + screened_rates(k_S36_to_n_S35_derived)*Y(S36)) + + (-screened_rates(k_S35_p_to_Cl36_reaclib)*Y(S35)*Y(H1)*state.rho + screened_rates(k_Cl36_to_p_S35_derived)*Y(Cl36)) + + (-screened_rates(k_S35_He4_to_Ar39_reaclib)*Y(He4)*Y(S35)*state.rho + screened_rates(k_Ar39_to_He4_S35_derived)*Y(Ar39)) + + (-screened_rates(k_S35_n_to_He4_Si32_reaclib)*Y(S35)*Y(N)*state.rho + screened_rates(k_Si32_He4_to_n_S35_derived)*Y(He4)*Y(Si32)*state.rho) + + (-screened_rates(k_S35_p_to_He4_P32_reaclib)*Y(S35)*Y(H1)*state.rho + screened_rates(k_P32_He4_to_p_S35_derived)*Y(He4)*Y(P32)*state.rho) + + (-screened_rates(k_S35_He4_to_n_Ar38_reaclib)*Y(He4)*Y(S35)*state.rho + screened_rates(k_Ar38_n_to_He4_S35_derived)*Y(Ar38)*Y(N)*state.rho) + + (screened_rates(k_Cl35_n_to_p_S35_reaclib)*Y(Cl35)*Y(N)*state.rho + -screened_rates(k_S35_p_to_n_Cl35_derived)*Y(S35)*Y(H1)*state.rho) + + (-screened_rates(k_S35_to_Cl35_beta_neg_weaktab)*Y(S35) + screened_rates(k_Cl35_to_S35_electron_capture_weaktab)*Y(Cl35)); ydot_nuc(S36) = - (screened_rates(k_He4_Si32_to_S36_reaclib)*Y(He4)*Y(Si32)*state.rho + -screened_rates(k_S36_to_He4_Si32_reaclib)*Y(S36)) + - (screened_rates(k_n_S35_to_S36_reaclib)*Y(S35)*Y(N)*state.rho + -screened_rates(k_S36_to_n_S35_reaclib)*Y(S36)) + - (-screened_rates(k_p_S36_to_Cl37_reaclib)*Y(S36)*Y(H1)*state.rho + screened_rates(k_Cl37_to_p_S36_reaclib)*Y(Cl37)) + - (-screened_rates(k_He4_S36_to_Ar40_reaclib)*Y(He4)*Y(S36)*state.rho + screened_rates(k_Ar40_to_He4_S36_reaclib)*Y(Ar40)) + - (-screened_rates(k_p_S36_to_He4_P33_reaclib)*Y(S36)*Y(H1)*state.rho + screened_rates(k_He4_P33_to_p_S36_reaclib)*Y(He4)*Y(P33)*state.rho) + - (screened_rates(k_n_Cl36_to_p_S36_reaclib)*Y(Cl36)*Y(N)*state.rho + -screened_rates(k_p_S36_to_n_Cl36_reaclib)*Y(S36)*Y(H1)*state.rho) + - (screened_rates(k_n_Ar39_to_He4_S36_reaclib)*Y(Ar39)*Y(N)*state.rho + -screened_rates(k_He4_S36_to_n_Ar39_reaclib)*Y(He4)*Y(S36)*state.rho) + - (screened_rates(k_Cl36_to_S36_weaktab)*Y(Cl36) + -screened_rates(k_S36_to_Cl36_weaktab)*Y(S36)); + (screened_rates(k_Si32_He4_to_S36_reaclib)*Y(He4)*Y(Si32)*state.rho + -screened_rates(k_S36_to_He4_Si32_derived)*Y(S36)) + + (screened_rates(k_S35_n_to_S36_reaclib)*Y(S35)*Y(N)*state.rho + -screened_rates(k_S36_to_n_S35_derived)*Y(S36)) + + (-screened_rates(k_S36_p_to_Cl37_reaclib)*Y(S36)*Y(H1)*state.rho + screened_rates(k_Cl37_to_p_S36_derived)*Y(Cl37)) + + (-screened_rates(k_S36_He4_to_Ar40_reaclib)*Y(He4)*Y(S36)*state.rho + screened_rates(k_Ar40_to_He4_S36_derived)*Y(Ar40)) + + (-screened_rates(k_S36_p_to_He4_P33_reaclib)*Y(S36)*Y(H1)*state.rho + screened_rates(k_P33_He4_to_p_S36_derived)*Y(He4)*Y(P33)*state.rho) + + (screened_rates(k_Cl36_n_to_p_S36_reaclib)*Y(Cl36)*Y(N)*state.rho + -screened_rates(k_S36_p_to_n_Cl36_derived)*Y(S36)*Y(H1)*state.rho) + + (screened_rates(k_Ar39_n_to_He4_S36_reaclib)*Y(Ar39)*Y(N)*state.rho + -screened_rates(k_S36_He4_to_n_Ar39_derived)*Y(He4)*Y(S36)*state.rho) + + (screened_rates(k_Cl36_to_S36_electron_capture_weaktab)*Y(Cl36) + -screened_rates(k_S36_to_Cl36_beta_neg_weaktab)*Y(S36)); ydot_nuc(Cl33) = - (screened_rates(k_He4_P29_to_Cl33_reaclib)*Y(He4)*Y(P29)*state.rho + -screened_rates(k_Cl33_to_He4_P29_reaclib)*Y(Cl33)) + - (screened_rates(k_p_S32_to_Cl33_reaclib)*Y(S32)*Y(H1)*state.rho + -screened_rates(k_Cl33_to_p_S32_reaclib)*Y(Cl33)) + - (-screened_rates(k_n_Cl33_to_Cl34_reaclib)*Y(Cl33)*Y(N)*state.rho + screened_rates(k_Cl34_to_n_Cl33_reaclib)*Y(Cl34)) + - (-screened_rates(k_He4_Cl33_to_K37_reaclib)*Y(Cl33)*Y(He4)*state.rho + screened_rates(k_K37_to_He4_Cl33_reaclib)*Y(K37)) + - (-screened_rates(k_n_Cl33_to_p_S33_reaclib)*Y(Cl33)*Y(N)*state.rho + screened_rates(k_p_S33_to_n_Cl33_reaclib)*Y(S33)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cl33_to_He4_P30_reaclib)*Y(Cl33)*Y(N)*state.rho + screened_rates(k_He4_P30_to_n_Cl33_reaclib)*Y(He4)*Y(P30)*state.rho) + - (-screened_rates(k_He4_Cl33_to_p_Ar36_reaclib)*Y(Cl33)*Y(He4)*state.rho + screened_rates(k_p_Ar36_to_He4_Cl33_reaclib)*Y(Ar36)*Y(H1)*state.rho) + - (-screened_rates(k_Cl33_to_S33_weaktab)*Y(Cl33) + screened_rates(k_S33_to_Cl33_weaktab)*Y(S33)); + (screened_rates(k_P29_He4_to_Cl33_reaclib)*Y(He4)*Y(P29)*state.rho + -screened_rates(k_Cl33_to_He4_P29_derived)*Y(Cl33)) + + (screened_rates(k_S32_p_to_Cl33_reaclib)*Y(S32)*Y(H1)*state.rho + -screened_rates(k_Cl33_to_p_S32_derived)*Y(Cl33)) + + (-screened_rates(k_Cl33_n_to_Cl34_reaclib)*Y(Cl33)*Y(N)*state.rho + screened_rates(k_Cl34_to_n_Cl33_derived)*Y(Cl34)) + + (-screened_rates(k_Cl33_He4_to_K37_reaclib)*Y(Cl33)*Y(He4)*state.rho + screened_rates(k_K37_to_He4_Cl33_derived)*Y(K37)) + + (-screened_rates(k_Cl33_n_to_p_S33_reaclib)*Y(Cl33)*Y(N)*state.rho + screened_rates(k_S33_p_to_n_Cl33_derived)*Y(S33)*Y(H1)*state.rho) + + (-screened_rates(k_Cl33_n_to_He4_P30_reaclib)*Y(Cl33)*Y(N)*state.rho + screened_rates(k_P30_He4_to_n_Cl33_derived)*Y(He4)*Y(P30)*state.rho) + + (-screened_rates(k_Cl33_He4_to_p_Ar36_reaclib)*Y(Cl33)*Y(He4)*state.rho + screened_rates(k_Ar36_p_to_He4_Cl33_derived)*Y(Ar36)*Y(H1)*state.rho) + + (-screened_rates(k_Cl33_to_S33_electron_capture_weaktab)*Y(Cl33) + screened_rates(k_S33_to_Cl33_beta_neg_weaktab)*Y(S33)); ydot_nuc(Cl34) = - (screened_rates(k_He4_P30_to_Cl34_reaclib)*Y(He4)*Y(P30)*state.rho + -screened_rates(k_Cl34_to_He4_P30_reaclib)*Y(Cl34)) + - (screened_rates(k_p_S33_to_Cl34_reaclib)*Y(S33)*Y(H1)*state.rho + -screened_rates(k_Cl34_to_p_S33_reaclib)*Y(Cl34)) + - (screened_rates(k_n_Cl33_to_Cl34_reaclib)*Y(Cl33)*Y(N)*state.rho + -screened_rates(k_Cl34_to_n_Cl33_reaclib)*Y(Cl34)) + - (-screened_rates(k_n_Cl34_to_Cl35_reaclib)*Y(Cl34)*Y(N)*state.rho + screened_rates(k_Cl35_to_n_Cl34_reaclib)*Y(Cl35)) + - (-screened_rates(k_He4_Cl34_to_K38_reaclib)*Y(Cl34)*Y(He4)*state.rho + screened_rates(k_K38_to_He4_Cl34_reaclib)*Y(K38)) + - (-screened_rates(k_n_Cl34_to_p_S34_reaclib)*Y(Cl34)*Y(N)*state.rho + screened_rates(k_p_S34_to_n_Cl34_reaclib)*Y(S34)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cl34_to_He4_P31_reaclib)*Y(Cl34)*Y(N)*state.rho + screened_rates(k_He4_P31_to_n_Cl34_reaclib)*Y(He4)*Y(P31)*state.rho) + - (-screened_rates(k_He4_Cl34_to_p_Ar37_reaclib)*Y(Cl34)*Y(He4)*state.rho + screened_rates(k_p_Ar37_to_He4_Cl34_reaclib)*Y(Ar37)*Y(H1)*state.rho) + - (screened_rates(k_n_K37_to_He4_Cl34_reaclib)*Y(K37)*Y(N)*state.rho + -screened_rates(k_He4_Cl34_to_n_K37_reaclib)*Y(Cl34)*Y(He4)*state.rho) + - (-screened_rates(k_Cl34_to_S34_weaktab)*Y(Cl34) + screened_rates(k_S34_to_Cl34_weaktab)*Y(S34)); + (screened_rates(k_P30_He4_to_Cl34_reaclib)*Y(He4)*Y(P30)*state.rho + -screened_rates(k_Cl34_to_He4_P30_derived)*Y(Cl34)) + + (screened_rates(k_S33_p_to_Cl34_reaclib)*Y(S33)*Y(H1)*state.rho + -screened_rates(k_Cl34_to_p_S33_derived)*Y(Cl34)) + + (screened_rates(k_Cl33_n_to_Cl34_reaclib)*Y(Cl33)*Y(N)*state.rho + -screened_rates(k_Cl34_to_n_Cl33_derived)*Y(Cl34)) + + (-screened_rates(k_Cl34_n_to_Cl35_reaclib)*Y(Cl34)*Y(N)*state.rho + screened_rates(k_Cl35_to_n_Cl34_derived)*Y(Cl35)) + + (-screened_rates(k_Cl34_He4_to_K38_reaclib)*Y(Cl34)*Y(He4)*state.rho + screened_rates(k_K38_to_He4_Cl34_derived)*Y(K38)) + + (-screened_rates(k_Cl34_n_to_p_S34_reaclib)*Y(Cl34)*Y(N)*state.rho + screened_rates(k_S34_p_to_n_Cl34_derived)*Y(S34)*Y(H1)*state.rho) + + (-screened_rates(k_Cl34_n_to_He4_P31_reaclib)*Y(Cl34)*Y(N)*state.rho + screened_rates(k_P31_He4_to_n_Cl34_derived)*Y(He4)*Y(P31)*state.rho) + + (-screened_rates(k_Cl34_He4_to_p_Ar37_reaclib)*Y(Cl34)*Y(He4)*state.rho + screened_rates(k_Ar37_p_to_He4_Cl34_derived)*Y(Ar37)*Y(H1)*state.rho) + + (screened_rates(k_K37_n_to_He4_Cl34_reaclib)*Y(K37)*Y(N)*state.rho + -screened_rates(k_Cl34_He4_to_n_K37_derived)*Y(Cl34)*Y(He4)*state.rho) + + (-screened_rates(k_Cl34_to_S34_electron_capture_weaktab)*Y(Cl34) + screened_rates(k_S34_to_Cl34_beta_neg_weaktab)*Y(S34)); ydot_nuc(Cl35) = - (screened_rates(k_He4_P31_to_Cl35_reaclib)*Y(He4)*Y(P31)*state.rho + -screened_rates(k_Cl35_to_He4_P31_reaclib)*Y(Cl35)) + - (screened_rates(k_p_S34_to_Cl35_reaclib)*Y(S34)*Y(H1)*state.rho + -screened_rates(k_Cl35_to_p_S34_reaclib)*Y(Cl35)) + - (screened_rates(k_n_Cl34_to_Cl35_reaclib)*Y(Cl34)*Y(N)*state.rho + -screened_rates(k_Cl35_to_n_Cl34_reaclib)*Y(Cl35)) + - (-screened_rates(k_n_Cl35_to_Cl36_reaclib)*Y(Cl35)*Y(N)*state.rho + screened_rates(k_Cl36_to_n_Cl35_reaclib)*Y(Cl36)) + - (-screened_rates(k_p_Cl35_to_Ar36_reaclib)*Y(Cl35)*Y(H1)*state.rho + screened_rates(k_Ar36_to_p_Cl35_reaclib)*Y(Ar36)) + - (-screened_rates(k_He4_Cl35_to_K39_reaclib)*Y(Cl35)*Y(He4)*state.rho + screened_rates(k_K39_to_He4_Cl35_reaclib)*Y(K39)) + - (-screened_rates(k_n_Cl35_to_p_S35_reaclib)*Y(Cl35)*Y(N)*state.rho + screened_rates(k_p_S35_to_n_Cl35_reaclib)*Y(S35)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cl35_to_He4_P32_reaclib)*Y(Cl35)*Y(N)*state.rho + screened_rates(k_He4_P32_to_n_Cl35_reaclib)*Y(He4)*Y(P32)*state.rho) + - (-screened_rates(k_p_Cl35_to_He4_S32_reaclib)*Y(Cl35)*Y(H1)*state.rho + screened_rates(k_He4_S32_to_p_Cl35_reaclib)*Y(He4)*Y(S32)*state.rho) + - (-screened_rates(k_He4_Cl35_to_p_Ar38_reaclib)*Y(Cl35)*Y(He4)*state.rho + screened_rates(k_p_Ar38_to_He4_Cl35_reaclib)*Y(Ar38)*Y(H1)*state.rho) + - (screened_rates(k_n_K38_to_He4_Cl35_reaclib)*Y(K38)*Y(N)*state.rho + -screened_rates(k_He4_Cl35_to_n_K38_reaclib)*Y(Cl35)*Y(He4)*state.rho) + - (screened_rates(k_S35_to_Cl35_weaktab)*Y(S35) + -screened_rates(k_Cl35_to_S35_weaktab)*Y(Cl35)); + (screened_rates(k_P31_He4_to_Cl35_reaclib)*Y(He4)*Y(P31)*state.rho + -screened_rates(k_Cl35_to_He4_P31_derived)*Y(Cl35)) + + (screened_rates(k_S34_p_to_Cl35_reaclib)*Y(S34)*Y(H1)*state.rho + -screened_rates(k_Cl35_to_p_S34_derived)*Y(Cl35)) + + (screened_rates(k_Cl34_n_to_Cl35_reaclib)*Y(Cl34)*Y(N)*state.rho + -screened_rates(k_Cl35_to_n_Cl34_derived)*Y(Cl35)) + + (-screened_rates(k_Cl35_n_to_Cl36_reaclib)*Y(Cl35)*Y(N)*state.rho + screened_rates(k_Cl36_to_n_Cl35_derived)*Y(Cl36)) + + (-screened_rates(k_Cl35_p_to_Ar36_reaclib)*Y(Cl35)*Y(H1)*state.rho + screened_rates(k_Ar36_to_p_Cl35_derived)*Y(Ar36)) + + (-screened_rates(k_Cl35_He4_to_K39_reaclib)*Y(Cl35)*Y(He4)*state.rho + screened_rates(k_K39_to_He4_Cl35_derived)*Y(K39)) + + (-screened_rates(k_Cl35_n_to_p_S35_reaclib)*Y(Cl35)*Y(N)*state.rho + screened_rates(k_S35_p_to_n_Cl35_derived)*Y(S35)*Y(H1)*state.rho) + + (-screened_rates(k_Cl35_n_to_He4_P32_reaclib)*Y(Cl35)*Y(N)*state.rho + screened_rates(k_P32_He4_to_n_Cl35_derived)*Y(He4)*Y(P32)*state.rho) + + (-screened_rates(k_Cl35_p_to_He4_S32_reaclib)*Y(Cl35)*Y(H1)*state.rho + screened_rates(k_S32_He4_to_p_Cl35_derived)*Y(He4)*Y(S32)*state.rho) + + (-screened_rates(k_Cl35_He4_to_p_Ar38_reaclib)*Y(Cl35)*Y(He4)*state.rho + screened_rates(k_Ar38_p_to_He4_Cl35_derived)*Y(Ar38)*Y(H1)*state.rho) + + (screened_rates(k_K38_n_to_He4_Cl35_reaclib)*Y(K38)*Y(N)*state.rho + -screened_rates(k_Cl35_He4_to_n_K38_derived)*Y(Cl35)*Y(He4)*state.rho) + + (screened_rates(k_S35_to_Cl35_beta_neg_weaktab)*Y(S35) + -screened_rates(k_Cl35_to_S35_electron_capture_weaktab)*Y(Cl35)); ydot_nuc(Cl36) = - (screened_rates(k_He4_P32_to_Cl36_reaclib)*Y(He4)*Y(P32)*state.rho + -screened_rates(k_Cl36_to_He4_P32_reaclib)*Y(Cl36)) + - (screened_rates(k_p_S35_to_Cl36_reaclib)*Y(S35)*Y(H1)*state.rho + -screened_rates(k_Cl36_to_p_S35_reaclib)*Y(Cl36)) + - (screened_rates(k_n_Cl35_to_Cl36_reaclib)*Y(Cl35)*Y(N)*state.rho + -screened_rates(k_Cl36_to_n_Cl35_reaclib)*Y(Cl36)) + - (-screened_rates(k_n_Cl36_to_Cl37_reaclib)*Y(Cl36)*Y(N)*state.rho + screened_rates(k_Cl37_to_n_Cl36_reaclib)*Y(Cl37)) + - (-screened_rates(k_p_Cl36_to_Ar37_reaclib)*Y(Cl36)*Y(H1)*state.rho + screened_rates(k_Ar37_to_p_Cl36_reaclib)*Y(Ar37)) + - (-screened_rates(k_He4_Cl36_to_K40_reaclib)*Y(Cl36)*Y(He4)*state.rho + screened_rates(k_K40_to_He4_Cl36_reaclib)*Y(K40)) + - (-screened_rates(k_n_Cl36_to_p_S36_reaclib)*Y(Cl36)*Y(N)*state.rho + screened_rates(k_p_S36_to_n_Cl36_reaclib)*Y(S36)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cl36_to_He4_P33_reaclib)*Y(Cl36)*Y(N)*state.rho + screened_rates(k_He4_P33_to_n_Cl36_reaclib)*Y(He4)*Y(P33)*state.rho) + - (-screened_rates(k_p_Cl36_to_He4_S33_reaclib)*Y(Cl36)*Y(H1)*state.rho + screened_rates(k_He4_S33_to_p_Cl36_reaclib)*Y(He4)*Y(S33)*state.rho) + - (screened_rates(k_n_Ar36_to_p_Cl36_reaclib)*Y(Ar36)*Y(N)*state.rho + -screened_rates(k_p_Cl36_to_n_Ar36_reaclib)*Y(Cl36)*Y(H1)*state.rho) + - (screened_rates(k_p_Ar39_to_He4_Cl36_reaclib)*Y(Ar39)*Y(H1)*state.rho + -screened_rates(k_He4_Cl36_to_p_Ar39_reaclib)*Y(Cl36)*Y(He4)*state.rho) + - (screened_rates(k_n_K39_to_He4_Cl36_reaclib)*Y(K39)*Y(N)*state.rho + -screened_rates(k_He4_Cl36_to_n_K39_reaclib)*Y(Cl36)*Y(He4)*state.rho) + - (-screened_rates(k_Cl36_to_Ar36_weaktab)*Y(Cl36) + screened_rates(k_Ar36_to_Cl36_weaktab)*Y(Ar36)) + - (-screened_rates(k_Cl36_to_S36_weaktab)*Y(Cl36) + screened_rates(k_S36_to_Cl36_weaktab)*Y(S36)); + (screened_rates(k_P32_He4_to_Cl36_reaclib)*Y(He4)*Y(P32)*state.rho + -screened_rates(k_Cl36_to_He4_P32_derived)*Y(Cl36)) + + (screened_rates(k_S35_p_to_Cl36_reaclib)*Y(S35)*Y(H1)*state.rho + -screened_rates(k_Cl36_to_p_S35_derived)*Y(Cl36)) + + (screened_rates(k_Cl35_n_to_Cl36_reaclib)*Y(Cl35)*Y(N)*state.rho + -screened_rates(k_Cl36_to_n_Cl35_derived)*Y(Cl36)) + + (-screened_rates(k_Cl36_n_to_Cl37_reaclib)*Y(Cl36)*Y(N)*state.rho + screened_rates(k_Cl37_to_n_Cl36_derived)*Y(Cl37)) + + (-screened_rates(k_Cl36_p_to_Ar37_reaclib)*Y(Cl36)*Y(H1)*state.rho + screened_rates(k_Ar37_to_p_Cl36_derived)*Y(Ar37)) + + (-screened_rates(k_Cl36_He4_to_K40_reaclib)*Y(Cl36)*Y(He4)*state.rho + screened_rates(k_K40_to_He4_Cl36_derived)*Y(K40)) + + (-screened_rates(k_Cl36_n_to_p_S36_reaclib)*Y(Cl36)*Y(N)*state.rho + screened_rates(k_S36_p_to_n_Cl36_derived)*Y(S36)*Y(H1)*state.rho) + + (-screened_rates(k_Cl36_n_to_He4_P33_reaclib)*Y(Cl36)*Y(N)*state.rho + screened_rates(k_P33_He4_to_n_Cl36_derived)*Y(He4)*Y(P33)*state.rho) + + (-screened_rates(k_Cl36_p_to_He4_S33_reaclib)*Y(Cl36)*Y(H1)*state.rho + screened_rates(k_S33_He4_to_p_Cl36_derived)*Y(He4)*Y(S33)*state.rho) + + (screened_rates(k_Ar36_n_to_p_Cl36_reaclib)*Y(Ar36)*Y(N)*state.rho + -screened_rates(k_Cl36_p_to_n_Ar36_derived)*Y(Cl36)*Y(H1)*state.rho) + + (screened_rates(k_Ar39_p_to_He4_Cl36_reaclib)*Y(Ar39)*Y(H1)*state.rho + -screened_rates(k_Cl36_He4_to_p_Ar39_derived)*Y(Cl36)*Y(He4)*state.rho) + + (screened_rates(k_K39_n_to_He4_Cl36_reaclib)*Y(K39)*Y(N)*state.rho + -screened_rates(k_Cl36_He4_to_n_K39_derived)*Y(Cl36)*Y(He4)*state.rho) + + (-screened_rates(k_Cl36_to_Ar36_beta_neg_weaktab)*Y(Cl36) + screened_rates(k_Ar36_to_Cl36_electron_capture_weaktab)*Y(Ar36)) + + (-screened_rates(k_Cl36_to_S36_electron_capture_weaktab)*Y(Cl36) + screened_rates(k_S36_to_Cl36_beta_neg_weaktab)*Y(S36)); ydot_nuc(Cl37) = - (screened_rates(k_He4_P33_to_Cl37_reaclib)*Y(He4)*Y(P33)*state.rho + -screened_rates(k_Cl37_to_He4_P33_reaclib)*Y(Cl37)) + - (screened_rates(k_p_S36_to_Cl37_reaclib)*Y(S36)*Y(H1)*state.rho + -screened_rates(k_Cl37_to_p_S36_reaclib)*Y(Cl37)) + - (screened_rates(k_n_Cl36_to_Cl37_reaclib)*Y(Cl36)*Y(N)*state.rho + -screened_rates(k_Cl37_to_n_Cl36_reaclib)*Y(Cl37)) + - (-screened_rates(k_p_Cl37_to_Ar38_reaclib)*Y(Cl37)*Y(H1)*state.rho + screened_rates(k_Ar38_to_p_Cl37_reaclib)*Y(Ar38)) + - (-screened_rates(k_He4_Cl37_to_K41_reaclib)*Y(Cl37)*Y(He4)*state.rho + screened_rates(k_K41_to_He4_Cl37_reaclib)*Y(K41)) + - (-screened_rates(k_p_Cl37_to_He4_S34_reaclib)*Y(Cl37)*Y(H1)*state.rho + screened_rates(k_He4_S34_to_p_Cl37_reaclib)*Y(He4)*Y(S34)*state.rho) + - (screened_rates(k_n_Ar37_to_p_Cl37_reaclib)*Y(Ar37)*Y(N)*state.rho + -screened_rates(k_p_Cl37_to_n_Ar37_reaclib)*Y(Cl37)*Y(H1)*state.rho) + - (screened_rates(k_p_Ar40_to_He4_Cl37_reaclib)*Y(Ar40)*Y(H1)*state.rho + -screened_rates(k_He4_Cl37_to_p_Ar40_reaclib)*Y(Cl37)*Y(He4)*state.rho) + - (screened_rates(k_n_K40_to_He4_Cl37_reaclib)*Y(K40)*Y(N)*state.rho + -screened_rates(k_He4_Cl37_to_n_K40_reaclib)*Y(Cl37)*Y(He4)*state.rho) + - (screened_rates(k_Ar37_to_Cl37_weaktab)*Y(Ar37) + -screened_rates(k_Cl37_to_Ar37_weaktab)*Y(Cl37)); + (screened_rates(k_P33_He4_to_Cl37_reaclib)*Y(He4)*Y(P33)*state.rho + -screened_rates(k_Cl37_to_He4_P33_derived)*Y(Cl37)) + + (screened_rates(k_S36_p_to_Cl37_reaclib)*Y(S36)*Y(H1)*state.rho + -screened_rates(k_Cl37_to_p_S36_derived)*Y(Cl37)) + + (screened_rates(k_Cl36_n_to_Cl37_reaclib)*Y(Cl36)*Y(N)*state.rho + -screened_rates(k_Cl37_to_n_Cl36_derived)*Y(Cl37)) + + (-screened_rates(k_Cl37_p_to_Ar38_reaclib)*Y(Cl37)*Y(H1)*state.rho + screened_rates(k_Ar38_to_p_Cl37_derived)*Y(Ar38)) + + (-screened_rates(k_Cl37_He4_to_K41_reaclib)*Y(Cl37)*Y(He4)*state.rho + screened_rates(k_K41_to_He4_Cl37_derived)*Y(K41)) + + (screened_rates(k_Ar37_n_to_p_Cl37_reaclib)*Y(Ar37)*Y(N)*state.rho + -screened_rates(k_Cl37_p_to_n_Ar37_derived)*Y(Cl37)*Y(H1)*state.rho) + + (screened_rates(k_Ar40_p_to_He4_Cl37_reaclib)*Y(Ar40)*Y(H1)*state.rho + -screened_rates(k_Cl37_He4_to_p_Ar40_derived)*Y(Cl37)*Y(He4)*state.rho) + + (screened_rates(k_K40_n_to_He4_Cl37_reaclib)*Y(K40)*Y(N)*state.rho + -screened_rates(k_Cl37_He4_to_n_K40_derived)*Y(Cl37)*Y(He4)*state.rho) + + (screened_rates(k_Ar37_to_Cl37_electron_capture_weaktab)*Y(Ar37) + -screened_rates(k_Cl37_to_Ar37_beta_neg_weaktab)*Y(Cl37)) + + (-screened_rates(k_Cl37_p_to_He4_S34_derived)*Y(Cl37)*Y(H1)*state.rho + screened_rates(k_S34_He4_to_p_Cl37_reaclib)*Y(He4)*Y(S34)*state.rho); ydot_nuc(Ar36) = - (screened_rates(k_He4_S32_to_Ar36_reaclib)*Y(He4)*Y(S32)*state.rho + -screened_rates(k_Ar36_to_He4_S32_reaclib)*Y(Ar36)) + - (screened_rates(k_p_Cl35_to_Ar36_reaclib)*Y(Cl35)*Y(H1)*state.rho + -screened_rates(k_Ar36_to_p_Cl35_reaclib)*Y(Ar36)) + - (-screened_rates(k_n_Ar36_to_Ar37_reaclib)*Y(Ar36)*Y(N)*state.rho + screened_rates(k_Ar37_to_n_Ar36_reaclib)*Y(Ar37)) + - (-screened_rates(k_p_Ar36_to_K37_reaclib)*Y(Ar36)*Y(H1)*state.rho + screened_rates(k_K37_to_p_Ar36_reaclib)*Y(K37)) + - (-screened_rates(k_He4_Ar36_to_Ca40_reaclib)*Y(Ar36)*Y(He4)*state.rho + screened_rates(k_Ca40_to_He4_Ar36_reaclib)*Y(Ca40)) + - (screened_rates(k_He4_Cl33_to_p_Ar36_reaclib)*Y(Cl33)*Y(He4)*state.rho + -screened_rates(k_p_Ar36_to_He4_Cl33_reaclib)*Y(Ar36)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ar36_to_p_Cl36_reaclib)*Y(Ar36)*Y(N)*state.rho + screened_rates(k_p_Cl36_to_n_Ar36_reaclib)*Y(Cl36)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ar36_to_He4_S33_reaclib)*Y(Ar36)*Y(N)*state.rho + screened_rates(k_He4_S33_to_n_Ar36_reaclib)*Y(He4)*Y(S33)*state.rho) + - (screened_rates(k_p_K39_to_He4_Ar36_reaclib)*Y(K39)*Y(H1)*state.rho + -screened_rates(k_He4_Ar36_to_p_K39_reaclib)*Y(Ar36)*Y(He4)*state.rho) + - (screened_rates(k_Cl36_to_Ar36_weaktab)*Y(Cl36) + -screened_rates(k_Ar36_to_Cl36_weaktab)*Y(Ar36)); + (screened_rates(k_S32_He4_to_Ar36_reaclib)*Y(He4)*Y(S32)*state.rho + -screened_rates(k_Ar36_to_He4_S32_derived)*Y(Ar36)) + + (screened_rates(k_Cl35_p_to_Ar36_reaclib)*Y(Cl35)*Y(H1)*state.rho + -screened_rates(k_Ar36_to_p_Cl35_derived)*Y(Ar36)) + + (-screened_rates(k_Ar36_n_to_Ar37_reaclib)*Y(Ar36)*Y(N)*state.rho + screened_rates(k_Ar37_to_n_Ar36_derived)*Y(Ar37)) + + (-screened_rates(k_Ar36_p_to_K37_reaclib)*Y(Ar36)*Y(H1)*state.rho + screened_rates(k_K37_to_p_Ar36_derived)*Y(K37)) + + (-screened_rates(k_Ar36_He4_to_Ca40_reaclib)*Y(Ar36)*Y(He4)*state.rho + screened_rates(k_Ca40_to_He4_Ar36_derived)*Y(Ca40)) + + (screened_rates(k_Cl33_He4_to_p_Ar36_reaclib)*Y(Cl33)*Y(He4)*state.rho + -screened_rates(k_Ar36_p_to_He4_Cl33_derived)*Y(Ar36)*Y(H1)*state.rho) + + (-screened_rates(k_Ar36_n_to_p_Cl36_reaclib)*Y(Ar36)*Y(N)*state.rho + screened_rates(k_Cl36_p_to_n_Ar36_derived)*Y(Cl36)*Y(H1)*state.rho) + + (-screened_rates(k_Ar36_n_to_He4_S33_reaclib)*Y(Ar36)*Y(N)*state.rho + screened_rates(k_S33_He4_to_n_Ar36_derived)*Y(He4)*Y(S33)*state.rho) + + (screened_rates(k_K39_p_to_He4_Ar36_reaclib)*Y(K39)*Y(H1)*state.rho + -screened_rates(k_Ar36_He4_to_p_K39_derived)*Y(Ar36)*Y(He4)*state.rho) + + (screened_rates(k_Cl36_to_Ar36_beta_neg_weaktab)*Y(Cl36) + -screened_rates(k_Ar36_to_Cl36_electron_capture_weaktab)*Y(Ar36)); ydot_nuc(Ar37) = - (screened_rates(k_He4_S33_to_Ar37_reaclib)*Y(He4)*Y(S33)*state.rho + -screened_rates(k_Ar37_to_He4_S33_reaclib)*Y(Ar37)) + - (screened_rates(k_p_Cl36_to_Ar37_reaclib)*Y(Cl36)*Y(H1)*state.rho + -screened_rates(k_Ar37_to_p_Cl36_reaclib)*Y(Ar37)) + - (screened_rates(k_n_Ar36_to_Ar37_reaclib)*Y(Ar36)*Y(N)*state.rho + -screened_rates(k_Ar37_to_n_Ar36_reaclib)*Y(Ar37)) + - (-screened_rates(k_n_Ar37_to_Ar38_reaclib)*Y(Ar37)*Y(N)*state.rho + screened_rates(k_Ar38_to_n_Ar37_reaclib)*Y(Ar38)) + - (-screened_rates(k_p_Ar37_to_K38_reaclib)*Y(Ar37)*Y(H1)*state.rho + screened_rates(k_K38_to_p_Ar37_reaclib)*Y(K38)) + - (-screened_rates(k_He4_Ar37_to_Ca41_reaclib)*Y(Ar37)*Y(He4)*state.rho + screened_rates(k_Ca41_to_He4_Ar37_reaclib)*Y(Ca41)) + - (screened_rates(k_He4_Cl34_to_p_Ar37_reaclib)*Y(Cl34)*Y(He4)*state.rho + -screened_rates(k_p_Ar37_to_He4_Cl34_reaclib)*Y(Ar37)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ar37_to_p_Cl37_reaclib)*Y(Ar37)*Y(N)*state.rho + screened_rates(k_p_Cl37_to_n_Ar37_reaclib)*Y(Cl37)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ar37_to_He4_S34_reaclib)*Y(Ar37)*Y(N)*state.rho + screened_rates(k_He4_S34_to_n_Ar37_reaclib)*Y(He4)*Y(S34)*state.rho) + - (screened_rates(k_n_K37_to_p_Ar37_reaclib)*Y(K37)*Y(N)*state.rho + -screened_rates(k_p_Ar37_to_n_K37_reaclib)*Y(Ar37)*Y(H1)*state.rho) + - (screened_rates(k_p_K40_to_He4_Ar37_reaclib)*Y(K40)*Y(H1)*state.rho + -screened_rates(k_He4_Ar37_to_p_K40_reaclib)*Y(Ar37)*Y(He4)*state.rho) + - (screened_rates(k_n_Ca40_to_He4_Ar37_reaclib)*Y(Ca40)*Y(N)*state.rho + -screened_rates(k_He4_Ar37_to_n_Ca40_reaclib)*Y(Ar37)*Y(He4)*state.rho) + - (-screened_rates(k_Ar37_to_Cl37_weaktab)*Y(Ar37) + screened_rates(k_Cl37_to_Ar37_weaktab)*Y(Cl37)) + - (screened_rates(k_K37_to_Ar37_weaktab)*Y(K37) + -screened_rates(k_Ar37_to_K37_weaktab)*Y(Ar37)); + (screened_rates(k_S33_He4_to_Ar37_reaclib)*Y(He4)*Y(S33)*state.rho + -screened_rates(k_Ar37_to_He4_S33_derived)*Y(Ar37)) + + (screened_rates(k_Cl36_p_to_Ar37_reaclib)*Y(Cl36)*Y(H1)*state.rho + -screened_rates(k_Ar37_to_p_Cl36_derived)*Y(Ar37)) + + (screened_rates(k_Ar36_n_to_Ar37_reaclib)*Y(Ar36)*Y(N)*state.rho + -screened_rates(k_Ar37_to_n_Ar36_derived)*Y(Ar37)) + + (-screened_rates(k_Ar37_n_to_Ar38_reaclib)*Y(Ar37)*Y(N)*state.rho + screened_rates(k_Ar38_to_n_Ar37_derived)*Y(Ar38)) + + (-screened_rates(k_Ar37_p_to_K38_reaclib)*Y(Ar37)*Y(H1)*state.rho + screened_rates(k_K38_to_p_Ar37_derived)*Y(K38)) + + (-screened_rates(k_Ar37_He4_to_Ca41_reaclib)*Y(Ar37)*Y(He4)*state.rho + screened_rates(k_Ca41_to_He4_Ar37_derived)*Y(Ca41)) + + (screened_rates(k_Cl34_He4_to_p_Ar37_reaclib)*Y(Cl34)*Y(He4)*state.rho + -screened_rates(k_Ar37_p_to_He4_Cl34_derived)*Y(Ar37)*Y(H1)*state.rho) + + (-screened_rates(k_Ar37_n_to_p_Cl37_reaclib)*Y(Ar37)*Y(N)*state.rho + screened_rates(k_Cl37_p_to_n_Ar37_derived)*Y(Cl37)*Y(H1)*state.rho) + + (screened_rates(k_K37_n_to_p_Ar37_reaclib)*Y(K37)*Y(N)*state.rho + -screened_rates(k_Ar37_p_to_n_K37_derived)*Y(Ar37)*Y(H1)*state.rho) + + (screened_rates(k_K40_p_to_He4_Ar37_reaclib)*Y(K40)*Y(H1)*state.rho + -screened_rates(k_Ar37_He4_to_p_K40_derived)*Y(Ar37)*Y(He4)*state.rho) + + (screened_rates(k_Ca40_n_to_He4_Ar37_reaclib)*Y(Ca40)*Y(N)*state.rho + -screened_rates(k_Ar37_He4_to_n_Ca40_derived)*Y(Ar37)*Y(He4)*state.rho) + + (-screened_rates(k_Ar37_to_Cl37_electron_capture_weaktab)*Y(Ar37) + screened_rates(k_Cl37_to_Ar37_beta_neg_weaktab)*Y(Cl37)) + + (screened_rates(k_K37_to_Ar37_electron_capture_weaktab)*Y(K37) + -screened_rates(k_Ar37_to_K37_beta_neg_weaktab)*Y(Ar37)) + + (-screened_rates(k_Ar37_n_to_He4_S34_derived)*Y(Ar37)*Y(N)*state.rho + screened_rates(k_S34_He4_to_n_Ar37_reaclib)*Y(He4)*Y(S34)*state.rho); ydot_nuc(Ar38) = - (screened_rates(k_He4_S34_to_Ar38_reaclib)*Y(He4)*Y(S34)*state.rho + -screened_rates(k_Ar38_to_He4_S34_reaclib)*Y(Ar38)) + - (screened_rates(k_p_Cl37_to_Ar38_reaclib)*Y(Cl37)*Y(H1)*state.rho + -screened_rates(k_Ar38_to_p_Cl37_reaclib)*Y(Ar38)) + - (screened_rates(k_n_Ar37_to_Ar38_reaclib)*Y(Ar37)*Y(N)*state.rho + -screened_rates(k_Ar38_to_n_Ar37_reaclib)*Y(Ar38)) + - (-screened_rates(k_n_Ar38_to_Ar39_reaclib)*Y(Ar38)*Y(N)*state.rho + screened_rates(k_Ar39_to_n_Ar38_reaclib)*Y(Ar39)) + - (-screened_rates(k_p_Ar38_to_K39_reaclib)*Y(Ar38)*Y(H1)*state.rho + screened_rates(k_K39_to_p_Ar38_reaclib)*Y(K39)) + - (-screened_rates(k_He4_Ar38_to_Ca42_reaclib)*Y(Ar38)*Y(He4)*state.rho + screened_rates(k_Ca42_to_He4_Ar38_reaclib)*Y(Ca42)) + - (screened_rates(k_He4_S35_to_n_Ar38_reaclib)*Y(He4)*Y(S35)*state.rho + -screened_rates(k_n_Ar38_to_He4_S35_reaclib)*Y(Ar38)*Y(N)*state.rho) + - (screened_rates(k_He4_Cl35_to_p_Ar38_reaclib)*Y(Cl35)*Y(He4)*state.rho + -screened_rates(k_p_Ar38_to_He4_Cl35_reaclib)*Y(Ar38)*Y(H1)*state.rho) + - (screened_rates(k_n_K38_to_p_Ar38_reaclib)*Y(K38)*Y(N)*state.rho + -screened_rates(k_p_Ar38_to_n_K38_reaclib)*Y(Ar38)*Y(H1)*state.rho) + - (screened_rates(k_p_K41_to_He4_Ar38_reaclib)*Y(K41)*Y(H1)*state.rho + -screened_rates(k_He4_Ar38_to_p_K41_reaclib)*Y(Ar38)*Y(He4)*state.rho) + - (screened_rates(k_n_Ca41_to_He4_Ar38_reaclib)*Y(Ca41)*Y(N)*state.rho + -screened_rates(k_He4_Ar38_to_n_Ca41_reaclib)*Y(Ar38)*Y(He4)*state.rho) + - (screened_rates(k_K38_to_Ar38_weaktab)*Y(K38) + -screened_rates(k_Ar38_to_K38_weaktab)*Y(Ar38)); + (screened_rates(k_S34_He4_to_Ar38_reaclib)*Y(He4)*Y(S34)*state.rho + -screened_rates(k_Ar38_to_He4_S34_derived)*Y(Ar38)) + + (screened_rates(k_Cl37_p_to_Ar38_reaclib)*Y(Cl37)*Y(H1)*state.rho + -screened_rates(k_Ar38_to_p_Cl37_derived)*Y(Ar38)) + + (screened_rates(k_Ar37_n_to_Ar38_reaclib)*Y(Ar37)*Y(N)*state.rho + -screened_rates(k_Ar38_to_n_Ar37_derived)*Y(Ar38)) + + (-screened_rates(k_Ar38_n_to_Ar39_reaclib)*Y(Ar38)*Y(N)*state.rho + screened_rates(k_Ar39_to_n_Ar38_derived)*Y(Ar39)) + + (-screened_rates(k_Ar38_p_to_K39_reaclib)*Y(Ar38)*Y(H1)*state.rho + screened_rates(k_K39_to_p_Ar38_derived)*Y(K39)) + + (-screened_rates(k_Ar38_He4_to_Ca42_reaclib)*Y(Ar38)*Y(He4)*state.rho + screened_rates(k_Ca42_to_He4_Ar38_derived)*Y(Ca42)) + + (screened_rates(k_S35_He4_to_n_Ar38_reaclib)*Y(He4)*Y(S35)*state.rho + -screened_rates(k_Ar38_n_to_He4_S35_derived)*Y(Ar38)*Y(N)*state.rho) + + (screened_rates(k_Cl35_He4_to_p_Ar38_reaclib)*Y(Cl35)*Y(He4)*state.rho + -screened_rates(k_Ar38_p_to_He4_Cl35_derived)*Y(Ar38)*Y(H1)*state.rho) + + (screened_rates(k_K38_n_to_p_Ar38_reaclib)*Y(K38)*Y(N)*state.rho + -screened_rates(k_Ar38_p_to_n_K38_derived)*Y(Ar38)*Y(H1)*state.rho) + + (screened_rates(k_K41_p_to_He4_Ar38_reaclib)*Y(K41)*Y(H1)*state.rho + -screened_rates(k_Ar38_He4_to_p_K41_derived)*Y(Ar38)*Y(He4)*state.rho) + + (screened_rates(k_Ca41_n_to_He4_Ar38_reaclib)*Y(Ca41)*Y(N)*state.rho + -screened_rates(k_Ar38_He4_to_n_Ca41_derived)*Y(Ar38)*Y(He4)*state.rho) + + (screened_rates(k_K38_to_Ar38_electron_capture_weaktab)*Y(K38) + -screened_rates(k_Ar38_to_K38_beta_neg_weaktab)*Y(Ar38)); ydot_nuc(Ar39) = - (screened_rates(k_He4_S35_to_Ar39_reaclib)*Y(He4)*Y(S35)*state.rho + -screened_rates(k_Ar39_to_He4_S35_reaclib)*Y(Ar39)) + - (screened_rates(k_n_Ar38_to_Ar39_reaclib)*Y(Ar38)*Y(N)*state.rho + -screened_rates(k_Ar39_to_n_Ar38_reaclib)*Y(Ar39)) + - (-screened_rates(k_n_Ar39_to_Ar40_reaclib)*Y(Ar39)*Y(N)*state.rho + screened_rates(k_Ar40_to_n_Ar39_reaclib)*Y(Ar40)) + - (-screened_rates(k_p_Ar39_to_K40_reaclib)*Y(Ar39)*Y(H1)*state.rho + screened_rates(k_K40_to_p_Ar39_reaclib)*Y(K40)) + - (-screened_rates(k_He4_Ar39_to_Ca43_reaclib)*Y(Ar39)*Y(He4)*state.rho + screened_rates(k_Ca43_to_He4_Ar39_reaclib)*Y(Ca43)) + - (-screened_rates(k_n_Ar39_to_He4_S36_reaclib)*Y(Ar39)*Y(N)*state.rho + screened_rates(k_He4_S36_to_n_Ar39_reaclib)*Y(He4)*Y(S36)*state.rho) + - (-screened_rates(k_p_Ar39_to_He4_Cl36_reaclib)*Y(Ar39)*Y(H1)*state.rho + screened_rates(k_He4_Cl36_to_p_Ar39_reaclib)*Y(Cl36)*Y(He4)*state.rho) + - (screened_rates(k_n_K39_to_p_Ar39_reaclib)*Y(K39)*Y(N)*state.rho + -screened_rates(k_p_Ar39_to_n_K39_reaclib)*Y(Ar39)*Y(H1)*state.rho) + - (screened_rates(k_n_Ca42_to_He4_Ar39_reaclib)*Y(Ca42)*Y(N)*state.rho + -screened_rates(k_He4_Ar39_to_n_Ca42_reaclib)*Y(Ar39)*Y(He4)*state.rho) + - (-screened_rates(k_Ar39_to_K39_weaktab)*Y(Ar39) + screened_rates(k_K39_to_Ar39_weaktab)*Y(K39)); + (screened_rates(k_S35_He4_to_Ar39_reaclib)*Y(He4)*Y(S35)*state.rho + -screened_rates(k_Ar39_to_He4_S35_derived)*Y(Ar39)) + + (screened_rates(k_Ar38_n_to_Ar39_reaclib)*Y(Ar38)*Y(N)*state.rho + -screened_rates(k_Ar39_to_n_Ar38_derived)*Y(Ar39)) + + (-screened_rates(k_Ar39_n_to_Ar40_reaclib)*Y(Ar39)*Y(N)*state.rho + screened_rates(k_Ar40_to_n_Ar39_derived)*Y(Ar40)) + + (-screened_rates(k_Ar39_p_to_K40_reaclib)*Y(Ar39)*Y(H1)*state.rho + screened_rates(k_K40_to_p_Ar39_derived)*Y(K40)) + + (-screened_rates(k_Ar39_He4_to_Ca43_reaclib)*Y(Ar39)*Y(He4)*state.rho + screened_rates(k_Ca43_to_He4_Ar39_derived)*Y(Ca43)) + + (-screened_rates(k_Ar39_n_to_He4_S36_reaclib)*Y(Ar39)*Y(N)*state.rho + screened_rates(k_S36_He4_to_n_Ar39_derived)*Y(He4)*Y(S36)*state.rho) + + (-screened_rates(k_Ar39_p_to_He4_Cl36_reaclib)*Y(Ar39)*Y(H1)*state.rho + screened_rates(k_Cl36_He4_to_p_Ar39_derived)*Y(Cl36)*Y(He4)*state.rho) + + (screened_rates(k_K39_n_to_p_Ar39_reaclib)*Y(K39)*Y(N)*state.rho + -screened_rates(k_Ar39_p_to_n_K39_derived)*Y(Ar39)*Y(H1)*state.rho) + + (screened_rates(k_Ca42_n_to_He4_Ar39_reaclib)*Y(Ca42)*Y(N)*state.rho + -screened_rates(k_Ar39_He4_to_n_Ca42_derived)*Y(Ar39)*Y(He4)*state.rho) + + (-screened_rates(k_Ar39_to_K39_beta_neg_weaktab)*Y(Ar39) + screened_rates(k_K39_to_Ar39_electron_capture_weaktab)*Y(K39)); ydot_nuc(Ar40) = - (screened_rates(k_He4_S36_to_Ar40_reaclib)*Y(He4)*Y(S36)*state.rho + -screened_rates(k_Ar40_to_He4_S36_reaclib)*Y(Ar40)) + - (screened_rates(k_n_Ar39_to_Ar40_reaclib)*Y(Ar39)*Y(N)*state.rho + -screened_rates(k_Ar40_to_n_Ar39_reaclib)*Y(Ar40)) + - (-screened_rates(k_p_Ar40_to_K41_reaclib)*Y(Ar40)*Y(H1)*state.rho + screened_rates(k_K41_to_p_Ar40_reaclib)*Y(K41)) + - (-screened_rates(k_He4_Ar40_to_Ca44_reaclib)*Y(Ar40)*Y(He4)*state.rho + screened_rates(k_Ca44_to_He4_Ar40_reaclib)*Y(Ca44)) + - (-screened_rates(k_p_Ar40_to_He4_Cl37_reaclib)*Y(Ar40)*Y(H1)*state.rho + screened_rates(k_He4_Cl37_to_p_Ar40_reaclib)*Y(Cl37)*Y(He4)*state.rho) + - (screened_rates(k_n_K40_to_p_Ar40_reaclib)*Y(K40)*Y(N)*state.rho + -screened_rates(k_p_Ar40_to_n_K40_reaclib)*Y(Ar40)*Y(H1)*state.rho) + - (screened_rates(k_n_Ca43_to_He4_Ar40_reaclib)*Y(Ca43)*Y(N)*state.rho + -screened_rates(k_He4_Ar40_to_n_Ca43_reaclib)*Y(Ar40)*Y(He4)*state.rho) + - (screened_rates(k_K40_to_Ar40_weaktab)*Y(K40) + -screened_rates(k_Ar40_to_K40_weaktab)*Y(Ar40)); + (screened_rates(k_S36_He4_to_Ar40_reaclib)*Y(He4)*Y(S36)*state.rho + -screened_rates(k_Ar40_to_He4_S36_derived)*Y(Ar40)) + + (screened_rates(k_Ar39_n_to_Ar40_reaclib)*Y(Ar39)*Y(N)*state.rho + -screened_rates(k_Ar40_to_n_Ar39_derived)*Y(Ar40)) + + (-screened_rates(k_Ar40_p_to_K41_reaclib)*Y(Ar40)*Y(H1)*state.rho + screened_rates(k_K41_to_p_Ar40_derived)*Y(K41)) + + (-screened_rates(k_Ar40_He4_to_Ca44_reaclib)*Y(Ar40)*Y(He4)*state.rho + screened_rates(k_Ca44_to_He4_Ar40_derived)*Y(Ca44)) + + (-screened_rates(k_Ar40_p_to_He4_Cl37_reaclib)*Y(Ar40)*Y(H1)*state.rho + screened_rates(k_Cl37_He4_to_p_Ar40_derived)*Y(Cl37)*Y(He4)*state.rho) + + (screened_rates(k_K40_n_to_p_Ar40_reaclib)*Y(K40)*Y(N)*state.rho + -screened_rates(k_Ar40_p_to_n_K40_derived)*Y(Ar40)*Y(H1)*state.rho) + + (screened_rates(k_Ca43_n_to_He4_Ar40_reaclib)*Y(Ca43)*Y(N)*state.rho + -screened_rates(k_Ar40_He4_to_n_Ca43_derived)*Y(Ar40)*Y(He4)*state.rho) + + (screened_rates(k_K40_to_Ar40_electron_capture_weaktab)*Y(K40) + -screened_rates(k_Ar40_to_K40_beta_neg_weaktab)*Y(Ar40)); ydot_nuc(K37) = - (screened_rates(k_He4_Cl33_to_K37_reaclib)*Y(Cl33)*Y(He4)*state.rho + -screened_rates(k_K37_to_He4_Cl33_reaclib)*Y(K37)) + - (screened_rates(k_p_Ar36_to_K37_reaclib)*Y(Ar36)*Y(H1)*state.rho + -screened_rates(k_K37_to_p_Ar36_reaclib)*Y(K37)) + - (-screened_rates(k_n_K37_to_K38_reaclib)*Y(K37)*Y(N)*state.rho + screened_rates(k_K38_to_n_K37_reaclib)*Y(K38)) + - (-screened_rates(k_n_K37_to_p_Ar37_reaclib)*Y(K37)*Y(N)*state.rho + screened_rates(k_p_Ar37_to_n_K37_reaclib)*Y(Ar37)*Y(H1)*state.rho) + - (-screened_rates(k_n_K37_to_He4_Cl34_reaclib)*Y(K37)*Y(N)*state.rho + screened_rates(k_He4_Cl34_to_n_K37_reaclib)*Y(Cl34)*Y(He4)*state.rho) + - (-screened_rates(k_He4_K37_to_p_Ca40_reaclib)*Y(He4)*Y(K37)*state.rho + screened_rates(k_p_Ca40_to_He4_K37_reaclib)*Y(Ca40)*Y(H1)*state.rho) + - (-screened_rates(k_K37_to_Ar37_weaktab)*Y(K37) + screened_rates(k_Ar37_to_K37_weaktab)*Y(Ar37)); + (screened_rates(k_Cl33_He4_to_K37_reaclib)*Y(Cl33)*Y(He4)*state.rho + -screened_rates(k_K37_to_He4_Cl33_derived)*Y(K37)) + + (screened_rates(k_Ar36_p_to_K37_reaclib)*Y(Ar36)*Y(H1)*state.rho + -screened_rates(k_K37_to_p_Ar36_derived)*Y(K37)) + + (-screened_rates(k_K37_n_to_K38_reaclib)*Y(K37)*Y(N)*state.rho + screened_rates(k_K38_to_n_K37_derived)*Y(K38)) + + (-screened_rates(k_K37_n_to_p_Ar37_reaclib)*Y(K37)*Y(N)*state.rho + screened_rates(k_Ar37_p_to_n_K37_derived)*Y(Ar37)*Y(H1)*state.rho) + + (-screened_rates(k_K37_n_to_He4_Cl34_reaclib)*Y(K37)*Y(N)*state.rho + screened_rates(k_Cl34_He4_to_n_K37_derived)*Y(Cl34)*Y(He4)*state.rho) + + (-screened_rates(k_K37_He4_to_p_Ca40_reaclib)*Y(He4)*Y(K37)*state.rho + screened_rates(k_Ca40_p_to_He4_K37_derived)*Y(Ca40)*Y(H1)*state.rho) + + (-screened_rates(k_K37_to_Ar37_electron_capture_weaktab)*Y(K37) + screened_rates(k_Ar37_to_K37_beta_neg_weaktab)*Y(Ar37)); ydot_nuc(K38) = - (screened_rates(k_He4_Cl34_to_K38_reaclib)*Y(Cl34)*Y(He4)*state.rho + -screened_rates(k_K38_to_He4_Cl34_reaclib)*Y(K38)) + - (screened_rates(k_p_Ar37_to_K38_reaclib)*Y(Ar37)*Y(H1)*state.rho + -screened_rates(k_K38_to_p_Ar37_reaclib)*Y(K38)) + - (screened_rates(k_n_K37_to_K38_reaclib)*Y(K37)*Y(N)*state.rho + -screened_rates(k_K38_to_n_K37_reaclib)*Y(K38)) + - (-screened_rates(k_n_K38_to_K39_reaclib)*Y(K38)*Y(N)*state.rho + screened_rates(k_K39_to_n_K38_reaclib)*Y(K39)) + - (-screened_rates(k_n_K38_to_p_Ar38_reaclib)*Y(K38)*Y(N)*state.rho + screened_rates(k_p_Ar38_to_n_K38_reaclib)*Y(Ar38)*Y(H1)*state.rho) + - (-screened_rates(k_n_K38_to_He4_Cl35_reaclib)*Y(K38)*Y(N)*state.rho + screened_rates(k_He4_Cl35_to_n_K38_reaclib)*Y(Cl35)*Y(He4)*state.rho) + - (-screened_rates(k_He4_K38_to_p_Ca41_reaclib)*Y(He4)*Y(K38)*state.rho + screened_rates(k_p_Ca41_to_He4_K38_reaclib)*Y(Ca41)*Y(H1)*state.rho) + - (-screened_rates(k_K38_to_Ar38_weaktab)*Y(K38) + screened_rates(k_Ar38_to_K38_weaktab)*Y(Ar38)); + (screened_rates(k_Cl34_He4_to_K38_reaclib)*Y(Cl34)*Y(He4)*state.rho + -screened_rates(k_K38_to_He4_Cl34_derived)*Y(K38)) + + (screened_rates(k_Ar37_p_to_K38_reaclib)*Y(Ar37)*Y(H1)*state.rho + -screened_rates(k_K38_to_p_Ar37_derived)*Y(K38)) + + (screened_rates(k_K37_n_to_K38_reaclib)*Y(K37)*Y(N)*state.rho + -screened_rates(k_K38_to_n_K37_derived)*Y(K38)) + + (-screened_rates(k_K38_n_to_K39_reaclib)*Y(K38)*Y(N)*state.rho + screened_rates(k_K39_to_n_K38_derived)*Y(K39)) + + (-screened_rates(k_K38_n_to_p_Ar38_reaclib)*Y(K38)*Y(N)*state.rho + screened_rates(k_Ar38_p_to_n_K38_derived)*Y(Ar38)*Y(H1)*state.rho) + + (-screened_rates(k_K38_n_to_He4_Cl35_reaclib)*Y(K38)*Y(N)*state.rho + screened_rates(k_Cl35_He4_to_n_K38_derived)*Y(Cl35)*Y(He4)*state.rho) + + (-screened_rates(k_K38_He4_to_p_Ca41_reaclib)*Y(He4)*Y(K38)*state.rho + screened_rates(k_Ca41_p_to_He4_K38_derived)*Y(Ca41)*Y(H1)*state.rho) + + (-screened_rates(k_K38_to_Ar38_electron_capture_weaktab)*Y(K38) + screened_rates(k_Ar38_to_K38_beta_neg_weaktab)*Y(Ar38)); ydot_nuc(K39) = - (screened_rates(k_He4_Cl35_to_K39_reaclib)*Y(Cl35)*Y(He4)*state.rho + -screened_rates(k_K39_to_He4_Cl35_reaclib)*Y(K39)) + - (screened_rates(k_p_Ar38_to_K39_reaclib)*Y(Ar38)*Y(H1)*state.rho + -screened_rates(k_K39_to_p_Ar38_reaclib)*Y(K39)) + - (screened_rates(k_n_K38_to_K39_reaclib)*Y(K38)*Y(N)*state.rho + -screened_rates(k_K39_to_n_K38_reaclib)*Y(K39)) + - (-screened_rates(k_n_K39_to_K40_reaclib)*Y(K39)*Y(N)*state.rho + screened_rates(k_K40_to_n_K39_reaclib)*Y(K40)) + - (-screened_rates(k_p_K39_to_Ca40_reaclib)*Y(K39)*Y(H1)*state.rho + screened_rates(k_Ca40_to_p_K39_reaclib)*Y(Ca40)) + - (-screened_rates(k_He4_K39_to_Sc43_reaclib)*Y(He4)*Y(K39)*state.rho + screened_rates(k_Sc43_to_He4_K39_reaclib)*Y(Sc43)) + - (-screened_rates(k_n_K39_to_p_Ar39_reaclib)*Y(K39)*Y(N)*state.rho + screened_rates(k_p_Ar39_to_n_K39_reaclib)*Y(Ar39)*Y(H1)*state.rho) + - (-screened_rates(k_n_K39_to_He4_Cl36_reaclib)*Y(K39)*Y(N)*state.rho + screened_rates(k_He4_Cl36_to_n_K39_reaclib)*Y(Cl36)*Y(He4)*state.rho) + - (-screened_rates(k_p_K39_to_He4_Ar36_reaclib)*Y(K39)*Y(H1)*state.rho + screened_rates(k_He4_Ar36_to_p_K39_reaclib)*Y(Ar36)*Y(He4)*state.rho) + - (screened_rates(k_p_Ca42_to_He4_K39_reaclib)*Y(Ca42)*Y(H1)*state.rho + -screened_rates(k_He4_K39_to_p_Ca42_reaclib)*Y(He4)*Y(K39)*state.rho) + - (screened_rates(k_Ar39_to_K39_weaktab)*Y(Ar39) + -screened_rates(k_K39_to_Ar39_weaktab)*Y(K39)); + (screened_rates(k_Cl35_He4_to_K39_reaclib)*Y(Cl35)*Y(He4)*state.rho + -screened_rates(k_K39_to_He4_Cl35_derived)*Y(K39)) + + (screened_rates(k_Ar38_p_to_K39_reaclib)*Y(Ar38)*Y(H1)*state.rho + -screened_rates(k_K39_to_p_Ar38_derived)*Y(K39)) + + (screened_rates(k_K38_n_to_K39_reaclib)*Y(K38)*Y(N)*state.rho + -screened_rates(k_K39_to_n_K38_derived)*Y(K39)) + + (-screened_rates(k_K39_n_to_K40_reaclib)*Y(K39)*Y(N)*state.rho + screened_rates(k_K40_to_n_K39_derived)*Y(K40)) + + (-screened_rates(k_K39_p_to_Ca40_reaclib)*Y(K39)*Y(H1)*state.rho + screened_rates(k_Ca40_to_p_K39_derived)*Y(Ca40)) + + (-screened_rates(k_K39_He4_to_Sc43_reaclib)*Y(He4)*Y(K39)*state.rho + screened_rates(k_Sc43_to_He4_K39_derived)*Y(Sc43)) + + (-screened_rates(k_K39_n_to_p_Ar39_reaclib)*Y(K39)*Y(N)*state.rho + screened_rates(k_Ar39_p_to_n_K39_derived)*Y(Ar39)*Y(H1)*state.rho) + + (-screened_rates(k_K39_n_to_He4_Cl36_reaclib)*Y(K39)*Y(N)*state.rho + screened_rates(k_Cl36_He4_to_n_K39_derived)*Y(Cl36)*Y(He4)*state.rho) + + (-screened_rates(k_K39_p_to_He4_Ar36_reaclib)*Y(K39)*Y(H1)*state.rho + screened_rates(k_Ar36_He4_to_p_K39_derived)*Y(Ar36)*Y(He4)*state.rho) + + (screened_rates(k_Ca42_p_to_He4_K39_reaclib)*Y(Ca42)*Y(H1)*state.rho + -screened_rates(k_K39_He4_to_p_Ca42_derived)*Y(He4)*Y(K39)*state.rho) + + (screened_rates(k_Ar39_to_K39_beta_neg_weaktab)*Y(Ar39) + -screened_rates(k_K39_to_Ar39_electron_capture_weaktab)*Y(K39)); ydot_nuc(K40) = - (screened_rates(k_He4_Cl36_to_K40_reaclib)*Y(Cl36)*Y(He4)*state.rho + -screened_rates(k_K40_to_He4_Cl36_reaclib)*Y(K40)) + - (screened_rates(k_p_Ar39_to_K40_reaclib)*Y(Ar39)*Y(H1)*state.rho + -screened_rates(k_K40_to_p_Ar39_reaclib)*Y(K40)) + - (screened_rates(k_n_K39_to_K40_reaclib)*Y(K39)*Y(N)*state.rho + -screened_rates(k_K40_to_n_K39_reaclib)*Y(K40)) + - (-screened_rates(k_n_K40_to_K41_reaclib)*Y(K40)*Y(N)*state.rho + screened_rates(k_K41_to_n_K40_reaclib)*Y(K41)) + - (-screened_rates(k_p_K40_to_Ca41_reaclib)*Y(K40)*Y(H1)*state.rho + screened_rates(k_Ca41_to_p_K40_reaclib)*Y(Ca41)) + - (-screened_rates(k_He4_K40_to_Sc44_reaclib)*Y(He4)*Y(K40)*state.rho + screened_rates(k_Sc44_to_He4_K40_reaclib)*Y(Sc44)) + - (-screened_rates(k_n_K40_to_p_Ar40_reaclib)*Y(K40)*Y(N)*state.rho + screened_rates(k_p_Ar40_to_n_K40_reaclib)*Y(Ar40)*Y(H1)*state.rho) + - (-screened_rates(k_n_K40_to_He4_Cl37_reaclib)*Y(K40)*Y(N)*state.rho + screened_rates(k_He4_Cl37_to_n_K40_reaclib)*Y(Cl37)*Y(He4)*state.rho) + - (-screened_rates(k_p_K40_to_n_Ca40_reaclib)*Y(K40)*Y(H1)*state.rho + screened_rates(k_n_Ca40_to_p_K40_reaclib)*Y(Ca40)*Y(N)*state.rho) + - (-screened_rates(k_p_K40_to_He4_Ar37_reaclib)*Y(K40)*Y(H1)*state.rho + screened_rates(k_He4_Ar37_to_p_K40_reaclib)*Y(Ar37)*Y(He4)*state.rho) + - (-screened_rates(k_He4_K40_to_p_Ca43_reaclib)*Y(He4)*Y(K40)*state.rho + screened_rates(k_p_Ca43_to_He4_K40_reaclib)*Y(Ca43)*Y(H1)*state.rho) + - (screened_rates(k_n_Sc43_to_He4_K40_reaclib)*Y(Sc43)*Y(N)*state.rho + -screened_rates(k_He4_K40_to_n_Sc43_reaclib)*Y(He4)*Y(K40)*state.rho) + - (-screened_rates(k_K40_to_Ar40_weaktab)*Y(K40) + screened_rates(k_Ar40_to_K40_weaktab)*Y(Ar40)) + - (-screened_rates(k_K40_to_Ca40_weaktab)*Y(K40) + screened_rates(k_Ca40_to_K40_weaktab)*Y(Ca40)); + (screened_rates(k_Cl36_He4_to_K40_reaclib)*Y(Cl36)*Y(He4)*state.rho + -screened_rates(k_K40_to_He4_Cl36_derived)*Y(K40)) + + (screened_rates(k_Ar39_p_to_K40_reaclib)*Y(Ar39)*Y(H1)*state.rho + -screened_rates(k_K40_to_p_Ar39_derived)*Y(K40)) + + (screened_rates(k_K39_n_to_K40_reaclib)*Y(K39)*Y(N)*state.rho + -screened_rates(k_K40_to_n_K39_derived)*Y(K40)) + + (-screened_rates(k_K40_n_to_K41_reaclib)*Y(K40)*Y(N)*state.rho + screened_rates(k_K41_to_n_K40_derived)*Y(K41)) + + (-screened_rates(k_K40_p_to_Ca41_reaclib)*Y(K40)*Y(H1)*state.rho + screened_rates(k_Ca41_to_p_K40_derived)*Y(Ca41)) + + (-screened_rates(k_K40_He4_to_Sc44_reaclib)*Y(He4)*Y(K40)*state.rho + screened_rates(k_Sc44_to_He4_K40_derived)*Y(Sc44)) + + (-screened_rates(k_K40_n_to_p_Ar40_reaclib)*Y(K40)*Y(N)*state.rho + screened_rates(k_Ar40_p_to_n_K40_derived)*Y(Ar40)*Y(H1)*state.rho) + + (-screened_rates(k_K40_n_to_He4_Cl37_reaclib)*Y(K40)*Y(N)*state.rho + screened_rates(k_Cl37_He4_to_n_K40_derived)*Y(Cl37)*Y(He4)*state.rho) + + (-screened_rates(k_K40_p_to_n_Ca40_reaclib)*Y(K40)*Y(H1)*state.rho + screened_rates(k_Ca40_n_to_p_K40_derived)*Y(Ca40)*Y(N)*state.rho) + + (-screened_rates(k_K40_p_to_He4_Ar37_reaclib)*Y(K40)*Y(H1)*state.rho + screened_rates(k_Ar37_He4_to_p_K40_derived)*Y(Ar37)*Y(He4)*state.rho) + + (-screened_rates(k_K40_He4_to_p_Ca43_reaclib)*Y(He4)*Y(K40)*state.rho + screened_rates(k_Ca43_p_to_He4_K40_derived)*Y(Ca43)*Y(H1)*state.rho) + + (screened_rates(k_Sc43_n_to_He4_K40_reaclib)*Y(Sc43)*Y(N)*state.rho + -screened_rates(k_K40_He4_to_n_Sc43_derived)*Y(He4)*Y(K40)*state.rho) + + (-screened_rates(k_K40_to_Ar40_electron_capture_weaktab)*Y(K40) + screened_rates(k_Ar40_to_K40_beta_neg_weaktab)*Y(Ar40)) + + (-screened_rates(k_K40_to_Ca40_beta_neg_weaktab)*Y(K40) + screened_rates(k_Ca40_to_K40_electron_capture_weaktab)*Y(Ca40)); ydot_nuc(K41) = - (screened_rates(k_He4_Cl37_to_K41_reaclib)*Y(Cl37)*Y(He4)*state.rho + -screened_rates(k_K41_to_He4_Cl37_reaclib)*Y(K41)) + - (screened_rates(k_p_Ar40_to_K41_reaclib)*Y(Ar40)*Y(H1)*state.rho + -screened_rates(k_K41_to_p_Ar40_reaclib)*Y(K41)) + - (screened_rates(k_n_K40_to_K41_reaclib)*Y(K40)*Y(N)*state.rho + -screened_rates(k_K41_to_n_K40_reaclib)*Y(K41)) + - (-screened_rates(k_p_K41_to_Ca42_reaclib)*Y(K41)*Y(H1)*state.rho + screened_rates(k_Ca42_to_p_K41_reaclib)*Y(Ca42)) + - (-screened_rates(k_He4_K41_to_Sc45_reaclib)*Y(He4)*Y(K41)*state.rho + screened_rates(k_Sc45_to_He4_K41_reaclib)*Y(Sc45)) + - (-screened_rates(k_p_K41_to_He4_Ar38_reaclib)*Y(K41)*Y(H1)*state.rho + screened_rates(k_He4_Ar38_to_p_K41_reaclib)*Y(Ar38)*Y(He4)*state.rho) + - (-screened_rates(k_He4_K41_to_p_Ca44_reaclib)*Y(He4)*Y(K41)*state.rho + screened_rates(k_p_Ca44_to_He4_K41_reaclib)*Y(Ca44)*Y(H1)*state.rho) + - (screened_rates(k_n_Ca41_to_p_K41_reaclib)*Y(Ca41)*Y(N)*state.rho + -screened_rates(k_p_K41_to_n_Ca41_reaclib)*Y(K41)*Y(H1)*state.rho) + - (screened_rates(k_n_Sc44_to_He4_K41_reaclib)*Y(Sc44)*Y(N)*state.rho + -screened_rates(k_He4_K41_to_n_Sc44_reaclib)*Y(He4)*Y(K41)*state.rho) + - (screened_rates(k_Ca41_to_K41_weaktab)*Y(Ca41) + -screened_rates(k_K41_to_Ca41_weaktab)*Y(K41)); + (screened_rates(k_Cl37_He4_to_K41_reaclib)*Y(Cl37)*Y(He4)*state.rho + -screened_rates(k_K41_to_He4_Cl37_derived)*Y(K41)) + + (screened_rates(k_Ar40_p_to_K41_reaclib)*Y(Ar40)*Y(H1)*state.rho + -screened_rates(k_K41_to_p_Ar40_derived)*Y(K41)) + + (screened_rates(k_K40_n_to_K41_reaclib)*Y(K40)*Y(N)*state.rho + -screened_rates(k_K41_to_n_K40_derived)*Y(K41)) + + (-screened_rates(k_K41_p_to_Ca42_reaclib)*Y(K41)*Y(H1)*state.rho + screened_rates(k_Ca42_to_p_K41_derived)*Y(Ca42)) + + (-screened_rates(k_K41_He4_to_Sc45_reaclib)*Y(He4)*Y(K41)*state.rho + screened_rates(k_Sc45_to_He4_K41_derived)*Y(Sc45)) + + (-screened_rates(k_K41_p_to_He4_Ar38_reaclib)*Y(K41)*Y(H1)*state.rho + screened_rates(k_Ar38_He4_to_p_K41_derived)*Y(Ar38)*Y(He4)*state.rho) + + (-screened_rates(k_K41_He4_to_p_Ca44_reaclib)*Y(He4)*Y(K41)*state.rho + screened_rates(k_Ca44_p_to_He4_K41_derived)*Y(Ca44)*Y(H1)*state.rho) + + (screened_rates(k_Ca41_to_K41_electron_capture_weaktab)*Y(Ca41) + -screened_rates(k_K41_to_Ca41_beta_neg_weaktab)*Y(K41)) + + (screened_rates(k_Ca41_n_to_p_K41_derived)*Y(Ca41)*Y(N)*state.rho + -screened_rates(k_K41_p_to_n_Ca41_reaclib)*Y(K41)*Y(H1)*state.rho) + + (screened_rates(k_Sc44_n_to_He4_K41_derived)*Y(Sc44)*Y(N)*state.rho + -screened_rates(k_K41_He4_to_n_Sc44_reaclib)*Y(He4)*Y(K41)*state.rho); ydot_nuc(Ca40) = - (screened_rates(k_He4_Ar36_to_Ca40_reaclib)*Y(Ar36)*Y(He4)*state.rho + -screened_rates(k_Ca40_to_He4_Ar36_reaclib)*Y(Ca40)) + - (screened_rates(k_p_K39_to_Ca40_reaclib)*Y(K39)*Y(H1)*state.rho + -screened_rates(k_Ca40_to_p_K39_reaclib)*Y(Ca40)) + - (-screened_rates(k_n_Ca40_to_Ca41_reaclib)*Y(Ca40)*Y(N)*state.rho + screened_rates(k_Ca41_to_n_Ca40_reaclib)*Y(Ca41)) + - (-screened_rates(k_He4_Ca40_to_Ti44_reaclib)*Y(Ca40)*Y(He4)*state.rho + screened_rates(k_Ti44_to_He4_Ca40_reaclib)*Y(Ti44)) + - (screened_rates(k_He4_K37_to_p_Ca40_reaclib)*Y(He4)*Y(K37)*state.rho + -screened_rates(k_p_Ca40_to_He4_K37_reaclib)*Y(Ca40)*Y(H1)*state.rho) + - (screened_rates(k_p_K40_to_n_Ca40_reaclib)*Y(K40)*Y(H1)*state.rho + -screened_rates(k_n_Ca40_to_p_K40_reaclib)*Y(Ca40)*Y(N)*state.rho) + - (-screened_rates(k_n_Ca40_to_He4_Ar37_reaclib)*Y(Ca40)*Y(N)*state.rho + screened_rates(k_He4_Ar37_to_n_Ca40_reaclib)*Y(Ar37)*Y(He4)*state.rho) + - (screened_rates(k_p_Sc43_to_He4_Ca40_reaclib)*Y(Sc43)*Y(H1)*state.rho + -screened_rates(k_He4_Ca40_to_p_Sc43_reaclib)*Y(Ca40)*Y(He4)*state.rho) + - (screened_rates(k_K40_to_Ca40_weaktab)*Y(K40) + -screened_rates(k_Ca40_to_K40_weaktab)*Y(Ca40)); + (screened_rates(k_Ar36_He4_to_Ca40_reaclib)*Y(Ar36)*Y(He4)*state.rho + -screened_rates(k_Ca40_to_He4_Ar36_derived)*Y(Ca40)) + + (screened_rates(k_K39_p_to_Ca40_reaclib)*Y(K39)*Y(H1)*state.rho + -screened_rates(k_Ca40_to_p_K39_derived)*Y(Ca40)) + + (-screened_rates(k_Ca40_n_to_Ca41_reaclib)*Y(Ca40)*Y(N)*state.rho + screened_rates(k_Ca41_to_n_Ca40_derived)*Y(Ca41)) + + (-screened_rates(k_Ca40_He4_to_Ti44_reaclib)*Y(Ca40)*Y(He4)*state.rho + screened_rates(k_Ti44_to_He4_Ca40_derived)*Y(Ti44)) + + (screened_rates(k_K37_He4_to_p_Ca40_reaclib)*Y(He4)*Y(K37)*state.rho + -screened_rates(k_Ca40_p_to_He4_K37_derived)*Y(Ca40)*Y(H1)*state.rho) + + (screened_rates(k_K40_p_to_n_Ca40_reaclib)*Y(K40)*Y(H1)*state.rho + -screened_rates(k_Ca40_n_to_p_K40_derived)*Y(Ca40)*Y(N)*state.rho) + + (-screened_rates(k_Ca40_n_to_He4_Ar37_reaclib)*Y(Ca40)*Y(N)*state.rho + screened_rates(k_Ar37_He4_to_n_Ca40_derived)*Y(Ar37)*Y(He4)*state.rho) + + (screened_rates(k_Sc43_p_to_He4_Ca40_reaclib)*Y(Sc43)*Y(H1)*state.rho + -screened_rates(k_Ca40_He4_to_p_Sc43_derived)*Y(Ca40)*Y(He4)*state.rho) + + (screened_rates(k_K40_to_Ca40_beta_neg_weaktab)*Y(K40) + -screened_rates(k_Ca40_to_K40_electron_capture_weaktab)*Y(Ca40)); ydot_nuc(Ca41) = - (screened_rates(k_He4_Ar37_to_Ca41_reaclib)*Y(Ar37)*Y(He4)*state.rho + -screened_rates(k_Ca41_to_He4_Ar37_reaclib)*Y(Ca41)) + - (screened_rates(k_p_K40_to_Ca41_reaclib)*Y(K40)*Y(H1)*state.rho + -screened_rates(k_Ca41_to_p_K40_reaclib)*Y(Ca41)) + - (screened_rates(k_n_Ca40_to_Ca41_reaclib)*Y(Ca40)*Y(N)*state.rho + -screened_rates(k_Ca41_to_n_Ca40_reaclib)*Y(Ca41)) + - (-screened_rates(k_n_Ca41_to_Ca42_reaclib)*Y(Ca41)*Y(N)*state.rho + screened_rates(k_Ca42_to_n_Ca41_reaclib)*Y(Ca42)) + - (-screened_rates(k_He4_Ca41_to_Ti45_reaclib)*Y(Ca41)*Y(He4)*state.rho + screened_rates(k_Ti45_to_He4_Ca41_reaclib)*Y(Ti45)) + - (screened_rates(k_He4_K38_to_p_Ca41_reaclib)*Y(He4)*Y(K38)*state.rho + -screened_rates(k_p_Ca41_to_He4_K38_reaclib)*Y(Ca41)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ca41_to_p_K41_reaclib)*Y(Ca41)*Y(N)*state.rho + screened_rates(k_p_K41_to_n_Ca41_reaclib)*Y(K41)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ca41_to_He4_Ar38_reaclib)*Y(Ca41)*Y(N)*state.rho + screened_rates(k_He4_Ar38_to_n_Ca41_reaclib)*Y(Ar38)*Y(He4)*state.rho) + - (screened_rates(k_p_Sc44_to_He4_Ca41_reaclib)*Y(Sc44)*Y(H1)*state.rho + -screened_rates(k_He4_Ca41_to_p_Sc44_reaclib)*Y(Ca41)*Y(He4)*state.rho) + - (screened_rates(k_n_Ti44_to_He4_Ca41_reaclib)*Y(Ti44)*Y(N)*state.rho + -screened_rates(k_He4_Ca41_to_n_Ti44_reaclib)*Y(Ca41)*Y(He4)*state.rho) + - (-screened_rates(k_Ca41_to_K41_weaktab)*Y(Ca41) + screened_rates(k_K41_to_Ca41_weaktab)*Y(K41)); + (screened_rates(k_Ar37_He4_to_Ca41_reaclib)*Y(Ar37)*Y(He4)*state.rho + -screened_rates(k_Ca41_to_He4_Ar37_derived)*Y(Ca41)) + + (screened_rates(k_K40_p_to_Ca41_reaclib)*Y(K40)*Y(H1)*state.rho + -screened_rates(k_Ca41_to_p_K40_derived)*Y(Ca41)) + + (screened_rates(k_Ca40_n_to_Ca41_reaclib)*Y(Ca40)*Y(N)*state.rho + -screened_rates(k_Ca41_to_n_Ca40_derived)*Y(Ca41)) + + (-screened_rates(k_Ca41_n_to_Ca42_reaclib)*Y(Ca41)*Y(N)*state.rho + screened_rates(k_Ca42_to_n_Ca41_derived)*Y(Ca42)) + + (-screened_rates(k_Ca41_He4_to_Ti45_reaclib)*Y(Ca41)*Y(He4)*state.rho + screened_rates(k_Ti45_to_He4_Ca41_derived)*Y(Ti45)) + + (screened_rates(k_K38_He4_to_p_Ca41_reaclib)*Y(He4)*Y(K38)*state.rho + -screened_rates(k_Ca41_p_to_He4_K38_derived)*Y(Ca41)*Y(H1)*state.rho) + + (-screened_rates(k_Ca41_n_to_He4_Ar38_reaclib)*Y(Ca41)*Y(N)*state.rho + screened_rates(k_Ar38_He4_to_n_Ca41_derived)*Y(Ar38)*Y(He4)*state.rho) + + (screened_rates(k_Sc44_p_to_He4_Ca41_reaclib)*Y(Sc44)*Y(H1)*state.rho + -screened_rates(k_Ca41_He4_to_p_Sc44_derived)*Y(Ca41)*Y(He4)*state.rho) + + (screened_rates(k_Ti44_n_to_He4_Ca41_reaclib)*Y(Ti44)*Y(N)*state.rho + -screened_rates(k_Ca41_He4_to_n_Ti44_derived)*Y(Ca41)*Y(He4)*state.rho) + + (-screened_rates(k_Ca41_to_K41_electron_capture_weaktab)*Y(Ca41) + screened_rates(k_K41_to_Ca41_beta_neg_weaktab)*Y(K41)) + + (-screened_rates(k_Ca41_n_to_p_K41_derived)*Y(Ca41)*Y(N)*state.rho + screened_rates(k_K41_p_to_n_Ca41_reaclib)*Y(K41)*Y(H1)*state.rho); ydot_nuc(Ca42) = - (screened_rates(k_He4_Ar38_to_Ca42_reaclib)*Y(Ar38)*Y(He4)*state.rho + -screened_rates(k_Ca42_to_He4_Ar38_reaclib)*Y(Ca42)) + - (screened_rates(k_p_K41_to_Ca42_reaclib)*Y(K41)*Y(H1)*state.rho + -screened_rates(k_Ca42_to_p_K41_reaclib)*Y(Ca42)) + - (screened_rates(k_n_Ca41_to_Ca42_reaclib)*Y(Ca41)*Y(N)*state.rho + -screened_rates(k_Ca42_to_n_Ca41_reaclib)*Y(Ca42)) + - (-screened_rates(k_n_Ca42_to_Ca43_reaclib)*Y(Ca42)*Y(N)*state.rho + screened_rates(k_Ca43_to_n_Ca42_reaclib)*Y(Ca43)) + - (-screened_rates(k_p_Ca42_to_Sc43_reaclib)*Y(Ca42)*Y(H1)*state.rho + screened_rates(k_Sc43_to_p_Ca42_reaclib)*Y(Sc43)) + - (-screened_rates(k_He4_Ca42_to_Ti46_reaclib)*Y(Ca42)*Y(He4)*state.rho + screened_rates(k_Ti46_to_He4_Ca42_reaclib)*Y(Ti46)) + - (-screened_rates(k_n_Ca42_to_He4_Ar39_reaclib)*Y(Ca42)*Y(N)*state.rho + screened_rates(k_He4_Ar39_to_n_Ca42_reaclib)*Y(Ar39)*Y(He4)*state.rho) + - (-screened_rates(k_p_Ca42_to_He4_K39_reaclib)*Y(Ca42)*Y(H1)*state.rho + screened_rates(k_He4_K39_to_p_Ca42_reaclib)*Y(He4)*Y(K39)*state.rho) + - (screened_rates(k_p_Sc45_to_He4_Ca42_reaclib)*Y(Sc45)*Y(H1)*state.rho + -screened_rates(k_He4_Ca42_to_p_Sc45_reaclib)*Y(Ca42)*Y(He4)*state.rho) + - (screened_rates(k_n_Ti45_to_He4_Ca42_reaclib)*Y(Ti45)*Y(N)*state.rho + -screened_rates(k_He4_Ca42_to_n_Ti45_reaclib)*Y(Ca42)*Y(He4)*state.rho); + (screened_rates(k_Ar38_He4_to_Ca42_reaclib)*Y(Ar38)*Y(He4)*state.rho + -screened_rates(k_Ca42_to_He4_Ar38_derived)*Y(Ca42)) + + (screened_rates(k_K41_p_to_Ca42_reaclib)*Y(K41)*Y(H1)*state.rho + -screened_rates(k_Ca42_to_p_K41_derived)*Y(Ca42)) + + (screened_rates(k_Ca41_n_to_Ca42_reaclib)*Y(Ca41)*Y(N)*state.rho + -screened_rates(k_Ca42_to_n_Ca41_derived)*Y(Ca42)) + + (-screened_rates(k_Ca42_n_to_Ca43_reaclib)*Y(Ca42)*Y(N)*state.rho + screened_rates(k_Ca43_to_n_Ca42_derived)*Y(Ca43)) + + (-screened_rates(k_Ca42_p_to_Sc43_reaclib)*Y(Ca42)*Y(H1)*state.rho + screened_rates(k_Sc43_to_p_Ca42_derived)*Y(Sc43)) + + (-screened_rates(k_Ca42_He4_to_Ti46_reaclib)*Y(Ca42)*Y(He4)*state.rho + screened_rates(k_Ti46_to_He4_Ca42_derived)*Y(Ti46)) + + (-screened_rates(k_Ca42_n_to_He4_Ar39_reaclib)*Y(Ca42)*Y(N)*state.rho + screened_rates(k_Ar39_He4_to_n_Ca42_derived)*Y(Ar39)*Y(He4)*state.rho) + + (-screened_rates(k_Ca42_p_to_He4_K39_reaclib)*Y(Ca42)*Y(H1)*state.rho + screened_rates(k_K39_He4_to_p_Ca42_derived)*Y(He4)*Y(K39)*state.rho) + + (screened_rates(k_Sc45_p_to_He4_Ca42_reaclib)*Y(Sc45)*Y(H1)*state.rho + -screened_rates(k_Ca42_He4_to_p_Sc45_derived)*Y(Ca42)*Y(He4)*state.rho) + + (screened_rates(k_Ti45_n_to_He4_Ca42_reaclib)*Y(Ti45)*Y(N)*state.rho + -screened_rates(k_Ca42_He4_to_n_Ti45_derived)*Y(Ca42)*Y(He4)*state.rho); ydot_nuc(Ca43) = - (screened_rates(k_He4_Ar39_to_Ca43_reaclib)*Y(Ar39)*Y(He4)*state.rho + -screened_rates(k_Ca43_to_He4_Ar39_reaclib)*Y(Ca43)) + - (screened_rates(k_n_Ca42_to_Ca43_reaclib)*Y(Ca42)*Y(N)*state.rho + -screened_rates(k_Ca43_to_n_Ca42_reaclib)*Y(Ca43)) + - (-screened_rates(k_n_Ca43_to_Ca44_reaclib)*Y(Ca43)*Y(N)*state.rho + screened_rates(k_Ca44_to_n_Ca43_reaclib)*Y(Ca44)) + - (-screened_rates(k_p_Ca43_to_Sc44_reaclib)*Y(Ca43)*Y(H1)*state.rho + screened_rates(k_Sc44_to_p_Ca43_reaclib)*Y(Sc44)) + - (-screened_rates(k_He4_Ca43_to_Ti47_reaclib)*Y(Ca43)*Y(He4)*state.rho + screened_rates(k_Ti47_to_He4_Ca43_reaclib)*Y(Ti47)) + - (screened_rates(k_He4_K40_to_p_Ca43_reaclib)*Y(He4)*Y(K40)*state.rho + -screened_rates(k_p_Ca43_to_He4_K40_reaclib)*Y(Ca43)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ca43_to_He4_Ar40_reaclib)*Y(Ca43)*Y(N)*state.rho + screened_rates(k_He4_Ar40_to_n_Ca43_reaclib)*Y(Ar40)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Ca43_to_n_Ti46_reaclib)*Y(Ca43)*Y(He4)*state.rho + screened_rates(k_n_Ti46_to_He4_Ca43_reaclib)*Y(Ti46)*Y(N)*state.rho) + - (screened_rates(k_n_Sc43_to_p_Ca43_reaclib)*Y(Sc43)*Y(N)*state.rho + -screened_rates(k_p_Ca43_to_n_Sc43_reaclib)*Y(Ca43)*Y(H1)*state.rho) + - (screened_rates(k_p_Sc46_to_He4_Ca43_reaclib)*Y(Sc46)*Y(H1)*state.rho + -screened_rates(k_He4_Ca43_to_p_Sc46_reaclib)*Y(Ca43)*Y(He4)*state.rho) + - (screened_rates(k_Sc43_to_Ca43_weaktab)*Y(Sc43) + -screened_rates(k_Ca43_to_Sc43_weaktab)*Y(Ca43)); + (screened_rates(k_Ar39_He4_to_Ca43_reaclib)*Y(Ar39)*Y(He4)*state.rho + -screened_rates(k_Ca43_to_He4_Ar39_derived)*Y(Ca43)) + + (screened_rates(k_Ca42_n_to_Ca43_reaclib)*Y(Ca42)*Y(N)*state.rho + -screened_rates(k_Ca43_to_n_Ca42_derived)*Y(Ca43)) + + (-screened_rates(k_Ca43_n_to_Ca44_reaclib)*Y(Ca43)*Y(N)*state.rho + screened_rates(k_Ca44_to_n_Ca43_derived)*Y(Ca44)) + + (-screened_rates(k_Ca43_p_to_Sc44_reaclib)*Y(Ca43)*Y(H1)*state.rho + screened_rates(k_Sc44_to_p_Ca43_derived)*Y(Sc44)) + + (-screened_rates(k_Ca43_He4_to_Ti47_reaclib)*Y(Ca43)*Y(He4)*state.rho + screened_rates(k_Ti47_to_He4_Ca43_derived)*Y(Ti47)) + + (screened_rates(k_K40_He4_to_p_Ca43_reaclib)*Y(He4)*Y(K40)*state.rho + -screened_rates(k_Ca43_p_to_He4_K40_derived)*Y(Ca43)*Y(H1)*state.rho) + + (-screened_rates(k_Ca43_n_to_He4_Ar40_reaclib)*Y(Ca43)*Y(N)*state.rho + screened_rates(k_Ar40_He4_to_n_Ca43_derived)*Y(Ar40)*Y(He4)*state.rho) + + (-screened_rates(k_Ca43_He4_to_n_Ti46_reaclib)*Y(Ca43)*Y(He4)*state.rho + screened_rates(k_Ti46_n_to_He4_Ca43_derived)*Y(Ti46)*Y(N)*state.rho) + + (screened_rates(k_Sc43_n_to_p_Ca43_reaclib)*Y(Sc43)*Y(N)*state.rho + -screened_rates(k_Ca43_p_to_n_Sc43_derived)*Y(Ca43)*Y(H1)*state.rho) + + (screened_rates(k_Sc46_p_to_He4_Ca43_reaclib)*Y(Sc46)*Y(H1)*state.rho + -screened_rates(k_Ca43_He4_to_p_Sc46_derived)*Y(Ca43)*Y(He4)*state.rho) + + (screened_rates(k_Sc43_to_Ca43_electron_capture_weaktab)*Y(Sc43) + -screened_rates(k_Ca43_to_Sc43_beta_neg_weaktab)*Y(Ca43)); ydot_nuc(Ca44) = - (screened_rates(k_He4_Ar40_to_Ca44_reaclib)*Y(Ar40)*Y(He4)*state.rho + -screened_rates(k_Ca44_to_He4_Ar40_reaclib)*Y(Ca44)) + - (screened_rates(k_n_Ca43_to_Ca44_reaclib)*Y(Ca43)*Y(N)*state.rho + -screened_rates(k_Ca44_to_n_Ca43_reaclib)*Y(Ca44)) + - (-screened_rates(k_n_Ca44_to_Ca45_reaclib)*Y(Ca44)*Y(N)*state.rho + screened_rates(k_Ca45_to_n_Ca44_reaclib)*Y(Ca45)) + - (-screened_rates(k_p_Ca44_to_Sc45_reaclib)*Y(Ca44)*Y(H1)*state.rho + screened_rates(k_Sc45_to_p_Ca44_reaclib)*Y(Sc45)) + - (-screened_rates(k_He4_Ca44_to_Ti48_reaclib)*Y(Ca44)*Y(He4)*state.rho + screened_rates(k_Ti48_to_He4_Ca44_reaclib)*Y(Ti48)) + - (screened_rates(k_He4_K41_to_p_Ca44_reaclib)*Y(He4)*Y(K41)*state.rho + -screened_rates(k_p_Ca44_to_He4_K41_reaclib)*Y(Ca44)*Y(H1)*state.rho) + - (screened_rates(k_n_Sc44_to_p_Ca44_reaclib)*Y(Sc44)*Y(N)*state.rho + -screened_rates(k_p_Ca44_to_n_Sc44_reaclib)*Y(Ca44)*Y(H1)*state.rho) + - (screened_rates(k_p_Sc47_to_He4_Ca44_reaclib)*Y(Sc47)*Y(H1)*state.rho + -screened_rates(k_He4_Ca44_to_p_Sc47_reaclib)*Y(Ca44)*Y(He4)*state.rho) + - (screened_rates(k_n_Ti47_to_He4_Ca44_reaclib)*Y(Ti47)*Y(N)*state.rho + -screened_rates(k_He4_Ca44_to_n_Ti47_reaclib)*Y(Ca44)*Y(He4)*state.rho) + - (screened_rates(k_Sc44_to_Ca44_weaktab)*Y(Sc44) + -screened_rates(k_Ca44_to_Sc44_weaktab)*Y(Ca44)); + (screened_rates(k_Ar40_He4_to_Ca44_reaclib)*Y(Ar40)*Y(He4)*state.rho + -screened_rates(k_Ca44_to_He4_Ar40_derived)*Y(Ca44)) + + (screened_rates(k_Ca43_n_to_Ca44_reaclib)*Y(Ca43)*Y(N)*state.rho + -screened_rates(k_Ca44_to_n_Ca43_derived)*Y(Ca44)) + + (-screened_rates(k_Ca44_n_to_Ca45_reaclib)*Y(Ca44)*Y(N)*state.rho + screened_rates(k_Ca45_to_n_Ca44_derived)*Y(Ca45)) + + (-screened_rates(k_Ca44_p_to_Sc45_reaclib)*Y(Ca44)*Y(H1)*state.rho + screened_rates(k_Sc45_to_p_Ca44_derived)*Y(Sc45)) + + (-screened_rates(k_Ca44_He4_to_Ti48_reaclib)*Y(Ca44)*Y(He4)*state.rho + screened_rates(k_Ti48_to_He4_Ca44_derived)*Y(Ti48)) + + (screened_rates(k_K41_He4_to_p_Ca44_reaclib)*Y(He4)*Y(K41)*state.rho + -screened_rates(k_Ca44_p_to_He4_K41_derived)*Y(Ca44)*Y(H1)*state.rho) + + (screened_rates(k_Sc44_n_to_p_Ca44_reaclib)*Y(Sc44)*Y(N)*state.rho + -screened_rates(k_Ca44_p_to_n_Sc44_derived)*Y(Ca44)*Y(H1)*state.rho) + + (screened_rates(k_Sc47_p_to_He4_Ca44_reaclib)*Y(Sc47)*Y(H1)*state.rho + -screened_rates(k_Ca44_He4_to_p_Sc47_derived)*Y(Ca44)*Y(He4)*state.rho) + + (screened_rates(k_Ti47_n_to_He4_Ca44_reaclib)*Y(Ti47)*Y(N)*state.rho + -screened_rates(k_Ca44_He4_to_n_Ti47_derived)*Y(Ca44)*Y(He4)*state.rho) + + (screened_rates(k_Sc44_to_Ca44_electron_capture_weaktab)*Y(Sc44) + -screened_rates(k_Ca44_to_Sc44_beta_neg_weaktab)*Y(Ca44)); ydot_nuc(Ca45) = - (screened_rates(k_n_Ca44_to_Ca45_reaclib)*Y(Ca44)*Y(N)*state.rho + -screened_rates(k_Ca45_to_n_Ca44_reaclib)*Y(Ca45)) + - (-screened_rates(k_n_Ca45_to_Ca46_reaclib)*Y(Ca45)*Y(N)*state.rho + screened_rates(k_Ca46_to_n_Ca45_reaclib)*Y(Ca46)) + - (-screened_rates(k_p_Ca45_to_Sc46_reaclib)*Y(Ca45)*Y(H1)*state.rho + screened_rates(k_Sc46_to_p_Ca45_reaclib)*Y(Sc46)) + - (-screened_rates(k_He4_Ca45_to_Ti49_reaclib)*Y(Ca45)*Y(He4)*state.rho + screened_rates(k_Ti49_to_He4_Ca45_reaclib)*Y(Ti49)) + - (-screened_rates(k_He4_Ca45_to_n_Ti48_reaclib)*Y(Ca45)*Y(He4)*state.rho + screened_rates(k_n_Ti48_to_He4_Ca45_reaclib)*Y(Ti48)*Y(N)*state.rho) + - (screened_rates(k_n_Sc45_to_p_Ca45_reaclib)*Y(Sc45)*Y(N)*state.rho + -screened_rates(k_p_Ca45_to_n_Sc45_reaclib)*Y(Ca45)*Y(H1)*state.rho) + - (screened_rates(k_p_Sc48_to_He4_Ca45_reaclib)*Y(Sc48)*Y(H1)*state.rho + -screened_rates(k_He4_Ca45_to_p_Sc48_reaclib)*Y(Ca45)*Y(He4)*state.rho) + - (-screened_rates(k_Ca45_to_Sc45_weaktab)*Y(Ca45) + screened_rates(k_Sc45_to_Ca45_weaktab)*Y(Sc45)); + (screened_rates(k_Ca44_n_to_Ca45_reaclib)*Y(Ca44)*Y(N)*state.rho + -screened_rates(k_Ca45_to_n_Ca44_derived)*Y(Ca45)) + + (-screened_rates(k_Ca45_n_to_Ca46_reaclib)*Y(Ca45)*Y(N)*state.rho + screened_rates(k_Ca46_to_n_Ca45_derived)*Y(Ca46)) + + (-screened_rates(k_Ca45_p_to_Sc46_reaclib)*Y(Ca45)*Y(H1)*state.rho + screened_rates(k_Sc46_to_p_Ca45_derived)*Y(Sc46)) + + (-screened_rates(k_Ca45_He4_to_Ti49_reaclib)*Y(Ca45)*Y(He4)*state.rho + screened_rates(k_Ti49_to_He4_Ca45_derived)*Y(Ti49)) + + (-screened_rates(k_Ca45_He4_to_n_Ti48_reaclib)*Y(Ca45)*Y(He4)*state.rho + screened_rates(k_Ti48_n_to_He4_Ca45_derived)*Y(Ti48)*Y(N)*state.rho) + + (screened_rates(k_Sc45_n_to_p_Ca45_reaclib)*Y(Sc45)*Y(N)*state.rho + -screened_rates(k_Ca45_p_to_n_Sc45_derived)*Y(Ca45)*Y(H1)*state.rho) + + (screened_rates(k_Sc48_p_to_He4_Ca45_reaclib)*Y(Sc48)*Y(H1)*state.rho + -screened_rates(k_Ca45_He4_to_p_Sc48_derived)*Y(Ca45)*Y(He4)*state.rho) + + (-screened_rates(k_Ca45_to_Sc45_beta_neg_weaktab)*Y(Ca45) + screened_rates(k_Sc45_to_Ca45_electron_capture_weaktab)*Y(Sc45)); ydot_nuc(Ca46) = - (screened_rates(k_n_Ca45_to_Ca46_reaclib)*Y(Ca45)*Y(N)*state.rho + -screened_rates(k_Ca46_to_n_Ca45_reaclib)*Y(Ca46)) + - (-screened_rates(k_n_Ca46_to_Ca47_reaclib)*Y(Ca46)*Y(N)*state.rho + screened_rates(k_Ca47_to_n_Ca46_reaclib)*Y(Ca47)) + - (-screened_rates(k_p_Ca46_to_Sc47_reaclib)*Y(Ca46)*Y(H1)*state.rho + screened_rates(k_Sc47_to_p_Ca46_reaclib)*Y(Sc47)) + - (-screened_rates(k_He4_Ca46_to_Ti50_reaclib)*Y(Ca46)*Y(He4)*state.rho + screened_rates(k_Ti50_to_He4_Ca46_reaclib)*Y(Ti50)) + - (screened_rates(k_n_Sc46_to_p_Ca46_reaclib)*Y(Sc46)*Y(N)*state.rho + -screened_rates(k_p_Ca46_to_n_Sc46_reaclib)*Y(Ca46)*Y(H1)*state.rho) + - (screened_rates(k_p_Sc49_to_He4_Ca46_reaclib)*Y(Sc49)*Y(H1)*state.rho + -screened_rates(k_He4_Ca46_to_p_Sc49_reaclib)*Y(Ca46)*Y(He4)*state.rho) + - (screened_rates(k_n_Ti49_to_He4_Ca46_reaclib)*Y(Ti49)*Y(N)*state.rho + -screened_rates(k_He4_Ca46_to_n_Ti49_reaclib)*Y(Ca46)*Y(He4)*state.rho) + - (screened_rates(k_Sc46_to_Ca46_weaktab)*Y(Sc46) + -screened_rates(k_Ca46_to_Sc46_weaktab)*Y(Ca46)); + (screened_rates(k_Ca45_n_to_Ca46_reaclib)*Y(Ca45)*Y(N)*state.rho + -screened_rates(k_Ca46_to_n_Ca45_derived)*Y(Ca46)) + + (-screened_rates(k_Ca46_n_to_Ca47_reaclib)*Y(Ca46)*Y(N)*state.rho + screened_rates(k_Ca47_to_n_Ca46_derived)*Y(Ca47)) + + (-screened_rates(k_Ca46_p_to_Sc47_reaclib)*Y(Ca46)*Y(H1)*state.rho + screened_rates(k_Sc47_to_p_Ca46_derived)*Y(Sc47)) + + (-screened_rates(k_Ca46_He4_to_Ti50_reaclib)*Y(Ca46)*Y(He4)*state.rho + screened_rates(k_Ti50_to_He4_Ca46_derived)*Y(Ti50)) + + (screened_rates(k_Sc46_n_to_p_Ca46_reaclib)*Y(Sc46)*Y(N)*state.rho + -screened_rates(k_Ca46_p_to_n_Sc46_derived)*Y(Ca46)*Y(H1)*state.rho) + + (screened_rates(k_Sc49_p_to_He4_Ca46_reaclib)*Y(Sc49)*Y(H1)*state.rho + -screened_rates(k_Ca46_He4_to_p_Sc49_derived)*Y(Ca46)*Y(He4)*state.rho) + + (screened_rates(k_Ti49_n_to_He4_Ca46_reaclib)*Y(Ti49)*Y(N)*state.rho + -screened_rates(k_Ca46_He4_to_n_Ti49_derived)*Y(Ca46)*Y(He4)*state.rho) + + (screened_rates(k_Sc46_to_Ca46_electron_capture_weaktab)*Y(Sc46) + -screened_rates(k_Ca46_to_Sc46_beta_neg_weaktab)*Y(Ca46)); ydot_nuc(Ca47) = - (screened_rates(k_n_Ca46_to_Ca47_reaclib)*Y(Ca46)*Y(N)*state.rho + -screened_rates(k_Ca47_to_n_Ca46_reaclib)*Y(Ca47)) + - (-screened_rates(k_n_Ca47_to_Ca48_reaclib)*Y(Ca47)*Y(N)*state.rho + screened_rates(k_Ca48_to_n_Ca47_reaclib)*Y(Ca48)) + - (-screened_rates(k_p_Ca47_to_Sc48_reaclib)*Y(Ca47)*Y(H1)*state.rho + screened_rates(k_Sc48_to_p_Ca47_reaclib)*Y(Sc48)) + - (-screened_rates(k_He4_Ca47_to_Ti51_reaclib)*Y(Ca47)*Y(He4)*state.rho + screened_rates(k_Ti51_to_He4_Ca47_reaclib)*Y(Ti51)) + - (-screened_rates(k_p_Ca47_to_n_Sc47_reaclib)*Y(Ca47)*Y(H1)*state.rho + screened_rates(k_n_Sc47_to_p_Ca47_reaclib)*Y(Sc47)*Y(N)*state.rho) + - (-screened_rates(k_He4_Ca47_to_n_Ti50_reaclib)*Y(Ca47)*Y(He4)*state.rho + screened_rates(k_n_Ti50_to_He4_Ca47_reaclib)*Y(Ti50)*Y(N)*state.rho) + - (-screened_rates(k_Ca47_to_Sc47_weaktab)*Y(Ca47) + screened_rates(k_Sc47_to_Ca47_weaktab)*Y(Sc47)); + (screened_rates(k_Ca46_n_to_Ca47_reaclib)*Y(Ca46)*Y(N)*state.rho + -screened_rates(k_Ca47_to_n_Ca46_derived)*Y(Ca47)) + + (-screened_rates(k_Ca47_n_to_Ca48_reaclib)*Y(Ca47)*Y(N)*state.rho + screened_rates(k_Ca48_to_n_Ca47_derived)*Y(Ca48)) + + (-screened_rates(k_Ca47_p_to_Sc48_reaclib)*Y(Ca47)*Y(H1)*state.rho + screened_rates(k_Sc48_to_p_Ca47_derived)*Y(Sc48)) + + (-screened_rates(k_Ca47_He4_to_Ti51_reaclib)*Y(Ca47)*Y(He4)*state.rho + screened_rates(k_Ti51_to_He4_Ca47_derived)*Y(Ti51)) + + (-screened_rates(k_Ca47_p_to_n_Sc47_reaclib)*Y(Ca47)*Y(H1)*state.rho + screened_rates(k_Sc47_n_to_p_Ca47_derived)*Y(Sc47)*Y(N)*state.rho) + + (-screened_rates(k_Ca47_He4_to_n_Ti50_reaclib)*Y(Ca47)*Y(He4)*state.rho + screened_rates(k_Ti50_n_to_He4_Ca47_derived)*Y(Ti50)*Y(N)*state.rho) + + (-screened_rates(k_Ca47_to_Sc47_beta_neg_weaktab)*Y(Ca47) + screened_rates(k_Sc47_to_Ca47_electron_capture_weaktab)*Y(Sc47)); ydot_nuc(Ca48) = - (screened_rates(k_n_Ca47_to_Ca48_reaclib)*Y(Ca47)*Y(N)*state.rho + -screened_rates(k_Ca48_to_n_Ca47_reaclib)*Y(Ca48)) + - (-screened_rates(k_p_Ca48_to_Sc49_reaclib)*Y(Ca48)*Y(H1)*state.rho + screened_rates(k_Sc49_to_p_Ca48_reaclib)*Y(Sc49)) + - (screened_rates(k_n_Sc48_to_p_Ca48_reaclib)*Y(Sc48)*Y(N)*state.rho + -screened_rates(k_p_Ca48_to_n_Sc48_reaclib)*Y(Ca48)*Y(H1)*state.rho) + - (screened_rates(k_n_Ti51_to_He4_Ca48_reaclib)*Y(Ti51)*Y(N)*state.rho + -screened_rates(k_He4_Ca48_to_n_Ti51_reaclib)*Y(Ca48)*Y(He4)*state.rho) + - (-screened_rates(k_Ca48_to_Sc48_weaktab)*Y(Ca48) + screened_rates(k_Sc48_to_Ca48_weaktab)*Y(Sc48)); + (screened_rates(k_Ca47_n_to_Ca48_reaclib)*Y(Ca47)*Y(N)*state.rho + -screened_rates(k_Ca48_to_n_Ca47_derived)*Y(Ca48)) + + (-screened_rates(k_Ca48_p_to_Sc49_reaclib)*Y(Ca48)*Y(H1)*state.rho + screened_rates(k_Sc49_to_p_Ca48_derived)*Y(Sc49)) + + (screened_rates(k_Sc48_n_to_p_Ca48_reaclib)*Y(Sc48)*Y(N)*state.rho + -screened_rates(k_Ca48_p_to_n_Sc48_derived)*Y(Ca48)*Y(H1)*state.rho) + + (screened_rates(k_Ti51_n_to_He4_Ca48_reaclib)*Y(Ti51)*Y(N)*state.rho + -screened_rates(k_Ca48_He4_to_n_Ti51_derived)*Y(Ca48)*Y(He4)*state.rho) + + (-screened_rates(k_Ca48_to_Sc48_beta_neg_weaktab)*Y(Ca48) + screened_rates(k_Sc48_to_Ca48_electron_capture_weaktab)*Y(Sc48)); ydot_nuc(Sc43) = - (screened_rates(k_He4_K39_to_Sc43_reaclib)*Y(He4)*Y(K39)*state.rho + -screened_rates(k_Sc43_to_He4_K39_reaclib)*Y(Sc43)) + - (screened_rates(k_p_Ca42_to_Sc43_reaclib)*Y(Ca42)*Y(H1)*state.rho + -screened_rates(k_Sc43_to_p_Ca42_reaclib)*Y(Sc43)) + - (-screened_rates(k_n_Sc43_to_Sc44_reaclib)*Y(Sc43)*Y(N)*state.rho + screened_rates(k_Sc44_to_n_Sc43_reaclib)*Y(Sc44)) + - (-screened_rates(k_p_Sc43_to_Ti44_reaclib)*Y(Sc43)*Y(H1)*state.rho + screened_rates(k_Ti44_to_p_Sc43_reaclib)*Y(Ti44)) + - (-screened_rates(k_He4_Sc43_to_V47_reaclib)*Y(He4)*Y(Sc43)*state.rho + screened_rates(k_V47_to_He4_Sc43_reaclib)*Y(V47)) + - (-screened_rates(k_n_Sc43_to_p_Ca43_reaclib)*Y(Sc43)*Y(N)*state.rho + screened_rates(k_p_Ca43_to_n_Sc43_reaclib)*Y(Ca43)*Y(H1)*state.rho) + - (-screened_rates(k_n_Sc43_to_He4_K40_reaclib)*Y(Sc43)*Y(N)*state.rho + screened_rates(k_He4_K40_to_n_Sc43_reaclib)*Y(He4)*Y(K40)*state.rho) + - (-screened_rates(k_p_Sc43_to_He4_Ca40_reaclib)*Y(Sc43)*Y(H1)*state.rho + screened_rates(k_He4_Ca40_to_p_Sc43_reaclib)*Y(Ca40)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Sc43_to_p_Ti46_reaclib)*Y(He4)*Y(Sc43)*state.rho + screened_rates(k_p_Ti46_to_He4_Sc43_reaclib)*Y(Ti46)*Y(H1)*state.rho) + - (screened_rates(k_n_V46_to_He4_Sc43_reaclib)*Y(V46)*Y(N)*state.rho + -screened_rates(k_He4_Sc43_to_n_V46_reaclib)*Y(He4)*Y(Sc43)*state.rho) + - (-screened_rates(k_Sc43_to_Ca43_weaktab)*Y(Sc43) + screened_rates(k_Ca43_to_Sc43_weaktab)*Y(Ca43)); + (screened_rates(k_K39_He4_to_Sc43_reaclib)*Y(He4)*Y(K39)*state.rho + -screened_rates(k_Sc43_to_He4_K39_derived)*Y(Sc43)) + + (screened_rates(k_Ca42_p_to_Sc43_reaclib)*Y(Ca42)*Y(H1)*state.rho + -screened_rates(k_Sc43_to_p_Ca42_derived)*Y(Sc43)) + + (-screened_rates(k_Sc43_n_to_Sc44_reaclib)*Y(Sc43)*Y(N)*state.rho + screened_rates(k_Sc44_to_n_Sc43_derived)*Y(Sc44)) + + (-screened_rates(k_Sc43_p_to_Ti44_reaclib)*Y(Sc43)*Y(H1)*state.rho + screened_rates(k_Ti44_to_p_Sc43_derived)*Y(Ti44)) + + (-screened_rates(k_Sc43_He4_to_V47_reaclib)*Y(He4)*Y(Sc43)*state.rho + screened_rates(k_V47_to_He4_Sc43_derived)*Y(V47)) + + (-screened_rates(k_Sc43_n_to_p_Ca43_reaclib)*Y(Sc43)*Y(N)*state.rho + screened_rates(k_Ca43_p_to_n_Sc43_derived)*Y(Ca43)*Y(H1)*state.rho) + + (-screened_rates(k_Sc43_n_to_He4_K40_reaclib)*Y(Sc43)*Y(N)*state.rho + screened_rates(k_K40_He4_to_n_Sc43_derived)*Y(He4)*Y(K40)*state.rho) + + (-screened_rates(k_Sc43_p_to_He4_Ca40_reaclib)*Y(Sc43)*Y(H1)*state.rho + screened_rates(k_Ca40_He4_to_p_Sc43_derived)*Y(Ca40)*Y(He4)*state.rho) + + (-screened_rates(k_Sc43_He4_to_p_Ti46_reaclib)*Y(He4)*Y(Sc43)*state.rho + screened_rates(k_Ti46_p_to_He4_Sc43_derived)*Y(Ti46)*Y(H1)*state.rho) + + (screened_rates(k_V46_n_to_He4_Sc43_reaclib)*Y(V46)*Y(N)*state.rho + -screened_rates(k_Sc43_He4_to_n_V46_derived)*Y(He4)*Y(Sc43)*state.rho) + + (-screened_rates(k_Sc43_to_Ca43_electron_capture_weaktab)*Y(Sc43) + screened_rates(k_Ca43_to_Sc43_beta_neg_weaktab)*Y(Ca43)); ydot_nuc(Sc44) = - (screened_rates(k_He4_K40_to_Sc44_reaclib)*Y(He4)*Y(K40)*state.rho + -screened_rates(k_Sc44_to_He4_K40_reaclib)*Y(Sc44)) + - (screened_rates(k_p_Ca43_to_Sc44_reaclib)*Y(Ca43)*Y(H1)*state.rho + -screened_rates(k_Sc44_to_p_Ca43_reaclib)*Y(Sc44)) + - (screened_rates(k_n_Sc43_to_Sc44_reaclib)*Y(Sc43)*Y(N)*state.rho + -screened_rates(k_Sc44_to_n_Sc43_reaclib)*Y(Sc44)) + - (-screened_rates(k_n_Sc44_to_Sc45_reaclib)*Y(Sc44)*Y(N)*state.rho + screened_rates(k_Sc45_to_n_Sc44_reaclib)*Y(Sc45)) + - (-screened_rates(k_p_Sc44_to_Ti45_reaclib)*Y(Sc44)*Y(H1)*state.rho + screened_rates(k_Ti45_to_p_Sc44_reaclib)*Y(Ti45)) + - (-screened_rates(k_He4_Sc44_to_V48_reaclib)*Y(He4)*Y(Sc44)*state.rho + screened_rates(k_V48_to_He4_Sc44_reaclib)*Y(V48)) + - (-screened_rates(k_n_Sc44_to_p_Ca44_reaclib)*Y(Sc44)*Y(N)*state.rho + screened_rates(k_p_Ca44_to_n_Sc44_reaclib)*Y(Ca44)*Y(H1)*state.rho) + - (-screened_rates(k_n_Sc44_to_He4_K41_reaclib)*Y(Sc44)*Y(N)*state.rho + screened_rates(k_He4_K41_to_n_Sc44_reaclib)*Y(He4)*Y(K41)*state.rho) + - (-screened_rates(k_p_Sc44_to_He4_Ca41_reaclib)*Y(Sc44)*Y(H1)*state.rho + screened_rates(k_He4_Ca41_to_p_Sc44_reaclib)*Y(Ca41)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Sc44_to_p_Ti47_reaclib)*Y(He4)*Y(Sc44)*state.rho + screened_rates(k_p_Ti47_to_He4_Sc44_reaclib)*Y(Ti47)*Y(H1)*state.rho) + - (screened_rates(k_n_Ti44_to_p_Sc44_reaclib)*Y(Ti44)*Y(N)*state.rho + -screened_rates(k_p_Sc44_to_n_Ti44_reaclib)*Y(Sc44)*Y(H1)*state.rho) + - (screened_rates(k_n_V47_to_He4_Sc44_reaclib)*Y(V47)*Y(N)*state.rho + -screened_rates(k_He4_Sc44_to_n_V47_reaclib)*Y(He4)*Y(Sc44)*state.rho) + - (-screened_rates(k_Sc44_to_Ca44_weaktab)*Y(Sc44) + screened_rates(k_Ca44_to_Sc44_weaktab)*Y(Ca44)) + - (screened_rates(k_Ti44_to_Sc44_weaktab)*Y(Ti44) + -screened_rates(k_Sc44_to_Ti44_weaktab)*Y(Sc44)); + (screened_rates(k_K40_He4_to_Sc44_reaclib)*Y(He4)*Y(K40)*state.rho + -screened_rates(k_Sc44_to_He4_K40_derived)*Y(Sc44)) + + (screened_rates(k_Ca43_p_to_Sc44_reaclib)*Y(Ca43)*Y(H1)*state.rho + -screened_rates(k_Sc44_to_p_Ca43_derived)*Y(Sc44)) + + (screened_rates(k_Sc43_n_to_Sc44_reaclib)*Y(Sc43)*Y(N)*state.rho + -screened_rates(k_Sc44_to_n_Sc43_derived)*Y(Sc44)) + + (-screened_rates(k_Sc44_n_to_Sc45_reaclib)*Y(Sc44)*Y(N)*state.rho + screened_rates(k_Sc45_to_n_Sc44_derived)*Y(Sc45)) + + (-screened_rates(k_Sc44_p_to_Ti45_reaclib)*Y(Sc44)*Y(H1)*state.rho + screened_rates(k_Ti45_to_p_Sc44_derived)*Y(Ti45)) + + (-screened_rates(k_Sc44_He4_to_V48_reaclib)*Y(He4)*Y(Sc44)*state.rho + screened_rates(k_V48_to_He4_Sc44_derived)*Y(V48)) + + (-screened_rates(k_Sc44_n_to_p_Ca44_reaclib)*Y(Sc44)*Y(N)*state.rho + screened_rates(k_Ca44_p_to_n_Sc44_derived)*Y(Ca44)*Y(H1)*state.rho) + + (-screened_rates(k_Sc44_p_to_He4_Ca41_reaclib)*Y(Sc44)*Y(H1)*state.rho + screened_rates(k_Ca41_He4_to_p_Sc44_derived)*Y(Ca41)*Y(He4)*state.rho) + + (-screened_rates(k_Sc44_He4_to_p_Ti47_reaclib)*Y(He4)*Y(Sc44)*state.rho + screened_rates(k_Ti47_p_to_He4_Sc44_derived)*Y(Ti47)*Y(H1)*state.rho) + + (screened_rates(k_Ti44_n_to_p_Sc44_reaclib)*Y(Ti44)*Y(N)*state.rho + -screened_rates(k_Sc44_p_to_n_Ti44_derived)*Y(Sc44)*Y(H1)*state.rho) + + (screened_rates(k_V47_n_to_He4_Sc44_reaclib)*Y(V47)*Y(N)*state.rho + -screened_rates(k_Sc44_He4_to_n_V47_derived)*Y(He4)*Y(Sc44)*state.rho) + + (-screened_rates(k_Sc44_to_Ca44_electron_capture_weaktab)*Y(Sc44) + screened_rates(k_Ca44_to_Sc44_beta_neg_weaktab)*Y(Ca44)) + + (screened_rates(k_Ti44_to_Sc44_electron_capture_weaktab)*Y(Ti44) + -screened_rates(k_Sc44_to_Ti44_beta_neg_weaktab)*Y(Sc44)) + + (-screened_rates(k_Sc44_n_to_He4_K41_derived)*Y(Sc44)*Y(N)*state.rho + screened_rates(k_K41_He4_to_n_Sc44_reaclib)*Y(He4)*Y(K41)*state.rho); ydot_nuc(Sc45) = - (screened_rates(k_He4_K41_to_Sc45_reaclib)*Y(He4)*Y(K41)*state.rho + -screened_rates(k_Sc45_to_He4_K41_reaclib)*Y(Sc45)) + - (screened_rates(k_p_Ca44_to_Sc45_reaclib)*Y(Ca44)*Y(H1)*state.rho + -screened_rates(k_Sc45_to_p_Ca44_reaclib)*Y(Sc45)) + - (screened_rates(k_n_Sc44_to_Sc45_reaclib)*Y(Sc44)*Y(N)*state.rho + -screened_rates(k_Sc45_to_n_Sc44_reaclib)*Y(Sc45)) + - (-screened_rates(k_n_Sc45_to_Sc46_reaclib)*Y(Sc45)*Y(N)*state.rho + screened_rates(k_Sc46_to_n_Sc45_reaclib)*Y(Sc46)) + - (-screened_rates(k_p_Sc45_to_Ti46_reaclib)*Y(Sc45)*Y(H1)*state.rho + screened_rates(k_Ti46_to_p_Sc45_reaclib)*Y(Ti46)) + - (-screened_rates(k_He4_Sc45_to_V49_reaclib)*Y(He4)*Y(Sc45)*state.rho + screened_rates(k_V49_to_He4_Sc45_reaclib)*Y(V49)) + - (-screened_rates(k_n_Sc45_to_p_Ca45_reaclib)*Y(Sc45)*Y(N)*state.rho + screened_rates(k_p_Ca45_to_n_Sc45_reaclib)*Y(Ca45)*Y(H1)*state.rho) + - (-screened_rates(k_p_Sc45_to_He4_Ca42_reaclib)*Y(Sc45)*Y(H1)*state.rho + screened_rates(k_He4_Ca42_to_p_Sc45_reaclib)*Y(Ca42)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Sc45_to_p_Ti48_reaclib)*Y(He4)*Y(Sc45)*state.rho + screened_rates(k_p_Ti48_to_He4_Sc45_reaclib)*Y(Ti48)*Y(H1)*state.rho) + - (screened_rates(k_n_Ti45_to_p_Sc45_reaclib)*Y(Ti45)*Y(N)*state.rho + -screened_rates(k_p_Sc45_to_n_Ti45_reaclib)*Y(Sc45)*Y(H1)*state.rho) + - (screened_rates(k_n_V48_to_He4_Sc45_reaclib)*Y(V48)*Y(N)*state.rho + -screened_rates(k_He4_Sc45_to_n_V48_reaclib)*Y(He4)*Y(Sc45)*state.rho) + - (screened_rates(k_Ca45_to_Sc45_weaktab)*Y(Ca45) + -screened_rates(k_Sc45_to_Ca45_weaktab)*Y(Sc45)) + - (screened_rates(k_Ti45_to_Sc45_weaktab)*Y(Ti45) + -screened_rates(k_Sc45_to_Ti45_weaktab)*Y(Sc45)); + (screened_rates(k_K41_He4_to_Sc45_reaclib)*Y(He4)*Y(K41)*state.rho + -screened_rates(k_Sc45_to_He4_K41_derived)*Y(Sc45)) + + (screened_rates(k_Ca44_p_to_Sc45_reaclib)*Y(Ca44)*Y(H1)*state.rho + -screened_rates(k_Sc45_to_p_Ca44_derived)*Y(Sc45)) + + (screened_rates(k_Sc44_n_to_Sc45_reaclib)*Y(Sc44)*Y(N)*state.rho + -screened_rates(k_Sc45_to_n_Sc44_derived)*Y(Sc45)) + + (-screened_rates(k_Sc45_n_to_Sc46_reaclib)*Y(Sc45)*Y(N)*state.rho + screened_rates(k_Sc46_to_n_Sc45_derived)*Y(Sc46)) + + (-screened_rates(k_Sc45_p_to_Ti46_reaclib)*Y(Sc45)*Y(H1)*state.rho + screened_rates(k_Ti46_to_p_Sc45_derived)*Y(Ti46)) + + (-screened_rates(k_Sc45_He4_to_V49_reaclib)*Y(He4)*Y(Sc45)*state.rho + screened_rates(k_V49_to_He4_Sc45_derived)*Y(V49)) + + (-screened_rates(k_Sc45_n_to_p_Ca45_reaclib)*Y(Sc45)*Y(N)*state.rho + screened_rates(k_Ca45_p_to_n_Sc45_derived)*Y(Ca45)*Y(H1)*state.rho) + + (-screened_rates(k_Sc45_p_to_He4_Ca42_reaclib)*Y(Sc45)*Y(H1)*state.rho + screened_rates(k_Ca42_He4_to_p_Sc45_derived)*Y(Ca42)*Y(He4)*state.rho) + + (-screened_rates(k_Sc45_He4_to_p_Ti48_reaclib)*Y(He4)*Y(Sc45)*state.rho + screened_rates(k_Ti48_p_to_He4_Sc45_derived)*Y(Ti48)*Y(H1)*state.rho) + + (screened_rates(k_Ti45_n_to_p_Sc45_reaclib)*Y(Ti45)*Y(N)*state.rho + -screened_rates(k_Sc45_p_to_n_Ti45_derived)*Y(Sc45)*Y(H1)*state.rho) + + (screened_rates(k_V48_n_to_He4_Sc45_reaclib)*Y(V48)*Y(N)*state.rho + -screened_rates(k_Sc45_He4_to_n_V48_derived)*Y(He4)*Y(Sc45)*state.rho) + + (screened_rates(k_Ca45_to_Sc45_beta_neg_weaktab)*Y(Ca45) + -screened_rates(k_Sc45_to_Ca45_electron_capture_weaktab)*Y(Sc45)) + + (screened_rates(k_Ti45_to_Sc45_electron_capture_weaktab)*Y(Ti45) + -screened_rates(k_Sc45_to_Ti45_beta_neg_weaktab)*Y(Sc45)); ydot_nuc(Sc46) = - (screened_rates(k_p_Ca45_to_Sc46_reaclib)*Y(Ca45)*Y(H1)*state.rho + -screened_rates(k_Sc46_to_p_Ca45_reaclib)*Y(Sc46)) + - (screened_rates(k_n_Sc45_to_Sc46_reaclib)*Y(Sc45)*Y(N)*state.rho + -screened_rates(k_Sc46_to_n_Sc45_reaclib)*Y(Sc46)) + - (-screened_rates(k_n_Sc46_to_Sc47_reaclib)*Y(Sc46)*Y(N)*state.rho + screened_rates(k_Sc47_to_n_Sc46_reaclib)*Y(Sc47)) + - (-screened_rates(k_p_Sc46_to_Ti47_reaclib)*Y(Sc46)*Y(H1)*state.rho + screened_rates(k_Ti47_to_p_Sc46_reaclib)*Y(Ti47)) + - (-screened_rates(k_He4_Sc46_to_V50_reaclib)*Y(He4)*Y(Sc46)*state.rho + screened_rates(k_V50_to_He4_Sc46_reaclib)*Y(V50)) + - (-screened_rates(k_n_Sc46_to_p_Ca46_reaclib)*Y(Sc46)*Y(N)*state.rho + screened_rates(k_p_Ca46_to_n_Sc46_reaclib)*Y(Ca46)*Y(H1)*state.rho) + - (-screened_rates(k_p_Sc46_to_n_Ti46_reaclib)*Y(Sc46)*Y(H1)*state.rho + screened_rates(k_n_Ti46_to_p_Sc46_reaclib)*Y(Ti46)*Y(N)*state.rho) + - (-screened_rates(k_p_Sc46_to_He4_Ca43_reaclib)*Y(Sc46)*Y(H1)*state.rho + screened_rates(k_He4_Ca43_to_p_Sc46_reaclib)*Y(Ca43)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Sc46_to_n_V49_reaclib)*Y(He4)*Y(Sc46)*state.rho + screened_rates(k_n_V49_to_He4_Sc46_reaclib)*Y(V49)*Y(N)*state.rho) + - (-screened_rates(k_He4_Sc46_to_p_Ti49_reaclib)*Y(He4)*Y(Sc46)*state.rho + screened_rates(k_p_Ti49_to_He4_Sc46_reaclib)*Y(Ti49)*Y(H1)*state.rho) + - (-screened_rates(k_Sc46_to_Ca46_weaktab)*Y(Sc46) + screened_rates(k_Ca46_to_Sc46_weaktab)*Y(Ca46)) + - (-screened_rates(k_Sc46_to_Ti46_weaktab)*Y(Sc46) + screened_rates(k_Ti46_to_Sc46_weaktab)*Y(Ti46)); + (screened_rates(k_Ca45_p_to_Sc46_reaclib)*Y(Ca45)*Y(H1)*state.rho + -screened_rates(k_Sc46_to_p_Ca45_derived)*Y(Sc46)) + + (screened_rates(k_Sc45_n_to_Sc46_reaclib)*Y(Sc45)*Y(N)*state.rho + -screened_rates(k_Sc46_to_n_Sc45_derived)*Y(Sc46)) + + (-screened_rates(k_Sc46_n_to_Sc47_reaclib)*Y(Sc46)*Y(N)*state.rho + screened_rates(k_Sc47_to_n_Sc46_derived)*Y(Sc47)) + + (-screened_rates(k_Sc46_p_to_Ti47_reaclib)*Y(Sc46)*Y(H1)*state.rho + screened_rates(k_Ti47_to_p_Sc46_derived)*Y(Ti47)) + + (-screened_rates(k_Sc46_He4_to_V50_reaclib)*Y(He4)*Y(Sc46)*state.rho + screened_rates(k_V50_to_He4_Sc46_derived)*Y(V50)) + + (-screened_rates(k_Sc46_n_to_p_Ca46_reaclib)*Y(Sc46)*Y(N)*state.rho + screened_rates(k_Ca46_p_to_n_Sc46_derived)*Y(Ca46)*Y(H1)*state.rho) + + (-screened_rates(k_Sc46_p_to_n_Ti46_reaclib)*Y(Sc46)*Y(H1)*state.rho + screened_rates(k_Ti46_n_to_p_Sc46_derived)*Y(Ti46)*Y(N)*state.rho) + + (-screened_rates(k_Sc46_p_to_He4_Ca43_reaclib)*Y(Sc46)*Y(H1)*state.rho + screened_rates(k_Ca43_He4_to_p_Sc46_derived)*Y(Ca43)*Y(He4)*state.rho) + + (-screened_rates(k_Sc46_He4_to_n_V49_reaclib)*Y(He4)*Y(Sc46)*state.rho + screened_rates(k_V49_n_to_He4_Sc46_derived)*Y(V49)*Y(N)*state.rho) + + (-screened_rates(k_Sc46_He4_to_p_Ti49_reaclib)*Y(He4)*Y(Sc46)*state.rho + screened_rates(k_Ti49_p_to_He4_Sc46_derived)*Y(Ti49)*Y(H1)*state.rho) + + (-screened_rates(k_Sc46_to_Ca46_electron_capture_weaktab)*Y(Sc46) + screened_rates(k_Ca46_to_Sc46_beta_neg_weaktab)*Y(Ca46)) + + (-screened_rates(k_Sc46_to_Ti46_beta_neg_weaktab)*Y(Sc46) + screened_rates(k_Ti46_to_Sc46_electron_capture_weaktab)*Y(Ti46)); ydot_nuc(Sc47) = - (screened_rates(k_p_Ca46_to_Sc47_reaclib)*Y(Ca46)*Y(H1)*state.rho + -screened_rates(k_Sc47_to_p_Ca46_reaclib)*Y(Sc47)) + - (screened_rates(k_n_Sc46_to_Sc47_reaclib)*Y(Sc46)*Y(N)*state.rho + -screened_rates(k_Sc47_to_n_Sc46_reaclib)*Y(Sc47)) + - (-screened_rates(k_n_Sc47_to_Sc48_reaclib)*Y(Sc47)*Y(N)*state.rho + screened_rates(k_Sc48_to_n_Sc47_reaclib)*Y(Sc48)) + - (-screened_rates(k_p_Sc47_to_Ti48_reaclib)*Y(Sc47)*Y(H1)*state.rho + screened_rates(k_Ti48_to_p_Sc47_reaclib)*Y(Ti48)) + - (-screened_rates(k_He4_Sc47_to_V51_reaclib)*Y(He4)*Y(Sc47)*state.rho + screened_rates(k_V51_to_He4_Sc47_reaclib)*Y(V51)) + - (screened_rates(k_p_Ca47_to_n_Sc47_reaclib)*Y(Ca47)*Y(H1)*state.rho + -screened_rates(k_n_Sc47_to_p_Ca47_reaclib)*Y(Sc47)*Y(N)*state.rho) + - (-screened_rates(k_p_Sc47_to_He4_Ca44_reaclib)*Y(Sc47)*Y(H1)*state.rho + screened_rates(k_He4_Ca44_to_p_Sc47_reaclib)*Y(Ca44)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Sc47_to_p_Ti50_reaclib)*Y(He4)*Y(Sc47)*state.rho + screened_rates(k_p_Ti50_to_He4_Sc47_reaclib)*Y(Ti50)*Y(H1)*state.rho) + - (screened_rates(k_n_Ti47_to_p_Sc47_reaclib)*Y(Ti47)*Y(N)*state.rho + -screened_rates(k_p_Sc47_to_n_Ti47_reaclib)*Y(Sc47)*Y(H1)*state.rho) + - (screened_rates(k_n_V50_to_He4_Sc47_reaclib)*Y(V50)*Y(N)*state.rho + -screened_rates(k_He4_Sc47_to_n_V50_reaclib)*Y(He4)*Y(Sc47)*state.rho) + - (screened_rates(k_Ca47_to_Sc47_weaktab)*Y(Ca47) + -screened_rates(k_Sc47_to_Ca47_weaktab)*Y(Sc47)) + - (-screened_rates(k_Sc47_to_Ti47_weaktab)*Y(Sc47) + screened_rates(k_Ti47_to_Sc47_weaktab)*Y(Ti47)); + (screened_rates(k_Ca46_p_to_Sc47_reaclib)*Y(Ca46)*Y(H1)*state.rho + -screened_rates(k_Sc47_to_p_Ca46_derived)*Y(Sc47)) + + (screened_rates(k_Sc46_n_to_Sc47_reaclib)*Y(Sc46)*Y(N)*state.rho + -screened_rates(k_Sc47_to_n_Sc46_derived)*Y(Sc47)) + + (-screened_rates(k_Sc47_n_to_Sc48_reaclib)*Y(Sc47)*Y(N)*state.rho + screened_rates(k_Sc48_to_n_Sc47_derived)*Y(Sc48)) + + (-screened_rates(k_Sc47_p_to_Ti48_reaclib)*Y(Sc47)*Y(H1)*state.rho + screened_rates(k_Ti48_to_p_Sc47_derived)*Y(Ti48)) + + (-screened_rates(k_Sc47_He4_to_V51_reaclib)*Y(He4)*Y(Sc47)*state.rho + screened_rates(k_V51_to_He4_Sc47_derived)*Y(V51)) + + (screened_rates(k_Ca47_p_to_n_Sc47_reaclib)*Y(Ca47)*Y(H1)*state.rho + -screened_rates(k_Sc47_n_to_p_Ca47_derived)*Y(Sc47)*Y(N)*state.rho) + + (-screened_rates(k_Sc47_p_to_He4_Ca44_reaclib)*Y(Sc47)*Y(H1)*state.rho + screened_rates(k_Ca44_He4_to_p_Sc47_derived)*Y(Ca44)*Y(He4)*state.rho) + + (-screened_rates(k_Sc47_He4_to_p_Ti50_reaclib)*Y(He4)*Y(Sc47)*state.rho + screened_rates(k_Ti50_p_to_He4_Sc47_derived)*Y(Ti50)*Y(H1)*state.rho) + + (screened_rates(k_Ti47_n_to_p_Sc47_reaclib)*Y(Ti47)*Y(N)*state.rho + -screened_rates(k_Sc47_p_to_n_Ti47_derived)*Y(Sc47)*Y(H1)*state.rho) + + (screened_rates(k_V50_n_to_He4_Sc47_reaclib)*Y(V50)*Y(N)*state.rho + -screened_rates(k_Sc47_He4_to_n_V50_derived)*Y(He4)*Y(Sc47)*state.rho) + + (screened_rates(k_Ca47_to_Sc47_beta_neg_weaktab)*Y(Ca47) + -screened_rates(k_Sc47_to_Ca47_electron_capture_weaktab)*Y(Sc47)) + + (-screened_rates(k_Sc47_to_Ti47_beta_neg_weaktab)*Y(Sc47) + screened_rates(k_Ti47_to_Sc47_electron_capture_weaktab)*Y(Ti47)); ydot_nuc(Sc48) = - (screened_rates(k_p_Ca47_to_Sc48_reaclib)*Y(Ca47)*Y(H1)*state.rho + -screened_rates(k_Sc48_to_p_Ca47_reaclib)*Y(Sc48)) + - (screened_rates(k_n_Sc47_to_Sc48_reaclib)*Y(Sc47)*Y(N)*state.rho + -screened_rates(k_Sc48_to_n_Sc47_reaclib)*Y(Sc48)) + - (-screened_rates(k_n_Sc48_to_Sc49_reaclib)*Y(Sc48)*Y(N)*state.rho + screened_rates(k_Sc49_to_n_Sc48_reaclib)*Y(Sc49)) + - (-screened_rates(k_p_Sc48_to_Ti49_reaclib)*Y(Sc48)*Y(H1)*state.rho + screened_rates(k_Ti49_to_p_Sc48_reaclib)*Y(Ti49)) + - (-screened_rates(k_He4_Sc48_to_V52_reaclib)*Y(He4)*Y(Sc48)*state.rho + screened_rates(k_V52_to_He4_Sc48_reaclib)*Y(V52)) + - (-screened_rates(k_n_Sc48_to_p_Ca48_reaclib)*Y(Sc48)*Y(N)*state.rho + screened_rates(k_p_Ca48_to_n_Sc48_reaclib)*Y(Ca48)*Y(H1)*state.rho) + - (-screened_rates(k_p_Sc48_to_n_Ti48_reaclib)*Y(Sc48)*Y(H1)*state.rho + screened_rates(k_n_Ti48_to_p_Sc48_reaclib)*Y(Ti48)*Y(N)*state.rho) + - (-screened_rates(k_p_Sc48_to_He4_Ca45_reaclib)*Y(Sc48)*Y(H1)*state.rho + screened_rates(k_He4_Ca45_to_p_Sc48_reaclib)*Y(Ca45)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Sc48_to_n_V51_reaclib)*Y(He4)*Y(Sc48)*state.rho + screened_rates(k_n_V51_to_He4_Sc48_reaclib)*Y(V51)*Y(N)*state.rho) + - (-screened_rates(k_He4_Sc48_to_p_Ti51_reaclib)*Y(He4)*Y(Sc48)*state.rho + screened_rates(k_p_Ti51_to_He4_Sc48_reaclib)*Y(Ti51)*Y(H1)*state.rho) + - (screened_rates(k_Ca48_to_Sc48_weaktab)*Y(Ca48) + -screened_rates(k_Sc48_to_Ca48_weaktab)*Y(Sc48)) + - (-screened_rates(k_Sc48_to_Ti48_weaktab)*Y(Sc48) + screened_rates(k_Ti48_to_Sc48_weaktab)*Y(Ti48)); + (screened_rates(k_Ca47_p_to_Sc48_reaclib)*Y(Ca47)*Y(H1)*state.rho + -screened_rates(k_Sc48_to_p_Ca47_derived)*Y(Sc48)) + + (screened_rates(k_Sc47_n_to_Sc48_reaclib)*Y(Sc47)*Y(N)*state.rho + -screened_rates(k_Sc48_to_n_Sc47_derived)*Y(Sc48)) + + (-screened_rates(k_Sc48_n_to_Sc49_reaclib)*Y(Sc48)*Y(N)*state.rho + screened_rates(k_Sc49_to_n_Sc48_derived)*Y(Sc49)) + + (-screened_rates(k_Sc48_p_to_Ti49_reaclib)*Y(Sc48)*Y(H1)*state.rho + screened_rates(k_Ti49_to_p_Sc48_derived)*Y(Ti49)) + + (-screened_rates(k_Sc48_He4_to_V52_reaclib)*Y(He4)*Y(Sc48)*state.rho + screened_rates(k_V52_to_He4_Sc48_derived)*Y(V52)) + + (-screened_rates(k_Sc48_n_to_p_Ca48_reaclib)*Y(Sc48)*Y(N)*state.rho + screened_rates(k_Ca48_p_to_n_Sc48_derived)*Y(Ca48)*Y(H1)*state.rho) + + (-screened_rates(k_Sc48_p_to_n_Ti48_reaclib)*Y(Sc48)*Y(H1)*state.rho + screened_rates(k_Ti48_n_to_p_Sc48_derived)*Y(Ti48)*Y(N)*state.rho) + + (-screened_rates(k_Sc48_p_to_He4_Ca45_reaclib)*Y(Sc48)*Y(H1)*state.rho + screened_rates(k_Ca45_He4_to_p_Sc48_derived)*Y(Ca45)*Y(He4)*state.rho) + + (-screened_rates(k_Sc48_He4_to_n_V51_reaclib)*Y(He4)*Y(Sc48)*state.rho + screened_rates(k_V51_n_to_He4_Sc48_derived)*Y(V51)*Y(N)*state.rho) + + (-screened_rates(k_Sc48_He4_to_p_Ti51_reaclib)*Y(He4)*Y(Sc48)*state.rho + screened_rates(k_Ti51_p_to_He4_Sc48_derived)*Y(Ti51)*Y(H1)*state.rho) + + (screened_rates(k_Ca48_to_Sc48_beta_neg_weaktab)*Y(Ca48) + -screened_rates(k_Sc48_to_Ca48_electron_capture_weaktab)*Y(Sc48)) + + (-screened_rates(k_Sc48_to_Ti48_beta_neg_weaktab)*Y(Sc48) + screened_rates(k_Ti48_to_Sc48_electron_capture_weaktab)*Y(Ti48)); ydot_nuc(Sc49) = - (screened_rates(k_p_Ca48_to_Sc49_reaclib)*Y(Ca48)*Y(H1)*state.rho + -screened_rates(k_Sc49_to_p_Ca48_reaclib)*Y(Sc49)) + - (screened_rates(k_n_Sc48_to_Sc49_reaclib)*Y(Sc48)*Y(N)*state.rho + -screened_rates(k_Sc49_to_n_Sc48_reaclib)*Y(Sc49)) + - (-screened_rates(k_p_Sc49_to_Ti50_reaclib)*Y(Sc49)*Y(H1)*state.rho + screened_rates(k_Ti50_to_p_Sc49_reaclib)*Y(Ti50)) + - (-screened_rates(k_p_Sc49_to_n_Ti49_reaclib)*Y(Sc49)*Y(H1)*state.rho + screened_rates(k_n_Ti49_to_p_Sc49_reaclib)*Y(Ti49)*Y(N)*state.rho) + - (-screened_rates(k_p_Sc49_to_He4_Ca46_reaclib)*Y(Sc49)*Y(H1)*state.rho + screened_rates(k_He4_Ca46_to_p_Sc49_reaclib)*Y(Ca46)*Y(He4)*state.rho) + - (screened_rates(k_n_V52_to_He4_Sc49_reaclib)*Y(V52)*Y(N)*state.rho + -screened_rates(k_He4_Sc49_to_n_V52_reaclib)*Y(He4)*Y(Sc49)*state.rho) + - (-screened_rates(k_Sc49_to_Ti49_weaktab)*Y(Sc49) + screened_rates(k_Ti49_to_Sc49_weaktab)*Y(Ti49)); + (screened_rates(k_Ca48_p_to_Sc49_reaclib)*Y(Ca48)*Y(H1)*state.rho + -screened_rates(k_Sc49_to_p_Ca48_derived)*Y(Sc49)) + + (screened_rates(k_Sc48_n_to_Sc49_reaclib)*Y(Sc48)*Y(N)*state.rho + -screened_rates(k_Sc49_to_n_Sc48_derived)*Y(Sc49)) + + (-screened_rates(k_Sc49_p_to_Ti50_reaclib)*Y(Sc49)*Y(H1)*state.rho + screened_rates(k_Ti50_to_p_Sc49_derived)*Y(Ti50)) + + (-screened_rates(k_Sc49_p_to_n_Ti49_reaclib)*Y(Sc49)*Y(H1)*state.rho + screened_rates(k_Ti49_n_to_p_Sc49_derived)*Y(Ti49)*Y(N)*state.rho) + + (-screened_rates(k_Sc49_p_to_He4_Ca46_reaclib)*Y(Sc49)*Y(H1)*state.rho + screened_rates(k_Ca46_He4_to_p_Sc49_derived)*Y(Ca46)*Y(He4)*state.rho) + + (screened_rates(k_V52_n_to_He4_Sc49_reaclib)*Y(V52)*Y(N)*state.rho + -screened_rates(k_Sc49_He4_to_n_V52_derived)*Y(He4)*Y(Sc49)*state.rho) + + (-screened_rates(k_Sc49_to_Ti49_beta_neg_weaktab)*Y(Sc49) + screened_rates(k_Ti49_to_Sc49_electron_capture_weaktab)*Y(Ti49)); ydot_nuc(Ti44) = - (screened_rates(k_He4_Ca40_to_Ti44_reaclib)*Y(Ca40)*Y(He4)*state.rho + -screened_rates(k_Ti44_to_He4_Ca40_reaclib)*Y(Ti44)) + - (screened_rates(k_p_Sc43_to_Ti44_reaclib)*Y(Sc43)*Y(H1)*state.rho + -screened_rates(k_Ti44_to_p_Sc43_reaclib)*Y(Ti44)) + - (-screened_rates(k_n_Ti44_to_Ti45_reaclib)*Y(Ti44)*Y(N)*state.rho + screened_rates(k_Ti45_to_n_Ti44_reaclib)*Y(Ti45)) + - (-screened_rates(k_He4_Ti44_to_Cr48_reaclib)*Y(He4)*Y(Ti44)*state.rho + screened_rates(k_Cr48_to_He4_Ti44_reaclib)*Y(Cr48)) + - (-screened_rates(k_n_Ti44_to_p_Sc44_reaclib)*Y(Ti44)*Y(N)*state.rho + screened_rates(k_p_Sc44_to_n_Ti44_reaclib)*Y(Sc44)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ti44_to_He4_Ca41_reaclib)*Y(Ti44)*Y(N)*state.rho + screened_rates(k_He4_Ca41_to_n_Ti44_reaclib)*Y(Ca41)*Y(He4)*state.rho) + - (screened_rates(k_p_V47_to_He4_Ti44_reaclib)*Y(V47)*Y(H1)*state.rho + -screened_rates(k_He4_Ti44_to_p_V47_reaclib)*Y(He4)*Y(Ti44)*state.rho) + - (-screened_rates(k_Ti44_to_Sc44_weaktab)*Y(Ti44) + screened_rates(k_Sc44_to_Ti44_weaktab)*Y(Sc44)); + (screened_rates(k_Ca40_He4_to_Ti44_reaclib)*Y(Ca40)*Y(He4)*state.rho + -screened_rates(k_Ti44_to_He4_Ca40_derived)*Y(Ti44)) + + (screened_rates(k_Sc43_p_to_Ti44_reaclib)*Y(Sc43)*Y(H1)*state.rho + -screened_rates(k_Ti44_to_p_Sc43_derived)*Y(Ti44)) + + (-screened_rates(k_Ti44_n_to_Ti45_reaclib)*Y(Ti44)*Y(N)*state.rho + screened_rates(k_Ti45_to_n_Ti44_derived)*Y(Ti45)) + + (-screened_rates(k_Ti44_He4_to_Cr48_reaclib)*Y(He4)*Y(Ti44)*state.rho + screened_rates(k_Cr48_to_He4_Ti44_derived)*Y(Cr48)) + + (-screened_rates(k_Ti44_n_to_p_Sc44_reaclib)*Y(Ti44)*Y(N)*state.rho + screened_rates(k_Sc44_p_to_n_Ti44_derived)*Y(Sc44)*Y(H1)*state.rho) + + (-screened_rates(k_Ti44_n_to_He4_Ca41_reaclib)*Y(Ti44)*Y(N)*state.rho + screened_rates(k_Ca41_He4_to_n_Ti44_derived)*Y(Ca41)*Y(He4)*state.rho) + + (-screened_rates(k_Ti44_to_Sc44_electron_capture_weaktab)*Y(Ti44) + screened_rates(k_Sc44_to_Ti44_beta_neg_weaktab)*Y(Sc44)) + + (screened_rates(k_V47_p_to_He4_Ti44_derived)*Y(V47)*Y(H1)*state.rho + -screened_rates(k_Ti44_He4_to_p_V47_reaclib)*Y(He4)*Y(Ti44)*state.rho); ydot_nuc(Ti45) = - (screened_rates(k_He4_Ca41_to_Ti45_reaclib)*Y(Ca41)*Y(He4)*state.rho + -screened_rates(k_Ti45_to_He4_Ca41_reaclib)*Y(Ti45)) + - (screened_rates(k_p_Sc44_to_Ti45_reaclib)*Y(Sc44)*Y(H1)*state.rho + -screened_rates(k_Ti45_to_p_Sc44_reaclib)*Y(Ti45)) + - (screened_rates(k_n_Ti44_to_Ti45_reaclib)*Y(Ti44)*Y(N)*state.rho + -screened_rates(k_Ti45_to_n_Ti44_reaclib)*Y(Ti45)) + - (-screened_rates(k_n_Ti45_to_Ti46_reaclib)*Y(Ti45)*Y(N)*state.rho + screened_rates(k_Ti46_to_n_Ti45_reaclib)*Y(Ti46)) + - (-screened_rates(k_p_Ti45_to_V46_reaclib)*Y(Ti45)*Y(H1)*state.rho + screened_rates(k_V46_to_p_Ti45_reaclib)*Y(V46)) + - (-screened_rates(k_He4_Ti45_to_Cr49_reaclib)*Y(He4)*Y(Ti45)*state.rho + screened_rates(k_Cr49_to_He4_Ti45_reaclib)*Y(Cr49)) + - (-screened_rates(k_n_Ti45_to_p_Sc45_reaclib)*Y(Ti45)*Y(N)*state.rho + screened_rates(k_p_Sc45_to_n_Ti45_reaclib)*Y(Sc45)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ti45_to_He4_Ca42_reaclib)*Y(Ti45)*Y(N)*state.rho + screened_rates(k_He4_Ca42_to_n_Ti45_reaclib)*Y(Ca42)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Ti45_to_p_V48_reaclib)*Y(He4)*Y(Ti45)*state.rho + screened_rates(k_p_V48_to_He4_Ti45_reaclib)*Y(V48)*Y(H1)*state.rho) + - (screened_rates(k_n_Cr48_to_He4_Ti45_reaclib)*Y(Cr48)*Y(N)*state.rho + -screened_rates(k_He4_Ti45_to_n_Cr48_reaclib)*Y(He4)*Y(Ti45)*state.rho) + - (-screened_rates(k_Ti45_to_Sc45_weaktab)*Y(Ti45) + screened_rates(k_Sc45_to_Ti45_weaktab)*Y(Sc45)); + (screened_rates(k_Ca41_He4_to_Ti45_reaclib)*Y(Ca41)*Y(He4)*state.rho + -screened_rates(k_Ti45_to_He4_Ca41_derived)*Y(Ti45)) + + (screened_rates(k_Sc44_p_to_Ti45_reaclib)*Y(Sc44)*Y(H1)*state.rho + -screened_rates(k_Ti45_to_p_Sc44_derived)*Y(Ti45)) + + (screened_rates(k_Ti44_n_to_Ti45_reaclib)*Y(Ti44)*Y(N)*state.rho + -screened_rates(k_Ti45_to_n_Ti44_derived)*Y(Ti45)) + + (-screened_rates(k_Ti45_n_to_Ti46_reaclib)*Y(Ti45)*Y(N)*state.rho + screened_rates(k_Ti46_to_n_Ti45_derived)*Y(Ti46)) + + (-screened_rates(k_Ti45_p_to_V46_reaclib)*Y(Ti45)*Y(H1)*state.rho + screened_rates(k_V46_to_p_Ti45_derived)*Y(V46)) + + (-screened_rates(k_Ti45_He4_to_Cr49_reaclib)*Y(He4)*Y(Ti45)*state.rho + screened_rates(k_Cr49_to_He4_Ti45_derived)*Y(Cr49)) + + (-screened_rates(k_Ti45_n_to_p_Sc45_reaclib)*Y(Ti45)*Y(N)*state.rho + screened_rates(k_Sc45_p_to_n_Ti45_derived)*Y(Sc45)*Y(H1)*state.rho) + + (-screened_rates(k_Ti45_n_to_He4_Ca42_reaclib)*Y(Ti45)*Y(N)*state.rho + screened_rates(k_Ca42_He4_to_n_Ti45_derived)*Y(Ca42)*Y(He4)*state.rho) + + (-screened_rates(k_Ti45_He4_to_p_V48_reaclib)*Y(He4)*Y(Ti45)*state.rho + screened_rates(k_V48_p_to_He4_Ti45_derived)*Y(V48)*Y(H1)*state.rho) + + (screened_rates(k_Cr48_n_to_He4_Ti45_reaclib)*Y(Cr48)*Y(N)*state.rho + -screened_rates(k_Ti45_He4_to_n_Cr48_derived)*Y(He4)*Y(Ti45)*state.rho) + + (-screened_rates(k_Ti45_to_Sc45_electron_capture_weaktab)*Y(Ti45) + screened_rates(k_Sc45_to_Ti45_beta_neg_weaktab)*Y(Sc45)); ydot_nuc(Ti46) = - (screened_rates(k_He4_Ca42_to_Ti46_reaclib)*Y(Ca42)*Y(He4)*state.rho + -screened_rates(k_Ti46_to_He4_Ca42_reaclib)*Y(Ti46)) + - (screened_rates(k_p_Sc45_to_Ti46_reaclib)*Y(Sc45)*Y(H1)*state.rho + -screened_rates(k_Ti46_to_p_Sc45_reaclib)*Y(Ti46)) + - (screened_rates(k_n_Ti45_to_Ti46_reaclib)*Y(Ti45)*Y(N)*state.rho + -screened_rates(k_Ti46_to_n_Ti45_reaclib)*Y(Ti46)) + - (-screened_rates(k_n_Ti46_to_Ti47_reaclib)*Y(Ti46)*Y(N)*state.rho + screened_rates(k_Ti47_to_n_Ti46_reaclib)*Y(Ti47)) + - (-screened_rates(k_p_Ti46_to_V47_reaclib)*Y(Ti46)*Y(H1)*state.rho + screened_rates(k_V47_to_p_Ti46_reaclib)*Y(V47)) + - (-screened_rates(k_He4_Ti46_to_Cr50_reaclib)*Y(He4)*Y(Ti46)*state.rho + screened_rates(k_Cr50_to_He4_Ti46_reaclib)*Y(Cr50)) + - (screened_rates(k_He4_Ca43_to_n_Ti46_reaclib)*Y(Ca43)*Y(He4)*state.rho + -screened_rates(k_n_Ti46_to_He4_Ca43_reaclib)*Y(Ti46)*Y(N)*state.rho) + - (screened_rates(k_He4_Sc43_to_p_Ti46_reaclib)*Y(He4)*Y(Sc43)*state.rho + -screened_rates(k_p_Ti46_to_He4_Sc43_reaclib)*Y(Ti46)*Y(H1)*state.rho) + - (screened_rates(k_p_Sc46_to_n_Ti46_reaclib)*Y(Sc46)*Y(H1)*state.rho + -screened_rates(k_n_Ti46_to_p_Sc46_reaclib)*Y(Ti46)*Y(N)*state.rho) + - (screened_rates(k_n_V46_to_p_Ti46_reaclib)*Y(V46)*Y(N)*state.rho + -screened_rates(k_p_Ti46_to_n_V46_reaclib)*Y(Ti46)*Y(H1)*state.rho) + - (screened_rates(k_p_V49_to_He4_Ti46_reaclib)*Y(V49)*Y(H1)*state.rho + -screened_rates(k_He4_Ti46_to_p_V49_reaclib)*Y(He4)*Y(Ti46)*state.rho) + - (screened_rates(k_n_Cr49_to_He4_Ti46_reaclib)*Y(Cr49)*Y(N)*state.rho + -screened_rates(k_He4_Ti46_to_n_Cr49_reaclib)*Y(He4)*Y(Ti46)*state.rho) + - (screened_rates(k_Sc46_to_Ti46_weaktab)*Y(Sc46) + -screened_rates(k_Ti46_to_Sc46_weaktab)*Y(Ti46)) + - (screened_rates(k_V46_to_Ti46_weaktab)*Y(V46) + -screened_rates(k_Ti46_to_V46_weaktab)*Y(Ti46)); + (screened_rates(k_Ca42_He4_to_Ti46_reaclib)*Y(Ca42)*Y(He4)*state.rho + -screened_rates(k_Ti46_to_He4_Ca42_derived)*Y(Ti46)) + + (screened_rates(k_Sc45_p_to_Ti46_reaclib)*Y(Sc45)*Y(H1)*state.rho + -screened_rates(k_Ti46_to_p_Sc45_derived)*Y(Ti46)) + + (screened_rates(k_Ti45_n_to_Ti46_reaclib)*Y(Ti45)*Y(N)*state.rho + -screened_rates(k_Ti46_to_n_Ti45_derived)*Y(Ti46)) + + (-screened_rates(k_Ti46_n_to_Ti47_reaclib)*Y(Ti46)*Y(N)*state.rho + screened_rates(k_Ti47_to_n_Ti46_derived)*Y(Ti47)) + + (-screened_rates(k_Ti46_p_to_V47_reaclib)*Y(Ti46)*Y(H1)*state.rho + screened_rates(k_V47_to_p_Ti46_derived)*Y(V47)) + + (-screened_rates(k_Ti46_He4_to_Cr50_reaclib)*Y(He4)*Y(Ti46)*state.rho + screened_rates(k_Cr50_to_He4_Ti46_derived)*Y(Cr50)) + + (screened_rates(k_Ca43_He4_to_n_Ti46_reaclib)*Y(Ca43)*Y(He4)*state.rho + -screened_rates(k_Ti46_n_to_He4_Ca43_derived)*Y(Ti46)*Y(N)*state.rho) + + (screened_rates(k_Sc43_He4_to_p_Ti46_reaclib)*Y(He4)*Y(Sc43)*state.rho + -screened_rates(k_Ti46_p_to_He4_Sc43_derived)*Y(Ti46)*Y(H1)*state.rho) + + (screened_rates(k_Sc46_p_to_n_Ti46_reaclib)*Y(Sc46)*Y(H1)*state.rho + -screened_rates(k_Ti46_n_to_p_Sc46_derived)*Y(Ti46)*Y(N)*state.rho) + + (screened_rates(k_V46_n_to_p_Ti46_reaclib)*Y(V46)*Y(N)*state.rho + -screened_rates(k_Ti46_p_to_n_V46_derived)*Y(Ti46)*Y(H1)*state.rho) + + (screened_rates(k_V49_p_to_He4_Ti46_reaclib)*Y(V49)*Y(H1)*state.rho + -screened_rates(k_Ti46_He4_to_p_V49_derived)*Y(He4)*Y(Ti46)*state.rho) + + (screened_rates(k_Cr49_n_to_He4_Ti46_reaclib)*Y(Cr49)*Y(N)*state.rho + -screened_rates(k_Ti46_He4_to_n_Cr49_derived)*Y(He4)*Y(Ti46)*state.rho) + + (screened_rates(k_Sc46_to_Ti46_beta_neg_weaktab)*Y(Sc46) + -screened_rates(k_Ti46_to_Sc46_electron_capture_weaktab)*Y(Ti46)) + + (screened_rates(k_V46_to_Ti46_electron_capture_weaktab)*Y(V46) + -screened_rates(k_Ti46_to_V46_beta_neg_weaktab)*Y(Ti46)); ydot_nuc(Ti47) = - (screened_rates(k_He4_Ca43_to_Ti47_reaclib)*Y(Ca43)*Y(He4)*state.rho + -screened_rates(k_Ti47_to_He4_Ca43_reaclib)*Y(Ti47)) + - (screened_rates(k_p_Sc46_to_Ti47_reaclib)*Y(Sc46)*Y(H1)*state.rho + -screened_rates(k_Ti47_to_p_Sc46_reaclib)*Y(Ti47)) + - (screened_rates(k_n_Ti46_to_Ti47_reaclib)*Y(Ti46)*Y(N)*state.rho + -screened_rates(k_Ti47_to_n_Ti46_reaclib)*Y(Ti47)) + - (-screened_rates(k_n_Ti47_to_Ti48_reaclib)*Y(Ti47)*Y(N)*state.rho + screened_rates(k_Ti48_to_n_Ti47_reaclib)*Y(Ti48)) + - (-screened_rates(k_p_Ti47_to_V48_reaclib)*Y(Ti47)*Y(H1)*state.rho + screened_rates(k_V48_to_p_Ti47_reaclib)*Y(V48)) + - (-screened_rates(k_He4_Ti47_to_Cr51_reaclib)*Y(He4)*Y(Ti47)*state.rho + screened_rates(k_Cr51_to_He4_Ti47_reaclib)*Y(Cr51)) + - (screened_rates(k_He4_Sc44_to_p_Ti47_reaclib)*Y(He4)*Y(Sc44)*state.rho + -screened_rates(k_p_Ti47_to_He4_Sc44_reaclib)*Y(Ti47)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ti47_to_p_Sc47_reaclib)*Y(Ti47)*Y(N)*state.rho + screened_rates(k_p_Sc47_to_n_Ti47_reaclib)*Y(Sc47)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ti47_to_He4_Ca44_reaclib)*Y(Ti47)*Y(N)*state.rho + screened_rates(k_He4_Ca44_to_n_Ti47_reaclib)*Y(Ca44)*Y(He4)*state.rho) + - (screened_rates(k_n_V47_to_p_Ti47_reaclib)*Y(V47)*Y(N)*state.rho + -screened_rates(k_p_Ti47_to_n_V47_reaclib)*Y(Ti47)*Y(H1)*state.rho) + - (screened_rates(k_p_V50_to_He4_Ti47_reaclib)*Y(V50)*Y(H1)*state.rho + -screened_rates(k_He4_Ti47_to_p_V50_reaclib)*Y(He4)*Y(Ti47)*state.rho) + - (screened_rates(k_n_Cr50_to_He4_Ti47_reaclib)*Y(Cr50)*Y(N)*state.rho + -screened_rates(k_He4_Ti47_to_n_Cr50_reaclib)*Y(He4)*Y(Ti47)*state.rho) + - (screened_rates(k_Sc47_to_Ti47_weaktab)*Y(Sc47) + -screened_rates(k_Ti47_to_Sc47_weaktab)*Y(Ti47)) + - (screened_rates(k_V47_to_Ti47_weaktab)*Y(V47) + -screened_rates(k_Ti47_to_V47_weaktab)*Y(Ti47)); + (screened_rates(k_Ca43_He4_to_Ti47_reaclib)*Y(Ca43)*Y(He4)*state.rho + -screened_rates(k_Ti47_to_He4_Ca43_derived)*Y(Ti47)) + + (screened_rates(k_Sc46_p_to_Ti47_reaclib)*Y(Sc46)*Y(H1)*state.rho + -screened_rates(k_Ti47_to_p_Sc46_derived)*Y(Ti47)) + + (screened_rates(k_Ti46_n_to_Ti47_reaclib)*Y(Ti46)*Y(N)*state.rho + -screened_rates(k_Ti47_to_n_Ti46_derived)*Y(Ti47)) + + (-screened_rates(k_Ti47_n_to_Ti48_reaclib)*Y(Ti47)*Y(N)*state.rho + screened_rates(k_Ti48_to_n_Ti47_derived)*Y(Ti48)) + + (-screened_rates(k_Ti47_p_to_V48_reaclib)*Y(Ti47)*Y(H1)*state.rho + screened_rates(k_V48_to_p_Ti47_derived)*Y(V48)) + + (-screened_rates(k_Ti47_He4_to_Cr51_reaclib)*Y(He4)*Y(Ti47)*state.rho + screened_rates(k_Cr51_to_He4_Ti47_derived)*Y(Cr51)) + + (screened_rates(k_Sc44_He4_to_p_Ti47_reaclib)*Y(He4)*Y(Sc44)*state.rho + -screened_rates(k_Ti47_p_to_He4_Sc44_derived)*Y(Ti47)*Y(H1)*state.rho) + + (-screened_rates(k_Ti47_n_to_p_Sc47_reaclib)*Y(Ti47)*Y(N)*state.rho + screened_rates(k_Sc47_p_to_n_Ti47_derived)*Y(Sc47)*Y(H1)*state.rho) + + (-screened_rates(k_Ti47_n_to_He4_Ca44_reaclib)*Y(Ti47)*Y(N)*state.rho + screened_rates(k_Ca44_He4_to_n_Ti47_derived)*Y(Ca44)*Y(He4)*state.rho) + + (screened_rates(k_V47_n_to_p_Ti47_reaclib)*Y(V47)*Y(N)*state.rho + -screened_rates(k_Ti47_p_to_n_V47_derived)*Y(Ti47)*Y(H1)*state.rho) + + (screened_rates(k_V50_p_to_He4_Ti47_reaclib)*Y(V50)*Y(H1)*state.rho + -screened_rates(k_Ti47_He4_to_p_V50_derived)*Y(He4)*Y(Ti47)*state.rho) + + (screened_rates(k_Cr50_n_to_He4_Ti47_reaclib)*Y(Cr50)*Y(N)*state.rho + -screened_rates(k_Ti47_He4_to_n_Cr50_derived)*Y(He4)*Y(Ti47)*state.rho) + + (screened_rates(k_Sc47_to_Ti47_beta_neg_weaktab)*Y(Sc47) + -screened_rates(k_Ti47_to_Sc47_electron_capture_weaktab)*Y(Ti47)) + + (screened_rates(k_V47_to_Ti47_electron_capture_weaktab)*Y(V47) + -screened_rates(k_Ti47_to_V47_beta_neg_weaktab)*Y(Ti47)); ydot_nuc(Ti48) = - (screened_rates(k_He4_Ca44_to_Ti48_reaclib)*Y(Ca44)*Y(He4)*state.rho + -screened_rates(k_Ti48_to_He4_Ca44_reaclib)*Y(Ti48)) + - (screened_rates(k_p_Sc47_to_Ti48_reaclib)*Y(Sc47)*Y(H1)*state.rho + -screened_rates(k_Ti48_to_p_Sc47_reaclib)*Y(Ti48)) + - (screened_rates(k_n_Ti47_to_Ti48_reaclib)*Y(Ti47)*Y(N)*state.rho + -screened_rates(k_Ti48_to_n_Ti47_reaclib)*Y(Ti48)) + - (-screened_rates(k_n_Ti48_to_Ti49_reaclib)*Y(Ti48)*Y(N)*state.rho + screened_rates(k_Ti49_to_n_Ti48_reaclib)*Y(Ti49)) + - (-screened_rates(k_p_Ti48_to_V49_reaclib)*Y(Ti48)*Y(H1)*state.rho + screened_rates(k_V49_to_p_Ti48_reaclib)*Y(V49)) + - (-screened_rates(k_He4_Ti48_to_Cr52_reaclib)*Y(He4)*Y(Ti48)*state.rho + screened_rates(k_Cr52_to_He4_Ti48_reaclib)*Y(Cr52)) + - (screened_rates(k_He4_Ca45_to_n_Ti48_reaclib)*Y(Ca45)*Y(He4)*state.rho + -screened_rates(k_n_Ti48_to_He4_Ca45_reaclib)*Y(Ti48)*Y(N)*state.rho) + - (screened_rates(k_He4_Sc45_to_p_Ti48_reaclib)*Y(He4)*Y(Sc45)*state.rho + -screened_rates(k_p_Ti48_to_He4_Sc45_reaclib)*Y(Ti48)*Y(H1)*state.rho) + - (screened_rates(k_p_Sc48_to_n_Ti48_reaclib)*Y(Sc48)*Y(H1)*state.rho + -screened_rates(k_n_Ti48_to_p_Sc48_reaclib)*Y(Ti48)*Y(N)*state.rho) + - (screened_rates(k_n_V48_to_p_Ti48_reaclib)*Y(V48)*Y(N)*state.rho + -screened_rates(k_p_Ti48_to_n_V48_reaclib)*Y(Ti48)*Y(H1)*state.rho) + - (screened_rates(k_p_V51_to_He4_Ti48_reaclib)*Y(V51)*Y(H1)*state.rho + -screened_rates(k_He4_Ti48_to_p_V51_reaclib)*Y(He4)*Y(Ti48)*state.rho) + - (screened_rates(k_n_Cr51_to_He4_Ti48_reaclib)*Y(Cr51)*Y(N)*state.rho + -screened_rates(k_He4_Ti48_to_n_Cr51_reaclib)*Y(He4)*Y(Ti48)*state.rho) + - (screened_rates(k_Sc48_to_Ti48_weaktab)*Y(Sc48) + -screened_rates(k_Ti48_to_Sc48_weaktab)*Y(Ti48)) + - (screened_rates(k_V48_to_Ti48_weaktab)*Y(V48) + -screened_rates(k_Ti48_to_V48_weaktab)*Y(Ti48)); + (screened_rates(k_Ca44_He4_to_Ti48_reaclib)*Y(Ca44)*Y(He4)*state.rho + -screened_rates(k_Ti48_to_He4_Ca44_derived)*Y(Ti48)) + + (screened_rates(k_Sc47_p_to_Ti48_reaclib)*Y(Sc47)*Y(H1)*state.rho + -screened_rates(k_Ti48_to_p_Sc47_derived)*Y(Ti48)) + + (screened_rates(k_Ti47_n_to_Ti48_reaclib)*Y(Ti47)*Y(N)*state.rho + -screened_rates(k_Ti48_to_n_Ti47_derived)*Y(Ti48)) + + (-screened_rates(k_Ti48_n_to_Ti49_reaclib)*Y(Ti48)*Y(N)*state.rho + screened_rates(k_Ti49_to_n_Ti48_derived)*Y(Ti49)) + + (-screened_rates(k_Ti48_p_to_V49_reaclib)*Y(Ti48)*Y(H1)*state.rho + screened_rates(k_V49_to_p_Ti48_derived)*Y(V49)) + + (-screened_rates(k_Ti48_He4_to_Cr52_reaclib)*Y(He4)*Y(Ti48)*state.rho + screened_rates(k_Cr52_to_He4_Ti48_derived)*Y(Cr52)) + + (screened_rates(k_Ca45_He4_to_n_Ti48_reaclib)*Y(Ca45)*Y(He4)*state.rho + -screened_rates(k_Ti48_n_to_He4_Ca45_derived)*Y(Ti48)*Y(N)*state.rho) + + (screened_rates(k_Sc45_He4_to_p_Ti48_reaclib)*Y(He4)*Y(Sc45)*state.rho + -screened_rates(k_Ti48_p_to_He4_Sc45_derived)*Y(Ti48)*Y(H1)*state.rho) + + (screened_rates(k_Sc48_p_to_n_Ti48_reaclib)*Y(Sc48)*Y(H1)*state.rho + -screened_rates(k_Ti48_n_to_p_Sc48_derived)*Y(Ti48)*Y(N)*state.rho) + + (screened_rates(k_V48_n_to_p_Ti48_reaclib)*Y(V48)*Y(N)*state.rho + -screened_rates(k_Ti48_p_to_n_V48_derived)*Y(Ti48)*Y(H1)*state.rho) + + (screened_rates(k_V51_p_to_He4_Ti48_reaclib)*Y(V51)*Y(H1)*state.rho + -screened_rates(k_Ti48_He4_to_p_V51_derived)*Y(He4)*Y(Ti48)*state.rho) + + (screened_rates(k_Cr51_n_to_He4_Ti48_reaclib)*Y(Cr51)*Y(N)*state.rho + -screened_rates(k_Ti48_He4_to_n_Cr51_derived)*Y(He4)*Y(Ti48)*state.rho) + + (screened_rates(k_Sc48_to_Ti48_beta_neg_weaktab)*Y(Sc48) + -screened_rates(k_Ti48_to_Sc48_electron_capture_weaktab)*Y(Ti48)) + + (screened_rates(k_V48_to_Ti48_electron_capture_weaktab)*Y(V48) + -screened_rates(k_Ti48_to_V48_beta_neg_weaktab)*Y(Ti48)); ydot_nuc(Ti49) = - (screened_rates(k_He4_Ca45_to_Ti49_reaclib)*Y(Ca45)*Y(He4)*state.rho + -screened_rates(k_Ti49_to_He4_Ca45_reaclib)*Y(Ti49)) + - (screened_rates(k_p_Sc48_to_Ti49_reaclib)*Y(Sc48)*Y(H1)*state.rho + -screened_rates(k_Ti49_to_p_Sc48_reaclib)*Y(Ti49)) + - (screened_rates(k_n_Ti48_to_Ti49_reaclib)*Y(Ti48)*Y(N)*state.rho + -screened_rates(k_Ti49_to_n_Ti48_reaclib)*Y(Ti49)) + - (-screened_rates(k_n_Ti49_to_Ti50_reaclib)*Y(Ti49)*Y(N)*state.rho + screened_rates(k_Ti50_to_n_Ti49_reaclib)*Y(Ti50)) + - (-screened_rates(k_p_Ti49_to_V50_reaclib)*Y(Ti49)*Y(H1)*state.rho + screened_rates(k_V50_to_p_Ti49_reaclib)*Y(V50)) + - (-screened_rates(k_He4_Ti49_to_Cr53_reaclib)*Y(He4)*Y(Ti49)*state.rho + screened_rates(k_Cr53_to_He4_Ti49_reaclib)*Y(Cr53)) + - (screened_rates(k_He4_Sc46_to_p_Ti49_reaclib)*Y(He4)*Y(Sc46)*state.rho + -screened_rates(k_p_Ti49_to_He4_Sc46_reaclib)*Y(Ti49)*Y(H1)*state.rho) + - (screened_rates(k_p_Sc49_to_n_Ti49_reaclib)*Y(Sc49)*Y(H1)*state.rho + -screened_rates(k_n_Ti49_to_p_Sc49_reaclib)*Y(Ti49)*Y(N)*state.rho) + - (-screened_rates(k_n_Ti49_to_He4_Ca46_reaclib)*Y(Ti49)*Y(N)*state.rho + screened_rates(k_He4_Ca46_to_n_Ti49_reaclib)*Y(Ca46)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Ti49_to_n_Cr52_reaclib)*Y(He4)*Y(Ti49)*state.rho + screened_rates(k_n_Cr52_to_He4_Ti49_reaclib)*Y(Cr52)*Y(N)*state.rho) + - (screened_rates(k_n_V49_to_p_Ti49_reaclib)*Y(V49)*Y(N)*state.rho + -screened_rates(k_p_Ti49_to_n_V49_reaclib)*Y(Ti49)*Y(H1)*state.rho) + - (screened_rates(k_p_V52_to_He4_Ti49_reaclib)*Y(V52)*Y(H1)*state.rho + -screened_rates(k_He4_Ti49_to_p_V52_reaclib)*Y(He4)*Y(Ti49)*state.rho) + - (screened_rates(k_Sc49_to_Ti49_weaktab)*Y(Sc49) + -screened_rates(k_Ti49_to_Sc49_weaktab)*Y(Ti49)) + - (screened_rates(k_V49_to_Ti49_weaktab)*Y(V49) + -screened_rates(k_Ti49_to_V49_weaktab)*Y(Ti49)); + (screened_rates(k_Ca45_He4_to_Ti49_reaclib)*Y(Ca45)*Y(He4)*state.rho + -screened_rates(k_Ti49_to_He4_Ca45_derived)*Y(Ti49)) + + (screened_rates(k_Sc48_p_to_Ti49_reaclib)*Y(Sc48)*Y(H1)*state.rho + -screened_rates(k_Ti49_to_p_Sc48_derived)*Y(Ti49)) + + (screened_rates(k_Ti48_n_to_Ti49_reaclib)*Y(Ti48)*Y(N)*state.rho + -screened_rates(k_Ti49_to_n_Ti48_derived)*Y(Ti49)) + + (-screened_rates(k_Ti49_n_to_Ti50_reaclib)*Y(Ti49)*Y(N)*state.rho + screened_rates(k_Ti50_to_n_Ti49_derived)*Y(Ti50)) + + (-screened_rates(k_Ti49_p_to_V50_reaclib)*Y(Ti49)*Y(H1)*state.rho + screened_rates(k_V50_to_p_Ti49_derived)*Y(V50)) + + (-screened_rates(k_Ti49_He4_to_Cr53_reaclib)*Y(He4)*Y(Ti49)*state.rho + screened_rates(k_Cr53_to_He4_Ti49_derived)*Y(Cr53)) + + (screened_rates(k_Sc46_He4_to_p_Ti49_reaclib)*Y(He4)*Y(Sc46)*state.rho + -screened_rates(k_Ti49_p_to_He4_Sc46_derived)*Y(Ti49)*Y(H1)*state.rho) + + (screened_rates(k_Sc49_p_to_n_Ti49_reaclib)*Y(Sc49)*Y(H1)*state.rho + -screened_rates(k_Ti49_n_to_p_Sc49_derived)*Y(Ti49)*Y(N)*state.rho) + + (-screened_rates(k_Ti49_n_to_He4_Ca46_reaclib)*Y(Ti49)*Y(N)*state.rho + screened_rates(k_Ca46_He4_to_n_Ti49_derived)*Y(Ca46)*Y(He4)*state.rho) + + (-screened_rates(k_Ti49_He4_to_n_Cr52_reaclib)*Y(He4)*Y(Ti49)*state.rho + screened_rates(k_Cr52_n_to_He4_Ti49_derived)*Y(Cr52)*Y(N)*state.rho) + + (screened_rates(k_V49_n_to_p_Ti49_reaclib)*Y(V49)*Y(N)*state.rho + -screened_rates(k_Ti49_p_to_n_V49_derived)*Y(Ti49)*Y(H1)*state.rho) + + (screened_rates(k_V52_p_to_He4_Ti49_reaclib)*Y(V52)*Y(H1)*state.rho + -screened_rates(k_Ti49_He4_to_p_V52_derived)*Y(He4)*Y(Ti49)*state.rho) + + (screened_rates(k_Sc49_to_Ti49_beta_neg_weaktab)*Y(Sc49) + -screened_rates(k_Ti49_to_Sc49_electron_capture_weaktab)*Y(Ti49)) + + (screened_rates(k_V49_to_Ti49_electron_capture_weaktab)*Y(V49) + -screened_rates(k_Ti49_to_V49_beta_neg_weaktab)*Y(Ti49)); ydot_nuc(Ti50) = - (screened_rates(k_He4_Ca46_to_Ti50_reaclib)*Y(Ca46)*Y(He4)*state.rho + -screened_rates(k_Ti50_to_He4_Ca46_reaclib)*Y(Ti50)) + - (screened_rates(k_p_Sc49_to_Ti50_reaclib)*Y(Sc49)*Y(H1)*state.rho + -screened_rates(k_Ti50_to_p_Sc49_reaclib)*Y(Ti50)) + - (screened_rates(k_n_Ti49_to_Ti50_reaclib)*Y(Ti49)*Y(N)*state.rho + -screened_rates(k_Ti50_to_n_Ti49_reaclib)*Y(Ti50)) + - (-screened_rates(k_n_Ti50_to_Ti51_reaclib)*Y(Ti50)*Y(N)*state.rho + screened_rates(k_Ti51_to_n_Ti50_reaclib)*Y(Ti51)) + - (-screened_rates(k_p_Ti50_to_V51_reaclib)*Y(Ti50)*Y(H1)*state.rho + screened_rates(k_V51_to_p_Ti50_reaclib)*Y(V51)) + - (-screened_rates(k_He4_Ti50_to_Cr54_reaclib)*Y(He4)*Y(Ti50)*state.rho + screened_rates(k_Cr54_to_He4_Ti50_reaclib)*Y(Cr54)) + - (screened_rates(k_He4_Ca47_to_n_Ti50_reaclib)*Y(Ca47)*Y(He4)*state.rho + -screened_rates(k_n_Ti50_to_He4_Ca47_reaclib)*Y(Ti50)*Y(N)*state.rho) + - (screened_rates(k_He4_Sc47_to_p_Ti50_reaclib)*Y(He4)*Y(Sc47)*state.rho + -screened_rates(k_p_Ti50_to_He4_Sc47_reaclib)*Y(Ti50)*Y(H1)*state.rho) + - (screened_rates(k_n_V50_to_p_Ti50_reaclib)*Y(V50)*Y(N)*state.rho + -screened_rates(k_p_Ti50_to_n_V50_reaclib)*Y(Ti50)*Y(H1)*state.rho) + - (screened_rates(k_n_Cr53_to_He4_Ti50_reaclib)*Y(Cr53)*Y(N)*state.rho + -screened_rates(k_He4_Ti50_to_n_Cr53_reaclib)*Y(He4)*Y(Ti50)*state.rho) + - (screened_rates(k_V50_to_Ti50_weaktab)*Y(V50) + -screened_rates(k_Ti50_to_V50_weaktab)*Y(Ti50)); + (screened_rates(k_Ca46_He4_to_Ti50_reaclib)*Y(Ca46)*Y(He4)*state.rho + -screened_rates(k_Ti50_to_He4_Ca46_derived)*Y(Ti50)) + + (screened_rates(k_Sc49_p_to_Ti50_reaclib)*Y(Sc49)*Y(H1)*state.rho + -screened_rates(k_Ti50_to_p_Sc49_derived)*Y(Ti50)) + + (screened_rates(k_Ti49_n_to_Ti50_reaclib)*Y(Ti49)*Y(N)*state.rho + -screened_rates(k_Ti50_to_n_Ti49_derived)*Y(Ti50)) + + (-screened_rates(k_Ti50_n_to_Ti51_reaclib)*Y(Ti50)*Y(N)*state.rho + screened_rates(k_Ti51_to_n_Ti50_derived)*Y(Ti51)) + + (-screened_rates(k_Ti50_p_to_V51_reaclib)*Y(Ti50)*Y(H1)*state.rho + screened_rates(k_V51_to_p_Ti50_derived)*Y(V51)) + + (-screened_rates(k_Ti50_He4_to_Cr54_reaclib)*Y(He4)*Y(Ti50)*state.rho + screened_rates(k_Cr54_to_He4_Ti50_derived)*Y(Cr54)) + + (screened_rates(k_Ca47_He4_to_n_Ti50_reaclib)*Y(Ca47)*Y(He4)*state.rho + -screened_rates(k_Ti50_n_to_He4_Ca47_derived)*Y(Ti50)*Y(N)*state.rho) + + (screened_rates(k_Sc47_He4_to_p_Ti50_reaclib)*Y(He4)*Y(Sc47)*state.rho + -screened_rates(k_Ti50_p_to_He4_Sc47_derived)*Y(Ti50)*Y(H1)*state.rho) + + (screened_rates(k_V50_n_to_p_Ti50_reaclib)*Y(V50)*Y(N)*state.rho + -screened_rates(k_Ti50_p_to_n_V50_derived)*Y(Ti50)*Y(H1)*state.rho) + + (screened_rates(k_Cr53_n_to_He4_Ti50_reaclib)*Y(Cr53)*Y(N)*state.rho + -screened_rates(k_Ti50_He4_to_n_Cr53_derived)*Y(He4)*Y(Ti50)*state.rho) + + (screened_rates(k_V50_to_Ti50_electron_capture_weaktab)*Y(V50) + -screened_rates(k_Ti50_to_V50_beta_neg_weaktab)*Y(Ti50)); ydot_nuc(Ti51) = - (screened_rates(k_He4_Ca47_to_Ti51_reaclib)*Y(Ca47)*Y(He4)*state.rho + -screened_rates(k_Ti51_to_He4_Ca47_reaclib)*Y(Ti51)) + - (screened_rates(k_n_Ti50_to_Ti51_reaclib)*Y(Ti50)*Y(N)*state.rho + -screened_rates(k_Ti51_to_n_Ti50_reaclib)*Y(Ti51)) + - (-screened_rates(k_p_Ti51_to_V52_reaclib)*Y(Ti51)*Y(H1)*state.rho + screened_rates(k_V52_to_p_Ti51_reaclib)*Y(V52)) + - (screened_rates(k_He4_Sc48_to_p_Ti51_reaclib)*Y(He4)*Y(Sc48)*state.rho + -screened_rates(k_p_Ti51_to_He4_Sc48_reaclib)*Y(Ti51)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ti51_to_He4_Ca48_reaclib)*Y(Ti51)*Y(N)*state.rho + screened_rates(k_He4_Ca48_to_n_Ti51_reaclib)*Y(Ca48)*Y(He4)*state.rho) + - (-screened_rates(k_p_Ti51_to_n_V51_reaclib)*Y(Ti51)*Y(H1)*state.rho + screened_rates(k_n_V51_to_p_Ti51_reaclib)*Y(V51)*Y(N)*state.rho) + - (-screened_rates(k_He4_Ti51_to_n_Cr54_reaclib)*Y(He4)*Y(Ti51)*state.rho + screened_rates(k_n_Cr54_to_He4_Ti51_reaclib)*Y(Cr54)*Y(N)*state.rho) + - (-screened_rates(k_Ti51_to_V51_weaktab)*Y(Ti51) + screened_rates(k_V51_to_Ti51_weaktab)*Y(V51)); + (screened_rates(k_Ca47_He4_to_Ti51_reaclib)*Y(Ca47)*Y(He4)*state.rho + -screened_rates(k_Ti51_to_He4_Ca47_derived)*Y(Ti51)) + + (screened_rates(k_Ti50_n_to_Ti51_reaclib)*Y(Ti50)*Y(N)*state.rho + -screened_rates(k_Ti51_to_n_Ti50_derived)*Y(Ti51)) + + (-screened_rates(k_Ti51_p_to_V52_reaclib)*Y(Ti51)*Y(H1)*state.rho + screened_rates(k_V52_to_p_Ti51_derived)*Y(V52)) + + (screened_rates(k_Sc48_He4_to_p_Ti51_reaclib)*Y(He4)*Y(Sc48)*state.rho + -screened_rates(k_Ti51_p_to_He4_Sc48_derived)*Y(Ti51)*Y(H1)*state.rho) + + (-screened_rates(k_Ti51_n_to_He4_Ca48_reaclib)*Y(Ti51)*Y(N)*state.rho + screened_rates(k_Ca48_He4_to_n_Ti51_derived)*Y(Ca48)*Y(He4)*state.rho) + + (-screened_rates(k_Ti51_p_to_n_V51_reaclib)*Y(Ti51)*Y(H1)*state.rho + screened_rates(k_V51_n_to_p_Ti51_derived)*Y(V51)*Y(N)*state.rho) + + (-screened_rates(k_Ti51_He4_to_n_Cr54_reaclib)*Y(He4)*Y(Ti51)*state.rho + screened_rates(k_Cr54_n_to_He4_Ti51_derived)*Y(Cr54)*Y(N)*state.rho) + + (-screened_rates(k_Ti51_to_V51_beta_neg_weaktab)*Y(Ti51) + screened_rates(k_V51_to_Ti51_electron_capture_weaktab)*Y(V51)); ydot_nuc(V46) = - (screened_rates(k_p_Ti45_to_V46_reaclib)*Y(Ti45)*Y(H1)*state.rho + -screened_rates(k_V46_to_p_Ti45_reaclib)*Y(V46)) + - (-screened_rates(k_n_V46_to_V47_reaclib)*Y(V46)*Y(N)*state.rho + screened_rates(k_V47_to_n_V46_reaclib)*Y(V47)) + - (-screened_rates(k_He4_V46_to_Mn50_reaclib)*Y(He4)*Y(V46)*state.rho + screened_rates(k_Mn50_to_He4_V46_reaclib)*Y(Mn50)) + - (-screened_rates(k_n_V46_to_p_Ti46_reaclib)*Y(V46)*Y(N)*state.rho + screened_rates(k_p_Ti46_to_n_V46_reaclib)*Y(Ti46)*Y(H1)*state.rho) + - (-screened_rates(k_n_V46_to_He4_Sc43_reaclib)*Y(V46)*Y(N)*state.rho + screened_rates(k_He4_Sc43_to_n_V46_reaclib)*Y(He4)*Y(Sc43)*state.rho) + - (-screened_rates(k_He4_V46_to_p_Cr49_reaclib)*Y(He4)*Y(V46)*state.rho + screened_rates(k_p_Cr49_to_He4_V46_reaclib)*Y(Cr49)*Y(H1)*state.rho) + - (-screened_rates(k_V46_to_Ti46_weaktab)*Y(V46) + screened_rates(k_Ti46_to_V46_weaktab)*Y(Ti46)); + (screened_rates(k_Ti45_p_to_V46_reaclib)*Y(Ti45)*Y(H1)*state.rho + -screened_rates(k_V46_to_p_Ti45_derived)*Y(V46)) + + (-screened_rates(k_V46_n_to_V47_reaclib)*Y(V46)*Y(N)*state.rho + screened_rates(k_V47_to_n_V46_derived)*Y(V47)) + + (-screened_rates(k_V46_He4_to_Mn50_reaclib)*Y(He4)*Y(V46)*state.rho + screened_rates(k_Mn50_to_He4_V46_derived)*Y(Mn50)) + + (-screened_rates(k_V46_n_to_p_Ti46_reaclib)*Y(V46)*Y(N)*state.rho + screened_rates(k_Ti46_p_to_n_V46_derived)*Y(Ti46)*Y(H1)*state.rho) + + (-screened_rates(k_V46_n_to_He4_Sc43_reaclib)*Y(V46)*Y(N)*state.rho + screened_rates(k_Sc43_He4_to_n_V46_derived)*Y(He4)*Y(Sc43)*state.rho) + + (-screened_rates(k_V46_He4_to_p_Cr49_reaclib)*Y(He4)*Y(V46)*state.rho + screened_rates(k_Cr49_p_to_He4_V46_derived)*Y(Cr49)*Y(H1)*state.rho) + + (-screened_rates(k_V46_to_Ti46_electron_capture_weaktab)*Y(V46) + screened_rates(k_Ti46_to_V46_beta_neg_weaktab)*Y(Ti46)); ydot_nuc(V47) = - (screened_rates(k_He4_Sc43_to_V47_reaclib)*Y(He4)*Y(Sc43)*state.rho + -screened_rates(k_V47_to_He4_Sc43_reaclib)*Y(V47)) + - (screened_rates(k_p_Ti46_to_V47_reaclib)*Y(Ti46)*Y(H1)*state.rho + -screened_rates(k_V47_to_p_Ti46_reaclib)*Y(V47)) + - (screened_rates(k_n_V46_to_V47_reaclib)*Y(V46)*Y(N)*state.rho + -screened_rates(k_V47_to_n_V46_reaclib)*Y(V47)) + - (-screened_rates(k_n_V47_to_V48_reaclib)*Y(V47)*Y(N)*state.rho + screened_rates(k_V48_to_n_V47_reaclib)*Y(V48)) + - (-screened_rates(k_p_V47_to_Cr48_reaclib)*Y(V47)*Y(H1)*state.rho + screened_rates(k_Cr48_to_p_V47_reaclib)*Y(Cr48)) + - (-screened_rates(k_He4_V47_to_Mn51_reaclib)*Y(He4)*Y(V47)*state.rho + screened_rates(k_Mn51_to_He4_V47_reaclib)*Y(Mn51)) + - (-screened_rates(k_n_V47_to_p_Ti47_reaclib)*Y(V47)*Y(N)*state.rho + screened_rates(k_p_Ti47_to_n_V47_reaclib)*Y(Ti47)*Y(H1)*state.rho) + - (-screened_rates(k_n_V47_to_He4_Sc44_reaclib)*Y(V47)*Y(N)*state.rho + screened_rates(k_He4_Sc44_to_n_V47_reaclib)*Y(He4)*Y(Sc44)*state.rho) + - (-screened_rates(k_p_V47_to_He4_Ti44_reaclib)*Y(V47)*Y(H1)*state.rho + screened_rates(k_He4_Ti44_to_p_V47_reaclib)*Y(He4)*Y(Ti44)*state.rho) + - (-screened_rates(k_He4_V47_to_p_Cr50_reaclib)*Y(He4)*Y(V47)*state.rho + screened_rates(k_p_Cr50_to_He4_V47_reaclib)*Y(Cr50)*Y(H1)*state.rho) + - (screened_rates(k_n_Mn50_to_He4_V47_reaclib)*Y(Mn50)*Y(N)*state.rho + -screened_rates(k_He4_V47_to_n_Mn50_reaclib)*Y(He4)*Y(V47)*state.rho) + - (-screened_rates(k_V47_to_Ti47_weaktab)*Y(V47) + screened_rates(k_Ti47_to_V47_weaktab)*Y(Ti47)); + (screened_rates(k_Sc43_He4_to_V47_reaclib)*Y(He4)*Y(Sc43)*state.rho + -screened_rates(k_V47_to_He4_Sc43_derived)*Y(V47)) + + (screened_rates(k_Ti46_p_to_V47_reaclib)*Y(Ti46)*Y(H1)*state.rho + -screened_rates(k_V47_to_p_Ti46_derived)*Y(V47)) + + (screened_rates(k_V46_n_to_V47_reaclib)*Y(V46)*Y(N)*state.rho + -screened_rates(k_V47_to_n_V46_derived)*Y(V47)) + + (-screened_rates(k_V47_n_to_V48_reaclib)*Y(V47)*Y(N)*state.rho + screened_rates(k_V48_to_n_V47_derived)*Y(V48)) + + (-screened_rates(k_V47_p_to_Cr48_reaclib)*Y(V47)*Y(H1)*state.rho + screened_rates(k_Cr48_to_p_V47_derived)*Y(Cr48)) + + (-screened_rates(k_V47_He4_to_Mn51_reaclib)*Y(He4)*Y(V47)*state.rho + screened_rates(k_Mn51_to_He4_V47_derived)*Y(Mn51)) + + (-screened_rates(k_V47_n_to_p_Ti47_reaclib)*Y(V47)*Y(N)*state.rho + screened_rates(k_Ti47_p_to_n_V47_derived)*Y(Ti47)*Y(H1)*state.rho) + + (-screened_rates(k_V47_n_to_He4_Sc44_reaclib)*Y(V47)*Y(N)*state.rho + screened_rates(k_Sc44_He4_to_n_V47_derived)*Y(He4)*Y(Sc44)*state.rho) + + (-screened_rates(k_V47_He4_to_p_Cr50_reaclib)*Y(He4)*Y(V47)*state.rho + screened_rates(k_Cr50_p_to_He4_V47_derived)*Y(Cr50)*Y(H1)*state.rho) + + (screened_rates(k_Mn50_n_to_He4_V47_reaclib)*Y(Mn50)*Y(N)*state.rho + -screened_rates(k_V47_He4_to_n_Mn50_derived)*Y(He4)*Y(V47)*state.rho) + + (-screened_rates(k_V47_to_Ti47_electron_capture_weaktab)*Y(V47) + screened_rates(k_Ti47_to_V47_beta_neg_weaktab)*Y(Ti47)) + + (-screened_rates(k_V47_p_to_He4_Ti44_derived)*Y(V47)*Y(H1)*state.rho + screened_rates(k_Ti44_He4_to_p_V47_reaclib)*Y(He4)*Y(Ti44)*state.rho); ydot_nuc(V48) = - (screened_rates(k_He4_Sc44_to_V48_reaclib)*Y(He4)*Y(Sc44)*state.rho + -screened_rates(k_V48_to_He4_Sc44_reaclib)*Y(V48)) + - (screened_rates(k_p_Ti47_to_V48_reaclib)*Y(Ti47)*Y(H1)*state.rho + -screened_rates(k_V48_to_p_Ti47_reaclib)*Y(V48)) + - (screened_rates(k_n_V47_to_V48_reaclib)*Y(V47)*Y(N)*state.rho + -screened_rates(k_V48_to_n_V47_reaclib)*Y(V48)) + - (-screened_rates(k_n_V48_to_V49_reaclib)*Y(V48)*Y(N)*state.rho + screened_rates(k_V49_to_n_V48_reaclib)*Y(V49)) + - (-screened_rates(k_p_V48_to_Cr49_reaclib)*Y(V48)*Y(H1)*state.rho + screened_rates(k_Cr49_to_p_V48_reaclib)*Y(Cr49)) + - (-screened_rates(k_He4_V48_to_Mn52_reaclib)*Y(He4)*Y(V48)*state.rho + screened_rates(k_Mn52_to_He4_V48_reaclib)*Y(Mn52)) + - (screened_rates(k_He4_Ti45_to_p_V48_reaclib)*Y(He4)*Y(Ti45)*state.rho + -screened_rates(k_p_V48_to_He4_Ti45_reaclib)*Y(V48)*Y(H1)*state.rho) + - (-screened_rates(k_n_V48_to_p_Ti48_reaclib)*Y(V48)*Y(N)*state.rho + screened_rates(k_p_Ti48_to_n_V48_reaclib)*Y(Ti48)*Y(H1)*state.rho) + - (-screened_rates(k_n_V48_to_He4_Sc45_reaclib)*Y(V48)*Y(N)*state.rho + screened_rates(k_He4_Sc45_to_n_V48_reaclib)*Y(He4)*Y(Sc45)*state.rho) + - (-screened_rates(k_He4_V48_to_p_Cr51_reaclib)*Y(He4)*Y(V48)*state.rho + screened_rates(k_p_Cr51_to_He4_V48_reaclib)*Y(Cr51)*Y(H1)*state.rho) + - (screened_rates(k_n_Cr48_to_p_V48_reaclib)*Y(Cr48)*Y(N)*state.rho + -screened_rates(k_p_V48_to_n_Cr48_reaclib)*Y(V48)*Y(H1)*state.rho) + - (screened_rates(k_n_Mn51_to_He4_V48_reaclib)*Y(Mn51)*Y(N)*state.rho + -screened_rates(k_He4_V48_to_n_Mn51_reaclib)*Y(He4)*Y(V48)*state.rho) + - (screened_rates(k_Cr48_to_V48_weaktab)*Y(Cr48) + -screened_rates(k_V48_to_Cr48_weaktab)*Y(V48)) + - (-screened_rates(k_V48_to_Ti48_weaktab)*Y(V48) + screened_rates(k_Ti48_to_V48_weaktab)*Y(Ti48)); + (screened_rates(k_Sc44_He4_to_V48_reaclib)*Y(He4)*Y(Sc44)*state.rho + -screened_rates(k_V48_to_He4_Sc44_derived)*Y(V48)) + + (screened_rates(k_Ti47_p_to_V48_reaclib)*Y(Ti47)*Y(H1)*state.rho + -screened_rates(k_V48_to_p_Ti47_derived)*Y(V48)) + + (screened_rates(k_V47_n_to_V48_reaclib)*Y(V47)*Y(N)*state.rho + -screened_rates(k_V48_to_n_V47_derived)*Y(V48)) + + (-screened_rates(k_V48_n_to_V49_reaclib)*Y(V48)*Y(N)*state.rho + screened_rates(k_V49_to_n_V48_derived)*Y(V49)) + + (-screened_rates(k_V48_p_to_Cr49_reaclib)*Y(V48)*Y(H1)*state.rho + screened_rates(k_Cr49_to_p_V48_derived)*Y(Cr49)) + + (-screened_rates(k_V48_He4_to_Mn52_reaclib)*Y(He4)*Y(V48)*state.rho + screened_rates(k_Mn52_to_He4_V48_derived)*Y(Mn52)) + + (screened_rates(k_Ti45_He4_to_p_V48_reaclib)*Y(He4)*Y(Ti45)*state.rho + -screened_rates(k_V48_p_to_He4_Ti45_derived)*Y(V48)*Y(H1)*state.rho) + + (-screened_rates(k_V48_n_to_p_Ti48_reaclib)*Y(V48)*Y(N)*state.rho + screened_rates(k_Ti48_p_to_n_V48_derived)*Y(Ti48)*Y(H1)*state.rho) + + (-screened_rates(k_V48_n_to_He4_Sc45_reaclib)*Y(V48)*Y(N)*state.rho + screened_rates(k_Sc45_He4_to_n_V48_derived)*Y(He4)*Y(Sc45)*state.rho) + + (-screened_rates(k_V48_He4_to_p_Cr51_reaclib)*Y(He4)*Y(V48)*state.rho + screened_rates(k_Cr51_p_to_He4_V48_derived)*Y(Cr51)*Y(H1)*state.rho) + + (screened_rates(k_Cr48_n_to_p_V48_reaclib)*Y(Cr48)*Y(N)*state.rho + -screened_rates(k_V48_p_to_n_Cr48_derived)*Y(V48)*Y(H1)*state.rho) + + (screened_rates(k_Mn51_n_to_He4_V48_reaclib)*Y(Mn51)*Y(N)*state.rho + -screened_rates(k_V48_He4_to_n_Mn51_derived)*Y(He4)*Y(V48)*state.rho) + + (screened_rates(k_Cr48_to_V48_electron_capture_weaktab)*Y(Cr48) + -screened_rates(k_V48_to_Cr48_beta_neg_weaktab)*Y(V48)) + + (-screened_rates(k_V48_to_Ti48_electron_capture_weaktab)*Y(V48) + screened_rates(k_Ti48_to_V48_beta_neg_weaktab)*Y(Ti48)); ydot_nuc(V49) = - (screened_rates(k_He4_Sc45_to_V49_reaclib)*Y(He4)*Y(Sc45)*state.rho + -screened_rates(k_V49_to_He4_Sc45_reaclib)*Y(V49)) + - (screened_rates(k_p_Ti48_to_V49_reaclib)*Y(Ti48)*Y(H1)*state.rho + -screened_rates(k_V49_to_p_Ti48_reaclib)*Y(V49)) + - (screened_rates(k_n_V48_to_V49_reaclib)*Y(V48)*Y(N)*state.rho + -screened_rates(k_V49_to_n_V48_reaclib)*Y(V49)) + - (-screened_rates(k_n_V49_to_V50_reaclib)*Y(V49)*Y(N)*state.rho + screened_rates(k_V50_to_n_V49_reaclib)*Y(V50)) + - (-screened_rates(k_p_V49_to_Cr50_reaclib)*Y(V49)*Y(H1)*state.rho + screened_rates(k_Cr50_to_p_V49_reaclib)*Y(Cr50)) + - (-screened_rates(k_He4_V49_to_Mn53_reaclib)*Y(He4)*Y(V49)*state.rho + screened_rates(k_Mn53_to_He4_V49_reaclib)*Y(Mn53)) + - (screened_rates(k_He4_Sc46_to_n_V49_reaclib)*Y(He4)*Y(Sc46)*state.rho + -screened_rates(k_n_V49_to_He4_Sc46_reaclib)*Y(V49)*Y(N)*state.rho) + - (-screened_rates(k_n_V49_to_p_Ti49_reaclib)*Y(V49)*Y(N)*state.rho + screened_rates(k_p_Ti49_to_n_V49_reaclib)*Y(Ti49)*Y(H1)*state.rho) + - (-screened_rates(k_p_V49_to_He4_Ti46_reaclib)*Y(V49)*Y(H1)*state.rho + screened_rates(k_He4_Ti46_to_p_V49_reaclib)*Y(He4)*Y(Ti46)*state.rho) + - (-screened_rates(k_He4_V49_to_p_Cr52_reaclib)*Y(He4)*Y(V49)*state.rho + screened_rates(k_p_Cr52_to_He4_V49_reaclib)*Y(Cr52)*Y(H1)*state.rho) + - (screened_rates(k_n_Cr49_to_p_V49_reaclib)*Y(Cr49)*Y(N)*state.rho + -screened_rates(k_p_V49_to_n_Cr49_reaclib)*Y(V49)*Y(H1)*state.rho) + - (screened_rates(k_n_Mn52_to_He4_V49_reaclib)*Y(Mn52)*Y(N)*state.rho + -screened_rates(k_He4_V49_to_n_Mn52_reaclib)*Y(He4)*Y(V49)*state.rho) + - (screened_rates(k_Cr49_to_V49_weaktab)*Y(Cr49) + -screened_rates(k_V49_to_Cr49_weaktab)*Y(V49)) + - (-screened_rates(k_V49_to_Ti49_weaktab)*Y(V49) + screened_rates(k_Ti49_to_V49_weaktab)*Y(Ti49)); + (screened_rates(k_Sc45_He4_to_V49_reaclib)*Y(He4)*Y(Sc45)*state.rho + -screened_rates(k_V49_to_He4_Sc45_derived)*Y(V49)) + + (screened_rates(k_Ti48_p_to_V49_reaclib)*Y(Ti48)*Y(H1)*state.rho + -screened_rates(k_V49_to_p_Ti48_derived)*Y(V49)) + + (screened_rates(k_V48_n_to_V49_reaclib)*Y(V48)*Y(N)*state.rho + -screened_rates(k_V49_to_n_V48_derived)*Y(V49)) + + (-screened_rates(k_V49_n_to_V50_reaclib)*Y(V49)*Y(N)*state.rho + screened_rates(k_V50_to_n_V49_derived)*Y(V50)) + + (-screened_rates(k_V49_p_to_Cr50_reaclib)*Y(V49)*Y(H1)*state.rho + screened_rates(k_Cr50_to_p_V49_derived)*Y(Cr50)) + + (-screened_rates(k_V49_He4_to_Mn53_reaclib)*Y(He4)*Y(V49)*state.rho + screened_rates(k_Mn53_to_He4_V49_derived)*Y(Mn53)) + + (screened_rates(k_Sc46_He4_to_n_V49_reaclib)*Y(He4)*Y(Sc46)*state.rho + -screened_rates(k_V49_n_to_He4_Sc46_derived)*Y(V49)*Y(N)*state.rho) + + (-screened_rates(k_V49_n_to_p_Ti49_reaclib)*Y(V49)*Y(N)*state.rho + screened_rates(k_Ti49_p_to_n_V49_derived)*Y(Ti49)*Y(H1)*state.rho) + + (-screened_rates(k_V49_p_to_He4_Ti46_reaclib)*Y(V49)*Y(H1)*state.rho + screened_rates(k_Ti46_He4_to_p_V49_derived)*Y(He4)*Y(Ti46)*state.rho) + + (-screened_rates(k_V49_He4_to_p_Cr52_reaclib)*Y(He4)*Y(V49)*state.rho + screened_rates(k_Cr52_p_to_He4_V49_derived)*Y(Cr52)*Y(H1)*state.rho) + + (screened_rates(k_Cr49_n_to_p_V49_reaclib)*Y(Cr49)*Y(N)*state.rho + -screened_rates(k_V49_p_to_n_Cr49_derived)*Y(V49)*Y(H1)*state.rho) + + (screened_rates(k_Mn52_n_to_He4_V49_reaclib)*Y(Mn52)*Y(N)*state.rho + -screened_rates(k_V49_He4_to_n_Mn52_derived)*Y(He4)*Y(V49)*state.rho) + + (screened_rates(k_Cr49_to_V49_electron_capture_weaktab)*Y(Cr49) + -screened_rates(k_V49_to_Cr49_beta_neg_weaktab)*Y(V49)) + + (-screened_rates(k_V49_to_Ti49_electron_capture_weaktab)*Y(V49) + screened_rates(k_Ti49_to_V49_beta_neg_weaktab)*Y(Ti49)); ydot_nuc(V50) = - (screened_rates(k_He4_Sc46_to_V50_reaclib)*Y(He4)*Y(Sc46)*state.rho + -screened_rates(k_V50_to_He4_Sc46_reaclib)*Y(V50)) + - (screened_rates(k_p_Ti49_to_V50_reaclib)*Y(Ti49)*Y(H1)*state.rho + -screened_rates(k_V50_to_p_Ti49_reaclib)*Y(V50)) + - (screened_rates(k_n_V49_to_V50_reaclib)*Y(V49)*Y(N)*state.rho + -screened_rates(k_V50_to_n_V49_reaclib)*Y(V50)) + - (-screened_rates(k_n_V50_to_V51_reaclib)*Y(V50)*Y(N)*state.rho + screened_rates(k_V51_to_n_V50_reaclib)*Y(V51)) + - (-screened_rates(k_p_V50_to_Cr51_reaclib)*Y(V50)*Y(H1)*state.rho + screened_rates(k_Cr51_to_p_V50_reaclib)*Y(Cr51)) + - (-screened_rates(k_He4_V50_to_Mn54_reaclib)*Y(He4)*Y(V50)*state.rho + screened_rates(k_Mn54_to_He4_V50_reaclib)*Y(Mn54)) + - (-screened_rates(k_n_V50_to_p_Ti50_reaclib)*Y(V50)*Y(N)*state.rho + screened_rates(k_p_Ti50_to_n_V50_reaclib)*Y(Ti50)*Y(H1)*state.rho) + - (-screened_rates(k_n_V50_to_He4_Sc47_reaclib)*Y(V50)*Y(N)*state.rho + screened_rates(k_He4_Sc47_to_n_V50_reaclib)*Y(He4)*Y(Sc47)*state.rho) + - (-screened_rates(k_p_V50_to_n_Cr50_reaclib)*Y(V50)*Y(H1)*state.rho + screened_rates(k_n_Cr50_to_p_V50_reaclib)*Y(Cr50)*Y(N)*state.rho) + - (-screened_rates(k_p_V50_to_He4_Ti47_reaclib)*Y(V50)*Y(H1)*state.rho + screened_rates(k_He4_Ti47_to_p_V50_reaclib)*Y(He4)*Y(Ti47)*state.rho) + - (-screened_rates(k_He4_V50_to_p_Cr53_reaclib)*Y(He4)*Y(V50)*state.rho + screened_rates(k_p_Cr53_to_He4_V50_reaclib)*Y(Cr53)*Y(H1)*state.rho) + - (screened_rates(k_n_Mn53_to_He4_V50_reaclib)*Y(Mn53)*Y(N)*state.rho + -screened_rates(k_He4_V50_to_n_Mn53_reaclib)*Y(He4)*Y(V50)*state.rho) + - (-screened_rates(k_V50_to_Cr50_weaktab)*Y(V50) + screened_rates(k_Cr50_to_V50_weaktab)*Y(Cr50)) + - (-screened_rates(k_V50_to_Ti50_weaktab)*Y(V50) + screened_rates(k_Ti50_to_V50_weaktab)*Y(Ti50)); + (screened_rates(k_Sc46_He4_to_V50_reaclib)*Y(He4)*Y(Sc46)*state.rho + -screened_rates(k_V50_to_He4_Sc46_derived)*Y(V50)) + + (screened_rates(k_Ti49_p_to_V50_reaclib)*Y(Ti49)*Y(H1)*state.rho + -screened_rates(k_V50_to_p_Ti49_derived)*Y(V50)) + + (screened_rates(k_V49_n_to_V50_reaclib)*Y(V49)*Y(N)*state.rho + -screened_rates(k_V50_to_n_V49_derived)*Y(V50)) + + (-screened_rates(k_V50_n_to_V51_reaclib)*Y(V50)*Y(N)*state.rho + screened_rates(k_V51_to_n_V50_derived)*Y(V51)) + + (-screened_rates(k_V50_p_to_Cr51_reaclib)*Y(V50)*Y(H1)*state.rho + screened_rates(k_Cr51_to_p_V50_derived)*Y(Cr51)) + + (-screened_rates(k_V50_He4_to_Mn54_reaclib)*Y(He4)*Y(V50)*state.rho + screened_rates(k_Mn54_to_He4_V50_derived)*Y(Mn54)) + + (-screened_rates(k_V50_n_to_p_Ti50_reaclib)*Y(V50)*Y(N)*state.rho + screened_rates(k_Ti50_p_to_n_V50_derived)*Y(Ti50)*Y(H1)*state.rho) + + (-screened_rates(k_V50_n_to_He4_Sc47_reaclib)*Y(V50)*Y(N)*state.rho + screened_rates(k_Sc47_He4_to_n_V50_derived)*Y(He4)*Y(Sc47)*state.rho) + + (-screened_rates(k_V50_p_to_n_Cr50_reaclib)*Y(V50)*Y(H1)*state.rho + screened_rates(k_Cr50_n_to_p_V50_derived)*Y(Cr50)*Y(N)*state.rho) + + (-screened_rates(k_V50_p_to_He4_Ti47_reaclib)*Y(V50)*Y(H1)*state.rho + screened_rates(k_Ti47_He4_to_p_V50_derived)*Y(He4)*Y(Ti47)*state.rho) + + (-screened_rates(k_V50_He4_to_p_Cr53_reaclib)*Y(He4)*Y(V50)*state.rho + screened_rates(k_Cr53_p_to_He4_V50_derived)*Y(Cr53)*Y(H1)*state.rho) + + (screened_rates(k_Mn53_n_to_He4_V50_reaclib)*Y(Mn53)*Y(N)*state.rho + -screened_rates(k_V50_He4_to_n_Mn53_derived)*Y(He4)*Y(V50)*state.rho) + + (-screened_rates(k_V50_to_Cr50_beta_neg_weaktab)*Y(V50) + screened_rates(k_Cr50_to_V50_electron_capture_weaktab)*Y(Cr50)) + + (-screened_rates(k_V50_to_Ti50_electron_capture_weaktab)*Y(V50) + screened_rates(k_Ti50_to_V50_beta_neg_weaktab)*Y(Ti50)); ydot_nuc(V51) = - (screened_rates(k_He4_Sc47_to_V51_reaclib)*Y(He4)*Y(Sc47)*state.rho + -screened_rates(k_V51_to_He4_Sc47_reaclib)*Y(V51)) + - (screened_rates(k_p_Ti50_to_V51_reaclib)*Y(Ti50)*Y(H1)*state.rho + -screened_rates(k_V51_to_p_Ti50_reaclib)*Y(V51)) + - (screened_rates(k_n_V50_to_V51_reaclib)*Y(V50)*Y(N)*state.rho + -screened_rates(k_V51_to_n_V50_reaclib)*Y(V51)) + - (-screened_rates(k_n_V51_to_V52_reaclib)*Y(V51)*Y(N)*state.rho + screened_rates(k_V52_to_n_V51_reaclib)*Y(V52)) + - (-screened_rates(k_p_V51_to_Cr52_reaclib)*Y(V51)*Y(H1)*state.rho + screened_rates(k_Cr52_to_p_V51_reaclib)*Y(Cr52)) + - (-screened_rates(k_He4_V51_to_Mn55_reaclib)*Y(He4)*Y(V51)*state.rho + screened_rates(k_Mn55_to_He4_V51_reaclib)*Y(Mn55)) + - (screened_rates(k_He4_Sc48_to_n_V51_reaclib)*Y(He4)*Y(Sc48)*state.rho + -screened_rates(k_n_V51_to_He4_Sc48_reaclib)*Y(V51)*Y(N)*state.rho) + - (screened_rates(k_p_Ti51_to_n_V51_reaclib)*Y(Ti51)*Y(H1)*state.rho + -screened_rates(k_n_V51_to_p_Ti51_reaclib)*Y(V51)*Y(N)*state.rho) + - (-screened_rates(k_p_V51_to_He4_Ti48_reaclib)*Y(V51)*Y(H1)*state.rho + screened_rates(k_He4_Ti48_to_p_V51_reaclib)*Y(He4)*Y(Ti48)*state.rho) + - (screened_rates(k_n_Cr51_to_p_V51_reaclib)*Y(Cr51)*Y(N)*state.rho + -screened_rates(k_p_V51_to_n_Cr51_reaclib)*Y(V51)*Y(H1)*state.rho) + - (screened_rates(k_p_Cr54_to_He4_V51_reaclib)*Y(Cr54)*Y(H1)*state.rho + -screened_rates(k_He4_V51_to_p_Cr54_reaclib)*Y(He4)*Y(V51)*state.rho) + - (screened_rates(k_n_Mn54_to_He4_V51_reaclib)*Y(Mn54)*Y(N)*state.rho + -screened_rates(k_He4_V51_to_n_Mn54_reaclib)*Y(He4)*Y(V51)*state.rho) + - (screened_rates(k_Cr51_to_V51_weaktab)*Y(Cr51) + -screened_rates(k_V51_to_Cr51_weaktab)*Y(V51)) + - (screened_rates(k_Ti51_to_V51_weaktab)*Y(Ti51) + -screened_rates(k_V51_to_Ti51_weaktab)*Y(V51)); + (screened_rates(k_Sc47_He4_to_V51_reaclib)*Y(He4)*Y(Sc47)*state.rho + -screened_rates(k_V51_to_He4_Sc47_derived)*Y(V51)) + + (screened_rates(k_Ti50_p_to_V51_reaclib)*Y(Ti50)*Y(H1)*state.rho + -screened_rates(k_V51_to_p_Ti50_derived)*Y(V51)) + + (screened_rates(k_V50_n_to_V51_reaclib)*Y(V50)*Y(N)*state.rho + -screened_rates(k_V51_to_n_V50_derived)*Y(V51)) + + (-screened_rates(k_V51_n_to_V52_reaclib)*Y(V51)*Y(N)*state.rho + screened_rates(k_V52_to_n_V51_derived)*Y(V52)) + + (-screened_rates(k_V51_p_to_Cr52_reaclib)*Y(V51)*Y(H1)*state.rho + screened_rates(k_Cr52_to_p_V51_derived)*Y(Cr52)) + + (-screened_rates(k_V51_He4_to_Mn55_reaclib)*Y(He4)*Y(V51)*state.rho + screened_rates(k_Mn55_to_He4_V51_derived)*Y(Mn55)) + + (screened_rates(k_Sc48_He4_to_n_V51_reaclib)*Y(He4)*Y(Sc48)*state.rho + -screened_rates(k_V51_n_to_He4_Sc48_derived)*Y(V51)*Y(N)*state.rho) + + (screened_rates(k_Ti51_p_to_n_V51_reaclib)*Y(Ti51)*Y(H1)*state.rho + -screened_rates(k_V51_n_to_p_Ti51_derived)*Y(V51)*Y(N)*state.rho) + + (-screened_rates(k_V51_p_to_He4_Ti48_reaclib)*Y(V51)*Y(H1)*state.rho + screened_rates(k_Ti48_He4_to_p_V51_derived)*Y(He4)*Y(Ti48)*state.rho) + + (screened_rates(k_Cr51_n_to_p_V51_reaclib)*Y(Cr51)*Y(N)*state.rho + -screened_rates(k_V51_p_to_n_Cr51_derived)*Y(V51)*Y(H1)*state.rho) + + (screened_rates(k_Cr54_p_to_He4_V51_reaclib)*Y(Cr54)*Y(H1)*state.rho + -screened_rates(k_V51_He4_to_p_Cr54_derived)*Y(He4)*Y(V51)*state.rho) + + (screened_rates(k_Mn54_n_to_He4_V51_reaclib)*Y(Mn54)*Y(N)*state.rho + -screened_rates(k_V51_He4_to_n_Mn54_derived)*Y(He4)*Y(V51)*state.rho) + + (screened_rates(k_Cr51_to_V51_electron_capture_weaktab)*Y(Cr51) + -screened_rates(k_V51_to_Cr51_beta_neg_weaktab)*Y(V51)) + + (screened_rates(k_Ti51_to_V51_beta_neg_weaktab)*Y(Ti51) + -screened_rates(k_V51_to_Ti51_electron_capture_weaktab)*Y(V51)); ydot_nuc(V52) = - (screened_rates(k_He4_Sc48_to_V52_reaclib)*Y(He4)*Y(Sc48)*state.rho + -screened_rates(k_V52_to_He4_Sc48_reaclib)*Y(V52)) + - (screened_rates(k_p_Ti51_to_V52_reaclib)*Y(Ti51)*Y(H1)*state.rho + -screened_rates(k_V52_to_p_Ti51_reaclib)*Y(V52)) + - (screened_rates(k_n_V51_to_V52_reaclib)*Y(V51)*Y(N)*state.rho + -screened_rates(k_V52_to_n_V51_reaclib)*Y(V52)) + - (-screened_rates(k_p_V52_to_Cr53_reaclib)*Y(V52)*Y(H1)*state.rho + screened_rates(k_Cr53_to_p_V52_reaclib)*Y(Cr53)) + - (-screened_rates(k_n_V52_to_He4_Sc49_reaclib)*Y(V52)*Y(N)*state.rho + screened_rates(k_He4_Sc49_to_n_V52_reaclib)*Y(He4)*Y(Sc49)*state.rho) + - (-screened_rates(k_p_V52_to_n_Cr52_reaclib)*Y(V52)*Y(H1)*state.rho + screened_rates(k_n_Cr52_to_p_V52_reaclib)*Y(Cr52)*Y(N)*state.rho) + - (-screened_rates(k_p_V52_to_He4_Ti49_reaclib)*Y(V52)*Y(H1)*state.rho + screened_rates(k_He4_Ti49_to_p_V52_reaclib)*Y(He4)*Y(Ti49)*state.rho) + - (-screened_rates(k_He4_V52_to_n_Mn55_reaclib)*Y(He4)*Y(V52)*state.rho + screened_rates(k_n_Mn55_to_He4_V52_reaclib)*Y(Mn55)*Y(N)*state.rho) + - (-screened_rates(k_V52_to_Cr52_weaktab)*Y(V52) + screened_rates(k_Cr52_to_V52_weaktab)*Y(Cr52)); + (screened_rates(k_Sc48_He4_to_V52_reaclib)*Y(He4)*Y(Sc48)*state.rho + -screened_rates(k_V52_to_He4_Sc48_derived)*Y(V52)) + + (screened_rates(k_Ti51_p_to_V52_reaclib)*Y(Ti51)*Y(H1)*state.rho + -screened_rates(k_V52_to_p_Ti51_derived)*Y(V52)) + + (screened_rates(k_V51_n_to_V52_reaclib)*Y(V51)*Y(N)*state.rho + -screened_rates(k_V52_to_n_V51_derived)*Y(V52)) + + (-screened_rates(k_V52_p_to_Cr53_reaclib)*Y(V52)*Y(H1)*state.rho + screened_rates(k_Cr53_to_p_V52_derived)*Y(Cr53)) + + (-screened_rates(k_V52_n_to_He4_Sc49_reaclib)*Y(V52)*Y(N)*state.rho + screened_rates(k_Sc49_He4_to_n_V52_derived)*Y(He4)*Y(Sc49)*state.rho) + + (-screened_rates(k_V52_p_to_n_Cr52_reaclib)*Y(V52)*Y(H1)*state.rho + screened_rates(k_Cr52_n_to_p_V52_derived)*Y(Cr52)*Y(N)*state.rho) + + (-screened_rates(k_V52_p_to_He4_Ti49_reaclib)*Y(V52)*Y(H1)*state.rho + screened_rates(k_Ti49_He4_to_p_V52_derived)*Y(He4)*Y(Ti49)*state.rho) + + (-screened_rates(k_V52_He4_to_n_Mn55_reaclib)*Y(He4)*Y(V52)*state.rho + screened_rates(k_Mn55_n_to_He4_V52_derived)*Y(Mn55)*Y(N)*state.rho) + + (-screened_rates(k_V52_to_Cr52_beta_neg_weaktab)*Y(V52) + screened_rates(k_Cr52_to_V52_electron_capture_weaktab)*Y(Cr52)); ydot_nuc(Cr48) = - (screened_rates(k_He4_Ti44_to_Cr48_reaclib)*Y(He4)*Y(Ti44)*state.rho + -screened_rates(k_Cr48_to_He4_Ti44_reaclib)*Y(Cr48)) + - (screened_rates(k_p_V47_to_Cr48_reaclib)*Y(V47)*Y(H1)*state.rho + -screened_rates(k_Cr48_to_p_V47_reaclib)*Y(Cr48)) + - (-screened_rates(k_n_Cr48_to_Cr49_reaclib)*Y(Cr48)*Y(N)*state.rho + screened_rates(k_Cr49_to_n_Cr48_reaclib)*Y(Cr49)) + - (-screened_rates(k_He4_Cr48_to_Fe52_reaclib)*Y(Cr48)*Y(He4)*state.rho + screened_rates(k_Fe52_to_He4_Cr48_reaclib)*Y(Fe52)) + - (-screened_rates(k_n_Cr48_to_p_V48_reaclib)*Y(Cr48)*Y(N)*state.rho + screened_rates(k_p_V48_to_n_Cr48_reaclib)*Y(V48)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cr48_to_He4_Ti45_reaclib)*Y(Cr48)*Y(N)*state.rho + screened_rates(k_He4_Ti45_to_n_Cr48_reaclib)*Y(He4)*Y(Ti45)*state.rho) + - (-screened_rates(k_He4_Cr48_to_p_Mn51_reaclib)*Y(Cr48)*Y(He4)*state.rho + screened_rates(k_p_Mn51_to_He4_Cr48_reaclib)*Y(Mn51)*Y(H1)*state.rho) + - (-screened_rates(k_Cr48_to_V48_weaktab)*Y(Cr48) + screened_rates(k_V48_to_Cr48_weaktab)*Y(V48)); + (screened_rates(k_Ti44_He4_to_Cr48_reaclib)*Y(He4)*Y(Ti44)*state.rho + -screened_rates(k_Cr48_to_He4_Ti44_derived)*Y(Cr48)) + + (screened_rates(k_V47_p_to_Cr48_reaclib)*Y(V47)*Y(H1)*state.rho + -screened_rates(k_Cr48_to_p_V47_derived)*Y(Cr48)) + + (-screened_rates(k_Cr48_n_to_Cr49_reaclib)*Y(Cr48)*Y(N)*state.rho + screened_rates(k_Cr49_to_n_Cr48_derived)*Y(Cr49)) + + (-screened_rates(k_Cr48_He4_to_Fe52_reaclib)*Y(Cr48)*Y(He4)*state.rho + screened_rates(k_Fe52_to_He4_Cr48_derived)*Y(Fe52)) + + (-screened_rates(k_Cr48_n_to_p_V48_reaclib)*Y(Cr48)*Y(N)*state.rho + screened_rates(k_V48_p_to_n_Cr48_derived)*Y(V48)*Y(H1)*state.rho) + + (-screened_rates(k_Cr48_n_to_He4_Ti45_reaclib)*Y(Cr48)*Y(N)*state.rho + screened_rates(k_Ti45_He4_to_n_Cr48_derived)*Y(He4)*Y(Ti45)*state.rho) + + (-screened_rates(k_Cr48_He4_to_p_Mn51_reaclib)*Y(Cr48)*Y(He4)*state.rho + screened_rates(k_Mn51_p_to_He4_Cr48_derived)*Y(Mn51)*Y(H1)*state.rho) + + (-screened_rates(k_Cr48_to_V48_electron_capture_weaktab)*Y(Cr48) + screened_rates(k_V48_to_Cr48_beta_neg_weaktab)*Y(V48)); ydot_nuc(Cr49) = - (screened_rates(k_He4_Ti45_to_Cr49_reaclib)*Y(He4)*Y(Ti45)*state.rho + -screened_rates(k_Cr49_to_He4_Ti45_reaclib)*Y(Cr49)) + - (screened_rates(k_p_V48_to_Cr49_reaclib)*Y(V48)*Y(H1)*state.rho + -screened_rates(k_Cr49_to_p_V48_reaclib)*Y(Cr49)) + - (screened_rates(k_n_Cr48_to_Cr49_reaclib)*Y(Cr48)*Y(N)*state.rho + -screened_rates(k_Cr49_to_n_Cr48_reaclib)*Y(Cr49)) + - (-screened_rates(k_n_Cr49_to_Cr50_reaclib)*Y(Cr49)*Y(N)*state.rho + screened_rates(k_Cr50_to_n_Cr49_reaclib)*Y(Cr50)) + - (-screened_rates(k_p_Cr49_to_Mn50_reaclib)*Y(Cr49)*Y(H1)*state.rho + screened_rates(k_Mn50_to_p_Cr49_reaclib)*Y(Mn50)) + - (-screened_rates(k_He4_Cr49_to_Fe53_reaclib)*Y(Cr49)*Y(He4)*state.rho + screened_rates(k_Fe53_to_He4_Cr49_reaclib)*Y(Fe53)) + - (screened_rates(k_He4_V46_to_p_Cr49_reaclib)*Y(He4)*Y(V46)*state.rho + -screened_rates(k_p_Cr49_to_He4_V46_reaclib)*Y(Cr49)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cr49_to_p_V49_reaclib)*Y(Cr49)*Y(N)*state.rho + screened_rates(k_p_V49_to_n_Cr49_reaclib)*Y(V49)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cr49_to_He4_Ti46_reaclib)*Y(Cr49)*Y(N)*state.rho + screened_rates(k_He4_Ti46_to_n_Cr49_reaclib)*Y(He4)*Y(Ti46)*state.rho) + - (-screened_rates(k_He4_Cr49_to_p_Mn52_reaclib)*Y(Cr49)*Y(He4)*state.rho + screened_rates(k_p_Mn52_to_He4_Cr49_reaclib)*Y(Mn52)*Y(H1)*state.rho) + - (screened_rates(k_n_Fe52_to_He4_Cr49_reaclib)*Y(Fe52)*Y(N)*state.rho + -screened_rates(k_He4_Cr49_to_n_Fe52_reaclib)*Y(Cr49)*Y(He4)*state.rho) + - (-screened_rates(k_Cr49_to_V49_weaktab)*Y(Cr49) + screened_rates(k_V49_to_Cr49_weaktab)*Y(V49)); + (screened_rates(k_Ti45_He4_to_Cr49_reaclib)*Y(He4)*Y(Ti45)*state.rho + -screened_rates(k_Cr49_to_He4_Ti45_derived)*Y(Cr49)) + + (screened_rates(k_V48_p_to_Cr49_reaclib)*Y(V48)*Y(H1)*state.rho + -screened_rates(k_Cr49_to_p_V48_derived)*Y(Cr49)) + + (screened_rates(k_Cr48_n_to_Cr49_reaclib)*Y(Cr48)*Y(N)*state.rho + -screened_rates(k_Cr49_to_n_Cr48_derived)*Y(Cr49)) + + (-screened_rates(k_Cr49_n_to_Cr50_reaclib)*Y(Cr49)*Y(N)*state.rho + screened_rates(k_Cr50_to_n_Cr49_derived)*Y(Cr50)) + + (-screened_rates(k_Cr49_p_to_Mn50_reaclib)*Y(Cr49)*Y(H1)*state.rho + screened_rates(k_Mn50_to_p_Cr49_derived)*Y(Mn50)) + + (-screened_rates(k_Cr49_He4_to_Fe53_reaclib)*Y(Cr49)*Y(He4)*state.rho + screened_rates(k_Fe53_to_He4_Cr49_derived)*Y(Fe53)) + + (screened_rates(k_V46_He4_to_p_Cr49_reaclib)*Y(He4)*Y(V46)*state.rho + -screened_rates(k_Cr49_p_to_He4_V46_derived)*Y(Cr49)*Y(H1)*state.rho) + + (-screened_rates(k_Cr49_n_to_p_V49_reaclib)*Y(Cr49)*Y(N)*state.rho + screened_rates(k_V49_p_to_n_Cr49_derived)*Y(V49)*Y(H1)*state.rho) + + (-screened_rates(k_Cr49_n_to_He4_Ti46_reaclib)*Y(Cr49)*Y(N)*state.rho + screened_rates(k_Ti46_He4_to_n_Cr49_derived)*Y(He4)*Y(Ti46)*state.rho) + + (-screened_rates(k_Cr49_He4_to_p_Mn52_reaclib)*Y(Cr49)*Y(He4)*state.rho + screened_rates(k_Mn52_p_to_He4_Cr49_derived)*Y(Mn52)*Y(H1)*state.rho) + + (screened_rates(k_Fe52_n_to_He4_Cr49_reaclib)*Y(Fe52)*Y(N)*state.rho + -screened_rates(k_Cr49_He4_to_n_Fe52_derived)*Y(Cr49)*Y(He4)*state.rho) + + (-screened_rates(k_Cr49_to_V49_electron_capture_weaktab)*Y(Cr49) + screened_rates(k_V49_to_Cr49_beta_neg_weaktab)*Y(V49)); ydot_nuc(Cr50) = - (screened_rates(k_He4_Ti46_to_Cr50_reaclib)*Y(He4)*Y(Ti46)*state.rho + -screened_rates(k_Cr50_to_He4_Ti46_reaclib)*Y(Cr50)) + - (screened_rates(k_p_V49_to_Cr50_reaclib)*Y(V49)*Y(H1)*state.rho + -screened_rates(k_Cr50_to_p_V49_reaclib)*Y(Cr50)) + - (screened_rates(k_n_Cr49_to_Cr50_reaclib)*Y(Cr49)*Y(N)*state.rho + -screened_rates(k_Cr50_to_n_Cr49_reaclib)*Y(Cr50)) + - (-screened_rates(k_n_Cr50_to_Cr51_reaclib)*Y(Cr50)*Y(N)*state.rho + screened_rates(k_Cr51_to_n_Cr50_reaclib)*Y(Cr51)) + - (-screened_rates(k_p_Cr50_to_Mn51_reaclib)*Y(Cr50)*Y(H1)*state.rho + screened_rates(k_Mn51_to_p_Cr50_reaclib)*Y(Mn51)) + - (-screened_rates(k_He4_Cr50_to_Fe54_reaclib)*Y(Cr50)*Y(He4)*state.rho + screened_rates(k_Fe54_to_He4_Cr50_reaclib)*Y(Fe54)) + - (screened_rates(k_He4_V47_to_p_Cr50_reaclib)*Y(He4)*Y(V47)*state.rho + -screened_rates(k_p_Cr50_to_He4_V47_reaclib)*Y(Cr50)*Y(H1)*state.rho) + - (screened_rates(k_p_V50_to_n_Cr50_reaclib)*Y(V50)*Y(H1)*state.rho + -screened_rates(k_n_Cr50_to_p_V50_reaclib)*Y(Cr50)*Y(N)*state.rho) + - (-screened_rates(k_n_Cr50_to_He4_Ti47_reaclib)*Y(Cr50)*Y(N)*state.rho + screened_rates(k_He4_Ti47_to_n_Cr50_reaclib)*Y(He4)*Y(Ti47)*state.rho) + - (screened_rates(k_n_Mn50_to_p_Cr50_reaclib)*Y(Mn50)*Y(N)*state.rho + -screened_rates(k_p_Cr50_to_n_Mn50_reaclib)*Y(Cr50)*Y(H1)*state.rho) + - (screened_rates(k_p_Mn53_to_He4_Cr50_reaclib)*Y(Mn53)*Y(H1)*state.rho + -screened_rates(k_He4_Cr50_to_p_Mn53_reaclib)*Y(Cr50)*Y(He4)*state.rho) + - (screened_rates(k_n_Fe53_to_He4_Cr50_reaclib)*Y(Fe53)*Y(N)*state.rho + -screened_rates(k_He4_Cr50_to_n_Fe53_reaclib)*Y(Cr50)*Y(He4)*state.rho) + - (screened_rates(k_Mn50_to_Cr50_weaktab)*Y(Mn50) + -screened_rates(k_Cr50_to_Mn50_weaktab)*Y(Cr50)) + - (screened_rates(k_V50_to_Cr50_weaktab)*Y(V50) + -screened_rates(k_Cr50_to_V50_weaktab)*Y(Cr50)); + (screened_rates(k_Ti46_He4_to_Cr50_reaclib)*Y(He4)*Y(Ti46)*state.rho + -screened_rates(k_Cr50_to_He4_Ti46_derived)*Y(Cr50)) + + (screened_rates(k_V49_p_to_Cr50_reaclib)*Y(V49)*Y(H1)*state.rho + -screened_rates(k_Cr50_to_p_V49_derived)*Y(Cr50)) + + (screened_rates(k_Cr49_n_to_Cr50_reaclib)*Y(Cr49)*Y(N)*state.rho + -screened_rates(k_Cr50_to_n_Cr49_derived)*Y(Cr50)) + + (-screened_rates(k_Cr50_n_to_Cr51_reaclib)*Y(Cr50)*Y(N)*state.rho + screened_rates(k_Cr51_to_n_Cr50_derived)*Y(Cr51)) + + (-screened_rates(k_Cr50_p_to_Mn51_reaclib)*Y(Cr50)*Y(H1)*state.rho + screened_rates(k_Mn51_to_p_Cr50_derived)*Y(Mn51)) + + (-screened_rates(k_Cr50_He4_to_Fe54_reaclib)*Y(Cr50)*Y(He4)*state.rho + screened_rates(k_Fe54_to_He4_Cr50_derived)*Y(Fe54)) + + (screened_rates(k_V47_He4_to_p_Cr50_reaclib)*Y(He4)*Y(V47)*state.rho + -screened_rates(k_Cr50_p_to_He4_V47_derived)*Y(Cr50)*Y(H1)*state.rho) + + (screened_rates(k_V50_p_to_n_Cr50_reaclib)*Y(V50)*Y(H1)*state.rho + -screened_rates(k_Cr50_n_to_p_V50_derived)*Y(Cr50)*Y(N)*state.rho) + + (-screened_rates(k_Cr50_n_to_He4_Ti47_reaclib)*Y(Cr50)*Y(N)*state.rho + screened_rates(k_Ti47_He4_to_n_Cr50_derived)*Y(He4)*Y(Ti47)*state.rho) + + (screened_rates(k_Mn50_n_to_p_Cr50_reaclib)*Y(Mn50)*Y(N)*state.rho + -screened_rates(k_Cr50_p_to_n_Mn50_derived)*Y(Cr50)*Y(H1)*state.rho) + + (screened_rates(k_Mn53_p_to_He4_Cr50_reaclib)*Y(Mn53)*Y(H1)*state.rho + -screened_rates(k_Cr50_He4_to_p_Mn53_derived)*Y(Cr50)*Y(He4)*state.rho) + + (screened_rates(k_Fe53_n_to_He4_Cr50_reaclib)*Y(Fe53)*Y(N)*state.rho + -screened_rates(k_Cr50_He4_to_n_Fe53_derived)*Y(Cr50)*Y(He4)*state.rho) + + (screened_rates(k_Mn50_to_Cr50_electron_capture_weaktab)*Y(Mn50) + -screened_rates(k_Cr50_to_Mn50_beta_neg_weaktab)*Y(Cr50)) + + (screened_rates(k_V50_to_Cr50_beta_neg_weaktab)*Y(V50) + -screened_rates(k_Cr50_to_V50_electron_capture_weaktab)*Y(Cr50)); ydot_nuc(Cr51) = - (screened_rates(k_He4_Ti47_to_Cr51_reaclib)*Y(He4)*Y(Ti47)*state.rho + -screened_rates(k_Cr51_to_He4_Ti47_reaclib)*Y(Cr51)) + - (screened_rates(k_p_V50_to_Cr51_reaclib)*Y(V50)*Y(H1)*state.rho + -screened_rates(k_Cr51_to_p_V50_reaclib)*Y(Cr51)) + - (screened_rates(k_n_Cr50_to_Cr51_reaclib)*Y(Cr50)*Y(N)*state.rho + -screened_rates(k_Cr51_to_n_Cr50_reaclib)*Y(Cr51)) + - (-screened_rates(k_n_Cr51_to_Cr52_reaclib)*Y(Cr51)*Y(N)*state.rho + screened_rates(k_Cr52_to_n_Cr51_reaclib)*Y(Cr52)) + - (-screened_rates(k_p_Cr51_to_Mn52_reaclib)*Y(Cr51)*Y(H1)*state.rho + screened_rates(k_Mn52_to_p_Cr51_reaclib)*Y(Mn52)) + - (-screened_rates(k_He4_Cr51_to_Fe55_reaclib)*Y(Cr51)*Y(He4)*state.rho + screened_rates(k_Fe55_to_He4_Cr51_reaclib)*Y(Fe55)) + - (screened_rates(k_He4_V48_to_p_Cr51_reaclib)*Y(He4)*Y(V48)*state.rho + -screened_rates(k_p_Cr51_to_He4_V48_reaclib)*Y(Cr51)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cr51_to_p_V51_reaclib)*Y(Cr51)*Y(N)*state.rho + screened_rates(k_p_V51_to_n_Cr51_reaclib)*Y(V51)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cr51_to_He4_Ti48_reaclib)*Y(Cr51)*Y(N)*state.rho + screened_rates(k_He4_Ti48_to_n_Cr51_reaclib)*Y(He4)*Y(Ti48)*state.rho) + - (screened_rates(k_n_Mn51_to_p_Cr51_reaclib)*Y(Mn51)*Y(N)*state.rho + -screened_rates(k_p_Cr51_to_n_Mn51_reaclib)*Y(Cr51)*Y(H1)*state.rho) + - (screened_rates(k_p_Mn54_to_He4_Cr51_reaclib)*Y(Mn54)*Y(H1)*state.rho + -screened_rates(k_He4_Cr51_to_p_Mn54_reaclib)*Y(Cr51)*Y(He4)*state.rho) + - (screened_rates(k_n_Fe54_to_He4_Cr51_reaclib)*Y(Fe54)*Y(N)*state.rho + -screened_rates(k_He4_Cr51_to_n_Fe54_reaclib)*Y(Cr51)*Y(He4)*state.rho) + - (-screened_rates(k_Cr51_to_V51_weaktab)*Y(Cr51) + screened_rates(k_V51_to_Cr51_weaktab)*Y(V51)) + - (screened_rates(k_Mn51_to_Cr51_weaktab)*Y(Mn51) + -screened_rates(k_Cr51_to_Mn51_weaktab)*Y(Cr51)); + (screened_rates(k_Ti47_He4_to_Cr51_reaclib)*Y(He4)*Y(Ti47)*state.rho + -screened_rates(k_Cr51_to_He4_Ti47_derived)*Y(Cr51)) + + (screened_rates(k_V50_p_to_Cr51_reaclib)*Y(V50)*Y(H1)*state.rho + -screened_rates(k_Cr51_to_p_V50_derived)*Y(Cr51)) + + (screened_rates(k_Cr50_n_to_Cr51_reaclib)*Y(Cr50)*Y(N)*state.rho + -screened_rates(k_Cr51_to_n_Cr50_derived)*Y(Cr51)) + + (-screened_rates(k_Cr51_n_to_Cr52_reaclib)*Y(Cr51)*Y(N)*state.rho + screened_rates(k_Cr52_to_n_Cr51_derived)*Y(Cr52)) + + (-screened_rates(k_Cr51_p_to_Mn52_reaclib)*Y(Cr51)*Y(H1)*state.rho + screened_rates(k_Mn52_to_p_Cr51_derived)*Y(Mn52)) + + (-screened_rates(k_Cr51_He4_to_Fe55_reaclib)*Y(Cr51)*Y(He4)*state.rho + screened_rates(k_Fe55_to_He4_Cr51_derived)*Y(Fe55)) + + (screened_rates(k_V48_He4_to_p_Cr51_reaclib)*Y(He4)*Y(V48)*state.rho + -screened_rates(k_Cr51_p_to_He4_V48_derived)*Y(Cr51)*Y(H1)*state.rho) + + (-screened_rates(k_Cr51_n_to_p_V51_reaclib)*Y(Cr51)*Y(N)*state.rho + screened_rates(k_V51_p_to_n_Cr51_derived)*Y(V51)*Y(H1)*state.rho) + + (-screened_rates(k_Cr51_n_to_He4_Ti48_reaclib)*Y(Cr51)*Y(N)*state.rho + screened_rates(k_Ti48_He4_to_n_Cr51_derived)*Y(He4)*Y(Ti48)*state.rho) + + (screened_rates(k_Mn51_n_to_p_Cr51_reaclib)*Y(Mn51)*Y(N)*state.rho + -screened_rates(k_Cr51_p_to_n_Mn51_derived)*Y(Cr51)*Y(H1)*state.rho) + + (screened_rates(k_Mn54_p_to_He4_Cr51_reaclib)*Y(Mn54)*Y(H1)*state.rho + -screened_rates(k_Cr51_He4_to_p_Mn54_derived)*Y(Cr51)*Y(He4)*state.rho) + + (screened_rates(k_Fe54_n_to_He4_Cr51_reaclib)*Y(Fe54)*Y(N)*state.rho + -screened_rates(k_Cr51_He4_to_n_Fe54_derived)*Y(Cr51)*Y(He4)*state.rho) + + (-screened_rates(k_Cr51_to_V51_electron_capture_weaktab)*Y(Cr51) + screened_rates(k_V51_to_Cr51_beta_neg_weaktab)*Y(V51)) + + (screened_rates(k_Mn51_to_Cr51_electron_capture_weaktab)*Y(Mn51) + -screened_rates(k_Cr51_to_Mn51_beta_neg_weaktab)*Y(Cr51)); ydot_nuc(Cr52) = - (screened_rates(k_He4_Ti48_to_Cr52_reaclib)*Y(He4)*Y(Ti48)*state.rho + -screened_rates(k_Cr52_to_He4_Ti48_reaclib)*Y(Cr52)) + - (screened_rates(k_p_V51_to_Cr52_reaclib)*Y(V51)*Y(H1)*state.rho + -screened_rates(k_Cr52_to_p_V51_reaclib)*Y(Cr52)) + - (screened_rates(k_n_Cr51_to_Cr52_reaclib)*Y(Cr51)*Y(N)*state.rho + -screened_rates(k_Cr52_to_n_Cr51_reaclib)*Y(Cr52)) + - (-screened_rates(k_n_Cr52_to_Cr53_reaclib)*Y(Cr52)*Y(N)*state.rho + screened_rates(k_Cr53_to_n_Cr52_reaclib)*Y(Cr53)) + - (-screened_rates(k_p_Cr52_to_Mn53_reaclib)*Y(Cr52)*Y(H1)*state.rho + screened_rates(k_Mn53_to_p_Cr52_reaclib)*Y(Mn53)) + - (-screened_rates(k_He4_Cr52_to_Fe56_reaclib)*Y(Cr52)*Y(He4)*state.rho + screened_rates(k_Fe56_to_He4_Cr52_reaclib)*Y(Fe56)) + - (screened_rates(k_He4_Ti49_to_n_Cr52_reaclib)*Y(He4)*Y(Ti49)*state.rho + -screened_rates(k_n_Cr52_to_He4_Ti49_reaclib)*Y(Cr52)*Y(N)*state.rho) + - (screened_rates(k_He4_V49_to_p_Cr52_reaclib)*Y(He4)*Y(V49)*state.rho + -screened_rates(k_p_Cr52_to_He4_V49_reaclib)*Y(Cr52)*Y(H1)*state.rho) + - (screened_rates(k_p_V52_to_n_Cr52_reaclib)*Y(V52)*Y(H1)*state.rho + -screened_rates(k_n_Cr52_to_p_V52_reaclib)*Y(Cr52)*Y(N)*state.rho) + - (screened_rates(k_n_Mn52_to_p_Cr52_reaclib)*Y(Mn52)*Y(N)*state.rho + -screened_rates(k_p_Cr52_to_n_Mn52_reaclib)*Y(Cr52)*Y(H1)*state.rho) + - (screened_rates(k_p_Mn55_to_He4_Cr52_reaclib)*Y(Mn55)*Y(H1)*state.rho + -screened_rates(k_He4_Cr52_to_p_Mn55_reaclib)*Y(Cr52)*Y(He4)*state.rho) + - (screened_rates(k_n_Fe55_to_He4_Cr52_reaclib)*Y(Fe55)*Y(N)*state.rho + -screened_rates(k_He4_Cr52_to_n_Fe55_reaclib)*Y(Cr52)*Y(He4)*state.rho) + - (screened_rates(k_Mn52_to_Cr52_weaktab)*Y(Mn52) + -screened_rates(k_Cr52_to_Mn52_weaktab)*Y(Cr52)) + - (screened_rates(k_V52_to_Cr52_weaktab)*Y(V52) + -screened_rates(k_Cr52_to_V52_weaktab)*Y(Cr52)); + (screened_rates(k_Ti48_He4_to_Cr52_reaclib)*Y(He4)*Y(Ti48)*state.rho + -screened_rates(k_Cr52_to_He4_Ti48_derived)*Y(Cr52)) + + (screened_rates(k_V51_p_to_Cr52_reaclib)*Y(V51)*Y(H1)*state.rho + -screened_rates(k_Cr52_to_p_V51_derived)*Y(Cr52)) + + (screened_rates(k_Cr51_n_to_Cr52_reaclib)*Y(Cr51)*Y(N)*state.rho + -screened_rates(k_Cr52_to_n_Cr51_derived)*Y(Cr52)) + + (-screened_rates(k_Cr52_n_to_Cr53_reaclib)*Y(Cr52)*Y(N)*state.rho + screened_rates(k_Cr53_to_n_Cr52_derived)*Y(Cr53)) + + (-screened_rates(k_Cr52_p_to_Mn53_reaclib)*Y(Cr52)*Y(H1)*state.rho + screened_rates(k_Mn53_to_p_Cr52_derived)*Y(Mn53)) + + (-screened_rates(k_Cr52_He4_to_Fe56_reaclib)*Y(Cr52)*Y(He4)*state.rho + screened_rates(k_Fe56_to_He4_Cr52_derived)*Y(Fe56)) + + (screened_rates(k_Ti49_He4_to_n_Cr52_reaclib)*Y(He4)*Y(Ti49)*state.rho + -screened_rates(k_Cr52_n_to_He4_Ti49_derived)*Y(Cr52)*Y(N)*state.rho) + + (screened_rates(k_V49_He4_to_p_Cr52_reaclib)*Y(He4)*Y(V49)*state.rho + -screened_rates(k_Cr52_p_to_He4_V49_derived)*Y(Cr52)*Y(H1)*state.rho) + + (screened_rates(k_V52_p_to_n_Cr52_reaclib)*Y(V52)*Y(H1)*state.rho + -screened_rates(k_Cr52_n_to_p_V52_derived)*Y(Cr52)*Y(N)*state.rho) + + (screened_rates(k_Mn52_n_to_p_Cr52_reaclib)*Y(Mn52)*Y(N)*state.rho + -screened_rates(k_Cr52_p_to_n_Mn52_derived)*Y(Cr52)*Y(H1)*state.rho) + + (screened_rates(k_Mn55_p_to_He4_Cr52_reaclib)*Y(Mn55)*Y(H1)*state.rho + -screened_rates(k_Cr52_He4_to_p_Mn55_derived)*Y(Cr52)*Y(He4)*state.rho) + + (screened_rates(k_Fe55_n_to_He4_Cr52_reaclib)*Y(Fe55)*Y(N)*state.rho + -screened_rates(k_Cr52_He4_to_n_Fe55_derived)*Y(Cr52)*Y(He4)*state.rho) + + (screened_rates(k_Mn52_to_Cr52_electron_capture_weaktab)*Y(Mn52) + -screened_rates(k_Cr52_to_Mn52_beta_neg_weaktab)*Y(Cr52)) + + (screened_rates(k_V52_to_Cr52_beta_neg_weaktab)*Y(V52) + -screened_rates(k_Cr52_to_V52_electron_capture_weaktab)*Y(Cr52)); ydot_nuc(Cr53) = - (screened_rates(k_He4_Ti49_to_Cr53_reaclib)*Y(He4)*Y(Ti49)*state.rho + -screened_rates(k_Cr53_to_He4_Ti49_reaclib)*Y(Cr53)) + - (screened_rates(k_p_V52_to_Cr53_reaclib)*Y(V52)*Y(H1)*state.rho + -screened_rates(k_Cr53_to_p_V52_reaclib)*Y(Cr53)) + - (screened_rates(k_n_Cr52_to_Cr53_reaclib)*Y(Cr52)*Y(N)*state.rho + -screened_rates(k_Cr53_to_n_Cr52_reaclib)*Y(Cr53)) + - (-screened_rates(k_n_Cr53_to_Cr54_reaclib)*Y(Cr53)*Y(N)*state.rho + screened_rates(k_Cr54_to_n_Cr53_reaclib)*Y(Cr54)) + - (-screened_rates(k_p_Cr53_to_Mn54_reaclib)*Y(Cr53)*Y(H1)*state.rho + screened_rates(k_Mn54_to_p_Cr53_reaclib)*Y(Mn54)) + - (-screened_rates(k_He4_Cr53_to_Fe57_reaclib)*Y(Cr53)*Y(He4)*state.rho + screened_rates(k_Fe57_to_He4_Cr53_reaclib)*Y(Fe57)) + - (screened_rates(k_He4_V50_to_p_Cr53_reaclib)*Y(He4)*Y(V50)*state.rho + -screened_rates(k_p_Cr53_to_He4_V50_reaclib)*Y(Cr53)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cr53_to_He4_Ti50_reaclib)*Y(Cr53)*Y(N)*state.rho + screened_rates(k_He4_Ti50_to_n_Cr53_reaclib)*Y(He4)*Y(Ti50)*state.rho) + - (screened_rates(k_n_Mn53_to_p_Cr53_reaclib)*Y(Mn53)*Y(N)*state.rho + -screened_rates(k_p_Cr53_to_n_Mn53_reaclib)*Y(Cr53)*Y(H1)*state.rho) + - (screened_rates(k_n_Fe56_to_He4_Cr53_reaclib)*Y(Fe56)*Y(N)*state.rho + -screened_rates(k_He4_Cr53_to_n_Fe56_reaclib)*Y(Cr53)*Y(He4)*state.rho) + - (screened_rates(k_Mn53_to_Cr53_weaktab)*Y(Mn53) + -screened_rates(k_Cr53_to_Mn53_weaktab)*Y(Cr53)); + (screened_rates(k_Ti49_He4_to_Cr53_reaclib)*Y(He4)*Y(Ti49)*state.rho + -screened_rates(k_Cr53_to_He4_Ti49_derived)*Y(Cr53)) + + (screened_rates(k_V52_p_to_Cr53_reaclib)*Y(V52)*Y(H1)*state.rho + -screened_rates(k_Cr53_to_p_V52_derived)*Y(Cr53)) + + (screened_rates(k_Cr52_n_to_Cr53_reaclib)*Y(Cr52)*Y(N)*state.rho + -screened_rates(k_Cr53_to_n_Cr52_derived)*Y(Cr53)) + + (-screened_rates(k_Cr53_n_to_Cr54_reaclib)*Y(Cr53)*Y(N)*state.rho + screened_rates(k_Cr54_to_n_Cr53_derived)*Y(Cr54)) + + (-screened_rates(k_Cr53_p_to_Mn54_reaclib)*Y(Cr53)*Y(H1)*state.rho + screened_rates(k_Mn54_to_p_Cr53_derived)*Y(Mn54)) + + (-screened_rates(k_Cr53_He4_to_Fe57_reaclib)*Y(Cr53)*Y(He4)*state.rho + screened_rates(k_Fe57_to_He4_Cr53_derived)*Y(Fe57)) + + (screened_rates(k_V50_He4_to_p_Cr53_reaclib)*Y(He4)*Y(V50)*state.rho + -screened_rates(k_Cr53_p_to_He4_V50_derived)*Y(Cr53)*Y(H1)*state.rho) + + (-screened_rates(k_Cr53_n_to_He4_Ti50_reaclib)*Y(Cr53)*Y(N)*state.rho + screened_rates(k_Ti50_He4_to_n_Cr53_derived)*Y(He4)*Y(Ti50)*state.rho) + + (screened_rates(k_Mn53_n_to_p_Cr53_reaclib)*Y(Mn53)*Y(N)*state.rho + -screened_rates(k_Cr53_p_to_n_Mn53_derived)*Y(Cr53)*Y(H1)*state.rho) + + (screened_rates(k_Fe56_n_to_He4_Cr53_reaclib)*Y(Fe56)*Y(N)*state.rho + -screened_rates(k_Cr53_He4_to_n_Fe56_derived)*Y(Cr53)*Y(He4)*state.rho) + + (screened_rates(k_Mn53_to_Cr53_electron_capture_weaktab)*Y(Mn53) + -screened_rates(k_Cr53_to_Mn53_beta_neg_weaktab)*Y(Cr53)); ydot_nuc(Cr54) = - (screened_rates(k_He4_Ti50_to_Cr54_reaclib)*Y(He4)*Y(Ti50)*state.rho + -screened_rates(k_Cr54_to_He4_Ti50_reaclib)*Y(Cr54)) + - (screened_rates(k_n_Cr53_to_Cr54_reaclib)*Y(Cr53)*Y(N)*state.rho + -screened_rates(k_Cr54_to_n_Cr53_reaclib)*Y(Cr54)) + - (-screened_rates(k_p_Cr54_to_Mn55_reaclib)*Y(Cr54)*Y(H1)*state.rho + screened_rates(k_Mn55_to_p_Cr54_reaclib)*Y(Mn55)) + - (-screened_rates(k_He4_Cr54_to_Fe58_reaclib)*Y(Cr54)*Y(He4)*state.rho + screened_rates(k_Fe58_to_He4_Cr54_reaclib)*Y(Fe58)) + - (screened_rates(k_He4_Ti51_to_n_Cr54_reaclib)*Y(He4)*Y(Ti51)*state.rho + -screened_rates(k_n_Cr54_to_He4_Ti51_reaclib)*Y(Cr54)*Y(N)*state.rho) + - (-screened_rates(k_p_Cr54_to_He4_V51_reaclib)*Y(Cr54)*Y(H1)*state.rho + screened_rates(k_He4_V51_to_p_Cr54_reaclib)*Y(He4)*Y(V51)*state.rho) + - (screened_rates(k_n_Mn54_to_p_Cr54_reaclib)*Y(Mn54)*Y(N)*state.rho + -screened_rates(k_p_Cr54_to_n_Mn54_reaclib)*Y(Cr54)*Y(H1)*state.rho) + - (screened_rates(k_n_Fe57_to_He4_Cr54_reaclib)*Y(Fe57)*Y(N)*state.rho + -screened_rates(k_He4_Cr54_to_n_Fe57_reaclib)*Y(Cr54)*Y(He4)*state.rho) + - (screened_rates(k_Mn54_to_Cr54_weaktab)*Y(Mn54) + -screened_rates(k_Cr54_to_Mn54_weaktab)*Y(Cr54)); + (screened_rates(k_Ti50_He4_to_Cr54_reaclib)*Y(He4)*Y(Ti50)*state.rho + -screened_rates(k_Cr54_to_He4_Ti50_derived)*Y(Cr54)) + + (screened_rates(k_Cr53_n_to_Cr54_reaclib)*Y(Cr53)*Y(N)*state.rho + -screened_rates(k_Cr54_to_n_Cr53_derived)*Y(Cr54)) + + (-screened_rates(k_Cr54_p_to_Mn55_reaclib)*Y(Cr54)*Y(H1)*state.rho + screened_rates(k_Mn55_to_p_Cr54_derived)*Y(Mn55)) + + (-screened_rates(k_Cr54_He4_to_Fe58_reaclib)*Y(Cr54)*Y(He4)*state.rho + screened_rates(k_Fe58_to_He4_Cr54_derived)*Y(Fe58)) + + (screened_rates(k_Ti51_He4_to_n_Cr54_reaclib)*Y(He4)*Y(Ti51)*state.rho + -screened_rates(k_Cr54_n_to_He4_Ti51_derived)*Y(Cr54)*Y(N)*state.rho) + + (-screened_rates(k_Cr54_p_to_He4_V51_reaclib)*Y(Cr54)*Y(H1)*state.rho + screened_rates(k_V51_He4_to_p_Cr54_derived)*Y(He4)*Y(V51)*state.rho) + + (screened_rates(k_Mn54_n_to_p_Cr54_reaclib)*Y(Mn54)*Y(N)*state.rho + -screened_rates(k_Cr54_p_to_n_Mn54_derived)*Y(Cr54)*Y(H1)*state.rho) + + (screened_rates(k_Fe57_n_to_He4_Cr54_reaclib)*Y(Fe57)*Y(N)*state.rho + -screened_rates(k_Cr54_He4_to_n_Fe57_derived)*Y(Cr54)*Y(He4)*state.rho) + + (screened_rates(k_Mn54_to_Cr54_electron_capture_weaktab)*Y(Mn54) + -screened_rates(k_Cr54_to_Mn54_beta_neg_weaktab)*Y(Cr54)); ydot_nuc(Mn50) = - (screened_rates(k_He4_V46_to_Mn50_reaclib)*Y(He4)*Y(V46)*state.rho + -screened_rates(k_Mn50_to_He4_V46_reaclib)*Y(Mn50)) + - (screened_rates(k_p_Cr49_to_Mn50_reaclib)*Y(Cr49)*Y(H1)*state.rho + -screened_rates(k_Mn50_to_p_Cr49_reaclib)*Y(Mn50)) + - (-screened_rates(k_n_Mn50_to_Mn51_reaclib)*Y(Mn50)*Y(N)*state.rho + screened_rates(k_Mn51_to_n_Mn50_reaclib)*Y(Mn51)) + - (-screened_rates(k_He4_Mn50_to_Co54_reaclib)*Y(He4)*Y(Mn50)*state.rho + screened_rates(k_Co54_to_He4_Mn50_reaclib)*Y(Co54)) + - (-screened_rates(k_n_Mn50_to_p_Cr50_reaclib)*Y(Mn50)*Y(N)*state.rho + screened_rates(k_p_Cr50_to_n_Mn50_reaclib)*Y(Cr50)*Y(H1)*state.rho) + - (-screened_rates(k_n_Mn50_to_He4_V47_reaclib)*Y(Mn50)*Y(N)*state.rho + screened_rates(k_He4_V47_to_n_Mn50_reaclib)*Y(He4)*Y(V47)*state.rho) + - (-screened_rates(k_He4_Mn50_to_p_Fe53_reaclib)*Y(He4)*Y(Mn50)*state.rho + screened_rates(k_p_Fe53_to_He4_Mn50_reaclib)*Y(Fe53)*Y(H1)*state.rho) + - (screened_rates(k_n_Co53_to_He4_Mn50_reaclib)*Y(Co53)*Y(N)*state.rho + -screened_rates(k_He4_Mn50_to_n_Co53_reaclib)*Y(He4)*Y(Mn50)*state.rho) + - (-screened_rates(k_Mn50_to_Cr50_weaktab)*Y(Mn50) + screened_rates(k_Cr50_to_Mn50_weaktab)*Y(Cr50)); + (screened_rates(k_V46_He4_to_Mn50_reaclib)*Y(He4)*Y(V46)*state.rho + -screened_rates(k_Mn50_to_He4_V46_derived)*Y(Mn50)) + + (screened_rates(k_Cr49_p_to_Mn50_reaclib)*Y(Cr49)*Y(H1)*state.rho + -screened_rates(k_Mn50_to_p_Cr49_derived)*Y(Mn50)) + + (-screened_rates(k_Mn50_n_to_Mn51_reaclib)*Y(Mn50)*Y(N)*state.rho + screened_rates(k_Mn51_to_n_Mn50_derived)*Y(Mn51)) + + (-screened_rates(k_Mn50_He4_to_Co54_reaclib)*Y(He4)*Y(Mn50)*state.rho + screened_rates(k_Co54_to_He4_Mn50_derived)*Y(Co54)) + + (-screened_rates(k_Mn50_n_to_p_Cr50_reaclib)*Y(Mn50)*Y(N)*state.rho + screened_rates(k_Cr50_p_to_n_Mn50_derived)*Y(Cr50)*Y(H1)*state.rho) + + (-screened_rates(k_Mn50_n_to_He4_V47_reaclib)*Y(Mn50)*Y(N)*state.rho + screened_rates(k_V47_He4_to_n_Mn50_derived)*Y(He4)*Y(V47)*state.rho) + + (-screened_rates(k_Mn50_He4_to_p_Fe53_reaclib)*Y(He4)*Y(Mn50)*state.rho + screened_rates(k_Fe53_p_to_He4_Mn50_derived)*Y(Fe53)*Y(H1)*state.rho) + + (screened_rates(k_Co53_n_to_He4_Mn50_reaclib)*Y(Co53)*Y(N)*state.rho + -screened_rates(k_Mn50_He4_to_n_Co53_derived)*Y(He4)*Y(Mn50)*state.rho) + + (-screened_rates(k_Mn50_to_Cr50_electron_capture_weaktab)*Y(Mn50) + screened_rates(k_Cr50_to_Mn50_beta_neg_weaktab)*Y(Cr50)); ydot_nuc(Mn51) = - (screened_rates(k_He4_V47_to_Mn51_reaclib)*Y(He4)*Y(V47)*state.rho + -screened_rates(k_Mn51_to_He4_V47_reaclib)*Y(Mn51)) + - (screened_rates(k_p_Cr50_to_Mn51_reaclib)*Y(Cr50)*Y(H1)*state.rho + -screened_rates(k_Mn51_to_p_Cr50_reaclib)*Y(Mn51)) + - (screened_rates(k_n_Mn50_to_Mn51_reaclib)*Y(Mn50)*Y(N)*state.rho + -screened_rates(k_Mn51_to_n_Mn50_reaclib)*Y(Mn51)) + - (-screened_rates(k_n_Mn51_to_Mn52_reaclib)*Y(Mn51)*Y(N)*state.rho + screened_rates(k_Mn52_to_n_Mn51_reaclib)*Y(Mn52)) + - (-screened_rates(k_p_Mn51_to_Fe52_reaclib)*Y(Mn51)*Y(H1)*state.rho + screened_rates(k_Fe52_to_p_Mn51_reaclib)*Y(Fe52)) + - (-screened_rates(k_He4_Mn51_to_Co55_reaclib)*Y(He4)*Y(Mn51)*state.rho + screened_rates(k_Co55_to_He4_Mn51_reaclib)*Y(Co55)) + - (screened_rates(k_He4_Cr48_to_p_Mn51_reaclib)*Y(Cr48)*Y(He4)*state.rho + -screened_rates(k_p_Mn51_to_He4_Cr48_reaclib)*Y(Mn51)*Y(H1)*state.rho) + - (-screened_rates(k_n_Mn51_to_p_Cr51_reaclib)*Y(Mn51)*Y(N)*state.rho + screened_rates(k_p_Cr51_to_n_Mn51_reaclib)*Y(Cr51)*Y(H1)*state.rho) + - (-screened_rates(k_n_Mn51_to_He4_V48_reaclib)*Y(Mn51)*Y(N)*state.rho + screened_rates(k_He4_V48_to_n_Mn51_reaclib)*Y(He4)*Y(V48)*state.rho) + - (-screened_rates(k_He4_Mn51_to_p_Fe54_reaclib)*Y(He4)*Y(Mn51)*state.rho + screened_rates(k_p_Fe54_to_He4_Mn51_reaclib)*Y(Fe54)*Y(H1)*state.rho) + - (screened_rates(k_n_Co54_to_He4_Mn51_reaclib)*Y(Co54)*Y(N)*state.rho + -screened_rates(k_He4_Mn51_to_n_Co54_reaclib)*Y(He4)*Y(Mn51)*state.rho) + - (-screened_rates(k_Mn51_to_Cr51_weaktab)*Y(Mn51) + screened_rates(k_Cr51_to_Mn51_weaktab)*Y(Cr51)); + (screened_rates(k_V47_He4_to_Mn51_reaclib)*Y(He4)*Y(V47)*state.rho + -screened_rates(k_Mn51_to_He4_V47_derived)*Y(Mn51)) + + (screened_rates(k_Cr50_p_to_Mn51_reaclib)*Y(Cr50)*Y(H1)*state.rho + -screened_rates(k_Mn51_to_p_Cr50_derived)*Y(Mn51)) + + (screened_rates(k_Mn50_n_to_Mn51_reaclib)*Y(Mn50)*Y(N)*state.rho + -screened_rates(k_Mn51_to_n_Mn50_derived)*Y(Mn51)) + + (-screened_rates(k_Mn51_n_to_Mn52_reaclib)*Y(Mn51)*Y(N)*state.rho + screened_rates(k_Mn52_to_n_Mn51_derived)*Y(Mn52)) + + (-screened_rates(k_Mn51_p_to_Fe52_reaclib)*Y(Mn51)*Y(H1)*state.rho + screened_rates(k_Fe52_to_p_Mn51_derived)*Y(Fe52)) + + (-screened_rates(k_Mn51_He4_to_Co55_reaclib)*Y(He4)*Y(Mn51)*state.rho + screened_rates(k_Co55_to_He4_Mn51_derived)*Y(Co55)) + + (screened_rates(k_Cr48_He4_to_p_Mn51_reaclib)*Y(Cr48)*Y(He4)*state.rho + -screened_rates(k_Mn51_p_to_He4_Cr48_derived)*Y(Mn51)*Y(H1)*state.rho) + + (-screened_rates(k_Mn51_n_to_p_Cr51_reaclib)*Y(Mn51)*Y(N)*state.rho + screened_rates(k_Cr51_p_to_n_Mn51_derived)*Y(Cr51)*Y(H1)*state.rho) + + (-screened_rates(k_Mn51_n_to_He4_V48_reaclib)*Y(Mn51)*Y(N)*state.rho + screened_rates(k_V48_He4_to_n_Mn51_derived)*Y(He4)*Y(V48)*state.rho) + + (-screened_rates(k_Mn51_He4_to_p_Fe54_reaclib)*Y(He4)*Y(Mn51)*state.rho + screened_rates(k_Fe54_p_to_He4_Mn51_derived)*Y(Fe54)*Y(H1)*state.rho) + + (screened_rates(k_Co54_n_to_He4_Mn51_reaclib)*Y(Co54)*Y(N)*state.rho + -screened_rates(k_Mn51_He4_to_n_Co54_derived)*Y(He4)*Y(Mn51)*state.rho) + + (-screened_rates(k_Mn51_to_Cr51_electron_capture_weaktab)*Y(Mn51) + screened_rates(k_Cr51_to_Mn51_beta_neg_weaktab)*Y(Cr51)); ydot_nuc(Mn52) = - (screened_rates(k_He4_V48_to_Mn52_reaclib)*Y(He4)*Y(V48)*state.rho + -screened_rates(k_Mn52_to_He4_V48_reaclib)*Y(Mn52)) + - (screened_rates(k_p_Cr51_to_Mn52_reaclib)*Y(Cr51)*Y(H1)*state.rho + -screened_rates(k_Mn52_to_p_Cr51_reaclib)*Y(Mn52)) + - (screened_rates(k_n_Mn51_to_Mn52_reaclib)*Y(Mn51)*Y(N)*state.rho + -screened_rates(k_Mn52_to_n_Mn51_reaclib)*Y(Mn52)) + - (-screened_rates(k_n_Mn52_to_Mn53_reaclib)*Y(Mn52)*Y(N)*state.rho + screened_rates(k_Mn53_to_n_Mn52_reaclib)*Y(Mn53)) + - (-screened_rates(k_p_Mn52_to_Fe53_reaclib)*Y(Mn52)*Y(H1)*state.rho + screened_rates(k_Fe53_to_p_Mn52_reaclib)*Y(Fe53)) + - (-screened_rates(k_He4_Mn52_to_Co56_reaclib)*Y(He4)*Y(Mn52)*state.rho + screened_rates(k_Co56_to_He4_Mn52_reaclib)*Y(Co56)) + - (screened_rates(k_He4_Cr49_to_p_Mn52_reaclib)*Y(Cr49)*Y(He4)*state.rho + -screened_rates(k_p_Mn52_to_He4_Cr49_reaclib)*Y(Mn52)*Y(H1)*state.rho) + - (-screened_rates(k_n_Mn52_to_p_Cr52_reaclib)*Y(Mn52)*Y(N)*state.rho + screened_rates(k_p_Cr52_to_n_Mn52_reaclib)*Y(Cr52)*Y(H1)*state.rho) + - (-screened_rates(k_n_Mn52_to_He4_V49_reaclib)*Y(Mn52)*Y(N)*state.rho + screened_rates(k_He4_V49_to_n_Mn52_reaclib)*Y(He4)*Y(V49)*state.rho) + - (-screened_rates(k_He4_Mn52_to_p_Fe55_reaclib)*Y(He4)*Y(Mn52)*state.rho + screened_rates(k_p_Fe55_to_He4_Mn52_reaclib)*Y(Fe55)*Y(H1)*state.rho) + - (screened_rates(k_n_Fe52_to_p_Mn52_reaclib)*Y(Fe52)*Y(N)*state.rho + -screened_rates(k_p_Mn52_to_n_Fe52_reaclib)*Y(Mn52)*Y(H1)*state.rho) + - (screened_rates(k_n_Co55_to_He4_Mn52_reaclib)*Y(Co55)*Y(N)*state.rho + -screened_rates(k_He4_Mn52_to_n_Co55_reaclib)*Y(He4)*Y(Mn52)*state.rho) + - (screened_rates(k_Fe52_to_Mn52_weaktab)*Y(Fe52) + -screened_rates(k_Mn52_to_Fe52_weaktab)*Y(Mn52)) + - (-screened_rates(k_Mn52_to_Cr52_weaktab)*Y(Mn52) + screened_rates(k_Cr52_to_Mn52_weaktab)*Y(Cr52)); + (screened_rates(k_V48_He4_to_Mn52_reaclib)*Y(He4)*Y(V48)*state.rho + -screened_rates(k_Mn52_to_He4_V48_derived)*Y(Mn52)) + + (screened_rates(k_Cr51_p_to_Mn52_reaclib)*Y(Cr51)*Y(H1)*state.rho + -screened_rates(k_Mn52_to_p_Cr51_derived)*Y(Mn52)) + + (screened_rates(k_Mn51_n_to_Mn52_reaclib)*Y(Mn51)*Y(N)*state.rho + -screened_rates(k_Mn52_to_n_Mn51_derived)*Y(Mn52)) + + (-screened_rates(k_Mn52_n_to_Mn53_reaclib)*Y(Mn52)*Y(N)*state.rho + screened_rates(k_Mn53_to_n_Mn52_derived)*Y(Mn53)) + + (-screened_rates(k_Mn52_p_to_Fe53_reaclib)*Y(Mn52)*Y(H1)*state.rho + screened_rates(k_Fe53_to_p_Mn52_derived)*Y(Fe53)) + + (-screened_rates(k_Mn52_He4_to_Co56_reaclib)*Y(He4)*Y(Mn52)*state.rho + screened_rates(k_Co56_to_He4_Mn52_derived)*Y(Co56)) + + (screened_rates(k_Cr49_He4_to_p_Mn52_reaclib)*Y(Cr49)*Y(He4)*state.rho + -screened_rates(k_Mn52_p_to_He4_Cr49_derived)*Y(Mn52)*Y(H1)*state.rho) + + (-screened_rates(k_Mn52_n_to_p_Cr52_reaclib)*Y(Mn52)*Y(N)*state.rho + screened_rates(k_Cr52_p_to_n_Mn52_derived)*Y(Cr52)*Y(H1)*state.rho) + + (-screened_rates(k_Mn52_n_to_He4_V49_reaclib)*Y(Mn52)*Y(N)*state.rho + screened_rates(k_V49_He4_to_n_Mn52_derived)*Y(He4)*Y(V49)*state.rho) + + (-screened_rates(k_Mn52_He4_to_p_Fe55_reaclib)*Y(He4)*Y(Mn52)*state.rho + screened_rates(k_Fe55_p_to_He4_Mn52_derived)*Y(Fe55)*Y(H1)*state.rho) + + (screened_rates(k_Fe52_n_to_p_Mn52_reaclib)*Y(Fe52)*Y(N)*state.rho + -screened_rates(k_Mn52_p_to_n_Fe52_derived)*Y(Mn52)*Y(H1)*state.rho) + + (screened_rates(k_Co55_n_to_He4_Mn52_reaclib)*Y(Co55)*Y(N)*state.rho + -screened_rates(k_Mn52_He4_to_n_Co55_derived)*Y(He4)*Y(Mn52)*state.rho) + + (screened_rates(k_Fe52_to_Mn52_electron_capture_weaktab)*Y(Fe52) + -screened_rates(k_Mn52_to_Fe52_beta_neg_weaktab)*Y(Mn52)) + + (-screened_rates(k_Mn52_to_Cr52_electron_capture_weaktab)*Y(Mn52) + screened_rates(k_Cr52_to_Mn52_beta_neg_weaktab)*Y(Cr52)); ydot_nuc(Mn53) = - (screened_rates(k_He4_V49_to_Mn53_reaclib)*Y(He4)*Y(V49)*state.rho + -screened_rates(k_Mn53_to_He4_V49_reaclib)*Y(Mn53)) + - (screened_rates(k_p_Cr52_to_Mn53_reaclib)*Y(Cr52)*Y(H1)*state.rho + -screened_rates(k_Mn53_to_p_Cr52_reaclib)*Y(Mn53)) + - (screened_rates(k_n_Mn52_to_Mn53_reaclib)*Y(Mn52)*Y(N)*state.rho + -screened_rates(k_Mn53_to_n_Mn52_reaclib)*Y(Mn53)) + - (-screened_rates(k_n_Mn53_to_Mn54_reaclib)*Y(Mn53)*Y(N)*state.rho + screened_rates(k_Mn54_to_n_Mn53_reaclib)*Y(Mn54)) + - (-screened_rates(k_p_Mn53_to_Fe54_reaclib)*Y(Mn53)*Y(H1)*state.rho + screened_rates(k_Fe54_to_p_Mn53_reaclib)*Y(Fe54)) + - (-screened_rates(k_He4_Mn53_to_Co57_reaclib)*Y(He4)*Y(Mn53)*state.rho + screened_rates(k_Co57_to_He4_Mn53_reaclib)*Y(Co57)) + - (-screened_rates(k_n_Mn53_to_p_Cr53_reaclib)*Y(Mn53)*Y(N)*state.rho + screened_rates(k_p_Cr53_to_n_Mn53_reaclib)*Y(Cr53)*Y(H1)*state.rho) + - (-screened_rates(k_n_Mn53_to_He4_V50_reaclib)*Y(Mn53)*Y(N)*state.rho + screened_rates(k_He4_V50_to_n_Mn53_reaclib)*Y(He4)*Y(V50)*state.rho) + - (-screened_rates(k_p_Mn53_to_He4_Cr50_reaclib)*Y(Mn53)*Y(H1)*state.rho + screened_rates(k_He4_Cr50_to_p_Mn53_reaclib)*Y(Cr50)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Mn53_to_p_Fe56_reaclib)*Y(He4)*Y(Mn53)*state.rho + screened_rates(k_p_Fe56_to_He4_Mn53_reaclib)*Y(Fe56)*Y(H1)*state.rho) + - (screened_rates(k_n_Fe53_to_p_Mn53_reaclib)*Y(Fe53)*Y(N)*state.rho + -screened_rates(k_p_Mn53_to_n_Fe53_reaclib)*Y(Mn53)*Y(H1)*state.rho) + - (screened_rates(k_n_Co56_to_He4_Mn53_reaclib)*Y(Co56)*Y(N)*state.rho + -screened_rates(k_He4_Mn53_to_n_Co56_reaclib)*Y(He4)*Y(Mn53)*state.rho) + - (screened_rates(k_Fe53_to_Mn53_weaktab)*Y(Fe53) + -screened_rates(k_Mn53_to_Fe53_weaktab)*Y(Mn53)) + - (-screened_rates(k_Mn53_to_Cr53_weaktab)*Y(Mn53) + screened_rates(k_Cr53_to_Mn53_weaktab)*Y(Cr53)); + (screened_rates(k_V49_He4_to_Mn53_reaclib)*Y(He4)*Y(V49)*state.rho + -screened_rates(k_Mn53_to_He4_V49_derived)*Y(Mn53)) + + (screened_rates(k_Cr52_p_to_Mn53_reaclib)*Y(Cr52)*Y(H1)*state.rho + -screened_rates(k_Mn53_to_p_Cr52_derived)*Y(Mn53)) + + (screened_rates(k_Mn52_n_to_Mn53_reaclib)*Y(Mn52)*Y(N)*state.rho + -screened_rates(k_Mn53_to_n_Mn52_derived)*Y(Mn53)) + + (-screened_rates(k_Mn53_n_to_Mn54_reaclib)*Y(Mn53)*Y(N)*state.rho + screened_rates(k_Mn54_to_n_Mn53_derived)*Y(Mn54)) + + (-screened_rates(k_Mn53_p_to_Fe54_reaclib)*Y(Mn53)*Y(H1)*state.rho + screened_rates(k_Fe54_to_p_Mn53_derived)*Y(Fe54)) + + (-screened_rates(k_Mn53_He4_to_Co57_reaclib)*Y(He4)*Y(Mn53)*state.rho + screened_rates(k_Co57_to_He4_Mn53_derived)*Y(Co57)) + + (-screened_rates(k_Mn53_n_to_p_Cr53_reaclib)*Y(Mn53)*Y(N)*state.rho + screened_rates(k_Cr53_p_to_n_Mn53_derived)*Y(Cr53)*Y(H1)*state.rho) + + (-screened_rates(k_Mn53_n_to_He4_V50_reaclib)*Y(Mn53)*Y(N)*state.rho + screened_rates(k_V50_He4_to_n_Mn53_derived)*Y(He4)*Y(V50)*state.rho) + + (-screened_rates(k_Mn53_p_to_He4_Cr50_reaclib)*Y(Mn53)*Y(H1)*state.rho + screened_rates(k_Cr50_He4_to_p_Mn53_derived)*Y(Cr50)*Y(He4)*state.rho) + + (-screened_rates(k_Mn53_He4_to_p_Fe56_reaclib)*Y(He4)*Y(Mn53)*state.rho + screened_rates(k_Fe56_p_to_He4_Mn53_derived)*Y(Fe56)*Y(H1)*state.rho) + + (screened_rates(k_Fe53_n_to_p_Mn53_reaclib)*Y(Fe53)*Y(N)*state.rho + -screened_rates(k_Mn53_p_to_n_Fe53_derived)*Y(Mn53)*Y(H1)*state.rho) + + (screened_rates(k_Co56_n_to_He4_Mn53_reaclib)*Y(Co56)*Y(N)*state.rho + -screened_rates(k_Mn53_He4_to_n_Co56_derived)*Y(He4)*Y(Mn53)*state.rho) + + (screened_rates(k_Fe53_to_Mn53_electron_capture_weaktab)*Y(Fe53) + -screened_rates(k_Mn53_to_Fe53_beta_neg_weaktab)*Y(Mn53)) + + (-screened_rates(k_Mn53_to_Cr53_electron_capture_weaktab)*Y(Mn53) + screened_rates(k_Cr53_to_Mn53_beta_neg_weaktab)*Y(Cr53)); ydot_nuc(Mn54) = - (screened_rates(k_He4_V50_to_Mn54_reaclib)*Y(He4)*Y(V50)*state.rho + -screened_rates(k_Mn54_to_He4_V50_reaclib)*Y(Mn54)) + - (screened_rates(k_p_Cr53_to_Mn54_reaclib)*Y(Cr53)*Y(H1)*state.rho + -screened_rates(k_Mn54_to_p_Cr53_reaclib)*Y(Mn54)) + - (screened_rates(k_n_Mn53_to_Mn54_reaclib)*Y(Mn53)*Y(N)*state.rho + -screened_rates(k_Mn54_to_n_Mn53_reaclib)*Y(Mn54)) + - (-screened_rates(k_n_Mn54_to_Mn55_reaclib)*Y(Mn54)*Y(N)*state.rho + screened_rates(k_Mn55_to_n_Mn54_reaclib)*Y(Mn55)) + - (-screened_rates(k_p_Mn54_to_Fe55_reaclib)*Y(Mn54)*Y(H1)*state.rho + screened_rates(k_Fe55_to_p_Mn54_reaclib)*Y(Fe55)) + - (-screened_rates(k_He4_Mn54_to_Co58_reaclib)*Y(He4)*Y(Mn54)*state.rho + screened_rates(k_Co58_to_He4_Mn54_reaclib)*Y(Co58)) + - (-screened_rates(k_n_Mn54_to_p_Cr54_reaclib)*Y(Mn54)*Y(N)*state.rho + screened_rates(k_p_Cr54_to_n_Mn54_reaclib)*Y(Cr54)*Y(H1)*state.rho) + - (-screened_rates(k_n_Mn54_to_He4_V51_reaclib)*Y(Mn54)*Y(N)*state.rho + screened_rates(k_He4_V51_to_n_Mn54_reaclib)*Y(He4)*Y(V51)*state.rho) + - (-screened_rates(k_p_Mn54_to_He4_Cr51_reaclib)*Y(Mn54)*Y(H1)*state.rho + screened_rates(k_He4_Cr51_to_p_Mn54_reaclib)*Y(Cr51)*Y(He4)*state.rho) + - (screened_rates(k_n_Fe54_to_p_Mn54_reaclib)*Y(Fe54)*Y(N)*state.rho + -screened_rates(k_p_Mn54_to_n_Fe54_reaclib)*Y(Mn54)*Y(H1)*state.rho) + - (screened_rates(k_p_Fe57_to_He4_Mn54_reaclib)*Y(Fe57)*Y(H1)*state.rho + -screened_rates(k_He4_Mn54_to_p_Fe57_reaclib)*Y(He4)*Y(Mn54)*state.rho) + - (screened_rates(k_n_Co57_to_He4_Mn54_reaclib)*Y(Co57)*Y(N)*state.rho + -screened_rates(k_He4_Mn54_to_n_Co57_reaclib)*Y(He4)*Y(Mn54)*state.rho) + - (-screened_rates(k_Mn54_to_Cr54_weaktab)*Y(Mn54) + screened_rates(k_Cr54_to_Mn54_weaktab)*Y(Cr54)) + - (-screened_rates(k_Mn54_to_Fe54_weaktab)*Y(Mn54) + screened_rates(k_Fe54_to_Mn54_weaktab)*Y(Fe54)); + (screened_rates(k_V50_He4_to_Mn54_reaclib)*Y(He4)*Y(V50)*state.rho + -screened_rates(k_Mn54_to_He4_V50_derived)*Y(Mn54)) + + (screened_rates(k_Cr53_p_to_Mn54_reaclib)*Y(Cr53)*Y(H1)*state.rho + -screened_rates(k_Mn54_to_p_Cr53_derived)*Y(Mn54)) + + (screened_rates(k_Mn53_n_to_Mn54_reaclib)*Y(Mn53)*Y(N)*state.rho + -screened_rates(k_Mn54_to_n_Mn53_derived)*Y(Mn54)) + + (-screened_rates(k_Mn54_n_to_Mn55_reaclib)*Y(Mn54)*Y(N)*state.rho + screened_rates(k_Mn55_to_n_Mn54_derived)*Y(Mn55)) + + (-screened_rates(k_Mn54_p_to_Fe55_reaclib)*Y(Mn54)*Y(H1)*state.rho + screened_rates(k_Fe55_to_p_Mn54_derived)*Y(Fe55)) + + (-screened_rates(k_Mn54_He4_to_Co58_reaclib)*Y(He4)*Y(Mn54)*state.rho + screened_rates(k_Co58_to_He4_Mn54_derived)*Y(Co58)) + + (-screened_rates(k_Mn54_n_to_p_Cr54_reaclib)*Y(Mn54)*Y(N)*state.rho + screened_rates(k_Cr54_p_to_n_Mn54_derived)*Y(Cr54)*Y(H1)*state.rho) + + (-screened_rates(k_Mn54_n_to_He4_V51_reaclib)*Y(Mn54)*Y(N)*state.rho + screened_rates(k_V51_He4_to_n_Mn54_derived)*Y(He4)*Y(V51)*state.rho) + + (-screened_rates(k_Mn54_p_to_He4_Cr51_reaclib)*Y(Mn54)*Y(H1)*state.rho + screened_rates(k_Cr51_He4_to_p_Mn54_derived)*Y(Cr51)*Y(He4)*state.rho) + + (screened_rates(k_Fe54_n_to_p_Mn54_reaclib)*Y(Fe54)*Y(N)*state.rho + -screened_rates(k_Mn54_p_to_n_Fe54_derived)*Y(Mn54)*Y(H1)*state.rho) + + (screened_rates(k_Fe57_p_to_He4_Mn54_reaclib)*Y(Fe57)*Y(H1)*state.rho + -screened_rates(k_Mn54_He4_to_p_Fe57_derived)*Y(He4)*Y(Mn54)*state.rho) + + (screened_rates(k_Co57_n_to_He4_Mn54_reaclib)*Y(Co57)*Y(N)*state.rho + -screened_rates(k_Mn54_He4_to_n_Co57_derived)*Y(He4)*Y(Mn54)*state.rho) + + (-screened_rates(k_Mn54_to_Cr54_electron_capture_weaktab)*Y(Mn54) + screened_rates(k_Cr54_to_Mn54_beta_neg_weaktab)*Y(Cr54)) + + (-screened_rates(k_Mn54_to_Fe54_beta_neg_weaktab)*Y(Mn54) + screened_rates(k_Fe54_to_Mn54_electron_capture_weaktab)*Y(Fe54)); ydot_nuc(Mn55) = - (screened_rates(k_He4_V51_to_Mn55_reaclib)*Y(He4)*Y(V51)*state.rho + -screened_rates(k_Mn55_to_He4_V51_reaclib)*Y(Mn55)) + - (screened_rates(k_p_Cr54_to_Mn55_reaclib)*Y(Cr54)*Y(H1)*state.rho + -screened_rates(k_Mn55_to_p_Cr54_reaclib)*Y(Mn55)) + - (screened_rates(k_n_Mn54_to_Mn55_reaclib)*Y(Mn54)*Y(N)*state.rho + -screened_rates(k_Mn55_to_n_Mn54_reaclib)*Y(Mn55)) + - (-screened_rates(k_p_Mn55_to_Fe56_reaclib)*Y(Mn55)*Y(H1)*state.rho + screened_rates(k_Fe56_to_p_Mn55_reaclib)*Y(Fe56)) + - (-screened_rates(k_He4_Mn55_to_Co59_reaclib)*Y(He4)*Y(Mn55)*state.rho + screened_rates(k_Co59_to_He4_Mn55_reaclib)*Y(Co59)) + - (screened_rates(k_He4_V52_to_n_Mn55_reaclib)*Y(He4)*Y(V52)*state.rho + -screened_rates(k_n_Mn55_to_He4_V52_reaclib)*Y(Mn55)*Y(N)*state.rho) + - (-screened_rates(k_p_Mn55_to_He4_Cr52_reaclib)*Y(Mn55)*Y(H1)*state.rho + screened_rates(k_He4_Cr52_to_p_Mn55_reaclib)*Y(Cr52)*Y(He4)*state.rho) + - (screened_rates(k_n_Fe55_to_p_Mn55_reaclib)*Y(Fe55)*Y(N)*state.rho + -screened_rates(k_p_Mn55_to_n_Fe55_reaclib)*Y(Mn55)*Y(H1)*state.rho) + - (screened_rates(k_p_Fe58_to_He4_Mn55_reaclib)*Y(Fe58)*Y(H1)*state.rho + -screened_rates(k_He4_Mn55_to_p_Fe58_reaclib)*Y(He4)*Y(Mn55)*state.rho) + - (screened_rates(k_n_Co58_to_He4_Mn55_reaclib)*Y(Co58)*Y(N)*state.rho + -screened_rates(k_He4_Mn55_to_n_Co58_reaclib)*Y(He4)*Y(Mn55)*state.rho) + - (screened_rates(k_Fe55_to_Mn55_weaktab)*Y(Fe55) + -screened_rates(k_Mn55_to_Fe55_weaktab)*Y(Mn55)); + (screened_rates(k_V51_He4_to_Mn55_reaclib)*Y(He4)*Y(V51)*state.rho + -screened_rates(k_Mn55_to_He4_V51_derived)*Y(Mn55)) + + (screened_rates(k_Cr54_p_to_Mn55_reaclib)*Y(Cr54)*Y(H1)*state.rho + -screened_rates(k_Mn55_to_p_Cr54_derived)*Y(Mn55)) + + (screened_rates(k_Mn54_n_to_Mn55_reaclib)*Y(Mn54)*Y(N)*state.rho + -screened_rates(k_Mn55_to_n_Mn54_derived)*Y(Mn55)) + + (-screened_rates(k_Mn55_p_to_Fe56_reaclib)*Y(Mn55)*Y(H1)*state.rho + screened_rates(k_Fe56_to_p_Mn55_derived)*Y(Fe56)) + + (-screened_rates(k_Mn55_He4_to_Co59_reaclib)*Y(He4)*Y(Mn55)*state.rho + screened_rates(k_Co59_to_He4_Mn55_derived)*Y(Co59)) + + (screened_rates(k_V52_He4_to_n_Mn55_reaclib)*Y(He4)*Y(V52)*state.rho + -screened_rates(k_Mn55_n_to_He4_V52_derived)*Y(Mn55)*Y(N)*state.rho) + + (-screened_rates(k_Mn55_p_to_He4_Cr52_reaclib)*Y(Mn55)*Y(H1)*state.rho + screened_rates(k_Cr52_He4_to_p_Mn55_derived)*Y(Cr52)*Y(He4)*state.rho) + + (screened_rates(k_Fe55_n_to_p_Mn55_reaclib)*Y(Fe55)*Y(N)*state.rho + -screened_rates(k_Mn55_p_to_n_Fe55_derived)*Y(Mn55)*Y(H1)*state.rho) + + (screened_rates(k_Fe58_p_to_He4_Mn55_reaclib)*Y(Fe58)*Y(H1)*state.rho + -screened_rates(k_Mn55_He4_to_p_Fe58_derived)*Y(He4)*Y(Mn55)*state.rho) + + (screened_rates(k_Co58_n_to_He4_Mn55_reaclib)*Y(Co58)*Y(N)*state.rho + -screened_rates(k_Mn55_He4_to_n_Co58_derived)*Y(He4)*Y(Mn55)*state.rho) + + (screened_rates(k_Fe55_to_Mn55_electron_capture_weaktab)*Y(Fe55) + -screened_rates(k_Mn55_to_Fe55_beta_neg_weaktab)*Y(Mn55)); ydot_nuc(Fe52) = - (screened_rates(k_He4_Cr48_to_Fe52_reaclib)*Y(Cr48)*Y(He4)*state.rho + -screened_rates(k_Fe52_to_He4_Cr48_reaclib)*Y(Fe52)) + - (screened_rates(k_p_Mn51_to_Fe52_reaclib)*Y(Mn51)*Y(H1)*state.rho + -screened_rates(k_Fe52_to_p_Mn51_reaclib)*Y(Fe52)) + - (-screened_rates(k_n_Fe52_to_Fe53_reaclib)*Y(Fe52)*Y(N)*state.rho + screened_rates(k_Fe53_to_n_Fe52_reaclib)*Y(Fe53)) + - (-screened_rates(k_p_Fe52_to_Co53_reaclib)*Y(Fe52)*Y(H1)*state.rho + screened_rates(k_Co53_to_p_Fe52_reaclib)*Y(Co53)) + - (-screened_rates(k_He4_Fe52_to_Ni56_reaclib)*Y(Fe52)*Y(He4)*state.rho + screened_rates(k_Ni56_to_He4_Fe52_reaclib)*Y(Ni56)) + - (-screened_rates(k_n_Fe52_to_p_Mn52_reaclib)*Y(Fe52)*Y(N)*state.rho + screened_rates(k_p_Mn52_to_n_Fe52_reaclib)*Y(Mn52)*Y(H1)*state.rho) + - (-screened_rates(k_n_Fe52_to_He4_Cr49_reaclib)*Y(Fe52)*Y(N)*state.rho + screened_rates(k_He4_Cr49_to_n_Fe52_reaclib)*Y(Cr49)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Fe52_to_p_Co55_reaclib)*Y(Fe52)*Y(He4)*state.rho + screened_rates(k_p_Co55_to_He4_Fe52_reaclib)*Y(Co55)*Y(H1)*state.rho) + - (-screened_rates(k_Fe52_to_Mn52_weaktab)*Y(Fe52) + screened_rates(k_Mn52_to_Fe52_weaktab)*Y(Mn52)); + (screened_rates(k_Cr48_He4_to_Fe52_reaclib)*Y(Cr48)*Y(He4)*state.rho + -screened_rates(k_Fe52_to_He4_Cr48_derived)*Y(Fe52)) + + (screened_rates(k_Mn51_p_to_Fe52_reaclib)*Y(Mn51)*Y(H1)*state.rho + -screened_rates(k_Fe52_to_p_Mn51_derived)*Y(Fe52)) + + (-screened_rates(k_Fe52_n_to_Fe53_reaclib)*Y(Fe52)*Y(N)*state.rho + screened_rates(k_Fe53_to_n_Fe52_derived)*Y(Fe53)) + + (-screened_rates(k_Fe52_p_to_Co53_reaclib)*Y(Fe52)*Y(H1)*state.rho + screened_rates(k_Co53_to_p_Fe52_derived)*Y(Co53)) + + (-screened_rates(k_Fe52_He4_to_Ni56_reaclib)*Y(Fe52)*Y(He4)*state.rho + screened_rates(k_Ni56_to_He4_Fe52_derived)*Y(Ni56)) + + (-screened_rates(k_Fe52_n_to_p_Mn52_reaclib)*Y(Fe52)*Y(N)*state.rho + screened_rates(k_Mn52_p_to_n_Fe52_derived)*Y(Mn52)*Y(H1)*state.rho) + + (-screened_rates(k_Fe52_n_to_He4_Cr49_reaclib)*Y(Fe52)*Y(N)*state.rho + screened_rates(k_Cr49_He4_to_n_Fe52_derived)*Y(Cr49)*Y(He4)*state.rho) + + (-screened_rates(k_Fe52_He4_to_p_Co55_reaclib)*Y(Fe52)*Y(He4)*state.rho + screened_rates(k_Co55_p_to_He4_Fe52_derived)*Y(Co55)*Y(H1)*state.rho) + + (-screened_rates(k_Fe52_to_Mn52_electron_capture_weaktab)*Y(Fe52) + screened_rates(k_Mn52_to_Fe52_beta_neg_weaktab)*Y(Mn52)); ydot_nuc(Fe53) = - (screened_rates(k_He4_Cr49_to_Fe53_reaclib)*Y(Cr49)*Y(He4)*state.rho + -screened_rates(k_Fe53_to_He4_Cr49_reaclib)*Y(Fe53)) + - (screened_rates(k_p_Mn52_to_Fe53_reaclib)*Y(Mn52)*Y(H1)*state.rho + -screened_rates(k_Fe53_to_p_Mn52_reaclib)*Y(Fe53)) + - (screened_rates(k_n_Fe52_to_Fe53_reaclib)*Y(Fe52)*Y(N)*state.rho + -screened_rates(k_Fe53_to_n_Fe52_reaclib)*Y(Fe53)) + - (-screened_rates(k_n_Fe53_to_Fe54_reaclib)*Y(Fe53)*Y(N)*state.rho + screened_rates(k_Fe54_to_n_Fe53_reaclib)*Y(Fe54)) + - (-screened_rates(k_p_Fe53_to_Co54_reaclib)*Y(Fe53)*Y(H1)*state.rho + screened_rates(k_Co54_to_p_Fe53_reaclib)*Y(Co54)) + - (-screened_rates(k_He4_Fe53_to_Ni57_reaclib)*Y(Fe53)*Y(He4)*state.rho + screened_rates(k_Ni57_to_He4_Fe53_reaclib)*Y(Ni57)) + - (screened_rates(k_He4_Mn50_to_p_Fe53_reaclib)*Y(He4)*Y(Mn50)*state.rho + -screened_rates(k_p_Fe53_to_He4_Mn50_reaclib)*Y(Fe53)*Y(H1)*state.rho) + - (-screened_rates(k_n_Fe53_to_p_Mn53_reaclib)*Y(Fe53)*Y(N)*state.rho + screened_rates(k_p_Mn53_to_n_Fe53_reaclib)*Y(Mn53)*Y(H1)*state.rho) + - (-screened_rates(k_n_Fe53_to_He4_Cr50_reaclib)*Y(Fe53)*Y(N)*state.rho + screened_rates(k_He4_Cr50_to_n_Fe53_reaclib)*Y(Cr50)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Fe53_to_p_Co56_reaclib)*Y(Fe53)*Y(He4)*state.rho + screened_rates(k_p_Co56_to_He4_Fe53_reaclib)*Y(Co56)*Y(H1)*state.rho) + - (screened_rates(k_n_Co53_to_p_Fe53_reaclib)*Y(Co53)*Y(N)*state.rho + -screened_rates(k_p_Fe53_to_n_Co53_reaclib)*Y(Fe53)*Y(H1)*state.rho) + - (screened_rates(k_n_Ni56_to_He4_Fe53_reaclib)*Y(Ni56)*Y(N)*state.rho + -screened_rates(k_He4_Fe53_to_n_Ni56_reaclib)*Y(Fe53)*Y(He4)*state.rho) + - (screened_rates(k_Co53_to_Fe53_weaktab)*Y(Co53) + -screened_rates(k_Fe53_to_Co53_weaktab)*Y(Fe53)) + - (-screened_rates(k_Fe53_to_Mn53_weaktab)*Y(Fe53) + screened_rates(k_Mn53_to_Fe53_weaktab)*Y(Mn53)); + (screened_rates(k_Cr49_He4_to_Fe53_reaclib)*Y(Cr49)*Y(He4)*state.rho + -screened_rates(k_Fe53_to_He4_Cr49_derived)*Y(Fe53)) + + (screened_rates(k_Mn52_p_to_Fe53_reaclib)*Y(Mn52)*Y(H1)*state.rho + -screened_rates(k_Fe53_to_p_Mn52_derived)*Y(Fe53)) + + (screened_rates(k_Fe52_n_to_Fe53_reaclib)*Y(Fe52)*Y(N)*state.rho + -screened_rates(k_Fe53_to_n_Fe52_derived)*Y(Fe53)) + + (-screened_rates(k_Fe53_n_to_Fe54_reaclib)*Y(Fe53)*Y(N)*state.rho + screened_rates(k_Fe54_to_n_Fe53_derived)*Y(Fe54)) + + (-screened_rates(k_Fe53_p_to_Co54_reaclib)*Y(Fe53)*Y(H1)*state.rho + screened_rates(k_Co54_to_p_Fe53_derived)*Y(Co54)) + + (-screened_rates(k_Fe53_He4_to_Ni57_reaclib)*Y(Fe53)*Y(He4)*state.rho + screened_rates(k_Ni57_to_He4_Fe53_derived)*Y(Ni57)) + + (screened_rates(k_Mn50_He4_to_p_Fe53_reaclib)*Y(He4)*Y(Mn50)*state.rho + -screened_rates(k_Fe53_p_to_He4_Mn50_derived)*Y(Fe53)*Y(H1)*state.rho) + + (-screened_rates(k_Fe53_n_to_p_Mn53_reaclib)*Y(Fe53)*Y(N)*state.rho + screened_rates(k_Mn53_p_to_n_Fe53_derived)*Y(Mn53)*Y(H1)*state.rho) + + (-screened_rates(k_Fe53_n_to_He4_Cr50_reaclib)*Y(Fe53)*Y(N)*state.rho + screened_rates(k_Cr50_He4_to_n_Fe53_derived)*Y(Cr50)*Y(He4)*state.rho) + + (-screened_rates(k_Fe53_He4_to_p_Co56_reaclib)*Y(Fe53)*Y(He4)*state.rho + screened_rates(k_Co56_p_to_He4_Fe53_derived)*Y(Co56)*Y(H1)*state.rho) + + (screened_rates(k_Co53_n_to_p_Fe53_reaclib)*Y(Co53)*Y(N)*state.rho + -screened_rates(k_Fe53_p_to_n_Co53_derived)*Y(Fe53)*Y(H1)*state.rho) + + (screened_rates(k_Ni56_n_to_He4_Fe53_reaclib)*Y(Ni56)*Y(N)*state.rho + -screened_rates(k_Fe53_He4_to_n_Ni56_derived)*Y(Fe53)*Y(He4)*state.rho) + + (screened_rates(k_Co53_to_Fe53_electron_capture_weaktab)*Y(Co53) + -screened_rates(k_Fe53_to_Co53_beta_neg_weaktab)*Y(Fe53)) + + (-screened_rates(k_Fe53_to_Mn53_electron_capture_weaktab)*Y(Fe53) + screened_rates(k_Mn53_to_Fe53_beta_neg_weaktab)*Y(Mn53)); ydot_nuc(Fe54) = - (screened_rates(k_He4_Cr50_to_Fe54_reaclib)*Y(Cr50)*Y(He4)*state.rho + -screened_rates(k_Fe54_to_He4_Cr50_reaclib)*Y(Fe54)) + - (screened_rates(k_p_Mn53_to_Fe54_reaclib)*Y(Mn53)*Y(H1)*state.rho + -screened_rates(k_Fe54_to_p_Mn53_reaclib)*Y(Fe54)) + - (screened_rates(k_n_Fe53_to_Fe54_reaclib)*Y(Fe53)*Y(N)*state.rho + -screened_rates(k_Fe54_to_n_Fe53_reaclib)*Y(Fe54)) + - (-screened_rates(k_n_Fe54_to_Fe55_reaclib)*Y(Fe54)*Y(N)*state.rho + screened_rates(k_Fe55_to_n_Fe54_reaclib)*Y(Fe55)) + - (-screened_rates(k_p_Fe54_to_Co55_reaclib)*Y(Fe54)*Y(H1)*state.rho + screened_rates(k_Co55_to_p_Fe54_reaclib)*Y(Co55)) + - (-screened_rates(k_He4_Fe54_to_Ni58_reaclib)*Y(Fe54)*Y(He4)*state.rho + screened_rates(k_Ni58_to_He4_Fe54_reaclib)*Y(Ni58)) + - (screened_rates(k_He4_Mn51_to_p_Fe54_reaclib)*Y(He4)*Y(Mn51)*state.rho + -screened_rates(k_p_Fe54_to_He4_Mn51_reaclib)*Y(Fe54)*Y(H1)*state.rho) + - (-screened_rates(k_n_Fe54_to_p_Mn54_reaclib)*Y(Fe54)*Y(N)*state.rho + screened_rates(k_p_Mn54_to_n_Fe54_reaclib)*Y(Mn54)*Y(H1)*state.rho) + - (-screened_rates(k_n_Fe54_to_He4_Cr51_reaclib)*Y(Fe54)*Y(N)*state.rho + screened_rates(k_He4_Cr51_to_n_Fe54_reaclib)*Y(Cr51)*Y(He4)*state.rho) + - (screened_rates(k_n_Co54_to_p_Fe54_reaclib)*Y(Co54)*Y(N)*state.rho + -screened_rates(k_p_Fe54_to_n_Co54_reaclib)*Y(Fe54)*Y(H1)*state.rho) + - (screened_rates(k_p_Co57_to_He4_Fe54_reaclib)*Y(Co57)*Y(H1)*state.rho + -screened_rates(k_He4_Fe54_to_p_Co57_reaclib)*Y(Fe54)*Y(He4)*state.rho) + - (screened_rates(k_n_Ni57_to_He4_Fe54_reaclib)*Y(Ni57)*Y(N)*state.rho + -screened_rates(k_He4_Fe54_to_n_Ni57_reaclib)*Y(Fe54)*Y(He4)*state.rho) + - (screened_rates(k_Co54_to_Fe54_weaktab)*Y(Co54) + -screened_rates(k_Fe54_to_Co54_weaktab)*Y(Fe54)) + - (screened_rates(k_Mn54_to_Fe54_weaktab)*Y(Mn54) + -screened_rates(k_Fe54_to_Mn54_weaktab)*Y(Fe54)); + (screened_rates(k_Cr50_He4_to_Fe54_reaclib)*Y(Cr50)*Y(He4)*state.rho + -screened_rates(k_Fe54_to_He4_Cr50_derived)*Y(Fe54)) + + (screened_rates(k_Mn53_p_to_Fe54_reaclib)*Y(Mn53)*Y(H1)*state.rho + -screened_rates(k_Fe54_to_p_Mn53_derived)*Y(Fe54)) + + (screened_rates(k_Fe53_n_to_Fe54_reaclib)*Y(Fe53)*Y(N)*state.rho + -screened_rates(k_Fe54_to_n_Fe53_derived)*Y(Fe54)) + + (-screened_rates(k_Fe54_n_to_Fe55_reaclib)*Y(Fe54)*Y(N)*state.rho + screened_rates(k_Fe55_to_n_Fe54_derived)*Y(Fe55)) + + (-screened_rates(k_Fe54_p_to_Co55_reaclib)*Y(Fe54)*Y(H1)*state.rho + screened_rates(k_Co55_to_p_Fe54_derived)*Y(Co55)) + + (-screened_rates(k_Fe54_He4_to_Ni58_reaclib)*Y(Fe54)*Y(He4)*state.rho + screened_rates(k_Ni58_to_He4_Fe54_derived)*Y(Ni58)) + + (screened_rates(k_Mn51_He4_to_p_Fe54_reaclib)*Y(He4)*Y(Mn51)*state.rho + -screened_rates(k_Fe54_p_to_He4_Mn51_derived)*Y(Fe54)*Y(H1)*state.rho) + + (-screened_rates(k_Fe54_n_to_p_Mn54_reaclib)*Y(Fe54)*Y(N)*state.rho + screened_rates(k_Mn54_p_to_n_Fe54_derived)*Y(Mn54)*Y(H1)*state.rho) + + (-screened_rates(k_Fe54_n_to_He4_Cr51_reaclib)*Y(Fe54)*Y(N)*state.rho + screened_rates(k_Cr51_He4_to_n_Fe54_derived)*Y(Cr51)*Y(He4)*state.rho) + + (screened_rates(k_Co54_n_to_p_Fe54_reaclib)*Y(Co54)*Y(N)*state.rho + -screened_rates(k_Fe54_p_to_n_Co54_derived)*Y(Fe54)*Y(H1)*state.rho) + + (screened_rates(k_Co57_p_to_He4_Fe54_reaclib)*Y(Co57)*Y(H1)*state.rho + -screened_rates(k_Fe54_He4_to_p_Co57_derived)*Y(Fe54)*Y(He4)*state.rho) + + (screened_rates(k_Ni57_n_to_He4_Fe54_reaclib)*Y(Ni57)*Y(N)*state.rho + -screened_rates(k_Fe54_He4_to_n_Ni57_derived)*Y(Fe54)*Y(He4)*state.rho) + + (screened_rates(k_Co54_to_Fe54_electron_capture_weaktab)*Y(Co54) + -screened_rates(k_Fe54_to_Co54_beta_neg_weaktab)*Y(Fe54)) + + (screened_rates(k_Mn54_to_Fe54_beta_neg_weaktab)*Y(Mn54) + -screened_rates(k_Fe54_to_Mn54_electron_capture_weaktab)*Y(Fe54)); ydot_nuc(Fe55) = - (screened_rates(k_He4_Cr51_to_Fe55_reaclib)*Y(Cr51)*Y(He4)*state.rho + -screened_rates(k_Fe55_to_He4_Cr51_reaclib)*Y(Fe55)) + - (screened_rates(k_p_Mn54_to_Fe55_reaclib)*Y(Mn54)*Y(H1)*state.rho + -screened_rates(k_Fe55_to_p_Mn54_reaclib)*Y(Fe55)) + - (screened_rates(k_n_Fe54_to_Fe55_reaclib)*Y(Fe54)*Y(N)*state.rho + -screened_rates(k_Fe55_to_n_Fe54_reaclib)*Y(Fe55)) + - (-screened_rates(k_n_Fe55_to_Fe56_reaclib)*Y(Fe55)*Y(N)*state.rho + screened_rates(k_Fe56_to_n_Fe55_reaclib)*Y(Fe56)) + - (-screened_rates(k_p_Fe55_to_Co56_reaclib)*Y(Fe55)*Y(H1)*state.rho + screened_rates(k_Co56_to_p_Fe55_reaclib)*Y(Co56)) + - (-screened_rates(k_He4_Fe55_to_Ni59_reaclib)*Y(Fe55)*Y(He4)*state.rho + screened_rates(k_Ni59_to_He4_Fe55_reaclib)*Y(Ni59)) + - (screened_rates(k_He4_Mn52_to_p_Fe55_reaclib)*Y(He4)*Y(Mn52)*state.rho + -screened_rates(k_p_Fe55_to_He4_Mn52_reaclib)*Y(Fe55)*Y(H1)*state.rho) + - (-screened_rates(k_n_Fe55_to_p_Mn55_reaclib)*Y(Fe55)*Y(N)*state.rho + screened_rates(k_p_Mn55_to_n_Fe55_reaclib)*Y(Mn55)*Y(H1)*state.rho) + - (-screened_rates(k_n_Fe55_to_He4_Cr52_reaclib)*Y(Fe55)*Y(N)*state.rho + screened_rates(k_He4_Cr52_to_n_Fe55_reaclib)*Y(Cr52)*Y(He4)*state.rho) + - (screened_rates(k_n_Co55_to_p_Fe55_reaclib)*Y(Co55)*Y(N)*state.rho + -screened_rates(k_p_Fe55_to_n_Co55_reaclib)*Y(Fe55)*Y(H1)*state.rho) + - (screened_rates(k_p_Co58_to_He4_Fe55_reaclib)*Y(Co58)*Y(H1)*state.rho + -screened_rates(k_He4_Fe55_to_p_Co58_reaclib)*Y(Fe55)*Y(He4)*state.rho) + - (screened_rates(k_n_Ni58_to_He4_Fe55_reaclib)*Y(Ni58)*Y(N)*state.rho + -screened_rates(k_He4_Fe55_to_n_Ni58_reaclib)*Y(Fe55)*Y(He4)*state.rho) + - (screened_rates(k_Co55_to_Fe55_weaktab)*Y(Co55) + -screened_rates(k_Fe55_to_Co55_weaktab)*Y(Fe55)) + - (-screened_rates(k_Fe55_to_Mn55_weaktab)*Y(Fe55) + screened_rates(k_Mn55_to_Fe55_weaktab)*Y(Mn55)); + (screened_rates(k_Cr51_He4_to_Fe55_reaclib)*Y(Cr51)*Y(He4)*state.rho + -screened_rates(k_Fe55_to_He4_Cr51_derived)*Y(Fe55)) + + (screened_rates(k_Mn54_p_to_Fe55_reaclib)*Y(Mn54)*Y(H1)*state.rho + -screened_rates(k_Fe55_to_p_Mn54_derived)*Y(Fe55)) + + (screened_rates(k_Fe54_n_to_Fe55_reaclib)*Y(Fe54)*Y(N)*state.rho + -screened_rates(k_Fe55_to_n_Fe54_derived)*Y(Fe55)) + + (-screened_rates(k_Fe55_n_to_Fe56_reaclib)*Y(Fe55)*Y(N)*state.rho + screened_rates(k_Fe56_to_n_Fe55_derived)*Y(Fe56)) + + (-screened_rates(k_Fe55_p_to_Co56_reaclib)*Y(Fe55)*Y(H1)*state.rho + screened_rates(k_Co56_to_p_Fe55_derived)*Y(Co56)) + + (-screened_rates(k_Fe55_He4_to_Ni59_reaclib)*Y(Fe55)*Y(He4)*state.rho + screened_rates(k_Ni59_to_He4_Fe55_derived)*Y(Ni59)) + + (screened_rates(k_Mn52_He4_to_p_Fe55_reaclib)*Y(He4)*Y(Mn52)*state.rho + -screened_rates(k_Fe55_p_to_He4_Mn52_derived)*Y(Fe55)*Y(H1)*state.rho) + + (-screened_rates(k_Fe55_n_to_p_Mn55_reaclib)*Y(Fe55)*Y(N)*state.rho + screened_rates(k_Mn55_p_to_n_Fe55_derived)*Y(Mn55)*Y(H1)*state.rho) + + (-screened_rates(k_Fe55_n_to_He4_Cr52_reaclib)*Y(Fe55)*Y(N)*state.rho + screened_rates(k_Cr52_He4_to_n_Fe55_derived)*Y(Cr52)*Y(He4)*state.rho) + + (screened_rates(k_Co55_n_to_p_Fe55_reaclib)*Y(Co55)*Y(N)*state.rho + -screened_rates(k_Fe55_p_to_n_Co55_derived)*Y(Fe55)*Y(H1)*state.rho) + + (screened_rates(k_Co58_p_to_He4_Fe55_reaclib)*Y(Co58)*Y(H1)*state.rho + -screened_rates(k_Fe55_He4_to_p_Co58_derived)*Y(Fe55)*Y(He4)*state.rho) + + (screened_rates(k_Ni58_n_to_He4_Fe55_reaclib)*Y(Ni58)*Y(N)*state.rho + -screened_rates(k_Fe55_He4_to_n_Ni58_derived)*Y(Fe55)*Y(He4)*state.rho) + + (screened_rates(k_Co55_to_Fe55_electron_capture_weaktab)*Y(Co55) + -screened_rates(k_Fe55_to_Co55_beta_neg_weaktab)*Y(Fe55)) + + (-screened_rates(k_Fe55_to_Mn55_electron_capture_weaktab)*Y(Fe55) + screened_rates(k_Mn55_to_Fe55_beta_neg_weaktab)*Y(Mn55)); ydot_nuc(Fe56) = - (screened_rates(k_He4_Cr52_to_Fe56_reaclib)*Y(Cr52)*Y(He4)*state.rho + -screened_rates(k_Fe56_to_He4_Cr52_reaclib)*Y(Fe56)) + - (screened_rates(k_p_Mn55_to_Fe56_reaclib)*Y(Mn55)*Y(H1)*state.rho + -screened_rates(k_Fe56_to_p_Mn55_reaclib)*Y(Fe56)) + - (screened_rates(k_n_Fe55_to_Fe56_reaclib)*Y(Fe55)*Y(N)*state.rho + -screened_rates(k_Fe56_to_n_Fe55_reaclib)*Y(Fe56)) + - (-screened_rates(k_n_Fe56_to_Fe57_reaclib)*Y(Fe56)*Y(N)*state.rho + screened_rates(k_Fe57_to_n_Fe56_reaclib)*Y(Fe57)) + - (-screened_rates(k_p_Fe56_to_Co57_reaclib)*Y(Fe56)*Y(H1)*state.rho + screened_rates(k_Co57_to_p_Fe56_reaclib)*Y(Co57)) + - (-screened_rates(k_He4_Fe56_to_Ni60_reaclib)*Y(Fe56)*Y(He4)*state.rho + screened_rates(k_Ni60_to_He4_Fe56_reaclib)*Y(Ni60)) + - (screened_rates(k_He4_Mn53_to_p_Fe56_reaclib)*Y(He4)*Y(Mn53)*state.rho + -screened_rates(k_p_Fe56_to_He4_Mn53_reaclib)*Y(Fe56)*Y(H1)*state.rho) + - (-screened_rates(k_n_Fe56_to_He4_Cr53_reaclib)*Y(Fe56)*Y(N)*state.rho + screened_rates(k_He4_Cr53_to_n_Fe56_reaclib)*Y(Cr53)*Y(He4)*state.rho) + - (screened_rates(k_n_Co56_to_p_Fe56_reaclib)*Y(Co56)*Y(N)*state.rho + -screened_rates(k_p_Fe56_to_n_Co56_reaclib)*Y(Fe56)*Y(H1)*state.rho) + - (screened_rates(k_p_Co59_to_He4_Fe56_reaclib)*Y(Co59)*Y(H1)*state.rho + -screened_rates(k_He4_Fe56_to_p_Co59_reaclib)*Y(Fe56)*Y(He4)*state.rho) + - (screened_rates(k_n_Ni59_to_He4_Fe56_reaclib)*Y(Ni59)*Y(N)*state.rho + -screened_rates(k_He4_Fe56_to_n_Ni59_reaclib)*Y(Fe56)*Y(He4)*state.rho) + - (screened_rates(k_Co56_to_Fe56_weaktab)*Y(Co56) + -screened_rates(k_Fe56_to_Co56_weaktab)*Y(Fe56)); + (screened_rates(k_Cr52_He4_to_Fe56_reaclib)*Y(Cr52)*Y(He4)*state.rho + -screened_rates(k_Fe56_to_He4_Cr52_derived)*Y(Fe56)) + + (screened_rates(k_Mn55_p_to_Fe56_reaclib)*Y(Mn55)*Y(H1)*state.rho + -screened_rates(k_Fe56_to_p_Mn55_derived)*Y(Fe56)) + + (screened_rates(k_Fe55_n_to_Fe56_reaclib)*Y(Fe55)*Y(N)*state.rho + -screened_rates(k_Fe56_to_n_Fe55_derived)*Y(Fe56)) + + (-screened_rates(k_Fe56_n_to_Fe57_reaclib)*Y(Fe56)*Y(N)*state.rho + screened_rates(k_Fe57_to_n_Fe56_derived)*Y(Fe57)) + + (-screened_rates(k_Fe56_p_to_Co57_reaclib)*Y(Fe56)*Y(H1)*state.rho + screened_rates(k_Co57_to_p_Fe56_derived)*Y(Co57)) + + (-screened_rates(k_Fe56_He4_to_Ni60_reaclib)*Y(Fe56)*Y(He4)*state.rho + screened_rates(k_Ni60_to_He4_Fe56_derived)*Y(Ni60)) + + (screened_rates(k_Mn53_He4_to_p_Fe56_reaclib)*Y(He4)*Y(Mn53)*state.rho + -screened_rates(k_Fe56_p_to_He4_Mn53_derived)*Y(Fe56)*Y(H1)*state.rho) + + (-screened_rates(k_Fe56_n_to_He4_Cr53_reaclib)*Y(Fe56)*Y(N)*state.rho + screened_rates(k_Cr53_He4_to_n_Fe56_derived)*Y(Cr53)*Y(He4)*state.rho) + + (screened_rates(k_Co56_n_to_p_Fe56_reaclib)*Y(Co56)*Y(N)*state.rho + -screened_rates(k_Fe56_p_to_n_Co56_derived)*Y(Fe56)*Y(H1)*state.rho) + + (screened_rates(k_Co59_p_to_He4_Fe56_reaclib)*Y(Co59)*Y(H1)*state.rho + -screened_rates(k_Fe56_He4_to_p_Co59_derived)*Y(Fe56)*Y(He4)*state.rho) + + (screened_rates(k_Ni59_n_to_He4_Fe56_reaclib)*Y(Ni59)*Y(N)*state.rho + -screened_rates(k_Fe56_He4_to_n_Ni59_derived)*Y(Fe56)*Y(He4)*state.rho) + + (screened_rates(k_Co56_to_Fe56_electron_capture_weaktab)*Y(Co56) + -screened_rates(k_Fe56_to_Co56_beta_neg_weaktab)*Y(Fe56)); ydot_nuc(Fe57) = - (screened_rates(k_He4_Cr53_to_Fe57_reaclib)*Y(Cr53)*Y(He4)*state.rho + -screened_rates(k_Fe57_to_He4_Cr53_reaclib)*Y(Fe57)) + - (screened_rates(k_n_Fe56_to_Fe57_reaclib)*Y(Fe56)*Y(N)*state.rho + -screened_rates(k_Fe57_to_n_Fe56_reaclib)*Y(Fe57)) + - (-screened_rates(k_n_Fe57_to_Fe58_reaclib)*Y(Fe57)*Y(N)*state.rho + screened_rates(k_Fe58_to_n_Fe57_reaclib)*Y(Fe58)) + - (-screened_rates(k_p_Fe57_to_Co58_reaclib)*Y(Fe57)*Y(H1)*state.rho + screened_rates(k_Co58_to_p_Fe57_reaclib)*Y(Co58)) + - (-screened_rates(k_He4_Fe57_to_Ni61_reaclib)*Y(Fe57)*Y(He4)*state.rho + screened_rates(k_Ni61_to_He4_Fe57_reaclib)*Y(Ni61)) + - (-screened_rates(k_n_Fe57_to_He4_Cr54_reaclib)*Y(Fe57)*Y(N)*state.rho + screened_rates(k_He4_Cr54_to_n_Fe57_reaclib)*Y(Cr54)*Y(He4)*state.rho) + - (-screened_rates(k_p_Fe57_to_He4_Mn54_reaclib)*Y(Fe57)*Y(H1)*state.rho + screened_rates(k_He4_Mn54_to_p_Fe57_reaclib)*Y(He4)*Y(Mn54)*state.rho) + - (screened_rates(k_n_Co57_to_p_Fe57_reaclib)*Y(Co57)*Y(N)*state.rho + -screened_rates(k_p_Fe57_to_n_Co57_reaclib)*Y(Fe57)*Y(H1)*state.rho) + - (screened_rates(k_n_Ni60_to_He4_Fe57_reaclib)*Y(Ni60)*Y(N)*state.rho + -screened_rates(k_He4_Fe57_to_n_Ni60_reaclib)*Y(Fe57)*Y(He4)*state.rho) + - (screened_rates(k_Co57_to_Fe57_weaktab)*Y(Co57) + -screened_rates(k_Fe57_to_Co57_weaktab)*Y(Fe57)); + (screened_rates(k_Cr53_He4_to_Fe57_reaclib)*Y(Cr53)*Y(He4)*state.rho + -screened_rates(k_Fe57_to_He4_Cr53_derived)*Y(Fe57)) + + (screened_rates(k_Fe56_n_to_Fe57_reaclib)*Y(Fe56)*Y(N)*state.rho + -screened_rates(k_Fe57_to_n_Fe56_derived)*Y(Fe57)) + + (-screened_rates(k_Fe57_n_to_Fe58_reaclib)*Y(Fe57)*Y(N)*state.rho + screened_rates(k_Fe58_to_n_Fe57_derived)*Y(Fe58)) + + (-screened_rates(k_Fe57_p_to_Co58_reaclib)*Y(Fe57)*Y(H1)*state.rho + screened_rates(k_Co58_to_p_Fe57_derived)*Y(Co58)) + + (-screened_rates(k_Fe57_He4_to_Ni61_reaclib)*Y(Fe57)*Y(He4)*state.rho + screened_rates(k_Ni61_to_He4_Fe57_derived)*Y(Ni61)) + + (-screened_rates(k_Fe57_n_to_He4_Cr54_reaclib)*Y(Fe57)*Y(N)*state.rho + screened_rates(k_Cr54_He4_to_n_Fe57_derived)*Y(Cr54)*Y(He4)*state.rho) + + (-screened_rates(k_Fe57_p_to_He4_Mn54_reaclib)*Y(Fe57)*Y(H1)*state.rho + screened_rates(k_Mn54_He4_to_p_Fe57_derived)*Y(He4)*Y(Mn54)*state.rho) + + (screened_rates(k_Co57_n_to_p_Fe57_reaclib)*Y(Co57)*Y(N)*state.rho + -screened_rates(k_Fe57_p_to_n_Co57_derived)*Y(Fe57)*Y(H1)*state.rho) + + (screened_rates(k_Ni60_n_to_He4_Fe57_reaclib)*Y(Ni60)*Y(N)*state.rho + -screened_rates(k_Fe57_He4_to_n_Ni60_derived)*Y(Fe57)*Y(He4)*state.rho) + + (screened_rates(k_Co57_to_Fe57_electron_capture_weaktab)*Y(Co57) + -screened_rates(k_Fe57_to_Co57_beta_neg_weaktab)*Y(Fe57)); ydot_nuc(Fe58) = - (screened_rates(k_He4_Cr54_to_Fe58_reaclib)*Y(Cr54)*Y(He4)*state.rho + -screened_rates(k_Fe58_to_He4_Cr54_reaclib)*Y(Fe58)) + - (screened_rates(k_n_Fe57_to_Fe58_reaclib)*Y(Fe57)*Y(N)*state.rho + -screened_rates(k_Fe58_to_n_Fe57_reaclib)*Y(Fe58)) + - (-screened_rates(k_p_Fe58_to_Co59_reaclib)*Y(Fe58)*Y(H1)*state.rho + screened_rates(k_Co59_to_p_Fe58_reaclib)*Y(Co59)) + - (-screened_rates(k_He4_Fe58_to_Ni62_reaclib)*Y(Fe58)*Y(He4)*state.rho + screened_rates(k_Ni62_to_He4_Fe58_reaclib)*Y(Ni62)) + - (-screened_rates(k_p_Fe58_to_He4_Mn55_reaclib)*Y(Fe58)*Y(H1)*state.rho + screened_rates(k_He4_Mn55_to_p_Fe58_reaclib)*Y(He4)*Y(Mn55)*state.rho) + - (screened_rates(k_n_Co58_to_p_Fe58_reaclib)*Y(Co58)*Y(N)*state.rho + -screened_rates(k_p_Fe58_to_n_Co58_reaclib)*Y(Fe58)*Y(H1)*state.rho) + - (screened_rates(k_n_Ni61_to_He4_Fe58_reaclib)*Y(Ni61)*Y(N)*state.rho + -screened_rates(k_He4_Fe58_to_n_Ni61_reaclib)*Y(Fe58)*Y(He4)*state.rho) + - (screened_rates(k_Co58_to_Fe58_weaktab)*Y(Co58) + -screened_rates(k_Fe58_to_Co58_weaktab)*Y(Fe58)); + (screened_rates(k_Cr54_He4_to_Fe58_reaclib)*Y(Cr54)*Y(He4)*state.rho + -screened_rates(k_Fe58_to_He4_Cr54_derived)*Y(Fe58)) + + (screened_rates(k_Fe57_n_to_Fe58_reaclib)*Y(Fe57)*Y(N)*state.rho + -screened_rates(k_Fe58_to_n_Fe57_derived)*Y(Fe58)) + + (-screened_rates(k_Fe58_p_to_Co59_reaclib)*Y(Fe58)*Y(H1)*state.rho + screened_rates(k_Co59_to_p_Fe58_derived)*Y(Co59)) + + (-screened_rates(k_Fe58_He4_to_Ni62_reaclib)*Y(Fe58)*Y(He4)*state.rho + screened_rates(k_Ni62_to_He4_Fe58_derived)*Y(Ni62)) + + (-screened_rates(k_Fe58_p_to_He4_Mn55_reaclib)*Y(Fe58)*Y(H1)*state.rho + screened_rates(k_Mn55_He4_to_p_Fe58_derived)*Y(He4)*Y(Mn55)*state.rho) + + (screened_rates(k_Co58_n_to_p_Fe58_reaclib)*Y(Co58)*Y(N)*state.rho + -screened_rates(k_Fe58_p_to_n_Co58_derived)*Y(Fe58)*Y(H1)*state.rho) + + (screened_rates(k_Ni61_n_to_He4_Fe58_reaclib)*Y(Ni61)*Y(N)*state.rho + -screened_rates(k_Fe58_He4_to_n_Ni61_derived)*Y(Fe58)*Y(He4)*state.rho) + + (screened_rates(k_Co58_to_Fe58_electron_capture_weaktab)*Y(Co58) + -screened_rates(k_Fe58_to_Co58_beta_neg_weaktab)*Y(Fe58)); ydot_nuc(Co53) = - (screened_rates(k_p_Fe52_to_Co53_reaclib)*Y(Fe52)*Y(H1)*state.rho + -screened_rates(k_Co53_to_p_Fe52_reaclib)*Y(Co53)) + - (-screened_rates(k_n_Co53_to_Co54_reaclib)*Y(Co53)*Y(N)*state.rho + screened_rates(k_Co54_to_n_Co53_reaclib)*Y(Co54)) + - (-screened_rates(k_He4_Co53_to_Cu57_reaclib)*Y(Co53)*Y(He4)*state.rho + screened_rates(k_Cu57_to_He4_Co53_reaclib)*Y(Cu57)) + - (-screened_rates(k_n_Co53_to_p_Fe53_reaclib)*Y(Co53)*Y(N)*state.rho + screened_rates(k_p_Fe53_to_n_Co53_reaclib)*Y(Fe53)*Y(H1)*state.rho) + - (-screened_rates(k_n_Co53_to_He4_Mn50_reaclib)*Y(Co53)*Y(N)*state.rho + screened_rates(k_He4_Mn50_to_n_Co53_reaclib)*Y(He4)*Y(Mn50)*state.rho) + - (-screened_rates(k_He4_Co53_to_p_Ni56_reaclib)*Y(Co53)*Y(He4)*state.rho + screened_rates(k_p_Ni56_to_He4_Co53_reaclib)*Y(Ni56)*Y(H1)*state.rho) + - (-screened_rates(k_Co53_to_Fe53_weaktab)*Y(Co53) + screened_rates(k_Fe53_to_Co53_weaktab)*Y(Fe53)); + (screened_rates(k_Fe52_p_to_Co53_reaclib)*Y(Fe52)*Y(H1)*state.rho + -screened_rates(k_Co53_to_p_Fe52_derived)*Y(Co53)) + + (-screened_rates(k_Co53_n_to_Co54_reaclib)*Y(Co53)*Y(N)*state.rho + screened_rates(k_Co54_to_n_Co53_derived)*Y(Co54)) + + (-screened_rates(k_Co53_He4_to_Cu57_reaclib)*Y(Co53)*Y(He4)*state.rho + screened_rates(k_Cu57_to_He4_Co53_derived)*Y(Cu57)) + + (-screened_rates(k_Co53_n_to_p_Fe53_reaclib)*Y(Co53)*Y(N)*state.rho + screened_rates(k_Fe53_p_to_n_Co53_derived)*Y(Fe53)*Y(H1)*state.rho) + + (-screened_rates(k_Co53_n_to_He4_Mn50_reaclib)*Y(Co53)*Y(N)*state.rho + screened_rates(k_Mn50_He4_to_n_Co53_derived)*Y(He4)*Y(Mn50)*state.rho) + + (-screened_rates(k_Co53_He4_to_p_Ni56_reaclib)*Y(Co53)*Y(He4)*state.rho + screened_rates(k_Ni56_p_to_He4_Co53_derived)*Y(Ni56)*Y(H1)*state.rho) + + (-screened_rates(k_Co53_to_Fe53_electron_capture_weaktab)*Y(Co53) + screened_rates(k_Fe53_to_Co53_beta_neg_weaktab)*Y(Fe53)); ydot_nuc(Co54) = - (screened_rates(k_He4_Mn50_to_Co54_reaclib)*Y(He4)*Y(Mn50)*state.rho + -screened_rates(k_Co54_to_He4_Mn50_reaclib)*Y(Co54)) + - (screened_rates(k_p_Fe53_to_Co54_reaclib)*Y(Fe53)*Y(H1)*state.rho + -screened_rates(k_Co54_to_p_Fe53_reaclib)*Y(Co54)) + - (screened_rates(k_n_Co53_to_Co54_reaclib)*Y(Co53)*Y(N)*state.rho + -screened_rates(k_Co54_to_n_Co53_reaclib)*Y(Co54)) + - (-screened_rates(k_n_Co54_to_Co55_reaclib)*Y(Co54)*Y(N)*state.rho + screened_rates(k_Co55_to_n_Co54_reaclib)*Y(Co55)) + - (-screened_rates(k_He4_Co54_to_Cu58_reaclib)*Y(Co54)*Y(He4)*state.rho + screened_rates(k_Cu58_to_He4_Co54_reaclib)*Y(Cu58)) + - (-screened_rates(k_n_Co54_to_p_Fe54_reaclib)*Y(Co54)*Y(N)*state.rho + screened_rates(k_p_Fe54_to_n_Co54_reaclib)*Y(Fe54)*Y(H1)*state.rho) + - (-screened_rates(k_n_Co54_to_He4_Mn51_reaclib)*Y(Co54)*Y(N)*state.rho + screened_rates(k_He4_Mn51_to_n_Co54_reaclib)*Y(He4)*Y(Mn51)*state.rho) + - (-screened_rates(k_He4_Co54_to_p_Ni57_reaclib)*Y(Co54)*Y(He4)*state.rho + screened_rates(k_p_Ni57_to_He4_Co54_reaclib)*Y(Ni57)*Y(H1)*state.rho) + - (screened_rates(k_n_Cu57_to_He4_Co54_reaclib)*Y(Cu57)*Y(N)*state.rho + -screened_rates(k_He4_Co54_to_n_Cu57_reaclib)*Y(Co54)*Y(He4)*state.rho) + - (-screened_rates(k_Co54_to_Fe54_weaktab)*Y(Co54) + screened_rates(k_Fe54_to_Co54_weaktab)*Y(Fe54)); + (screened_rates(k_Mn50_He4_to_Co54_reaclib)*Y(He4)*Y(Mn50)*state.rho + -screened_rates(k_Co54_to_He4_Mn50_derived)*Y(Co54)) + + (screened_rates(k_Fe53_p_to_Co54_reaclib)*Y(Fe53)*Y(H1)*state.rho + -screened_rates(k_Co54_to_p_Fe53_derived)*Y(Co54)) + + (screened_rates(k_Co53_n_to_Co54_reaclib)*Y(Co53)*Y(N)*state.rho + -screened_rates(k_Co54_to_n_Co53_derived)*Y(Co54)) + + (-screened_rates(k_Co54_n_to_Co55_reaclib)*Y(Co54)*Y(N)*state.rho + screened_rates(k_Co55_to_n_Co54_derived)*Y(Co55)) + + (-screened_rates(k_Co54_He4_to_Cu58_reaclib)*Y(Co54)*Y(He4)*state.rho + screened_rates(k_Cu58_to_He4_Co54_derived)*Y(Cu58)) + + (-screened_rates(k_Co54_n_to_p_Fe54_reaclib)*Y(Co54)*Y(N)*state.rho + screened_rates(k_Fe54_p_to_n_Co54_derived)*Y(Fe54)*Y(H1)*state.rho) + + (-screened_rates(k_Co54_n_to_He4_Mn51_reaclib)*Y(Co54)*Y(N)*state.rho + screened_rates(k_Mn51_He4_to_n_Co54_derived)*Y(He4)*Y(Mn51)*state.rho) + + (-screened_rates(k_Co54_He4_to_p_Ni57_reaclib)*Y(Co54)*Y(He4)*state.rho + screened_rates(k_Ni57_p_to_He4_Co54_derived)*Y(Ni57)*Y(H1)*state.rho) + + (screened_rates(k_Cu57_n_to_He4_Co54_reaclib)*Y(Cu57)*Y(N)*state.rho + -screened_rates(k_Co54_He4_to_n_Cu57_derived)*Y(Co54)*Y(He4)*state.rho) + + (-screened_rates(k_Co54_to_Fe54_electron_capture_weaktab)*Y(Co54) + screened_rates(k_Fe54_to_Co54_beta_neg_weaktab)*Y(Fe54)); ydot_nuc(Co55) = - (screened_rates(k_He4_Mn51_to_Co55_reaclib)*Y(He4)*Y(Mn51)*state.rho + -screened_rates(k_Co55_to_He4_Mn51_reaclib)*Y(Co55)) + - (screened_rates(k_p_Fe54_to_Co55_reaclib)*Y(Fe54)*Y(H1)*state.rho + -screened_rates(k_Co55_to_p_Fe54_reaclib)*Y(Co55)) + - (screened_rates(k_n_Co54_to_Co55_reaclib)*Y(Co54)*Y(N)*state.rho + -screened_rates(k_Co55_to_n_Co54_reaclib)*Y(Co55)) + - (-screened_rates(k_n_Co55_to_Co56_reaclib)*Y(Co55)*Y(N)*state.rho + screened_rates(k_Co56_to_n_Co55_reaclib)*Y(Co56)) + - (-screened_rates(k_p_Co55_to_Ni56_reaclib)*Y(Co55)*Y(H1)*state.rho + screened_rates(k_Ni56_to_p_Co55_reaclib)*Y(Ni56)) + - (-screened_rates(k_He4_Co55_to_Cu59_reaclib)*Y(Co55)*Y(He4)*state.rho + screened_rates(k_Cu59_to_He4_Co55_reaclib)*Y(Cu59)) + - (screened_rates(k_He4_Fe52_to_p_Co55_reaclib)*Y(Fe52)*Y(He4)*state.rho + -screened_rates(k_p_Co55_to_He4_Fe52_reaclib)*Y(Co55)*Y(H1)*state.rho) + - (-screened_rates(k_n_Co55_to_p_Fe55_reaclib)*Y(Co55)*Y(N)*state.rho + screened_rates(k_p_Fe55_to_n_Co55_reaclib)*Y(Fe55)*Y(H1)*state.rho) + - (-screened_rates(k_n_Co55_to_He4_Mn52_reaclib)*Y(Co55)*Y(N)*state.rho + screened_rates(k_He4_Mn52_to_n_Co55_reaclib)*Y(He4)*Y(Mn52)*state.rho) + - (-screened_rates(k_He4_Co55_to_p_Ni58_reaclib)*Y(Co55)*Y(He4)*state.rho + screened_rates(k_p_Ni58_to_He4_Co55_reaclib)*Y(Ni58)*Y(H1)*state.rho) + - (screened_rates(k_n_Cu58_to_He4_Co55_reaclib)*Y(Cu58)*Y(N)*state.rho + -screened_rates(k_He4_Co55_to_n_Cu58_reaclib)*Y(Co55)*Y(He4)*state.rho) + - (-screened_rates(k_Co55_to_Fe55_weaktab)*Y(Co55) + screened_rates(k_Fe55_to_Co55_weaktab)*Y(Fe55)); + (screened_rates(k_Mn51_He4_to_Co55_reaclib)*Y(He4)*Y(Mn51)*state.rho + -screened_rates(k_Co55_to_He4_Mn51_derived)*Y(Co55)) + + (screened_rates(k_Fe54_p_to_Co55_reaclib)*Y(Fe54)*Y(H1)*state.rho + -screened_rates(k_Co55_to_p_Fe54_derived)*Y(Co55)) + + (screened_rates(k_Co54_n_to_Co55_reaclib)*Y(Co54)*Y(N)*state.rho + -screened_rates(k_Co55_to_n_Co54_derived)*Y(Co55)) + + (-screened_rates(k_Co55_n_to_Co56_reaclib)*Y(Co55)*Y(N)*state.rho + screened_rates(k_Co56_to_n_Co55_derived)*Y(Co56)) + + (-screened_rates(k_Co55_p_to_Ni56_reaclib)*Y(Co55)*Y(H1)*state.rho + screened_rates(k_Ni56_to_p_Co55_derived)*Y(Ni56)) + + (-screened_rates(k_Co55_He4_to_Cu59_reaclib)*Y(Co55)*Y(He4)*state.rho + screened_rates(k_Cu59_to_He4_Co55_derived)*Y(Cu59)) + + (screened_rates(k_Fe52_He4_to_p_Co55_reaclib)*Y(Fe52)*Y(He4)*state.rho + -screened_rates(k_Co55_p_to_He4_Fe52_derived)*Y(Co55)*Y(H1)*state.rho) + + (-screened_rates(k_Co55_n_to_p_Fe55_reaclib)*Y(Co55)*Y(N)*state.rho + screened_rates(k_Fe55_p_to_n_Co55_derived)*Y(Fe55)*Y(H1)*state.rho) + + (-screened_rates(k_Co55_n_to_He4_Mn52_reaclib)*Y(Co55)*Y(N)*state.rho + screened_rates(k_Mn52_He4_to_n_Co55_derived)*Y(He4)*Y(Mn52)*state.rho) + + (-screened_rates(k_Co55_He4_to_p_Ni58_reaclib)*Y(Co55)*Y(He4)*state.rho + screened_rates(k_Ni58_p_to_He4_Co55_derived)*Y(Ni58)*Y(H1)*state.rho) + + (screened_rates(k_Cu58_n_to_He4_Co55_reaclib)*Y(Cu58)*Y(N)*state.rho + -screened_rates(k_Co55_He4_to_n_Cu58_derived)*Y(Co55)*Y(He4)*state.rho) + + (-screened_rates(k_Co55_to_Fe55_electron_capture_weaktab)*Y(Co55) + screened_rates(k_Fe55_to_Co55_beta_neg_weaktab)*Y(Fe55)); ydot_nuc(Co56) = - (screened_rates(k_He4_Mn52_to_Co56_reaclib)*Y(He4)*Y(Mn52)*state.rho + -screened_rates(k_Co56_to_He4_Mn52_reaclib)*Y(Co56)) + - (screened_rates(k_p_Fe55_to_Co56_reaclib)*Y(Fe55)*Y(H1)*state.rho + -screened_rates(k_Co56_to_p_Fe55_reaclib)*Y(Co56)) + - (screened_rates(k_n_Co55_to_Co56_reaclib)*Y(Co55)*Y(N)*state.rho + -screened_rates(k_Co56_to_n_Co55_reaclib)*Y(Co56)) + - (-screened_rates(k_n_Co56_to_Co57_reaclib)*Y(Co56)*Y(N)*state.rho + screened_rates(k_Co57_to_n_Co56_reaclib)*Y(Co57)) + - (-screened_rates(k_p_Co56_to_Ni57_reaclib)*Y(Co56)*Y(H1)*state.rho + screened_rates(k_Ni57_to_p_Co56_reaclib)*Y(Ni57)) + - (-screened_rates(k_He4_Co56_to_Cu60_reaclib)*Y(Co56)*Y(He4)*state.rho + screened_rates(k_Cu60_to_He4_Co56_reaclib)*Y(Cu60)) + - (screened_rates(k_He4_Fe53_to_p_Co56_reaclib)*Y(Fe53)*Y(He4)*state.rho + -screened_rates(k_p_Co56_to_He4_Fe53_reaclib)*Y(Co56)*Y(H1)*state.rho) + - (-screened_rates(k_n_Co56_to_p_Fe56_reaclib)*Y(Co56)*Y(N)*state.rho + screened_rates(k_p_Fe56_to_n_Co56_reaclib)*Y(Fe56)*Y(H1)*state.rho) + - (-screened_rates(k_n_Co56_to_He4_Mn53_reaclib)*Y(Co56)*Y(N)*state.rho + screened_rates(k_He4_Mn53_to_n_Co56_reaclib)*Y(He4)*Y(Mn53)*state.rho) + - (-screened_rates(k_He4_Co56_to_p_Ni59_reaclib)*Y(Co56)*Y(He4)*state.rho + screened_rates(k_p_Ni59_to_He4_Co56_reaclib)*Y(Ni59)*Y(H1)*state.rho) + - (screened_rates(k_n_Ni56_to_p_Co56_reaclib)*Y(Ni56)*Y(N)*state.rho + -screened_rates(k_p_Co56_to_n_Ni56_reaclib)*Y(Co56)*Y(H1)*state.rho) + - (screened_rates(k_n_Cu59_to_He4_Co56_reaclib)*Y(Cu59)*Y(N)*state.rho + -screened_rates(k_He4_Co56_to_n_Cu59_reaclib)*Y(Co56)*Y(He4)*state.rho) + - (-screened_rates(k_Co56_to_Fe56_weaktab)*Y(Co56) + screened_rates(k_Fe56_to_Co56_weaktab)*Y(Fe56)) + - (screened_rates(k_Ni56_to_Co56_weaktab)*Y(Ni56) + -screened_rates(k_Co56_to_Ni56_weaktab)*Y(Co56)); + (screened_rates(k_Mn52_He4_to_Co56_reaclib)*Y(He4)*Y(Mn52)*state.rho + -screened_rates(k_Co56_to_He4_Mn52_derived)*Y(Co56)) + + (screened_rates(k_Fe55_p_to_Co56_reaclib)*Y(Fe55)*Y(H1)*state.rho + -screened_rates(k_Co56_to_p_Fe55_derived)*Y(Co56)) + + (screened_rates(k_Co55_n_to_Co56_reaclib)*Y(Co55)*Y(N)*state.rho + -screened_rates(k_Co56_to_n_Co55_derived)*Y(Co56)) + + (-screened_rates(k_Co56_n_to_Co57_reaclib)*Y(Co56)*Y(N)*state.rho + screened_rates(k_Co57_to_n_Co56_derived)*Y(Co57)) + + (-screened_rates(k_Co56_p_to_Ni57_reaclib)*Y(Co56)*Y(H1)*state.rho + screened_rates(k_Ni57_to_p_Co56_derived)*Y(Ni57)) + + (-screened_rates(k_Co56_He4_to_Cu60_reaclib)*Y(Co56)*Y(He4)*state.rho + screened_rates(k_Cu60_to_He4_Co56_derived)*Y(Cu60)) + + (screened_rates(k_Fe53_He4_to_p_Co56_reaclib)*Y(Fe53)*Y(He4)*state.rho + -screened_rates(k_Co56_p_to_He4_Fe53_derived)*Y(Co56)*Y(H1)*state.rho) + + (-screened_rates(k_Co56_n_to_p_Fe56_reaclib)*Y(Co56)*Y(N)*state.rho + screened_rates(k_Fe56_p_to_n_Co56_derived)*Y(Fe56)*Y(H1)*state.rho) + + (-screened_rates(k_Co56_n_to_He4_Mn53_reaclib)*Y(Co56)*Y(N)*state.rho + screened_rates(k_Mn53_He4_to_n_Co56_derived)*Y(He4)*Y(Mn53)*state.rho) + + (-screened_rates(k_Co56_He4_to_p_Ni59_reaclib)*Y(Co56)*Y(He4)*state.rho + screened_rates(k_Ni59_p_to_He4_Co56_derived)*Y(Ni59)*Y(H1)*state.rho) + + (screened_rates(k_Ni56_n_to_p_Co56_reaclib)*Y(Ni56)*Y(N)*state.rho + -screened_rates(k_Co56_p_to_n_Ni56_derived)*Y(Co56)*Y(H1)*state.rho) + + (screened_rates(k_Cu59_n_to_He4_Co56_reaclib)*Y(Cu59)*Y(N)*state.rho + -screened_rates(k_Co56_He4_to_n_Cu59_derived)*Y(Co56)*Y(He4)*state.rho) + + (-screened_rates(k_Co56_to_Fe56_electron_capture_weaktab)*Y(Co56) + screened_rates(k_Fe56_to_Co56_beta_neg_weaktab)*Y(Fe56)) + + (screened_rates(k_Ni56_to_Co56_electron_capture_weaktab)*Y(Ni56) + -screened_rates(k_Co56_to_Ni56_beta_neg_weaktab)*Y(Co56)); ydot_nuc(Co57) = - (screened_rates(k_He4_Mn53_to_Co57_reaclib)*Y(He4)*Y(Mn53)*state.rho + -screened_rates(k_Co57_to_He4_Mn53_reaclib)*Y(Co57)) + - (screened_rates(k_p_Fe56_to_Co57_reaclib)*Y(Fe56)*Y(H1)*state.rho + -screened_rates(k_Co57_to_p_Fe56_reaclib)*Y(Co57)) + - (screened_rates(k_n_Co56_to_Co57_reaclib)*Y(Co56)*Y(N)*state.rho + -screened_rates(k_Co57_to_n_Co56_reaclib)*Y(Co57)) + - (-screened_rates(k_n_Co57_to_Co58_reaclib)*Y(Co57)*Y(N)*state.rho + screened_rates(k_Co58_to_n_Co57_reaclib)*Y(Co58)) + - (-screened_rates(k_p_Co57_to_Ni58_reaclib)*Y(Co57)*Y(H1)*state.rho + screened_rates(k_Ni58_to_p_Co57_reaclib)*Y(Ni58)) + - (-screened_rates(k_He4_Co57_to_Cu61_reaclib)*Y(Co57)*Y(He4)*state.rho + screened_rates(k_Cu61_to_He4_Co57_reaclib)*Y(Cu61)) + - (-screened_rates(k_n_Co57_to_p_Fe57_reaclib)*Y(Co57)*Y(N)*state.rho + screened_rates(k_p_Fe57_to_n_Co57_reaclib)*Y(Fe57)*Y(H1)*state.rho) + - (-screened_rates(k_n_Co57_to_He4_Mn54_reaclib)*Y(Co57)*Y(N)*state.rho + screened_rates(k_He4_Mn54_to_n_Co57_reaclib)*Y(He4)*Y(Mn54)*state.rho) + - (-screened_rates(k_p_Co57_to_He4_Fe54_reaclib)*Y(Co57)*Y(H1)*state.rho + screened_rates(k_He4_Fe54_to_p_Co57_reaclib)*Y(Fe54)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Co57_to_p_Ni60_reaclib)*Y(Co57)*Y(He4)*state.rho + screened_rates(k_p_Ni60_to_He4_Co57_reaclib)*Y(Ni60)*Y(H1)*state.rho) + - (screened_rates(k_n_Ni57_to_p_Co57_reaclib)*Y(Ni57)*Y(N)*state.rho + -screened_rates(k_p_Co57_to_n_Ni57_reaclib)*Y(Co57)*Y(H1)*state.rho) + - (screened_rates(k_n_Cu60_to_He4_Co57_reaclib)*Y(Cu60)*Y(N)*state.rho + -screened_rates(k_He4_Co57_to_n_Cu60_reaclib)*Y(Co57)*Y(He4)*state.rho) + - (-screened_rates(k_Co57_to_Fe57_weaktab)*Y(Co57) + screened_rates(k_Fe57_to_Co57_weaktab)*Y(Fe57)) + - (screened_rates(k_Ni57_to_Co57_weaktab)*Y(Ni57) + -screened_rates(k_Co57_to_Ni57_weaktab)*Y(Co57)); + (screened_rates(k_Mn53_He4_to_Co57_reaclib)*Y(He4)*Y(Mn53)*state.rho + -screened_rates(k_Co57_to_He4_Mn53_derived)*Y(Co57)) + + (screened_rates(k_Fe56_p_to_Co57_reaclib)*Y(Fe56)*Y(H1)*state.rho + -screened_rates(k_Co57_to_p_Fe56_derived)*Y(Co57)) + + (screened_rates(k_Co56_n_to_Co57_reaclib)*Y(Co56)*Y(N)*state.rho + -screened_rates(k_Co57_to_n_Co56_derived)*Y(Co57)) + + (-screened_rates(k_Co57_n_to_Co58_reaclib)*Y(Co57)*Y(N)*state.rho + screened_rates(k_Co58_to_n_Co57_derived)*Y(Co58)) + + (-screened_rates(k_Co57_p_to_Ni58_reaclib)*Y(Co57)*Y(H1)*state.rho + screened_rates(k_Ni58_to_p_Co57_derived)*Y(Ni58)) + + (-screened_rates(k_Co57_He4_to_Cu61_reaclib)*Y(Co57)*Y(He4)*state.rho + screened_rates(k_Cu61_to_He4_Co57_derived)*Y(Cu61)) + + (-screened_rates(k_Co57_n_to_p_Fe57_reaclib)*Y(Co57)*Y(N)*state.rho + screened_rates(k_Fe57_p_to_n_Co57_derived)*Y(Fe57)*Y(H1)*state.rho) + + (-screened_rates(k_Co57_n_to_He4_Mn54_reaclib)*Y(Co57)*Y(N)*state.rho + screened_rates(k_Mn54_He4_to_n_Co57_derived)*Y(He4)*Y(Mn54)*state.rho) + + (-screened_rates(k_Co57_p_to_He4_Fe54_reaclib)*Y(Co57)*Y(H1)*state.rho + screened_rates(k_Fe54_He4_to_p_Co57_derived)*Y(Fe54)*Y(He4)*state.rho) + + (-screened_rates(k_Co57_He4_to_p_Ni60_reaclib)*Y(Co57)*Y(He4)*state.rho + screened_rates(k_Ni60_p_to_He4_Co57_derived)*Y(Ni60)*Y(H1)*state.rho) + + (screened_rates(k_Ni57_n_to_p_Co57_reaclib)*Y(Ni57)*Y(N)*state.rho + -screened_rates(k_Co57_p_to_n_Ni57_derived)*Y(Co57)*Y(H1)*state.rho) + + (screened_rates(k_Cu60_n_to_He4_Co57_reaclib)*Y(Cu60)*Y(N)*state.rho + -screened_rates(k_Co57_He4_to_n_Cu60_derived)*Y(Co57)*Y(He4)*state.rho) + + (-screened_rates(k_Co57_to_Fe57_electron_capture_weaktab)*Y(Co57) + screened_rates(k_Fe57_to_Co57_beta_neg_weaktab)*Y(Fe57)) + + (screened_rates(k_Ni57_to_Co57_electron_capture_weaktab)*Y(Ni57) + -screened_rates(k_Co57_to_Ni57_beta_neg_weaktab)*Y(Co57)); ydot_nuc(Co58) = - (screened_rates(k_He4_Mn54_to_Co58_reaclib)*Y(He4)*Y(Mn54)*state.rho + -screened_rates(k_Co58_to_He4_Mn54_reaclib)*Y(Co58)) + - (screened_rates(k_p_Fe57_to_Co58_reaclib)*Y(Fe57)*Y(H1)*state.rho + -screened_rates(k_Co58_to_p_Fe57_reaclib)*Y(Co58)) + - (screened_rates(k_n_Co57_to_Co58_reaclib)*Y(Co57)*Y(N)*state.rho + -screened_rates(k_Co58_to_n_Co57_reaclib)*Y(Co58)) + - (-screened_rates(k_n_Co58_to_Co59_reaclib)*Y(Co58)*Y(N)*state.rho + screened_rates(k_Co59_to_n_Co58_reaclib)*Y(Co59)) + - (-screened_rates(k_p_Co58_to_Ni59_reaclib)*Y(Co58)*Y(H1)*state.rho + screened_rates(k_Ni59_to_p_Co58_reaclib)*Y(Ni59)) + - (-screened_rates(k_He4_Co58_to_Cu62_reaclib)*Y(Co58)*Y(He4)*state.rho + screened_rates(k_Cu62_to_He4_Co58_reaclib)*Y(Cu62)) + - (-screened_rates(k_n_Co58_to_p_Fe58_reaclib)*Y(Co58)*Y(N)*state.rho + screened_rates(k_p_Fe58_to_n_Co58_reaclib)*Y(Fe58)*Y(H1)*state.rho) + - (-screened_rates(k_n_Co58_to_He4_Mn55_reaclib)*Y(Co58)*Y(N)*state.rho + screened_rates(k_He4_Mn55_to_n_Co58_reaclib)*Y(He4)*Y(Mn55)*state.rho) + - (-screened_rates(k_p_Co58_to_He4_Fe55_reaclib)*Y(Co58)*Y(H1)*state.rho + screened_rates(k_He4_Fe55_to_p_Co58_reaclib)*Y(Fe55)*Y(He4)*state.rho) + - (screened_rates(k_n_Ni58_to_p_Co58_reaclib)*Y(Ni58)*Y(N)*state.rho + -screened_rates(k_p_Co58_to_n_Ni58_reaclib)*Y(Co58)*Y(H1)*state.rho) + - (screened_rates(k_p_Ni61_to_He4_Co58_reaclib)*Y(Ni61)*Y(H1)*state.rho + -screened_rates(k_He4_Co58_to_p_Ni61_reaclib)*Y(Co58)*Y(He4)*state.rho) + - (screened_rates(k_n_Cu61_to_He4_Co58_reaclib)*Y(Cu61)*Y(N)*state.rho + -screened_rates(k_He4_Co58_to_n_Cu61_reaclib)*Y(Co58)*Y(He4)*state.rho) + - (-screened_rates(k_Co58_to_Fe58_weaktab)*Y(Co58) + screened_rates(k_Fe58_to_Co58_weaktab)*Y(Fe58)) + - (-screened_rates(k_Co58_to_Ni58_weaktab)*Y(Co58) + screened_rates(k_Ni58_to_Co58_weaktab)*Y(Ni58)); + (screened_rates(k_Mn54_He4_to_Co58_reaclib)*Y(He4)*Y(Mn54)*state.rho + -screened_rates(k_Co58_to_He4_Mn54_derived)*Y(Co58)) + + (screened_rates(k_Fe57_p_to_Co58_reaclib)*Y(Fe57)*Y(H1)*state.rho + -screened_rates(k_Co58_to_p_Fe57_derived)*Y(Co58)) + + (screened_rates(k_Co57_n_to_Co58_reaclib)*Y(Co57)*Y(N)*state.rho + -screened_rates(k_Co58_to_n_Co57_derived)*Y(Co58)) + + (-screened_rates(k_Co58_n_to_Co59_reaclib)*Y(Co58)*Y(N)*state.rho + screened_rates(k_Co59_to_n_Co58_derived)*Y(Co59)) + + (-screened_rates(k_Co58_p_to_Ni59_reaclib)*Y(Co58)*Y(H1)*state.rho + screened_rates(k_Ni59_to_p_Co58_derived)*Y(Ni59)) + + (-screened_rates(k_Co58_He4_to_Cu62_reaclib)*Y(Co58)*Y(He4)*state.rho + screened_rates(k_Cu62_to_He4_Co58_derived)*Y(Cu62)) + + (-screened_rates(k_Co58_n_to_p_Fe58_reaclib)*Y(Co58)*Y(N)*state.rho + screened_rates(k_Fe58_p_to_n_Co58_derived)*Y(Fe58)*Y(H1)*state.rho) + + (-screened_rates(k_Co58_n_to_He4_Mn55_reaclib)*Y(Co58)*Y(N)*state.rho + screened_rates(k_Mn55_He4_to_n_Co58_derived)*Y(He4)*Y(Mn55)*state.rho) + + (-screened_rates(k_Co58_p_to_He4_Fe55_reaclib)*Y(Co58)*Y(H1)*state.rho + screened_rates(k_Fe55_He4_to_p_Co58_derived)*Y(Fe55)*Y(He4)*state.rho) + + (screened_rates(k_Ni58_n_to_p_Co58_reaclib)*Y(Ni58)*Y(N)*state.rho + -screened_rates(k_Co58_p_to_n_Ni58_derived)*Y(Co58)*Y(H1)*state.rho) + + (screened_rates(k_Ni61_p_to_He4_Co58_reaclib)*Y(Ni61)*Y(H1)*state.rho + -screened_rates(k_Co58_He4_to_p_Ni61_derived)*Y(Co58)*Y(He4)*state.rho) + + (screened_rates(k_Cu61_n_to_He4_Co58_reaclib)*Y(Cu61)*Y(N)*state.rho + -screened_rates(k_Co58_He4_to_n_Cu61_derived)*Y(Co58)*Y(He4)*state.rho) + + (-screened_rates(k_Co58_to_Fe58_electron_capture_weaktab)*Y(Co58) + screened_rates(k_Fe58_to_Co58_beta_neg_weaktab)*Y(Fe58)) + + (-screened_rates(k_Co58_to_Ni58_beta_neg_weaktab)*Y(Co58) + screened_rates(k_Ni58_to_Co58_electron_capture_weaktab)*Y(Ni58)); ydot_nuc(Co59) = - (screened_rates(k_He4_Mn55_to_Co59_reaclib)*Y(He4)*Y(Mn55)*state.rho + -screened_rates(k_Co59_to_He4_Mn55_reaclib)*Y(Co59)) + - (screened_rates(k_p_Fe58_to_Co59_reaclib)*Y(Fe58)*Y(H1)*state.rho + -screened_rates(k_Co59_to_p_Fe58_reaclib)*Y(Co59)) + - (screened_rates(k_n_Co58_to_Co59_reaclib)*Y(Co58)*Y(N)*state.rho + -screened_rates(k_Co59_to_n_Co58_reaclib)*Y(Co59)) + - (-screened_rates(k_p_Co59_to_Ni60_reaclib)*Y(Co59)*Y(H1)*state.rho + screened_rates(k_Ni60_to_p_Co59_reaclib)*Y(Ni60)) + - (-screened_rates(k_He4_Co59_to_Cu63_reaclib)*Y(Co59)*Y(He4)*state.rho + screened_rates(k_Cu63_to_He4_Co59_reaclib)*Y(Cu63)) + - (-screened_rates(k_p_Co59_to_He4_Fe56_reaclib)*Y(Co59)*Y(H1)*state.rho + screened_rates(k_He4_Fe56_to_p_Co59_reaclib)*Y(Fe56)*Y(He4)*state.rho) + - (screened_rates(k_n_Ni59_to_p_Co59_reaclib)*Y(Ni59)*Y(N)*state.rho + -screened_rates(k_p_Co59_to_n_Ni59_reaclib)*Y(Co59)*Y(H1)*state.rho) + - (screened_rates(k_p_Ni62_to_He4_Co59_reaclib)*Y(Ni62)*Y(H1)*state.rho + -screened_rates(k_He4_Co59_to_p_Ni62_reaclib)*Y(Co59)*Y(He4)*state.rho) + - (screened_rates(k_n_Cu62_to_He4_Co59_reaclib)*Y(Cu62)*Y(N)*state.rho + -screened_rates(k_He4_Co59_to_n_Cu62_reaclib)*Y(Co59)*Y(He4)*state.rho) + - (screened_rates(k_Ni59_to_Co59_weaktab)*Y(Ni59) + -screened_rates(k_Co59_to_Ni59_weaktab)*Y(Co59)); + (screened_rates(k_Mn55_He4_to_Co59_reaclib)*Y(He4)*Y(Mn55)*state.rho + -screened_rates(k_Co59_to_He4_Mn55_derived)*Y(Co59)) + + (screened_rates(k_Fe58_p_to_Co59_reaclib)*Y(Fe58)*Y(H1)*state.rho + -screened_rates(k_Co59_to_p_Fe58_derived)*Y(Co59)) + + (screened_rates(k_Co58_n_to_Co59_reaclib)*Y(Co58)*Y(N)*state.rho + -screened_rates(k_Co59_to_n_Co58_derived)*Y(Co59)) + + (-screened_rates(k_Co59_p_to_Ni60_reaclib)*Y(Co59)*Y(H1)*state.rho + screened_rates(k_Ni60_to_p_Co59_derived)*Y(Ni60)) + + (-screened_rates(k_Co59_He4_to_Cu63_reaclib)*Y(Co59)*Y(He4)*state.rho + screened_rates(k_Cu63_to_He4_Co59_derived)*Y(Cu63)) + + (-screened_rates(k_Co59_p_to_He4_Fe56_reaclib)*Y(Co59)*Y(H1)*state.rho + screened_rates(k_Fe56_He4_to_p_Co59_derived)*Y(Fe56)*Y(He4)*state.rho) + + (screened_rates(k_Ni59_n_to_p_Co59_reaclib)*Y(Ni59)*Y(N)*state.rho + -screened_rates(k_Co59_p_to_n_Ni59_derived)*Y(Co59)*Y(H1)*state.rho) + + (screened_rates(k_Ni62_p_to_He4_Co59_reaclib)*Y(Ni62)*Y(H1)*state.rho + -screened_rates(k_Co59_He4_to_p_Ni62_derived)*Y(Co59)*Y(He4)*state.rho) + + (screened_rates(k_Cu62_n_to_He4_Co59_reaclib)*Y(Cu62)*Y(N)*state.rho + -screened_rates(k_Co59_He4_to_n_Cu62_derived)*Y(Co59)*Y(He4)*state.rho) + + (screened_rates(k_Ni59_to_Co59_electron_capture_weaktab)*Y(Ni59) + -screened_rates(k_Co59_to_Ni59_beta_neg_weaktab)*Y(Co59)); ydot_nuc(Ni56) = - (screened_rates(k_He4_Fe52_to_Ni56_reaclib)*Y(Fe52)*Y(He4)*state.rho + -screened_rates(k_Ni56_to_He4_Fe52_reaclib)*Y(Ni56)) + - (screened_rates(k_p_Co55_to_Ni56_reaclib)*Y(Co55)*Y(H1)*state.rho + -screened_rates(k_Ni56_to_p_Co55_reaclib)*Y(Ni56)) + - (-screened_rates(k_n_Ni56_to_Ni57_reaclib)*Y(Ni56)*Y(N)*state.rho + screened_rates(k_Ni57_to_n_Ni56_reaclib)*Y(Ni57)) + - (-screened_rates(k_p_Ni56_to_Cu57_reaclib)*Y(Ni56)*Y(H1)*state.rho + screened_rates(k_Cu57_to_p_Ni56_reaclib)*Y(Cu57)) + - (-screened_rates(k_He4_Ni56_to_Zn60_reaclib)*Y(He4)*Y(Ni56)*state.rho + screened_rates(k_Zn60_to_He4_Ni56_reaclib)*Y(Zn60)) + - (screened_rates(k_He4_Co53_to_p_Ni56_reaclib)*Y(Co53)*Y(He4)*state.rho + -screened_rates(k_p_Ni56_to_He4_Co53_reaclib)*Y(Ni56)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ni56_to_p_Co56_reaclib)*Y(Ni56)*Y(N)*state.rho + screened_rates(k_p_Co56_to_n_Ni56_reaclib)*Y(Co56)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ni56_to_He4_Fe53_reaclib)*Y(Ni56)*Y(N)*state.rho + screened_rates(k_He4_Fe53_to_n_Ni56_reaclib)*Y(Fe53)*Y(He4)*state.rho) + - (screened_rates(k_p_Cu59_to_He4_Ni56_reaclib)*Y(Cu59)*Y(H1)*state.rho + -screened_rates(k_He4_Ni56_to_p_Cu59_reaclib)*Y(He4)*Y(Ni56)*state.rho) + - (screened_rates(k_n_Zn59_to_He4_Ni56_reaclib)*Y(Zn59)*Y(N)*state.rho + -screened_rates(k_He4_Ni56_to_n_Zn59_reaclib)*Y(He4)*Y(Ni56)*state.rho) + - (-screened_rates(k_Ni56_to_Co56_weaktab)*Y(Ni56) + screened_rates(k_Co56_to_Ni56_weaktab)*Y(Co56)); + (screened_rates(k_Fe52_He4_to_Ni56_reaclib)*Y(Fe52)*Y(He4)*state.rho + -screened_rates(k_Ni56_to_He4_Fe52_derived)*Y(Ni56)) + + (screened_rates(k_Co55_p_to_Ni56_reaclib)*Y(Co55)*Y(H1)*state.rho + -screened_rates(k_Ni56_to_p_Co55_derived)*Y(Ni56)) + + (-screened_rates(k_Ni56_n_to_Ni57_reaclib)*Y(Ni56)*Y(N)*state.rho + screened_rates(k_Ni57_to_n_Ni56_derived)*Y(Ni57)) + + (-screened_rates(k_Ni56_p_to_Cu57_reaclib)*Y(Ni56)*Y(H1)*state.rho + screened_rates(k_Cu57_to_p_Ni56_derived)*Y(Cu57)) + + (-screened_rates(k_Ni56_He4_to_Zn60_reaclib)*Y(He4)*Y(Ni56)*state.rho + screened_rates(k_Zn60_to_He4_Ni56_derived)*Y(Zn60)) + + (screened_rates(k_Co53_He4_to_p_Ni56_reaclib)*Y(Co53)*Y(He4)*state.rho + -screened_rates(k_Ni56_p_to_He4_Co53_derived)*Y(Ni56)*Y(H1)*state.rho) + + (-screened_rates(k_Ni56_n_to_p_Co56_reaclib)*Y(Ni56)*Y(N)*state.rho + screened_rates(k_Co56_p_to_n_Ni56_derived)*Y(Co56)*Y(H1)*state.rho) + + (-screened_rates(k_Ni56_n_to_He4_Fe53_reaclib)*Y(Ni56)*Y(N)*state.rho + screened_rates(k_Fe53_He4_to_n_Ni56_derived)*Y(Fe53)*Y(He4)*state.rho) + + (screened_rates(k_Cu59_p_to_He4_Ni56_reaclib)*Y(Cu59)*Y(H1)*state.rho + -screened_rates(k_Ni56_He4_to_p_Cu59_derived)*Y(He4)*Y(Ni56)*state.rho) + + (screened_rates(k_Zn59_n_to_He4_Ni56_reaclib)*Y(Zn59)*Y(N)*state.rho + -screened_rates(k_Ni56_He4_to_n_Zn59_derived)*Y(He4)*Y(Ni56)*state.rho) + + (-screened_rates(k_Ni56_to_Co56_electron_capture_weaktab)*Y(Ni56) + screened_rates(k_Co56_to_Ni56_beta_neg_weaktab)*Y(Co56)); ydot_nuc(Ni57) = - (screened_rates(k_He4_Fe53_to_Ni57_reaclib)*Y(Fe53)*Y(He4)*state.rho + -screened_rates(k_Ni57_to_He4_Fe53_reaclib)*Y(Ni57)) + - (screened_rates(k_p_Co56_to_Ni57_reaclib)*Y(Co56)*Y(H1)*state.rho + -screened_rates(k_Ni57_to_p_Co56_reaclib)*Y(Ni57)) + - (screened_rates(k_n_Ni56_to_Ni57_reaclib)*Y(Ni56)*Y(N)*state.rho + -screened_rates(k_Ni57_to_n_Ni56_reaclib)*Y(Ni57)) + - (-screened_rates(k_n_Ni57_to_Ni58_reaclib)*Y(Ni57)*Y(N)*state.rho + screened_rates(k_Ni58_to_n_Ni57_reaclib)*Y(Ni58)) + - (-screened_rates(k_p_Ni57_to_Cu58_reaclib)*Y(Ni57)*Y(H1)*state.rho + screened_rates(k_Cu58_to_p_Ni57_reaclib)*Y(Cu58)) + - (-screened_rates(k_He4_Ni57_to_Zn61_reaclib)*Y(He4)*Y(Ni57)*state.rho + screened_rates(k_Zn61_to_He4_Ni57_reaclib)*Y(Zn61)) + - (screened_rates(k_He4_Co54_to_p_Ni57_reaclib)*Y(Co54)*Y(He4)*state.rho + -screened_rates(k_p_Ni57_to_He4_Co54_reaclib)*Y(Ni57)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ni57_to_p_Co57_reaclib)*Y(Ni57)*Y(N)*state.rho + screened_rates(k_p_Co57_to_n_Ni57_reaclib)*Y(Co57)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ni57_to_He4_Fe54_reaclib)*Y(Ni57)*Y(N)*state.rho + screened_rates(k_He4_Fe54_to_n_Ni57_reaclib)*Y(Fe54)*Y(He4)*state.rho) + - (screened_rates(k_n_Cu57_to_p_Ni57_reaclib)*Y(Cu57)*Y(N)*state.rho + -screened_rates(k_p_Ni57_to_n_Cu57_reaclib)*Y(Ni57)*Y(H1)*state.rho) + - (screened_rates(k_p_Cu60_to_He4_Ni57_reaclib)*Y(Cu60)*Y(H1)*state.rho + -screened_rates(k_He4_Ni57_to_p_Cu60_reaclib)*Y(He4)*Y(Ni57)*state.rho) + - (screened_rates(k_n_Zn60_to_He4_Ni57_reaclib)*Y(Zn60)*Y(N)*state.rho + -screened_rates(k_He4_Ni57_to_n_Zn60_reaclib)*Y(He4)*Y(Ni57)*state.rho) + - (screened_rates(k_Cu57_to_Ni57_weaktab)*Y(Cu57) + -screened_rates(k_Ni57_to_Cu57_weaktab)*Y(Ni57)) + - (-screened_rates(k_Ni57_to_Co57_weaktab)*Y(Ni57) + screened_rates(k_Co57_to_Ni57_weaktab)*Y(Co57)); + (screened_rates(k_Fe53_He4_to_Ni57_reaclib)*Y(Fe53)*Y(He4)*state.rho + -screened_rates(k_Ni57_to_He4_Fe53_derived)*Y(Ni57)) + + (screened_rates(k_Co56_p_to_Ni57_reaclib)*Y(Co56)*Y(H1)*state.rho + -screened_rates(k_Ni57_to_p_Co56_derived)*Y(Ni57)) + + (screened_rates(k_Ni56_n_to_Ni57_reaclib)*Y(Ni56)*Y(N)*state.rho + -screened_rates(k_Ni57_to_n_Ni56_derived)*Y(Ni57)) + + (-screened_rates(k_Ni57_n_to_Ni58_reaclib)*Y(Ni57)*Y(N)*state.rho + screened_rates(k_Ni58_to_n_Ni57_derived)*Y(Ni58)) + + (-screened_rates(k_Ni57_p_to_Cu58_reaclib)*Y(Ni57)*Y(H1)*state.rho + screened_rates(k_Cu58_to_p_Ni57_derived)*Y(Cu58)) + + (-screened_rates(k_Ni57_He4_to_Zn61_reaclib)*Y(He4)*Y(Ni57)*state.rho + screened_rates(k_Zn61_to_He4_Ni57_derived)*Y(Zn61)) + + (screened_rates(k_Co54_He4_to_p_Ni57_reaclib)*Y(Co54)*Y(He4)*state.rho + -screened_rates(k_Ni57_p_to_He4_Co54_derived)*Y(Ni57)*Y(H1)*state.rho) + + (-screened_rates(k_Ni57_n_to_p_Co57_reaclib)*Y(Ni57)*Y(N)*state.rho + screened_rates(k_Co57_p_to_n_Ni57_derived)*Y(Co57)*Y(H1)*state.rho) + + (-screened_rates(k_Ni57_n_to_He4_Fe54_reaclib)*Y(Ni57)*Y(N)*state.rho + screened_rates(k_Fe54_He4_to_n_Ni57_derived)*Y(Fe54)*Y(He4)*state.rho) + + (screened_rates(k_Cu57_n_to_p_Ni57_reaclib)*Y(Cu57)*Y(N)*state.rho + -screened_rates(k_Ni57_p_to_n_Cu57_derived)*Y(Ni57)*Y(H1)*state.rho) + + (screened_rates(k_Cu60_p_to_He4_Ni57_reaclib)*Y(Cu60)*Y(H1)*state.rho + -screened_rates(k_Ni57_He4_to_p_Cu60_derived)*Y(He4)*Y(Ni57)*state.rho) + + (screened_rates(k_Zn60_n_to_He4_Ni57_reaclib)*Y(Zn60)*Y(N)*state.rho + -screened_rates(k_Ni57_He4_to_n_Zn60_derived)*Y(He4)*Y(Ni57)*state.rho) + + (screened_rates(k_Cu57_to_Ni57_electron_capture_weaktab)*Y(Cu57) + -screened_rates(k_Ni57_to_Cu57_beta_neg_weaktab)*Y(Ni57)) + + (-screened_rates(k_Ni57_to_Co57_electron_capture_weaktab)*Y(Ni57) + screened_rates(k_Co57_to_Ni57_beta_neg_weaktab)*Y(Co57)); ydot_nuc(Ni58) = - screened_rates(k_Zn59_to_p_Ni58_reaclib)*Y(Zn59) + - (screened_rates(k_He4_Fe54_to_Ni58_reaclib)*Y(Fe54)*Y(He4)*state.rho + -screened_rates(k_Ni58_to_He4_Fe54_reaclib)*Y(Ni58)) + - (screened_rates(k_p_Co57_to_Ni58_reaclib)*Y(Co57)*Y(H1)*state.rho + -screened_rates(k_Ni58_to_p_Co57_reaclib)*Y(Ni58)) + - (screened_rates(k_n_Ni57_to_Ni58_reaclib)*Y(Ni57)*Y(N)*state.rho + -screened_rates(k_Ni58_to_n_Ni57_reaclib)*Y(Ni58)) + - (-screened_rates(k_n_Ni58_to_Ni59_reaclib)*Y(Ni58)*Y(N)*state.rho + screened_rates(k_Ni59_to_n_Ni58_reaclib)*Y(Ni59)) + - (-screened_rates(k_p_Ni58_to_Cu59_reaclib)*Y(Ni58)*Y(H1)*state.rho + screened_rates(k_Cu59_to_p_Ni58_reaclib)*Y(Cu59)) + - (-screened_rates(k_He4_Ni58_to_Zn62_reaclib)*Y(He4)*Y(Ni58)*state.rho + screened_rates(k_Zn62_to_He4_Ni58_reaclib)*Y(Zn62)) + - (screened_rates(k_He4_Co55_to_p_Ni58_reaclib)*Y(Co55)*Y(He4)*state.rho + -screened_rates(k_p_Ni58_to_He4_Co55_reaclib)*Y(Ni58)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ni58_to_p_Co58_reaclib)*Y(Ni58)*Y(N)*state.rho + screened_rates(k_p_Co58_to_n_Ni58_reaclib)*Y(Co58)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ni58_to_He4_Fe55_reaclib)*Y(Ni58)*Y(N)*state.rho + screened_rates(k_He4_Fe55_to_n_Ni58_reaclib)*Y(Fe55)*Y(He4)*state.rho) + - (screened_rates(k_n_Cu58_to_p_Ni58_reaclib)*Y(Cu58)*Y(N)*state.rho + -screened_rates(k_p_Ni58_to_n_Cu58_reaclib)*Y(Ni58)*Y(H1)*state.rho) + - (screened_rates(k_p_Cu61_to_He4_Ni58_reaclib)*Y(Cu61)*Y(H1)*state.rho + -screened_rates(k_He4_Ni58_to_p_Cu61_reaclib)*Y(He4)*Y(Ni58)*state.rho) + - (screened_rates(k_n_Zn61_to_He4_Ni58_reaclib)*Y(Zn61)*Y(N)*state.rho + -screened_rates(k_He4_Ni58_to_n_Zn61_reaclib)*Y(He4)*Y(Ni58)*state.rho) + - (screened_rates(k_Co58_to_Ni58_weaktab)*Y(Co58) + -screened_rates(k_Ni58_to_Co58_weaktab)*Y(Ni58)) + - (screened_rates(k_Cu58_to_Ni58_weaktab)*Y(Cu58) + -screened_rates(k_Ni58_to_Cu58_weaktab)*Y(Ni58)); + screened_rates(k_Zn59_to_p_Ni58_beta_pos_reaclib)*Y(Zn59) + + (screened_rates(k_Fe54_He4_to_Ni58_reaclib)*Y(Fe54)*Y(He4)*state.rho + -screened_rates(k_Ni58_to_He4_Fe54_derived)*Y(Ni58)) + + (screened_rates(k_Co57_p_to_Ni58_reaclib)*Y(Co57)*Y(H1)*state.rho + -screened_rates(k_Ni58_to_p_Co57_derived)*Y(Ni58)) + + (screened_rates(k_Ni57_n_to_Ni58_reaclib)*Y(Ni57)*Y(N)*state.rho + -screened_rates(k_Ni58_to_n_Ni57_derived)*Y(Ni58)) + + (-screened_rates(k_Ni58_n_to_Ni59_reaclib)*Y(Ni58)*Y(N)*state.rho + screened_rates(k_Ni59_to_n_Ni58_derived)*Y(Ni59)) + + (-screened_rates(k_Ni58_p_to_Cu59_reaclib)*Y(Ni58)*Y(H1)*state.rho + screened_rates(k_Cu59_to_p_Ni58_derived)*Y(Cu59)) + + (-screened_rates(k_Ni58_He4_to_Zn62_reaclib)*Y(He4)*Y(Ni58)*state.rho + screened_rates(k_Zn62_to_He4_Ni58_derived)*Y(Zn62)) + + (screened_rates(k_Co55_He4_to_p_Ni58_reaclib)*Y(Co55)*Y(He4)*state.rho + -screened_rates(k_Ni58_p_to_He4_Co55_derived)*Y(Ni58)*Y(H1)*state.rho) + + (-screened_rates(k_Ni58_n_to_p_Co58_reaclib)*Y(Ni58)*Y(N)*state.rho + screened_rates(k_Co58_p_to_n_Ni58_derived)*Y(Co58)*Y(H1)*state.rho) + + (-screened_rates(k_Ni58_n_to_He4_Fe55_reaclib)*Y(Ni58)*Y(N)*state.rho + screened_rates(k_Fe55_He4_to_n_Ni58_derived)*Y(Fe55)*Y(He4)*state.rho) + + (screened_rates(k_Cu58_n_to_p_Ni58_reaclib)*Y(Cu58)*Y(N)*state.rho + -screened_rates(k_Ni58_p_to_n_Cu58_derived)*Y(Ni58)*Y(H1)*state.rho) + + (screened_rates(k_Cu61_p_to_He4_Ni58_reaclib)*Y(Cu61)*Y(H1)*state.rho + -screened_rates(k_Ni58_He4_to_p_Cu61_derived)*Y(He4)*Y(Ni58)*state.rho) + + (screened_rates(k_Zn61_n_to_He4_Ni58_reaclib)*Y(Zn61)*Y(N)*state.rho + -screened_rates(k_Ni58_He4_to_n_Zn61_derived)*Y(He4)*Y(Ni58)*state.rho) + + (screened_rates(k_Co58_to_Ni58_beta_neg_weaktab)*Y(Co58) + -screened_rates(k_Ni58_to_Co58_electron_capture_weaktab)*Y(Ni58)) + + (screened_rates(k_Cu58_to_Ni58_electron_capture_weaktab)*Y(Cu58) + -screened_rates(k_Ni58_to_Cu58_beta_neg_weaktab)*Y(Ni58)); ydot_nuc(Ni59) = - (screened_rates(k_He4_Fe55_to_Ni59_reaclib)*Y(Fe55)*Y(He4)*state.rho + -screened_rates(k_Ni59_to_He4_Fe55_reaclib)*Y(Ni59)) + - (screened_rates(k_p_Co58_to_Ni59_reaclib)*Y(Co58)*Y(H1)*state.rho + -screened_rates(k_Ni59_to_p_Co58_reaclib)*Y(Ni59)) + - (screened_rates(k_n_Ni58_to_Ni59_reaclib)*Y(Ni58)*Y(N)*state.rho + -screened_rates(k_Ni59_to_n_Ni58_reaclib)*Y(Ni59)) + - (-screened_rates(k_n_Ni59_to_Ni60_reaclib)*Y(Ni59)*Y(N)*state.rho + screened_rates(k_Ni60_to_n_Ni59_reaclib)*Y(Ni60)) + - (-screened_rates(k_p_Ni59_to_Cu60_reaclib)*Y(Ni59)*Y(H1)*state.rho + screened_rates(k_Cu60_to_p_Ni59_reaclib)*Y(Cu60)) + - (-screened_rates(k_He4_Ni59_to_Zn63_reaclib)*Y(He4)*Y(Ni59)*state.rho + screened_rates(k_Zn63_to_He4_Ni59_reaclib)*Y(Zn63)) + - (screened_rates(k_He4_Co56_to_p_Ni59_reaclib)*Y(Co56)*Y(He4)*state.rho + -screened_rates(k_p_Ni59_to_He4_Co56_reaclib)*Y(Ni59)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ni59_to_p_Co59_reaclib)*Y(Ni59)*Y(N)*state.rho + screened_rates(k_p_Co59_to_n_Ni59_reaclib)*Y(Co59)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ni59_to_He4_Fe56_reaclib)*Y(Ni59)*Y(N)*state.rho + screened_rates(k_He4_Fe56_to_n_Ni59_reaclib)*Y(Fe56)*Y(He4)*state.rho) + - (screened_rates(k_n_Cu59_to_p_Ni59_reaclib)*Y(Cu59)*Y(N)*state.rho + -screened_rates(k_p_Ni59_to_n_Cu59_reaclib)*Y(Ni59)*Y(H1)*state.rho) + - (screened_rates(k_p_Cu62_to_He4_Ni59_reaclib)*Y(Cu62)*Y(H1)*state.rho + -screened_rates(k_He4_Ni59_to_p_Cu62_reaclib)*Y(He4)*Y(Ni59)*state.rho) + - (screened_rates(k_n_Zn62_to_He4_Ni59_reaclib)*Y(Zn62)*Y(N)*state.rho + -screened_rates(k_He4_Ni59_to_n_Zn62_reaclib)*Y(He4)*Y(Ni59)*state.rho) + - (screened_rates(k_Cu59_to_Ni59_weaktab)*Y(Cu59) + -screened_rates(k_Ni59_to_Cu59_weaktab)*Y(Ni59)) + - (-screened_rates(k_Ni59_to_Co59_weaktab)*Y(Ni59) + screened_rates(k_Co59_to_Ni59_weaktab)*Y(Co59)); + (screened_rates(k_Fe55_He4_to_Ni59_reaclib)*Y(Fe55)*Y(He4)*state.rho + -screened_rates(k_Ni59_to_He4_Fe55_derived)*Y(Ni59)) + + (screened_rates(k_Co58_p_to_Ni59_reaclib)*Y(Co58)*Y(H1)*state.rho + -screened_rates(k_Ni59_to_p_Co58_derived)*Y(Ni59)) + + (screened_rates(k_Ni58_n_to_Ni59_reaclib)*Y(Ni58)*Y(N)*state.rho + -screened_rates(k_Ni59_to_n_Ni58_derived)*Y(Ni59)) + + (-screened_rates(k_Ni59_n_to_Ni60_reaclib)*Y(Ni59)*Y(N)*state.rho + screened_rates(k_Ni60_to_n_Ni59_derived)*Y(Ni60)) + + (-screened_rates(k_Ni59_p_to_Cu60_reaclib)*Y(Ni59)*Y(H1)*state.rho + screened_rates(k_Cu60_to_p_Ni59_derived)*Y(Cu60)) + + (-screened_rates(k_Ni59_He4_to_Zn63_reaclib)*Y(He4)*Y(Ni59)*state.rho + screened_rates(k_Zn63_to_He4_Ni59_derived)*Y(Zn63)) + + (screened_rates(k_Co56_He4_to_p_Ni59_reaclib)*Y(Co56)*Y(He4)*state.rho + -screened_rates(k_Ni59_p_to_He4_Co56_derived)*Y(Ni59)*Y(H1)*state.rho) + + (-screened_rates(k_Ni59_n_to_p_Co59_reaclib)*Y(Ni59)*Y(N)*state.rho + screened_rates(k_Co59_p_to_n_Ni59_derived)*Y(Co59)*Y(H1)*state.rho) + + (-screened_rates(k_Ni59_n_to_He4_Fe56_reaclib)*Y(Ni59)*Y(N)*state.rho + screened_rates(k_Fe56_He4_to_n_Ni59_derived)*Y(Fe56)*Y(He4)*state.rho) + + (screened_rates(k_Cu59_n_to_p_Ni59_reaclib)*Y(Cu59)*Y(N)*state.rho + -screened_rates(k_Ni59_p_to_n_Cu59_derived)*Y(Ni59)*Y(H1)*state.rho) + + (screened_rates(k_Cu62_p_to_He4_Ni59_reaclib)*Y(Cu62)*Y(H1)*state.rho + -screened_rates(k_Ni59_He4_to_p_Cu62_derived)*Y(He4)*Y(Ni59)*state.rho) + + (screened_rates(k_Zn62_n_to_He4_Ni59_reaclib)*Y(Zn62)*Y(N)*state.rho + -screened_rates(k_Ni59_He4_to_n_Zn62_derived)*Y(He4)*Y(Ni59)*state.rho) + + (screened_rates(k_Cu59_to_Ni59_electron_capture_weaktab)*Y(Cu59) + -screened_rates(k_Ni59_to_Cu59_beta_neg_weaktab)*Y(Ni59)) + + (-screened_rates(k_Ni59_to_Co59_electron_capture_weaktab)*Y(Ni59) + screened_rates(k_Co59_to_Ni59_beta_neg_weaktab)*Y(Co59)); ydot_nuc(Ni60) = - (screened_rates(k_He4_Fe56_to_Ni60_reaclib)*Y(Fe56)*Y(He4)*state.rho + -screened_rates(k_Ni60_to_He4_Fe56_reaclib)*Y(Ni60)) + - (screened_rates(k_p_Co59_to_Ni60_reaclib)*Y(Co59)*Y(H1)*state.rho + -screened_rates(k_Ni60_to_p_Co59_reaclib)*Y(Ni60)) + - (screened_rates(k_n_Ni59_to_Ni60_reaclib)*Y(Ni59)*Y(N)*state.rho + -screened_rates(k_Ni60_to_n_Ni59_reaclib)*Y(Ni60)) + - (-screened_rates(k_n_Ni60_to_Ni61_reaclib)*Y(Ni60)*Y(N)*state.rho + screened_rates(k_Ni61_to_n_Ni60_reaclib)*Y(Ni61)) + - (-screened_rates(k_p_Ni60_to_Cu61_reaclib)*Y(Ni60)*Y(H1)*state.rho + screened_rates(k_Cu61_to_p_Ni60_reaclib)*Y(Cu61)) + - (-screened_rates(k_He4_Ni60_to_Zn64_reaclib)*Y(He4)*Y(Ni60)*state.rho + screened_rates(k_Zn64_to_He4_Ni60_reaclib)*Y(Zn64)) + - (screened_rates(k_He4_Co57_to_p_Ni60_reaclib)*Y(Co57)*Y(He4)*state.rho + -screened_rates(k_p_Ni60_to_He4_Co57_reaclib)*Y(Ni60)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ni60_to_He4_Fe57_reaclib)*Y(Ni60)*Y(N)*state.rho + screened_rates(k_He4_Fe57_to_n_Ni60_reaclib)*Y(Fe57)*Y(He4)*state.rho) + - (screened_rates(k_n_Cu60_to_p_Ni60_reaclib)*Y(Cu60)*Y(N)*state.rho + -screened_rates(k_p_Ni60_to_n_Cu60_reaclib)*Y(Ni60)*Y(H1)*state.rho) + - (screened_rates(k_p_Cu63_to_He4_Ni60_reaclib)*Y(Cu63)*Y(H1)*state.rho + -screened_rates(k_He4_Ni60_to_p_Cu63_reaclib)*Y(He4)*Y(Ni60)*state.rho) + - (screened_rates(k_n_Zn63_to_He4_Ni60_reaclib)*Y(Zn63)*Y(N)*state.rho + -screened_rates(k_He4_Ni60_to_n_Zn63_reaclib)*Y(He4)*Y(Ni60)*state.rho) + - (screened_rates(k_Cu60_to_Ni60_weaktab)*Y(Cu60) + -screened_rates(k_Ni60_to_Cu60_weaktab)*Y(Ni60)); + (screened_rates(k_Fe56_He4_to_Ni60_reaclib)*Y(Fe56)*Y(He4)*state.rho + -screened_rates(k_Ni60_to_He4_Fe56_derived)*Y(Ni60)) + + (screened_rates(k_Co59_p_to_Ni60_reaclib)*Y(Co59)*Y(H1)*state.rho + -screened_rates(k_Ni60_to_p_Co59_derived)*Y(Ni60)) + + (screened_rates(k_Ni59_n_to_Ni60_reaclib)*Y(Ni59)*Y(N)*state.rho + -screened_rates(k_Ni60_to_n_Ni59_derived)*Y(Ni60)) + + (-screened_rates(k_Ni60_n_to_Ni61_reaclib)*Y(Ni60)*Y(N)*state.rho + screened_rates(k_Ni61_to_n_Ni60_derived)*Y(Ni61)) + + (-screened_rates(k_Ni60_p_to_Cu61_reaclib)*Y(Ni60)*Y(H1)*state.rho + screened_rates(k_Cu61_to_p_Ni60_derived)*Y(Cu61)) + + (-screened_rates(k_Ni60_He4_to_Zn64_reaclib)*Y(He4)*Y(Ni60)*state.rho + screened_rates(k_Zn64_to_He4_Ni60_derived)*Y(Zn64)) + + (screened_rates(k_Co57_He4_to_p_Ni60_reaclib)*Y(Co57)*Y(He4)*state.rho + -screened_rates(k_Ni60_p_to_He4_Co57_derived)*Y(Ni60)*Y(H1)*state.rho) + + (-screened_rates(k_Ni60_n_to_He4_Fe57_reaclib)*Y(Ni60)*Y(N)*state.rho + screened_rates(k_Fe57_He4_to_n_Ni60_derived)*Y(Fe57)*Y(He4)*state.rho) + + (screened_rates(k_Cu60_n_to_p_Ni60_reaclib)*Y(Cu60)*Y(N)*state.rho + -screened_rates(k_Ni60_p_to_n_Cu60_derived)*Y(Ni60)*Y(H1)*state.rho) + + (screened_rates(k_Cu63_p_to_He4_Ni60_reaclib)*Y(Cu63)*Y(H1)*state.rho + -screened_rates(k_Ni60_He4_to_p_Cu63_derived)*Y(He4)*Y(Ni60)*state.rho) + + (screened_rates(k_Zn63_n_to_He4_Ni60_reaclib)*Y(Zn63)*Y(N)*state.rho + -screened_rates(k_Ni60_He4_to_n_Zn63_derived)*Y(He4)*Y(Ni60)*state.rho) + + (screened_rates(k_Cu60_to_Ni60_electron_capture_weaktab)*Y(Cu60) + -screened_rates(k_Ni60_to_Cu60_beta_neg_weaktab)*Y(Ni60)); ydot_nuc(Ni61) = - (screened_rates(k_He4_Fe57_to_Ni61_reaclib)*Y(Fe57)*Y(He4)*state.rho + -screened_rates(k_Ni61_to_He4_Fe57_reaclib)*Y(Ni61)) + - (screened_rates(k_n_Ni60_to_Ni61_reaclib)*Y(Ni60)*Y(N)*state.rho + -screened_rates(k_Ni61_to_n_Ni60_reaclib)*Y(Ni61)) + - (-screened_rates(k_n_Ni61_to_Ni62_reaclib)*Y(Ni61)*Y(N)*state.rho + screened_rates(k_Ni62_to_n_Ni61_reaclib)*Y(Ni62)) + - (-screened_rates(k_p_Ni61_to_Cu62_reaclib)*Y(Ni61)*Y(H1)*state.rho + screened_rates(k_Cu62_to_p_Ni61_reaclib)*Y(Cu62)) + - (-screened_rates(k_He4_Ni61_to_Zn65_reaclib)*Y(He4)*Y(Ni61)*state.rho + screened_rates(k_Zn65_to_He4_Ni61_reaclib)*Y(Zn65)) + - (-screened_rates(k_n_Ni61_to_He4_Fe58_reaclib)*Y(Ni61)*Y(N)*state.rho + screened_rates(k_He4_Fe58_to_n_Ni61_reaclib)*Y(Fe58)*Y(He4)*state.rho) + - (-screened_rates(k_p_Ni61_to_He4_Co58_reaclib)*Y(Ni61)*Y(H1)*state.rho + screened_rates(k_He4_Co58_to_p_Ni61_reaclib)*Y(Co58)*Y(He4)*state.rho) + - (screened_rates(k_n_Cu61_to_p_Ni61_reaclib)*Y(Cu61)*Y(N)*state.rho + -screened_rates(k_p_Ni61_to_n_Cu61_reaclib)*Y(Ni61)*Y(H1)*state.rho) + - (screened_rates(k_p_Cu64_to_He4_Ni61_reaclib)*Y(Cu64)*Y(H1)*state.rho + -screened_rates(k_He4_Ni61_to_p_Cu64_reaclib)*Y(He4)*Y(Ni61)*state.rho) + - (screened_rates(k_n_Zn64_to_He4_Ni61_reaclib)*Y(Zn64)*Y(N)*state.rho + -screened_rates(k_He4_Ni61_to_n_Zn64_reaclib)*Y(He4)*Y(Ni61)*state.rho) + - (screened_rates(k_Cu61_to_Ni61_weaktab)*Y(Cu61) + -screened_rates(k_Ni61_to_Cu61_weaktab)*Y(Ni61)); + (screened_rates(k_Fe57_He4_to_Ni61_reaclib)*Y(Fe57)*Y(He4)*state.rho + -screened_rates(k_Ni61_to_He4_Fe57_derived)*Y(Ni61)) + + (screened_rates(k_Ni60_n_to_Ni61_reaclib)*Y(Ni60)*Y(N)*state.rho + -screened_rates(k_Ni61_to_n_Ni60_derived)*Y(Ni61)) + + (-screened_rates(k_Ni61_n_to_Ni62_reaclib)*Y(Ni61)*Y(N)*state.rho + screened_rates(k_Ni62_to_n_Ni61_derived)*Y(Ni62)) + + (-screened_rates(k_Ni61_p_to_Cu62_reaclib)*Y(Ni61)*Y(H1)*state.rho + screened_rates(k_Cu62_to_p_Ni61_derived)*Y(Cu62)) + + (-screened_rates(k_Ni61_He4_to_Zn65_reaclib)*Y(He4)*Y(Ni61)*state.rho + screened_rates(k_Zn65_to_He4_Ni61_derived)*Y(Zn65)) + + (-screened_rates(k_Ni61_n_to_He4_Fe58_reaclib)*Y(Ni61)*Y(N)*state.rho + screened_rates(k_Fe58_He4_to_n_Ni61_derived)*Y(Fe58)*Y(He4)*state.rho) + + (-screened_rates(k_Ni61_p_to_He4_Co58_reaclib)*Y(Ni61)*Y(H1)*state.rho + screened_rates(k_Co58_He4_to_p_Ni61_derived)*Y(Co58)*Y(He4)*state.rho) + + (screened_rates(k_Cu61_n_to_p_Ni61_reaclib)*Y(Cu61)*Y(N)*state.rho + -screened_rates(k_Ni61_p_to_n_Cu61_derived)*Y(Ni61)*Y(H1)*state.rho) + + (screened_rates(k_Cu64_p_to_He4_Ni61_reaclib)*Y(Cu64)*Y(H1)*state.rho + -screened_rates(k_Ni61_He4_to_p_Cu64_derived)*Y(He4)*Y(Ni61)*state.rho) + + (screened_rates(k_Zn64_n_to_He4_Ni61_reaclib)*Y(Zn64)*Y(N)*state.rho + -screened_rates(k_Ni61_He4_to_n_Zn64_derived)*Y(He4)*Y(Ni61)*state.rho) + + (screened_rates(k_Cu61_to_Ni61_electron_capture_weaktab)*Y(Cu61) + -screened_rates(k_Ni61_to_Cu61_beta_neg_weaktab)*Y(Ni61)); ydot_nuc(Ni62) = - (screened_rates(k_He4_Fe58_to_Ni62_reaclib)*Y(Fe58)*Y(He4)*state.rho + -screened_rates(k_Ni62_to_He4_Fe58_reaclib)*Y(Ni62)) + - (screened_rates(k_n_Ni61_to_Ni62_reaclib)*Y(Ni61)*Y(N)*state.rho + -screened_rates(k_Ni62_to_n_Ni61_reaclib)*Y(Ni62)) + - (-screened_rates(k_n_Ni62_to_Ni63_reaclib)*Y(Ni62)*Y(N)*state.rho + screened_rates(k_Ni63_to_n_Ni62_reaclib)*Y(Ni63)) + - (-screened_rates(k_p_Ni62_to_Cu63_reaclib)*Y(Ni62)*Y(H1)*state.rho + screened_rates(k_Cu63_to_p_Ni62_reaclib)*Y(Cu63)) + - (-screened_rates(k_He4_Ni62_to_Zn66_reaclib)*Y(He4)*Y(Ni62)*state.rho + screened_rates(k_Zn66_to_He4_Ni62_reaclib)*Y(Zn66)) + - (-screened_rates(k_p_Ni62_to_He4_Co59_reaclib)*Y(Ni62)*Y(H1)*state.rho + screened_rates(k_He4_Co59_to_p_Ni62_reaclib)*Y(Co59)*Y(He4)*state.rho) + - (screened_rates(k_n_Cu62_to_p_Ni62_reaclib)*Y(Cu62)*Y(N)*state.rho + -screened_rates(k_p_Ni62_to_n_Cu62_reaclib)*Y(Ni62)*Y(H1)*state.rho) + - (screened_rates(k_p_Cu65_to_He4_Ni62_reaclib)*Y(Cu65)*Y(H1)*state.rho + -screened_rates(k_He4_Ni62_to_p_Cu65_reaclib)*Y(He4)*Y(Ni62)*state.rho) + - (screened_rates(k_n_Zn65_to_He4_Ni62_reaclib)*Y(Zn65)*Y(N)*state.rho + -screened_rates(k_He4_Ni62_to_n_Zn65_reaclib)*Y(He4)*Y(Ni62)*state.rho) + - (screened_rates(k_Cu62_to_Ni62_weaktab)*Y(Cu62) + -screened_rates(k_Ni62_to_Cu62_weaktab)*Y(Ni62)); + (screened_rates(k_Fe58_He4_to_Ni62_reaclib)*Y(Fe58)*Y(He4)*state.rho + -screened_rates(k_Ni62_to_He4_Fe58_derived)*Y(Ni62)) + + (screened_rates(k_Ni61_n_to_Ni62_reaclib)*Y(Ni61)*Y(N)*state.rho + -screened_rates(k_Ni62_to_n_Ni61_derived)*Y(Ni62)) + + (-screened_rates(k_Ni62_n_to_Ni63_reaclib)*Y(Ni62)*Y(N)*state.rho + screened_rates(k_Ni63_to_n_Ni62_derived)*Y(Ni63)) + + (-screened_rates(k_Ni62_p_to_Cu63_reaclib)*Y(Ni62)*Y(H1)*state.rho + screened_rates(k_Cu63_to_p_Ni62_derived)*Y(Cu63)) + + (-screened_rates(k_Ni62_He4_to_Zn66_reaclib)*Y(He4)*Y(Ni62)*state.rho + screened_rates(k_Zn66_to_He4_Ni62_derived)*Y(Zn66)) + + (-screened_rates(k_Ni62_p_to_He4_Co59_reaclib)*Y(Ni62)*Y(H1)*state.rho + screened_rates(k_Co59_He4_to_p_Ni62_derived)*Y(Co59)*Y(He4)*state.rho) + + (screened_rates(k_Cu62_n_to_p_Ni62_reaclib)*Y(Cu62)*Y(N)*state.rho + -screened_rates(k_Ni62_p_to_n_Cu62_derived)*Y(Ni62)*Y(H1)*state.rho) + + (screened_rates(k_Cu65_p_to_He4_Ni62_reaclib)*Y(Cu65)*Y(H1)*state.rho + -screened_rates(k_Ni62_He4_to_p_Cu65_derived)*Y(He4)*Y(Ni62)*state.rho) + + (screened_rates(k_Zn65_n_to_He4_Ni62_reaclib)*Y(Zn65)*Y(N)*state.rho + -screened_rates(k_Ni62_He4_to_n_Zn65_derived)*Y(He4)*Y(Ni62)*state.rho) + + (screened_rates(k_Cu62_to_Ni62_electron_capture_weaktab)*Y(Cu62) + -screened_rates(k_Ni62_to_Cu62_beta_neg_weaktab)*Y(Ni62)); ydot_nuc(Ni63) = - (screened_rates(k_n_Ni62_to_Ni63_reaclib)*Y(Ni62)*Y(N)*state.rho + -screened_rates(k_Ni63_to_n_Ni62_reaclib)*Y(Ni63)) + - (-screened_rates(k_n_Ni63_to_Ni64_reaclib)*Y(Ni63)*Y(N)*state.rho + screened_rates(k_Ni64_to_n_Ni63_reaclib)*Y(Ni64)) + - (-screened_rates(k_p_Ni63_to_Cu64_reaclib)*Y(Ni63)*Y(H1)*state.rho + screened_rates(k_Cu64_to_p_Ni63_reaclib)*Y(Cu64)) + - (screened_rates(k_n_Cu63_to_p_Ni63_reaclib)*Y(Cu63)*Y(N)*state.rho + -screened_rates(k_p_Ni63_to_n_Cu63_reaclib)*Y(Ni63)*Y(H1)*state.rho) + - (screened_rates(k_n_Zn66_to_He4_Ni63_reaclib)*Y(Zn66)*Y(N)*state.rho + -screened_rates(k_He4_Ni63_to_n_Zn66_reaclib)*Y(He4)*Y(Ni63)*state.rho) + - (-screened_rates(k_Ni63_to_Cu63_weaktab)*Y(Ni63) + screened_rates(k_Cu63_to_Ni63_weaktab)*Y(Cu63)); + (screened_rates(k_Ni62_n_to_Ni63_reaclib)*Y(Ni62)*Y(N)*state.rho + -screened_rates(k_Ni63_to_n_Ni62_derived)*Y(Ni63)) + + (-screened_rates(k_Ni63_n_to_Ni64_reaclib)*Y(Ni63)*Y(N)*state.rho + screened_rates(k_Ni64_to_n_Ni63_derived)*Y(Ni64)) + + (-screened_rates(k_Ni63_p_to_Cu64_reaclib)*Y(Ni63)*Y(H1)*state.rho + screened_rates(k_Cu64_to_p_Ni63_derived)*Y(Cu64)) + + (screened_rates(k_Cu63_n_to_p_Ni63_reaclib)*Y(Cu63)*Y(N)*state.rho + -screened_rates(k_Ni63_p_to_n_Cu63_derived)*Y(Ni63)*Y(H1)*state.rho) + + (screened_rates(k_Zn66_n_to_He4_Ni63_reaclib)*Y(Zn66)*Y(N)*state.rho + -screened_rates(k_Ni63_He4_to_n_Zn66_derived)*Y(He4)*Y(Ni63)*state.rho) + + (-screened_rates(k_Ni63_to_Cu63_beta_neg_weaktab)*Y(Ni63) + screened_rates(k_Cu63_to_Ni63_electron_capture_weaktab)*Y(Cu63)); ydot_nuc(Ni64) = - (screened_rates(k_n_Ni63_to_Ni64_reaclib)*Y(Ni63)*Y(N)*state.rho + -screened_rates(k_Ni64_to_n_Ni63_reaclib)*Y(Ni64)) + - (-screened_rates(k_p_Ni64_to_Cu65_reaclib)*Y(Ni64)*Y(H1)*state.rho + screened_rates(k_Cu65_to_p_Ni64_reaclib)*Y(Cu65)) + - (screened_rates(k_n_Cu64_to_p_Ni64_reaclib)*Y(Cu64)*Y(N)*state.rho + -screened_rates(k_p_Ni64_to_n_Cu64_reaclib)*Y(Ni64)*Y(H1)*state.rho) + - (screened_rates(k_Cu64_to_Ni64_weaktab)*Y(Cu64) + -screened_rates(k_Ni64_to_Cu64_weaktab)*Y(Ni64)); + (screened_rates(k_Ni63_n_to_Ni64_reaclib)*Y(Ni63)*Y(N)*state.rho + -screened_rates(k_Ni64_to_n_Ni63_derived)*Y(Ni64)) + + (-screened_rates(k_Ni64_p_to_Cu65_reaclib)*Y(Ni64)*Y(H1)*state.rho + screened_rates(k_Cu65_to_p_Ni64_derived)*Y(Cu65)) + + (screened_rates(k_Cu64_n_to_p_Ni64_reaclib)*Y(Cu64)*Y(N)*state.rho + -screened_rates(k_Ni64_p_to_n_Cu64_derived)*Y(Ni64)*Y(H1)*state.rho) + + (screened_rates(k_Cu64_to_Ni64_electron_capture_weaktab)*Y(Cu64) + -screened_rates(k_Ni64_to_Cu64_beta_neg_weaktab)*Y(Ni64)); ydot_nuc(Cu57) = - (screened_rates(k_He4_Co53_to_Cu57_reaclib)*Y(Co53)*Y(He4)*state.rho + -screened_rates(k_Cu57_to_He4_Co53_reaclib)*Y(Cu57)) + - (screened_rates(k_p_Ni56_to_Cu57_reaclib)*Y(Ni56)*Y(H1)*state.rho + -screened_rates(k_Cu57_to_p_Ni56_reaclib)*Y(Cu57)) + - (-screened_rates(k_n_Cu57_to_Cu58_reaclib)*Y(Cu57)*Y(N)*state.rho + screened_rates(k_Cu58_to_n_Cu57_reaclib)*Y(Cu58)) + - (-screened_rates(k_n_Cu57_to_p_Ni57_reaclib)*Y(Cu57)*Y(N)*state.rho + screened_rates(k_p_Ni57_to_n_Cu57_reaclib)*Y(Ni57)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cu57_to_He4_Co54_reaclib)*Y(Cu57)*Y(N)*state.rho + screened_rates(k_He4_Co54_to_n_Cu57_reaclib)*Y(Co54)*Y(He4)*state.rho) + - (-screened_rates(k_He4_Cu57_to_p_Zn60_reaclib)*Y(Cu57)*Y(He4)*state.rho + screened_rates(k_p_Zn60_to_He4_Cu57_reaclib)*Y(Zn60)*Y(H1)*state.rho) + - (-screened_rates(k_Cu57_to_Ni57_weaktab)*Y(Cu57) + screened_rates(k_Ni57_to_Cu57_weaktab)*Y(Ni57)); + (screened_rates(k_Co53_He4_to_Cu57_reaclib)*Y(Co53)*Y(He4)*state.rho + -screened_rates(k_Cu57_to_He4_Co53_derived)*Y(Cu57)) + + (screened_rates(k_Ni56_p_to_Cu57_reaclib)*Y(Ni56)*Y(H1)*state.rho + -screened_rates(k_Cu57_to_p_Ni56_derived)*Y(Cu57)) + + (-screened_rates(k_Cu57_n_to_Cu58_reaclib)*Y(Cu57)*Y(N)*state.rho + screened_rates(k_Cu58_to_n_Cu57_derived)*Y(Cu58)) + + (-screened_rates(k_Cu57_n_to_p_Ni57_reaclib)*Y(Cu57)*Y(N)*state.rho + screened_rates(k_Ni57_p_to_n_Cu57_derived)*Y(Ni57)*Y(H1)*state.rho) + + (-screened_rates(k_Cu57_n_to_He4_Co54_reaclib)*Y(Cu57)*Y(N)*state.rho + screened_rates(k_Co54_He4_to_n_Cu57_derived)*Y(Co54)*Y(He4)*state.rho) + + (-screened_rates(k_Cu57_He4_to_p_Zn60_reaclib)*Y(Cu57)*Y(He4)*state.rho + screened_rates(k_Zn60_p_to_He4_Cu57_derived)*Y(Zn60)*Y(H1)*state.rho) + + (-screened_rates(k_Cu57_to_Ni57_electron_capture_weaktab)*Y(Cu57) + screened_rates(k_Ni57_to_Cu57_beta_neg_weaktab)*Y(Ni57)); ydot_nuc(Cu58) = - (screened_rates(k_He4_Co54_to_Cu58_reaclib)*Y(Co54)*Y(He4)*state.rho + -screened_rates(k_Cu58_to_He4_Co54_reaclib)*Y(Cu58)) + - (screened_rates(k_p_Ni57_to_Cu58_reaclib)*Y(Ni57)*Y(H1)*state.rho + -screened_rates(k_Cu58_to_p_Ni57_reaclib)*Y(Cu58)) + - (screened_rates(k_n_Cu57_to_Cu58_reaclib)*Y(Cu57)*Y(N)*state.rho + -screened_rates(k_Cu58_to_n_Cu57_reaclib)*Y(Cu58)) + - (-screened_rates(k_n_Cu58_to_Cu59_reaclib)*Y(Cu58)*Y(N)*state.rho + screened_rates(k_Cu59_to_n_Cu58_reaclib)*Y(Cu59)) + - (-screened_rates(k_p_Cu58_to_Zn59_reaclib)*Y(Cu58)*Y(H1)*state.rho + screened_rates(k_Zn59_to_p_Cu58_reaclib)*Y(Zn59)) + - (-screened_rates(k_He4_Cu58_to_Ga62_reaclib)*Y(Cu58)*Y(He4)*state.rho + screened_rates(k_Ga62_to_He4_Cu58_reaclib)*Y(Ga62)) + - (-screened_rates(k_n_Cu58_to_p_Ni58_reaclib)*Y(Cu58)*Y(N)*state.rho + screened_rates(k_p_Ni58_to_n_Cu58_reaclib)*Y(Ni58)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cu58_to_He4_Co55_reaclib)*Y(Cu58)*Y(N)*state.rho + screened_rates(k_He4_Co55_to_n_Cu58_reaclib)*Y(Co55)*Y(He4)*state.rho) + - (screened_rates(k_p_Zn61_to_He4_Cu58_reaclib)*Y(Zn61)*Y(H1)*state.rho + -screened_rates(k_He4_Cu58_to_p_Zn61_reaclib)*Y(Cu58)*Y(He4)*state.rho) + - (-screened_rates(k_Cu58_to_Ni58_weaktab)*Y(Cu58) + screened_rates(k_Ni58_to_Cu58_weaktab)*Y(Ni58)); + (screened_rates(k_Co54_He4_to_Cu58_reaclib)*Y(Co54)*Y(He4)*state.rho + -screened_rates(k_Cu58_to_He4_Co54_derived)*Y(Cu58)) + + (screened_rates(k_Ni57_p_to_Cu58_reaclib)*Y(Ni57)*Y(H1)*state.rho + -screened_rates(k_Cu58_to_p_Ni57_derived)*Y(Cu58)) + + (screened_rates(k_Cu57_n_to_Cu58_reaclib)*Y(Cu57)*Y(N)*state.rho + -screened_rates(k_Cu58_to_n_Cu57_derived)*Y(Cu58)) + + (-screened_rates(k_Cu58_n_to_Cu59_reaclib)*Y(Cu58)*Y(N)*state.rho + screened_rates(k_Cu59_to_n_Cu58_derived)*Y(Cu59)) + + (-screened_rates(k_Cu58_p_to_Zn59_reaclib)*Y(Cu58)*Y(H1)*state.rho + screened_rates(k_Zn59_to_p_Cu58_derived)*Y(Zn59)) + + (-screened_rates(k_Cu58_He4_to_Ga62_reaclib)*Y(Cu58)*Y(He4)*state.rho + screened_rates(k_Ga62_to_He4_Cu58_derived)*Y(Ga62)) + + (-screened_rates(k_Cu58_n_to_p_Ni58_reaclib)*Y(Cu58)*Y(N)*state.rho + screened_rates(k_Ni58_p_to_n_Cu58_derived)*Y(Ni58)*Y(H1)*state.rho) + + (-screened_rates(k_Cu58_n_to_He4_Co55_reaclib)*Y(Cu58)*Y(N)*state.rho + screened_rates(k_Co55_He4_to_n_Cu58_derived)*Y(Co55)*Y(He4)*state.rho) + + (screened_rates(k_Zn61_p_to_He4_Cu58_reaclib)*Y(Zn61)*Y(H1)*state.rho + -screened_rates(k_Cu58_He4_to_p_Zn61_derived)*Y(Cu58)*Y(He4)*state.rho) + + (-screened_rates(k_Cu58_to_Ni58_electron_capture_weaktab)*Y(Cu58) + screened_rates(k_Ni58_to_Cu58_beta_neg_weaktab)*Y(Ni58)); ydot_nuc(Cu59) = - screened_rates(k_Zn59_to_Cu59_reaclib)*Y(Zn59) + - (screened_rates(k_He4_Co55_to_Cu59_reaclib)*Y(Co55)*Y(He4)*state.rho + -screened_rates(k_Cu59_to_He4_Co55_reaclib)*Y(Cu59)) + - (screened_rates(k_p_Ni58_to_Cu59_reaclib)*Y(Ni58)*Y(H1)*state.rho + -screened_rates(k_Cu59_to_p_Ni58_reaclib)*Y(Cu59)) + - (screened_rates(k_n_Cu58_to_Cu59_reaclib)*Y(Cu58)*Y(N)*state.rho + -screened_rates(k_Cu59_to_n_Cu58_reaclib)*Y(Cu59)) + - (-screened_rates(k_n_Cu59_to_Cu60_reaclib)*Y(Cu59)*Y(N)*state.rho + screened_rates(k_Cu60_to_n_Cu59_reaclib)*Y(Cu60)) + - (-screened_rates(k_p_Cu59_to_Zn60_reaclib)*Y(Cu59)*Y(H1)*state.rho + screened_rates(k_Zn60_to_p_Cu59_reaclib)*Y(Zn60)) + - (-screened_rates(k_He4_Cu59_to_Ga63_reaclib)*Y(Cu59)*Y(He4)*state.rho + screened_rates(k_Ga63_to_He4_Cu59_reaclib)*Y(Ga63)) + - (-screened_rates(k_n_Cu59_to_p_Ni59_reaclib)*Y(Cu59)*Y(N)*state.rho + screened_rates(k_p_Ni59_to_n_Cu59_reaclib)*Y(Ni59)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cu59_to_He4_Co56_reaclib)*Y(Cu59)*Y(N)*state.rho + screened_rates(k_He4_Co56_to_n_Cu59_reaclib)*Y(Co56)*Y(He4)*state.rho) + - (-screened_rates(k_p_Cu59_to_He4_Ni56_reaclib)*Y(Cu59)*Y(H1)*state.rho + screened_rates(k_He4_Ni56_to_p_Cu59_reaclib)*Y(He4)*Y(Ni56)*state.rho) + - (screened_rates(k_n_Zn59_to_p_Cu59_reaclib)*Y(Zn59)*Y(N)*state.rho + -screened_rates(k_p_Cu59_to_n_Zn59_reaclib)*Y(Cu59)*Y(H1)*state.rho) + - (screened_rates(k_p_Zn62_to_He4_Cu59_reaclib)*Y(Zn62)*Y(H1)*state.rho + -screened_rates(k_He4_Cu59_to_p_Zn62_reaclib)*Y(Cu59)*Y(He4)*state.rho) + - (screened_rates(k_n_Ga62_to_He4_Cu59_reaclib)*Y(Ga62)*Y(N)*state.rho + -screened_rates(k_He4_Cu59_to_n_Ga62_reaclib)*Y(Cu59)*Y(He4)*state.rho) + - (-screened_rates(k_Cu59_to_Ni59_weaktab)*Y(Cu59) + screened_rates(k_Ni59_to_Cu59_weaktab)*Y(Ni59)); + screened_rates(k_Zn59_to_Cu59_beta_pos_reaclib)*Y(Zn59) + + (screened_rates(k_Co55_He4_to_Cu59_reaclib)*Y(Co55)*Y(He4)*state.rho + -screened_rates(k_Cu59_to_He4_Co55_derived)*Y(Cu59)) + + (screened_rates(k_Ni58_p_to_Cu59_reaclib)*Y(Ni58)*Y(H1)*state.rho + -screened_rates(k_Cu59_to_p_Ni58_derived)*Y(Cu59)) + + (screened_rates(k_Cu58_n_to_Cu59_reaclib)*Y(Cu58)*Y(N)*state.rho + -screened_rates(k_Cu59_to_n_Cu58_derived)*Y(Cu59)) + + (-screened_rates(k_Cu59_n_to_Cu60_reaclib)*Y(Cu59)*Y(N)*state.rho + screened_rates(k_Cu60_to_n_Cu59_derived)*Y(Cu60)) + + (-screened_rates(k_Cu59_p_to_Zn60_reaclib)*Y(Cu59)*Y(H1)*state.rho + screened_rates(k_Zn60_to_p_Cu59_derived)*Y(Zn60)) + + (-screened_rates(k_Cu59_He4_to_Ga63_reaclib)*Y(Cu59)*Y(He4)*state.rho + screened_rates(k_Ga63_to_He4_Cu59_derived)*Y(Ga63)) + + (-screened_rates(k_Cu59_n_to_p_Ni59_reaclib)*Y(Cu59)*Y(N)*state.rho + screened_rates(k_Ni59_p_to_n_Cu59_derived)*Y(Ni59)*Y(H1)*state.rho) + + (-screened_rates(k_Cu59_n_to_He4_Co56_reaclib)*Y(Cu59)*Y(N)*state.rho + screened_rates(k_Co56_He4_to_n_Cu59_derived)*Y(Co56)*Y(He4)*state.rho) + + (-screened_rates(k_Cu59_p_to_He4_Ni56_reaclib)*Y(Cu59)*Y(H1)*state.rho + screened_rates(k_Ni56_He4_to_p_Cu59_derived)*Y(He4)*Y(Ni56)*state.rho) + + (screened_rates(k_Zn59_n_to_p_Cu59_reaclib)*Y(Zn59)*Y(N)*state.rho + -screened_rates(k_Cu59_p_to_n_Zn59_derived)*Y(Cu59)*Y(H1)*state.rho) + + (screened_rates(k_Zn62_p_to_He4_Cu59_reaclib)*Y(Zn62)*Y(H1)*state.rho + -screened_rates(k_Cu59_He4_to_p_Zn62_derived)*Y(Cu59)*Y(He4)*state.rho) + + (screened_rates(k_Ga62_n_to_He4_Cu59_reaclib)*Y(Ga62)*Y(N)*state.rho + -screened_rates(k_Cu59_He4_to_n_Ga62_derived)*Y(Cu59)*Y(He4)*state.rho) + + (-screened_rates(k_Cu59_to_Ni59_electron_capture_weaktab)*Y(Cu59) + screened_rates(k_Ni59_to_Cu59_beta_neg_weaktab)*Y(Ni59)); ydot_nuc(Cu60) = - (screened_rates(k_He4_Co56_to_Cu60_reaclib)*Y(Co56)*Y(He4)*state.rho + -screened_rates(k_Cu60_to_He4_Co56_reaclib)*Y(Cu60)) + - (screened_rates(k_p_Ni59_to_Cu60_reaclib)*Y(Ni59)*Y(H1)*state.rho + -screened_rates(k_Cu60_to_p_Ni59_reaclib)*Y(Cu60)) + - (screened_rates(k_n_Cu59_to_Cu60_reaclib)*Y(Cu59)*Y(N)*state.rho + -screened_rates(k_Cu60_to_n_Cu59_reaclib)*Y(Cu60)) + - (-screened_rates(k_n_Cu60_to_Cu61_reaclib)*Y(Cu60)*Y(N)*state.rho + screened_rates(k_Cu61_to_n_Cu60_reaclib)*Y(Cu61)) + - (-screened_rates(k_p_Cu60_to_Zn61_reaclib)*Y(Cu60)*Y(H1)*state.rho + screened_rates(k_Zn61_to_p_Cu60_reaclib)*Y(Zn61)) + - (-screened_rates(k_He4_Cu60_to_Ga64_reaclib)*Y(Cu60)*Y(He4)*state.rho + screened_rates(k_Ga64_to_He4_Cu60_reaclib)*Y(Ga64)) + - (-screened_rates(k_n_Cu60_to_p_Ni60_reaclib)*Y(Cu60)*Y(N)*state.rho + screened_rates(k_p_Ni60_to_n_Cu60_reaclib)*Y(Ni60)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cu60_to_He4_Co57_reaclib)*Y(Cu60)*Y(N)*state.rho + screened_rates(k_He4_Co57_to_n_Cu60_reaclib)*Y(Co57)*Y(He4)*state.rho) + - (-screened_rates(k_p_Cu60_to_He4_Ni57_reaclib)*Y(Cu60)*Y(H1)*state.rho + screened_rates(k_He4_Ni57_to_p_Cu60_reaclib)*Y(He4)*Y(Ni57)*state.rho) + - (screened_rates(k_n_Zn60_to_p_Cu60_reaclib)*Y(Zn60)*Y(N)*state.rho + -screened_rates(k_p_Cu60_to_n_Zn60_reaclib)*Y(Cu60)*Y(H1)*state.rho) + - (screened_rates(k_p_Zn63_to_He4_Cu60_reaclib)*Y(Zn63)*Y(H1)*state.rho + -screened_rates(k_He4_Cu60_to_p_Zn63_reaclib)*Y(Cu60)*Y(He4)*state.rho) + - (screened_rates(k_n_Ga63_to_He4_Cu60_reaclib)*Y(Ga63)*Y(N)*state.rho + -screened_rates(k_He4_Cu60_to_n_Ga63_reaclib)*Y(Cu60)*Y(He4)*state.rho) + - (-screened_rates(k_Cu60_to_Ni60_weaktab)*Y(Cu60) + screened_rates(k_Ni60_to_Cu60_weaktab)*Y(Ni60)) + - (screened_rates(k_Zn60_to_Cu60_weaktab)*Y(Zn60) + -screened_rates(k_Cu60_to_Zn60_weaktab)*Y(Cu60)); + (screened_rates(k_Co56_He4_to_Cu60_reaclib)*Y(Co56)*Y(He4)*state.rho + -screened_rates(k_Cu60_to_He4_Co56_derived)*Y(Cu60)) + + (screened_rates(k_Ni59_p_to_Cu60_reaclib)*Y(Ni59)*Y(H1)*state.rho + -screened_rates(k_Cu60_to_p_Ni59_derived)*Y(Cu60)) + + (screened_rates(k_Cu59_n_to_Cu60_reaclib)*Y(Cu59)*Y(N)*state.rho + -screened_rates(k_Cu60_to_n_Cu59_derived)*Y(Cu60)) + + (-screened_rates(k_Cu60_n_to_Cu61_reaclib)*Y(Cu60)*Y(N)*state.rho + screened_rates(k_Cu61_to_n_Cu60_derived)*Y(Cu61)) + + (-screened_rates(k_Cu60_p_to_Zn61_reaclib)*Y(Cu60)*Y(H1)*state.rho + screened_rates(k_Zn61_to_p_Cu60_derived)*Y(Zn61)) + + (-screened_rates(k_Cu60_He4_to_Ga64_reaclib)*Y(Cu60)*Y(He4)*state.rho + screened_rates(k_Ga64_to_He4_Cu60_derived)*Y(Ga64)) + + (-screened_rates(k_Cu60_n_to_p_Ni60_reaclib)*Y(Cu60)*Y(N)*state.rho + screened_rates(k_Ni60_p_to_n_Cu60_derived)*Y(Ni60)*Y(H1)*state.rho) + + (-screened_rates(k_Cu60_n_to_He4_Co57_reaclib)*Y(Cu60)*Y(N)*state.rho + screened_rates(k_Co57_He4_to_n_Cu60_derived)*Y(Co57)*Y(He4)*state.rho) + + (-screened_rates(k_Cu60_p_to_He4_Ni57_reaclib)*Y(Cu60)*Y(H1)*state.rho + screened_rates(k_Ni57_He4_to_p_Cu60_derived)*Y(He4)*Y(Ni57)*state.rho) + + (screened_rates(k_Zn60_n_to_p_Cu60_reaclib)*Y(Zn60)*Y(N)*state.rho + -screened_rates(k_Cu60_p_to_n_Zn60_derived)*Y(Cu60)*Y(H1)*state.rho) + + (screened_rates(k_Zn63_p_to_He4_Cu60_reaclib)*Y(Zn63)*Y(H1)*state.rho + -screened_rates(k_Cu60_He4_to_p_Zn63_derived)*Y(Cu60)*Y(He4)*state.rho) + + (screened_rates(k_Ga63_n_to_He4_Cu60_reaclib)*Y(Ga63)*Y(N)*state.rho + -screened_rates(k_Cu60_He4_to_n_Ga63_derived)*Y(Cu60)*Y(He4)*state.rho) + + (-screened_rates(k_Cu60_to_Ni60_electron_capture_weaktab)*Y(Cu60) + screened_rates(k_Ni60_to_Cu60_beta_neg_weaktab)*Y(Ni60)) + + (screened_rates(k_Zn60_to_Cu60_electron_capture_weaktab)*Y(Zn60) + -screened_rates(k_Cu60_to_Zn60_beta_neg_weaktab)*Y(Cu60)); ydot_nuc(Cu61) = - (screened_rates(k_He4_Co57_to_Cu61_reaclib)*Y(Co57)*Y(He4)*state.rho + -screened_rates(k_Cu61_to_He4_Co57_reaclib)*Y(Cu61)) + - (screened_rates(k_p_Ni60_to_Cu61_reaclib)*Y(Ni60)*Y(H1)*state.rho + -screened_rates(k_Cu61_to_p_Ni60_reaclib)*Y(Cu61)) + - (screened_rates(k_n_Cu60_to_Cu61_reaclib)*Y(Cu60)*Y(N)*state.rho + -screened_rates(k_Cu61_to_n_Cu60_reaclib)*Y(Cu61)) + - (-screened_rates(k_n_Cu61_to_Cu62_reaclib)*Y(Cu61)*Y(N)*state.rho + screened_rates(k_Cu62_to_n_Cu61_reaclib)*Y(Cu62)) + - (-screened_rates(k_p_Cu61_to_Zn62_reaclib)*Y(Cu61)*Y(H1)*state.rho + screened_rates(k_Zn62_to_p_Cu61_reaclib)*Y(Zn62)) + - (-screened_rates(k_n_Cu61_to_p_Ni61_reaclib)*Y(Cu61)*Y(N)*state.rho + screened_rates(k_p_Ni61_to_n_Cu61_reaclib)*Y(Ni61)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cu61_to_He4_Co58_reaclib)*Y(Cu61)*Y(N)*state.rho + screened_rates(k_He4_Co58_to_n_Cu61_reaclib)*Y(Co58)*Y(He4)*state.rho) + - (-screened_rates(k_p_Cu61_to_He4_Ni58_reaclib)*Y(Cu61)*Y(H1)*state.rho + screened_rates(k_He4_Ni58_to_p_Cu61_reaclib)*Y(He4)*Y(Ni58)*state.rho) + - (screened_rates(k_n_Zn61_to_p_Cu61_reaclib)*Y(Zn61)*Y(N)*state.rho + -screened_rates(k_p_Cu61_to_n_Zn61_reaclib)*Y(Cu61)*Y(H1)*state.rho) + - (screened_rates(k_p_Zn64_to_He4_Cu61_reaclib)*Y(Zn64)*Y(H1)*state.rho + -screened_rates(k_He4_Cu61_to_p_Zn64_reaclib)*Y(Cu61)*Y(He4)*state.rho) + - (screened_rates(k_n_Ga64_to_He4_Cu61_reaclib)*Y(Ga64)*Y(N)*state.rho + -screened_rates(k_He4_Cu61_to_n_Ga64_reaclib)*Y(Cu61)*Y(He4)*state.rho) + - (-screened_rates(k_Cu61_to_Ni61_weaktab)*Y(Cu61) + screened_rates(k_Ni61_to_Cu61_weaktab)*Y(Ni61)) + - (screened_rates(k_Zn61_to_Cu61_weaktab)*Y(Zn61) + -screened_rates(k_Cu61_to_Zn61_weaktab)*Y(Cu61)); + (screened_rates(k_Co57_He4_to_Cu61_reaclib)*Y(Co57)*Y(He4)*state.rho + -screened_rates(k_Cu61_to_He4_Co57_derived)*Y(Cu61)) + + (screened_rates(k_Ni60_p_to_Cu61_reaclib)*Y(Ni60)*Y(H1)*state.rho + -screened_rates(k_Cu61_to_p_Ni60_derived)*Y(Cu61)) + + (screened_rates(k_Cu60_n_to_Cu61_reaclib)*Y(Cu60)*Y(N)*state.rho + -screened_rates(k_Cu61_to_n_Cu60_derived)*Y(Cu61)) + + (-screened_rates(k_Cu61_n_to_Cu62_reaclib)*Y(Cu61)*Y(N)*state.rho + screened_rates(k_Cu62_to_n_Cu61_derived)*Y(Cu62)) + + (-screened_rates(k_Cu61_p_to_Zn62_reaclib)*Y(Cu61)*Y(H1)*state.rho + screened_rates(k_Zn62_to_p_Cu61_derived)*Y(Zn62)) + + (-screened_rates(k_Cu61_n_to_p_Ni61_reaclib)*Y(Cu61)*Y(N)*state.rho + screened_rates(k_Ni61_p_to_n_Cu61_derived)*Y(Ni61)*Y(H1)*state.rho) + + (-screened_rates(k_Cu61_n_to_He4_Co58_reaclib)*Y(Cu61)*Y(N)*state.rho + screened_rates(k_Co58_He4_to_n_Cu61_derived)*Y(Co58)*Y(He4)*state.rho) + + (-screened_rates(k_Cu61_p_to_He4_Ni58_reaclib)*Y(Cu61)*Y(H1)*state.rho + screened_rates(k_Ni58_He4_to_p_Cu61_derived)*Y(He4)*Y(Ni58)*state.rho) + + (screened_rates(k_Zn61_n_to_p_Cu61_reaclib)*Y(Zn61)*Y(N)*state.rho + -screened_rates(k_Cu61_p_to_n_Zn61_derived)*Y(Cu61)*Y(H1)*state.rho) + + (screened_rates(k_Zn64_p_to_He4_Cu61_reaclib)*Y(Zn64)*Y(H1)*state.rho + -screened_rates(k_Cu61_He4_to_p_Zn64_derived)*Y(Cu61)*Y(He4)*state.rho) + + (screened_rates(k_Ga64_n_to_He4_Cu61_reaclib)*Y(Ga64)*Y(N)*state.rho + -screened_rates(k_Cu61_He4_to_n_Ga64_derived)*Y(Cu61)*Y(He4)*state.rho) + + (-screened_rates(k_Cu61_to_Ni61_electron_capture_weaktab)*Y(Cu61) + screened_rates(k_Ni61_to_Cu61_beta_neg_weaktab)*Y(Ni61)) + + (screened_rates(k_Zn61_to_Cu61_electron_capture_weaktab)*Y(Zn61) + -screened_rates(k_Cu61_to_Zn61_beta_neg_weaktab)*Y(Cu61)); ydot_nuc(Cu62) = - (screened_rates(k_He4_Co58_to_Cu62_reaclib)*Y(Co58)*Y(He4)*state.rho + -screened_rates(k_Cu62_to_He4_Co58_reaclib)*Y(Cu62)) + - (screened_rates(k_p_Ni61_to_Cu62_reaclib)*Y(Ni61)*Y(H1)*state.rho + -screened_rates(k_Cu62_to_p_Ni61_reaclib)*Y(Cu62)) + - (screened_rates(k_n_Cu61_to_Cu62_reaclib)*Y(Cu61)*Y(N)*state.rho + -screened_rates(k_Cu62_to_n_Cu61_reaclib)*Y(Cu62)) + - (-screened_rates(k_n_Cu62_to_Cu63_reaclib)*Y(Cu62)*Y(N)*state.rho + screened_rates(k_Cu63_to_n_Cu62_reaclib)*Y(Cu63)) + - (-screened_rates(k_p_Cu62_to_Zn63_reaclib)*Y(Cu62)*Y(H1)*state.rho + screened_rates(k_Zn63_to_p_Cu62_reaclib)*Y(Zn63)) + - (-screened_rates(k_n_Cu62_to_p_Ni62_reaclib)*Y(Cu62)*Y(N)*state.rho + screened_rates(k_p_Ni62_to_n_Cu62_reaclib)*Y(Ni62)*Y(H1)*state.rho) + - (-screened_rates(k_n_Cu62_to_He4_Co59_reaclib)*Y(Cu62)*Y(N)*state.rho + screened_rates(k_He4_Co59_to_n_Cu62_reaclib)*Y(Co59)*Y(He4)*state.rho) + - (-screened_rates(k_p_Cu62_to_He4_Ni59_reaclib)*Y(Cu62)*Y(H1)*state.rho + screened_rates(k_He4_Ni59_to_p_Cu62_reaclib)*Y(He4)*Y(Ni59)*state.rho) + - (screened_rates(k_n_Zn62_to_p_Cu62_reaclib)*Y(Zn62)*Y(N)*state.rho + -screened_rates(k_p_Cu62_to_n_Zn62_reaclib)*Y(Cu62)*Y(H1)*state.rho) + - (screened_rates(k_p_Zn65_to_He4_Cu62_reaclib)*Y(Zn65)*Y(H1)*state.rho + -screened_rates(k_He4_Cu62_to_p_Zn65_reaclib)*Y(Cu62)*Y(He4)*state.rho) + - (-screened_rates(k_Cu62_to_Ni62_weaktab)*Y(Cu62) + screened_rates(k_Ni62_to_Cu62_weaktab)*Y(Ni62)) + - (screened_rates(k_Zn62_to_Cu62_weaktab)*Y(Zn62) + -screened_rates(k_Cu62_to_Zn62_weaktab)*Y(Cu62)); + (screened_rates(k_Co58_He4_to_Cu62_reaclib)*Y(Co58)*Y(He4)*state.rho + -screened_rates(k_Cu62_to_He4_Co58_derived)*Y(Cu62)) + + (screened_rates(k_Ni61_p_to_Cu62_reaclib)*Y(Ni61)*Y(H1)*state.rho + -screened_rates(k_Cu62_to_p_Ni61_derived)*Y(Cu62)) + + (screened_rates(k_Cu61_n_to_Cu62_reaclib)*Y(Cu61)*Y(N)*state.rho + -screened_rates(k_Cu62_to_n_Cu61_derived)*Y(Cu62)) + + (-screened_rates(k_Cu62_n_to_Cu63_reaclib)*Y(Cu62)*Y(N)*state.rho + screened_rates(k_Cu63_to_n_Cu62_derived)*Y(Cu63)) + + (-screened_rates(k_Cu62_p_to_Zn63_reaclib)*Y(Cu62)*Y(H1)*state.rho + screened_rates(k_Zn63_to_p_Cu62_derived)*Y(Zn63)) + + (-screened_rates(k_Cu62_n_to_p_Ni62_reaclib)*Y(Cu62)*Y(N)*state.rho + screened_rates(k_Ni62_p_to_n_Cu62_derived)*Y(Ni62)*Y(H1)*state.rho) + + (-screened_rates(k_Cu62_n_to_He4_Co59_reaclib)*Y(Cu62)*Y(N)*state.rho + screened_rates(k_Co59_He4_to_n_Cu62_derived)*Y(Co59)*Y(He4)*state.rho) + + (-screened_rates(k_Cu62_p_to_He4_Ni59_reaclib)*Y(Cu62)*Y(H1)*state.rho + screened_rates(k_Ni59_He4_to_p_Cu62_derived)*Y(He4)*Y(Ni59)*state.rho) + + (screened_rates(k_Zn62_n_to_p_Cu62_reaclib)*Y(Zn62)*Y(N)*state.rho + -screened_rates(k_Cu62_p_to_n_Zn62_derived)*Y(Cu62)*Y(H1)*state.rho) + + (screened_rates(k_Zn65_p_to_He4_Cu62_reaclib)*Y(Zn65)*Y(H1)*state.rho + -screened_rates(k_Cu62_He4_to_p_Zn65_derived)*Y(Cu62)*Y(He4)*state.rho) + + (-screened_rates(k_Cu62_to_Ni62_electron_capture_weaktab)*Y(Cu62) + screened_rates(k_Ni62_to_Cu62_beta_neg_weaktab)*Y(Ni62)) + + (screened_rates(k_Zn62_to_Cu62_electron_capture_weaktab)*Y(Zn62) + -screened_rates(k_Cu62_to_Zn62_beta_neg_weaktab)*Y(Cu62)); ydot_nuc(Cu63) = - (screened_rates(k_He4_Co59_to_Cu63_reaclib)*Y(Co59)*Y(He4)*state.rho + -screened_rates(k_Cu63_to_He4_Co59_reaclib)*Y(Cu63)) + - (screened_rates(k_p_Ni62_to_Cu63_reaclib)*Y(Ni62)*Y(H1)*state.rho + -screened_rates(k_Cu63_to_p_Ni62_reaclib)*Y(Cu63)) + - (screened_rates(k_n_Cu62_to_Cu63_reaclib)*Y(Cu62)*Y(N)*state.rho + -screened_rates(k_Cu63_to_n_Cu62_reaclib)*Y(Cu63)) + - (-screened_rates(k_n_Cu63_to_Cu64_reaclib)*Y(Cu63)*Y(N)*state.rho + screened_rates(k_Cu64_to_n_Cu63_reaclib)*Y(Cu64)) + - (-screened_rates(k_p_Cu63_to_Zn64_reaclib)*Y(Cu63)*Y(H1)*state.rho + screened_rates(k_Zn64_to_p_Cu63_reaclib)*Y(Zn64)) + - (-screened_rates(k_n_Cu63_to_p_Ni63_reaclib)*Y(Cu63)*Y(N)*state.rho + screened_rates(k_p_Ni63_to_n_Cu63_reaclib)*Y(Ni63)*Y(H1)*state.rho) + - (-screened_rates(k_p_Cu63_to_He4_Ni60_reaclib)*Y(Cu63)*Y(H1)*state.rho + screened_rates(k_He4_Ni60_to_p_Cu63_reaclib)*Y(He4)*Y(Ni60)*state.rho) + - (screened_rates(k_n_Zn63_to_p_Cu63_reaclib)*Y(Zn63)*Y(N)*state.rho + -screened_rates(k_p_Cu63_to_n_Zn63_reaclib)*Y(Cu63)*Y(H1)*state.rho) + - (screened_rates(k_p_Zn66_to_He4_Cu63_reaclib)*Y(Zn66)*Y(H1)*state.rho + -screened_rates(k_He4_Cu63_to_p_Zn66_reaclib)*Y(Cu63)*Y(He4)*state.rho) + - (screened_rates(k_Ni63_to_Cu63_weaktab)*Y(Ni63) + -screened_rates(k_Cu63_to_Ni63_weaktab)*Y(Cu63)) + - (screened_rates(k_Zn63_to_Cu63_weaktab)*Y(Zn63) + -screened_rates(k_Cu63_to_Zn63_weaktab)*Y(Cu63)); + (screened_rates(k_Co59_He4_to_Cu63_reaclib)*Y(Co59)*Y(He4)*state.rho + -screened_rates(k_Cu63_to_He4_Co59_derived)*Y(Cu63)) + + (screened_rates(k_Ni62_p_to_Cu63_reaclib)*Y(Ni62)*Y(H1)*state.rho + -screened_rates(k_Cu63_to_p_Ni62_derived)*Y(Cu63)) + + (screened_rates(k_Cu62_n_to_Cu63_reaclib)*Y(Cu62)*Y(N)*state.rho + -screened_rates(k_Cu63_to_n_Cu62_derived)*Y(Cu63)) + + (-screened_rates(k_Cu63_n_to_Cu64_reaclib)*Y(Cu63)*Y(N)*state.rho + screened_rates(k_Cu64_to_n_Cu63_derived)*Y(Cu64)) + + (-screened_rates(k_Cu63_p_to_Zn64_reaclib)*Y(Cu63)*Y(H1)*state.rho + screened_rates(k_Zn64_to_p_Cu63_derived)*Y(Zn64)) + + (-screened_rates(k_Cu63_n_to_p_Ni63_reaclib)*Y(Cu63)*Y(N)*state.rho + screened_rates(k_Ni63_p_to_n_Cu63_derived)*Y(Ni63)*Y(H1)*state.rho) + + (-screened_rates(k_Cu63_p_to_He4_Ni60_reaclib)*Y(Cu63)*Y(H1)*state.rho + screened_rates(k_Ni60_He4_to_p_Cu63_derived)*Y(He4)*Y(Ni60)*state.rho) + + (screened_rates(k_Zn63_n_to_p_Cu63_reaclib)*Y(Zn63)*Y(N)*state.rho + -screened_rates(k_Cu63_p_to_n_Zn63_derived)*Y(Cu63)*Y(H1)*state.rho) + + (screened_rates(k_Zn66_p_to_He4_Cu63_reaclib)*Y(Zn66)*Y(H1)*state.rho + -screened_rates(k_Cu63_He4_to_p_Zn66_derived)*Y(Cu63)*Y(He4)*state.rho) + + (screened_rates(k_Ni63_to_Cu63_beta_neg_weaktab)*Y(Ni63) + -screened_rates(k_Cu63_to_Ni63_electron_capture_weaktab)*Y(Cu63)) + + (screened_rates(k_Zn63_to_Cu63_electron_capture_weaktab)*Y(Zn63) + -screened_rates(k_Cu63_to_Zn63_beta_neg_weaktab)*Y(Cu63)); ydot_nuc(Cu64) = - (screened_rates(k_p_Ni63_to_Cu64_reaclib)*Y(Ni63)*Y(H1)*state.rho + -screened_rates(k_Cu64_to_p_Ni63_reaclib)*Y(Cu64)) + - (screened_rates(k_n_Cu63_to_Cu64_reaclib)*Y(Cu63)*Y(N)*state.rho + -screened_rates(k_Cu64_to_n_Cu63_reaclib)*Y(Cu64)) + - (-screened_rates(k_n_Cu64_to_Cu65_reaclib)*Y(Cu64)*Y(N)*state.rho + screened_rates(k_Cu65_to_n_Cu64_reaclib)*Y(Cu65)) + - (-screened_rates(k_p_Cu64_to_Zn65_reaclib)*Y(Cu64)*Y(H1)*state.rho + screened_rates(k_Zn65_to_p_Cu64_reaclib)*Y(Zn65)) + - (-screened_rates(k_n_Cu64_to_p_Ni64_reaclib)*Y(Cu64)*Y(N)*state.rho + screened_rates(k_p_Ni64_to_n_Cu64_reaclib)*Y(Ni64)*Y(H1)*state.rho) + - (-screened_rates(k_p_Cu64_to_He4_Ni61_reaclib)*Y(Cu64)*Y(H1)*state.rho + screened_rates(k_He4_Ni61_to_p_Cu64_reaclib)*Y(He4)*Y(Ni61)*state.rho) + - (screened_rates(k_n_Zn64_to_p_Cu64_reaclib)*Y(Zn64)*Y(N)*state.rho + -screened_rates(k_p_Cu64_to_n_Zn64_reaclib)*Y(Cu64)*Y(H1)*state.rho) + - (-screened_rates(k_Cu64_to_Ni64_weaktab)*Y(Cu64) + screened_rates(k_Ni64_to_Cu64_weaktab)*Y(Ni64)) + - (-screened_rates(k_Cu64_to_Zn64_weaktab)*Y(Cu64) + screened_rates(k_Zn64_to_Cu64_weaktab)*Y(Zn64)); + (screened_rates(k_Ni63_p_to_Cu64_reaclib)*Y(Ni63)*Y(H1)*state.rho + -screened_rates(k_Cu64_to_p_Ni63_derived)*Y(Cu64)) + + (screened_rates(k_Cu63_n_to_Cu64_reaclib)*Y(Cu63)*Y(N)*state.rho + -screened_rates(k_Cu64_to_n_Cu63_derived)*Y(Cu64)) + + (-screened_rates(k_Cu64_n_to_Cu65_reaclib)*Y(Cu64)*Y(N)*state.rho + screened_rates(k_Cu65_to_n_Cu64_derived)*Y(Cu65)) + + (-screened_rates(k_Cu64_p_to_Zn65_reaclib)*Y(Cu64)*Y(H1)*state.rho + screened_rates(k_Zn65_to_p_Cu64_derived)*Y(Zn65)) + + (-screened_rates(k_Cu64_n_to_p_Ni64_reaclib)*Y(Cu64)*Y(N)*state.rho + screened_rates(k_Ni64_p_to_n_Cu64_derived)*Y(Ni64)*Y(H1)*state.rho) + + (-screened_rates(k_Cu64_p_to_He4_Ni61_reaclib)*Y(Cu64)*Y(H1)*state.rho + screened_rates(k_Ni61_He4_to_p_Cu64_derived)*Y(He4)*Y(Ni61)*state.rho) + + (screened_rates(k_Zn64_n_to_p_Cu64_reaclib)*Y(Zn64)*Y(N)*state.rho + -screened_rates(k_Cu64_p_to_n_Zn64_derived)*Y(Cu64)*Y(H1)*state.rho) + + (-screened_rates(k_Cu64_to_Ni64_electron_capture_weaktab)*Y(Cu64) + screened_rates(k_Ni64_to_Cu64_beta_neg_weaktab)*Y(Ni64)) + + (-screened_rates(k_Cu64_to_Zn64_beta_neg_weaktab)*Y(Cu64) + screened_rates(k_Zn64_to_Cu64_electron_capture_weaktab)*Y(Zn64)); ydot_nuc(Cu65) = - (screened_rates(k_p_Ni64_to_Cu65_reaclib)*Y(Ni64)*Y(H1)*state.rho + -screened_rates(k_Cu65_to_p_Ni64_reaclib)*Y(Cu65)) + - (screened_rates(k_n_Cu64_to_Cu65_reaclib)*Y(Cu64)*Y(N)*state.rho + -screened_rates(k_Cu65_to_n_Cu64_reaclib)*Y(Cu65)) + - (-screened_rates(k_p_Cu65_to_Zn66_reaclib)*Y(Cu65)*Y(H1)*state.rho + screened_rates(k_Zn66_to_p_Cu65_reaclib)*Y(Zn66)) + - (-screened_rates(k_p_Cu65_to_He4_Ni62_reaclib)*Y(Cu65)*Y(H1)*state.rho + screened_rates(k_He4_Ni62_to_p_Cu65_reaclib)*Y(He4)*Y(Ni62)*state.rho) + - (screened_rates(k_n_Zn65_to_p_Cu65_reaclib)*Y(Zn65)*Y(N)*state.rho + -screened_rates(k_p_Cu65_to_n_Zn65_reaclib)*Y(Cu65)*Y(H1)*state.rho) + - (screened_rates(k_Zn65_to_Cu65_weaktab)*Y(Zn65) + -screened_rates(k_Cu65_to_Zn65_weaktab)*Y(Cu65)); + (screened_rates(k_Ni64_p_to_Cu65_reaclib)*Y(Ni64)*Y(H1)*state.rho + -screened_rates(k_Cu65_to_p_Ni64_derived)*Y(Cu65)) + + (screened_rates(k_Cu64_n_to_Cu65_reaclib)*Y(Cu64)*Y(N)*state.rho + -screened_rates(k_Cu65_to_n_Cu64_derived)*Y(Cu65)) + + (-screened_rates(k_Cu65_p_to_Zn66_reaclib)*Y(Cu65)*Y(H1)*state.rho + screened_rates(k_Zn66_to_p_Cu65_derived)*Y(Zn66)) + + (-screened_rates(k_Cu65_p_to_He4_Ni62_reaclib)*Y(Cu65)*Y(H1)*state.rho + screened_rates(k_Ni62_He4_to_p_Cu65_derived)*Y(He4)*Y(Ni62)*state.rho) + + (screened_rates(k_Zn65_n_to_p_Cu65_reaclib)*Y(Zn65)*Y(N)*state.rho + -screened_rates(k_Cu65_p_to_n_Zn65_derived)*Y(Cu65)*Y(H1)*state.rho) + + (screened_rates(k_Zn65_to_Cu65_electron_capture_weaktab)*Y(Zn65) + -screened_rates(k_Cu65_to_Zn65_beta_neg_weaktab)*Y(Cu65)); ydot_nuc(Zn59) = - -screened_rates(k_Zn59_to_Cu59_reaclib)*Y(Zn59) + - -screened_rates(k_Zn59_to_p_Ni58_reaclib)*Y(Zn59) + - (screened_rates(k_p_Cu58_to_Zn59_reaclib)*Y(Cu58)*Y(H1)*state.rho + -screened_rates(k_Zn59_to_p_Cu58_reaclib)*Y(Zn59)) + - (-screened_rates(k_n_Zn59_to_Zn60_reaclib)*Y(Zn59)*Y(N)*state.rho + screened_rates(k_Zn60_to_n_Zn59_reaclib)*Y(Zn60)) + - (-screened_rates(k_He4_Zn59_to_Ge63_reaclib)*Y(He4)*Y(Zn59)*state.rho + screened_rates(k_Ge63_to_He4_Zn59_reaclib)*Y(Ge63)) + - (-screened_rates(k_n_Zn59_to_p_Cu59_reaclib)*Y(Zn59)*Y(N)*state.rho + screened_rates(k_p_Cu59_to_n_Zn59_reaclib)*Y(Cu59)*Y(H1)*state.rho) + - (-screened_rates(k_n_Zn59_to_He4_Ni56_reaclib)*Y(Zn59)*Y(N)*state.rho + screened_rates(k_He4_Ni56_to_n_Zn59_reaclib)*Y(He4)*Y(Ni56)*state.rho) + - (screened_rates(k_p_Ga62_to_He4_Zn59_reaclib)*Y(Ga62)*Y(H1)*state.rho + -screened_rates(k_He4_Zn59_to_p_Ga62_reaclib)*Y(He4)*Y(Zn59)*state.rho); + -screened_rates(k_Zn59_to_Cu59_beta_pos_reaclib)*Y(Zn59) + + -screened_rates(k_Zn59_to_p_Ni58_beta_pos_reaclib)*Y(Zn59) + + (screened_rates(k_Cu58_p_to_Zn59_reaclib)*Y(Cu58)*Y(H1)*state.rho + -screened_rates(k_Zn59_to_p_Cu58_derived)*Y(Zn59)) + + (-screened_rates(k_Zn59_n_to_Zn60_reaclib)*Y(Zn59)*Y(N)*state.rho + screened_rates(k_Zn60_to_n_Zn59_derived)*Y(Zn60)) + + (-screened_rates(k_Zn59_He4_to_Ge63_reaclib)*Y(He4)*Y(Zn59)*state.rho + screened_rates(k_Ge63_to_He4_Zn59_derived)*Y(Ge63)) + + (-screened_rates(k_Zn59_n_to_p_Cu59_reaclib)*Y(Zn59)*Y(N)*state.rho + screened_rates(k_Cu59_p_to_n_Zn59_derived)*Y(Cu59)*Y(H1)*state.rho) + + (-screened_rates(k_Zn59_n_to_He4_Ni56_reaclib)*Y(Zn59)*Y(N)*state.rho + screened_rates(k_Ni56_He4_to_n_Zn59_derived)*Y(He4)*Y(Ni56)*state.rho) + + (screened_rates(k_Ga62_p_to_He4_Zn59_reaclib)*Y(Ga62)*Y(H1)*state.rho + -screened_rates(k_Zn59_He4_to_p_Ga62_derived)*Y(He4)*Y(Zn59)*state.rho); ydot_nuc(Zn60) = - (screened_rates(k_He4_Ni56_to_Zn60_reaclib)*Y(He4)*Y(Ni56)*state.rho + -screened_rates(k_Zn60_to_He4_Ni56_reaclib)*Y(Zn60)) + - (screened_rates(k_p_Cu59_to_Zn60_reaclib)*Y(Cu59)*Y(H1)*state.rho + -screened_rates(k_Zn60_to_p_Cu59_reaclib)*Y(Zn60)) + - (screened_rates(k_n_Zn59_to_Zn60_reaclib)*Y(Zn59)*Y(N)*state.rho + -screened_rates(k_Zn60_to_n_Zn59_reaclib)*Y(Zn60)) + - (-screened_rates(k_n_Zn60_to_Zn61_reaclib)*Y(Zn60)*Y(N)*state.rho + screened_rates(k_Zn61_to_n_Zn60_reaclib)*Y(Zn61)) + - (-screened_rates(k_He4_Zn60_to_Ge64_reaclib)*Y(He4)*Y(Zn60)*state.rho + screened_rates(k_Ge64_to_He4_Zn60_reaclib)*Y(Ge64)) + - (screened_rates(k_He4_Cu57_to_p_Zn60_reaclib)*Y(Cu57)*Y(He4)*state.rho + -screened_rates(k_p_Zn60_to_He4_Cu57_reaclib)*Y(Zn60)*Y(H1)*state.rho) + - (-screened_rates(k_n_Zn60_to_p_Cu60_reaclib)*Y(Zn60)*Y(N)*state.rho + screened_rates(k_p_Cu60_to_n_Zn60_reaclib)*Y(Cu60)*Y(H1)*state.rho) + - (-screened_rates(k_n_Zn60_to_He4_Ni57_reaclib)*Y(Zn60)*Y(N)*state.rho + screened_rates(k_He4_Ni57_to_n_Zn60_reaclib)*Y(He4)*Y(Ni57)*state.rho) + - (screened_rates(k_p_Ga63_to_He4_Zn60_reaclib)*Y(Ga63)*Y(H1)*state.rho + -screened_rates(k_He4_Zn60_to_p_Ga63_reaclib)*Y(He4)*Y(Zn60)*state.rho) + - (screened_rates(k_n_Ge63_to_He4_Zn60_reaclib)*Y(Ge63)*Y(N)*state.rho + -screened_rates(k_He4_Zn60_to_n_Ge63_reaclib)*Y(He4)*Y(Zn60)*state.rho) + - (-screened_rates(k_Zn60_to_Cu60_weaktab)*Y(Zn60) + screened_rates(k_Cu60_to_Zn60_weaktab)*Y(Cu60)); + (screened_rates(k_Ni56_He4_to_Zn60_reaclib)*Y(He4)*Y(Ni56)*state.rho + -screened_rates(k_Zn60_to_He4_Ni56_derived)*Y(Zn60)) + + (screened_rates(k_Cu59_p_to_Zn60_reaclib)*Y(Cu59)*Y(H1)*state.rho + -screened_rates(k_Zn60_to_p_Cu59_derived)*Y(Zn60)) + + (screened_rates(k_Zn59_n_to_Zn60_reaclib)*Y(Zn59)*Y(N)*state.rho + -screened_rates(k_Zn60_to_n_Zn59_derived)*Y(Zn60)) + + (-screened_rates(k_Zn60_n_to_Zn61_reaclib)*Y(Zn60)*Y(N)*state.rho + screened_rates(k_Zn61_to_n_Zn60_derived)*Y(Zn61)) + + (-screened_rates(k_Zn60_He4_to_Ge64_reaclib)*Y(He4)*Y(Zn60)*state.rho + screened_rates(k_Ge64_to_He4_Zn60_derived)*Y(Ge64)) + + (screened_rates(k_Cu57_He4_to_p_Zn60_reaclib)*Y(Cu57)*Y(He4)*state.rho + -screened_rates(k_Zn60_p_to_He4_Cu57_derived)*Y(Zn60)*Y(H1)*state.rho) + + (-screened_rates(k_Zn60_n_to_p_Cu60_reaclib)*Y(Zn60)*Y(N)*state.rho + screened_rates(k_Cu60_p_to_n_Zn60_derived)*Y(Cu60)*Y(H1)*state.rho) + + (-screened_rates(k_Zn60_n_to_He4_Ni57_reaclib)*Y(Zn60)*Y(N)*state.rho + screened_rates(k_Ni57_He4_to_n_Zn60_derived)*Y(He4)*Y(Ni57)*state.rho) + + (screened_rates(k_Ga63_p_to_He4_Zn60_reaclib)*Y(Ga63)*Y(H1)*state.rho + -screened_rates(k_Zn60_He4_to_p_Ga63_derived)*Y(He4)*Y(Zn60)*state.rho) + + (screened_rates(k_Ge63_n_to_He4_Zn60_reaclib)*Y(Ge63)*Y(N)*state.rho + -screened_rates(k_Zn60_He4_to_n_Ge63_derived)*Y(He4)*Y(Zn60)*state.rho) + + (-screened_rates(k_Zn60_to_Cu60_electron_capture_weaktab)*Y(Zn60) + screened_rates(k_Cu60_to_Zn60_beta_neg_weaktab)*Y(Cu60)); ydot_nuc(Zn61) = - (screened_rates(k_He4_Ni57_to_Zn61_reaclib)*Y(He4)*Y(Ni57)*state.rho + -screened_rates(k_Zn61_to_He4_Ni57_reaclib)*Y(Zn61)) + - (screened_rates(k_p_Cu60_to_Zn61_reaclib)*Y(Cu60)*Y(H1)*state.rho + -screened_rates(k_Zn61_to_p_Cu60_reaclib)*Y(Zn61)) + - (screened_rates(k_n_Zn60_to_Zn61_reaclib)*Y(Zn60)*Y(N)*state.rho + -screened_rates(k_Zn61_to_n_Zn60_reaclib)*Y(Zn61)) + - (-screened_rates(k_n_Zn61_to_Zn62_reaclib)*Y(Zn61)*Y(N)*state.rho + screened_rates(k_Zn62_to_n_Zn61_reaclib)*Y(Zn62)) + - (-screened_rates(k_p_Zn61_to_Ga62_reaclib)*Y(Zn61)*Y(H1)*state.rho + screened_rates(k_Ga62_to_p_Zn61_reaclib)*Y(Ga62)) + - (-screened_rates(k_n_Zn61_to_p_Cu61_reaclib)*Y(Zn61)*Y(N)*state.rho + screened_rates(k_p_Cu61_to_n_Zn61_reaclib)*Y(Cu61)*Y(H1)*state.rho) + - (-screened_rates(k_n_Zn61_to_He4_Ni58_reaclib)*Y(Zn61)*Y(N)*state.rho + screened_rates(k_He4_Ni58_to_n_Zn61_reaclib)*Y(He4)*Y(Ni58)*state.rho) + - (-screened_rates(k_p_Zn61_to_He4_Cu58_reaclib)*Y(Zn61)*Y(H1)*state.rho + screened_rates(k_He4_Cu58_to_p_Zn61_reaclib)*Y(Cu58)*Y(He4)*state.rho) + - (screened_rates(k_p_Ga64_to_He4_Zn61_reaclib)*Y(Ga64)*Y(H1)*state.rho + -screened_rates(k_He4_Zn61_to_p_Ga64_reaclib)*Y(He4)*Y(Zn61)*state.rho) + - (screened_rates(k_n_Ge64_to_He4_Zn61_reaclib)*Y(Ge64)*Y(N)*state.rho + -screened_rates(k_He4_Zn61_to_n_Ge64_reaclib)*Y(He4)*Y(Zn61)*state.rho) + - (-screened_rates(k_Zn61_to_Cu61_weaktab)*Y(Zn61) + screened_rates(k_Cu61_to_Zn61_weaktab)*Y(Cu61)); + (screened_rates(k_Ni57_He4_to_Zn61_reaclib)*Y(He4)*Y(Ni57)*state.rho + -screened_rates(k_Zn61_to_He4_Ni57_derived)*Y(Zn61)) + + (screened_rates(k_Cu60_p_to_Zn61_reaclib)*Y(Cu60)*Y(H1)*state.rho + -screened_rates(k_Zn61_to_p_Cu60_derived)*Y(Zn61)) + + (screened_rates(k_Zn60_n_to_Zn61_reaclib)*Y(Zn60)*Y(N)*state.rho + -screened_rates(k_Zn61_to_n_Zn60_derived)*Y(Zn61)) + + (-screened_rates(k_Zn61_n_to_Zn62_reaclib)*Y(Zn61)*Y(N)*state.rho + screened_rates(k_Zn62_to_n_Zn61_derived)*Y(Zn62)) + + (-screened_rates(k_Zn61_p_to_Ga62_reaclib)*Y(Zn61)*Y(H1)*state.rho + screened_rates(k_Ga62_to_p_Zn61_derived)*Y(Ga62)) + + (-screened_rates(k_Zn61_n_to_p_Cu61_reaclib)*Y(Zn61)*Y(N)*state.rho + screened_rates(k_Cu61_p_to_n_Zn61_derived)*Y(Cu61)*Y(H1)*state.rho) + + (-screened_rates(k_Zn61_n_to_He4_Ni58_reaclib)*Y(Zn61)*Y(N)*state.rho + screened_rates(k_Ni58_He4_to_n_Zn61_derived)*Y(He4)*Y(Ni58)*state.rho) + + (-screened_rates(k_Zn61_p_to_He4_Cu58_reaclib)*Y(Zn61)*Y(H1)*state.rho + screened_rates(k_Cu58_He4_to_p_Zn61_derived)*Y(Cu58)*Y(He4)*state.rho) + + (screened_rates(k_Ga64_p_to_He4_Zn61_reaclib)*Y(Ga64)*Y(H1)*state.rho + -screened_rates(k_Zn61_He4_to_p_Ga64_derived)*Y(He4)*Y(Zn61)*state.rho) + + (screened_rates(k_Ge64_n_to_He4_Zn61_reaclib)*Y(Ge64)*Y(N)*state.rho + -screened_rates(k_Zn61_He4_to_n_Ge64_derived)*Y(He4)*Y(Zn61)*state.rho) + + (-screened_rates(k_Zn61_to_Cu61_electron_capture_weaktab)*Y(Zn61) + screened_rates(k_Cu61_to_Zn61_beta_neg_weaktab)*Y(Cu61)); ydot_nuc(Zn62) = - (screened_rates(k_He4_Ni58_to_Zn62_reaclib)*Y(He4)*Y(Ni58)*state.rho + -screened_rates(k_Zn62_to_He4_Ni58_reaclib)*Y(Zn62)) + - (screened_rates(k_p_Cu61_to_Zn62_reaclib)*Y(Cu61)*Y(H1)*state.rho + -screened_rates(k_Zn62_to_p_Cu61_reaclib)*Y(Zn62)) + - (screened_rates(k_n_Zn61_to_Zn62_reaclib)*Y(Zn61)*Y(N)*state.rho + -screened_rates(k_Zn62_to_n_Zn61_reaclib)*Y(Zn62)) + - (-screened_rates(k_n_Zn62_to_Zn63_reaclib)*Y(Zn62)*Y(N)*state.rho + screened_rates(k_Zn63_to_n_Zn62_reaclib)*Y(Zn63)) + - (-screened_rates(k_p_Zn62_to_Ga63_reaclib)*Y(Zn62)*Y(H1)*state.rho + screened_rates(k_Ga63_to_p_Zn62_reaclib)*Y(Ga63)) + - (-screened_rates(k_n_Zn62_to_p_Cu62_reaclib)*Y(Zn62)*Y(N)*state.rho + screened_rates(k_p_Cu62_to_n_Zn62_reaclib)*Y(Cu62)*Y(H1)*state.rho) + - (-screened_rates(k_n_Zn62_to_He4_Ni59_reaclib)*Y(Zn62)*Y(N)*state.rho + screened_rates(k_He4_Ni59_to_n_Zn62_reaclib)*Y(He4)*Y(Ni59)*state.rho) + - (-screened_rates(k_p_Zn62_to_He4_Cu59_reaclib)*Y(Zn62)*Y(H1)*state.rho + screened_rates(k_He4_Cu59_to_p_Zn62_reaclib)*Y(Cu59)*Y(He4)*state.rho) + - (screened_rates(k_n_Ga62_to_p_Zn62_reaclib)*Y(Ga62)*Y(N)*state.rho + -screened_rates(k_p_Zn62_to_n_Ga62_reaclib)*Y(Zn62)*Y(H1)*state.rho) + - (screened_rates(k_Ga62_to_Zn62_weaktab)*Y(Ga62) + -screened_rates(k_Zn62_to_Ga62_weaktab)*Y(Zn62)) + - (-screened_rates(k_Zn62_to_Cu62_weaktab)*Y(Zn62) + screened_rates(k_Cu62_to_Zn62_weaktab)*Y(Cu62)); + (screened_rates(k_Ni58_He4_to_Zn62_reaclib)*Y(He4)*Y(Ni58)*state.rho + -screened_rates(k_Zn62_to_He4_Ni58_derived)*Y(Zn62)) + + (screened_rates(k_Cu61_p_to_Zn62_reaclib)*Y(Cu61)*Y(H1)*state.rho + -screened_rates(k_Zn62_to_p_Cu61_derived)*Y(Zn62)) + + (screened_rates(k_Zn61_n_to_Zn62_reaclib)*Y(Zn61)*Y(N)*state.rho + -screened_rates(k_Zn62_to_n_Zn61_derived)*Y(Zn62)) + + (-screened_rates(k_Zn62_n_to_Zn63_reaclib)*Y(Zn62)*Y(N)*state.rho + screened_rates(k_Zn63_to_n_Zn62_derived)*Y(Zn63)) + + (-screened_rates(k_Zn62_p_to_Ga63_reaclib)*Y(Zn62)*Y(H1)*state.rho + screened_rates(k_Ga63_to_p_Zn62_derived)*Y(Ga63)) + + (-screened_rates(k_Zn62_n_to_p_Cu62_reaclib)*Y(Zn62)*Y(N)*state.rho + screened_rates(k_Cu62_p_to_n_Zn62_derived)*Y(Cu62)*Y(H1)*state.rho) + + (-screened_rates(k_Zn62_n_to_He4_Ni59_reaclib)*Y(Zn62)*Y(N)*state.rho + screened_rates(k_Ni59_He4_to_n_Zn62_derived)*Y(He4)*Y(Ni59)*state.rho) + + (-screened_rates(k_Zn62_p_to_He4_Cu59_reaclib)*Y(Zn62)*Y(H1)*state.rho + screened_rates(k_Cu59_He4_to_p_Zn62_derived)*Y(Cu59)*Y(He4)*state.rho) + + (screened_rates(k_Ga62_n_to_p_Zn62_reaclib)*Y(Ga62)*Y(N)*state.rho + -screened_rates(k_Zn62_p_to_n_Ga62_derived)*Y(Zn62)*Y(H1)*state.rho) + + (screened_rates(k_Ga62_to_Zn62_electron_capture_weaktab)*Y(Ga62) + -screened_rates(k_Zn62_to_Ga62_beta_neg_weaktab)*Y(Zn62)) + + (-screened_rates(k_Zn62_to_Cu62_electron_capture_weaktab)*Y(Zn62) + screened_rates(k_Cu62_to_Zn62_beta_neg_weaktab)*Y(Cu62)); ydot_nuc(Zn63) = - (screened_rates(k_He4_Ni59_to_Zn63_reaclib)*Y(He4)*Y(Ni59)*state.rho + -screened_rates(k_Zn63_to_He4_Ni59_reaclib)*Y(Zn63)) + - (screened_rates(k_p_Cu62_to_Zn63_reaclib)*Y(Cu62)*Y(H1)*state.rho + -screened_rates(k_Zn63_to_p_Cu62_reaclib)*Y(Zn63)) + - (screened_rates(k_n_Zn62_to_Zn63_reaclib)*Y(Zn62)*Y(N)*state.rho + -screened_rates(k_Zn63_to_n_Zn62_reaclib)*Y(Zn63)) + - (-screened_rates(k_n_Zn63_to_Zn64_reaclib)*Y(Zn63)*Y(N)*state.rho + screened_rates(k_Zn64_to_n_Zn63_reaclib)*Y(Zn64)) + - (-screened_rates(k_p_Zn63_to_Ga64_reaclib)*Y(Zn63)*Y(H1)*state.rho + screened_rates(k_Ga64_to_p_Zn63_reaclib)*Y(Ga64)) + - (-screened_rates(k_n_Zn63_to_p_Cu63_reaclib)*Y(Zn63)*Y(N)*state.rho + screened_rates(k_p_Cu63_to_n_Zn63_reaclib)*Y(Cu63)*Y(H1)*state.rho) + - (-screened_rates(k_n_Zn63_to_He4_Ni60_reaclib)*Y(Zn63)*Y(N)*state.rho + screened_rates(k_He4_Ni60_to_n_Zn63_reaclib)*Y(He4)*Y(Ni60)*state.rho) + - (-screened_rates(k_p_Zn63_to_He4_Cu60_reaclib)*Y(Zn63)*Y(H1)*state.rho + screened_rates(k_He4_Cu60_to_p_Zn63_reaclib)*Y(Cu60)*Y(He4)*state.rho) + - (screened_rates(k_n_Ga63_to_p_Zn63_reaclib)*Y(Ga63)*Y(N)*state.rho + -screened_rates(k_p_Zn63_to_n_Ga63_reaclib)*Y(Zn63)*Y(H1)*state.rho) + - (screened_rates(k_Ga63_to_Zn63_weaktab)*Y(Ga63) + -screened_rates(k_Zn63_to_Ga63_weaktab)*Y(Zn63)) + - (-screened_rates(k_Zn63_to_Cu63_weaktab)*Y(Zn63) + screened_rates(k_Cu63_to_Zn63_weaktab)*Y(Cu63)); + (screened_rates(k_Ni59_He4_to_Zn63_reaclib)*Y(He4)*Y(Ni59)*state.rho + -screened_rates(k_Zn63_to_He4_Ni59_derived)*Y(Zn63)) + + (screened_rates(k_Cu62_p_to_Zn63_reaclib)*Y(Cu62)*Y(H1)*state.rho + -screened_rates(k_Zn63_to_p_Cu62_derived)*Y(Zn63)) + + (screened_rates(k_Zn62_n_to_Zn63_reaclib)*Y(Zn62)*Y(N)*state.rho + -screened_rates(k_Zn63_to_n_Zn62_derived)*Y(Zn63)) + + (-screened_rates(k_Zn63_n_to_Zn64_reaclib)*Y(Zn63)*Y(N)*state.rho + screened_rates(k_Zn64_to_n_Zn63_derived)*Y(Zn64)) + + (-screened_rates(k_Zn63_p_to_Ga64_reaclib)*Y(Zn63)*Y(H1)*state.rho + screened_rates(k_Ga64_to_p_Zn63_derived)*Y(Ga64)) + + (-screened_rates(k_Zn63_n_to_p_Cu63_reaclib)*Y(Zn63)*Y(N)*state.rho + screened_rates(k_Cu63_p_to_n_Zn63_derived)*Y(Cu63)*Y(H1)*state.rho) + + (-screened_rates(k_Zn63_n_to_He4_Ni60_reaclib)*Y(Zn63)*Y(N)*state.rho + screened_rates(k_Ni60_He4_to_n_Zn63_derived)*Y(He4)*Y(Ni60)*state.rho) + + (-screened_rates(k_Zn63_p_to_He4_Cu60_reaclib)*Y(Zn63)*Y(H1)*state.rho + screened_rates(k_Cu60_He4_to_p_Zn63_derived)*Y(Cu60)*Y(He4)*state.rho) + + (screened_rates(k_Ga63_n_to_p_Zn63_reaclib)*Y(Ga63)*Y(N)*state.rho + -screened_rates(k_Zn63_p_to_n_Ga63_derived)*Y(Zn63)*Y(H1)*state.rho) + + (screened_rates(k_Ga63_to_Zn63_electron_capture_weaktab)*Y(Ga63) + -screened_rates(k_Zn63_to_Ga63_beta_neg_weaktab)*Y(Zn63)) + + (-screened_rates(k_Zn63_to_Cu63_electron_capture_weaktab)*Y(Zn63) + screened_rates(k_Cu63_to_Zn63_beta_neg_weaktab)*Y(Cu63)); ydot_nuc(Zn64) = - (screened_rates(k_He4_Ni60_to_Zn64_reaclib)*Y(He4)*Y(Ni60)*state.rho + -screened_rates(k_Zn64_to_He4_Ni60_reaclib)*Y(Zn64)) + - (screened_rates(k_p_Cu63_to_Zn64_reaclib)*Y(Cu63)*Y(H1)*state.rho + -screened_rates(k_Zn64_to_p_Cu63_reaclib)*Y(Zn64)) + - (screened_rates(k_n_Zn63_to_Zn64_reaclib)*Y(Zn63)*Y(N)*state.rho + -screened_rates(k_Zn64_to_n_Zn63_reaclib)*Y(Zn64)) + - (-screened_rates(k_n_Zn64_to_Zn65_reaclib)*Y(Zn64)*Y(N)*state.rho + screened_rates(k_Zn65_to_n_Zn64_reaclib)*Y(Zn65)) + - (-screened_rates(k_n_Zn64_to_p_Cu64_reaclib)*Y(Zn64)*Y(N)*state.rho + screened_rates(k_p_Cu64_to_n_Zn64_reaclib)*Y(Cu64)*Y(H1)*state.rho) + - (-screened_rates(k_n_Zn64_to_He4_Ni61_reaclib)*Y(Zn64)*Y(N)*state.rho + screened_rates(k_He4_Ni61_to_n_Zn64_reaclib)*Y(He4)*Y(Ni61)*state.rho) + - (-screened_rates(k_p_Zn64_to_He4_Cu61_reaclib)*Y(Zn64)*Y(H1)*state.rho + screened_rates(k_He4_Cu61_to_p_Zn64_reaclib)*Y(Cu61)*Y(He4)*state.rho) + - (screened_rates(k_n_Ga64_to_p_Zn64_reaclib)*Y(Ga64)*Y(N)*state.rho + -screened_rates(k_p_Zn64_to_n_Ga64_reaclib)*Y(Zn64)*Y(H1)*state.rho) + - (screened_rates(k_Cu64_to_Zn64_weaktab)*Y(Cu64) + -screened_rates(k_Zn64_to_Cu64_weaktab)*Y(Zn64)) + - (screened_rates(k_Ga64_to_Zn64_weaktab)*Y(Ga64) + -screened_rates(k_Zn64_to_Ga64_weaktab)*Y(Zn64)); + (screened_rates(k_Ni60_He4_to_Zn64_reaclib)*Y(He4)*Y(Ni60)*state.rho + -screened_rates(k_Zn64_to_He4_Ni60_derived)*Y(Zn64)) + + (screened_rates(k_Cu63_p_to_Zn64_reaclib)*Y(Cu63)*Y(H1)*state.rho + -screened_rates(k_Zn64_to_p_Cu63_derived)*Y(Zn64)) + + (screened_rates(k_Zn63_n_to_Zn64_reaclib)*Y(Zn63)*Y(N)*state.rho + -screened_rates(k_Zn64_to_n_Zn63_derived)*Y(Zn64)) + + (-screened_rates(k_Zn64_n_to_Zn65_reaclib)*Y(Zn64)*Y(N)*state.rho + screened_rates(k_Zn65_to_n_Zn64_derived)*Y(Zn65)) + + (-screened_rates(k_Zn64_n_to_p_Cu64_reaclib)*Y(Zn64)*Y(N)*state.rho + screened_rates(k_Cu64_p_to_n_Zn64_derived)*Y(Cu64)*Y(H1)*state.rho) + + (-screened_rates(k_Zn64_n_to_He4_Ni61_reaclib)*Y(Zn64)*Y(N)*state.rho + screened_rates(k_Ni61_He4_to_n_Zn64_derived)*Y(He4)*Y(Ni61)*state.rho) + + (-screened_rates(k_Zn64_p_to_He4_Cu61_reaclib)*Y(Zn64)*Y(H1)*state.rho + screened_rates(k_Cu61_He4_to_p_Zn64_derived)*Y(Cu61)*Y(He4)*state.rho) + + (screened_rates(k_Ga64_n_to_p_Zn64_reaclib)*Y(Ga64)*Y(N)*state.rho + -screened_rates(k_Zn64_p_to_n_Ga64_derived)*Y(Zn64)*Y(H1)*state.rho) + + (screened_rates(k_Cu64_to_Zn64_beta_neg_weaktab)*Y(Cu64) + -screened_rates(k_Zn64_to_Cu64_electron_capture_weaktab)*Y(Zn64)) + + (screened_rates(k_Ga64_to_Zn64_electron_capture_weaktab)*Y(Ga64) + -screened_rates(k_Zn64_to_Ga64_beta_neg_weaktab)*Y(Zn64)); ydot_nuc(Zn65) = - (screened_rates(k_He4_Ni61_to_Zn65_reaclib)*Y(He4)*Y(Ni61)*state.rho + -screened_rates(k_Zn65_to_He4_Ni61_reaclib)*Y(Zn65)) + - (screened_rates(k_p_Cu64_to_Zn65_reaclib)*Y(Cu64)*Y(H1)*state.rho + -screened_rates(k_Zn65_to_p_Cu64_reaclib)*Y(Zn65)) + - (screened_rates(k_n_Zn64_to_Zn65_reaclib)*Y(Zn64)*Y(N)*state.rho + -screened_rates(k_Zn65_to_n_Zn64_reaclib)*Y(Zn65)) + - (-screened_rates(k_n_Zn65_to_Zn66_reaclib)*Y(Zn65)*Y(N)*state.rho + screened_rates(k_Zn66_to_n_Zn65_reaclib)*Y(Zn66)) + - (-screened_rates(k_n_Zn65_to_p_Cu65_reaclib)*Y(Zn65)*Y(N)*state.rho + screened_rates(k_p_Cu65_to_n_Zn65_reaclib)*Y(Cu65)*Y(H1)*state.rho) + - (-screened_rates(k_n_Zn65_to_He4_Ni62_reaclib)*Y(Zn65)*Y(N)*state.rho + screened_rates(k_He4_Ni62_to_n_Zn65_reaclib)*Y(He4)*Y(Ni62)*state.rho) + - (-screened_rates(k_p_Zn65_to_He4_Cu62_reaclib)*Y(Zn65)*Y(H1)*state.rho + screened_rates(k_He4_Cu62_to_p_Zn65_reaclib)*Y(Cu62)*Y(He4)*state.rho) + - (-screened_rates(k_Zn65_to_Cu65_weaktab)*Y(Zn65) + screened_rates(k_Cu65_to_Zn65_weaktab)*Y(Cu65)); + (screened_rates(k_Ni61_He4_to_Zn65_reaclib)*Y(He4)*Y(Ni61)*state.rho + -screened_rates(k_Zn65_to_He4_Ni61_derived)*Y(Zn65)) + + (screened_rates(k_Cu64_p_to_Zn65_reaclib)*Y(Cu64)*Y(H1)*state.rho + -screened_rates(k_Zn65_to_p_Cu64_derived)*Y(Zn65)) + + (screened_rates(k_Zn64_n_to_Zn65_reaclib)*Y(Zn64)*Y(N)*state.rho + -screened_rates(k_Zn65_to_n_Zn64_derived)*Y(Zn65)) + + (-screened_rates(k_Zn65_n_to_Zn66_reaclib)*Y(Zn65)*Y(N)*state.rho + screened_rates(k_Zn66_to_n_Zn65_derived)*Y(Zn66)) + + (-screened_rates(k_Zn65_n_to_p_Cu65_reaclib)*Y(Zn65)*Y(N)*state.rho + screened_rates(k_Cu65_p_to_n_Zn65_derived)*Y(Cu65)*Y(H1)*state.rho) + + (-screened_rates(k_Zn65_n_to_He4_Ni62_reaclib)*Y(Zn65)*Y(N)*state.rho + screened_rates(k_Ni62_He4_to_n_Zn65_derived)*Y(He4)*Y(Ni62)*state.rho) + + (-screened_rates(k_Zn65_p_to_He4_Cu62_reaclib)*Y(Zn65)*Y(H1)*state.rho + screened_rates(k_Cu62_He4_to_p_Zn65_derived)*Y(Cu62)*Y(He4)*state.rho) + + (-screened_rates(k_Zn65_to_Cu65_electron_capture_weaktab)*Y(Zn65) + screened_rates(k_Cu65_to_Zn65_beta_neg_weaktab)*Y(Cu65)); ydot_nuc(Zn66) = - (screened_rates(k_He4_Ni62_to_Zn66_reaclib)*Y(He4)*Y(Ni62)*state.rho + -screened_rates(k_Zn66_to_He4_Ni62_reaclib)*Y(Zn66)) + - (screened_rates(k_p_Cu65_to_Zn66_reaclib)*Y(Cu65)*Y(H1)*state.rho + -screened_rates(k_Zn66_to_p_Cu65_reaclib)*Y(Zn66)) + - (screened_rates(k_n_Zn65_to_Zn66_reaclib)*Y(Zn65)*Y(N)*state.rho + -screened_rates(k_Zn66_to_n_Zn65_reaclib)*Y(Zn66)) + - (-screened_rates(k_n_Zn66_to_He4_Ni63_reaclib)*Y(Zn66)*Y(N)*state.rho + screened_rates(k_He4_Ni63_to_n_Zn66_reaclib)*Y(He4)*Y(Ni63)*state.rho) + - (-screened_rates(k_p_Zn66_to_He4_Cu63_reaclib)*Y(Zn66)*Y(H1)*state.rho + screened_rates(k_He4_Cu63_to_p_Zn66_reaclib)*Y(Cu63)*Y(He4)*state.rho); + (screened_rates(k_Ni62_He4_to_Zn66_reaclib)*Y(He4)*Y(Ni62)*state.rho + -screened_rates(k_Zn66_to_He4_Ni62_derived)*Y(Zn66)) + + (screened_rates(k_Cu65_p_to_Zn66_reaclib)*Y(Cu65)*Y(H1)*state.rho + -screened_rates(k_Zn66_to_p_Cu65_derived)*Y(Zn66)) + + (screened_rates(k_Zn65_n_to_Zn66_reaclib)*Y(Zn65)*Y(N)*state.rho + -screened_rates(k_Zn66_to_n_Zn65_derived)*Y(Zn66)) + + (-screened_rates(k_Zn66_n_to_He4_Ni63_reaclib)*Y(Zn66)*Y(N)*state.rho + screened_rates(k_Ni63_He4_to_n_Zn66_derived)*Y(He4)*Y(Ni63)*state.rho) + + (-screened_rates(k_Zn66_p_to_He4_Cu63_reaclib)*Y(Zn66)*Y(H1)*state.rho + screened_rates(k_Cu63_He4_to_p_Zn66_derived)*Y(Cu63)*Y(He4)*state.rho); ydot_nuc(Ga62) = - (screened_rates(k_He4_Cu58_to_Ga62_reaclib)*Y(Cu58)*Y(He4)*state.rho + -screened_rates(k_Ga62_to_He4_Cu58_reaclib)*Y(Ga62)) + - (screened_rates(k_p_Zn61_to_Ga62_reaclib)*Y(Zn61)*Y(H1)*state.rho + -screened_rates(k_Ga62_to_p_Zn61_reaclib)*Y(Ga62)) + - (-screened_rates(k_n_Ga62_to_Ga63_reaclib)*Y(Ga62)*Y(N)*state.rho + screened_rates(k_Ga63_to_n_Ga62_reaclib)*Y(Ga63)) + - (-screened_rates(k_p_Ga62_to_Ge63_reaclib)*Y(Ga62)*Y(H1)*state.rho + screened_rates(k_Ge63_to_p_Ga62_reaclib)*Y(Ge63)) + - (-screened_rates(k_n_Ga62_to_p_Zn62_reaclib)*Y(Ga62)*Y(N)*state.rho + screened_rates(k_p_Zn62_to_n_Ga62_reaclib)*Y(Zn62)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ga62_to_He4_Cu59_reaclib)*Y(Ga62)*Y(N)*state.rho + screened_rates(k_He4_Cu59_to_n_Ga62_reaclib)*Y(Cu59)*Y(He4)*state.rho) + - (-screened_rates(k_p_Ga62_to_He4_Zn59_reaclib)*Y(Ga62)*Y(H1)*state.rho + screened_rates(k_He4_Zn59_to_p_Ga62_reaclib)*Y(He4)*Y(Zn59)*state.rho) + - (-screened_rates(k_Ga62_to_Zn62_weaktab)*Y(Ga62) + screened_rates(k_Zn62_to_Ga62_weaktab)*Y(Zn62)); + (screened_rates(k_Cu58_He4_to_Ga62_reaclib)*Y(Cu58)*Y(He4)*state.rho + -screened_rates(k_Ga62_to_He4_Cu58_derived)*Y(Ga62)) + + (screened_rates(k_Zn61_p_to_Ga62_reaclib)*Y(Zn61)*Y(H1)*state.rho + -screened_rates(k_Ga62_to_p_Zn61_derived)*Y(Ga62)) + + (-screened_rates(k_Ga62_n_to_Ga63_reaclib)*Y(Ga62)*Y(N)*state.rho + screened_rates(k_Ga63_to_n_Ga62_derived)*Y(Ga63)) + + (-screened_rates(k_Ga62_p_to_Ge63_reaclib)*Y(Ga62)*Y(H1)*state.rho + screened_rates(k_Ge63_to_p_Ga62_derived)*Y(Ge63)) + + (-screened_rates(k_Ga62_n_to_p_Zn62_reaclib)*Y(Ga62)*Y(N)*state.rho + screened_rates(k_Zn62_p_to_n_Ga62_derived)*Y(Zn62)*Y(H1)*state.rho) + + (-screened_rates(k_Ga62_n_to_He4_Cu59_reaclib)*Y(Ga62)*Y(N)*state.rho + screened_rates(k_Cu59_He4_to_n_Ga62_derived)*Y(Cu59)*Y(He4)*state.rho) + + (-screened_rates(k_Ga62_p_to_He4_Zn59_reaclib)*Y(Ga62)*Y(H1)*state.rho + screened_rates(k_Zn59_He4_to_p_Ga62_derived)*Y(He4)*Y(Zn59)*state.rho) + + (-screened_rates(k_Ga62_to_Zn62_electron_capture_weaktab)*Y(Ga62) + screened_rates(k_Zn62_to_Ga62_beta_neg_weaktab)*Y(Zn62)); ydot_nuc(Ga63) = - screened_rates(k_Ge63_to_Ga63_reaclib)*Y(Ge63) + - (screened_rates(k_He4_Cu59_to_Ga63_reaclib)*Y(Cu59)*Y(He4)*state.rho + -screened_rates(k_Ga63_to_He4_Cu59_reaclib)*Y(Ga63)) + - (screened_rates(k_p_Zn62_to_Ga63_reaclib)*Y(Zn62)*Y(H1)*state.rho + -screened_rates(k_Ga63_to_p_Zn62_reaclib)*Y(Ga63)) + - (screened_rates(k_n_Ga62_to_Ga63_reaclib)*Y(Ga62)*Y(N)*state.rho + -screened_rates(k_Ga63_to_n_Ga62_reaclib)*Y(Ga63)) + - (-screened_rates(k_n_Ga63_to_Ga64_reaclib)*Y(Ga63)*Y(N)*state.rho + screened_rates(k_Ga64_to_n_Ga63_reaclib)*Y(Ga64)) + - (-screened_rates(k_p_Ga63_to_Ge64_reaclib)*Y(Ga63)*Y(H1)*state.rho + screened_rates(k_Ge64_to_p_Ga63_reaclib)*Y(Ge64)) + - (-screened_rates(k_n_Ga63_to_p_Zn63_reaclib)*Y(Ga63)*Y(N)*state.rho + screened_rates(k_p_Zn63_to_n_Ga63_reaclib)*Y(Zn63)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ga63_to_He4_Cu60_reaclib)*Y(Ga63)*Y(N)*state.rho + screened_rates(k_He4_Cu60_to_n_Ga63_reaclib)*Y(Cu60)*Y(He4)*state.rho) + - (-screened_rates(k_p_Ga63_to_He4_Zn60_reaclib)*Y(Ga63)*Y(H1)*state.rho + screened_rates(k_He4_Zn60_to_p_Ga63_reaclib)*Y(He4)*Y(Zn60)*state.rho) + - (screened_rates(k_n_Ge63_to_p_Ga63_reaclib)*Y(Ge63)*Y(N)*state.rho + -screened_rates(k_p_Ga63_to_n_Ge63_reaclib)*Y(Ga63)*Y(H1)*state.rho) + - (-screened_rates(k_Ga63_to_Zn63_weaktab)*Y(Ga63) + screened_rates(k_Zn63_to_Ga63_weaktab)*Y(Zn63)); + screened_rates(k_Ge63_to_Ga63_beta_pos_reaclib)*Y(Ge63) + + (screened_rates(k_Cu59_He4_to_Ga63_reaclib)*Y(Cu59)*Y(He4)*state.rho + -screened_rates(k_Ga63_to_He4_Cu59_derived)*Y(Ga63)) + + (screened_rates(k_Zn62_p_to_Ga63_reaclib)*Y(Zn62)*Y(H1)*state.rho + -screened_rates(k_Ga63_to_p_Zn62_derived)*Y(Ga63)) + + (screened_rates(k_Ga62_n_to_Ga63_reaclib)*Y(Ga62)*Y(N)*state.rho + -screened_rates(k_Ga63_to_n_Ga62_derived)*Y(Ga63)) + + (-screened_rates(k_Ga63_n_to_Ga64_reaclib)*Y(Ga63)*Y(N)*state.rho + screened_rates(k_Ga64_to_n_Ga63_derived)*Y(Ga64)) + + (-screened_rates(k_Ga63_p_to_Ge64_reaclib)*Y(Ga63)*Y(H1)*state.rho + screened_rates(k_Ge64_to_p_Ga63_derived)*Y(Ge64)) + + (-screened_rates(k_Ga63_n_to_p_Zn63_reaclib)*Y(Ga63)*Y(N)*state.rho + screened_rates(k_Zn63_p_to_n_Ga63_derived)*Y(Zn63)*Y(H1)*state.rho) + + (-screened_rates(k_Ga63_n_to_He4_Cu60_reaclib)*Y(Ga63)*Y(N)*state.rho + screened_rates(k_Cu60_He4_to_n_Ga63_derived)*Y(Cu60)*Y(He4)*state.rho) + + (-screened_rates(k_Ga63_p_to_He4_Zn60_reaclib)*Y(Ga63)*Y(H1)*state.rho + screened_rates(k_Zn60_He4_to_p_Ga63_derived)*Y(He4)*Y(Zn60)*state.rho) + + (screened_rates(k_Ge63_n_to_p_Ga63_reaclib)*Y(Ge63)*Y(N)*state.rho + -screened_rates(k_Ga63_p_to_n_Ge63_derived)*Y(Ga63)*Y(H1)*state.rho) + + (-screened_rates(k_Ga63_to_Zn63_electron_capture_weaktab)*Y(Ga63) + screened_rates(k_Zn63_to_Ga63_beta_neg_weaktab)*Y(Zn63)); ydot_nuc(Ga64) = - (screened_rates(k_He4_Cu60_to_Ga64_reaclib)*Y(Cu60)*Y(He4)*state.rho + -screened_rates(k_Ga64_to_He4_Cu60_reaclib)*Y(Ga64)) + - (screened_rates(k_p_Zn63_to_Ga64_reaclib)*Y(Zn63)*Y(H1)*state.rho + -screened_rates(k_Ga64_to_p_Zn63_reaclib)*Y(Ga64)) + - (screened_rates(k_n_Ga63_to_Ga64_reaclib)*Y(Ga63)*Y(N)*state.rho + -screened_rates(k_Ga64_to_n_Ga63_reaclib)*Y(Ga64)) + - (-screened_rates(k_n_Ga64_to_p_Zn64_reaclib)*Y(Ga64)*Y(N)*state.rho + screened_rates(k_p_Zn64_to_n_Ga64_reaclib)*Y(Zn64)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ga64_to_He4_Cu61_reaclib)*Y(Ga64)*Y(N)*state.rho + screened_rates(k_He4_Cu61_to_n_Ga64_reaclib)*Y(Cu61)*Y(He4)*state.rho) + - (-screened_rates(k_p_Ga64_to_He4_Zn61_reaclib)*Y(Ga64)*Y(H1)*state.rho + screened_rates(k_He4_Zn61_to_p_Ga64_reaclib)*Y(He4)*Y(Zn61)*state.rho) + - (screened_rates(k_n_Ge64_to_p_Ga64_reaclib)*Y(Ge64)*Y(N)*state.rho + -screened_rates(k_p_Ga64_to_n_Ge64_reaclib)*Y(Ga64)*Y(H1)*state.rho) + - (-screened_rates(k_Ga64_to_Zn64_weaktab)*Y(Ga64) + screened_rates(k_Zn64_to_Ga64_weaktab)*Y(Zn64)) + - (screened_rates(k_Ge64_to_Ga64_weaktab)*Y(Ge64) + -screened_rates(k_Ga64_to_Ge64_weaktab)*Y(Ga64)); + (screened_rates(k_Cu60_He4_to_Ga64_reaclib)*Y(Cu60)*Y(He4)*state.rho + -screened_rates(k_Ga64_to_He4_Cu60_derived)*Y(Ga64)) + + (screened_rates(k_Zn63_p_to_Ga64_reaclib)*Y(Zn63)*Y(H1)*state.rho + -screened_rates(k_Ga64_to_p_Zn63_derived)*Y(Ga64)) + + (screened_rates(k_Ga63_n_to_Ga64_reaclib)*Y(Ga63)*Y(N)*state.rho + -screened_rates(k_Ga64_to_n_Ga63_derived)*Y(Ga64)) + + (-screened_rates(k_Ga64_n_to_p_Zn64_reaclib)*Y(Ga64)*Y(N)*state.rho + screened_rates(k_Zn64_p_to_n_Ga64_derived)*Y(Zn64)*Y(H1)*state.rho) + + (-screened_rates(k_Ga64_n_to_He4_Cu61_reaclib)*Y(Ga64)*Y(N)*state.rho + screened_rates(k_Cu61_He4_to_n_Ga64_derived)*Y(Cu61)*Y(He4)*state.rho) + + (-screened_rates(k_Ga64_p_to_He4_Zn61_reaclib)*Y(Ga64)*Y(H1)*state.rho + screened_rates(k_Zn61_He4_to_p_Ga64_derived)*Y(He4)*Y(Zn61)*state.rho) + + (screened_rates(k_Ge64_n_to_p_Ga64_reaclib)*Y(Ge64)*Y(N)*state.rho + -screened_rates(k_Ga64_p_to_n_Ge64_derived)*Y(Ga64)*Y(H1)*state.rho) + + (-screened_rates(k_Ga64_to_Zn64_electron_capture_weaktab)*Y(Ga64) + screened_rates(k_Zn64_to_Ga64_beta_neg_weaktab)*Y(Zn64)) + + (screened_rates(k_Ge64_to_Ga64_electron_capture_weaktab)*Y(Ge64) + -screened_rates(k_Ga64_to_Ge64_beta_neg_weaktab)*Y(Ga64)); ydot_nuc(Ge63) = - -screened_rates(k_Ge63_to_Ga63_reaclib)*Y(Ge63) + - (screened_rates(k_He4_Zn59_to_Ge63_reaclib)*Y(He4)*Y(Zn59)*state.rho + -screened_rates(k_Ge63_to_He4_Zn59_reaclib)*Y(Ge63)) + - (screened_rates(k_p_Ga62_to_Ge63_reaclib)*Y(Ga62)*Y(H1)*state.rho + -screened_rates(k_Ge63_to_p_Ga62_reaclib)*Y(Ge63)) + - (-screened_rates(k_n_Ge63_to_Ge64_reaclib)*Y(Ge63)*Y(N)*state.rho + screened_rates(k_Ge64_to_n_Ge63_reaclib)*Y(Ge64)) + - (-screened_rates(k_n_Ge63_to_p_Ga63_reaclib)*Y(Ge63)*Y(N)*state.rho + screened_rates(k_p_Ga63_to_n_Ge63_reaclib)*Y(Ga63)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ge63_to_He4_Zn60_reaclib)*Y(Ge63)*Y(N)*state.rho + screened_rates(k_He4_Zn60_to_n_Ge63_reaclib)*Y(He4)*Y(Zn60)*state.rho); + -screened_rates(k_Ge63_to_Ga63_beta_pos_reaclib)*Y(Ge63) + + (screened_rates(k_Zn59_He4_to_Ge63_reaclib)*Y(He4)*Y(Zn59)*state.rho + -screened_rates(k_Ge63_to_He4_Zn59_derived)*Y(Ge63)) + + (screened_rates(k_Ga62_p_to_Ge63_reaclib)*Y(Ga62)*Y(H1)*state.rho + -screened_rates(k_Ge63_to_p_Ga62_derived)*Y(Ge63)) + + (-screened_rates(k_Ge63_n_to_Ge64_reaclib)*Y(Ge63)*Y(N)*state.rho + screened_rates(k_Ge64_to_n_Ge63_derived)*Y(Ge64)) + + (-screened_rates(k_Ge63_n_to_p_Ga63_reaclib)*Y(Ge63)*Y(N)*state.rho + screened_rates(k_Ga63_p_to_n_Ge63_derived)*Y(Ga63)*Y(H1)*state.rho) + + (-screened_rates(k_Ge63_n_to_He4_Zn60_reaclib)*Y(Ge63)*Y(N)*state.rho + screened_rates(k_Zn60_He4_to_n_Ge63_derived)*Y(He4)*Y(Zn60)*state.rho); ydot_nuc(Ge64) = - (screened_rates(k_He4_Zn60_to_Ge64_reaclib)*Y(He4)*Y(Zn60)*state.rho + -screened_rates(k_Ge64_to_He4_Zn60_reaclib)*Y(Ge64)) + - (screened_rates(k_p_Ga63_to_Ge64_reaclib)*Y(Ga63)*Y(H1)*state.rho + -screened_rates(k_Ge64_to_p_Ga63_reaclib)*Y(Ge64)) + - (screened_rates(k_n_Ge63_to_Ge64_reaclib)*Y(Ge63)*Y(N)*state.rho + -screened_rates(k_Ge64_to_n_Ge63_reaclib)*Y(Ge64)) + - (-screened_rates(k_n_Ge64_to_p_Ga64_reaclib)*Y(Ge64)*Y(N)*state.rho + screened_rates(k_p_Ga64_to_n_Ge64_reaclib)*Y(Ga64)*Y(H1)*state.rho) + - (-screened_rates(k_n_Ge64_to_He4_Zn61_reaclib)*Y(Ge64)*Y(N)*state.rho + screened_rates(k_He4_Zn61_to_n_Ge64_reaclib)*Y(He4)*Y(Zn61)*state.rho) + - (-screened_rates(k_Ge64_to_Ga64_weaktab)*Y(Ge64) + screened_rates(k_Ga64_to_Ge64_weaktab)*Y(Ga64)); + (screened_rates(k_Zn60_He4_to_Ge64_reaclib)*Y(He4)*Y(Zn60)*state.rho + -screened_rates(k_Ge64_to_He4_Zn60_derived)*Y(Ge64)) + + (screened_rates(k_Ga63_p_to_Ge64_reaclib)*Y(Ga63)*Y(H1)*state.rho + -screened_rates(k_Ge64_to_p_Ga63_derived)*Y(Ge64)) + + (screened_rates(k_Ge63_n_to_Ge64_reaclib)*Y(Ge63)*Y(N)*state.rho + -screened_rates(k_Ge64_to_n_Ge63_derived)*Y(Ge64)) + + (-screened_rates(k_Ge64_n_to_p_Ga64_reaclib)*Y(Ge64)*Y(N)*state.rho + screened_rates(k_Ga64_p_to_n_Ge64_derived)*Y(Ga64)*Y(H1)*state.rho) + + (-screened_rates(k_Ge64_n_to_He4_Zn61_reaclib)*Y(Ge64)*Y(N)*state.rho + screened_rates(k_Zn61_He4_to_n_Ge64_derived)*Y(He4)*Y(Zn61)*state.rho) + + (-screened_rates(k_Ge64_to_Ga64_electron_capture_weaktab)*Y(Ge64) + screened_rates(k_Ga64_to_Ge64_beta_neg_weaktab)*Y(Ga64)); } @@ -9143,996 +6950,998 @@ AMREX_GPU_DEVICE AMREX_INLINE void jac_nuc(const burn_t& state, MatrixType& jac, const amrex::Array1D& Y, - const amrex::Array1D& screened_rates) + const amrex::Array1D& screened_rates) { + using namespace Rates; + amrex::Real scratch; - scratch = -screened_rates(k_n_Al25_to_Al26_reaclib)*Y(Al25)*state.rho - screened_rates(k_n_Al25_to_He4_Na22_reaclib)*Y(Al25)*state.rho - screened_rates(k_n_Al25_to_p_Mg25_reaclib)*Y(Al25)*state.rho - screened_rates(k_n_Al26_to_Al27_reaclib)*Y(Al26)*state.rho - screened_rates(k_n_Al26_to_He4_Na23_reaclib)*Y(Al26)*state.rho - screened_rates(k_n_Al26_to_p_Mg26_reaclib)*Y(Al26)*state.rho - screened_rates(k_n_Ar36_to_Ar37_reaclib)*Y(Ar36)*state.rho - screened_rates(k_n_Ar36_to_He4_S33_reaclib)*Y(Ar36)*state.rho - screened_rates(k_n_Ar36_to_p_Cl36_reaclib)*Y(Ar36)*state.rho - screened_rates(k_n_Ar37_to_Ar38_reaclib)*Y(Ar37)*state.rho - screened_rates(k_n_Ar37_to_He4_S34_reaclib)*Y(Ar37)*state.rho - screened_rates(k_n_Ar37_to_p_Cl37_reaclib)*Y(Ar37)*state.rho - screened_rates(k_n_Ar38_to_Ar39_reaclib)*Y(Ar38)*state.rho - screened_rates(k_n_Ar38_to_He4_S35_reaclib)*Y(Ar38)*state.rho - screened_rates(k_n_Ar39_to_Ar40_reaclib)*Y(Ar39)*state.rho - screened_rates(k_n_Ar39_to_He4_S36_reaclib)*Y(Ar39)*state.rho - screened_rates(k_n_B10_to_B11_reaclib)*Y(B10)*state.rho - screened_rates(k_n_B10_to_He4_Li7_reaclib)*Y(B10)*state.rho - screened_rates(k_n_B8_to_p_He4_He4_reaclib)*Y(B8)*state.rho - screened_rates(k_n_Be7_to_He4_He4_reaclib)*Y(Be7)*state.rho - screened_rates(k_n_Be7_to_d_Li6_reaclib)*Y(Be7)*state.rho - screened_rates(k_n_Be7_to_p_Li7_reaclib)*Y(Be7)*state.rho - screened_rates(k_n_C12_to_C13_reaclib)*Y(C12)*state.rho - screened_rates(k_n_C12_to_He4_Be9_reaclib)*Y(C12)*state.rho - screened_rates(k_n_C13_to_C14_reaclib)*Y(C13)*state.rho - screened_rates(k_n_Ca40_to_Ca41_reaclib)*Y(Ca40)*state.rho - screened_rates(k_n_Ca40_to_He4_Ar37_reaclib)*Y(Ca40)*state.rho - screened_rates(k_n_Ca40_to_p_K40_reaclib)*Y(Ca40)*state.rho - screened_rates(k_n_Ca41_to_Ca42_reaclib)*Y(Ca41)*state.rho - screened_rates(k_n_Ca41_to_He4_Ar38_reaclib)*Y(Ca41)*state.rho - screened_rates(k_n_Ca41_to_p_K41_reaclib)*Y(Ca41)*state.rho - screened_rates(k_n_Ca42_to_Ca43_reaclib)*Y(Ca42)*state.rho - screened_rates(k_n_Ca42_to_He4_Ar39_reaclib)*Y(Ca42)*state.rho - screened_rates(k_n_Ca43_to_Ca44_reaclib)*Y(Ca43)*state.rho - screened_rates(k_n_Ca43_to_He4_Ar40_reaclib)*Y(Ca43)*state.rho - screened_rates(k_n_Ca44_to_Ca45_reaclib)*Y(Ca44)*state.rho - screened_rates(k_n_Ca45_to_Ca46_reaclib)*Y(Ca45)*state.rho - screened_rates(k_n_Ca46_to_Ca47_reaclib)*Y(Ca46)*state.rho - screened_rates(k_n_Ca47_to_Ca48_reaclib)*Y(Ca47)*state.rho - screened_rates(k_n_Cl33_to_Cl34_reaclib)*Y(Cl33)*state.rho - screened_rates(k_n_Cl33_to_He4_P30_reaclib)*Y(Cl33)*state.rho - screened_rates(k_n_Cl33_to_p_S33_reaclib)*Y(Cl33)*state.rho - screened_rates(k_n_Cl34_to_Cl35_reaclib)*Y(Cl34)*state.rho - screened_rates(k_n_Cl34_to_He4_P31_reaclib)*Y(Cl34)*state.rho - screened_rates(k_n_Cl34_to_p_S34_reaclib)*Y(Cl34)*state.rho - screened_rates(k_n_Cl35_to_Cl36_reaclib)*Y(Cl35)*state.rho - screened_rates(k_n_Cl35_to_He4_P32_reaclib)*Y(Cl35)*state.rho - screened_rates(k_n_Cl35_to_p_S35_reaclib)*Y(Cl35)*state.rho - screened_rates(k_n_Cl36_to_Cl37_reaclib)*Y(Cl36)*state.rho - screened_rates(k_n_Cl36_to_He4_P33_reaclib)*Y(Cl36)*state.rho - screened_rates(k_n_Cl36_to_p_S36_reaclib)*Y(Cl36)*state.rho - screened_rates(k_n_Co53_to_Co54_reaclib)*Y(Co53)*state.rho - screened_rates(k_n_Co53_to_He4_Mn50_reaclib)*Y(Co53)*state.rho - screened_rates(k_n_Co53_to_p_Fe53_reaclib)*Y(Co53)*state.rho - screened_rates(k_n_Co54_to_Co55_reaclib)*Y(Co54)*state.rho - screened_rates(k_n_Co54_to_He4_Mn51_reaclib)*Y(Co54)*state.rho - screened_rates(k_n_Co54_to_p_Fe54_reaclib)*Y(Co54)*state.rho - screened_rates(k_n_Co55_to_Co56_reaclib)*Y(Co55)*state.rho - screened_rates(k_n_Co55_to_He4_Mn52_reaclib)*Y(Co55)*state.rho - screened_rates(k_n_Co55_to_p_Fe55_reaclib)*Y(Co55)*state.rho - screened_rates(k_n_Co56_to_Co57_reaclib)*Y(Co56)*state.rho - screened_rates(k_n_Co56_to_He4_Mn53_reaclib)*Y(Co56)*state.rho - screened_rates(k_n_Co56_to_p_Fe56_reaclib)*Y(Co56)*state.rho - screened_rates(k_n_Co57_to_Co58_reaclib)*Y(Co57)*state.rho - screened_rates(k_n_Co57_to_He4_Mn54_reaclib)*Y(Co57)*state.rho - screened_rates(k_n_Co57_to_p_Fe57_reaclib)*Y(Co57)*state.rho - screened_rates(k_n_Co58_to_Co59_reaclib)*Y(Co58)*state.rho - screened_rates(k_n_Co58_to_He4_Mn55_reaclib)*Y(Co58)*state.rho - screened_rates(k_n_Co58_to_p_Fe58_reaclib)*Y(Co58)*state.rho - screened_rates(k_n_Cr48_to_Cr49_reaclib)*Y(Cr48)*state.rho - screened_rates(k_n_Cr48_to_He4_Ti45_reaclib)*Y(Cr48)*state.rho - screened_rates(k_n_Cr48_to_p_V48_reaclib)*Y(Cr48)*state.rho - screened_rates(k_n_Cr49_to_Cr50_reaclib)*Y(Cr49)*state.rho - screened_rates(k_n_Cr49_to_He4_Ti46_reaclib)*Y(Cr49)*state.rho - screened_rates(k_n_Cr49_to_p_V49_reaclib)*Y(Cr49)*state.rho - screened_rates(k_n_Cr50_to_Cr51_reaclib)*Y(Cr50)*state.rho - screened_rates(k_n_Cr50_to_He4_Ti47_reaclib)*Y(Cr50)*state.rho - screened_rates(k_n_Cr50_to_p_V50_reaclib)*Y(Cr50)*state.rho - screened_rates(k_n_Cr51_to_Cr52_reaclib)*Y(Cr51)*state.rho - screened_rates(k_n_Cr51_to_He4_Ti48_reaclib)*Y(Cr51)*state.rho - screened_rates(k_n_Cr51_to_p_V51_reaclib)*Y(Cr51)*state.rho - screened_rates(k_n_Cr52_to_Cr53_reaclib)*Y(Cr52)*state.rho - screened_rates(k_n_Cr52_to_He4_Ti49_reaclib)*Y(Cr52)*state.rho - screened_rates(k_n_Cr52_to_p_V52_reaclib)*Y(Cr52)*state.rho - screened_rates(k_n_Cr53_to_Cr54_reaclib)*Y(Cr53)*state.rho - screened_rates(k_n_Cr53_to_He4_Ti50_reaclib)*Y(Cr53)*state.rho - screened_rates(k_n_Cr54_to_He4_Ti51_reaclib)*Y(Cr54)*state.rho - screened_rates(k_n_Cu57_to_Cu58_reaclib)*Y(Cu57)*state.rho - screened_rates(k_n_Cu57_to_He4_Co54_reaclib)*Y(Cu57)*state.rho - screened_rates(k_n_Cu57_to_p_Ni57_reaclib)*Y(Cu57)*state.rho - screened_rates(k_n_Cu58_to_Cu59_reaclib)*Y(Cu58)*state.rho - screened_rates(k_n_Cu58_to_He4_Co55_reaclib)*Y(Cu58)*state.rho - screened_rates(k_n_Cu58_to_p_Ni58_reaclib)*Y(Cu58)*state.rho - screened_rates(k_n_Cu59_to_Cu60_reaclib)*Y(Cu59)*state.rho - screened_rates(k_n_Cu59_to_He4_Co56_reaclib)*Y(Cu59)*state.rho - screened_rates(k_n_Cu59_to_p_Ni59_reaclib)*Y(Cu59)*state.rho - screened_rates(k_n_Cu60_to_Cu61_reaclib)*Y(Cu60)*state.rho - screened_rates(k_n_Cu60_to_He4_Co57_reaclib)*Y(Cu60)*state.rho - screened_rates(k_n_Cu60_to_p_Ni60_reaclib)*Y(Cu60)*state.rho - screened_rates(k_n_Cu61_to_Cu62_reaclib)*Y(Cu61)*state.rho - screened_rates(k_n_Cu61_to_He4_Co58_reaclib)*Y(Cu61)*state.rho - screened_rates(k_n_Cu61_to_p_Ni61_reaclib)*Y(Cu61)*state.rho - screened_rates(k_n_Cu62_to_Cu63_reaclib)*Y(Cu62)*state.rho - screened_rates(k_n_Cu62_to_He4_Co59_reaclib)*Y(Cu62)*state.rho - screened_rates(k_n_Cu62_to_p_Ni62_reaclib)*Y(Cu62)*state.rho - screened_rates(k_n_Cu63_to_Cu64_reaclib)*Y(Cu63)*state.rho - screened_rates(k_n_Cu63_to_p_Ni63_reaclib)*Y(Cu63)*state.rho - screened_rates(k_n_Cu64_to_Cu65_reaclib)*Y(Cu64)*state.rho - screened_rates(k_n_Cu64_to_p_Ni64_reaclib)*Y(Cu64)*state.rho - screened_rates(k_n_F17_to_F18_reaclib)*Y(F17)*state.rho - screened_rates(k_n_F17_to_He4_N14_reaclib)*Y(F17)*state.rho - screened_rates(k_n_F17_to_p_O17_reaclib)*Y(F17)*state.rho - screened_rates(k_n_F18_to_F19_reaclib)*Y(F18)*state.rho - screened_rates(k_n_F18_to_He4_N15_reaclib)*Y(F18)*state.rho - screened_rates(k_n_F18_to_p_O18_reaclib)*Y(F18)*state.rho - screened_rates(k_n_Fe52_to_Fe53_reaclib)*Y(Fe52)*state.rho - screened_rates(k_n_Fe52_to_He4_Cr49_reaclib)*Y(Fe52)*state.rho - screened_rates(k_n_Fe52_to_p_Mn52_reaclib)*Y(Fe52)*state.rho - screened_rates(k_n_Fe53_to_Fe54_reaclib)*Y(Fe53)*state.rho - screened_rates(k_n_Fe53_to_He4_Cr50_reaclib)*Y(Fe53)*state.rho - screened_rates(k_n_Fe53_to_p_Mn53_reaclib)*Y(Fe53)*state.rho - screened_rates(k_n_Fe54_to_Fe55_reaclib)*Y(Fe54)*state.rho - screened_rates(k_n_Fe54_to_He4_Cr51_reaclib)*Y(Fe54)*state.rho - screened_rates(k_n_Fe54_to_p_Mn54_reaclib)*Y(Fe54)*state.rho - screened_rates(k_n_Fe55_to_Fe56_reaclib)*Y(Fe55)*state.rho - screened_rates(k_n_Fe55_to_He4_Cr52_reaclib)*Y(Fe55)*state.rho - screened_rates(k_n_Fe55_to_p_Mn55_reaclib)*Y(Fe55)*state.rho - screened_rates(k_n_Fe56_to_Fe57_reaclib)*Y(Fe56)*state.rho - screened_rates(k_n_Fe56_to_He4_Cr53_reaclib)*Y(Fe56)*state.rho - screened_rates(k_n_Fe57_to_Fe58_reaclib)*Y(Fe57)*state.rho - screened_rates(k_n_Fe57_to_He4_Cr54_reaclib)*Y(Fe57)*state.rho - screened_rates(k_n_Ga62_to_Ga63_reaclib)*Y(Ga62)*state.rho - screened_rates(k_n_Ga62_to_He4_Cu59_reaclib)*Y(Ga62)*state.rho - screened_rates(k_n_Ga62_to_p_Zn62_reaclib)*Y(Ga62)*state.rho - screened_rates(k_n_Ga63_to_Ga64_reaclib)*Y(Ga63)*state.rho - screened_rates(k_n_Ga63_to_He4_Cu60_reaclib)*Y(Ga63)*state.rho - screened_rates(k_n_Ga63_to_p_Zn63_reaclib)*Y(Ga63)*state.rho - screened_rates(k_n_Ga64_to_He4_Cu61_reaclib)*Y(Ga64)*state.rho - screened_rates(k_n_Ga64_to_p_Zn64_reaclib)*Y(Ga64)*state.rho - screened_rates(k_n_Ge63_to_Ge64_reaclib)*Y(Ge63)*state.rho - screened_rates(k_n_Ge63_to_He4_Zn60_reaclib)*Y(Ge63)*state.rho - screened_rates(k_n_Ge63_to_p_Ga63_reaclib)*Y(Ge63)*state.rho - screened_rates(k_n_Ge64_to_He4_Zn61_reaclib)*Y(Ge64)*state.rho - screened_rates(k_n_Ge64_to_p_Ga64_reaclib)*Y(Ge64)*state.rho - screened_rates(k_n_He3_to_He4_reaclib)*Y(He3)*state.rho - screened_rates(k_n_He3_to_d_d_reaclib)*Y(He3)*state.rho - 0.5*screened_rates(k_n_He4_He4_to_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - 0.5*screened_rates(k_n_He4_He4_to_d_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - screened_rates(k_n_K37_to_He4_Cl34_reaclib)*Y(K37)*state.rho - screened_rates(k_n_K37_to_K38_reaclib)*Y(K37)*state.rho - screened_rates(k_n_K37_to_p_Ar37_reaclib)*Y(K37)*state.rho - screened_rates(k_n_K38_to_He4_Cl35_reaclib)*Y(K38)*state.rho - screened_rates(k_n_K38_to_K39_reaclib)*Y(K38)*state.rho - screened_rates(k_n_K38_to_p_Ar38_reaclib)*Y(K38)*state.rho - screened_rates(k_n_K39_to_He4_Cl36_reaclib)*Y(K39)*state.rho - screened_rates(k_n_K39_to_K40_reaclib)*Y(K39)*state.rho - screened_rates(k_n_K39_to_p_Ar39_reaclib)*Y(K39)*state.rho - screened_rates(k_n_K40_to_He4_Cl37_reaclib)*Y(K40)*state.rho - screened_rates(k_n_K40_to_K41_reaclib)*Y(K40)*state.rho - screened_rates(k_n_K40_to_p_Ar40_reaclib)*Y(K40)*state.rho - screened_rates(k_n_Li6_to_Li7_reaclib)*Y(Li6)*state.rho - screened_rates(k_n_Mg23_to_C12_C12_reaclib)*Y(Mg23)*state.rho - screened_rates(k_n_Mg23_to_He4_Ne20_reaclib)*Y(Mg23)*state.rho - screened_rates(k_n_Mg23_to_Mg24_reaclib)*Y(Mg23)*state.rho - screened_rates(k_n_Mg23_to_p_Na23_reaclib)*Y(Mg23)*state.rho - screened_rates(k_n_Mg24_to_He4_Ne21_reaclib)*Y(Mg24)*state.rho - screened_rates(k_n_Mg24_to_Mg25_reaclib)*Y(Mg24)*state.rho - screened_rates(k_n_Mg25_to_He4_Ne22_reaclib)*Y(Mg25)*state.rho - screened_rates(k_n_Mg25_to_Mg26_reaclib)*Y(Mg25)*state.rho - screened_rates(k_n_Mn50_to_He4_V47_reaclib)*Y(Mn50)*state.rho - screened_rates(k_n_Mn50_to_Mn51_reaclib)*Y(Mn50)*state.rho - screened_rates(k_n_Mn50_to_p_Cr50_reaclib)*Y(Mn50)*state.rho - screened_rates(k_n_Mn51_to_He4_V48_reaclib)*Y(Mn51)*state.rho - screened_rates(k_n_Mn51_to_Mn52_reaclib)*Y(Mn51)*state.rho - screened_rates(k_n_Mn51_to_p_Cr51_reaclib)*Y(Mn51)*state.rho - screened_rates(k_n_Mn52_to_He4_V49_reaclib)*Y(Mn52)*state.rho - screened_rates(k_n_Mn52_to_Mn53_reaclib)*Y(Mn52)*state.rho - screened_rates(k_n_Mn52_to_p_Cr52_reaclib)*Y(Mn52)*state.rho - screened_rates(k_n_Mn53_to_He4_V50_reaclib)*Y(Mn53)*state.rho - screened_rates(k_n_Mn53_to_Mn54_reaclib)*Y(Mn53)*state.rho - screened_rates(k_n_Mn53_to_p_Cr53_reaclib)*Y(Mn53)*state.rho - screened_rates(k_n_Mn54_to_He4_V51_reaclib)*Y(Mn54)*state.rho - screened_rates(k_n_Mn54_to_Mn55_reaclib)*Y(Mn54)*state.rho - screened_rates(k_n_Mn54_to_p_Cr54_reaclib)*Y(Mn54)*state.rho - screened_rates(k_n_Mn55_to_He4_V52_reaclib)*Y(Mn55)*state.rho - screened_rates(k_n_N13_to_He4_B10_reaclib)*Y(N13)*state.rho - screened_rates(k_n_N13_to_N14_reaclib)*Y(N13)*state.rho - screened_rates(k_n_N13_to_p_C13_reaclib)*Y(N13)*state.rho - screened_rates(k_n_N14_to_He4_B11_reaclib)*Y(N14)*state.rho - screened_rates(k_n_N14_to_N15_reaclib)*Y(N14)*state.rho - screened_rates(k_n_N14_to_d_C13_reaclib)*Y(N14)*state.rho - screened_rates(k_n_N14_to_p_C14_reaclib)*Y(N14)*state.rho - screened_rates(k_n_N15_to_d_C14_reaclib)*Y(N15)*state.rho - screened_rates(k_n_Na21_to_He4_F18_reaclib)*Y(Na21)*state.rho - screened_rates(k_n_Na21_to_Na22_reaclib)*Y(Na21)*state.rho - screened_rates(k_n_Na21_to_p_Ne21_reaclib)*Y(Na21)*state.rho - screened_rates(k_n_Na22_to_He4_F19_reaclib)*Y(Na22)*state.rho - screened_rates(k_n_Na22_to_Na23_reaclib)*Y(Na22)*state.rho - screened_rates(k_n_Na22_to_p_Ne22_reaclib)*Y(Na22)*state.rho - screened_rates(k_n_Ne18_to_He4_O15_reaclib)*Y(Ne18)*state.rho - screened_rates(k_n_Ne18_to_Ne19_reaclib)*Y(Ne18)*state.rho - screened_rates(k_n_Ne18_to_p_F18_reaclib)*Y(Ne18)*state.rho - screened_rates(k_n_Ne19_to_He4_O16_reaclib)*Y(Ne19)*state.rho - screened_rates(k_n_Ne19_to_Ne20_reaclib)*Y(Ne19)*state.rho - screened_rates(k_n_Ne19_to_p_F19_reaclib)*Y(Ne19)*state.rho - screened_rates(k_n_Ne20_to_He4_O17_reaclib)*Y(Ne20)*state.rho - screened_rates(k_n_Ne20_to_Ne21_reaclib)*Y(Ne20)*state.rho - screened_rates(k_n_Ne21_to_He4_O18_reaclib)*Y(Ne21)*state.rho - screened_rates(k_n_Ne21_to_Ne22_reaclib)*Y(Ne21)*state.rho - screened_rates(k_n_Ni56_to_He4_Fe53_reaclib)*Y(Ni56)*state.rho - screened_rates(k_n_Ni56_to_Ni57_reaclib)*Y(Ni56)*state.rho - screened_rates(k_n_Ni56_to_p_Co56_reaclib)*Y(Ni56)*state.rho - screened_rates(k_n_Ni57_to_He4_Fe54_reaclib)*Y(Ni57)*state.rho - screened_rates(k_n_Ni57_to_Ni58_reaclib)*Y(Ni57)*state.rho - screened_rates(k_n_Ni57_to_p_Co57_reaclib)*Y(Ni57)*state.rho - screened_rates(k_n_Ni58_to_He4_Fe55_reaclib)*Y(Ni58)*state.rho - screened_rates(k_n_Ni58_to_Ni59_reaclib)*Y(Ni58)*state.rho - screened_rates(k_n_Ni58_to_p_Co58_reaclib)*Y(Ni58)*state.rho - screened_rates(k_n_Ni59_to_He4_Fe56_reaclib)*Y(Ni59)*state.rho - screened_rates(k_n_Ni59_to_Ni60_reaclib)*Y(Ni59)*state.rho - screened_rates(k_n_Ni59_to_p_Co59_reaclib)*Y(Ni59)*state.rho - screened_rates(k_n_Ni60_to_He4_Fe57_reaclib)*Y(Ni60)*state.rho - screened_rates(k_n_Ni60_to_Ni61_reaclib)*Y(Ni60)*state.rho - screened_rates(k_n_Ni61_to_He4_Fe58_reaclib)*Y(Ni61)*state.rho - screened_rates(k_n_Ni61_to_Ni62_reaclib)*Y(Ni61)*state.rho - screened_rates(k_n_Ni62_to_Ni63_reaclib)*Y(Ni62)*state.rho - screened_rates(k_n_Ni63_to_Ni64_reaclib)*Y(Ni63)*state.rho - screened_rates(k_n_O14_to_O15_reaclib)*Y(O14)*state.rho - screened_rates(k_n_O14_to_p_N14_reaclib)*Y(O14)*state.rho - screened_rates(k_n_O15_to_He4_C12_reaclib)*Y(O15)*state.rho - screened_rates(k_n_O15_to_O16_reaclib)*Y(O15)*state.rho - screened_rates(k_n_O15_to_p_N15_reaclib)*Y(O15)*state.rho - screened_rates(k_n_O16_to_He4_C13_reaclib)*Y(O16)*state.rho - screened_rates(k_n_O16_to_O17_reaclib)*Y(O16)*state.rho - screened_rates(k_n_O17_to_He4_C14_reaclib)*Y(O17)*state.rho - screened_rates(k_n_O17_to_O18_reaclib)*Y(O17)*state.rho - screened_rates(k_n_P29_to_He4_Al26_reaclib)*Y(P29)*state.rho - screened_rates(k_n_P29_to_P30_reaclib)*Y(P29)*state.rho - screened_rates(k_n_P29_to_p_Si29_reaclib)*Y(P29)*state.rho - screened_rates(k_n_P30_to_He4_Al27_reaclib)*Y(P30)*state.rho - screened_rates(k_n_P30_to_P31_reaclib)*Y(P30)*state.rho - screened_rates(k_n_P30_to_p_Si30_reaclib)*Y(P30)*state.rho - screened_rates(k_n_P31_to_P32_reaclib)*Y(P31)*state.rho - screened_rates(k_n_P31_to_p_Si31_reaclib)*Y(P31)*state.rho - screened_rates(k_n_P32_to_P33_reaclib)*Y(P32)*state.rho - screened_rates(k_n_P32_to_p_Si32_reaclib)*Y(P32)*state.rho - screened_rates(k_n_S32_to_He4_Si29_reaclib)*Y(S32)*state.rho - screened_rates(k_n_S32_to_S33_reaclib)*Y(S32)*state.rho - screened_rates(k_n_S32_to_p_P32_reaclib)*Y(S32)*state.rho - screened_rates(k_n_S33_to_He4_Si30_reaclib)*Y(S33)*state.rho - screened_rates(k_n_S33_to_S34_reaclib)*Y(S33)*state.rho - screened_rates(k_n_S33_to_p_P33_reaclib)*Y(S33)*state.rho - screened_rates(k_n_S34_to_He4_Si31_reaclib)*Y(S34)*state.rho - screened_rates(k_n_S34_to_S35_reaclib)*Y(S34)*state.rho - screened_rates(k_n_S35_to_He4_Si32_reaclib)*Y(S35)*state.rho - screened_rates(k_n_S35_to_S36_reaclib)*Y(S35)*state.rho - screened_rates(k_n_Sc43_to_He4_K40_reaclib)*Y(Sc43)*state.rho - screened_rates(k_n_Sc43_to_Sc44_reaclib)*Y(Sc43)*state.rho - screened_rates(k_n_Sc43_to_p_Ca43_reaclib)*Y(Sc43)*state.rho - screened_rates(k_n_Sc44_to_He4_K41_reaclib)*Y(Sc44)*state.rho - screened_rates(k_n_Sc44_to_Sc45_reaclib)*Y(Sc44)*state.rho - screened_rates(k_n_Sc44_to_p_Ca44_reaclib)*Y(Sc44)*state.rho - screened_rates(k_n_Sc45_to_Sc46_reaclib)*Y(Sc45)*state.rho - screened_rates(k_n_Sc45_to_p_Ca45_reaclib)*Y(Sc45)*state.rho - screened_rates(k_n_Sc46_to_Sc47_reaclib)*Y(Sc46)*state.rho - screened_rates(k_n_Sc46_to_p_Ca46_reaclib)*Y(Sc46)*state.rho - screened_rates(k_n_Sc47_to_Sc48_reaclib)*Y(Sc47)*state.rho - screened_rates(k_n_Sc47_to_p_Ca47_reaclib)*Y(Sc47)*state.rho - screened_rates(k_n_Sc48_to_Sc49_reaclib)*Y(Sc48)*state.rho - screened_rates(k_n_Sc48_to_p_Ca48_reaclib)*Y(Sc48)*state.rho - screened_rates(k_n_Si28_to_He4_Mg25_reaclib)*Y(Si28)*state.rho - screened_rates(k_n_Si28_to_Si29_reaclib)*Y(Si28)*state.rho - screened_rates(k_n_Si29_to_He4_Mg26_reaclib)*Y(Si29)*state.rho - screened_rates(k_n_Si29_to_Si30_reaclib)*Y(Si29)*state.rho - screened_rates(k_n_Si30_to_Si31_reaclib)*Y(Si30)*state.rho - screened_rates(k_n_Si31_to_Si32_reaclib)*Y(Si31)*state.rho - screened_rates(k_n_Ti44_to_He4_Ca41_reaclib)*Y(Ti44)*state.rho - screened_rates(k_n_Ti44_to_Ti45_reaclib)*Y(Ti44)*state.rho - screened_rates(k_n_Ti44_to_p_Sc44_reaclib)*Y(Ti44)*state.rho - screened_rates(k_n_Ti45_to_He4_Ca42_reaclib)*Y(Ti45)*state.rho - screened_rates(k_n_Ti45_to_Ti46_reaclib)*Y(Ti45)*state.rho - screened_rates(k_n_Ti45_to_p_Sc45_reaclib)*Y(Ti45)*state.rho - screened_rates(k_n_Ti46_to_He4_Ca43_reaclib)*Y(Ti46)*state.rho - screened_rates(k_n_Ti46_to_Ti47_reaclib)*Y(Ti46)*state.rho - screened_rates(k_n_Ti46_to_p_Sc46_reaclib)*Y(Ti46)*state.rho - screened_rates(k_n_Ti47_to_He4_Ca44_reaclib)*Y(Ti47)*state.rho - screened_rates(k_n_Ti47_to_Ti48_reaclib)*Y(Ti47)*state.rho - screened_rates(k_n_Ti47_to_p_Sc47_reaclib)*Y(Ti47)*state.rho - screened_rates(k_n_Ti48_to_He4_Ca45_reaclib)*Y(Ti48)*state.rho - screened_rates(k_n_Ti48_to_Ti49_reaclib)*Y(Ti48)*state.rho - screened_rates(k_n_Ti48_to_p_Sc48_reaclib)*Y(Ti48)*state.rho - screened_rates(k_n_Ti49_to_He4_Ca46_reaclib)*Y(Ti49)*state.rho - screened_rates(k_n_Ti49_to_Ti50_reaclib)*Y(Ti49)*state.rho - screened_rates(k_n_Ti49_to_p_Sc49_reaclib)*Y(Ti49)*state.rho - screened_rates(k_n_Ti50_to_He4_Ca47_reaclib)*Y(Ti50)*state.rho - screened_rates(k_n_Ti50_to_Ti51_reaclib)*Y(Ti50)*state.rho - screened_rates(k_n_Ti51_to_He4_Ca48_reaclib)*Y(Ti51)*state.rho - screened_rates(k_n_V46_to_He4_Sc43_reaclib)*Y(V46)*state.rho - screened_rates(k_n_V46_to_V47_reaclib)*Y(V46)*state.rho - screened_rates(k_n_V46_to_p_Ti46_reaclib)*Y(V46)*state.rho - screened_rates(k_n_V47_to_He4_Sc44_reaclib)*Y(V47)*state.rho - screened_rates(k_n_V47_to_V48_reaclib)*Y(V47)*state.rho - screened_rates(k_n_V47_to_p_Ti47_reaclib)*Y(V47)*state.rho - screened_rates(k_n_V48_to_He4_Sc45_reaclib)*Y(V48)*state.rho - screened_rates(k_n_V48_to_V49_reaclib)*Y(V48)*state.rho - screened_rates(k_n_V48_to_p_Ti48_reaclib)*Y(V48)*state.rho - screened_rates(k_n_V49_to_He4_Sc46_reaclib)*Y(V49)*state.rho - screened_rates(k_n_V49_to_V50_reaclib)*Y(V49)*state.rho - screened_rates(k_n_V49_to_p_Ti49_reaclib)*Y(V49)*state.rho - screened_rates(k_n_V50_to_He4_Sc47_reaclib)*Y(V50)*state.rho - screened_rates(k_n_V50_to_V51_reaclib)*Y(V50)*state.rho - screened_rates(k_n_V50_to_p_Ti50_reaclib)*Y(V50)*state.rho - screened_rates(k_n_V51_to_He4_Sc48_reaclib)*Y(V51)*state.rho - screened_rates(k_n_V51_to_V52_reaclib)*Y(V51)*state.rho - screened_rates(k_n_V51_to_p_Ti51_reaclib)*Y(V51)*state.rho - screened_rates(k_n_V52_to_He4_Sc49_reaclib)*Y(V52)*state.rho - screened_rates(k_n_Zn59_to_He4_Ni56_reaclib)*Y(Zn59)*state.rho - screened_rates(k_n_Zn59_to_Zn60_reaclib)*Y(Zn59)*state.rho - screened_rates(k_n_Zn59_to_p_Cu59_reaclib)*Y(Zn59)*state.rho - screened_rates(k_n_Zn60_to_He4_Ni57_reaclib)*Y(Zn60)*state.rho - screened_rates(k_n_Zn60_to_Zn61_reaclib)*Y(Zn60)*state.rho - screened_rates(k_n_Zn60_to_p_Cu60_reaclib)*Y(Zn60)*state.rho - screened_rates(k_n_Zn61_to_He4_Ni58_reaclib)*Y(Zn61)*state.rho - screened_rates(k_n_Zn61_to_Zn62_reaclib)*Y(Zn61)*state.rho - screened_rates(k_n_Zn61_to_p_Cu61_reaclib)*Y(Zn61)*state.rho - screened_rates(k_n_Zn62_to_He4_Ni59_reaclib)*Y(Zn62)*state.rho - screened_rates(k_n_Zn62_to_Zn63_reaclib)*Y(Zn62)*state.rho - screened_rates(k_n_Zn62_to_p_Cu62_reaclib)*Y(Zn62)*state.rho - screened_rates(k_n_Zn63_to_He4_Ni60_reaclib)*Y(Zn63)*state.rho - screened_rates(k_n_Zn63_to_Zn64_reaclib)*Y(Zn63)*state.rho - screened_rates(k_n_Zn63_to_p_Cu63_reaclib)*Y(Zn63)*state.rho - screened_rates(k_n_Zn64_to_He4_Ni61_reaclib)*Y(Zn64)*state.rho - screened_rates(k_n_Zn64_to_Zn65_reaclib)*Y(Zn64)*state.rho - screened_rates(k_n_Zn64_to_p_Cu64_reaclib)*Y(Zn64)*state.rho - screened_rates(k_n_Zn65_to_He4_Ni62_reaclib)*Y(Zn65)*state.rho - screened_rates(k_n_Zn65_to_Zn66_reaclib)*Y(Zn65)*state.rho - screened_rates(k_n_Zn65_to_p_Cu65_reaclib)*Y(Zn65)*state.rho - screened_rates(k_n_Zn66_to_He4_Ni63_reaclib)*Y(Zn66)*state.rho - 0.5*screened_rates(k_n_p_He4_He4_to_He3_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<3>(state.rho) - 0.5*screened_rates(k_n_p_He4_He4_to_p_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<3>(state.rho) - screened_rates(k_n_p_He4_to_Li6_reaclib)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho) - 0.5*screened_rates(k_n_p_p_to_p_d_reaclib)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho) - screened_rates(k_n_p_to_d_reaclib)*Y(H1)*state.rho - screened_rates(k_n_to_p_weaktab); + scratch = -screened_rates(k_Al25_n_to_Al26_reaclib)*Y(Al25)*state.rho - screened_rates(k_Al25_n_to_He4_Na22_reaclib)*Y(Al25)*state.rho - screened_rates(k_Al25_n_to_p_Mg25_reaclib)*Y(Al25)*state.rho - screened_rates(k_Al26_n_to_Al27_reaclib)*Y(Al26)*state.rho - screened_rates(k_Al26_n_to_He4_Na23_reaclib)*Y(Al26)*state.rho - screened_rates(k_Al26_n_to_p_Mg26_reaclib)*Y(Al26)*state.rho - screened_rates(k_Ar36_n_to_Ar37_reaclib)*Y(Ar36)*state.rho - screened_rates(k_Ar36_n_to_He4_S33_reaclib)*Y(Ar36)*state.rho - screened_rates(k_Ar36_n_to_p_Cl36_reaclib)*Y(Ar36)*state.rho - screened_rates(k_Ar37_n_to_Ar38_reaclib)*Y(Ar37)*state.rho - screened_rates(k_Ar37_n_to_He4_S34_derived)*Y(Ar37)*state.rho - screened_rates(k_Ar37_n_to_p_Cl37_reaclib)*Y(Ar37)*state.rho - screened_rates(k_Ar38_n_to_Ar39_reaclib)*Y(Ar38)*state.rho - screened_rates(k_Ar38_n_to_He4_S35_derived)*Y(Ar38)*state.rho - screened_rates(k_Ar39_n_to_Ar40_reaclib)*Y(Ar39)*state.rho - screened_rates(k_Ar39_n_to_He4_S36_reaclib)*Y(Ar39)*state.rho - screened_rates(k_B10_n_to_B11_reaclib)*Y(B10)*state.rho - screened_rates(k_B10_n_to_He4_Li7_reaclib)*Y(B10)*state.rho - screened_rates(k_B8_n_to_p_He4_He4_reaclib)*Y(B8)*state.rho - screened_rates(k_Be7_n_to_He4_He4_reaclib)*Y(Be7)*state.rho - screened_rates(k_Be7_n_to_d_Li6_derived)*Y(Be7)*state.rho - screened_rates(k_Be7_n_to_p_Li7_reaclib)*Y(Be7)*state.rho - screened_rates(k_C12_n_to_C13_reaclib)*Y(C12)*state.rho - screened_rates(k_C12_n_to_He4_Be9_derived)*Y(C12)*state.rho - screened_rates(k_C13_n_to_C14_reaclib)*Y(C13)*state.rho - screened_rates(k_Ca40_n_to_Ca41_reaclib)*Y(Ca40)*state.rho - screened_rates(k_Ca40_n_to_He4_Ar37_reaclib)*Y(Ca40)*state.rho - screened_rates(k_Ca40_n_to_p_K40_derived)*Y(Ca40)*state.rho - screened_rates(k_Ca41_n_to_Ca42_reaclib)*Y(Ca41)*state.rho - screened_rates(k_Ca41_n_to_He4_Ar38_reaclib)*Y(Ca41)*state.rho - screened_rates(k_Ca41_n_to_p_K41_derived)*Y(Ca41)*state.rho - screened_rates(k_Ca42_n_to_Ca43_reaclib)*Y(Ca42)*state.rho - screened_rates(k_Ca42_n_to_He4_Ar39_reaclib)*Y(Ca42)*state.rho - screened_rates(k_Ca43_n_to_Ca44_reaclib)*Y(Ca43)*state.rho - screened_rates(k_Ca43_n_to_He4_Ar40_reaclib)*Y(Ca43)*state.rho - screened_rates(k_Ca44_n_to_Ca45_reaclib)*Y(Ca44)*state.rho - screened_rates(k_Ca45_n_to_Ca46_reaclib)*Y(Ca45)*state.rho - screened_rates(k_Ca46_n_to_Ca47_reaclib)*Y(Ca46)*state.rho - screened_rates(k_Ca47_n_to_Ca48_reaclib)*Y(Ca47)*state.rho - screened_rates(k_Cl33_n_to_Cl34_reaclib)*Y(Cl33)*state.rho - screened_rates(k_Cl33_n_to_He4_P30_reaclib)*Y(Cl33)*state.rho - screened_rates(k_Cl33_n_to_p_S33_reaclib)*Y(Cl33)*state.rho - screened_rates(k_Cl34_n_to_Cl35_reaclib)*Y(Cl34)*state.rho - screened_rates(k_Cl34_n_to_He4_P31_reaclib)*Y(Cl34)*state.rho - screened_rates(k_Cl34_n_to_p_S34_reaclib)*Y(Cl34)*state.rho - screened_rates(k_Cl35_n_to_Cl36_reaclib)*Y(Cl35)*state.rho - screened_rates(k_Cl35_n_to_He4_P32_reaclib)*Y(Cl35)*state.rho - screened_rates(k_Cl35_n_to_p_S35_reaclib)*Y(Cl35)*state.rho - screened_rates(k_Cl36_n_to_Cl37_reaclib)*Y(Cl36)*state.rho - screened_rates(k_Cl36_n_to_He4_P33_reaclib)*Y(Cl36)*state.rho - screened_rates(k_Cl36_n_to_p_S36_reaclib)*Y(Cl36)*state.rho - screened_rates(k_Co53_n_to_Co54_reaclib)*Y(Co53)*state.rho - screened_rates(k_Co53_n_to_He4_Mn50_reaclib)*Y(Co53)*state.rho - screened_rates(k_Co53_n_to_p_Fe53_reaclib)*Y(Co53)*state.rho - screened_rates(k_Co54_n_to_Co55_reaclib)*Y(Co54)*state.rho - screened_rates(k_Co54_n_to_He4_Mn51_reaclib)*Y(Co54)*state.rho - screened_rates(k_Co54_n_to_p_Fe54_reaclib)*Y(Co54)*state.rho - screened_rates(k_Co55_n_to_Co56_reaclib)*Y(Co55)*state.rho - screened_rates(k_Co55_n_to_He4_Mn52_reaclib)*Y(Co55)*state.rho - screened_rates(k_Co55_n_to_p_Fe55_reaclib)*Y(Co55)*state.rho - screened_rates(k_Co56_n_to_Co57_reaclib)*Y(Co56)*state.rho - screened_rates(k_Co56_n_to_He4_Mn53_reaclib)*Y(Co56)*state.rho - screened_rates(k_Co56_n_to_p_Fe56_reaclib)*Y(Co56)*state.rho - screened_rates(k_Co57_n_to_Co58_reaclib)*Y(Co57)*state.rho - screened_rates(k_Co57_n_to_He4_Mn54_reaclib)*Y(Co57)*state.rho - screened_rates(k_Co57_n_to_p_Fe57_reaclib)*Y(Co57)*state.rho - screened_rates(k_Co58_n_to_Co59_reaclib)*Y(Co58)*state.rho - screened_rates(k_Co58_n_to_He4_Mn55_reaclib)*Y(Co58)*state.rho - screened_rates(k_Co58_n_to_p_Fe58_reaclib)*Y(Co58)*state.rho - screened_rates(k_Cr48_n_to_Cr49_reaclib)*Y(Cr48)*state.rho - screened_rates(k_Cr48_n_to_He4_Ti45_reaclib)*Y(Cr48)*state.rho - screened_rates(k_Cr48_n_to_p_V48_reaclib)*Y(Cr48)*state.rho - screened_rates(k_Cr49_n_to_Cr50_reaclib)*Y(Cr49)*state.rho - screened_rates(k_Cr49_n_to_He4_Ti46_reaclib)*Y(Cr49)*state.rho - screened_rates(k_Cr49_n_to_p_V49_reaclib)*Y(Cr49)*state.rho - screened_rates(k_Cr50_n_to_Cr51_reaclib)*Y(Cr50)*state.rho - screened_rates(k_Cr50_n_to_He4_Ti47_reaclib)*Y(Cr50)*state.rho - screened_rates(k_Cr50_n_to_p_V50_derived)*Y(Cr50)*state.rho - screened_rates(k_Cr51_n_to_Cr52_reaclib)*Y(Cr51)*state.rho - screened_rates(k_Cr51_n_to_He4_Ti48_reaclib)*Y(Cr51)*state.rho - screened_rates(k_Cr51_n_to_p_V51_reaclib)*Y(Cr51)*state.rho - screened_rates(k_Cr52_n_to_Cr53_reaclib)*Y(Cr52)*state.rho - screened_rates(k_Cr52_n_to_He4_Ti49_derived)*Y(Cr52)*state.rho - screened_rates(k_Cr52_n_to_p_V52_derived)*Y(Cr52)*state.rho - screened_rates(k_Cr53_n_to_Cr54_reaclib)*Y(Cr53)*state.rho - screened_rates(k_Cr53_n_to_He4_Ti50_reaclib)*Y(Cr53)*state.rho - screened_rates(k_Cr54_n_to_He4_Ti51_derived)*Y(Cr54)*state.rho - screened_rates(k_Cu57_n_to_Cu58_reaclib)*Y(Cu57)*state.rho - screened_rates(k_Cu57_n_to_He4_Co54_reaclib)*Y(Cu57)*state.rho - screened_rates(k_Cu57_n_to_p_Ni57_reaclib)*Y(Cu57)*state.rho - screened_rates(k_Cu58_n_to_Cu59_reaclib)*Y(Cu58)*state.rho - screened_rates(k_Cu58_n_to_He4_Co55_reaclib)*Y(Cu58)*state.rho - screened_rates(k_Cu58_n_to_p_Ni58_reaclib)*Y(Cu58)*state.rho - screened_rates(k_Cu59_n_to_Cu60_reaclib)*Y(Cu59)*state.rho - screened_rates(k_Cu59_n_to_He4_Co56_reaclib)*Y(Cu59)*state.rho - screened_rates(k_Cu59_n_to_p_Ni59_reaclib)*Y(Cu59)*state.rho - screened_rates(k_Cu60_n_to_Cu61_reaclib)*Y(Cu60)*state.rho - screened_rates(k_Cu60_n_to_He4_Co57_reaclib)*Y(Cu60)*state.rho - screened_rates(k_Cu60_n_to_p_Ni60_reaclib)*Y(Cu60)*state.rho - screened_rates(k_Cu61_n_to_Cu62_reaclib)*Y(Cu61)*state.rho - screened_rates(k_Cu61_n_to_He4_Co58_reaclib)*Y(Cu61)*state.rho - screened_rates(k_Cu61_n_to_p_Ni61_reaclib)*Y(Cu61)*state.rho - screened_rates(k_Cu62_n_to_Cu63_reaclib)*Y(Cu62)*state.rho - screened_rates(k_Cu62_n_to_He4_Co59_reaclib)*Y(Cu62)*state.rho - screened_rates(k_Cu62_n_to_p_Ni62_reaclib)*Y(Cu62)*state.rho - screened_rates(k_Cu63_n_to_Cu64_reaclib)*Y(Cu63)*state.rho - screened_rates(k_Cu63_n_to_p_Ni63_reaclib)*Y(Cu63)*state.rho - screened_rates(k_Cu64_n_to_Cu65_reaclib)*Y(Cu64)*state.rho - screened_rates(k_Cu64_n_to_p_Ni64_reaclib)*Y(Cu64)*state.rho - screened_rates(k_F17_n_to_F18_reaclib)*Y(F17)*state.rho - screened_rates(k_F17_n_to_He4_N14_derived)*Y(F17)*state.rho - screened_rates(k_F17_n_to_p_O17_reaclib)*Y(F17)*state.rho - screened_rates(k_F18_n_to_F19_reaclib)*Y(F18)*state.rho - screened_rates(k_F18_n_to_He4_N15_reaclib)*Y(F18)*state.rho - screened_rates(k_F18_n_to_p_O18_reaclib)*Y(F18)*state.rho - screened_rates(k_Fe52_n_to_Fe53_reaclib)*Y(Fe52)*state.rho - screened_rates(k_Fe52_n_to_He4_Cr49_reaclib)*Y(Fe52)*state.rho - screened_rates(k_Fe52_n_to_p_Mn52_reaclib)*Y(Fe52)*state.rho - screened_rates(k_Fe53_n_to_Fe54_reaclib)*Y(Fe53)*state.rho - screened_rates(k_Fe53_n_to_He4_Cr50_reaclib)*Y(Fe53)*state.rho - screened_rates(k_Fe53_n_to_p_Mn53_reaclib)*Y(Fe53)*state.rho - screened_rates(k_Fe54_n_to_Fe55_reaclib)*Y(Fe54)*state.rho - screened_rates(k_Fe54_n_to_He4_Cr51_reaclib)*Y(Fe54)*state.rho - screened_rates(k_Fe54_n_to_p_Mn54_reaclib)*Y(Fe54)*state.rho - screened_rates(k_Fe55_n_to_Fe56_reaclib)*Y(Fe55)*state.rho - screened_rates(k_Fe55_n_to_He4_Cr52_reaclib)*Y(Fe55)*state.rho - screened_rates(k_Fe55_n_to_p_Mn55_reaclib)*Y(Fe55)*state.rho - screened_rates(k_Fe56_n_to_Fe57_reaclib)*Y(Fe56)*state.rho - screened_rates(k_Fe56_n_to_He4_Cr53_reaclib)*Y(Fe56)*state.rho - screened_rates(k_Fe57_n_to_Fe58_reaclib)*Y(Fe57)*state.rho - screened_rates(k_Fe57_n_to_He4_Cr54_reaclib)*Y(Fe57)*state.rho - screened_rates(k_Ga62_n_to_Ga63_reaclib)*Y(Ga62)*state.rho - screened_rates(k_Ga62_n_to_He4_Cu59_reaclib)*Y(Ga62)*state.rho - screened_rates(k_Ga62_n_to_p_Zn62_reaclib)*Y(Ga62)*state.rho - screened_rates(k_Ga63_n_to_Ga64_reaclib)*Y(Ga63)*state.rho - screened_rates(k_Ga63_n_to_He4_Cu60_reaclib)*Y(Ga63)*state.rho - screened_rates(k_Ga63_n_to_p_Zn63_reaclib)*Y(Ga63)*state.rho - screened_rates(k_Ga64_n_to_He4_Cu61_reaclib)*Y(Ga64)*state.rho - screened_rates(k_Ga64_n_to_p_Zn64_reaclib)*Y(Ga64)*state.rho - screened_rates(k_Ge63_n_to_Ge64_reaclib)*Y(Ge63)*state.rho - screened_rates(k_Ge63_n_to_He4_Zn60_reaclib)*Y(Ge63)*state.rho - screened_rates(k_Ge63_n_to_p_Ga63_reaclib)*Y(Ge63)*state.rho - screened_rates(k_Ge64_n_to_He4_Zn61_reaclib)*Y(Ge64)*state.rho - screened_rates(k_Ge64_n_to_p_Ga64_reaclib)*Y(Ge64)*state.rho - screened_rates(k_He3_n_to_He4_reaclib)*Y(He3)*state.rho - screened_rates(k_He3_n_to_d_d_derived)*Y(He3)*state.rho - 0.5*screened_rates(k_He4_He4_n_to_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - 0.5*screened_rates(k_He4_He4_n_to_d_Li7_derived)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - 0.5*screened_rates(k_He4_He4_p_n_to_He3_Li7_derived)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<3>(state.rho) - 0.5*screened_rates(k_He4_He4_p_n_to_p_Be9_derived)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<3>(state.rho) - screened_rates(k_He4_p_n_to_Li6_reaclib)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho) - screened_rates(k_K37_n_to_He4_Cl34_reaclib)*Y(K37)*state.rho - screened_rates(k_K37_n_to_K38_reaclib)*Y(K37)*state.rho - screened_rates(k_K37_n_to_p_Ar37_reaclib)*Y(K37)*state.rho - screened_rates(k_K38_n_to_He4_Cl35_reaclib)*Y(K38)*state.rho - screened_rates(k_K38_n_to_K39_reaclib)*Y(K38)*state.rho - screened_rates(k_K38_n_to_p_Ar38_reaclib)*Y(K38)*state.rho - screened_rates(k_K39_n_to_He4_Cl36_reaclib)*Y(K39)*state.rho - screened_rates(k_K39_n_to_K40_reaclib)*Y(K39)*state.rho - screened_rates(k_K39_n_to_p_Ar39_reaclib)*Y(K39)*state.rho - screened_rates(k_K40_n_to_He4_Cl37_reaclib)*Y(K40)*state.rho - screened_rates(k_K40_n_to_K41_reaclib)*Y(K40)*state.rho - screened_rates(k_K40_n_to_p_Ar40_reaclib)*Y(K40)*state.rho - screened_rates(k_Li6_n_to_Li7_reaclib)*Y(Li6)*state.rho - screened_rates(k_Mg23_n_to_C12_C12_reaclib)*Y(Mg23)*state.rho - screened_rates(k_Mg23_n_to_He4_Ne20_reaclib)*Y(Mg23)*state.rho - screened_rates(k_Mg23_n_to_Mg24_reaclib)*Y(Mg23)*state.rho - screened_rates(k_Mg23_n_to_p_Na23_derived)*Y(Mg23)*state.rho - screened_rates(k_Mg24_n_to_He4_Ne21_derived)*Y(Mg24)*state.rho - screened_rates(k_Mg24_n_to_Mg25_reaclib)*Y(Mg24)*state.rho - screened_rates(k_Mg25_n_to_He4_Ne22_derived)*Y(Mg25)*state.rho - screened_rates(k_Mg25_n_to_Mg26_reaclib)*Y(Mg25)*state.rho - screened_rates(k_Mn50_n_to_He4_V47_reaclib)*Y(Mn50)*state.rho - screened_rates(k_Mn50_n_to_Mn51_reaclib)*Y(Mn50)*state.rho - screened_rates(k_Mn50_n_to_p_Cr50_reaclib)*Y(Mn50)*state.rho - screened_rates(k_Mn51_n_to_He4_V48_reaclib)*Y(Mn51)*state.rho - screened_rates(k_Mn51_n_to_Mn52_reaclib)*Y(Mn51)*state.rho - screened_rates(k_Mn51_n_to_p_Cr51_reaclib)*Y(Mn51)*state.rho - screened_rates(k_Mn52_n_to_He4_V49_reaclib)*Y(Mn52)*state.rho - screened_rates(k_Mn52_n_to_Mn53_reaclib)*Y(Mn52)*state.rho - screened_rates(k_Mn52_n_to_p_Cr52_reaclib)*Y(Mn52)*state.rho - screened_rates(k_Mn53_n_to_He4_V50_reaclib)*Y(Mn53)*state.rho - screened_rates(k_Mn53_n_to_Mn54_reaclib)*Y(Mn53)*state.rho - screened_rates(k_Mn53_n_to_p_Cr53_reaclib)*Y(Mn53)*state.rho - screened_rates(k_Mn54_n_to_He4_V51_reaclib)*Y(Mn54)*state.rho - screened_rates(k_Mn54_n_to_Mn55_reaclib)*Y(Mn54)*state.rho - screened_rates(k_Mn54_n_to_p_Cr54_reaclib)*Y(Mn54)*state.rho - screened_rates(k_Mn55_n_to_He4_V52_derived)*Y(Mn55)*state.rho - screened_rates(k_N13_n_to_He4_B10_derived)*Y(N13)*state.rho - screened_rates(k_N13_n_to_N14_reaclib)*Y(N13)*state.rho - screened_rates(k_N13_n_to_p_C13_derived)*Y(N13)*state.rho - screened_rates(k_N14_n_to_He4_B11_derived)*Y(N14)*state.rho - screened_rates(k_N14_n_to_N15_reaclib)*Y(N14)*state.rho - screened_rates(k_N14_n_to_d_C13_derived)*Y(N14)*state.rho - screened_rates(k_N14_n_to_p_C14_reaclib)*Y(N14)*state.rho - screened_rates(k_N15_n_to_d_C14_derived)*Y(N15)*state.rho - screened_rates(k_Na21_n_to_He4_F18_reaclib)*Y(Na21)*state.rho - screened_rates(k_Na21_n_to_Na22_reaclib)*Y(Na21)*state.rho - screened_rates(k_Na21_n_to_p_Ne21_reaclib)*Y(Na21)*state.rho - screened_rates(k_Na22_n_to_He4_F19_reaclib)*Y(Na22)*state.rho - screened_rates(k_Na22_n_to_Na23_reaclib)*Y(Na22)*state.rho - screened_rates(k_Na22_n_to_p_Ne22_reaclib)*Y(Na22)*state.rho - screened_rates(k_Ne18_n_to_He4_O15_reaclib)*Y(Ne18)*state.rho - screened_rates(k_Ne18_n_to_Ne19_reaclib)*Y(Ne18)*state.rho - screened_rates(k_Ne18_n_to_p_F18_reaclib)*Y(Ne18)*state.rho - screened_rates(k_Ne19_n_to_He4_O16_reaclib)*Y(Ne19)*state.rho - screened_rates(k_Ne19_n_to_Ne20_reaclib)*Y(Ne19)*state.rho - screened_rates(k_Ne19_n_to_p_F19_derived)*Y(Ne19)*state.rho - screened_rates(k_Ne20_n_to_He4_O17_derived)*Y(Ne20)*state.rho - screened_rates(k_Ne20_n_to_Ne21_reaclib)*Y(Ne20)*state.rho - screened_rates(k_Ne21_n_to_He4_O18_derived)*Y(Ne21)*state.rho - screened_rates(k_Ne21_n_to_Ne22_reaclib)*Y(Ne21)*state.rho - screened_rates(k_Ni56_n_to_He4_Fe53_reaclib)*Y(Ni56)*state.rho - screened_rates(k_Ni56_n_to_Ni57_reaclib)*Y(Ni56)*state.rho - screened_rates(k_Ni56_n_to_p_Co56_reaclib)*Y(Ni56)*state.rho - screened_rates(k_Ni57_n_to_He4_Fe54_reaclib)*Y(Ni57)*state.rho - screened_rates(k_Ni57_n_to_Ni58_reaclib)*Y(Ni57)*state.rho - screened_rates(k_Ni57_n_to_p_Co57_reaclib)*Y(Ni57)*state.rho - screened_rates(k_Ni58_n_to_He4_Fe55_reaclib)*Y(Ni58)*state.rho - screened_rates(k_Ni58_n_to_Ni59_reaclib)*Y(Ni58)*state.rho - screened_rates(k_Ni58_n_to_p_Co58_reaclib)*Y(Ni58)*state.rho - screened_rates(k_Ni59_n_to_He4_Fe56_reaclib)*Y(Ni59)*state.rho - screened_rates(k_Ni59_n_to_Ni60_reaclib)*Y(Ni59)*state.rho - screened_rates(k_Ni59_n_to_p_Co59_reaclib)*Y(Ni59)*state.rho - screened_rates(k_Ni60_n_to_He4_Fe57_reaclib)*Y(Ni60)*state.rho - screened_rates(k_Ni60_n_to_Ni61_reaclib)*Y(Ni60)*state.rho - screened_rates(k_Ni61_n_to_He4_Fe58_reaclib)*Y(Ni61)*state.rho - screened_rates(k_Ni61_n_to_Ni62_reaclib)*Y(Ni61)*state.rho - screened_rates(k_Ni62_n_to_Ni63_reaclib)*Y(Ni62)*state.rho - screened_rates(k_Ni63_n_to_Ni64_reaclib)*Y(Ni63)*state.rho - screened_rates(k_O14_n_to_O15_reaclib)*Y(O14)*state.rho - screened_rates(k_O14_n_to_p_N14_derived)*Y(O14)*state.rho - screened_rates(k_O15_n_to_He4_C12_reaclib)*Y(O15)*state.rho - screened_rates(k_O15_n_to_O16_reaclib)*Y(O15)*state.rho - screened_rates(k_O15_n_to_p_N15_derived)*Y(O15)*state.rho - screened_rates(k_O16_n_to_He4_C13_derived)*Y(O16)*state.rho - screened_rates(k_O16_n_to_O17_reaclib)*Y(O16)*state.rho - screened_rates(k_O17_n_to_He4_C14_reaclib)*Y(O17)*state.rho - screened_rates(k_O17_n_to_O18_reaclib)*Y(O17)*state.rho - screened_rates(k_P29_n_to_He4_Al26_reaclib)*Y(P29)*state.rho - screened_rates(k_P29_n_to_P30_reaclib)*Y(P29)*state.rho - screened_rates(k_P29_n_to_p_Si29_reaclib)*Y(P29)*state.rho - screened_rates(k_P30_n_to_He4_Al27_derived)*Y(P30)*state.rho - screened_rates(k_P30_n_to_P31_reaclib)*Y(P30)*state.rho - screened_rates(k_P30_n_to_p_Si30_reaclib)*Y(P30)*state.rho - screened_rates(k_P31_n_to_P32_reaclib)*Y(P31)*state.rho - screened_rates(k_P31_n_to_p_Si31_derived)*Y(P31)*state.rho - screened_rates(k_P32_n_to_P33_reaclib)*Y(P32)*state.rho - screened_rates(k_P32_n_to_p_Si32_reaclib)*Y(P32)*state.rho - screened_rates(k_S32_n_to_He4_Si29_reaclib)*Y(S32)*state.rho - screened_rates(k_S32_n_to_S33_reaclib)*Y(S32)*state.rho - screened_rates(k_S32_n_to_p_P32_derived)*Y(S32)*state.rho - screened_rates(k_S33_n_to_He4_Si30_reaclib)*Y(S33)*state.rho - screened_rates(k_S33_n_to_S34_reaclib)*Y(S33)*state.rho - screened_rates(k_S33_n_to_p_P33_reaclib)*Y(S33)*state.rho - screened_rates(k_S34_n_to_He4_Si31_derived)*Y(S34)*state.rho - screened_rates(k_S34_n_to_S35_reaclib)*Y(S34)*state.rho - screened_rates(k_S35_n_to_He4_Si32_reaclib)*Y(S35)*state.rho - screened_rates(k_S35_n_to_S36_reaclib)*Y(S35)*state.rho - screened_rates(k_Sc43_n_to_He4_K40_reaclib)*Y(Sc43)*state.rho - screened_rates(k_Sc43_n_to_Sc44_reaclib)*Y(Sc43)*state.rho - screened_rates(k_Sc43_n_to_p_Ca43_reaclib)*Y(Sc43)*state.rho - screened_rates(k_Sc44_n_to_He4_K41_derived)*Y(Sc44)*state.rho - screened_rates(k_Sc44_n_to_Sc45_reaclib)*Y(Sc44)*state.rho - screened_rates(k_Sc44_n_to_p_Ca44_reaclib)*Y(Sc44)*state.rho - screened_rates(k_Sc45_n_to_Sc46_reaclib)*Y(Sc45)*state.rho - screened_rates(k_Sc45_n_to_p_Ca45_reaclib)*Y(Sc45)*state.rho - screened_rates(k_Sc46_n_to_Sc47_reaclib)*Y(Sc46)*state.rho - screened_rates(k_Sc46_n_to_p_Ca46_reaclib)*Y(Sc46)*state.rho - screened_rates(k_Sc47_n_to_Sc48_reaclib)*Y(Sc47)*state.rho - screened_rates(k_Sc47_n_to_p_Ca47_derived)*Y(Sc47)*state.rho - screened_rates(k_Sc48_n_to_Sc49_reaclib)*Y(Sc48)*state.rho - screened_rates(k_Sc48_n_to_p_Ca48_reaclib)*Y(Sc48)*state.rho - screened_rates(k_Si28_n_to_He4_Mg25_derived)*Y(Si28)*state.rho - screened_rates(k_Si28_n_to_Si29_reaclib)*Y(Si28)*state.rho - screened_rates(k_Si29_n_to_He4_Mg26_derived)*Y(Si29)*state.rho - screened_rates(k_Si29_n_to_Si30_reaclib)*Y(Si29)*state.rho - screened_rates(k_Si30_n_to_Si31_reaclib)*Y(Si30)*state.rho - screened_rates(k_Si31_n_to_Si32_reaclib)*Y(Si31)*state.rho - screened_rates(k_Ti44_n_to_He4_Ca41_reaclib)*Y(Ti44)*state.rho - screened_rates(k_Ti44_n_to_Ti45_reaclib)*Y(Ti44)*state.rho - screened_rates(k_Ti44_n_to_p_Sc44_reaclib)*Y(Ti44)*state.rho - screened_rates(k_Ti45_n_to_He4_Ca42_reaclib)*Y(Ti45)*state.rho - screened_rates(k_Ti45_n_to_Ti46_reaclib)*Y(Ti45)*state.rho - screened_rates(k_Ti45_n_to_p_Sc45_reaclib)*Y(Ti45)*state.rho - screened_rates(k_Ti46_n_to_He4_Ca43_derived)*Y(Ti46)*state.rho - screened_rates(k_Ti46_n_to_Ti47_reaclib)*Y(Ti46)*state.rho - screened_rates(k_Ti46_n_to_p_Sc46_derived)*Y(Ti46)*state.rho - screened_rates(k_Ti47_n_to_He4_Ca44_reaclib)*Y(Ti47)*state.rho - screened_rates(k_Ti47_n_to_Ti48_reaclib)*Y(Ti47)*state.rho - screened_rates(k_Ti47_n_to_p_Sc47_reaclib)*Y(Ti47)*state.rho - screened_rates(k_Ti48_n_to_He4_Ca45_derived)*Y(Ti48)*state.rho - screened_rates(k_Ti48_n_to_Ti49_reaclib)*Y(Ti48)*state.rho - screened_rates(k_Ti48_n_to_p_Sc48_derived)*Y(Ti48)*state.rho - screened_rates(k_Ti49_n_to_He4_Ca46_reaclib)*Y(Ti49)*state.rho - screened_rates(k_Ti49_n_to_Ti50_reaclib)*Y(Ti49)*state.rho - screened_rates(k_Ti49_n_to_p_Sc49_derived)*Y(Ti49)*state.rho - screened_rates(k_Ti50_n_to_He4_Ca47_derived)*Y(Ti50)*state.rho - screened_rates(k_Ti50_n_to_Ti51_reaclib)*Y(Ti50)*state.rho - screened_rates(k_Ti51_n_to_He4_Ca48_reaclib)*Y(Ti51)*state.rho - screened_rates(k_V46_n_to_He4_Sc43_reaclib)*Y(V46)*state.rho - screened_rates(k_V46_n_to_V47_reaclib)*Y(V46)*state.rho - screened_rates(k_V46_n_to_p_Ti46_reaclib)*Y(V46)*state.rho - screened_rates(k_V47_n_to_He4_Sc44_reaclib)*Y(V47)*state.rho - screened_rates(k_V47_n_to_V48_reaclib)*Y(V47)*state.rho - screened_rates(k_V47_n_to_p_Ti47_reaclib)*Y(V47)*state.rho - screened_rates(k_V48_n_to_He4_Sc45_reaclib)*Y(V48)*state.rho - screened_rates(k_V48_n_to_V49_reaclib)*Y(V48)*state.rho - screened_rates(k_V48_n_to_p_Ti48_reaclib)*Y(V48)*state.rho - screened_rates(k_V49_n_to_He4_Sc46_derived)*Y(V49)*state.rho - screened_rates(k_V49_n_to_V50_reaclib)*Y(V49)*state.rho - screened_rates(k_V49_n_to_p_Ti49_reaclib)*Y(V49)*state.rho - screened_rates(k_V50_n_to_He4_Sc47_reaclib)*Y(V50)*state.rho - screened_rates(k_V50_n_to_V51_reaclib)*Y(V50)*state.rho - screened_rates(k_V50_n_to_p_Ti50_reaclib)*Y(V50)*state.rho - screened_rates(k_V51_n_to_He4_Sc48_derived)*Y(V51)*state.rho - screened_rates(k_V51_n_to_V52_reaclib)*Y(V51)*state.rho - screened_rates(k_V51_n_to_p_Ti51_derived)*Y(V51)*state.rho - screened_rates(k_V52_n_to_He4_Sc49_reaclib)*Y(V52)*state.rho - screened_rates(k_Zn59_n_to_He4_Ni56_reaclib)*Y(Zn59)*state.rho - screened_rates(k_Zn59_n_to_Zn60_reaclib)*Y(Zn59)*state.rho - screened_rates(k_Zn59_n_to_p_Cu59_reaclib)*Y(Zn59)*state.rho - screened_rates(k_Zn60_n_to_He4_Ni57_reaclib)*Y(Zn60)*state.rho - screened_rates(k_Zn60_n_to_Zn61_reaclib)*Y(Zn60)*state.rho - screened_rates(k_Zn60_n_to_p_Cu60_reaclib)*Y(Zn60)*state.rho - screened_rates(k_Zn61_n_to_He4_Ni58_reaclib)*Y(Zn61)*state.rho - screened_rates(k_Zn61_n_to_Zn62_reaclib)*Y(Zn61)*state.rho - screened_rates(k_Zn61_n_to_p_Cu61_reaclib)*Y(Zn61)*state.rho - screened_rates(k_Zn62_n_to_He4_Ni59_reaclib)*Y(Zn62)*state.rho - screened_rates(k_Zn62_n_to_Zn63_reaclib)*Y(Zn62)*state.rho - screened_rates(k_Zn62_n_to_p_Cu62_reaclib)*Y(Zn62)*state.rho - screened_rates(k_Zn63_n_to_He4_Ni60_reaclib)*Y(Zn63)*state.rho - screened_rates(k_Zn63_n_to_Zn64_reaclib)*Y(Zn63)*state.rho - screened_rates(k_Zn63_n_to_p_Cu63_reaclib)*Y(Zn63)*state.rho - screened_rates(k_Zn64_n_to_He4_Ni61_reaclib)*Y(Zn64)*state.rho - screened_rates(k_Zn64_n_to_Zn65_reaclib)*Y(Zn64)*state.rho - screened_rates(k_Zn64_n_to_p_Cu64_reaclib)*Y(Zn64)*state.rho - screened_rates(k_Zn65_n_to_He4_Ni62_reaclib)*Y(Zn65)*state.rho - screened_rates(k_Zn65_n_to_Zn66_reaclib)*Y(Zn65)*state.rho - screened_rates(k_Zn65_n_to_p_Cu65_reaclib)*Y(Zn65)*state.rho - screened_rates(k_Zn66_n_to_He4_Ni63_reaclib)*Y(Zn66)*state.rho - screened_rates(k_n_to_p_beta_neg_weaktab) - screened_rates(k_p_n_to_d_reaclib)*Y(H1)*state.rho - 0.5*screened_rates(k_p_p_n_to_p_d_reaclib)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho); jac.set(N, N, scratch); - scratch = -0.5*screened_rates(k_n_p_He4_He4_to_He3_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<3>(state.rho) - 0.5*screened_rates(k_n_p_He4_He4_to_p_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<3>(state.rho) - screened_rates(k_n_p_He4_to_Li6_reaclib)*Y(He4)*Y(N)*amrex::Math::powi<2>(state.rho) - 1.0*screened_rates(k_n_p_p_to_p_d_reaclib)*Y(N)*Y(H1)*amrex::Math::powi<2>(state.rho) - screened_rates(k_n_p_to_d_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ar37_to_n_K37_reaclib)*Y(Ar37)*state.rho + screened_rates(k_p_Ar38_to_n_K38_reaclib)*Y(Ar38)*state.rho + screened_rates(k_p_Ar39_to_n_K39_reaclib)*Y(Ar39)*state.rho + screened_rates(k_p_Ar40_to_n_K40_reaclib)*Y(Ar40)*state.rho + screened_rates(k_p_Be9_to_n_p_He4_He4_reaclib)*Y(Be9)*state.rho + screened_rates(k_p_C13_to_n_N13_reaclib)*Y(C13)*state.rho + screened_rates(k_p_C14_to_n_N14_reaclib)*Y(C14)*state.rho + screened_rates(k_p_Ca43_to_n_Sc43_reaclib)*Y(Ca43)*state.rho + screened_rates(k_p_Ca44_to_n_Sc44_reaclib)*Y(Ca44)*state.rho + screened_rates(k_p_Ca45_to_n_Sc45_reaclib)*Y(Ca45)*state.rho + screened_rates(k_p_Ca46_to_n_Sc46_reaclib)*Y(Ca46)*state.rho + screened_rates(k_p_Ca47_to_n_Sc47_reaclib)*Y(Ca47)*state.rho + screened_rates(k_p_Ca48_to_n_Sc48_reaclib)*Y(Ca48)*state.rho + screened_rates(k_p_Cl36_to_n_Ar36_reaclib)*Y(Cl36)*state.rho + screened_rates(k_p_Cl37_to_n_Ar37_reaclib)*Y(Cl37)*state.rho + screened_rates(k_p_Co56_to_n_Ni56_reaclib)*Y(Co56)*state.rho + screened_rates(k_p_Co57_to_n_Ni57_reaclib)*Y(Co57)*state.rho + screened_rates(k_p_Co58_to_n_Ni58_reaclib)*Y(Co58)*state.rho + screened_rates(k_p_Co59_to_n_Ni59_reaclib)*Y(Co59)*state.rho + screened_rates(k_p_Cr50_to_n_Mn50_reaclib)*Y(Cr50)*state.rho + screened_rates(k_p_Cr51_to_n_Mn51_reaclib)*Y(Cr51)*state.rho + screened_rates(k_p_Cr52_to_n_Mn52_reaclib)*Y(Cr52)*state.rho + screened_rates(k_p_Cr53_to_n_Mn53_reaclib)*Y(Cr53)*state.rho + screened_rates(k_p_Cr54_to_n_Mn54_reaclib)*Y(Cr54)*state.rho + screened_rates(k_p_Cu59_to_n_Zn59_reaclib)*Y(Cu59)*state.rho + screened_rates(k_p_Cu60_to_n_Zn60_reaclib)*Y(Cu60)*state.rho + screened_rates(k_p_Cu61_to_n_Zn61_reaclib)*Y(Cu61)*state.rho + screened_rates(k_p_Cu62_to_n_Zn62_reaclib)*Y(Cu62)*state.rho + screened_rates(k_p_Cu63_to_n_Zn63_reaclib)*Y(Cu63)*state.rho + screened_rates(k_p_Cu64_to_n_Zn64_reaclib)*Y(Cu64)*state.rho + screened_rates(k_p_Cu65_to_n_Zn65_reaclib)*Y(Cu65)*state.rho + screened_rates(k_p_F18_to_n_Ne18_reaclib)*Y(F18)*state.rho + screened_rates(k_p_F19_to_n_Ne19_reaclib)*Y(F19)*state.rho + screened_rates(k_p_Fe53_to_n_Co53_reaclib)*Y(Fe53)*state.rho + screened_rates(k_p_Fe54_to_n_Co54_reaclib)*Y(Fe54)*state.rho + screened_rates(k_p_Fe55_to_n_Co55_reaclib)*Y(Fe55)*state.rho + screened_rates(k_p_Fe56_to_n_Co56_reaclib)*Y(Fe56)*state.rho + screened_rates(k_p_Fe57_to_n_Co57_reaclib)*Y(Fe57)*state.rho + screened_rates(k_p_Fe58_to_n_Co58_reaclib)*Y(Fe58)*state.rho + screened_rates(k_p_Ga63_to_n_Ge63_reaclib)*Y(Ga63)*state.rho + screened_rates(k_p_Ga64_to_n_Ge64_reaclib)*Y(Ga64)*state.rho + 0.5*screened_rates(k_p_He4_He4_to_n_B8_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) + screened_rates(k_p_K40_to_n_Ca40_reaclib)*Y(K40)*state.rho + screened_rates(k_p_K41_to_n_Ca41_reaclib)*Y(K41)*state.rho + screened_rates(k_p_Li7_to_n_Be7_reaclib)*Y(Li7)*state.rho + screened_rates(k_p_Mg25_to_n_Al25_reaclib)*Y(Mg25)*state.rho + screened_rates(k_p_Mg26_to_n_Al26_reaclib)*Y(Mg26)*state.rho + screened_rates(k_p_Mn52_to_n_Fe52_reaclib)*Y(Mn52)*state.rho + screened_rates(k_p_Mn53_to_n_Fe53_reaclib)*Y(Mn53)*state.rho + screened_rates(k_p_Mn54_to_n_Fe54_reaclib)*Y(Mn54)*state.rho + screened_rates(k_p_Mn55_to_n_Fe55_reaclib)*Y(Mn55)*state.rho + screened_rates(k_p_N14_to_n_O14_reaclib)*Y(N14)*state.rho + screened_rates(k_p_N15_to_n_O15_reaclib)*Y(N15)*state.rho + screened_rates(k_p_Na23_to_n_Mg23_reaclib)*Y(Na23)*state.rho + screened_rates(k_p_Ne21_to_n_Na21_reaclib)*Y(Ne21)*state.rho + screened_rates(k_p_Ne22_to_n_Na22_reaclib)*Y(Ne22)*state.rho + screened_rates(k_p_Ni57_to_n_Cu57_reaclib)*Y(Ni57)*state.rho + screened_rates(k_p_Ni58_to_n_Cu58_reaclib)*Y(Ni58)*state.rho + screened_rates(k_p_Ni59_to_n_Cu59_reaclib)*Y(Ni59)*state.rho + screened_rates(k_p_Ni60_to_n_Cu60_reaclib)*Y(Ni60)*state.rho + screened_rates(k_p_Ni61_to_n_Cu61_reaclib)*Y(Ni61)*state.rho + screened_rates(k_p_Ni62_to_n_Cu62_reaclib)*Y(Ni62)*state.rho + screened_rates(k_p_Ni63_to_n_Cu63_reaclib)*Y(Ni63)*state.rho + screened_rates(k_p_Ni64_to_n_Cu64_reaclib)*Y(Ni64)*state.rho + screened_rates(k_p_O17_to_n_F17_reaclib)*Y(O17)*state.rho + screened_rates(k_p_O18_to_n_F18_reaclib)*Y(O18)*state.rho + screened_rates(k_p_P32_to_n_S32_reaclib)*Y(P32)*state.rho + screened_rates(k_p_P33_to_n_S33_reaclib)*Y(P33)*state.rho + screened_rates(k_p_S33_to_n_Cl33_reaclib)*Y(S33)*state.rho + screened_rates(k_p_S34_to_n_Cl34_reaclib)*Y(S34)*state.rho + screened_rates(k_p_S35_to_n_Cl35_reaclib)*Y(S35)*state.rho + screened_rates(k_p_S36_to_n_Cl36_reaclib)*Y(S36)*state.rho + screened_rates(k_p_Sc44_to_n_Ti44_reaclib)*Y(Sc44)*state.rho + screened_rates(k_p_Sc45_to_n_Ti45_reaclib)*Y(Sc45)*state.rho + screened_rates(k_p_Sc46_to_n_Ti46_reaclib)*Y(Sc46)*state.rho + screened_rates(k_p_Sc47_to_n_Ti47_reaclib)*Y(Sc47)*state.rho + screened_rates(k_p_Sc48_to_n_Ti48_reaclib)*Y(Sc48)*state.rho + screened_rates(k_p_Sc49_to_n_Ti49_reaclib)*Y(Sc49)*state.rho + screened_rates(k_p_Si29_to_n_P29_reaclib)*Y(Si29)*state.rho + screened_rates(k_p_Si30_to_n_P30_reaclib)*Y(Si30)*state.rho + screened_rates(k_p_Si31_to_n_P31_reaclib)*Y(Si31)*state.rho + screened_rates(k_p_Si32_to_n_P32_reaclib)*Y(Si32)*state.rho + screened_rates(k_p_Ti46_to_n_V46_reaclib)*Y(Ti46)*state.rho + screened_rates(k_p_Ti47_to_n_V47_reaclib)*Y(Ti47)*state.rho + screened_rates(k_p_Ti48_to_n_V48_reaclib)*Y(Ti48)*state.rho + screened_rates(k_p_Ti49_to_n_V49_reaclib)*Y(Ti49)*state.rho + screened_rates(k_p_Ti50_to_n_V50_reaclib)*Y(Ti50)*state.rho + screened_rates(k_p_Ti51_to_n_V51_reaclib)*Y(Ti51)*state.rho + screened_rates(k_p_V48_to_n_Cr48_reaclib)*Y(V48)*state.rho + screened_rates(k_p_V49_to_n_Cr49_reaclib)*Y(V49)*state.rho + screened_rates(k_p_V50_to_n_Cr50_reaclib)*Y(V50)*state.rho + screened_rates(k_p_V51_to_n_Cr51_reaclib)*Y(V51)*state.rho + screened_rates(k_p_V52_to_n_Cr52_reaclib)*Y(V52)*state.rho + screened_rates(k_p_Zn62_to_n_Ga62_reaclib)*Y(Zn62)*state.rho + screened_rates(k_p_Zn63_to_n_Ga63_reaclib)*Y(Zn63)*state.rho + screened_rates(k_p_Zn64_to_n_Ga64_reaclib)*Y(Zn64)*state.rho + screened_rates(k_p_d_to_n_p_p_reaclib)*Y(H2)*state.rho + screened_rates(k_p_to_n_weaktab); + scratch = screened_rates(k_Ar37_p_to_n_K37_derived)*Y(Ar37)*state.rho + screened_rates(k_Ar38_p_to_n_K38_derived)*Y(Ar38)*state.rho + screened_rates(k_Ar39_p_to_n_K39_derived)*Y(Ar39)*state.rho + screened_rates(k_Ar40_p_to_n_K40_derived)*Y(Ar40)*state.rho + screened_rates(k_Be9_p_to_n_p_He4_He4_reaclib)*Y(Be9)*state.rho + screened_rates(k_C13_p_to_n_N13_reaclib)*Y(C13)*state.rho + screened_rates(k_C14_p_to_n_N14_derived)*Y(C14)*state.rho + screened_rates(k_Ca43_p_to_n_Sc43_derived)*Y(Ca43)*state.rho + screened_rates(k_Ca44_p_to_n_Sc44_derived)*Y(Ca44)*state.rho + screened_rates(k_Ca45_p_to_n_Sc45_derived)*Y(Ca45)*state.rho + screened_rates(k_Ca46_p_to_n_Sc46_derived)*Y(Ca46)*state.rho + screened_rates(k_Ca47_p_to_n_Sc47_reaclib)*Y(Ca47)*state.rho + screened_rates(k_Ca48_p_to_n_Sc48_derived)*Y(Ca48)*state.rho + screened_rates(k_Cl36_p_to_n_Ar36_derived)*Y(Cl36)*state.rho + screened_rates(k_Cl37_p_to_n_Ar37_derived)*Y(Cl37)*state.rho + screened_rates(k_Co56_p_to_n_Ni56_derived)*Y(Co56)*state.rho + screened_rates(k_Co57_p_to_n_Ni57_derived)*Y(Co57)*state.rho + screened_rates(k_Co58_p_to_n_Ni58_derived)*Y(Co58)*state.rho + screened_rates(k_Co59_p_to_n_Ni59_derived)*Y(Co59)*state.rho + screened_rates(k_Cr50_p_to_n_Mn50_derived)*Y(Cr50)*state.rho + screened_rates(k_Cr51_p_to_n_Mn51_derived)*Y(Cr51)*state.rho + screened_rates(k_Cr52_p_to_n_Mn52_derived)*Y(Cr52)*state.rho + screened_rates(k_Cr53_p_to_n_Mn53_derived)*Y(Cr53)*state.rho + screened_rates(k_Cr54_p_to_n_Mn54_derived)*Y(Cr54)*state.rho + screened_rates(k_Cu59_p_to_n_Zn59_derived)*Y(Cu59)*state.rho + screened_rates(k_Cu60_p_to_n_Zn60_derived)*Y(Cu60)*state.rho + screened_rates(k_Cu61_p_to_n_Zn61_derived)*Y(Cu61)*state.rho + screened_rates(k_Cu62_p_to_n_Zn62_derived)*Y(Cu62)*state.rho + screened_rates(k_Cu63_p_to_n_Zn63_derived)*Y(Cu63)*state.rho + screened_rates(k_Cu64_p_to_n_Zn64_derived)*Y(Cu64)*state.rho + screened_rates(k_Cu65_p_to_n_Zn65_derived)*Y(Cu65)*state.rho + screened_rates(k_F18_p_to_n_Ne18_derived)*Y(F18)*state.rho + screened_rates(k_F19_p_to_n_Ne19_reaclib)*Y(F19)*state.rho + screened_rates(k_Fe53_p_to_n_Co53_derived)*Y(Fe53)*state.rho + screened_rates(k_Fe54_p_to_n_Co54_derived)*Y(Fe54)*state.rho + screened_rates(k_Fe55_p_to_n_Co55_derived)*Y(Fe55)*state.rho + screened_rates(k_Fe56_p_to_n_Co56_derived)*Y(Fe56)*state.rho + screened_rates(k_Fe57_p_to_n_Co57_derived)*Y(Fe57)*state.rho + screened_rates(k_Fe58_p_to_n_Co58_derived)*Y(Fe58)*state.rho + screened_rates(k_Ga63_p_to_n_Ge63_derived)*Y(Ga63)*state.rho + screened_rates(k_Ga64_p_to_n_Ge64_derived)*Y(Ga64)*state.rho - 0.5*screened_rates(k_He4_He4_p_n_to_He3_Li7_derived)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<3>(state.rho) - 0.5*screened_rates(k_He4_He4_p_n_to_p_Be9_derived)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<3>(state.rho) + 0.5*screened_rates(k_He4_He4_p_to_n_B8_derived)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - screened_rates(k_He4_p_n_to_Li6_reaclib)*Y(He4)*Y(N)*amrex::Math::powi<2>(state.rho) + screened_rates(k_K40_p_to_n_Ca40_reaclib)*Y(K40)*state.rho + screened_rates(k_K41_p_to_n_Ca41_reaclib)*Y(K41)*state.rho + screened_rates(k_Li7_p_to_n_Be7_derived)*Y(Li7)*state.rho + screened_rates(k_Mg25_p_to_n_Al25_derived)*Y(Mg25)*state.rho + screened_rates(k_Mg26_p_to_n_Al26_derived)*Y(Mg26)*state.rho + screened_rates(k_Mn52_p_to_n_Fe52_derived)*Y(Mn52)*state.rho + screened_rates(k_Mn53_p_to_n_Fe53_derived)*Y(Mn53)*state.rho + screened_rates(k_Mn54_p_to_n_Fe54_derived)*Y(Mn54)*state.rho + screened_rates(k_Mn55_p_to_n_Fe55_derived)*Y(Mn55)*state.rho + screened_rates(k_N14_p_to_n_O14_reaclib)*Y(N14)*state.rho + screened_rates(k_N15_p_to_n_O15_reaclib)*Y(N15)*state.rho + screened_rates(k_Na23_p_to_n_Mg23_reaclib)*Y(Na23)*state.rho + screened_rates(k_Ne21_p_to_n_Na21_derived)*Y(Ne21)*state.rho + screened_rates(k_Ne22_p_to_n_Na22_derived)*Y(Ne22)*state.rho + screened_rates(k_Ni57_p_to_n_Cu57_derived)*Y(Ni57)*state.rho + screened_rates(k_Ni58_p_to_n_Cu58_derived)*Y(Ni58)*state.rho + screened_rates(k_Ni59_p_to_n_Cu59_derived)*Y(Ni59)*state.rho + screened_rates(k_Ni60_p_to_n_Cu60_derived)*Y(Ni60)*state.rho + screened_rates(k_Ni61_p_to_n_Cu61_derived)*Y(Ni61)*state.rho + screened_rates(k_Ni62_p_to_n_Cu62_derived)*Y(Ni62)*state.rho + screened_rates(k_Ni63_p_to_n_Cu63_derived)*Y(Ni63)*state.rho + screened_rates(k_Ni64_p_to_n_Cu64_derived)*Y(Ni64)*state.rho + screened_rates(k_O17_p_to_n_F17_derived)*Y(O17)*state.rho + screened_rates(k_O18_p_to_n_F18_derived)*Y(O18)*state.rho + screened_rates(k_P32_p_to_n_S32_reaclib)*Y(P32)*state.rho + screened_rates(k_P33_p_to_n_S33_derived)*Y(P33)*state.rho + screened_rates(k_S33_p_to_n_Cl33_derived)*Y(S33)*state.rho + screened_rates(k_S34_p_to_n_Cl34_derived)*Y(S34)*state.rho + screened_rates(k_S35_p_to_n_Cl35_derived)*Y(S35)*state.rho + screened_rates(k_S36_p_to_n_Cl36_derived)*Y(S36)*state.rho + screened_rates(k_Sc44_p_to_n_Ti44_derived)*Y(Sc44)*state.rho + screened_rates(k_Sc45_p_to_n_Ti45_derived)*Y(Sc45)*state.rho + screened_rates(k_Sc46_p_to_n_Ti46_reaclib)*Y(Sc46)*state.rho + screened_rates(k_Sc47_p_to_n_Ti47_derived)*Y(Sc47)*state.rho + screened_rates(k_Sc48_p_to_n_Ti48_reaclib)*Y(Sc48)*state.rho + screened_rates(k_Sc49_p_to_n_Ti49_reaclib)*Y(Sc49)*state.rho + screened_rates(k_Si29_p_to_n_P29_derived)*Y(Si29)*state.rho + screened_rates(k_Si30_p_to_n_P30_derived)*Y(Si30)*state.rho + screened_rates(k_Si31_p_to_n_P31_reaclib)*Y(Si31)*state.rho + screened_rates(k_Si32_p_to_n_P32_derived)*Y(Si32)*state.rho + screened_rates(k_Ti46_p_to_n_V46_derived)*Y(Ti46)*state.rho + screened_rates(k_Ti47_p_to_n_V47_derived)*Y(Ti47)*state.rho + screened_rates(k_Ti48_p_to_n_V48_derived)*Y(Ti48)*state.rho + screened_rates(k_Ti49_p_to_n_V49_derived)*Y(Ti49)*state.rho + screened_rates(k_Ti50_p_to_n_V50_derived)*Y(Ti50)*state.rho + screened_rates(k_Ti51_p_to_n_V51_reaclib)*Y(Ti51)*state.rho + screened_rates(k_V48_p_to_n_Cr48_derived)*Y(V48)*state.rho + screened_rates(k_V49_p_to_n_Cr49_derived)*Y(V49)*state.rho + screened_rates(k_V50_p_to_n_Cr50_reaclib)*Y(V50)*state.rho + screened_rates(k_V51_p_to_n_Cr51_derived)*Y(V51)*state.rho + screened_rates(k_V52_p_to_n_Cr52_reaclib)*Y(V52)*state.rho + screened_rates(k_Zn62_p_to_n_Ga62_derived)*Y(Zn62)*state.rho + screened_rates(k_Zn63_p_to_n_Ga63_derived)*Y(Zn63)*state.rho + screened_rates(k_Zn64_p_to_n_Ga64_derived)*Y(Zn64)*state.rho + screened_rates(k_d_p_to_n_p_p_derived)*Y(H2)*state.rho - screened_rates(k_p_n_to_d_reaclib)*Y(N)*state.rho - 1.0*screened_rates(k_p_p_n_to_p_d_reaclib)*Y(N)*Y(H1)*amrex::Math::powi<2>(state.rho) + screened_rates(k_p_to_n_electron_capture_weaktab); jac.set(N, H1, scratch); - scratch = screened_rates(k_d_C13_to_n_N14_reaclib)*Y(C13)*state.rho + screened_rates(k_d_C14_to_n_N15_reaclib)*Y(C14)*state.rho + screened_rates(k_d_Li6_to_n_Be7_reaclib)*Y(Li6)*state.rho + screened_rates(k_d_Li7_to_n_He4_He4_reaclib)*Y(Li7)*state.rho + 1.0*screened_rates(k_d_d_to_n_He3_reaclib)*Y(H2)*state.rho + screened_rates(k_d_to_n_p_reaclib) + screened_rates(k_p_d_to_n_p_p_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_C13_d_to_n_N14_reaclib)*Y(C13)*state.rho + screened_rates(k_C14_d_to_n_N15_reaclib)*Y(C14)*state.rho + screened_rates(k_Li6_d_to_n_Be7_reaclib)*Y(Li6)*state.rho + screened_rates(k_Li7_d_to_n_He4_He4_reaclib)*Y(Li7)*state.rho + 1.0*screened_rates(k_d_d_to_n_He3_reaclib)*Y(H2)*state.rho + screened_rates(k_d_p_to_n_p_p_derived)*Y(H1)*state.rho + screened_rates(k_d_to_n_p_derived); jac.set(N, H2, scratch); - scratch = screened_rates(k_He3_Li7_to_n_p_He4_He4_reaclib)*Y(Li7)*state.rho - screened_rates(k_n_He3_to_He4_reaclib)*Y(N)*state.rho - screened_rates(k_n_He3_to_d_d_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_He3_n_to_He4_reaclib)*Y(N)*state.rho - screened_rates(k_He3_n_to_d_d_derived)*Y(N)*state.rho + screened_rates(k_Li7_He3_to_n_p_He4_He4_reaclib)*Y(Li7)*state.rho; jac.set(N, He3, scratch); - scratch = screened_rates(k_He4_Al26_to_n_P29_reaclib)*Y(Al26)*state.rho + screened_rates(k_He4_Al27_to_n_P30_reaclib)*Y(Al27)*state.rho + screened_rates(k_He4_Ar37_to_n_Ca40_reaclib)*Y(Ar37)*state.rho + screened_rates(k_He4_Ar38_to_n_Ca41_reaclib)*Y(Ar38)*state.rho + screened_rates(k_He4_Ar39_to_n_Ca42_reaclib)*Y(Ar39)*state.rho + screened_rates(k_He4_Ar40_to_n_Ca43_reaclib)*Y(Ar40)*state.rho + screened_rates(k_He4_B10_to_n_N13_reaclib)*Y(B10)*state.rho + screened_rates(k_He4_B11_to_n_N14_reaclib)*Y(B11)*state.rho + screened_rates(k_He4_Be9_to_n_C12_reaclib)*Y(Be9)*state.rho + screened_rates(k_He4_C12_to_n_O15_reaclib)*Y(C12)*state.rho + screened_rates(k_He4_C13_to_n_O16_reaclib)*Y(C13)*state.rho + screened_rates(k_He4_C14_to_n_O17_reaclib)*Y(C14)*state.rho + screened_rates(k_He4_Ca41_to_n_Ti44_reaclib)*Y(Ca41)*state.rho + screened_rates(k_He4_Ca42_to_n_Ti45_reaclib)*Y(Ca42)*state.rho + screened_rates(k_He4_Ca43_to_n_Ti46_reaclib)*Y(Ca43)*state.rho + screened_rates(k_He4_Ca44_to_n_Ti47_reaclib)*Y(Ca44)*state.rho + screened_rates(k_He4_Ca45_to_n_Ti48_reaclib)*Y(Ca45)*state.rho + screened_rates(k_He4_Ca46_to_n_Ti49_reaclib)*Y(Ca46)*state.rho + screened_rates(k_He4_Ca47_to_n_Ti50_reaclib)*Y(Ca47)*state.rho + screened_rates(k_He4_Ca48_to_n_Ti51_reaclib)*Y(Ca48)*state.rho + screened_rates(k_He4_Cl34_to_n_K37_reaclib)*Y(Cl34)*state.rho + screened_rates(k_He4_Cl35_to_n_K38_reaclib)*Y(Cl35)*state.rho + screened_rates(k_He4_Cl36_to_n_K39_reaclib)*Y(Cl36)*state.rho + screened_rates(k_He4_Cl37_to_n_K40_reaclib)*Y(Cl37)*state.rho + screened_rates(k_He4_Co54_to_n_Cu57_reaclib)*Y(Co54)*state.rho + screened_rates(k_He4_Co55_to_n_Cu58_reaclib)*Y(Co55)*state.rho + screened_rates(k_He4_Co56_to_n_Cu59_reaclib)*Y(Co56)*state.rho + screened_rates(k_He4_Co57_to_n_Cu60_reaclib)*Y(Co57)*state.rho + screened_rates(k_He4_Co58_to_n_Cu61_reaclib)*Y(Co58)*state.rho + screened_rates(k_He4_Co59_to_n_Cu62_reaclib)*Y(Co59)*state.rho + screened_rates(k_He4_Cr49_to_n_Fe52_reaclib)*Y(Cr49)*state.rho + screened_rates(k_He4_Cr50_to_n_Fe53_reaclib)*Y(Cr50)*state.rho + screened_rates(k_He4_Cr51_to_n_Fe54_reaclib)*Y(Cr51)*state.rho + screened_rates(k_He4_Cr52_to_n_Fe55_reaclib)*Y(Cr52)*state.rho + screened_rates(k_He4_Cr53_to_n_Fe56_reaclib)*Y(Cr53)*state.rho + screened_rates(k_He4_Cr54_to_n_Fe57_reaclib)*Y(Cr54)*state.rho + screened_rates(k_He4_Cu59_to_n_Ga62_reaclib)*Y(Cu59)*state.rho + screened_rates(k_He4_Cu60_to_n_Ga63_reaclib)*Y(Cu60)*state.rho + screened_rates(k_He4_Cu61_to_n_Ga64_reaclib)*Y(Cu61)*state.rho + screened_rates(k_He4_F18_to_n_Na21_reaclib)*Y(F18)*state.rho + screened_rates(k_He4_F19_to_n_Na22_reaclib)*Y(F19)*state.rho + screened_rates(k_He4_Fe53_to_n_Ni56_reaclib)*Y(Fe53)*state.rho + screened_rates(k_He4_Fe54_to_n_Ni57_reaclib)*Y(Fe54)*state.rho + screened_rates(k_He4_Fe55_to_n_Ni58_reaclib)*Y(Fe55)*state.rho + screened_rates(k_He4_Fe56_to_n_Ni59_reaclib)*Y(Fe56)*state.rho + screened_rates(k_He4_Fe57_to_n_Ni60_reaclib)*Y(Fe57)*state.rho + screened_rates(k_He4_Fe58_to_n_Ni61_reaclib)*Y(Fe58)*state.rho + 1.0*screened_rates(k_He4_He4_to_n_Be7_reaclib)*Y(He4)*state.rho + screened_rates(k_He4_K40_to_n_Sc43_reaclib)*Y(K40)*state.rho + screened_rates(k_He4_K41_to_n_Sc44_reaclib)*Y(K41)*state.rho + screened_rates(k_He4_Li7_to_n_B10_reaclib)*Y(Li7)*state.rho + screened_rates(k_He4_Mg25_to_n_Si28_reaclib)*Y(Mg25)*state.rho + screened_rates(k_He4_Mg26_to_n_Si29_reaclib)*Y(Mg26)*state.rho + screened_rates(k_He4_Mn50_to_n_Co53_reaclib)*Y(Mn50)*state.rho + screened_rates(k_He4_Mn51_to_n_Co54_reaclib)*Y(Mn51)*state.rho + screened_rates(k_He4_Mn52_to_n_Co55_reaclib)*Y(Mn52)*state.rho + screened_rates(k_He4_Mn53_to_n_Co56_reaclib)*Y(Mn53)*state.rho + screened_rates(k_He4_Mn54_to_n_Co57_reaclib)*Y(Mn54)*state.rho + screened_rates(k_He4_Mn55_to_n_Co58_reaclib)*Y(Mn55)*state.rho + screened_rates(k_He4_N14_to_n_F17_reaclib)*Y(N14)*state.rho + screened_rates(k_He4_N15_to_n_F18_reaclib)*Y(N15)*state.rho + screened_rates(k_He4_Na22_to_n_Al25_reaclib)*Y(Na22)*state.rho + screened_rates(k_He4_Na23_to_n_Al26_reaclib)*Y(Na23)*state.rho + screened_rates(k_He4_Ne20_to_n_Mg23_reaclib)*Y(Ne20)*state.rho + screened_rates(k_He4_Ne21_to_n_Mg24_reaclib)*Y(Ne21)*state.rho + screened_rates(k_He4_Ne22_to_n_Mg25_reaclib)*Y(Ne22)*state.rho + screened_rates(k_He4_Ni56_to_n_Zn59_reaclib)*Y(Ni56)*state.rho + screened_rates(k_He4_Ni57_to_n_Zn60_reaclib)*Y(Ni57)*state.rho + screened_rates(k_He4_Ni58_to_n_Zn61_reaclib)*Y(Ni58)*state.rho + screened_rates(k_He4_Ni59_to_n_Zn62_reaclib)*Y(Ni59)*state.rho + screened_rates(k_He4_Ni60_to_n_Zn63_reaclib)*Y(Ni60)*state.rho + screened_rates(k_He4_Ni61_to_n_Zn64_reaclib)*Y(Ni61)*state.rho + screened_rates(k_He4_Ni62_to_n_Zn65_reaclib)*Y(Ni62)*state.rho + screened_rates(k_He4_Ni63_to_n_Zn66_reaclib)*Y(Ni63)*state.rho + screened_rates(k_He4_O15_to_n_Ne18_reaclib)*Y(O15)*state.rho + screened_rates(k_He4_O16_to_n_Ne19_reaclib)*Y(O16)*state.rho + screened_rates(k_He4_O17_to_n_Ne20_reaclib)*Y(O17)*state.rho + screened_rates(k_He4_O18_to_n_Ne21_reaclib)*Y(O18)*state.rho + screened_rates(k_He4_P30_to_n_Cl33_reaclib)*Y(P30)*state.rho + screened_rates(k_He4_P31_to_n_Cl34_reaclib)*Y(P31)*state.rho + screened_rates(k_He4_P32_to_n_Cl35_reaclib)*Y(P32)*state.rho + screened_rates(k_He4_P33_to_n_Cl36_reaclib)*Y(P33)*state.rho + screened_rates(k_He4_S33_to_n_Ar36_reaclib)*Y(S33)*state.rho + screened_rates(k_He4_S34_to_n_Ar37_reaclib)*Y(S34)*state.rho + screened_rates(k_He4_S35_to_n_Ar38_reaclib)*Y(S35)*state.rho + screened_rates(k_He4_S36_to_n_Ar39_reaclib)*Y(S36)*state.rho + screened_rates(k_He4_Sc43_to_n_V46_reaclib)*Y(Sc43)*state.rho + screened_rates(k_He4_Sc44_to_n_V47_reaclib)*Y(Sc44)*state.rho + screened_rates(k_He4_Sc45_to_n_V48_reaclib)*Y(Sc45)*state.rho + screened_rates(k_He4_Sc46_to_n_V49_reaclib)*Y(Sc46)*state.rho + screened_rates(k_He4_Sc47_to_n_V50_reaclib)*Y(Sc47)*state.rho + screened_rates(k_He4_Sc48_to_n_V51_reaclib)*Y(Sc48)*state.rho + screened_rates(k_He4_Sc49_to_n_V52_reaclib)*Y(Sc49)*state.rho + screened_rates(k_He4_Si29_to_n_S32_reaclib)*Y(Si29)*state.rho + screened_rates(k_He4_Si30_to_n_S33_reaclib)*Y(Si30)*state.rho + screened_rates(k_He4_Si31_to_n_S34_reaclib)*Y(Si31)*state.rho + screened_rates(k_He4_Si32_to_n_S35_reaclib)*Y(Si32)*state.rho + screened_rates(k_He4_Ti45_to_n_Cr48_reaclib)*Y(Ti45)*state.rho + screened_rates(k_He4_Ti46_to_n_Cr49_reaclib)*Y(Ti46)*state.rho + screened_rates(k_He4_Ti47_to_n_Cr50_reaclib)*Y(Ti47)*state.rho + screened_rates(k_He4_Ti48_to_n_Cr51_reaclib)*Y(Ti48)*state.rho + screened_rates(k_He4_Ti49_to_n_Cr52_reaclib)*Y(Ti49)*state.rho + screened_rates(k_He4_Ti50_to_n_Cr53_reaclib)*Y(Ti50)*state.rho + screened_rates(k_He4_Ti51_to_n_Cr54_reaclib)*Y(Ti51)*state.rho + screened_rates(k_He4_V47_to_n_Mn50_reaclib)*Y(V47)*state.rho + screened_rates(k_He4_V48_to_n_Mn51_reaclib)*Y(V48)*state.rho + screened_rates(k_He4_V49_to_n_Mn52_reaclib)*Y(V49)*state.rho + screened_rates(k_He4_V50_to_n_Mn53_reaclib)*Y(V50)*state.rho + screened_rates(k_He4_V51_to_n_Mn54_reaclib)*Y(V51)*state.rho + screened_rates(k_He4_V52_to_n_Mn55_reaclib)*Y(V52)*state.rho + screened_rates(k_He4_Zn60_to_n_Ge63_reaclib)*Y(Zn60)*state.rho + screened_rates(k_He4_Zn61_to_n_Ge64_reaclib)*Y(Zn61)*state.rho + screened_rates(k_He4_to_n_He3_reaclib) - 1.0*screened_rates(k_n_He4_He4_to_Be9_reaclib)*Y(He4)*Y(N)*amrex::Math::powi<2>(state.rho) - 1.0*screened_rates(k_n_He4_He4_to_d_Li7_reaclib)*Y(He4)*Y(N)*amrex::Math::powi<2>(state.rho) - 1.0*screened_rates(k_n_p_He4_He4_to_He3_Li7_reaclib)*Y(He4)*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho) - 1.0*screened_rates(k_n_p_He4_He4_to_p_Be9_reaclib)*Y(He4)*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho) - screened_rates(k_n_p_He4_to_Li6_reaclib)*Y(N)*Y(H1)*amrex::Math::powi<2>(state.rho) + 1.0*screened_rates(k_p_He4_He4_to_n_B8_reaclib)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho); + scratch = screened_rates(k_Al26_He4_to_n_P29_derived)*Y(Al26)*state.rho + screened_rates(k_Al27_He4_to_n_P30_reaclib)*Y(Al27)*state.rho + screened_rates(k_Ar37_He4_to_n_Ca40_derived)*Y(Ar37)*state.rho + screened_rates(k_Ar38_He4_to_n_Ca41_derived)*Y(Ar38)*state.rho + screened_rates(k_Ar39_He4_to_n_Ca42_derived)*Y(Ar39)*state.rho + screened_rates(k_Ar40_He4_to_n_Ca43_derived)*Y(Ar40)*state.rho + screened_rates(k_B10_He4_to_n_N13_reaclib)*Y(B10)*state.rho + screened_rates(k_B11_He4_to_n_N14_reaclib)*Y(B11)*state.rho + screened_rates(k_Be9_He4_to_n_C12_reaclib)*Y(Be9)*state.rho + screened_rates(k_C12_He4_to_n_O15_derived)*Y(C12)*state.rho + screened_rates(k_C13_He4_to_n_O16_reaclib)*Y(C13)*state.rho + screened_rates(k_C14_He4_to_n_O17_derived)*Y(C14)*state.rho + screened_rates(k_Ca41_He4_to_n_Ti44_derived)*Y(Ca41)*state.rho + screened_rates(k_Ca42_He4_to_n_Ti45_derived)*Y(Ca42)*state.rho + screened_rates(k_Ca43_He4_to_n_Ti46_reaclib)*Y(Ca43)*state.rho + screened_rates(k_Ca44_He4_to_n_Ti47_derived)*Y(Ca44)*state.rho + screened_rates(k_Ca45_He4_to_n_Ti48_reaclib)*Y(Ca45)*state.rho + screened_rates(k_Ca46_He4_to_n_Ti49_derived)*Y(Ca46)*state.rho + screened_rates(k_Ca47_He4_to_n_Ti50_reaclib)*Y(Ca47)*state.rho + screened_rates(k_Ca48_He4_to_n_Ti51_derived)*Y(Ca48)*state.rho + screened_rates(k_Cl34_He4_to_n_K37_derived)*Y(Cl34)*state.rho + screened_rates(k_Cl35_He4_to_n_K38_derived)*Y(Cl35)*state.rho + screened_rates(k_Cl36_He4_to_n_K39_derived)*Y(Cl36)*state.rho + screened_rates(k_Cl37_He4_to_n_K40_derived)*Y(Cl37)*state.rho + screened_rates(k_Co54_He4_to_n_Cu57_derived)*Y(Co54)*state.rho + screened_rates(k_Co55_He4_to_n_Cu58_derived)*Y(Co55)*state.rho + screened_rates(k_Co56_He4_to_n_Cu59_derived)*Y(Co56)*state.rho + screened_rates(k_Co57_He4_to_n_Cu60_derived)*Y(Co57)*state.rho + screened_rates(k_Co58_He4_to_n_Cu61_derived)*Y(Co58)*state.rho + screened_rates(k_Co59_He4_to_n_Cu62_derived)*Y(Co59)*state.rho + screened_rates(k_Cr49_He4_to_n_Fe52_derived)*Y(Cr49)*state.rho + screened_rates(k_Cr50_He4_to_n_Fe53_derived)*Y(Cr50)*state.rho + screened_rates(k_Cr51_He4_to_n_Fe54_derived)*Y(Cr51)*state.rho + screened_rates(k_Cr52_He4_to_n_Fe55_derived)*Y(Cr52)*state.rho + screened_rates(k_Cr53_He4_to_n_Fe56_derived)*Y(Cr53)*state.rho + screened_rates(k_Cr54_He4_to_n_Fe57_derived)*Y(Cr54)*state.rho + screened_rates(k_Cu59_He4_to_n_Ga62_derived)*Y(Cu59)*state.rho + screened_rates(k_Cu60_He4_to_n_Ga63_derived)*Y(Cu60)*state.rho + screened_rates(k_Cu61_He4_to_n_Ga64_derived)*Y(Cu61)*state.rho + screened_rates(k_F18_He4_to_n_Na21_derived)*Y(F18)*state.rho + screened_rates(k_F19_He4_to_n_Na22_derived)*Y(F19)*state.rho + screened_rates(k_Fe53_He4_to_n_Ni56_derived)*Y(Fe53)*state.rho + screened_rates(k_Fe54_He4_to_n_Ni57_derived)*Y(Fe54)*state.rho + screened_rates(k_Fe55_He4_to_n_Ni58_derived)*Y(Fe55)*state.rho + screened_rates(k_Fe56_He4_to_n_Ni59_derived)*Y(Fe56)*state.rho + screened_rates(k_Fe57_He4_to_n_Ni60_derived)*Y(Fe57)*state.rho + screened_rates(k_Fe58_He4_to_n_Ni61_derived)*Y(Fe58)*state.rho - 1.0*screened_rates(k_He4_He4_n_to_Be9_reaclib)*Y(He4)*Y(N)*amrex::Math::powi<2>(state.rho) - 1.0*screened_rates(k_He4_He4_n_to_d_Li7_derived)*Y(He4)*Y(N)*amrex::Math::powi<2>(state.rho) - 1.0*screened_rates(k_He4_He4_p_n_to_He3_Li7_derived)*Y(He4)*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho) - 1.0*screened_rates(k_He4_He4_p_n_to_p_Be9_derived)*Y(He4)*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho) + 1.0*screened_rates(k_He4_He4_p_to_n_B8_derived)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho) + 1.0*screened_rates(k_He4_He4_to_n_Be7_derived)*Y(He4)*state.rho - screened_rates(k_He4_p_n_to_Li6_reaclib)*Y(N)*Y(H1)*amrex::Math::powi<2>(state.rho) + screened_rates(k_He4_to_n_He3_derived) + screened_rates(k_K40_He4_to_n_Sc43_derived)*Y(K40)*state.rho + screened_rates(k_K41_He4_to_n_Sc44_reaclib)*Y(K41)*state.rho + screened_rates(k_Li7_He4_to_n_B10_derived)*Y(Li7)*state.rho + screened_rates(k_Mg25_He4_to_n_Si28_reaclib)*Y(Mg25)*state.rho + screened_rates(k_Mg26_He4_to_n_Si29_reaclib)*Y(Mg26)*state.rho + screened_rates(k_Mn50_He4_to_n_Co53_derived)*Y(Mn50)*state.rho + screened_rates(k_Mn51_He4_to_n_Co54_derived)*Y(Mn51)*state.rho + screened_rates(k_Mn52_He4_to_n_Co55_derived)*Y(Mn52)*state.rho + screened_rates(k_Mn53_He4_to_n_Co56_derived)*Y(Mn53)*state.rho + screened_rates(k_Mn54_He4_to_n_Co57_derived)*Y(Mn54)*state.rho + screened_rates(k_Mn55_He4_to_n_Co58_derived)*Y(Mn55)*state.rho + screened_rates(k_N14_He4_to_n_F17_reaclib)*Y(N14)*state.rho + screened_rates(k_N15_He4_to_n_F18_derived)*Y(N15)*state.rho + screened_rates(k_Na22_He4_to_n_Al25_derived)*Y(Na22)*state.rho + screened_rates(k_Na23_He4_to_n_Al26_derived)*Y(Na23)*state.rho + screened_rates(k_Ne20_He4_to_n_Mg23_derived)*Y(Ne20)*state.rho + screened_rates(k_Ne21_He4_to_n_Mg24_reaclib)*Y(Ne21)*state.rho + screened_rates(k_Ne22_He4_to_n_Mg25_reaclib)*Y(Ne22)*state.rho + screened_rates(k_Ni56_He4_to_n_Zn59_derived)*Y(Ni56)*state.rho + screened_rates(k_Ni57_He4_to_n_Zn60_derived)*Y(Ni57)*state.rho + screened_rates(k_Ni58_He4_to_n_Zn61_derived)*Y(Ni58)*state.rho + screened_rates(k_Ni59_He4_to_n_Zn62_derived)*Y(Ni59)*state.rho + screened_rates(k_Ni60_He4_to_n_Zn63_derived)*Y(Ni60)*state.rho + screened_rates(k_Ni61_He4_to_n_Zn64_derived)*Y(Ni61)*state.rho + screened_rates(k_Ni62_He4_to_n_Zn65_derived)*Y(Ni62)*state.rho + screened_rates(k_Ni63_He4_to_n_Zn66_derived)*Y(Ni63)*state.rho + screened_rates(k_O15_He4_to_n_Ne18_derived)*Y(O15)*state.rho + screened_rates(k_O16_He4_to_n_Ne19_derived)*Y(O16)*state.rho + screened_rates(k_O17_He4_to_n_Ne20_reaclib)*Y(O17)*state.rho + screened_rates(k_O18_He4_to_n_Ne21_reaclib)*Y(O18)*state.rho + screened_rates(k_P30_He4_to_n_Cl33_derived)*Y(P30)*state.rho + screened_rates(k_P31_He4_to_n_Cl34_derived)*Y(P31)*state.rho + screened_rates(k_P32_He4_to_n_Cl35_derived)*Y(P32)*state.rho + screened_rates(k_P33_He4_to_n_Cl36_derived)*Y(P33)*state.rho + screened_rates(k_S33_He4_to_n_Ar36_derived)*Y(S33)*state.rho + screened_rates(k_S34_He4_to_n_Ar37_reaclib)*Y(S34)*state.rho + screened_rates(k_S35_He4_to_n_Ar38_reaclib)*Y(S35)*state.rho + screened_rates(k_S36_He4_to_n_Ar39_derived)*Y(S36)*state.rho + screened_rates(k_Sc43_He4_to_n_V46_derived)*Y(Sc43)*state.rho + screened_rates(k_Sc44_He4_to_n_V47_derived)*Y(Sc44)*state.rho + screened_rates(k_Sc45_He4_to_n_V48_derived)*Y(Sc45)*state.rho + screened_rates(k_Sc46_He4_to_n_V49_reaclib)*Y(Sc46)*state.rho + screened_rates(k_Sc47_He4_to_n_V50_derived)*Y(Sc47)*state.rho + screened_rates(k_Sc48_He4_to_n_V51_reaclib)*Y(Sc48)*state.rho + screened_rates(k_Sc49_He4_to_n_V52_derived)*Y(Sc49)*state.rho + screened_rates(k_Si29_He4_to_n_S32_derived)*Y(Si29)*state.rho + screened_rates(k_Si30_He4_to_n_S33_derived)*Y(Si30)*state.rho + screened_rates(k_Si31_He4_to_n_S34_reaclib)*Y(Si31)*state.rho + screened_rates(k_Si32_He4_to_n_S35_derived)*Y(Si32)*state.rho + screened_rates(k_Ti45_He4_to_n_Cr48_derived)*Y(Ti45)*state.rho + screened_rates(k_Ti46_He4_to_n_Cr49_derived)*Y(Ti46)*state.rho + screened_rates(k_Ti47_He4_to_n_Cr50_derived)*Y(Ti47)*state.rho + screened_rates(k_Ti48_He4_to_n_Cr51_derived)*Y(Ti48)*state.rho + screened_rates(k_Ti49_He4_to_n_Cr52_reaclib)*Y(Ti49)*state.rho + screened_rates(k_Ti50_He4_to_n_Cr53_derived)*Y(Ti50)*state.rho + screened_rates(k_Ti51_He4_to_n_Cr54_reaclib)*Y(Ti51)*state.rho + screened_rates(k_V47_He4_to_n_Mn50_derived)*Y(V47)*state.rho + screened_rates(k_V48_He4_to_n_Mn51_derived)*Y(V48)*state.rho + screened_rates(k_V49_He4_to_n_Mn52_derived)*Y(V49)*state.rho + screened_rates(k_V50_He4_to_n_Mn53_derived)*Y(V50)*state.rho + screened_rates(k_V51_He4_to_n_Mn54_derived)*Y(V51)*state.rho + screened_rates(k_V52_He4_to_n_Mn55_reaclib)*Y(V52)*state.rho + screened_rates(k_Zn60_He4_to_n_Ge63_derived)*Y(Zn60)*state.rho + screened_rates(k_Zn61_He4_to_n_Ge64_derived)*Y(Zn61)*state.rho; jac.set(N, He4, scratch); - scratch = screened_rates(k_Li6_to_n_p_He4_reaclib) + screened_rates(k_d_Li6_to_n_Be7_reaclib)*Y(H2)*state.rho - screened_rates(k_n_Li6_to_Li7_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Li6_d_to_n_Be7_reaclib)*Y(H2)*state.rho - screened_rates(k_Li6_n_to_Li7_reaclib)*Y(N)*state.rho + screened_rates(k_Li6_to_n_p_He4_derived); jac.set(N, Li6, scratch); - scratch = screened_rates(k_He3_Li7_to_n_p_He4_He4_reaclib)*Y(He3)*state.rho + screened_rates(k_He4_Li7_to_n_B10_reaclib)*Y(He4)*state.rho + screened_rates(k_Li7_to_n_Li6_reaclib) + screened_rates(k_d_Li7_to_n_He4_He4_reaclib)*Y(H2)*state.rho + screened_rates(k_p_Li7_to_n_Be7_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Li7_He3_to_n_p_He4_He4_reaclib)*Y(He3)*state.rho + screened_rates(k_Li7_He4_to_n_B10_derived)*Y(He4)*state.rho + screened_rates(k_Li7_d_to_n_He4_He4_reaclib)*Y(H2)*state.rho + screened_rates(k_Li7_p_to_n_Be7_derived)*Y(H1)*state.rho + screened_rates(k_Li7_to_n_Li6_derived); jac.set(N, Li7, scratch); - scratch = -screened_rates(k_n_Be7_to_He4_He4_reaclib)*Y(N)*state.rho - screened_rates(k_n_Be7_to_d_Li6_reaclib)*Y(N)*state.rho - screened_rates(k_n_Be7_to_p_Li7_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Be7_n_to_He4_He4_reaclib)*Y(N)*state.rho - screened_rates(k_Be7_n_to_d_Li6_derived)*Y(N)*state.rho - screened_rates(k_Be7_n_to_p_Li7_reaclib)*Y(N)*state.rho; jac.set(N, Be7, scratch); - scratch = screened_rates(k_Be9_to_n_He4_He4_reaclib) + screened_rates(k_He4_Be9_to_n_C12_reaclib)*Y(He4)*state.rho + screened_rates(k_p_Be9_to_n_p_He4_He4_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Be9_He4_to_n_C12_reaclib)*Y(He4)*state.rho + screened_rates(k_Be9_p_to_n_p_He4_He4_reaclib)*Y(H1)*state.rho + screened_rates(k_Be9_to_n_He4_He4_derived); jac.set(N, Be9, scratch); - scratch = -screened_rates(k_n_B8_to_p_He4_He4_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_B8_n_to_p_He4_He4_reaclib)*Y(N)*state.rho; jac.set(N, B8, scratch); - scratch = screened_rates(k_He4_B10_to_n_N13_reaclib)*Y(He4)*state.rho - screened_rates(k_n_B10_to_B11_reaclib)*Y(N)*state.rho - screened_rates(k_n_B10_to_He4_Li7_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_B10_He4_to_n_N13_reaclib)*Y(He4)*state.rho - screened_rates(k_B10_n_to_B11_reaclib)*Y(N)*state.rho - screened_rates(k_B10_n_to_He4_Li7_reaclib)*Y(N)*state.rho; jac.set(N, B10, scratch); - scratch = screened_rates(k_B11_to_n_B10_reaclib) + screened_rates(k_He4_B11_to_n_N14_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_B11_He4_to_n_N14_reaclib)*Y(He4)*state.rho + screened_rates(k_B11_to_n_B10_derived); jac.set(N, B11, scratch); - scratch = 1.0*screened_rates(k_C12_C12_to_n_Mg23_reaclib)*Y(C12)*state.rho + screened_rates(k_He4_C12_to_n_O15_reaclib)*Y(He4)*state.rho - screened_rates(k_n_C12_to_C13_reaclib)*Y(N)*state.rho - screened_rates(k_n_C12_to_He4_Be9_reaclib)*Y(N)*state.rho; + scratch = 1.0*screened_rates(k_C12_C12_to_n_Mg23_derived)*Y(C12)*state.rho + screened_rates(k_C12_He4_to_n_O15_derived)*Y(He4)*state.rho - screened_rates(k_C12_n_to_C13_reaclib)*Y(N)*state.rho - screened_rates(k_C12_n_to_He4_Be9_derived)*Y(N)*state.rho; jac.set(N, C12, scratch); - scratch = screened_rates(k_C13_to_n_C12_reaclib) + screened_rates(k_He4_C13_to_n_O16_reaclib)*Y(He4)*state.rho + screened_rates(k_d_C13_to_n_N14_reaclib)*Y(H2)*state.rho - screened_rates(k_n_C13_to_C14_reaclib)*Y(N)*state.rho + screened_rates(k_p_C13_to_n_N13_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_C13_He4_to_n_O16_reaclib)*Y(He4)*state.rho + screened_rates(k_C13_d_to_n_N14_reaclib)*Y(H2)*state.rho - screened_rates(k_C13_n_to_C14_reaclib)*Y(N)*state.rho + screened_rates(k_C13_p_to_n_N13_reaclib)*Y(H1)*state.rho + screened_rates(k_C13_to_n_C12_derived); jac.set(N, C13, scratch); - scratch = screened_rates(k_C14_to_n_C13_reaclib) + screened_rates(k_He4_C14_to_n_O17_reaclib)*Y(He4)*state.rho + screened_rates(k_d_C14_to_n_N15_reaclib)*Y(H2)*state.rho + screened_rates(k_p_C14_to_n_N14_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_C14_He4_to_n_O17_derived)*Y(He4)*state.rho + screened_rates(k_C14_d_to_n_N15_reaclib)*Y(H2)*state.rho + screened_rates(k_C14_p_to_n_N14_derived)*Y(H1)*state.rho + screened_rates(k_C14_to_n_C13_derived); jac.set(N, C14, scratch); - scratch = -screened_rates(k_n_N13_to_He4_B10_reaclib)*Y(N)*state.rho - screened_rates(k_n_N13_to_N14_reaclib)*Y(N)*state.rho - screened_rates(k_n_N13_to_p_C13_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_N13_n_to_He4_B10_derived)*Y(N)*state.rho - screened_rates(k_N13_n_to_N14_reaclib)*Y(N)*state.rho - screened_rates(k_N13_n_to_p_C13_derived)*Y(N)*state.rho; jac.set(N, N13, scratch); - scratch = screened_rates(k_He4_N14_to_n_F17_reaclib)*Y(He4)*state.rho + screened_rates(k_N14_to_n_N13_reaclib) - screened_rates(k_n_N14_to_He4_B11_reaclib)*Y(N)*state.rho - screened_rates(k_n_N14_to_N15_reaclib)*Y(N)*state.rho - screened_rates(k_n_N14_to_d_C13_reaclib)*Y(N)*state.rho - screened_rates(k_n_N14_to_p_C14_reaclib)*Y(N)*state.rho + screened_rates(k_p_N14_to_n_O14_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_N14_He4_to_n_F17_reaclib)*Y(He4)*state.rho - screened_rates(k_N14_n_to_He4_B11_derived)*Y(N)*state.rho - screened_rates(k_N14_n_to_N15_reaclib)*Y(N)*state.rho - screened_rates(k_N14_n_to_d_C13_derived)*Y(N)*state.rho - screened_rates(k_N14_n_to_p_C14_reaclib)*Y(N)*state.rho + screened_rates(k_N14_p_to_n_O14_reaclib)*Y(H1)*state.rho + screened_rates(k_N14_to_n_N13_derived); jac.set(N, N14, scratch); - scratch = screened_rates(k_He4_N15_to_n_F18_reaclib)*Y(He4)*state.rho + screened_rates(k_N15_to_n_N14_reaclib) - screened_rates(k_n_N15_to_d_C14_reaclib)*Y(N)*state.rho + screened_rates(k_p_N15_to_n_O15_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_N15_He4_to_n_F18_derived)*Y(He4)*state.rho - screened_rates(k_N15_n_to_d_C14_derived)*Y(N)*state.rho + screened_rates(k_N15_p_to_n_O15_reaclib)*Y(H1)*state.rho + screened_rates(k_N15_to_n_N14_derived); jac.set(N, N15, scratch); - scratch = -screened_rates(k_n_O14_to_O15_reaclib)*Y(N)*state.rho - screened_rates(k_n_O14_to_p_N14_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_O14_n_to_O15_reaclib)*Y(N)*state.rho - screened_rates(k_O14_n_to_p_N14_derived)*Y(N)*state.rho; jac.set(N, O14, scratch); - scratch = screened_rates(k_He4_O15_to_n_Ne18_reaclib)*Y(He4)*state.rho + screened_rates(k_O15_to_n_O14_reaclib) - screened_rates(k_n_O15_to_He4_C12_reaclib)*Y(N)*state.rho - screened_rates(k_n_O15_to_O16_reaclib)*Y(N)*state.rho - screened_rates(k_n_O15_to_p_N15_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_O15_He4_to_n_Ne18_derived)*Y(He4)*state.rho - screened_rates(k_O15_n_to_He4_C12_reaclib)*Y(N)*state.rho - screened_rates(k_O15_n_to_O16_reaclib)*Y(N)*state.rho - screened_rates(k_O15_n_to_p_N15_derived)*Y(N)*state.rho + screened_rates(k_O15_to_n_O14_derived); jac.set(N, O15, scratch); - scratch = screened_rates(k_He4_O16_to_n_Ne19_reaclib)*Y(He4)*state.rho + screened_rates(k_O16_to_n_O15_reaclib) - screened_rates(k_n_O16_to_He4_C13_reaclib)*Y(N)*state.rho - screened_rates(k_n_O16_to_O17_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_O16_He4_to_n_Ne19_derived)*Y(He4)*state.rho - screened_rates(k_O16_n_to_He4_C13_derived)*Y(N)*state.rho - screened_rates(k_O16_n_to_O17_reaclib)*Y(N)*state.rho + screened_rates(k_O16_to_n_O15_derived); jac.set(N, O16, scratch); - scratch = screened_rates(k_He4_O17_to_n_Ne20_reaclib)*Y(He4)*state.rho + screened_rates(k_O17_to_n_O16_reaclib) - screened_rates(k_n_O17_to_He4_C14_reaclib)*Y(N)*state.rho - screened_rates(k_n_O17_to_O18_reaclib)*Y(N)*state.rho + screened_rates(k_p_O17_to_n_F17_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_O17_He4_to_n_Ne20_reaclib)*Y(He4)*state.rho - screened_rates(k_O17_n_to_He4_C14_reaclib)*Y(N)*state.rho - screened_rates(k_O17_n_to_O18_reaclib)*Y(N)*state.rho + screened_rates(k_O17_p_to_n_F17_derived)*Y(H1)*state.rho + screened_rates(k_O17_to_n_O16_derived); jac.set(N, O17, scratch); - scratch = screened_rates(k_He4_O18_to_n_Ne21_reaclib)*Y(He4)*state.rho + screened_rates(k_O18_to_n_O17_reaclib) + screened_rates(k_p_O18_to_n_F18_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_O18_He4_to_n_Ne21_reaclib)*Y(He4)*state.rho + screened_rates(k_O18_p_to_n_F18_derived)*Y(H1)*state.rho + screened_rates(k_O18_to_n_O17_derived); jac.set(N, O18, scratch); - scratch = -screened_rates(k_n_F17_to_F18_reaclib)*Y(N)*state.rho - screened_rates(k_n_F17_to_He4_N14_reaclib)*Y(N)*state.rho - screened_rates(k_n_F17_to_p_O17_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_F17_n_to_F18_reaclib)*Y(N)*state.rho - screened_rates(k_F17_n_to_He4_N14_derived)*Y(N)*state.rho - screened_rates(k_F17_n_to_p_O17_reaclib)*Y(N)*state.rho; jac.set(N, F17, scratch); - scratch = screened_rates(k_F18_to_n_F17_reaclib) + screened_rates(k_He4_F18_to_n_Na21_reaclib)*Y(He4)*state.rho - screened_rates(k_n_F18_to_F19_reaclib)*Y(N)*state.rho - screened_rates(k_n_F18_to_He4_N15_reaclib)*Y(N)*state.rho - screened_rates(k_n_F18_to_p_O18_reaclib)*Y(N)*state.rho + screened_rates(k_p_F18_to_n_Ne18_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_F18_He4_to_n_Na21_derived)*Y(He4)*state.rho - screened_rates(k_F18_n_to_F19_reaclib)*Y(N)*state.rho - screened_rates(k_F18_n_to_He4_N15_reaclib)*Y(N)*state.rho - screened_rates(k_F18_n_to_p_O18_reaclib)*Y(N)*state.rho + screened_rates(k_F18_p_to_n_Ne18_derived)*Y(H1)*state.rho + screened_rates(k_F18_to_n_F17_derived); jac.set(N, F18, scratch); - scratch = screened_rates(k_F19_to_n_F18_reaclib) + screened_rates(k_He4_F19_to_n_Na22_reaclib)*Y(He4)*state.rho + screened_rates(k_p_F19_to_n_Ne19_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_F19_He4_to_n_Na22_derived)*Y(He4)*state.rho + screened_rates(k_F19_p_to_n_Ne19_reaclib)*Y(H1)*state.rho + screened_rates(k_F19_to_n_F18_derived); jac.set(N, F19, scratch); - scratch = -screened_rates(k_n_Ne18_to_He4_O15_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ne18_to_Ne19_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ne18_to_p_F18_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Ne18_n_to_He4_O15_reaclib)*Y(N)*state.rho - screened_rates(k_Ne18_n_to_Ne19_reaclib)*Y(N)*state.rho - screened_rates(k_Ne18_n_to_p_F18_reaclib)*Y(N)*state.rho; jac.set(N, Ne18, scratch); - scratch = screened_rates(k_Ne19_to_n_Ne18_reaclib) - screened_rates(k_n_Ne19_to_He4_O16_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ne19_to_Ne20_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ne19_to_p_F19_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Ne19_n_to_He4_O16_reaclib)*Y(N)*state.rho - screened_rates(k_Ne19_n_to_Ne20_reaclib)*Y(N)*state.rho - screened_rates(k_Ne19_n_to_p_F19_derived)*Y(N)*state.rho + screened_rates(k_Ne19_to_n_Ne18_derived); jac.set(N, Ne19, scratch); - scratch = screened_rates(k_He4_Ne20_to_n_Mg23_reaclib)*Y(He4)*state.rho + screened_rates(k_Ne20_to_n_Ne19_reaclib) - screened_rates(k_n_Ne20_to_He4_O17_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ne20_to_Ne21_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ne20_He4_to_n_Mg23_derived)*Y(He4)*state.rho - screened_rates(k_Ne20_n_to_He4_O17_derived)*Y(N)*state.rho - screened_rates(k_Ne20_n_to_Ne21_reaclib)*Y(N)*state.rho + screened_rates(k_Ne20_to_n_Ne19_derived); jac.set(N, Ne20, scratch); - scratch = screened_rates(k_He4_Ne21_to_n_Mg24_reaclib)*Y(He4)*state.rho + screened_rates(k_Ne21_to_n_Ne20_reaclib) - screened_rates(k_n_Ne21_to_He4_O18_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ne21_to_Ne22_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ne21_to_n_Na21_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ne21_He4_to_n_Mg24_reaclib)*Y(He4)*state.rho - screened_rates(k_Ne21_n_to_He4_O18_derived)*Y(N)*state.rho - screened_rates(k_Ne21_n_to_Ne22_reaclib)*Y(N)*state.rho + screened_rates(k_Ne21_p_to_n_Na21_derived)*Y(H1)*state.rho + screened_rates(k_Ne21_to_n_Ne20_derived); jac.set(N, Ne21, scratch); - scratch = screened_rates(k_He4_Ne22_to_n_Mg25_reaclib)*Y(He4)*state.rho + screened_rates(k_Ne22_to_n_Ne21_reaclib) + screened_rates(k_p_Ne22_to_n_Na22_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ne22_He4_to_n_Mg25_reaclib)*Y(He4)*state.rho + screened_rates(k_Ne22_p_to_n_Na22_derived)*Y(H1)*state.rho + screened_rates(k_Ne22_to_n_Ne21_derived); jac.set(N, Ne22, scratch); - scratch = -screened_rates(k_n_Na21_to_He4_F18_reaclib)*Y(N)*state.rho - screened_rates(k_n_Na21_to_Na22_reaclib)*Y(N)*state.rho - screened_rates(k_n_Na21_to_p_Ne21_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Na21_n_to_He4_F18_reaclib)*Y(N)*state.rho - screened_rates(k_Na21_n_to_Na22_reaclib)*Y(N)*state.rho - screened_rates(k_Na21_n_to_p_Ne21_reaclib)*Y(N)*state.rho; jac.set(N, Na21, scratch); - scratch = screened_rates(k_He4_Na22_to_n_Al25_reaclib)*Y(He4)*state.rho + screened_rates(k_Na22_to_n_Na21_reaclib) - screened_rates(k_n_Na22_to_He4_F19_reaclib)*Y(N)*state.rho - screened_rates(k_n_Na22_to_Na23_reaclib)*Y(N)*state.rho - screened_rates(k_n_Na22_to_p_Ne22_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Na22_He4_to_n_Al25_derived)*Y(He4)*state.rho - screened_rates(k_Na22_n_to_He4_F19_reaclib)*Y(N)*state.rho - screened_rates(k_Na22_n_to_Na23_reaclib)*Y(N)*state.rho - screened_rates(k_Na22_n_to_p_Ne22_reaclib)*Y(N)*state.rho + screened_rates(k_Na22_to_n_Na21_derived); jac.set(N, Na22, scratch); - scratch = screened_rates(k_He4_Na23_to_n_Al26_reaclib)*Y(He4)*state.rho + screened_rates(k_Na23_to_n_Na22_reaclib) + screened_rates(k_p_Na23_to_n_Mg23_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Na23_He4_to_n_Al26_derived)*Y(He4)*state.rho + screened_rates(k_Na23_p_to_n_Mg23_reaclib)*Y(H1)*state.rho + screened_rates(k_Na23_to_n_Na22_derived); jac.set(N, Na23, scratch); - scratch = -screened_rates(k_n_Mg23_to_C12_C12_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mg23_to_He4_Ne20_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mg23_to_Mg24_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mg23_to_p_Na23_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Mg23_n_to_C12_C12_reaclib)*Y(N)*state.rho - screened_rates(k_Mg23_n_to_He4_Ne20_reaclib)*Y(N)*state.rho - screened_rates(k_Mg23_n_to_Mg24_reaclib)*Y(N)*state.rho - screened_rates(k_Mg23_n_to_p_Na23_derived)*Y(N)*state.rho; jac.set(N, Mg23, scratch); - scratch = screened_rates(k_Mg24_to_n_Mg23_reaclib) - screened_rates(k_n_Mg24_to_He4_Ne21_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mg24_to_Mg25_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Mg24_n_to_He4_Ne21_derived)*Y(N)*state.rho - screened_rates(k_Mg24_n_to_Mg25_reaclib)*Y(N)*state.rho + screened_rates(k_Mg24_to_n_Mg23_derived); jac.set(N, Mg24, scratch); - scratch = screened_rates(k_He4_Mg25_to_n_Si28_reaclib)*Y(He4)*state.rho + screened_rates(k_Mg25_to_n_Mg24_reaclib) - screened_rates(k_n_Mg25_to_He4_Ne22_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mg25_to_Mg26_reaclib)*Y(N)*state.rho + screened_rates(k_p_Mg25_to_n_Al25_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mg25_He4_to_n_Si28_reaclib)*Y(He4)*state.rho - screened_rates(k_Mg25_n_to_He4_Ne22_derived)*Y(N)*state.rho - screened_rates(k_Mg25_n_to_Mg26_reaclib)*Y(N)*state.rho + screened_rates(k_Mg25_p_to_n_Al25_derived)*Y(H1)*state.rho + screened_rates(k_Mg25_to_n_Mg24_derived); jac.set(N, Mg25, scratch); - scratch = screened_rates(k_He4_Mg26_to_n_Si29_reaclib)*Y(He4)*state.rho + screened_rates(k_Mg26_to_n_Mg25_reaclib) + screened_rates(k_p_Mg26_to_n_Al26_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mg26_He4_to_n_Si29_reaclib)*Y(He4)*state.rho + screened_rates(k_Mg26_p_to_n_Al26_derived)*Y(H1)*state.rho + screened_rates(k_Mg26_to_n_Mg25_derived); jac.set(N, Mg26, scratch); - scratch = -screened_rates(k_n_Al25_to_Al26_reaclib)*Y(N)*state.rho - screened_rates(k_n_Al25_to_He4_Na22_reaclib)*Y(N)*state.rho - screened_rates(k_n_Al25_to_p_Mg25_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Al25_n_to_Al26_reaclib)*Y(N)*state.rho - screened_rates(k_Al25_n_to_He4_Na22_reaclib)*Y(N)*state.rho - screened_rates(k_Al25_n_to_p_Mg25_reaclib)*Y(N)*state.rho; jac.set(N, Al25, scratch); - scratch = screened_rates(k_Al26_to_n_Al25_reaclib) + screened_rates(k_He4_Al26_to_n_P29_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Al26_to_Al27_reaclib)*Y(N)*state.rho - screened_rates(k_n_Al26_to_He4_Na23_reaclib)*Y(N)*state.rho - screened_rates(k_n_Al26_to_p_Mg26_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Al26_He4_to_n_P29_derived)*Y(He4)*state.rho - screened_rates(k_Al26_n_to_Al27_reaclib)*Y(N)*state.rho - screened_rates(k_Al26_n_to_He4_Na23_reaclib)*Y(N)*state.rho - screened_rates(k_Al26_n_to_p_Mg26_reaclib)*Y(N)*state.rho + screened_rates(k_Al26_to_n_Al25_derived); jac.set(N, Al26, scratch); - scratch = screened_rates(k_Al27_to_n_Al26_reaclib) + screened_rates(k_He4_Al27_to_n_P30_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Al27_He4_to_n_P30_reaclib)*Y(He4)*state.rho + screened_rates(k_Al27_to_n_Al26_derived); jac.set(N, Al27, scratch); - scratch = -screened_rates(k_n_Si28_to_He4_Mg25_reaclib)*Y(N)*state.rho - screened_rates(k_n_Si28_to_Si29_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Si28_n_to_He4_Mg25_derived)*Y(N)*state.rho - screened_rates(k_Si28_n_to_Si29_reaclib)*Y(N)*state.rho; jac.set(N, Si28, scratch); - scratch = screened_rates(k_He4_Si29_to_n_S32_reaclib)*Y(He4)*state.rho + screened_rates(k_Si29_to_n_Si28_reaclib) - screened_rates(k_n_Si29_to_He4_Mg26_reaclib)*Y(N)*state.rho - screened_rates(k_n_Si29_to_Si30_reaclib)*Y(N)*state.rho + screened_rates(k_p_Si29_to_n_P29_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Si29_He4_to_n_S32_derived)*Y(He4)*state.rho - screened_rates(k_Si29_n_to_He4_Mg26_derived)*Y(N)*state.rho - screened_rates(k_Si29_n_to_Si30_reaclib)*Y(N)*state.rho + screened_rates(k_Si29_p_to_n_P29_derived)*Y(H1)*state.rho + screened_rates(k_Si29_to_n_Si28_derived); jac.set(N, Si29, scratch); - scratch = screened_rates(k_He4_Si30_to_n_S33_reaclib)*Y(He4)*state.rho + screened_rates(k_Si30_to_n_Si29_reaclib) - screened_rates(k_n_Si30_to_Si31_reaclib)*Y(N)*state.rho + screened_rates(k_p_Si30_to_n_P30_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Si30_He4_to_n_S33_derived)*Y(He4)*state.rho - screened_rates(k_Si30_n_to_Si31_reaclib)*Y(N)*state.rho + screened_rates(k_Si30_p_to_n_P30_derived)*Y(H1)*state.rho + screened_rates(k_Si30_to_n_Si29_derived); jac.set(N, Si30, scratch); - scratch = screened_rates(k_He4_Si31_to_n_S34_reaclib)*Y(He4)*state.rho + screened_rates(k_Si31_to_n_Si30_reaclib) - screened_rates(k_n_Si31_to_Si32_reaclib)*Y(N)*state.rho + screened_rates(k_p_Si31_to_n_P31_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Si31_He4_to_n_S34_reaclib)*Y(He4)*state.rho - screened_rates(k_Si31_n_to_Si32_reaclib)*Y(N)*state.rho + screened_rates(k_Si31_p_to_n_P31_reaclib)*Y(H1)*state.rho + screened_rates(k_Si31_to_n_Si30_derived); jac.set(N, Si31, scratch); - scratch = screened_rates(k_He4_Si32_to_n_S35_reaclib)*Y(He4)*state.rho + screened_rates(k_Si32_to_n_Si31_reaclib) + screened_rates(k_p_Si32_to_n_P32_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Si32_He4_to_n_S35_derived)*Y(He4)*state.rho + screened_rates(k_Si32_p_to_n_P32_derived)*Y(H1)*state.rho + screened_rates(k_Si32_to_n_Si31_derived); jac.set(N, Si32, scratch); - scratch = -screened_rates(k_n_P29_to_He4_Al26_reaclib)*Y(N)*state.rho - screened_rates(k_n_P29_to_P30_reaclib)*Y(N)*state.rho - screened_rates(k_n_P29_to_p_Si29_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_P29_n_to_He4_Al26_reaclib)*Y(N)*state.rho - screened_rates(k_P29_n_to_P30_reaclib)*Y(N)*state.rho - screened_rates(k_P29_n_to_p_Si29_reaclib)*Y(N)*state.rho; jac.set(N, P29, scratch); - scratch = screened_rates(k_He4_P30_to_n_Cl33_reaclib)*Y(He4)*state.rho + screened_rates(k_P30_to_n_P29_reaclib) - screened_rates(k_n_P30_to_He4_Al27_reaclib)*Y(N)*state.rho - screened_rates(k_n_P30_to_P31_reaclib)*Y(N)*state.rho - screened_rates(k_n_P30_to_p_Si30_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_P30_He4_to_n_Cl33_derived)*Y(He4)*state.rho - screened_rates(k_P30_n_to_He4_Al27_derived)*Y(N)*state.rho - screened_rates(k_P30_n_to_P31_reaclib)*Y(N)*state.rho - screened_rates(k_P30_n_to_p_Si30_reaclib)*Y(N)*state.rho + screened_rates(k_P30_to_n_P29_derived); jac.set(N, P30, scratch); - scratch = screened_rates(k_He4_P31_to_n_Cl34_reaclib)*Y(He4)*state.rho + screened_rates(k_P31_to_n_P30_reaclib) - screened_rates(k_n_P31_to_P32_reaclib)*Y(N)*state.rho - screened_rates(k_n_P31_to_p_Si31_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_P31_He4_to_n_Cl34_derived)*Y(He4)*state.rho - screened_rates(k_P31_n_to_P32_reaclib)*Y(N)*state.rho - screened_rates(k_P31_n_to_p_Si31_derived)*Y(N)*state.rho + screened_rates(k_P31_to_n_P30_derived); jac.set(N, P31, scratch); - scratch = screened_rates(k_He4_P32_to_n_Cl35_reaclib)*Y(He4)*state.rho + screened_rates(k_P32_to_n_P31_reaclib) - screened_rates(k_n_P32_to_P33_reaclib)*Y(N)*state.rho - screened_rates(k_n_P32_to_p_Si32_reaclib)*Y(N)*state.rho + screened_rates(k_p_P32_to_n_S32_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_P32_He4_to_n_Cl35_derived)*Y(He4)*state.rho - screened_rates(k_P32_n_to_P33_reaclib)*Y(N)*state.rho - screened_rates(k_P32_n_to_p_Si32_reaclib)*Y(N)*state.rho + screened_rates(k_P32_p_to_n_S32_reaclib)*Y(H1)*state.rho + screened_rates(k_P32_to_n_P31_derived); jac.set(N, P32, scratch); - scratch = screened_rates(k_He4_P33_to_n_Cl36_reaclib)*Y(He4)*state.rho + screened_rates(k_P33_to_n_P32_reaclib) + screened_rates(k_p_P33_to_n_S33_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_P33_He4_to_n_Cl36_derived)*Y(He4)*state.rho + screened_rates(k_P33_p_to_n_S33_derived)*Y(H1)*state.rho + screened_rates(k_P33_to_n_P32_derived); jac.set(N, P33, scratch); - scratch = -screened_rates(k_n_S32_to_He4_Si29_reaclib)*Y(N)*state.rho - screened_rates(k_n_S32_to_S33_reaclib)*Y(N)*state.rho - screened_rates(k_n_S32_to_p_P32_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_S32_n_to_He4_Si29_reaclib)*Y(N)*state.rho - screened_rates(k_S32_n_to_S33_reaclib)*Y(N)*state.rho - screened_rates(k_S32_n_to_p_P32_derived)*Y(N)*state.rho; jac.set(N, S32, scratch); - scratch = screened_rates(k_He4_S33_to_n_Ar36_reaclib)*Y(He4)*state.rho + screened_rates(k_S33_to_n_S32_reaclib) - screened_rates(k_n_S33_to_He4_Si30_reaclib)*Y(N)*state.rho - screened_rates(k_n_S33_to_S34_reaclib)*Y(N)*state.rho - screened_rates(k_n_S33_to_p_P33_reaclib)*Y(N)*state.rho + screened_rates(k_p_S33_to_n_Cl33_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_S33_He4_to_n_Ar36_derived)*Y(He4)*state.rho - screened_rates(k_S33_n_to_He4_Si30_reaclib)*Y(N)*state.rho - screened_rates(k_S33_n_to_S34_reaclib)*Y(N)*state.rho - screened_rates(k_S33_n_to_p_P33_reaclib)*Y(N)*state.rho + screened_rates(k_S33_p_to_n_Cl33_derived)*Y(H1)*state.rho + screened_rates(k_S33_to_n_S32_derived); jac.set(N, S33, scratch); - scratch = screened_rates(k_He4_S34_to_n_Ar37_reaclib)*Y(He4)*state.rho + screened_rates(k_S34_to_n_S33_reaclib) - screened_rates(k_n_S34_to_He4_Si31_reaclib)*Y(N)*state.rho - screened_rates(k_n_S34_to_S35_reaclib)*Y(N)*state.rho + screened_rates(k_p_S34_to_n_Cl34_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_S34_He4_to_n_Ar37_reaclib)*Y(He4)*state.rho - screened_rates(k_S34_n_to_He4_Si31_derived)*Y(N)*state.rho - screened_rates(k_S34_n_to_S35_reaclib)*Y(N)*state.rho + screened_rates(k_S34_p_to_n_Cl34_derived)*Y(H1)*state.rho + screened_rates(k_S34_to_n_S33_derived); jac.set(N, S34, scratch); - scratch = screened_rates(k_He4_S35_to_n_Ar38_reaclib)*Y(He4)*state.rho + screened_rates(k_S35_to_n_S34_reaclib) - screened_rates(k_n_S35_to_He4_Si32_reaclib)*Y(N)*state.rho - screened_rates(k_n_S35_to_S36_reaclib)*Y(N)*state.rho + screened_rates(k_p_S35_to_n_Cl35_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_S35_He4_to_n_Ar38_reaclib)*Y(He4)*state.rho - screened_rates(k_S35_n_to_He4_Si32_reaclib)*Y(N)*state.rho - screened_rates(k_S35_n_to_S36_reaclib)*Y(N)*state.rho + screened_rates(k_S35_p_to_n_Cl35_derived)*Y(H1)*state.rho + screened_rates(k_S35_to_n_S34_derived); jac.set(N, S35, scratch); - scratch = screened_rates(k_He4_S36_to_n_Ar39_reaclib)*Y(He4)*state.rho + screened_rates(k_S36_to_n_S35_reaclib) + screened_rates(k_p_S36_to_n_Cl36_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_S36_He4_to_n_Ar39_derived)*Y(He4)*state.rho + screened_rates(k_S36_p_to_n_Cl36_derived)*Y(H1)*state.rho + screened_rates(k_S36_to_n_S35_derived); jac.set(N, S36, scratch); - scratch = -screened_rates(k_n_Cl33_to_Cl34_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cl33_to_He4_P30_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cl33_to_p_S33_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Cl33_n_to_Cl34_reaclib)*Y(N)*state.rho - screened_rates(k_Cl33_n_to_He4_P30_reaclib)*Y(N)*state.rho - screened_rates(k_Cl33_n_to_p_S33_reaclib)*Y(N)*state.rho; jac.set(N, Cl33, scratch); - scratch = screened_rates(k_Cl34_to_n_Cl33_reaclib) + screened_rates(k_He4_Cl34_to_n_K37_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cl34_to_Cl35_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cl34_to_He4_P31_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cl34_to_p_S34_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cl34_He4_to_n_K37_derived)*Y(He4)*state.rho - screened_rates(k_Cl34_n_to_Cl35_reaclib)*Y(N)*state.rho - screened_rates(k_Cl34_n_to_He4_P31_reaclib)*Y(N)*state.rho - screened_rates(k_Cl34_n_to_p_S34_reaclib)*Y(N)*state.rho + screened_rates(k_Cl34_to_n_Cl33_derived); jac.set(N, Cl34, scratch); - scratch = screened_rates(k_Cl35_to_n_Cl34_reaclib) + screened_rates(k_He4_Cl35_to_n_K38_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cl35_to_Cl36_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cl35_to_He4_P32_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cl35_to_p_S35_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cl35_He4_to_n_K38_derived)*Y(He4)*state.rho - screened_rates(k_Cl35_n_to_Cl36_reaclib)*Y(N)*state.rho - screened_rates(k_Cl35_n_to_He4_P32_reaclib)*Y(N)*state.rho - screened_rates(k_Cl35_n_to_p_S35_reaclib)*Y(N)*state.rho + screened_rates(k_Cl35_to_n_Cl34_derived); jac.set(N, Cl35, scratch); - scratch = screened_rates(k_Cl36_to_n_Cl35_reaclib) + screened_rates(k_He4_Cl36_to_n_K39_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cl36_to_Cl37_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cl36_to_He4_P33_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cl36_to_p_S36_reaclib)*Y(N)*state.rho + screened_rates(k_p_Cl36_to_n_Ar36_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cl36_He4_to_n_K39_derived)*Y(He4)*state.rho - screened_rates(k_Cl36_n_to_Cl37_reaclib)*Y(N)*state.rho - screened_rates(k_Cl36_n_to_He4_P33_reaclib)*Y(N)*state.rho - screened_rates(k_Cl36_n_to_p_S36_reaclib)*Y(N)*state.rho + screened_rates(k_Cl36_p_to_n_Ar36_derived)*Y(H1)*state.rho + screened_rates(k_Cl36_to_n_Cl35_derived); jac.set(N, Cl36, scratch); - scratch = screened_rates(k_Cl37_to_n_Cl36_reaclib) + screened_rates(k_He4_Cl37_to_n_K40_reaclib)*Y(He4)*state.rho + screened_rates(k_p_Cl37_to_n_Ar37_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cl37_He4_to_n_K40_derived)*Y(He4)*state.rho + screened_rates(k_Cl37_p_to_n_Ar37_derived)*Y(H1)*state.rho + screened_rates(k_Cl37_to_n_Cl36_derived); jac.set(N, Cl37, scratch); - scratch = -screened_rates(k_n_Ar36_to_Ar37_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ar36_to_He4_S33_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ar36_to_p_Cl36_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Ar36_n_to_Ar37_reaclib)*Y(N)*state.rho - screened_rates(k_Ar36_n_to_He4_S33_reaclib)*Y(N)*state.rho - screened_rates(k_Ar36_n_to_p_Cl36_reaclib)*Y(N)*state.rho; jac.set(N, Ar36, scratch); - scratch = screened_rates(k_Ar37_to_n_Ar36_reaclib) + screened_rates(k_He4_Ar37_to_n_Ca40_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Ar37_to_Ar38_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ar37_to_He4_S34_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ar37_to_p_Cl37_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ar37_to_n_K37_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ar37_He4_to_n_Ca40_derived)*Y(He4)*state.rho - screened_rates(k_Ar37_n_to_Ar38_reaclib)*Y(N)*state.rho - screened_rates(k_Ar37_n_to_He4_S34_derived)*Y(N)*state.rho - screened_rates(k_Ar37_n_to_p_Cl37_reaclib)*Y(N)*state.rho + screened_rates(k_Ar37_p_to_n_K37_derived)*Y(H1)*state.rho + screened_rates(k_Ar37_to_n_Ar36_derived); jac.set(N, Ar37, scratch); - scratch = screened_rates(k_Ar38_to_n_Ar37_reaclib) + screened_rates(k_He4_Ar38_to_n_Ca41_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Ar38_to_Ar39_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ar38_to_He4_S35_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ar38_to_n_K38_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ar38_He4_to_n_Ca41_derived)*Y(He4)*state.rho - screened_rates(k_Ar38_n_to_Ar39_reaclib)*Y(N)*state.rho - screened_rates(k_Ar38_n_to_He4_S35_derived)*Y(N)*state.rho + screened_rates(k_Ar38_p_to_n_K38_derived)*Y(H1)*state.rho + screened_rates(k_Ar38_to_n_Ar37_derived); jac.set(N, Ar38, scratch); - scratch = screened_rates(k_Ar39_to_n_Ar38_reaclib) + screened_rates(k_He4_Ar39_to_n_Ca42_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Ar39_to_Ar40_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ar39_to_He4_S36_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ar39_to_n_K39_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ar39_He4_to_n_Ca42_derived)*Y(He4)*state.rho - screened_rates(k_Ar39_n_to_Ar40_reaclib)*Y(N)*state.rho - screened_rates(k_Ar39_n_to_He4_S36_reaclib)*Y(N)*state.rho + screened_rates(k_Ar39_p_to_n_K39_derived)*Y(H1)*state.rho + screened_rates(k_Ar39_to_n_Ar38_derived); jac.set(N, Ar39, scratch); - scratch = screened_rates(k_Ar40_to_n_Ar39_reaclib) + screened_rates(k_He4_Ar40_to_n_Ca43_reaclib)*Y(He4)*state.rho + screened_rates(k_p_Ar40_to_n_K40_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ar40_He4_to_n_Ca43_derived)*Y(He4)*state.rho + screened_rates(k_Ar40_p_to_n_K40_derived)*Y(H1)*state.rho + screened_rates(k_Ar40_to_n_Ar39_derived); jac.set(N, Ar40, scratch); - scratch = -screened_rates(k_n_K37_to_He4_Cl34_reaclib)*Y(N)*state.rho - screened_rates(k_n_K37_to_K38_reaclib)*Y(N)*state.rho - screened_rates(k_n_K37_to_p_Ar37_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_K37_n_to_He4_Cl34_reaclib)*Y(N)*state.rho - screened_rates(k_K37_n_to_K38_reaclib)*Y(N)*state.rho - screened_rates(k_K37_n_to_p_Ar37_reaclib)*Y(N)*state.rho; jac.set(N, K37, scratch); - scratch = screened_rates(k_K38_to_n_K37_reaclib) - screened_rates(k_n_K38_to_He4_Cl35_reaclib)*Y(N)*state.rho - screened_rates(k_n_K38_to_K39_reaclib)*Y(N)*state.rho - screened_rates(k_n_K38_to_p_Ar38_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_K38_n_to_He4_Cl35_reaclib)*Y(N)*state.rho - screened_rates(k_K38_n_to_K39_reaclib)*Y(N)*state.rho - screened_rates(k_K38_n_to_p_Ar38_reaclib)*Y(N)*state.rho + screened_rates(k_K38_to_n_K37_derived); jac.set(N, K38, scratch); - scratch = screened_rates(k_K39_to_n_K38_reaclib) - screened_rates(k_n_K39_to_He4_Cl36_reaclib)*Y(N)*state.rho - screened_rates(k_n_K39_to_K40_reaclib)*Y(N)*state.rho - screened_rates(k_n_K39_to_p_Ar39_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_K39_n_to_He4_Cl36_reaclib)*Y(N)*state.rho - screened_rates(k_K39_n_to_K40_reaclib)*Y(N)*state.rho - screened_rates(k_K39_n_to_p_Ar39_reaclib)*Y(N)*state.rho + screened_rates(k_K39_to_n_K38_derived); jac.set(N, K39, scratch); - scratch = screened_rates(k_He4_K40_to_n_Sc43_reaclib)*Y(He4)*state.rho + screened_rates(k_K40_to_n_K39_reaclib) - screened_rates(k_n_K40_to_He4_Cl37_reaclib)*Y(N)*state.rho - screened_rates(k_n_K40_to_K41_reaclib)*Y(N)*state.rho - screened_rates(k_n_K40_to_p_Ar40_reaclib)*Y(N)*state.rho + screened_rates(k_p_K40_to_n_Ca40_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_K40_He4_to_n_Sc43_derived)*Y(He4)*state.rho - screened_rates(k_K40_n_to_He4_Cl37_reaclib)*Y(N)*state.rho - screened_rates(k_K40_n_to_K41_reaclib)*Y(N)*state.rho - screened_rates(k_K40_n_to_p_Ar40_reaclib)*Y(N)*state.rho + screened_rates(k_K40_p_to_n_Ca40_reaclib)*Y(H1)*state.rho + screened_rates(k_K40_to_n_K39_derived); jac.set(N, K40, scratch); - scratch = screened_rates(k_He4_K41_to_n_Sc44_reaclib)*Y(He4)*state.rho + screened_rates(k_K41_to_n_K40_reaclib) + screened_rates(k_p_K41_to_n_Ca41_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_K41_He4_to_n_Sc44_reaclib)*Y(He4)*state.rho + screened_rates(k_K41_p_to_n_Ca41_reaclib)*Y(H1)*state.rho + screened_rates(k_K41_to_n_K40_derived); jac.set(N, K41, scratch); - scratch = -screened_rates(k_n_Ca40_to_Ca41_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ca40_to_He4_Ar37_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ca40_to_p_K40_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Ca40_n_to_Ca41_reaclib)*Y(N)*state.rho - screened_rates(k_Ca40_n_to_He4_Ar37_reaclib)*Y(N)*state.rho - screened_rates(k_Ca40_n_to_p_K40_derived)*Y(N)*state.rho; jac.set(N, Ca40, scratch); - scratch = screened_rates(k_Ca41_to_n_Ca40_reaclib) + screened_rates(k_He4_Ca41_to_n_Ti44_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Ca41_to_Ca42_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ca41_to_He4_Ar38_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ca41_to_p_K41_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ca41_He4_to_n_Ti44_derived)*Y(He4)*state.rho - screened_rates(k_Ca41_n_to_Ca42_reaclib)*Y(N)*state.rho - screened_rates(k_Ca41_n_to_He4_Ar38_reaclib)*Y(N)*state.rho - screened_rates(k_Ca41_n_to_p_K41_derived)*Y(N)*state.rho + screened_rates(k_Ca41_to_n_Ca40_derived); jac.set(N, Ca41, scratch); - scratch = screened_rates(k_Ca42_to_n_Ca41_reaclib) + screened_rates(k_He4_Ca42_to_n_Ti45_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Ca42_to_Ca43_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ca42_to_He4_Ar39_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ca42_He4_to_n_Ti45_derived)*Y(He4)*state.rho - screened_rates(k_Ca42_n_to_Ca43_reaclib)*Y(N)*state.rho - screened_rates(k_Ca42_n_to_He4_Ar39_reaclib)*Y(N)*state.rho + screened_rates(k_Ca42_to_n_Ca41_derived); jac.set(N, Ca42, scratch); - scratch = screened_rates(k_Ca43_to_n_Ca42_reaclib) + screened_rates(k_He4_Ca43_to_n_Ti46_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Ca43_to_Ca44_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ca43_to_He4_Ar40_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ca43_to_n_Sc43_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca43_He4_to_n_Ti46_reaclib)*Y(He4)*state.rho - screened_rates(k_Ca43_n_to_Ca44_reaclib)*Y(N)*state.rho - screened_rates(k_Ca43_n_to_He4_Ar40_reaclib)*Y(N)*state.rho + screened_rates(k_Ca43_p_to_n_Sc43_derived)*Y(H1)*state.rho + screened_rates(k_Ca43_to_n_Ca42_derived); jac.set(N, Ca43, scratch); - scratch = screened_rates(k_Ca44_to_n_Ca43_reaclib) + screened_rates(k_He4_Ca44_to_n_Ti47_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Ca44_to_Ca45_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ca44_to_n_Sc44_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca44_He4_to_n_Ti47_derived)*Y(He4)*state.rho - screened_rates(k_Ca44_n_to_Ca45_reaclib)*Y(N)*state.rho + screened_rates(k_Ca44_p_to_n_Sc44_derived)*Y(H1)*state.rho + screened_rates(k_Ca44_to_n_Ca43_derived); jac.set(N, Ca44, scratch); - scratch = screened_rates(k_Ca45_to_n_Ca44_reaclib) + screened_rates(k_He4_Ca45_to_n_Ti48_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Ca45_to_Ca46_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ca45_to_n_Sc45_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca45_He4_to_n_Ti48_reaclib)*Y(He4)*state.rho - screened_rates(k_Ca45_n_to_Ca46_reaclib)*Y(N)*state.rho + screened_rates(k_Ca45_p_to_n_Sc45_derived)*Y(H1)*state.rho + screened_rates(k_Ca45_to_n_Ca44_derived); jac.set(N, Ca45, scratch); - scratch = screened_rates(k_Ca46_to_n_Ca45_reaclib) + screened_rates(k_He4_Ca46_to_n_Ti49_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Ca46_to_Ca47_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ca46_to_n_Sc46_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca46_He4_to_n_Ti49_derived)*Y(He4)*state.rho - screened_rates(k_Ca46_n_to_Ca47_reaclib)*Y(N)*state.rho + screened_rates(k_Ca46_p_to_n_Sc46_derived)*Y(H1)*state.rho + screened_rates(k_Ca46_to_n_Ca45_derived); jac.set(N, Ca46, scratch); - scratch = screened_rates(k_Ca47_to_n_Ca46_reaclib) + screened_rates(k_He4_Ca47_to_n_Ti50_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Ca47_to_Ca48_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ca47_to_n_Sc47_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca47_He4_to_n_Ti50_reaclib)*Y(He4)*state.rho - screened_rates(k_Ca47_n_to_Ca48_reaclib)*Y(N)*state.rho + screened_rates(k_Ca47_p_to_n_Sc47_reaclib)*Y(H1)*state.rho + screened_rates(k_Ca47_to_n_Ca46_derived); jac.set(N, Ca47, scratch); - scratch = screened_rates(k_Ca48_to_n_Ca47_reaclib) + screened_rates(k_He4_Ca48_to_n_Ti51_reaclib)*Y(He4)*state.rho + screened_rates(k_p_Ca48_to_n_Sc48_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca48_He4_to_n_Ti51_derived)*Y(He4)*state.rho + screened_rates(k_Ca48_p_to_n_Sc48_derived)*Y(H1)*state.rho + screened_rates(k_Ca48_to_n_Ca47_derived); jac.set(N, Ca48, scratch); - scratch = screened_rates(k_He4_Sc43_to_n_V46_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Sc43_to_He4_K40_reaclib)*Y(N)*state.rho - screened_rates(k_n_Sc43_to_Sc44_reaclib)*Y(N)*state.rho - screened_rates(k_n_Sc43_to_p_Ca43_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Sc43_He4_to_n_V46_derived)*Y(He4)*state.rho - screened_rates(k_Sc43_n_to_He4_K40_reaclib)*Y(N)*state.rho - screened_rates(k_Sc43_n_to_Sc44_reaclib)*Y(N)*state.rho - screened_rates(k_Sc43_n_to_p_Ca43_reaclib)*Y(N)*state.rho; jac.set(N, Sc43, scratch); - scratch = screened_rates(k_He4_Sc44_to_n_V47_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc44_to_n_Sc43_reaclib) - screened_rates(k_n_Sc44_to_He4_K41_reaclib)*Y(N)*state.rho - screened_rates(k_n_Sc44_to_Sc45_reaclib)*Y(N)*state.rho - screened_rates(k_n_Sc44_to_p_Ca44_reaclib)*Y(N)*state.rho + screened_rates(k_p_Sc44_to_n_Ti44_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc44_He4_to_n_V47_derived)*Y(He4)*state.rho - screened_rates(k_Sc44_n_to_He4_K41_derived)*Y(N)*state.rho - screened_rates(k_Sc44_n_to_Sc45_reaclib)*Y(N)*state.rho - screened_rates(k_Sc44_n_to_p_Ca44_reaclib)*Y(N)*state.rho + screened_rates(k_Sc44_p_to_n_Ti44_derived)*Y(H1)*state.rho + screened_rates(k_Sc44_to_n_Sc43_derived); jac.set(N, Sc44, scratch); - scratch = screened_rates(k_He4_Sc45_to_n_V48_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc45_to_n_Sc44_reaclib) - screened_rates(k_n_Sc45_to_Sc46_reaclib)*Y(N)*state.rho - screened_rates(k_n_Sc45_to_p_Ca45_reaclib)*Y(N)*state.rho + screened_rates(k_p_Sc45_to_n_Ti45_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc45_He4_to_n_V48_derived)*Y(He4)*state.rho - screened_rates(k_Sc45_n_to_Sc46_reaclib)*Y(N)*state.rho - screened_rates(k_Sc45_n_to_p_Ca45_reaclib)*Y(N)*state.rho + screened_rates(k_Sc45_p_to_n_Ti45_derived)*Y(H1)*state.rho + screened_rates(k_Sc45_to_n_Sc44_derived); jac.set(N, Sc45, scratch); - scratch = screened_rates(k_He4_Sc46_to_n_V49_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc46_to_n_Sc45_reaclib) - screened_rates(k_n_Sc46_to_Sc47_reaclib)*Y(N)*state.rho - screened_rates(k_n_Sc46_to_p_Ca46_reaclib)*Y(N)*state.rho + screened_rates(k_p_Sc46_to_n_Ti46_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc46_He4_to_n_V49_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc46_n_to_Sc47_reaclib)*Y(N)*state.rho - screened_rates(k_Sc46_n_to_p_Ca46_reaclib)*Y(N)*state.rho + screened_rates(k_Sc46_p_to_n_Ti46_reaclib)*Y(H1)*state.rho + screened_rates(k_Sc46_to_n_Sc45_derived); jac.set(N, Sc46, scratch); - scratch = screened_rates(k_He4_Sc47_to_n_V50_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc47_to_n_Sc46_reaclib) - screened_rates(k_n_Sc47_to_Sc48_reaclib)*Y(N)*state.rho - screened_rates(k_n_Sc47_to_p_Ca47_reaclib)*Y(N)*state.rho + screened_rates(k_p_Sc47_to_n_Ti47_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc47_He4_to_n_V50_derived)*Y(He4)*state.rho - screened_rates(k_Sc47_n_to_Sc48_reaclib)*Y(N)*state.rho - screened_rates(k_Sc47_n_to_p_Ca47_derived)*Y(N)*state.rho + screened_rates(k_Sc47_p_to_n_Ti47_derived)*Y(H1)*state.rho + screened_rates(k_Sc47_to_n_Sc46_derived); jac.set(N, Sc47, scratch); - scratch = screened_rates(k_He4_Sc48_to_n_V51_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc48_to_n_Sc47_reaclib) - screened_rates(k_n_Sc48_to_Sc49_reaclib)*Y(N)*state.rho - screened_rates(k_n_Sc48_to_p_Ca48_reaclib)*Y(N)*state.rho + screened_rates(k_p_Sc48_to_n_Ti48_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc48_He4_to_n_V51_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc48_n_to_Sc49_reaclib)*Y(N)*state.rho - screened_rates(k_Sc48_n_to_p_Ca48_reaclib)*Y(N)*state.rho + screened_rates(k_Sc48_p_to_n_Ti48_reaclib)*Y(H1)*state.rho + screened_rates(k_Sc48_to_n_Sc47_derived); jac.set(N, Sc48, scratch); - scratch = screened_rates(k_He4_Sc49_to_n_V52_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc49_to_n_Sc48_reaclib) + screened_rates(k_p_Sc49_to_n_Ti49_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc49_He4_to_n_V52_derived)*Y(He4)*state.rho + screened_rates(k_Sc49_p_to_n_Ti49_reaclib)*Y(H1)*state.rho + screened_rates(k_Sc49_to_n_Sc48_derived); jac.set(N, Sc49, scratch); - scratch = -screened_rates(k_n_Ti44_to_He4_Ca41_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti44_to_Ti45_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti44_to_p_Sc44_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Ti44_n_to_He4_Ca41_reaclib)*Y(N)*state.rho - screened_rates(k_Ti44_n_to_Ti45_reaclib)*Y(N)*state.rho - screened_rates(k_Ti44_n_to_p_Sc44_reaclib)*Y(N)*state.rho; jac.set(N, Ti44, scratch); - scratch = screened_rates(k_He4_Ti45_to_n_Cr48_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti45_to_n_Ti44_reaclib) - screened_rates(k_n_Ti45_to_He4_Ca42_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti45_to_Ti46_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti45_to_p_Sc45_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ti45_He4_to_n_Cr48_derived)*Y(He4)*state.rho - screened_rates(k_Ti45_n_to_He4_Ca42_reaclib)*Y(N)*state.rho - screened_rates(k_Ti45_n_to_Ti46_reaclib)*Y(N)*state.rho - screened_rates(k_Ti45_n_to_p_Sc45_reaclib)*Y(N)*state.rho + screened_rates(k_Ti45_to_n_Ti44_derived); jac.set(N, Ti45, scratch); - scratch = screened_rates(k_He4_Ti46_to_n_Cr49_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti46_to_n_Ti45_reaclib) - screened_rates(k_n_Ti46_to_He4_Ca43_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti46_to_Ti47_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti46_to_p_Sc46_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ti46_to_n_V46_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti46_He4_to_n_Cr49_derived)*Y(He4)*state.rho - screened_rates(k_Ti46_n_to_He4_Ca43_derived)*Y(N)*state.rho - screened_rates(k_Ti46_n_to_Ti47_reaclib)*Y(N)*state.rho - screened_rates(k_Ti46_n_to_p_Sc46_derived)*Y(N)*state.rho + screened_rates(k_Ti46_p_to_n_V46_derived)*Y(H1)*state.rho + screened_rates(k_Ti46_to_n_Ti45_derived); jac.set(N, Ti46, scratch); - scratch = screened_rates(k_He4_Ti47_to_n_Cr50_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti47_to_n_Ti46_reaclib) - screened_rates(k_n_Ti47_to_He4_Ca44_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti47_to_Ti48_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti47_to_p_Sc47_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ti47_to_n_V47_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti47_He4_to_n_Cr50_derived)*Y(He4)*state.rho - screened_rates(k_Ti47_n_to_He4_Ca44_reaclib)*Y(N)*state.rho - screened_rates(k_Ti47_n_to_Ti48_reaclib)*Y(N)*state.rho - screened_rates(k_Ti47_n_to_p_Sc47_reaclib)*Y(N)*state.rho + screened_rates(k_Ti47_p_to_n_V47_derived)*Y(H1)*state.rho + screened_rates(k_Ti47_to_n_Ti46_derived); jac.set(N, Ti47, scratch); - scratch = screened_rates(k_He4_Ti48_to_n_Cr51_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti48_to_n_Ti47_reaclib) - screened_rates(k_n_Ti48_to_He4_Ca45_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti48_to_Ti49_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti48_to_p_Sc48_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ti48_to_n_V48_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti48_He4_to_n_Cr51_derived)*Y(He4)*state.rho - screened_rates(k_Ti48_n_to_He4_Ca45_derived)*Y(N)*state.rho - screened_rates(k_Ti48_n_to_Ti49_reaclib)*Y(N)*state.rho - screened_rates(k_Ti48_n_to_p_Sc48_derived)*Y(N)*state.rho + screened_rates(k_Ti48_p_to_n_V48_derived)*Y(H1)*state.rho + screened_rates(k_Ti48_to_n_Ti47_derived); jac.set(N, Ti48, scratch); - scratch = screened_rates(k_He4_Ti49_to_n_Cr52_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti49_to_n_Ti48_reaclib) - screened_rates(k_n_Ti49_to_He4_Ca46_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti49_to_Ti50_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti49_to_p_Sc49_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ti49_to_n_V49_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti49_He4_to_n_Cr52_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti49_n_to_He4_Ca46_reaclib)*Y(N)*state.rho - screened_rates(k_Ti49_n_to_Ti50_reaclib)*Y(N)*state.rho - screened_rates(k_Ti49_n_to_p_Sc49_derived)*Y(N)*state.rho + screened_rates(k_Ti49_p_to_n_V49_derived)*Y(H1)*state.rho + screened_rates(k_Ti49_to_n_Ti48_derived); jac.set(N, Ti49, scratch); - scratch = screened_rates(k_He4_Ti50_to_n_Cr53_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti50_to_n_Ti49_reaclib) - screened_rates(k_n_Ti50_to_He4_Ca47_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti50_to_Ti51_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ti50_to_n_V50_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti50_He4_to_n_Cr53_derived)*Y(He4)*state.rho - screened_rates(k_Ti50_n_to_He4_Ca47_derived)*Y(N)*state.rho - screened_rates(k_Ti50_n_to_Ti51_reaclib)*Y(N)*state.rho + screened_rates(k_Ti50_p_to_n_V50_derived)*Y(H1)*state.rho + screened_rates(k_Ti50_to_n_Ti49_derived); jac.set(N, Ti50, scratch); - scratch = screened_rates(k_He4_Ti51_to_n_Cr54_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti51_to_n_Ti50_reaclib) - screened_rates(k_n_Ti51_to_He4_Ca48_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ti51_to_n_V51_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti51_He4_to_n_Cr54_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti51_n_to_He4_Ca48_reaclib)*Y(N)*state.rho + screened_rates(k_Ti51_p_to_n_V51_reaclib)*Y(H1)*state.rho + screened_rates(k_Ti51_to_n_Ti50_derived); jac.set(N, Ti51, scratch); - scratch = -screened_rates(k_n_V46_to_He4_Sc43_reaclib)*Y(N)*state.rho - screened_rates(k_n_V46_to_V47_reaclib)*Y(N)*state.rho - screened_rates(k_n_V46_to_p_Ti46_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_V46_n_to_He4_Sc43_reaclib)*Y(N)*state.rho - screened_rates(k_V46_n_to_V47_reaclib)*Y(N)*state.rho - screened_rates(k_V46_n_to_p_Ti46_reaclib)*Y(N)*state.rho; jac.set(N, V46, scratch); - scratch = screened_rates(k_He4_V47_to_n_Mn50_reaclib)*Y(He4)*state.rho + screened_rates(k_V47_to_n_V46_reaclib) - screened_rates(k_n_V47_to_He4_Sc44_reaclib)*Y(N)*state.rho - screened_rates(k_n_V47_to_V48_reaclib)*Y(N)*state.rho - screened_rates(k_n_V47_to_p_Ti47_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_V47_He4_to_n_Mn50_derived)*Y(He4)*state.rho - screened_rates(k_V47_n_to_He4_Sc44_reaclib)*Y(N)*state.rho - screened_rates(k_V47_n_to_V48_reaclib)*Y(N)*state.rho - screened_rates(k_V47_n_to_p_Ti47_reaclib)*Y(N)*state.rho + screened_rates(k_V47_to_n_V46_derived); jac.set(N, V47, scratch); - scratch = screened_rates(k_He4_V48_to_n_Mn51_reaclib)*Y(He4)*state.rho + screened_rates(k_V48_to_n_V47_reaclib) - screened_rates(k_n_V48_to_He4_Sc45_reaclib)*Y(N)*state.rho - screened_rates(k_n_V48_to_V49_reaclib)*Y(N)*state.rho - screened_rates(k_n_V48_to_p_Ti48_reaclib)*Y(N)*state.rho + screened_rates(k_p_V48_to_n_Cr48_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V48_He4_to_n_Mn51_derived)*Y(He4)*state.rho - screened_rates(k_V48_n_to_He4_Sc45_reaclib)*Y(N)*state.rho - screened_rates(k_V48_n_to_V49_reaclib)*Y(N)*state.rho - screened_rates(k_V48_n_to_p_Ti48_reaclib)*Y(N)*state.rho + screened_rates(k_V48_p_to_n_Cr48_derived)*Y(H1)*state.rho + screened_rates(k_V48_to_n_V47_derived); jac.set(N, V48, scratch); - scratch = screened_rates(k_He4_V49_to_n_Mn52_reaclib)*Y(He4)*state.rho + screened_rates(k_V49_to_n_V48_reaclib) - screened_rates(k_n_V49_to_He4_Sc46_reaclib)*Y(N)*state.rho - screened_rates(k_n_V49_to_V50_reaclib)*Y(N)*state.rho - screened_rates(k_n_V49_to_p_Ti49_reaclib)*Y(N)*state.rho + screened_rates(k_p_V49_to_n_Cr49_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V49_He4_to_n_Mn52_derived)*Y(He4)*state.rho - screened_rates(k_V49_n_to_He4_Sc46_derived)*Y(N)*state.rho - screened_rates(k_V49_n_to_V50_reaclib)*Y(N)*state.rho - screened_rates(k_V49_n_to_p_Ti49_reaclib)*Y(N)*state.rho + screened_rates(k_V49_p_to_n_Cr49_derived)*Y(H1)*state.rho + screened_rates(k_V49_to_n_V48_derived); jac.set(N, V49, scratch); - scratch = screened_rates(k_He4_V50_to_n_Mn53_reaclib)*Y(He4)*state.rho + screened_rates(k_V50_to_n_V49_reaclib) - screened_rates(k_n_V50_to_He4_Sc47_reaclib)*Y(N)*state.rho - screened_rates(k_n_V50_to_V51_reaclib)*Y(N)*state.rho - screened_rates(k_n_V50_to_p_Ti50_reaclib)*Y(N)*state.rho + screened_rates(k_p_V50_to_n_Cr50_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V50_He4_to_n_Mn53_derived)*Y(He4)*state.rho - screened_rates(k_V50_n_to_He4_Sc47_reaclib)*Y(N)*state.rho - screened_rates(k_V50_n_to_V51_reaclib)*Y(N)*state.rho - screened_rates(k_V50_n_to_p_Ti50_reaclib)*Y(N)*state.rho + screened_rates(k_V50_p_to_n_Cr50_reaclib)*Y(H1)*state.rho + screened_rates(k_V50_to_n_V49_derived); jac.set(N, V50, scratch); - scratch = screened_rates(k_He4_V51_to_n_Mn54_reaclib)*Y(He4)*state.rho + screened_rates(k_V51_to_n_V50_reaclib) - screened_rates(k_n_V51_to_He4_Sc48_reaclib)*Y(N)*state.rho - screened_rates(k_n_V51_to_V52_reaclib)*Y(N)*state.rho - screened_rates(k_n_V51_to_p_Ti51_reaclib)*Y(N)*state.rho + screened_rates(k_p_V51_to_n_Cr51_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V51_He4_to_n_Mn54_derived)*Y(He4)*state.rho - screened_rates(k_V51_n_to_He4_Sc48_derived)*Y(N)*state.rho - screened_rates(k_V51_n_to_V52_reaclib)*Y(N)*state.rho - screened_rates(k_V51_n_to_p_Ti51_derived)*Y(N)*state.rho + screened_rates(k_V51_p_to_n_Cr51_derived)*Y(H1)*state.rho + screened_rates(k_V51_to_n_V50_derived); jac.set(N, V51, scratch); - scratch = screened_rates(k_He4_V52_to_n_Mn55_reaclib)*Y(He4)*state.rho + screened_rates(k_V52_to_n_V51_reaclib) - screened_rates(k_n_V52_to_He4_Sc49_reaclib)*Y(N)*state.rho + screened_rates(k_p_V52_to_n_Cr52_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V52_He4_to_n_Mn55_reaclib)*Y(He4)*state.rho - screened_rates(k_V52_n_to_He4_Sc49_reaclib)*Y(N)*state.rho + screened_rates(k_V52_p_to_n_Cr52_reaclib)*Y(H1)*state.rho + screened_rates(k_V52_to_n_V51_derived); jac.set(N, V52, scratch); - scratch = -screened_rates(k_n_Cr48_to_Cr49_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cr48_to_He4_Ti45_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cr48_to_p_V48_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Cr48_n_to_Cr49_reaclib)*Y(N)*state.rho - screened_rates(k_Cr48_n_to_He4_Ti45_reaclib)*Y(N)*state.rho - screened_rates(k_Cr48_n_to_p_V48_reaclib)*Y(N)*state.rho; jac.set(N, Cr48, scratch); - scratch = screened_rates(k_Cr49_to_n_Cr48_reaclib) + screened_rates(k_He4_Cr49_to_n_Fe52_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cr49_to_Cr50_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cr49_to_He4_Ti46_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cr49_to_p_V49_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cr49_He4_to_n_Fe52_derived)*Y(He4)*state.rho - screened_rates(k_Cr49_n_to_Cr50_reaclib)*Y(N)*state.rho - screened_rates(k_Cr49_n_to_He4_Ti46_reaclib)*Y(N)*state.rho - screened_rates(k_Cr49_n_to_p_V49_reaclib)*Y(N)*state.rho + screened_rates(k_Cr49_to_n_Cr48_derived); jac.set(N, Cr49, scratch); - scratch = screened_rates(k_Cr50_to_n_Cr49_reaclib) + screened_rates(k_He4_Cr50_to_n_Fe53_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cr50_to_Cr51_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cr50_to_He4_Ti47_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cr50_to_p_V50_reaclib)*Y(N)*state.rho + screened_rates(k_p_Cr50_to_n_Mn50_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr50_He4_to_n_Fe53_derived)*Y(He4)*state.rho - screened_rates(k_Cr50_n_to_Cr51_reaclib)*Y(N)*state.rho - screened_rates(k_Cr50_n_to_He4_Ti47_reaclib)*Y(N)*state.rho - screened_rates(k_Cr50_n_to_p_V50_derived)*Y(N)*state.rho + screened_rates(k_Cr50_p_to_n_Mn50_derived)*Y(H1)*state.rho + screened_rates(k_Cr50_to_n_Cr49_derived); jac.set(N, Cr50, scratch); - scratch = screened_rates(k_Cr51_to_n_Cr50_reaclib) + screened_rates(k_He4_Cr51_to_n_Fe54_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cr51_to_Cr52_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cr51_to_He4_Ti48_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cr51_to_p_V51_reaclib)*Y(N)*state.rho + screened_rates(k_p_Cr51_to_n_Mn51_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr51_He4_to_n_Fe54_derived)*Y(He4)*state.rho - screened_rates(k_Cr51_n_to_Cr52_reaclib)*Y(N)*state.rho - screened_rates(k_Cr51_n_to_He4_Ti48_reaclib)*Y(N)*state.rho - screened_rates(k_Cr51_n_to_p_V51_reaclib)*Y(N)*state.rho + screened_rates(k_Cr51_p_to_n_Mn51_derived)*Y(H1)*state.rho + screened_rates(k_Cr51_to_n_Cr50_derived); jac.set(N, Cr51, scratch); - scratch = screened_rates(k_Cr52_to_n_Cr51_reaclib) + screened_rates(k_He4_Cr52_to_n_Fe55_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cr52_to_Cr53_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cr52_to_He4_Ti49_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cr52_to_p_V52_reaclib)*Y(N)*state.rho + screened_rates(k_p_Cr52_to_n_Mn52_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr52_He4_to_n_Fe55_derived)*Y(He4)*state.rho - screened_rates(k_Cr52_n_to_Cr53_reaclib)*Y(N)*state.rho - screened_rates(k_Cr52_n_to_He4_Ti49_derived)*Y(N)*state.rho - screened_rates(k_Cr52_n_to_p_V52_derived)*Y(N)*state.rho + screened_rates(k_Cr52_p_to_n_Mn52_derived)*Y(H1)*state.rho + screened_rates(k_Cr52_to_n_Cr51_derived); jac.set(N, Cr52, scratch); - scratch = screened_rates(k_Cr53_to_n_Cr52_reaclib) + screened_rates(k_He4_Cr53_to_n_Fe56_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cr53_to_Cr54_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cr53_to_He4_Ti50_reaclib)*Y(N)*state.rho + screened_rates(k_p_Cr53_to_n_Mn53_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr53_He4_to_n_Fe56_derived)*Y(He4)*state.rho - screened_rates(k_Cr53_n_to_Cr54_reaclib)*Y(N)*state.rho - screened_rates(k_Cr53_n_to_He4_Ti50_reaclib)*Y(N)*state.rho + screened_rates(k_Cr53_p_to_n_Mn53_derived)*Y(H1)*state.rho + screened_rates(k_Cr53_to_n_Cr52_derived); jac.set(N, Cr53, scratch); - scratch = screened_rates(k_Cr54_to_n_Cr53_reaclib) + screened_rates(k_He4_Cr54_to_n_Fe57_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cr54_to_He4_Ti51_reaclib)*Y(N)*state.rho + screened_rates(k_p_Cr54_to_n_Mn54_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr54_He4_to_n_Fe57_derived)*Y(He4)*state.rho - screened_rates(k_Cr54_n_to_He4_Ti51_derived)*Y(N)*state.rho + screened_rates(k_Cr54_p_to_n_Mn54_derived)*Y(H1)*state.rho + screened_rates(k_Cr54_to_n_Cr53_derived); jac.set(N, Cr54, scratch); - scratch = screened_rates(k_He4_Mn50_to_n_Co53_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Mn50_to_He4_V47_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mn50_to_Mn51_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mn50_to_p_Cr50_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mn50_He4_to_n_Co53_derived)*Y(He4)*state.rho - screened_rates(k_Mn50_n_to_He4_V47_reaclib)*Y(N)*state.rho - screened_rates(k_Mn50_n_to_Mn51_reaclib)*Y(N)*state.rho - screened_rates(k_Mn50_n_to_p_Cr50_reaclib)*Y(N)*state.rho; jac.set(N, Mn50, scratch); - scratch = screened_rates(k_He4_Mn51_to_n_Co54_reaclib)*Y(He4)*state.rho + screened_rates(k_Mn51_to_n_Mn50_reaclib) - screened_rates(k_n_Mn51_to_He4_V48_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mn51_to_Mn52_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mn51_to_p_Cr51_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mn51_He4_to_n_Co54_derived)*Y(He4)*state.rho - screened_rates(k_Mn51_n_to_He4_V48_reaclib)*Y(N)*state.rho - screened_rates(k_Mn51_n_to_Mn52_reaclib)*Y(N)*state.rho - screened_rates(k_Mn51_n_to_p_Cr51_reaclib)*Y(N)*state.rho + screened_rates(k_Mn51_to_n_Mn50_derived); jac.set(N, Mn51, scratch); - scratch = screened_rates(k_He4_Mn52_to_n_Co55_reaclib)*Y(He4)*state.rho + screened_rates(k_Mn52_to_n_Mn51_reaclib) - screened_rates(k_n_Mn52_to_He4_V49_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mn52_to_Mn53_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mn52_to_p_Cr52_reaclib)*Y(N)*state.rho + screened_rates(k_p_Mn52_to_n_Fe52_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mn52_He4_to_n_Co55_derived)*Y(He4)*state.rho - screened_rates(k_Mn52_n_to_He4_V49_reaclib)*Y(N)*state.rho - screened_rates(k_Mn52_n_to_Mn53_reaclib)*Y(N)*state.rho - screened_rates(k_Mn52_n_to_p_Cr52_reaclib)*Y(N)*state.rho + screened_rates(k_Mn52_p_to_n_Fe52_derived)*Y(H1)*state.rho + screened_rates(k_Mn52_to_n_Mn51_derived); jac.set(N, Mn52, scratch); - scratch = screened_rates(k_He4_Mn53_to_n_Co56_reaclib)*Y(He4)*state.rho + screened_rates(k_Mn53_to_n_Mn52_reaclib) - screened_rates(k_n_Mn53_to_He4_V50_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mn53_to_Mn54_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mn53_to_p_Cr53_reaclib)*Y(N)*state.rho + screened_rates(k_p_Mn53_to_n_Fe53_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mn53_He4_to_n_Co56_derived)*Y(He4)*state.rho - screened_rates(k_Mn53_n_to_He4_V50_reaclib)*Y(N)*state.rho - screened_rates(k_Mn53_n_to_Mn54_reaclib)*Y(N)*state.rho - screened_rates(k_Mn53_n_to_p_Cr53_reaclib)*Y(N)*state.rho + screened_rates(k_Mn53_p_to_n_Fe53_derived)*Y(H1)*state.rho + screened_rates(k_Mn53_to_n_Mn52_derived); jac.set(N, Mn53, scratch); - scratch = screened_rates(k_He4_Mn54_to_n_Co57_reaclib)*Y(He4)*state.rho + screened_rates(k_Mn54_to_n_Mn53_reaclib) - screened_rates(k_n_Mn54_to_He4_V51_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mn54_to_Mn55_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mn54_to_p_Cr54_reaclib)*Y(N)*state.rho + screened_rates(k_p_Mn54_to_n_Fe54_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mn54_He4_to_n_Co57_derived)*Y(He4)*state.rho - screened_rates(k_Mn54_n_to_He4_V51_reaclib)*Y(N)*state.rho - screened_rates(k_Mn54_n_to_Mn55_reaclib)*Y(N)*state.rho - screened_rates(k_Mn54_n_to_p_Cr54_reaclib)*Y(N)*state.rho + screened_rates(k_Mn54_p_to_n_Fe54_derived)*Y(H1)*state.rho + screened_rates(k_Mn54_to_n_Mn53_derived); jac.set(N, Mn54, scratch); - scratch = screened_rates(k_He4_Mn55_to_n_Co58_reaclib)*Y(He4)*state.rho + screened_rates(k_Mn55_to_n_Mn54_reaclib) - screened_rates(k_n_Mn55_to_He4_V52_reaclib)*Y(N)*state.rho + screened_rates(k_p_Mn55_to_n_Fe55_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mn55_He4_to_n_Co58_derived)*Y(He4)*state.rho - screened_rates(k_Mn55_n_to_He4_V52_derived)*Y(N)*state.rho + screened_rates(k_Mn55_p_to_n_Fe55_derived)*Y(H1)*state.rho + screened_rates(k_Mn55_to_n_Mn54_derived); jac.set(N, Mn55, scratch); - scratch = -screened_rates(k_n_Fe52_to_Fe53_reaclib)*Y(N)*state.rho - screened_rates(k_n_Fe52_to_He4_Cr49_reaclib)*Y(N)*state.rho - screened_rates(k_n_Fe52_to_p_Mn52_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Fe52_n_to_Fe53_reaclib)*Y(N)*state.rho - screened_rates(k_Fe52_n_to_He4_Cr49_reaclib)*Y(N)*state.rho - screened_rates(k_Fe52_n_to_p_Mn52_reaclib)*Y(N)*state.rho; jac.set(N, Fe52, scratch); - scratch = screened_rates(k_Fe53_to_n_Fe52_reaclib) + screened_rates(k_He4_Fe53_to_n_Ni56_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Fe53_to_Fe54_reaclib)*Y(N)*state.rho - screened_rates(k_n_Fe53_to_He4_Cr50_reaclib)*Y(N)*state.rho - screened_rates(k_n_Fe53_to_p_Mn53_reaclib)*Y(N)*state.rho + screened_rates(k_p_Fe53_to_n_Co53_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe53_He4_to_n_Ni56_derived)*Y(He4)*state.rho - screened_rates(k_Fe53_n_to_Fe54_reaclib)*Y(N)*state.rho - screened_rates(k_Fe53_n_to_He4_Cr50_reaclib)*Y(N)*state.rho - screened_rates(k_Fe53_n_to_p_Mn53_reaclib)*Y(N)*state.rho + screened_rates(k_Fe53_p_to_n_Co53_derived)*Y(H1)*state.rho + screened_rates(k_Fe53_to_n_Fe52_derived); jac.set(N, Fe53, scratch); - scratch = screened_rates(k_Fe54_to_n_Fe53_reaclib) + screened_rates(k_He4_Fe54_to_n_Ni57_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Fe54_to_Fe55_reaclib)*Y(N)*state.rho - screened_rates(k_n_Fe54_to_He4_Cr51_reaclib)*Y(N)*state.rho - screened_rates(k_n_Fe54_to_p_Mn54_reaclib)*Y(N)*state.rho + screened_rates(k_p_Fe54_to_n_Co54_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe54_He4_to_n_Ni57_derived)*Y(He4)*state.rho - screened_rates(k_Fe54_n_to_Fe55_reaclib)*Y(N)*state.rho - screened_rates(k_Fe54_n_to_He4_Cr51_reaclib)*Y(N)*state.rho - screened_rates(k_Fe54_n_to_p_Mn54_reaclib)*Y(N)*state.rho + screened_rates(k_Fe54_p_to_n_Co54_derived)*Y(H1)*state.rho + screened_rates(k_Fe54_to_n_Fe53_derived); jac.set(N, Fe54, scratch); - scratch = screened_rates(k_Fe55_to_n_Fe54_reaclib) + screened_rates(k_He4_Fe55_to_n_Ni58_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Fe55_to_Fe56_reaclib)*Y(N)*state.rho - screened_rates(k_n_Fe55_to_He4_Cr52_reaclib)*Y(N)*state.rho - screened_rates(k_n_Fe55_to_p_Mn55_reaclib)*Y(N)*state.rho + screened_rates(k_p_Fe55_to_n_Co55_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe55_He4_to_n_Ni58_derived)*Y(He4)*state.rho - screened_rates(k_Fe55_n_to_Fe56_reaclib)*Y(N)*state.rho - screened_rates(k_Fe55_n_to_He4_Cr52_reaclib)*Y(N)*state.rho - screened_rates(k_Fe55_n_to_p_Mn55_reaclib)*Y(N)*state.rho + screened_rates(k_Fe55_p_to_n_Co55_derived)*Y(H1)*state.rho + screened_rates(k_Fe55_to_n_Fe54_derived); jac.set(N, Fe55, scratch); - scratch = screened_rates(k_Fe56_to_n_Fe55_reaclib) + screened_rates(k_He4_Fe56_to_n_Ni59_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Fe56_to_Fe57_reaclib)*Y(N)*state.rho - screened_rates(k_n_Fe56_to_He4_Cr53_reaclib)*Y(N)*state.rho + screened_rates(k_p_Fe56_to_n_Co56_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe56_He4_to_n_Ni59_derived)*Y(He4)*state.rho - screened_rates(k_Fe56_n_to_Fe57_reaclib)*Y(N)*state.rho - screened_rates(k_Fe56_n_to_He4_Cr53_reaclib)*Y(N)*state.rho + screened_rates(k_Fe56_p_to_n_Co56_derived)*Y(H1)*state.rho + screened_rates(k_Fe56_to_n_Fe55_derived); jac.set(N, Fe56, scratch); - scratch = screened_rates(k_Fe57_to_n_Fe56_reaclib) + screened_rates(k_He4_Fe57_to_n_Ni60_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Fe57_to_Fe58_reaclib)*Y(N)*state.rho - screened_rates(k_n_Fe57_to_He4_Cr54_reaclib)*Y(N)*state.rho + screened_rates(k_p_Fe57_to_n_Co57_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe57_He4_to_n_Ni60_derived)*Y(He4)*state.rho - screened_rates(k_Fe57_n_to_Fe58_reaclib)*Y(N)*state.rho - screened_rates(k_Fe57_n_to_He4_Cr54_reaclib)*Y(N)*state.rho + screened_rates(k_Fe57_p_to_n_Co57_derived)*Y(H1)*state.rho + screened_rates(k_Fe57_to_n_Fe56_derived); jac.set(N, Fe57, scratch); - scratch = screened_rates(k_Fe58_to_n_Fe57_reaclib) + screened_rates(k_He4_Fe58_to_n_Ni61_reaclib)*Y(He4)*state.rho + screened_rates(k_p_Fe58_to_n_Co58_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe58_He4_to_n_Ni61_derived)*Y(He4)*state.rho + screened_rates(k_Fe58_p_to_n_Co58_derived)*Y(H1)*state.rho + screened_rates(k_Fe58_to_n_Fe57_derived); jac.set(N, Fe58, scratch); - scratch = -screened_rates(k_n_Co53_to_Co54_reaclib)*Y(N)*state.rho - screened_rates(k_n_Co53_to_He4_Mn50_reaclib)*Y(N)*state.rho - screened_rates(k_n_Co53_to_p_Fe53_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Co53_n_to_Co54_reaclib)*Y(N)*state.rho - screened_rates(k_Co53_n_to_He4_Mn50_reaclib)*Y(N)*state.rho - screened_rates(k_Co53_n_to_p_Fe53_reaclib)*Y(N)*state.rho; jac.set(N, Co53, scratch); - scratch = screened_rates(k_Co54_to_n_Co53_reaclib) + screened_rates(k_He4_Co54_to_n_Cu57_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Co54_to_Co55_reaclib)*Y(N)*state.rho - screened_rates(k_n_Co54_to_He4_Mn51_reaclib)*Y(N)*state.rho - screened_rates(k_n_Co54_to_p_Fe54_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Co54_He4_to_n_Cu57_derived)*Y(He4)*state.rho - screened_rates(k_Co54_n_to_Co55_reaclib)*Y(N)*state.rho - screened_rates(k_Co54_n_to_He4_Mn51_reaclib)*Y(N)*state.rho - screened_rates(k_Co54_n_to_p_Fe54_reaclib)*Y(N)*state.rho + screened_rates(k_Co54_to_n_Co53_derived); jac.set(N, Co54, scratch); - scratch = screened_rates(k_Co55_to_n_Co54_reaclib) + screened_rates(k_He4_Co55_to_n_Cu58_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Co55_to_Co56_reaclib)*Y(N)*state.rho - screened_rates(k_n_Co55_to_He4_Mn52_reaclib)*Y(N)*state.rho - screened_rates(k_n_Co55_to_p_Fe55_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Co55_He4_to_n_Cu58_derived)*Y(He4)*state.rho - screened_rates(k_Co55_n_to_Co56_reaclib)*Y(N)*state.rho - screened_rates(k_Co55_n_to_He4_Mn52_reaclib)*Y(N)*state.rho - screened_rates(k_Co55_n_to_p_Fe55_reaclib)*Y(N)*state.rho + screened_rates(k_Co55_to_n_Co54_derived); jac.set(N, Co55, scratch); - scratch = screened_rates(k_Co56_to_n_Co55_reaclib) + screened_rates(k_He4_Co56_to_n_Cu59_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Co56_to_Co57_reaclib)*Y(N)*state.rho - screened_rates(k_n_Co56_to_He4_Mn53_reaclib)*Y(N)*state.rho - screened_rates(k_n_Co56_to_p_Fe56_reaclib)*Y(N)*state.rho + screened_rates(k_p_Co56_to_n_Ni56_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Co56_He4_to_n_Cu59_derived)*Y(He4)*state.rho - screened_rates(k_Co56_n_to_Co57_reaclib)*Y(N)*state.rho - screened_rates(k_Co56_n_to_He4_Mn53_reaclib)*Y(N)*state.rho - screened_rates(k_Co56_n_to_p_Fe56_reaclib)*Y(N)*state.rho + screened_rates(k_Co56_p_to_n_Ni56_derived)*Y(H1)*state.rho + screened_rates(k_Co56_to_n_Co55_derived); jac.set(N, Co56, scratch); - scratch = screened_rates(k_Co57_to_n_Co56_reaclib) + screened_rates(k_He4_Co57_to_n_Cu60_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Co57_to_Co58_reaclib)*Y(N)*state.rho - screened_rates(k_n_Co57_to_He4_Mn54_reaclib)*Y(N)*state.rho - screened_rates(k_n_Co57_to_p_Fe57_reaclib)*Y(N)*state.rho + screened_rates(k_p_Co57_to_n_Ni57_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Co57_He4_to_n_Cu60_derived)*Y(He4)*state.rho - screened_rates(k_Co57_n_to_Co58_reaclib)*Y(N)*state.rho - screened_rates(k_Co57_n_to_He4_Mn54_reaclib)*Y(N)*state.rho - screened_rates(k_Co57_n_to_p_Fe57_reaclib)*Y(N)*state.rho + screened_rates(k_Co57_p_to_n_Ni57_derived)*Y(H1)*state.rho + screened_rates(k_Co57_to_n_Co56_derived); jac.set(N, Co57, scratch); - scratch = screened_rates(k_Co58_to_n_Co57_reaclib) + screened_rates(k_He4_Co58_to_n_Cu61_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Co58_to_Co59_reaclib)*Y(N)*state.rho - screened_rates(k_n_Co58_to_He4_Mn55_reaclib)*Y(N)*state.rho - screened_rates(k_n_Co58_to_p_Fe58_reaclib)*Y(N)*state.rho + screened_rates(k_p_Co58_to_n_Ni58_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Co58_He4_to_n_Cu61_derived)*Y(He4)*state.rho - screened_rates(k_Co58_n_to_Co59_reaclib)*Y(N)*state.rho - screened_rates(k_Co58_n_to_He4_Mn55_reaclib)*Y(N)*state.rho - screened_rates(k_Co58_n_to_p_Fe58_reaclib)*Y(N)*state.rho + screened_rates(k_Co58_p_to_n_Ni58_derived)*Y(H1)*state.rho + screened_rates(k_Co58_to_n_Co57_derived); jac.set(N, Co58, scratch); - scratch = screened_rates(k_Co59_to_n_Co58_reaclib) + screened_rates(k_He4_Co59_to_n_Cu62_reaclib)*Y(He4)*state.rho + screened_rates(k_p_Co59_to_n_Ni59_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Co59_He4_to_n_Cu62_derived)*Y(He4)*state.rho + screened_rates(k_Co59_p_to_n_Ni59_derived)*Y(H1)*state.rho + screened_rates(k_Co59_to_n_Co58_derived); jac.set(N, Co59, scratch); - scratch = screened_rates(k_He4_Ni56_to_n_Zn59_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Ni56_to_He4_Fe53_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ni56_to_Ni57_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ni56_to_p_Co56_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ni56_He4_to_n_Zn59_derived)*Y(He4)*state.rho - screened_rates(k_Ni56_n_to_He4_Fe53_reaclib)*Y(N)*state.rho - screened_rates(k_Ni56_n_to_Ni57_reaclib)*Y(N)*state.rho - screened_rates(k_Ni56_n_to_p_Co56_reaclib)*Y(N)*state.rho; jac.set(N, Ni56, scratch); - scratch = screened_rates(k_He4_Ni57_to_n_Zn60_reaclib)*Y(He4)*state.rho + screened_rates(k_Ni57_to_n_Ni56_reaclib) - screened_rates(k_n_Ni57_to_He4_Fe54_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ni57_to_Ni58_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ni57_to_p_Co57_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ni57_to_n_Cu57_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni57_He4_to_n_Zn60_derived)*Y(He4)*state.rho - screened_rates(k_Ni57_n_to_He4_Fe54_reaclib)*Y(N)*state.rho - screened_rates(k_Ni57_n_to_Ni58_reaclib)*Y(N)*state.rho - screened_rates(k_Ni57_n_to_p_Co57_reaclib)*Y(N)*state.rho + screened_rates(k_Ni57_p_to_n_Cu57_derived)*Y(H1)*state.rho + screened_rates(k_Ni57_to_n_Ni56_derived); jac.set(N, Ni57, scratch); - scratch = screened_rates(k_He4_Ni58_to_n_Zn61_reaclib)*Y(He4)*state.rho + screened_rates(k_Ni58_to_n_Ni57_reaclib) - screened_rates(k_n_Ni58_to_He4_Fe55_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ni58_to_Ni59_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ni58_to_p_Co58_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ni58_to_n_Cu58_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni58_He4_to_n_Zn61_derived)*Y(He4)*state.rho - screened_rates(k_Ni58_n_to_He4_Fe55_reaclib)*Y(N)*state.rho - screened_rates(k_Ni58_n_to_Ni59_reaclib)*Y(N)*state.rho - screened_rates(k_Ni58_n_to_p_Co58_reaclib)*Y(N)*state.rho + screened_rates(k_Ni58_p_to_n_Cu58_derived)*Y(H1)*state.rho + screened_rates(k_Ni58_to_n_Ni57_derived); jac.set(N, Ni58, scratch); - scratch = screened_rates(k_He4_Ni59_to_n_Zn62_reaclib)*Y(He4)*state.rho + screened_rates(k_Ni59_to_n_Ni58_reaclib) - screened_rates(k_n_Ni59_to_He4_Fe56_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ni59_to_Ni60_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ni59_to_p_Co59_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ni59_to_n_Cu59_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni59_He4_to_n_Zn62_derived)*Y(He4)*state.rho - screened_rates(k_Ni59_n_to_He4_Fe56_reaclib)*Y(N)*state.rho - screened_rates(k_Ni59_n_to_Ni60_reaclib)*Y(N)*state.rho - screened_rates(k_Ni59_n_to_p_Co59_reaclib)*Y(N)*state.rho + screened_rates(k_Ni59_p_to_n_Cu59_derived)*Y(H1)*state.rho + screened_rates(k_Ni59_to_n_Ni58_derived); jac.set(N, Ni59, scratch); - scratch = screened_rates(k_He4_Ni60_to_n_Zn63_reaclib)*Y(He4)*state.rho + screened_rates(k_Ni60_to_n_Ni59_reaclib) - screened_rates(k_n_Ni60_to_He4_Fe57_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ni60_to_Ni61_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ni60_to_n_Cu60_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni60_He4_to_n_Zn63_derived)*Y(He4)*state.rho - screened_rates(k_Ni60_n_to_He4_Fe57_reaclib)*Y(N)*state.rho - screened_rates(k_Ni60_n_to_Ni61_reaclib)*Y(N)*state.rho + screened_rates(k_Ni60_p_to_n_Cu60_derived)*Y(H1)*state.rho + screened_rates(k_Ni60_to_n_Ni59_derived); jac.set(N, Ni60, scratch); - scratch = screened_rates(k_He4_Ni61_to_n_Zn64_reaclib)*Y(He4)*state.rho + screened_rates(k_Ni61_to_n_Ni60_reaclib) - screened_rates(k_n_Ni61_to_He4_Fe58_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ni61_to_Ni62_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ni61_to_n_Cu61_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni61_He4_to_n_Zn64_derived)*Y(He4)*state.rho - screened_rates(k_Ni61_n_to_He4_Fe58_reaclib)*Y(N)*state.rho - screened_rates(k_Ni61_n_to_Ni62_reaclib)*Y(N)*state.rho + screened_rates(k_Ni61_p_to_n_Cu61_derived)*Y(H1)*state.rho + screened_rates(k_Ni61_to_n_Ni60_derived); jac.set(N, Ni61, scratch); - scratch = screened_rates(k_He4_Ni62_to_n_Zn65_reaclib)*Y(He4)*state.rho + screened_rates(k_Ni62_to_n_Ni61_reaclib) - screened_rates(k_n_Ni62_to_Ni63_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ni62_to_n_Cu62_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni62_He4_to_n_Zn65_derived)*Y(He4)*state.rho - screened_rates(k_Ni62_n_to_Ni63_reaclib)*Y(N)*state.rho + screened_rates(k_Ni62_p_to_n_Cu62_derived)*Y(H1)*state.rho + screened_rates(k_Ni62_to_n_Ni61_derived); jac.set(N, Ni62, scratch); - scratch = screened_rates(k_He4_Ni63_to_n_Zn66_reaclib)*Y(He4)*state.rho + screened_rates(k_Ni63_to_n_Ni62_reaclib) - screened_rates(k_n_Ni63_to_Ni64_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ni63_to_n_Cu63_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni63_He4_to_n_Zn66_derived)*Y(He4)*state.rho - screened_rates(k_Ni63_n_to_Ni64_reaclib)*Y(N)*state.rho + screened_rates(k_Ni63_p_to_n_Cu63_derived)*Y(H1)*state.rho + screened_rates(k_Ni63_to_n_Ni62_derived); jac.set(N, Ni63, scratch); - scratch = screened_rates(k_Ni64_to_n_Ni63_reaclib) + screened_rates(k_p_Ni64_to_n_Cu64_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni64_p_to_n_Cu64_derived)*Y(H1)*state.rho + screened_rates(k_Ni64_to_n_Ni63_derived); jac.set(N, Ni64, scratch); - scratch = -screened_rates(k_n_Cu57_to_Cu58_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu57_to_He4_Co54_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu57_to_p_Ni57_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Cu57_n_to_Cu58_reaclib)*Y(N)*state.rho - screened_rates(k_Cu57_n_to_He4_Co54_reaclib)*Y(N)*state.rho - screened_rates(k_Cu57_n_to_p_Ni57_reaclib)*Y(N)*state.rho; jac.set(N, Cu57, scratch); - scratch = screened_rates(k_Cu58_to_n_Cu57_reaclib) - screened_rates(k_n_Cu58_to_Cu59_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu58_to_He4_Co55_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu58_to_p_Ni58_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Cu58_n_to_Cu59_reaclib)*Y(N)*state.rho - screened_rates(k_Cu58_n_to_He4_Co55_reaclib)*Y(N)*state.rho - screened_rates(k_Cu58_n_to_p_Ni58_reaclib)*Y(N)*state.rho + screened_rates(k_Cu58_to_n_Cu57_derived); jac.set(N, Cu58, scratch); - scratch = screened_rates(k_Cu59_to_n_Cu58_reaclib) + screened_rates(k_He4_Cu59_to_n_Ga62_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cu59_to_Cu60_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu59_to_He4_Co56_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu59_to_p_Ni59_reaclib)*Y(N)*state.rho + screened_rates(k_p_Cu59_to_n_Zn59_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu59_He4_to_n_Ga62_derived)*Y(He4)*state.rho - screened_rates(k_Cu59_n_to_Cu60_reaclib)*Y(N)*state.rho - screened_rates(k_Cu59_n_to_He4_Co56_reaclib)*Y(N)*state.rho - screened_rates(k_Cu59_n_to_p_Ni59_reaclib)*Y(N)*state.rho + screened_rates(k_Cu59_p_to_n_Zn59_derived)*Y(H1)*state.rho + screened_rates(k_Cu59_to_n_Cu58_derived); jac.set(N, Cu59, scratch); - scratch = screened_rates(k_Cu60_to_n_Cu59_reaclib) + screened_rates(k_He4_Cu60_to_n_Ga63_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cu60_to_Cu61_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu60_to_He4_Co57_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu60_to_p_Ni60_reaclib)*Y(N)*state.rho + screened_rates(k_p_Cu60_to_n_Zn60_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu60_He4_to_n_Ga63_derived)*Y(He4)*state.rho - screened_rates(k_Cu60_n_to_Cu61_reaclib)*Y(N)*state.rho - screened_rates(k_Cu60_n_to_He4_Co57_reaclib)*Y(N)*state.rho - screened_rates(k_Cu60_n_to_p_Ni60_reaclib)*Y(N)*state.rho + screened_rates(k_Cu60_p_to_n_Zn60_derived)*Y(H1)*state.rho + screened_rates(k_Cu60_to_n_Cu59_derived); jac.set(N, Cu60, scratch); - scratch = screened_rates(k_Cu61_to_n_Cu60_reaclib) + screened_rates(k_He4_Cu61_to_n_Ga64_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cu61_to_Cu62_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu61_to_He4_Co58_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu61_to_p_Ni61_reaclib)*Y(N)*state.rho + screened_rates(k_p_Cu61_to_n_Zn61_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu61_He4_to_n_Ga64_derived)*Y(He4)*state.rho - screened_rates(k_Cu61_n_to_Cu62_reaclib)*Y(N)*state.rho - screened_rates(k_Cu61_n_to_He4_Co58_reaclib)*Y(N)*state.rho - screened_rates(k_Cu61_n_to_p_Ni61_reaclib)*Y(N)*state.rho + screened_rates(k_Cu61_p_to_n_Zn61_derived)*Y(H1)*state.rho + screened_rates(k_Cu61_to_n_Cu60_derived); jac.set(N, Cu61, scratch); - scratch = screened_rates(k_Cu62_to_n_Cu61_reaclib) - screened_rates(k_n_Cu62_to_Cu63_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu62_to_He4_Co59_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu62_to_p_Ni62_reaclib)*Y(N)*state.rho + screened_rates(k_p_Cu62_to_n_Zn62_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cu62_n_to_Cu63_reaclib)*Y(N)*state.rho - screened_rates(k_Cu62_n_to_He4_Co59_reaclib)*Y(N)*state.rho - screened_rates(k_Cu62_n_to_p_Ni62_reaclib)*Y(N)*state.rho + screened_rates(k_Cu62_p_to_n_Zn62_derived)*Y(H1)*state.rho + screened_rates(k_Cu62_to_n_Cu61_derived); jac.set(N, Cu62, scratch); - scratch = screened_rates(k_Cu63_to_n_Cu62_reaclib) - screened_rates(k_n_Cu63_to_Cu64_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu63_to_p_Ni63_reaclib)*Y(N)*state.rho + screened_rates(k_p_Cu63_to_n_Zn63_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cu63_n_to_Cu64_reaclib)*Y(N)*state.rho - screened_rates(k_Cu63_n_to_p_Ni63_reaclib)*Y(N)*state.rho + screened_rates(k_Cu63_p_to_n_Zn63_derived)*Y(H1)*state.rho + screened_rates(k_Cu63_to_n_Cu62_derived); jac.set(N, Cu63, scratch); - scratch = screened_rates(k_Cu64_to_n_Cu63_reaclib) - screened_rates(k_n_Cu64_to_Cu65_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu64_to_p_Ni64_reaclib)*Y(N)*state.rho + screened_rates(k_p_Cu64_to_n_Zn64_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cu64_n_to_Cu65_reaclib)*Y(N)*state.rho - screened_rates(k_Cu64_n_to_p_Ni64_reaclib)*Y(N)*state.rho + screened_rates(k_Cu64_p_to_n_Zn64_derived)*Y(H1)*state.rho + screened_rates(k_Cu64_to_n_Cu63_derived); jac.set(N, Cu64, scratch); - scratch = screened_rates(k_Cu65_to_n_Cu64_reaclib) + screened_rates(k_p_Cu65_to_n_Zn65_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu65_p_to_n_Zn65_derived)*Y(H1)*state.rho + screened_rates(k_Cu65_to_n_Cu64_derived); jac.set(N, Cu65, scratch); - scratch = -screened_rates(k_n_Zn59_to_He4_Ni56_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn59_to_Zn60_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn59_to_p_Cu59_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Zn59_n_to_He4_Ni56_reaclib)*Y(N)*state.rho - screened_rates(k_Zn59_n_to_Zn60_reaclib)*Y(N)*state.rho - screened_rates(k_Zn59_n_to_p_Cu59_reaclib)*Y(N)*state.rho; jac.set(N, Zn59, scratch); - scratch = screened_rates(k_He4_Zn60_to_n_Ge63_reaclib)*Y(He4)*state.rho + screened_rates(k_Zn60_to_n_Zn59_reaclib) - screened_rates(k_n_Zn60_to_He4_Ni57_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn60_to_Zn61_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn60_to_p_Cu60_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Zn60_He4_to_n_Ge63_derived)*Y(He4)*state.rho - screened_rates(k_Zn60_n_to_He4_Ni57_reaclib)*Y(N)*state.rho - screened_rates(k_Zn60_n_to_Zn61_reaclib)*Y(N)*state.rho - screened_rates(k_Zn60_n_to_p_Cu60_reaclib)*Y(N)*state.rho + screened_rates(k_Zn60_to_n_Zn59_derived); jac.set(N, Zn60, scratch); - scratch = screened_rates(k_He4_Zn61_to_n_Ge64_reaclib)*Y(He4)*state.rho + screened_rates(k_Zn61_to_n_Zn60_reaclib) - screened_rates(k_n_Zn61_to_He4_Ni58_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn61_to_Zn62_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn61_to_p_Cu61_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Zn61_He4_to_n_Ge64_derived)*Y(He4)*state.rho - screened_rates(k_Zn61_n_to_He4_Ni58_reaclib)*Y(N)*state.rho - screened_rates(k_Zn61_n_to_Zn62_reaclib)*Y(N)*state.rho - screened_rates(k_Zn61_n_to_p_Cu61_reaclib)*Y(N)*state.rho + screened_rates(k_Zn61_to_n_Zn60_derived); jac.set(N, Zn61, scratch); - scratch = screened_rates(k_Zn62_to_n_Zn61_reaclib) - screened_rates(k_n_Zn62_to_He4_Ni59_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn62_to_Zn63_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn62_to_p_Cu62_reaclib)*Y(N)*state.rho + screened_rates(k_p_Zn62_to_n_Ga62_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Zn62_n_to_He4_Ni59_reaclib)*Y(N)*state.rho - screened_rates(k_Zn62_n_to_Zn63_reaclib)*Y(N)*state.rho - screened_rates(k_Zn62_n_to_p_Cu62_reaclib)*Y(N)*state.rho + screened_rates(k_Zn62_p_to_n_Ga62_derived)*Y(H1)*state.rho + screened_rates(k_Zn62_to_n_Zn61_derived); jac.set(N, Zn62, scratch); - scratch = screened_rates(k_Zn63_to_n_Zn62_reaclib) - screened_rates(k_n_Zn63_to_He4_Ni60_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn63_to_Zn64_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn63_to_p_Cu63_reaclib)*Y(N)*state.rho + screened_rates(k_p_Zn63_to_n_Ga63_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Zn63_n_to_He4_Ni60_reaclib)*Y(N)*state.rho - screened_rates(k_Zn63_n_to_Zn64_reaclib)*Y(N)*state.rho - screened_rates(k_Zn63_n_to_p_Cu63_reaclib)*Y(N)*state.rho + screened_rates(k_Zn63_p_to_n_Ga63_derived)*Y(H1)*state.rho + screened_rates(k_Zn63_to_n_Zn62_derived); jac.set(N, Zn63, scratch); - scratch = screened_rates(k_Zn64_to_n_Zn63_reaclib) - screened_rates(k_n_Zn64_to_He4_Ni61_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn64_to_Zn65_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn64_to_p_Cu64_reaclib)*Y(N)*state.rho + screened_rates(k_p_Zn64_to_n_Ga64_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Zn64_n_to_He4_Ni61_reaclib)*Y(N)*state.rho - screened_rates(k_Zn64_n_to_Zn65_reaclib)*Y(N)*state.rho - screened_rates(k_Zn64_n_to_p_Cu64_reaclib)*Y(N)*state.rho + screened_rates(k_Zn64_p_to_n_Ga64_derived)*Y(H1)*state.rho + screened_rates(k_Zn64_to_n_Zn63_derived); jac.set(N, Zn64, scratch); - scratch = screened_rates(k_Zn65_to_n_Zn64_reaclib) - screened_rates(k_n_Zn65_to_He4_Ni62_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn65_to_Zn66_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn65_to_p_Cu65_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Zn65_n_to_He4_Ni62_reaclib)*Y(N)*state.rho - screened_rates(k_Zn65_n_to_Zn66_reaclib)*Y(N)*state.rho - screened_rates(k_Zn65_n_to_p_Cu65_reaclib)*Y(N)*state.rho + screened_rates(k_Zn65_to_n_Zn64_derived); jac.set(N, Zn65, scratch); - scratch = screened_rates(k_Zn66_to_n_Zn65_reaclib) - screened_rates(k_n_Zn66_to_He4_Ni63_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Zn66_n_to_He4_Ni63_reaclib)*Y(N)*state.rho + screened_rates(k_Zn66_to_n_Zn65_derived); jac.set(N, Zn66, scratch); - scratch = -screened_rates(k_n_Ga62_to_Ga63_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ga62_to_He4_Cu59_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ga62_to_p_Zn62_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Ga62_n_to_Ga63_reaclib)*Y(N)*state.rho - screened_rates(k_Ga62_n_to_He4_Cu59_reaclib)*Y(N)*state.rho - screened_rates(k_Ga62_n_to_p_Zn62_reaclib)*Y(N)*state.rho; jac.set(N, Ga62, scratch); - scratch = screened_rates(k_Ga63_to_n_Ga62_reaclib) - screened_rates(k_n_Ga63_to_Ga64_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ga63_to_He4_Cu60_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ga63_to_p_Zn63_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ga63_to_n_Ge63_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ga63_n_to_Ga64_reaclib)*Y(N)*state.rho - screened_rates(k_Ga63_n_to_He4_Cu60_reaclib)*Y(N)*state.rho - screened_rates(k_Ga63_n_to_p_Zn63_reaclib)*Y(N)*state.rho + screened_rates(k_Ga63_p_to_n_Ge63_derived)*Y(H1)*state.rho + screened_rates(k_Ga63_to_n_Ga62_derived); jac.set(N, Ga63, scratch); - scratch = screened_rates(k_Ga64_to_n_Ga63_reaclib) - screened_rates(k_n_Ga64_to_He4_Cu61_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ga64_to_p_Zn64_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ga64_to_n_Ge64_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ga64_n_to_He4_Cu61_reaclib)*Y(N)*state.rho - screened_rates(k_Ga64_n_to_p_Zn64_reaclib)*Y(N)*state.rho + screened_rates(k_Ga64_p_to_n_Ge64_derived)*Y(H1)*state.rho + screened_rates(k_Ga64_to_n_Ga63_derived); jac.set(N, Ga64, scratch); - scratch = -screened_rates(k_n_Ge63_to_Ge64_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ge63_to_He4_Zn60_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ge63_to_p_Ga63_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Ge63_n_to_Ge64_reaclib)*Y(N)*state.rho - screened_rates(k_Ge63_n_to_He4_Zn60_reaclib)*Y(N)*state.rho - screened_rates(k_Ge63_n_to_p_Ga63_reaclib)*Y(N)*state.rho; jac.set(N, Ge63, scratch); - scratch = screened_rates(k_Ge64_to_n_Ge63_reaclib) - screened_rates(k_n_Ge64_to_He4_Zn61_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ge64_to_p_Ga64_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Ge64_n_to_He4_Zn61_reaclib)*Y(N)*state.rho - screened_rates(k_Ge64_n_to_p_Ga64_reaclib)*Y(N)*state.rho + screened_rates(k_Ge64_to_n_Ge63_derived); jac.set(N, Ge64, scratch); - scratch = screened_rates(k_n_Al25_to_p_Mg25_reaclib)*Y(Al25)*state.rho + screened_rates(k_n_Al26_to_p_Mg26_reaclib)*Y(Al26)*state.rho + screened_rates(k_n_Ar36_to_p_Cl36_reaclib)*Y(Ar36)*state.rho + screened_rates(k_n_Ar37_to_p_Cl37_reaclib)*Y(Ar37)*state.rho + screened_rates(k_n_B8_to_p_He4_He4_reaclib)*Y(B8)*state.rho + screened_rates(k_n_Be7_to_p_Li7_reaclib)*Y(Be7)*state.rho + screened_rates(k_n_Ca40_to_p_K40_reaclib)*Y(Ca40)*state.rho + screened_rates(k_n_Ca41_to_p_K41_reaclib)*Y(Ca41)*state.rho + screened_rates(k_n_Cl33_to_p_S33_reaclib)*Y(Cl33)*state.rho + screened_rates(k_n_Cl34_to_p_S34_reaclib)*Y(Cl34)*state.rho + screened_rates(k_n_Cl35_to_p_S35_reaclib)*Y(Cl35)*state.rho + screened_rates(k_n_Cl36_to_p_S36_reaclib)*Y(Cl36)*state.rho + screened_rates(k_n_Co53_to_p_Fe53_reaclib)*Y(Co53)*state.rho + screened_rates(k_n_Co54_to_p_Fe54_reaclib)*Y(Co54)*state.rho + screened_rates(k_n_Co55_to_p_Fe55_reaclib)*Y(Co55)*state.rho + screened_rates(k_n_Co56_to_p_Fe56_reaclib)*Y(Co56)*state.rho + screened_rates(k_n_Co57_to_p_Fe57_reaclib)*Y(Co57)*state.rho + screened_rates(k_n_Co58_to_p_Fe58_reaclib)*Y(Co58)*state.rho + screened_rates(k_n_Cr48_to_p_V48_reaclib)*Y(Cr48)*state.rho + screened_rates(k_n_Cr49_to_p_V49_reaclib)*Y(Cr49)*state.rho + screened_rates(k_n_Cr50_to_p_V50_reaclib)*Y(Cr50)*state.rho + screened_rates(k_n_Cr51_to_p_V51_reaclib)*Y(Cr51)*state.rho + screened_rates(k_n_Cr52_to_p_V52_reaclib)*Y(Cr52)*state.rho + screened_rates(k_n_Cu57_to_p_Ni57_reaclib)*Y(Cu57)*state.rho + screened_rates(k_n_Cu58_to_p_Ni58_reaclib)*Y(Cu58)*state.rho + screened_rates(k_n_Cu59_to_p_Ni59_reaclib)*Y(Cu59)*state.rho + screened_rates(k_n_Cu60_to_p_Ni60_reaclib)*Y(Cu60)*state.rho + screened_rates(k_n_Cu61_to_p_Ni61_reaclib)*Y(Cu61)*state.rho + screened_rates(k_n_Cu62_to_p_Ni62_reaclib)*Y(Cu62)*state.rho + screened_rates(k_n_Cu63_to_p_Ni63_reaclib)*Y(Cu63)*state.rho + screened_rates(k_n_Cu64_to_p_Ni64_reaclib)*Y(Cu64)*state.rho + screened_rates(k_n_F17_to_p_O17_reaclib)*Y(F17)*state.rho + screened_rates(k_n_F18_to_p_O18_reaclib)*Y(F18)*state.rho + screened_rates(k_n_Fe52_to_p_Mn52_reaclib)*Y(Fe52)*state.rho + screened_rates(k_n_Fe53_to_p_Mn53_reaclib)*Y(Fe53)*state.rho + screened_rates(k_n_Fe54_to_p_Mn54_reaclib)*Y(Fe54)*state.rho + screened_rates(k_n_Fe55_to_p_Mn55_reaclib)*Y(Fe55)*state.rho + screened_rates(k_n_Ga62_to_p_Zn62_reaclib)*Y(Ga62)*state.rho + screened_rates(k_n_Ga63_to_p_Zn63_reaclib)*Y(Ga63)*state.rho + screened_rates(k_n_Ga64_to_p_Zn64_reaclib)*Y(Ga64)*state.rho + screened_rates(k_n_Ge63_to_p_Ga63_reaclib)*Y(Ge63)*state.rho + screened_rates(k_n_Ge64_to_p_Ga64_reaclib)*Y(Ge64)*state.rho + screened_rates(k_n_K37_to_p_Ar37_reaclib)*Y(K37)*state.rho + screened_rates(k_n_K38_to_p_Ar38_reaclib)*Y(K38)*state.rho + screened_rates(k_n_K39_to_p_Ar39_reaclib)*Y(K39)*state.rho + screened_rates(k_n_K40_to_p_Ar40_reaclib)*Y(K40)*state.rho + screened_rates(k_n_Mg23_to_p_Na23_reaclib)*Y(Mg23)*state.rho + screened_rates(k_n_Mn50_to_p_Cr50_reaclib)*Y(Mn50)*state.rho + screened_rates(k_n_Mn51_to_p_Cr51_reaclib)*Y(Mn51)*state.rho + screened_rates(k_n_Mn52_to_p_Cr52_reaclib)*Y(Mn52)*state.rho + screened_rates(k_n_Mn53_to_p_Cr53_reaclib)*Y(Mn53)*state.rho + screened_rates(k_n_Mn54_to_p_Cr54_reaclib)*Y(Mn54)*state.rho + screened_rates(k_n_N13_to_p_C13_reaclib)*Y(N13)*state.rho + screened_rates(k_n_N14_to_p_C14_reaclib)*Y(N14)*state.rho + screened_rates(k_n_Na21_to_p_Ne21_reaclib)*Y(Na21)*state.rho + screened_rates(k_n_Na22_to_p_Ne22_reaclib)*Y(Na22)*state.rho + screened_rates(k_n_Ne18_to_p_F18_reaclib)*Y(Ne18)*state.rho + screened_rates(k_n_Ne19_to_p_F19_reaclib)*Y(Ne19)*state.rho + screened_rates(k_n_Ni56_to_p_Co56_reaclib)*Y(Ni56)*state.rho + screened_rates(k_n_Ni57_to_p_Co57_reaclib)*Y(Ni57)*state.rho + screened_rates(k_n_Ni58_to_p_Co58_reaclib)*Y(Ni58)*state.rho + screened_rates(k_n_Ni59_to_p_Co59_reaclib)*Y(Ni59)*state.rho + screened_rates(k_n_O14_to_p_N14_reaclib)*Y(O14)*state.rho + screened_rates(k_n_O15_to_p_N15_reaclib)*Y(O15)*state.rho + screened_rates(k_n_P29_to_p_Si29_reaclib)*Y(P29)*state.rho + screened_rates(k_n_P30_to_p_Si30_reaclib)*Y(P30)*state.rho + screened_rates(k_n_P31_to_p_Si31_reaclib)*Y(P31)*state.rho + screened_rates(k_n_P32_to_p_Si32_reaclib)*Y(P32)*state.rho + screened_rates(k_n_S32_to_p_P32_reaclib)*Y(S32)*state.rho + screened_rates(k_n_S33_to_p_P33_reaclib)*Y(S33)*state.rho + screened_rates(k_n_Sc43_to_p_Ca43_reaclib)*Y(Sc43)*state.rho + screened_rates(k_n_Sc44_to_p_Ca44_reaclib)*Y(Sc44)*state.rho + screened_rates(k_n_Sc45_to_p_Ca45_reaclib)*Y(Sc45)*state.rho + screened_rates(k_n_Sc46_to_p_Ca46_reaclib)*Y(Sc46)*state.rho + screened_rates(k_n_Sc47_to_p_Ca47_reaclib)*Y(Sc47)*state.rho + screened_rates(k_n_Sc48_to_p_Ca48_reaclib)*Y(Sc48)*state.rho + screened_rates(k_n_Ti44_to_p_Sc44_reaclib)*Y(Ti44)*state.rho + screened_rates(k_n_Ti45_to_p_Sc45_reaclib)*Y(Ti45)*state.rho + screened_rates(k_n_Ti46_to_p_Sc46_reaclib)*Y(Ti46)*state.rho + screened_rates(k_n_Ti47_to_p_Sc47_reaclib)*Y(Ti47)*state.rho + screened_rates(k_n_Ti48_to_p_Sc48_reaclib)*Y(Ti48)*state.rho + screened_rates(k_n_Ti49_to_p_Sc49_reaclib)*Y(Ti49)*state.rho + screened_rates(k_n_V46_to_p_Ti46_reaclib)*Y(V46)*state.rho + screened_rates(k_n_V47_to_p_Ti47_reaclib)*Y(V47)*state.rho + screened_rates(k_n_V48_to_p_Ti48_reaclib)*Y(V48)*state.rho + screened_rates(k_n_V49_to_p_Ti49_reaclib)*Y(V49)*state.rho + screened_rates(k_n_V50_to_p_Ti50_reaclib)*Y(V50)*state.rho + screened_rates(k_n_V51_to_p_Ti51_reaclib)*Y(V51)*state.rho + screened_rates(k_n_Zn59_to_p_Cu59_reaclib)*Y(Zn59)*state.rho + screened_rates(k_n_Zn60_to_p_Cu60_reaclib)*Y(Zn60)*state.rho + screened_rates(k_n_Zn61_to_p_Cu61_reaclib)*Y(Zn61)*state.rho + screened_rates(k_n_Zn62_to_p_Cu62_reaclib)*Y(Zn62)*state.rho + screened_rates(k_n_Zn63_to_p_Cu63_reaclib)*Y(Zn63)*state.rho + screened_rates(k_n_Zn64_to_p_Cu64_reaclib)*Y(Zn64)*state.rho + screened_rates(k_n_Zn65_to_p_Cu65_reaclib)*Y(Zn65)*state.rho - 0.5*screened_rates(k_n_p_He4_He4_to_He3_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<3>(state.rho) - screened_rates(k_n_p_He4_to_Li6_reaclib)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho) - 1.0*screened_rates(k_n_p_p_to_p_d_reaclib)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho) - screened_rates(k_n_p_to_d_reaclib)*Y(H1)*state.rho + screened_rates(k_n_to_p_weaktab); + scratch = screened_rates(k_Al25_n_to_p_Mg25_reaclib)*Y(Al25)*state.rho + screened_rates(k_Al26_n_to_p_Mg26_reaclib)*Y(Al26)*state.rho + screened_rates(k_Ar36_n_to_p_Cl36_reaclib)*Y(Ar36)*state.rho + screened_rates(k_Ar37_n_to_p_Cl37_reaclib)*Y(Ar37)*state.rho + screened_rates(k_B8_n_to_p_He4_He4_reaclib)*Y(B8)*state.rho + screened_rates(k_Be7_n_to_p_Li7_reaclib)*Y(Be7)*state.rho + screened_rates(k_Ca40_n_to_p_K40_derived)*Y(Ca40)*state.rho + screened_rates(k_Ca41_n_to_p_K41_derived)*Y(Ca41)*state.rho + screened_rates(k_Cl33_n_to_p_S33_reaclib)*Y(Cl33)*state.rho + screened_rates(k_Cl34_n_to_p_S34_reaclib)*Y(Cl34)*state.rho + screened_rates(k_Cl35_n_to_p_S35_reaclib)*Y(Cl35)*state.rho + screened_rates(k_Cl36_n_to_p_S36_reaclib)*Y(Cl36)*state.rho + screened_rates(k_Co53_n_to_p_Fe53_reaclib)*Y(Co53)*state.rho + screened_rates(k_Co54_n_to_p_Fe54_reaclib)*Y(Co54)*state.rho + screened_rates(k_Co55_n_to_p_Fe55_reaclib)*Y(Co55)*state.rho + screened_rates(k_Co56_n_to_p_Fe56_reaclib)*Y(Co56)*state.rho + screened_rates(k_Co57_n_to_p_Fe57_reaclib)*Y(Co57)*state.rho + screened_rates(k_Co58_n_to_p_Fe58_reaclib)*Y(Co58)*state.rho + screened_rates(k_Cr48_n_to_p_V48_reaclib)*Y(Cr48)*state.rho + screened_rates(k_Cr49_n_to_p_V49_reaclib)*Y(Cr49)*state.rho + screened_rates(k_Cr50_n_to_p_V50_derived)*Y(Cr50)*state.rho + screened_rates(k_Cr51_n_to_p_V51_reaclib)*Y(Cr51)*state.rho + screened_rates(k_Cr52_n_to_p_V52_derived)*Y(Cr52)*state.rho + screened_rates(k_Cu57_n_to_p_Ni57_reaclib)*Y(Cu57)*state.rho + screened_rates(k_Cu58_n_to_p_Ni58_reaclib)*Y(Cu58)*state.rho + screened_rates(k_Cu59_n_to_p_Ni59_reaclib)*Y(Cu59)*state.rho + screened_rates(k_Cu60_n_to_p_Ni60_reaclib)*Y(Cu60)*state.rho + screened_rates(k_Cu61_n_to_p_Ni61_reaclib)*Y(Cu61)*state.rho + screened_rates(k_Cu62_n_to_p_Ni62_reaclib)*Y(Cu62)*state.rho + screened_rates(k_Cu63_n_to_p_Ni63_reaclib)*Y(Cu63)*state.rho + screened_rates(k_Cu64_n_to_p_Ni64_reaclib)*Y(Cu64)*state.rho + screened_rates(k_F17_n_to_p_O17_reaclib)*Y(F17)*state.rho + screened_rates(k_F18_n_to_p_O18_reaclib)*Y(F18)*state.rho + screened_rates(k_Fe52_n_to_p_Mn52_reaclib)*Y(Fe52)*state.rho + screened_rates(k_Fe53_n_to_p_Mn53_reaclib)*Y(Fe53)*state.rho + screened_rates(k_Fe54_n_to_p_Mn54_reaclib)*Y(Fe54)*state.rho + screened_rates(k_Fe55_n_to_p_Mn55_reaclib)*Y(Fe55)*state.rho + screened_rates(k_Ga62_n_to_p_Zn62_reaclib)*Y(Ga62)*state.rho + screened_rates(k_Ga63_n_to_p_Zn63_reaclib)*Y(Ga63)*state.rho + screened_rates(k_Ga64_n_to_p_Zn64_reaclib)*Y(Ga64)*state.rho + screened_rates(k_Ge63_n_to_p_Ga63_reaclib)*Y(Ge63)*state.rho + screened_rates(k_Ge64_n_to_p_Ga64_reaclib)*Y(Ge64)*state.rho - 0.5*screened_rates(k_He4_He4_p_n_to_He3_Li7_derived)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<3>(state.rho) - screened_rates(k_He4_p_n_to_Li6_reaclib)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho) + screened_rates(k_K37_n_to_p_Ar37_reaclib)*Y(K37)*state.rho + screened_rates(k_K38_n_to_p_Ar38_reaclib)*Y(K38)*state.rho + screened_rates(k_K39_n_to_p_Ar39_reaclib)*Y(K39)*state.rho + screened_rates(k_K40_n_to_p_Ar40_reaclib)*Y(K40)*state.rho + screened_rates(k_Mg23_n_to_p_Na23_derived)*Y(Mg23)*state.rho + screened_rates(k_Mn50_n_to_p_Cr50_reaclib)*Y(Mn50)*state.rho + screened_rates(k_Mn51_n_to_p_Cr51_reaclib)*Y(Mn51)*state.rho + screened_rates(k_Mn52_n_to_p_Cr52_reaclib)*Y(Mn52)*state.rho + screened_rates(k_Mn53_n_to_p_Cr53_reaclib)*Y(Mn53)*state.rho + screened_rates(k_Mn54_n_to_p_Cr54_reaclib)*Y(Mn54)*state.rho + screened_rates(k_N13_n_to_p_C13_derived)*Y(N13)*state.rho + screened_rates(k_N14_n_to_p_C14_reaclib)*Y(N14)*state.rho + screened_rates(k_Na21_n_to_p_Ne21_reaclib)*Y(Na21)*state.rho + screened_rates(k_Na22_n_to_p_Ne22_reaclib)*Y(Na22)*state.rho + screened_rates(k_Ne18_n_to_p_F18_reaclib)*Y(Ne18)*state.rho + screened_rates(k_Ne19_n_to_p_F19_derived)*Y(Ne19)*state.rho + screened_rates(k_Ni56_n_to_p_Co56_reaclib)*Y(Ni56)*state.rho + screened_rates(k_Ni57_n_to_p_Co57_reaclib)*Y(Ni57)*state.rho + screened_rates(k_Ni58_n_to_p_Co58_reaclib)*Y(Ni58)*state.rho + screened_rates(k_Ni59_n_to_p_Co59_reaclib)*Y(Ni59)*state.rho + screened_rates(k_O14_n_to_p_N14_derived)*Y(O14)*state.rho + screened_rates(k_O15_n_to_p_N15_derived)*Y(O15)*state.rho + screened_rates(k_P29_n_to_p_Si29_reaclib)*Y(P29)*state.rho + screened_rates(k_P30_n_to_p_Si30_reaclib)*Y(P30)*state.rho + screened_rates(k_P31_n_to_p_Si31_derived)*Y(P31)*state.rho + screened_rates(k_P32_n_to_p_Si32_reaclib)*Y(P32)*state.rho + screened_rates(k_S32_n_to_p_P32_derived)*Y(S32)*state.rho + screened_rates(k_S33_n_to_p_P33_reaclib)*Y(S33)*state.rho + screened_rates(k_Sc43_n_to_p_Ca43_reaclib)*Y(Sc43)*state.rho + screened_rates(k_Sc44_n_to_p_Ca44_reaclib)*Y(Sc44)*state.rho + screened_rates(k_Sc45_n_to_p_Ca45_reaclib)*Y(Sc45)*state.rho + screened_rates(k_Sc46_n_to_p_Ca46_reaclib)*Y(Sc46)*state.rho + screened_rates(k_Sc47_n_to_p_Ca47_derived)*Y(Sc47)*state.rho + screened_rates(k_Sc48_n_to_p_Ca48_reaclib)*Y(Sc48)*state.rho + screened_rates(k_Ti44_n_to_p_Sc44_reaclib)*Y(Ti44)*state.rho + screened_rates(k_Ti45_n_to_p_Sc45_reaclib)*Y(Ti45)*state.rho + screened_rates(k_Ti46_n_to_p_Sc46_derived)*Y(Ti46)*state.rho + screened_rates(k_Ti47_n_to_p_Sc47_reaclib)*Y(Ti47)*state.rho + screened_rates(k_Ti48_n_to_p_Sc48_derived)*Y(Ti48)*state.rho + screened_rates(k_Ti49_n_to_p_Sc49_derived)*Y(Ti49)*state.rho + screened_rates(k_V46_n_to_p_Ti46_reaclib)*Y(V46)*state.rho + screened_rates(k_V47_n_to_p_Ti47_reaclib)*Y(V47)*state.rho + screened_rates(k_V48_n_to_p_Ti48_reaclib)*Y(V48)*state.rho + screened_rates(k_V49_n_to_p_Ti49_reaclib)*Y(V49)*state.rho + screened_rates(k_V50_n_to_p_Ti50_reaclib)*Y(V50)*state.rho + screened_rates(k_V51_n_to_p_Ti51_derived)*Y(V51)*state.rho + screened_rates(k_Zn59_n_to_p_Cu59_reaclib)*Y(Zn59)*state.rho + screened_rates(k_Zn60_n_to_p_Cu60_reaclib)*Y(Zn60)*state.rho + screened_rates(k_Zn61_n_to_p_Cu61_reaclib)*Y(Zn61)*state.rho + screened_rates(k_Zn62_n_to_p_Cu62_reaclib)*Y(Zn62)*state.rho + screened_rates(k_Zn63_n_to_p_Cu63_reaclib)*Y(Zn63)*state.rho + screened_rates(k_Zn64_n_to_p_Cu64_reaclib)*Y(Zn64)*state.rho + screened_rates(k_Zn65_n_to_p_Cu65_reaclib)*Y(Zn65)*state.rho + screened_rates(k_n_to_p_beta_neg_weaktab) - screened_rates(k_p_n_to_d_reaclib)*Y(H1)*state.rho - 0.5*screened_rates(k_p_p_n_to_p_d_reaclib)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho); jac.set(H1, N, scratch); - scratch = -0.5*screened_rates(k_n_p_He4_He4_to_He3_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<3>(state.rho) - screened_rates(k_n_p_He4_to_Li6_reaclib)*Y(He4)*Y(N)*amrex::Math::powi<2>(state.rho) - 2.0*screened_rates(k_n_p_p_to_p_d_reaclib)*Y(N)*Y(H1)*amrex::Math::powi<2>(state.rho) - screened_rates(k_n_p_to_d_reaclib)*Y(N)*state.rho - screened_rates(k_p_Al26_to_He4_Mg23_reaclib)*Y(Al26)*state.rho - screened_rates(k_p_Al27_to_C12_O16_reaclib)*Y(Al27)*state.rho - screened_rates(k_p_Al27_to_He4_Mg24_reaclib)*Y(Al27)*state.rho - screened_rates(k_p_Al27_to_Si28_reaclib)*Y(Al27)*state.rho - screened_rates(k_p_Ar36_to_He4_Cl33_reaclib)*Y(Ar36)*state.rho - screened_rates(k_p_Ar36_to_K37_reaclib)*Y(Ar36)*state.rho - screened_rates(k_p_Ar37_to_He4_Cl34_reaclib)*Y(Ar37)*state.rho - screened_rates(k_p_Ar37_to_K38_reaclib)*Y(Ar37)*state.rho - screened_rates(k_p_Ar37_to_n_K37_reaclib)*Y(Ar37)*state.rho - screened_rates(k_p_Ar38_to_He4_Cl35_reaclib)*Y(Ar38)*state.rho - screened_rates(k_p_Ar38_to_K39_reaclib)*Y(Ar38)*state.rho - screened_rates(k_p_Ar38_to_n_K38_reaclib)*Y(Ar38)*state.rho - screened_rates(k_p_Ar39_to_He4_Cl36_reaclib)*Y(Ar39)*state.rho - screened_rates(k_p_Ar39_to_K40_reaclib)*Y(Ar39)*state.rho - screened_rates(k_p_Ar39_to_n_K39_reaclib)*Y(Ar39)*state.rho - screened_rates(k_p_Ar40_to_He4_Cl37_reaclib)*Y(Ar40)*state.rho - screened_rates(k_p_Ar40_to_K41_reaclib)*Y(Ar40)*state.rho - screened_rates(k_p_Ar40_to_n_K40_reaclib)*Y(Ar40)*state.rho - screened_rates(k_p_B10_to_He4_Be7_reaclib)*Y(B10)*state.rho - screened_rates(k_p_B11_to_C12_reaclib)*Y(B11)*state.rho - screened_rates(k_p_B11_to_He4_He4_He4_reaclib)*Y(B11)*state.rho - screened_rates(k_p_Be7_to_B8_reaclib)*Y(Be7)*state.rho - screened_rates(k_p_Be9_to_B10_reaclib)*Y(Be9)*state.rho - screened_rates(k_p_Be9_to_He4_Li6_reaclib)*Y(Be9)*state.rho - screened_rates(k_p_Be9_to_d_He4_He4_reaclib)*Y(Be9)*state.rho - screened_rates(k_p_C12_to_N13_reaclib)*Y(C12)*state.rho - screened_rates(k_p_C13_to_He4_B10_reaclib)*Y(C13)*state.rho - screened_rates(k_p_C13_to_N14_reaclib)*Y(C13)*state.rho - screened_rates(k_p_C13_to_n_N13_reaclib)*Y(C13)*state.rho - screened_rates(k_p_C14_to_He4_B11_reaclib)*Y(C14)*state.rho - screened_rates(k_p_C14_to_N15_reaclib)*Y(C14)*state.rho - screened_rates(k_p_C14_to_n_N14_reaclib)*Y(C14)*state.rho - screened_rates(k_p_Ca40_to_He4_K37_reaclib)*Y(Ca40)*state.rho - screened_rates(k_p_Ca41_to_He4_K38_reaclib)*Y(Ca41)*state.rho - screened_rates(k_p_Ca42_to_He4_K39_reaclib)*Y(Ca42)*state.rho - screened_rates(k_p_Ca42_to_Sc43_reaclib)*Y(Ca42)*state.rho - screened_rates(k_p_Ca43_to_He4_K40_reaclib)*Y(Ca43)*state.rho - screened_rates(k_p_Ca43_to_Sc44_reaclib)*Y(Ca43)*state.rho - screened_rates(k_p_Ca43_to_n_Sc43_reaclib)*Y(Ca43)*state.rho - screened_rates(k_p_Ca44_to_He4_K41_reaclib)*Y(Ca44)*state.rho - screened_rates(k_p_Ca44_to_Sc45_reaclib)*Y(Ca44)*state.rho - screened_rates(k_p_Ca44_to_n_Sc44_reaclib)*Y(Ca44)*state.rho - screened_rates(k_p_Ca45_to_Sc46_reaclib)*Y(Ca45)*state.rho - screened_rates(k_p_Ca45_to_n_Sc45_reaclib)*Y(Ca45)*state.rho - screened_rates(k_p_Ca46_to_Sc47_reaclib)*Y(Ca46)*state.rho - screened_rates(k_p_Ca46_to_n_Sc46_reaclib)*Y(Ca46)*state.rho - screened_rates(k_p_Ca47_to_Sc48_reaclib)*Y(Ca47)*state.rho - screened_rates(k_p_Ca47_to_n_Sc47_reaclib)*Y(Ca47)*state.rho - screened_rates(k_p_Ca48_to_Sc49_reaclib)*Y(Ca48)*state.rho - screened_rates(k_p_Ca48_to_n_Sc48_reaclib)*Y(Ca48)*state.rho - screened_rates(k_p_Cl35_to_Ar36_reaclib)*Y(Cl35)*state.rho - screened_rates(k_p_Cl35_to_He4_S32_reaclib)*Y(Cl35)*state.rho - screened_rates(k_p_Cl36_to_Ar37_reaclib)*Y(Cl36)*state.rho - screened_rates(k_p_Cl36_to_He4_S33_reaclib)*Y(Cl36)*state.rho - screened_rates(k_p_Cl36_to_n_Ar36_reaclib)*Y(Cl36)*state.rho - screened_rates(k_p_Cl37_to_Ar38_reaclib)*Y(Cl37)*state.rho - screened_rates(k_p_Cl37_to_He4_S34_reaclib)*Y(Cl37)*state.rho - screened_rates(k_p_Cl37_to_n_Ar37_reaclib)*Y(Cl37)*state.rho - screened_rates(k_p_Co55_to_He4_Fe52_reaclib)*Y(Co55)*state.rho - screened_rates(k_p_Co55_to_Ni56_reaclib)*Y(Co55)*state.rho - screened_rates(k_p_Co56_to_He4_Fe53_reaclib)*Y(Co56)*state.rho - screened_rates(k_p_Co56_to_Ni57_reaclib)*Y(Co56)*state.rho - screened_rates(k_p_Co56_to_n_Ni56_reaclib)*Y(Co56)*state.rho - screened_rates(k_p_Co57_to_He4_Fe54_reaclib)*Y(Co57)*state.rho - screened_rates(k_p_Co57_to_Ni58_reaclib)*Y(Co57)*state.rho - screened_rates(k_p_Co57_to_n_Ni57_reaclib)*Y(Co57)*state.rho - screened_rates(k_p_Co58_to_He4_Fe55_reaclib)*Y(Co58)*state.rho - screened_rates(k_p_Co58_to_Ni59_reaclib)*Y(Co58)*state.rho - screened_rates(k_p_Co58_to_n_Ni58_reaclib)*Y(Co58)*state.rho - screened_rates(k_p_Co59_to_He4_Fe56_reaclib)*Y(Co59)*state.rho - screened_rates(k_p_Co59_to_Ni60_reaclib)*Y(Co59)*state.rho - screened_rates(k_p_Co59_to_n_Ni59_reaclib)*Y(Co59)*state.rho - screened_rates(k_p_Cr49_to_He4_V46_reaclib)*Y(Cr49)*state.rho - screened_rates(k_p_Cr49_to_Mn50_reaclib)*Y(Cr49)*state.rho - screened_rates(k_p_Cr50_to_He4_V47_reaclib)*Y(Cr50)*state.rho - screened_rates(k_p_Cr50_to_Mn51_reaclib)*Y(Cr50)*state.rho - screened_rates(k_p_Cr50_to_n_Mn50_reaclib)*Y(Cr50)*state.rho - screened_rates(k_p_Cr51_to_He4_V48_reaclib)*Y(Cr51)*state.rho - screened_rates(k_p_Cr51_to_Mn52_reaclib)*Y(Cr51)*state.rho - screened_rates(k_p_Cr51_to_n_Mn51_reaclib)*Y(Cr51)*state.rho - screened_rates(k_p_Cr52_to_He4_V49_reaclib)*Y(Cr52)*state.rho - screened_rates(k_p_Cr52_to_Mn53_reaclib)*Y(Cr52)*state.rho - screened_rates(k_p_Cr52_to_n_Mn52_reaclib)*Y(Cr52)*state.rho - screened_rates(k_p_Cr53_to_He4_V50_reaclib)*Y(Cr53)*state.rho - screened_rates(k_p_Cr53_to_Mn54_reaclib)*Y(Cr53)*state.rho - screened_rates(k_p_Cr53_to_n_Mn53_reaclib)*Y(Cr53)*state.rho - screened_rates(k_p_Cr54_to_He4_V51_reaclib)*Y(Cr54)*state.rho - screened_rates(k_p_Cr54_to_Mn55_reaclib)*Y(Cr54)*state.rho - screened_rates(k_p_Cr54_to_n_Mn54_reaclib)*Y(Cr54)*state.rho - screened_rates(k_p_Cu58_to_Zn59_reaclib)*Y(Cu58)*state.rho - screened_rates(k_p_Cu59_to_He4_Ni56_reaclib)*Y(Cu59)*state.rho - screened_rates(k_p_Cu59_to_Zn60_reaclib)*Y(Cu59)*state.rho - screened_rates(k_p_Cu59_to_n_Zn59_reaclib)*Y(Cu59)*state.rho - screened_rates(k_p_Cu60_to_He4_Ni57_reaclib)*Y(Cu60)*state.rho - screened_rates(k_p_Cu60_to_Zn61_reaclib)*Y(Cu60)*state.rho - screened_rates(k_p_Cu60_to_n_Zn60_reaclib)*Y(Cu60)*state.rho - screened_rates(k_p_Cu61_to_He4_Ni58_reaclib)*Y(Cu61)*state.rho - screened_rates(k_p_Cu61_to_Zn62_reaclib)*Y(Cu61)*state.rho - screened_rates(k_p_Cu61_to_n_Zn61_reaclib)*Y(Cu61)*state.rho - screened_rates(k_p_Cu62_to_He4_Ni59_reaclib)*Y(Cu62)*state.rho - screened_rates(k_p_Cu62_to_Zn63_reaclib)*Y(Cu62)*state.rho - screened_rates(k_p_Cu62_to_n_Zn62_reaclib)*Y(Cu62)*state.rho - screened_rates(k_p_Cu63_to_He4_Ni60_reaclib)*Y(Cu63)*state.rho - screened_rates(k_p_Cu63_to_Zn64_reaclib)*Y(Cu63)*state.rho - screened_rates(k_p_Cu63_to_n_Zn63_reaclib)*Y(Cu63)*state.rho - screened_rates(k_p_Cu64_to_He4_Ni61_reaclib)*Y(Cu64)*state.rho - screened_rates(k_p_Cu64_to_Zn65_reaclib)*Y(Cu64)*state.rho - screened_rates(k_p_Cu64_to_n_Zn64_reaclib)*Y(Cu64)*state.rho - screened_rates(k_p_Cu65_to_He4_Ni62_reaclib)*Y(Cu65)*state.rho - screened_rates(k_p_Cu65_to_Zn66_reaclib)*Y(Cu65)*state.rho - screened_rates(k_p_Cu65_to_n_Zn65_reaclib)*Y(Cu65)*state.rho - screened_rates(k_p_F17_to_He4_O14_reaclib)*Y(F17)*state.rho - screened_rates(k_p_F17_to_Ne18_reaclib)*Y(F17)*state.rho - screened_rates(k_p_F18_to_He4_O15_reaclib)*Y(F18)*state.rho - screened_rates(k_p_F18_to_Ne19_reaclib)*Y(F18)*state.rho - screened_rates(k_p_F18_to_n_Ne18_reaclib)*Y(F18)*state.rho - screened_rates(k_p_F19_to_He4_O16_reaclib)*Y(F19)*state.rho - screened_rates(k_p_F19_to_Ne20_reaclib)*Y(F19)*state.rho - screened_rates(k_p_F19_to_n_Ne19_reaclib)*Y(F19)*state.rho - screened_rates(k_p_Fe52_to_Co53_reaclib)*Y(Fe52)*state.rho - screened_rates(k_p_Fe53_to_Co54_reaclib)*Y(Fe53)*state.rho - screened_rates(k_p_Fe53_to_He4_Mn50_reaclib)*Y(Fe53)*state.rho - screened_rates(k_p_Fe53_to_n_Co53_reaclib)*Y(Fe53)*state.rho - screened_rates(k_p_Fe54_to_Co55_reaclib)*Y(Fe54)*state.rho - screened_rates(k_p_Fe54_to_He4_Mn51_reaclib)*Y(Fe54)*state.rho - screened_rates(k_p_Fe54_to_n_Co54_reaclib)*Y(Fe54)*state.rho - screened_rates(k_p_Fe55_to_Co56_reaclib)*Y(Fe55)*state.rho - screened_rates(k_p_Fe55_to_He4_Mn52_reaclib)*Y(Fe55)*state.rho - screened_rates(k_p_Fe55_to_n_Co55_reaclib)*Y(Fe55)*state.rho - screened_rates(k_p_Fe56_to_Co57_reaclib)*Y(Fe56)*state.rho - screened_rates(k_p_Fe56_to_He4_Mn53_reaclib)*Y(Fe56)*state.rho - screened_rates(k_p_Fe56_to_n_Co56_reaclib)*Y(Fe56)*state.rho - screened_rates(k_p_Fe57_to_Co58_reaclib)*Y(Fe57)*state.rho - screened_rates(k_p_Fe57_to_He4_Mn54_reaclib)*Y(Fe57)*state.rho - screened_rates(k_p_Fe57_to_n_Co57_reaclib)*Y(Fe57)*state.rho - screened_rates(k_p_Fe58_to_Co59_reaclib)*Y(Fe58)*state.rho - screened_rates(k_p_Fe58_to_He4_Mn55_reaclib)*Y(Fe58)*state.rho - screened_rates(k_p_Fe58_to_n_Co58_reaclib)*Y(Fe58)*state.rho - screened_rates(k_p_Ga62_to_Ge63_reaclib)*Y(Ga62)*state.rho - screened_rates(k_p_Ga62_to_He4_Zn59_reaclib)*Y(Ga62)*state.rho - screened_rates(k_p_Ga63_to_Ge64_reaclib)*Y(Ga63)*state.rho - screened_rates(k_p_Ga63_to_He4_Zn60_reaclib)*Y(Ga63)*state.rho - screened_rates(k_p_Ga63_to_n_Ge63_reaclib)*Y(Ga63)*state.rho - screened_rates(k_p_Ga64_to_He4_Zn61_reaclib)*Y(Ga64)*state.rho - screened_rates(k_p_Ga64_to_n_Ge64_reaclib)*Y(Ga64)*state.rho - screened_rates(k_p_He3_to_He4_reaclib)*Y(He3)*state.rho - 0.5*screened_rates(k_p_He4_He4_to_d_Be7_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - 0.5*screened_rates(k_p_He4_He4_to_n_B8_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - screened_rates(k_p_He4_to_d_He3_reaclib)*Y(He4)*state.rho - screened_rates(k_p_K39_to_Ca40_reaclib)*Y(K39)*state.rho - screened_rates(k_p_K39_to_He4_Ar36_reaclib)*Y(K39)*state.rho - screened_rates(k_p_K40_to_Ca41_reaclib)*Y(K40)*state.rho - screened_rates(k_p_K40_to_He4_Ar37_reaclib)*Y(K40)*state.rho - screened_rates(k_p_K40_to_n_Ca40_reaclib)*Y(K40)*state.rho - screened_rates(k_p_K41_to_Ca42_reaclib)*Y(K41)*state.rho - screened_rates(k_p_K41_to_He4_Ar38_reaclib)*Y(K41)*state.rho - screened_rates(k_p_K41_to_n_Ca41_reaclib)*Y(K41)*state.rho - screened_rates(k_p_Li6_to_Be7_reaclib)*Y(Li6)*state.rho - screened_rates(k_p_Li6_to_He4_He3_reaclib)*Y(Li6)*state.rho - screened_rates(k_p_Li7_to_He4_He4_reaclib)*Y(Li7)*state.rho - screened_rates(k_p_Li7_to_d_Li6_reaclib)*Y(Li7)*state.rho - screened_rates(k_p_Li7_to_n_Be7_reaclib)*Y(Li7)*state.rho - screened_rates(k_p_Mg24_to_Al25_reaclib)*Y(Mg24)*state.rho - screened_rates(k_p_Mg24_to_He4_Na21_reaclib)*Y(Mg24)*state.rho - screened_rates(k_p_Mg25_to_Al26_reaclib)*Y(Mg25)*state.rho - screened_rates(k_p_Mg25_to_He4_Na22_reaclib)*Y(Mg25)*state.rho - screened_rates(k_p_Mg25_to_n_Al25_reaclib)*Y(Mg25)*state.rho - screened_rates(k_p_Mg26_to_Al27_reaclib)*Y(Mg26)*state.rho - screened_rates(k_p_Mg26_to_He4_Na23_reaclib)*Y(Mg26)*state.rho - screened_rates(k_p_Mg26_to_n_Al26_reaclib)*Y(Mg26)*state.rho - screened_rates(k_p_Mn51_to_Fe52_reaclib)*Y(Mn51)*state.rho - screened_rates(k_p_Mn51_to_He4_Cr48_reaclib)*Y(Mn51)*state.rho - screened_rates(k_p_Mn52_to_Fe53_reaclib)*Y(Mn52)*state.rho - screened_rates(k_p_Mn52_to_He4_Cr49_reaclib)*Y(Mn52)*state.rho - screened_rates(k_p_Mn52_to_n_Fe52_reaclib)*Y(Mn52)*state.rho - screened_rates(k_p_Mn53_to_Fe54_reaclib)*Y(Mn53)*state.rho - screened_rates(k_p_Mn53_to_He4_Cr50_reaclib)*Y(Mn53)*state.rho - screened_rates(k_p_Mn53_to_n_Fe53_reaclib)*Y(Mn53)*state.rho - screened_rates(k_p_Mn54_to_Fe55_reaclib)*Y(Mn54)*state.rho - screened_rates(k_p_Mn54_to_He4_Cr51_reaclib)*Y(Mn54)*state.rho - screened_rates(k_p_Mn54_to_n_Fe54_reaclib)*Y(Mn54)*state.rho - screened_rates(k_p_Mn55_to_Fe56_reaclib)*Y(Mn55)*state.rho - screened_rates(k_p_Mn55_to_He4_Cr52_reaclib)*Y(Mn55)*state.rho - screened_rates(k_p_Mn55_to_n_Fe55_reaclib)*Y(Mn55)*state.rho - screened_rates(k_p_N13_to_O14_reaclib)*Y(N13)*state.rho - screened_rates(k_p_N14_to_O15_reaclib)*Y(N14)*state.rho - screened_rates(k_p_N14_to_n_O14_reaclib)*Y(N14)*state.rho - screened_rates(k_p_N15_to_He4_C12_reaclib)*Y(N15)*state.rho - screened_rates(k_p_N15_to_O16_reaclib)*Y(N15)*state.rho - screened_rates(k_p_N15_to_n_O15_reaclib)*Y(N15)*state.rho - screened_rates(k_p_Na21_to_He4_Ne18_reaclib)*Y(Na21)*state.rho - screened_rates(k_p_Na22_to_He4_Ne19_reaclib)*Y(Na22)*state.rho - screened_rates(k_p_Na22_to_Mg23_reaclib)*Y(Na22)*state.rho - screened_rates(k_p_Na23_to_C12_C12_reaclib)*Y(Na23)*state.rho - screened_rates(k_p_Na23_to_He4_Ne20_reaclib)*Y(Na23)*state.rho - screened_rates(k_p_Na23_to_Mg24_reaclib)*Y(Na23)*state.rho - screened_rates(k_p_Na23_to_n_Mg23_reaclib)*Y(Na23)*state.rho - screened_rates(k_p_Ne20_to_He4_F17_reaclib)*Y(Ne20)*state.rho - screened_rates(k_p_Ne20_to_Na21_reaclib)*Y(Ne20)*state.rho - screened_rates(k_p_Ne21_to_He4_F18_reaclib)*Y(Ne21)*state.rho - screened_rates(k_p_Ne21_to_Na22_reaclib)*Y(Ne21)*state.rho - screened_rates(k_p_Ne21_to_n_Na21_reaclib)*Y(Ne21)*state.rho - screened_rates(k_p_Ne22_to_He4_F19_reaclib)*Y(Ne22)*state.rho - screened_rates(k_p_Ne22_to_Na23_reaclib)*Y(Ne22)*state.rho - screened_rates(k_p_Ne22_to_n_Na22_reaclib)*Y(Ne22)*state.rho - screened_rates(k_p_Ni56_to_Cu57_reaclib)*Y(Ni56)*state.rho - screened_rates(k_p_Ni56_to_He4_Co53_reaclib)*Y(Ni56)*state.rho - screened_rates(k_p_Ni57_to_Cu58_reaclib)*Y(Ni57)*state.rho - screened_rates(k_p_Ni57_to_He4_Co54_reaclib)*Y(Ni57)*state.rho - screened_rates(k_p_Ni57_to_n_Cu57_reaclib)*Y(Ni57)*state.rho - screened_rates(k_p_Ni58_to_Cu59_reaclib)*Y(Ni58)*state.rho - screened_rates(k_p_Ni58_to_He4_Co55_reaclib)*Y(Ni58)*state.rho - screened_rates(k_p_Ni58_to_n_Cu58_reaclib)*Y(Ni58)*state.rho - screened_rates(k_p_Ni59_to_Cu60_reaclib)*Y(Ni59)*state.rho - screened_rates(k_p_Ni59_to_He4_Co56_reaclib)*Y(Ni59)*state.rho - screened_rates(k_p_Ni59_to_n_Cu59_reaclib)*Y(Ni59)*state.rho - screened_rates(k_p_Ni60_to_Cu61_reaclib)*Y(Ni60)*state.rho - screened_rates(k_p_Ni60_to_He4_Co57_reaclib)*Y(Ni60)*state.rho - screened_rates(k_p_Ni60_to_n_Cu60_reaclib)*Y(Ni60)*state.rho - screened_rates(k_p_Ni61_to_Cu62_reaclib)*Y(Ni61)*state.rho - screened_rates(k_p_Ni61_to_He4_Co58_reaclib)*Y(Ni61)*state.rho - screened_rates(k_p_Ni61_to_n_Cu61_reaclib)*Y(Ni61)*state.rho - screened_rates(k_p_Ni62_to_Cu63_reaclib)*Y(Ni62)*state.rho - screened_rates(k_p_Ni62_to_He4_Co59_reaclib)*Y(Ni62)*state.rho - screened_rates(k_p_Ni62_to_n_Cu62_reaclib)*Y(Ni62)*state.rho - screened_rates(k_p_Ni63_to_Cu64_reaclib)*Y(Ni63)*state.rho - screened_rates(k_p_Ni63_to_n_Cu63_reaclib)*Y(Ni63)*state.rho - screened_rates(k_p_Ni64_to_Cu65_reaclib)*Y(Ni64)*state.rho - screened_rates(k_p_Ni64_to_n_Cu64_reaclib)*Y(Ni64)*state.rho - screened_rates(k_p_O16_to_F17_reaclib)*Y(O16)*state.rho - screened_rates(k_p_O16_to_He4_N13_reaclib)*Y(O16)*state.rho - screened_rates(k_p_O17_to_F18_reaclib)*Y(O17)*state.rho - screened_rates(k_p_O17_to_He4_N14_reaclib)*Y(O17)*state.rho - screened_rates(k_p_O17_to_n_F17_reaclib)*Y(O17)*state.rho - screened_rates(k_p_O18_to_F19_reaclib)*Y(O18)*state.rho - screened_rates(k_p_O18_to_He4_N15_reaclib)*Y(O18)*state.rho - screened_rates(k_p_O18_to_n_F18_reaclib)*Y(O18)*state.rho - screened_rates(k_p_P31_to_C12_Ne20_reaclib)*Y(P31)*state.rho - screened_rates(k_p_P31_to_He4_Si28_reaclib)*Y(P31)*state.rho - screened_rates(k_p_P31_to_O16_O16_reaclib)*Y(P31)*state.rho - screened_rates(k_p_P31_to_S32_reaclib)*Y(P31)*state.rho - screened_rates(k_p_P32_to_He4_Si29_reaclib)*Y(P32)*state.rho - screened_rates(k_p_P32_to_S33_reaclib)*Y(P32)*state.rho - screened_rates(k_p_P32_to_n_S32_reaclib)*Y(P32)*state.rho - screened_rates(k_p_P33_to_He4_Si30_reaclib)*Y(P33)*state.rho - screened_rates(k_p_P33_to_S34_reaclib)*Y(P33)*state.rho - screened_rates(k_p_P33_to_n_S33_reaclib)*Y(P33)*state.rho - screened_rates(k_p_S32_to_Cl33_reaclib)*Y(S32)*state.rho - screened_rates(k_p_S32_to_He4_P29_reaclib)*Y(S32)*state.rho - screened_rates(k_p_S33_to_Cl34_reaclib)*Y(S33)*state.rho - screened_rates(k_p_S33_to_He4_P30_reaclib)*Y(S33)*state.rho - screened_rates(k_p_S33_to_n_Cl33_reaclib)*Y(S33)*state.rho - screened_rates(k_p_S34_to_Cl35_reaclib)*Y(S34)*state.rho - screened_rates(k_p_S34_to_He4_P31_reaclib)*Y(S34)*state.rho - screened_rates(k_p_S34_to_n_Cl34_reaclib)*Y(S34)*state.rho - screened_rates(k_p_S35_to_Cl36_reaclib)*Y(S35)*state.rho - screened_rates(k_p_S35_to_He4_P32_reaclib)*Y(S35)*state.rho - screened_rates(k_p_S35_to_n_Cl35_reaclib)*Y(S35)*state.rho - screened_rates(k_p_S36_to_Cl37_reaclib)*Y(S36)*state.rho - screened_rates(k_p_S36_to_He4_P33_reaclib)*Y(S36)*state.rho - screened_rates(k_p_S36_to_n_Cl36_reaclib)*Y(S36)*state.rho - screened_rates(k_p_Sc43_to_He4_Ca40_reaclib)*Y(Sc43)*state.rho - screened_rates(k_p_Sc43_to_Ti44_reaclib)*Y(Sc43)*state.rho - screened_rates(k_p_Sc44_to_He4_Ca41_reaclib)*Y(Sc44)*state.rho - screened_rates(k_p_Sc44_to_Ti45_reaclib)*Y(Sc44)*state.rho - screened_rates(k_p_Sc44_to_n_Ti44_reaclib)*Y(Sc44)*state.rho - screened_rates(k_p_Sc45_to_He4_Ca42_reaclib)*Y(Sc45)*state.rho - screened_rates(k_p_Sc45_to_Ti46_reaclib)*Y(Sc45)*state.rho - screened_rates(k_p_Sc45_to_n_Ti45_reaclib)*Y(Sc45)*state.rho - screened_rates(k_p_Sc46_to_He4_Ca43_reaclib)*Y(Sc46)*state.rho - screened_rates(k_p_Sc46_to_Ti47_reaclib)*Y(Sc46)*state.rho - screened_rates(k_p_Sc46_to_n_Ti46_reaclib)*Y(Sc46)*state.rho - screened_rates(k_p_Sc47_to_He4_Ca44_reaclib)*Y(Sc47)*state.rho - screened_rates(k_p_Sc47_to_Ti48_reaclib)*Y(Sc47)*state.rho - screened_rates(k_p_Sc47_to_n_Ti47_reaclib)*Y(Sc47)*state.rho - screened_rates(k_p_Sc48_to_He4_Ca45_reaclib)*Y(Sc48)*state.rho - screened_rates(k_p_Sc48_to_Ti49_reaclib)*Y(Sc48)*state.rho - screened_rates(k_p_Sc48_to_n_Ti48_reaclib)*Y(Sc48)*state.rho - screened_rates(k_p_Sc49_to_He4_Ca46_reaclib)*Y(Sc49)*state.rho - screened_rates(k_p_Sc49_to_Ti50_reaclib)*Y(Sc49)*state.rho - screened_rates(k_p_Sc49_to_n_Ti49_reaclib)*Y(Sc49)*state.rho - screened_rates(k_p_Si28_to_He4_Al25_reaclib)*Y(Si28)*state.rho - screened_rates(k_p_Si28_to_P29_reaclib)*Y(Si28)*state.rho - screened_rates(k_p_Si29_to_He4_Al26_reaclib)*Y(Si29)*state.rho - screened_rates(k_p_Si29_to_P30_reaclib)*Y(Si29)*state.rho - screened_rates(k_p_Si29_to_n_P29_reaclib)*Y(Si29)*state.rho - screened_rates(k_p_Si30_to_He4_Al27_reaclib)*Y(Si30)*state.rho - screened_rates(k_p_Si30_to_P31_reaclib)*Y(Si30)*state.rho - screened_rates(k_p_Si30_to_n_P30_reaclib)*Y(Si30)*state.rho - screened_rates(k_p_Si31_to_P32_reaclib)*Y(Si31)*state.rho - screened_rates(k_p_Si31_to_n_P31_reaclib)*Y(Si31)*state.rho - screened_rates(k_p_Si32_to_P33_reaclib)*Y(Si32)*state.rho - screened_rates(k_p_Si32_to_n_P32_reaclib)*Y(Si32)*state.rho - screened_rates(k_p_Ti45_to_V46_reaclib)*Y(Ti45)*state.rho - screened_rates(k_p_Ti46_to_He4_Sc43_reaclib)*Y(Ti46)*state.rho - screened_rates(k_p_Ti46_to_V47_reaclib)*Y(Ti46)*state.rho - screened_rates(k_p_Ti46_to_n_V46_reaclib)*Y(Ti46)*state.rho - screened_rates(k_p_Ti47_to_He4_Sc44_reaclib)*Y(Ti47)*state.rho - screened_rates(k_p_Ti47_to_V48_reaclib)*Y(Ti47)*state.rho - screened_rates(k_p_Ti47_to_n_V47_reaclib)*Y(Ti47)*state.rho - screened_rates(k_p_Ti48_to_He4_Sc45_reaclib)*Y(Ti48)*state.rho - screened_rates(k_p_Ti48_to_V49_reaclib)*Y(Ti48)*state.rho - screened_rates(k_p_Ti48_to_n_V48_reaclib)*Y(Ti48)*state.rho - screened_rates(k_p_Ti49_to_He4_Sc46_reaclib)*Y(Ti49)*state.rho - screened_rates(k_p_Ti49_to_V50_reaclib)*Y(Ti49)*state.rho - screened_rates(k_p_Ti49_to_n_V49_reaclib)*Y(Ti49)*state.rho - screened_rates(k_p_Ti50_to_He4_Sc47_reaclib)*Y(Ti50)*state.rho - screened_rates(k_p_Ti50_to_V51_reaclib)*Y(Ti50)*state.rho - screened_rates(k_p_Ti50_to_n_V50_reaclib)*Y(Ti50)*state.rho - screened_rates(k_p_Ti51_to_He4_Sc48_reaclib)*Y(Ti51)*state.rho - screened_rates(k_p_Ti51_to_V52_reaclib)*Y(Ti51)*state.rho - screened_rates(k_p_Ti51_to_n_V51_reaclib)*Y(Ti51)*state.rho - screened_rates(k_p_V47_to_Cr48_reaclib)*Y(V47)*state.rho - screened_rates(k_p_V47_to_He4_Ti44_reaclib)*Y(V47)*state.rho - screened_rates(k_p_V48_to_Cr49_reaclib)*Y(V48)*state.rho - screened_rates(k_p_V48_to_He4_Ti45_reaclib)*Y(V48)*state.rho - screened_rates(k_p_V48_to_n_Cr48_reaclib)*Y(V48)*state.rho - screened_rates(k_p_V49_to_Cr50_reaclib)*Y(V49)*state.rho - screened_rates(k_p_V49_to_He4_Ti46_reaclib)*Y(V49)*state.rho - screened_rates(k_p_V49_to_n_Cr49_reaclib)*Y(V49)*state.rho - screened_rates(k_p_V50_to_Cr51_reaclib)*Y(V50)*state.rho - screened_rates(k_p_V50_to_He4_Ti47_reaclib)*Y(V50)*state.rho - screened_rates(k_p_V50_to_n_Cr50_reaclib)*Y(V50)*state.rho - screened_rates(k_p_V51_to_Cr52_reaclib)*Y(V51)*state.rho - screened_rates(k_p_V51_to_He4_Ti48_reaclib)*Y(V51)*state.rho - screened_rates(k_p_V51_to_n_Cr51_reaclib)*Y(V51)*state.rho - screened_rates(k_p_V52_to_Cr53_reaclib)*Y(V52)*state.rho - screened_rates(k_p_V52_to_He4_Ti49_reaclib)*Y(V52)*state.rho - screened_rates(k_p_V52_to_n_Cr52_reaclib)*Y(V52)*state.rho - screened_rates(k_p_Zn60_to_He4_Cu57_reaclib)*Y(Zn60)*state.rho - screened_rates(k_p_Zn61_to_Ga62_reaclib)*Y(Zn61)*state.rho - screened_rates(k_p_Zn61_to_He4_Cu58_reaclib)*Y(Zn61)*state.rho - screened_rates(k_p_Zn62_to_Ga63_reaclib)*Y(Zn62)*state.rho - screened_rates(k_p_Zn62_to_He4_Cu59_reaclib)*Y(Zn62)*state.rho - screened_rates(k_p_Zn62_to_n_Ga62_reaclib)*Y(Zn62)*state.rho - screened_rates(k_p_Zn63_to_Ga64_reaclib)*Y(Zn63)*state.rho - screened_rates(k_p_Zn63_to_He4_Cu60_reaclib)*Y(Zn63)*state.rho - screened_rates(k_p_Zn63_to_n_Ga63_reaclib)*Y(Zn63)*state.rho - screened_rates(k_p_Zn64_to_He4_Cu61_reaclib)*Y(Zn64)*state.rho - screened_rates(k_p_Zn64_to_n_Ga64_reaclib)*Y(Zn64)*state.rho - screened_rates(k_p_Zn65_to_He4_Cu62_reaclib)*Y(Zn65)*state.rho - screened_rates(k_p_Zn66_to_He4_Cu63_reaclib)*Y(Zn66)*state.rho - screened_rates(k_p_d_to_He3_reaclib)*Y(H2)*state.rho + 2*screened_rates(k_p_d_to_n_p_p_reaclib)*Y(H2)*state.rho - 1.0*screened_rates(k_p_p_He4_He4_to_He3_Be7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<3>(state.rho) - 2.0*screened_rates(k_p_p_He4_to_He3_He3_reaclib)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho) - 2.0*screened_rates(k_p_p_to_d_reaclib_beta_pos)*Y(H1)*state.rho - 2.0*screened_rates(k_p_p_to_d_reaclib_electron_capture)*Y(H1)*amrex::Math::powi<2>(state.rho)*state.y_e - screened_rates(k_p_to_n_weaktab); + scratch = -screened_rates(k_Al26_p_to_He4_Mg23_derived)*Y(Al26)*state.rho - screened_rates(k_Al27_p_to_C12_O16_derived)*Y(Al27)*state.rho - screened_rates(k_Al27_p_to_He4_Mg24_reaclib)*Y(Al27)*state.rho - screened_rates(k_Al27_p_to_Si28_reaclib)*Y(Al27)*state.rho - screened_rates(k_Ar36_p_to_He4_Cl33_derived)*Y(Ar36)*state.rho - screened_rates(k_Ar36_p_to_K37_reaclib)*Y(Ar36)*state.rho - screened_rates(k_Ar37_p_to_He4_Cl34_derived)*Y(Ar37)*state.rho - screened_rates(k_Ar37_p_to_K38_reaclib)*Y(Ar37)*state.rho - screened_rates(k_Ar37_p_to_n_K37_derived)*Y(Ar37)*state.rho - screened_rates(k_Ar38_p_to_He4_Cl35_derived)*Y(Ar38)*state.rho - screened_rates(k_Ar38_p_to_K39_reaclib)*Y(Ar38)*state.rho - screened_rates(k_Ar38_p_to_n_K38_derived)*Y(Ar38)*state.rho - screened_rates(k_Ar39_p_to_He4_Cl36_reaclib)*Y(Ar39)*state.rho - screened_rates(k_Ar39_p_to_K40_reaclib)*Y(Ar39)*state.rho - screened_rates(k_Ar39_p_to_n_K39_derived)*Y(Ar39)*state.rho - screened_rates(k_Ar40_p_to_He4_Cl37_reaclib)*Y(Ar40)*state.rho - screened_rates(k_Ar40_p_to_K41_reaclib)*Y(Ar40)*state.rho - screened_rates(k_Ar40_p_to_n_K40_derived)*Y(Ar40)*state.rho - screened_rates(k_B10_p_to_He4_Be7_reaclib)*Y(B10)*state.rho - screened_rates(k_B11_p_to_3He4_reaclib)*Y(B11)*state.rho - screened_rates(k_B11_p_to_C12_reaclib)*Y(B11)*state.rho - screened_rates(k_Be7_p_to_B8_reaclib)*Y(Be7)*state.rho - screened_rates(k_Be9_p_to_B10_reaclib)*Y(Be9)*state.rho - screened_rates(k_Be9_p_to_He4_Li6_reaclib)*Y(Be9)*state.rho - screened_rates(k_Be9_p_to_d_He4_He4_reaclib)*Y(Be9)*state.rho - screened_rates(k_C12_p_to_N13_reaclib)*Y(C12)*state.rho - screened_rates(k_C13_p_to_He4_B10_derived)*Y(C13)*state.rho - screened_rates(k_C13_p_to_N14_reaclib)*Y(C13)*state.rho - screened_rates(k_C13_p_to_n_N13_reaclib)*Y(C13)*state.rho - screened_rates(k_C14_p_to_He4_B11_derived)*Y(C14)*state.rho - screened_rates(k_C14_p_to_N15_reaclib)*Y(C14)*state.rho - screened_rates(k_C14_p_to_n_N14_derived)*Y(C14)*state.rho - screened_rates(k_Ca40_p_to_He4_K37_derived)*Y(Ca40)*state.rho - screened_rates(k_Ca41_p_to_He4_K38_derived)*Y(Ca41)*state.rho - screened_rates(k_Ca42_p_to_He4_K39_reaclib)*Y(Ca42)*state.rho - screened_rates(k_Ca42_p_to_Sc43_reaclib)*Y(Ca42)*state.rho - screened_rates(k_Ca43_p_to_He4_K40_derived)*Y(Ca43)*state.rho - screened_rates(k_Ca43_p_to_Sc44_reaclib)*Y(Ca43)*state.rho - screened_rates(k_Ca43_p_to_n_Sc43_derived)*Y(Ca43)*state.rho - screened_rates(k_Ca44_p_to_He4_K41_derived)*Y(Ca44)*state.rho - screened_rates(k_Ca44_p_to_Sc45_reaclib)*Y(Ca44)*state.rho - screened_rates(k_Ca44_p_to_n_Sc44_derived)*Y(Ca44)*state.rho - screened_rates(k_Ca45_p_to_Sc46_reaclib)*Y(Ca45)*state.rho - screened_rates(k_Ca45_p_to_n_Sc45_derived)*Y(Ca45)*state.rho - screened_rates(k_Ca46_p_to_Sc47_reaclib)*Y(Ca46)*state.rho - screened_rates(k_Ca46_p_to_n_Sc46_derived)*Y(Ca46)*state.rho - screened_rates(k_Ca47_p_to_Sc48_reaclib)*Y(Ca47)*state.rho - screened_rates(k_Ca47_p_to_n_Sc47_reaclib)*Y(Ca47)*state.rho - screened_rates(k_Ca48_p_to_Sc49_reaclib)*Y(Ca48)*state.rho - screened_rates(k_Ca48_p_to_n_Sc48_derived)*Y(Ca48)*state.rho - screened_rates(k_Cl35_p_to_Ar36_reaclib)*Y(Cl35)*state.rho - screened_rates(k_Cl35_p_to_He4_S32_reaclib)*Y(Cl35)*state.rho - screened_rates(k_Cl36_p_to_Ar37_reaclib)*Y(Cl36)*state.rho - screened_rates(k_Cl36_p_to_He4_S33_reaclib)*Y(Cl36)*state.rho - screened_rates(k_Cl36_p_to_n_Ar36_derived)*Y(Cl36)*state.rho - screened_rates(k_Cl37_p_to_Ar38_reaclib)*Y(Cl37)*state.rho - screened_rates(k_Cl37_p_to_He4_S34_derived)*Y(Cl37)*state.rho - screened_rates(k_Cl37_p_to_n_Ar37_derived)*Y(Cl37)*state.rho - screened_rates(k_Co55_p_to_He4_Fe52_derived)*Y(Co55)*state.rho - screened_rates(k_Co55_p_to_Ni56_reaclib)*Y(Co55)*state.rho - screened_rates(k_Co56_p_to_He4_Fe53_derived)*Y(Co56)*state.rho - screened_rates(k_Co56_p_to_Ni57_reaclib)*Y(Co56)*state.rho - screened_rates(k_Co56_p_to_n_Ni56_derived)*Y(Co56)*state.rho - screened_rates(k_Co57_p_to_He4_Fe54_reaclib)*Y(Co57)*state.rho - screened_rates(k_Co57_p_to_Ni58_reaclib)*Y(Co57)*state.rho - screened_rates(k_Co57_p_to_n_Ni57_derived)*Y(Co57)*state.rho - screened_rates(k_Co58_p_to_He4_Fe55_reaclib)*Y(Co58)*state.rho - screened_rates(k_Co58_p_to_Ni59_reaclib)*Y(Co58)*state.rho - screened_rates(k_Co58_p_to_n_Ni58_derived)*Y(Co58)*state.rho - screened_rates(k_Co59_p_to_He4_Fe56_reaclib)*Y(Co59)*state.rho - screened_rates(k_Co59_p_to_Ni60_reaclib)*Y(Co59)*state.rho - screened_rates(k_Co59_p_to_n_Ni59_derived)*Y(Co59)*state.rho - screened_rates(k_Cr49_p_to_He4_V46_derived)*Y(Cr49)*state.rho - screened_rates(k_Cr49_p_to_Mn50_reaclib)*Y(Cr49)*state.rho - screened_rates(k_Cr50_p_to_He4_V47_derived)*Y(Cr50)*state.rho - screened_rates(k_Cr50_p_to_Mn51_reaclib)*Y(Cr50)*state.rho - screened_rates(k_Cr50_p_to_n_Mn50_derived)*Y(Cr50)*state.rho - screened_rates(k_Cr51_p_to_He4_V48_derived)*Y(Cr51)*state.rho - screened_rates(k_Cr51_p_to_Mn52_reaclib)*Y(Cr51)*state.rho - screened_rates(k_Cr51_p_to_n_Mn51_derived)*Y(Cr51)*state.rho - screened_rates(k_Cr52_p_to_He4_V49_derived)*Y(Cr52)*state.rho - screened_rates(k_Cr52_p_to_Mn53_reaclib)*Y(Cr52)*state.rho - screened_rates(k_Cr52_p_to_n_Mn52_derived)*Y(Cr52)*state.rho - screened_rates(k_Cr53_p_to_He4_V50_derived)*Y(Cr53)*state.rho - screened_rates(k_Cr53_p_to_Mn54_reaclib)*Y(Cr53)*state.rho - screened_rates(k_Cr53_p_to_n_Mn53_derived)*Y(Cr53)*state.rho - screened_rates(k_Cr54_p_to_He4_V51_reaclib)*Y(Cr54)*state.rho - screened_rates(k_Cr54_p_to_Mn55_reaclib)*Y(Cr54)*state.rho - screened_rates(k_Cr54_p_to_n_Mn54_derived)*Y(Cr54)*state.rho - screened_rates(k_Cu58_p_to_Zn59_reaclib)*Y(Cu58)*state.rho - screened_rates(k_Cu59_p_to_He4_Ni56_reaclib)*Y(Cu59)*state.rho - screened_rates(k_Cu59_p_to_Zn60_reaclib)*Y(Cu59)*state.rho - screened_rates(k_Cu59_p_to_n_Zn59_derived)*Y(Cu59)*state.rho - screened_rates(k_Cu60_p_to_He4_Ni57_reaclib)*Y(Cu60)*state.rho - screened_rates(k_Cu60_p_to_Zn61_reaclib)*Y(Cu60)*state.rho - screened_rates(k_Cu60_p_to_n_Zn60_derived)*Y(Cu60)*state.rho - screened_rates(k_Cu61_p_to_He4_Ni58_reaclib)*Y(Cu61)*state.rho - screened_rates(k_Cu61_p_to_Zn62_reaclib)*Y(Cu61)*state.rho - screened_rates(k_Cu61_p_to_n_Zn61_derived)*Y(Cu61)*state.rho - screened_rates(k_Cu62_p_to_He4_Ni59_reaclib)*Y(Cu62)*state.rho - screened_rates(k_Cu62_p_to_Zn63_reaclib)*Y(Cu62)*state.rho - screened_rates(k_Cu62_p_to_n_Zn62_derived)*Y(Cu62)*state.rho - screened_rates(k_Cu63_p_to_He4_Ni60_reaclib)*Y(Cu63)*state.rho - screened_rates(k_Cu63_p_to_Zn64_reaclib)*Y(Cu63)*state.rho - screened_rates(k_Cu63_p_to_n_Zn63_derived)*Y(Cu63)*state.rho - screened_rates(k_Cu64_p_to_He4_Ni61_reaclib)*Y(Cu64)*state.rho - screened_rates(k_Cu64_p_to_Zn65_reaclib)*Y(Cu64)*state.rho - screened_rates(k_Cu64_p_to_n_Zn64_derived)*Y(Cu64)*state.rho - screened_rates(k_Cu65_p_to_He4_Ni62_reaclib)*Y(Cu65)*state.rho - screened_rates(k_Cu65_p_to_Zn66_reaclib)*Y(Cu65)*state.rho - screened_rates(k_Cu65_p_to_n_Zn65_derived)*Y(Cu65)*state.rho - screened_rates(k_F17_p_to_He4_O14_derived)*Y(F17)*state.rho - screened_rates(k_F17_p_to_Ne18_reaclib)*Y(F17)*state.rho - screened_rates(k_F18_p_to_He4_O15_reaclib)*Y(F18)*state.rho - screened_rates(k_F18_p_to_Ne19_reaclib)*Y(F18)*state.rho - screened_rates(k_F18_p_to_n_Ne18_derived)*Y(F18)*state.rho - screened_rates(k_F19_p_to_He4_O16_reaclib)*Y(F19)*state.rho - screened_rates(k_F19_p_to_Ne20_reaclib)*Y(F19)*state.rho - screened_rates(k_F19_p_to_n_Ne19_reaclib)*Y(F19)*state.rho - screened_rates(k_Fe52_p_to_Co53_reaclib)*Y(Fe52)*state.rho - screened_rates(k_Fe53_p_to_Co54_reaclib)*Y(Fe53)*state.rho - screened_rates(k_Fe53_p_to_He4_Mn50_derived)*Y(Fe53)*state.rho - screened_rates(k_Fe53_p_to_n_Co53_derived)*Y(Fe53)*state.rho - screened_rates(k_Fe54_p_to_Co55_reaclib)*Y(Fe54)*state.rho - screened_rates(k_Fe54_p_to_He4_Mn51_derived)*Y(Fe54)*state.rho - screened_rates(k_Fe54_p_to_n_Co54_derived)*Y(Fe54)*state.rho - screened_rates(k_Fe55_p_to_Co56_reaclib)*Y(Fe55)*state.rho - screened_rates(k_Fe55_p_to_He4_Mn52_derived)*Y(Fe55)*state.rho - screened_rates(k_Fe55_p_to_n_Co55_derived)*Y(Fe55)*state.rho - screened_rates(k_Fe56_p_to_Co57_reaclib)*Y(Fe56)*state.rho - screened_rates(k_Fe56_p_to_He4_Mn53_derived)*Y(Fe56)*state.rho - screened_rates(k_Fe56_p_to_n_Co56_derived)*Y(Fe56)*state.rho - screened_rates(k_Fe57_p_to_Co58_reaclib)*Y(Fe57)*state.rho - screened_rates(k_Fe57_p_to_He4_Mn54_reaclib)*Y(Fe57)*state.rho - screened_rates(k_Fe57_p_to_n_Co57_derived)*Y(Fe57)*state.rho - screened_rates(k_Fe58_p_to_Co59_reaclib)*Y(Fe58)*state.rho - screened_rates(k_Fe58_p_to_He4_Mn55_reaclib)*Y(Fe58)*state.rho - screened_rates(k_Fe58_p_to_n_Co58_derived)*Y(Fe58)*state.rho - screened_rates(k_Ga62_p_to_Ge63_reaclib)*Y(Ga62)*state.rho - screened_rates(k_Ga62_p_to_He4_Zn59_reaclib)*Y(Ga62)*state.rho - screened_rates(k_Ga63_p_to_Ge64_reaclib)*Y(Ga63)*state.rho - screened_rates(k_Ga63_p_to_He4_Zn60_reaclib)*Y(Ga63)*state.rho - screened_rates(k_Ga63_p_to_n_Ge63_derived)*Y(Ga63)*state.rho - screened_rates(k_Ga64_p_to_He4_Zn61_reaclib)*Y(Ga64)*state.rho - screened_rates(k_Ga64_p_to_n_Ge64_derived)*Y(Ga64)*state.rho - screened_rates(k_He3_p_to_He4_beta_pos_reaclib)*Y(He3)*state.rho - 0.5*screened_rates(k_He4_He4_p_n_to_He3_Li7_derived)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<3>(state.rho) - 1.0*screened_rates(k_He4_He4_p_p_to_He3_Be7_derived)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<3>(state.rho) - 0.5*screened_rates(k_He4_He4_p_to_d_Be7_derived)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - 0.5*screened_rates(k_He4_He4_p_to_n_B8_derived)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - screened_rates(k_He4_p_n_to_Li6_reaclib)*Y(He4)*Y(N)*amrex::Math::powi<2>(state.rho) - 2.0*screened_rates(k_He4_p_p_to_He3_He3_derived)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho) - screened_rates(k_He4_p_to_d_He3_derived)*Y(He4)*state.rho - screened_rates(k_K39_p_to_Ca40_reaclib)*Y(K39)*state.rho - screened_rates(k_K39_p_to_He4_Ar36_reaclib)*Y(K39)*state.rho - screened_rates(k_K40_p_to_Ca41_reaclib)*Y(K40)*state.rho - screened_rates(k_K40_p_to_He4_Ar37_reaclib)*Y(K40)*state.rho - screened_rates(k_K40_p_to_n_Ca40_reaclib)*Y(K40)*state.rho - screened_rates(k_K41_p_to_Ca42_reaclib)*Y(K41)*state.rho - screened_rates(k_K41_p_to_He4_Ar38_reaclib)*Y(K41)*state.rho - screened_rates(k_K41_p_to_n_Ca41_reaclib)*Y(K41)*state.rho - screened_rates(k_Li6_p_to_Be7_reaclib)*Y(Li6)*state.rho - screened_rates(k_Li6_p_to_He4_He3_reaclib)*Y(Li6)*state.rho - screened_rates(k_Li7_p_to_He4_He4_reaclib)*Y(Li7)*state.rho - screened_rates(k_Li7_p_to_d_Li6_derived)*Y(Li7)*state.rho - screened_rates(k_Li7_p_to_n_Be7_derived)*Y(Li7)*state.rho - screened_rates(k_Mg24_p_to_Al25_reaclib)*Y(Mg24)*state.rho - screened_rates(k_Mg24_p_to_He4_Na21_reaclib)*Y(Mg24)*state.rho - screened_rates(k_Mg25_p_to_Al26_reaclib)*Y(Mg25)*state.rho - screened_rates(k_Mg25_p_to_He4_Na22_derived)*Y(Mg25)*state.rho - screened_rates(k_Mg25_p_to_n_Al25_derived)*Y(Mg25)*state.rho - screened_rates(k_Mg26_p_to_Al27_reaclib)*Y(Mg26)*state.rho - screened_rates(k_Mg26_p_to_He4_Na23_derived)*Y(Mg26)*state.rho - screened_rates(k_Mg26_p_to_n_Al26_derived)*Y(Mg26)*state.rho - screened_rates(k_Mn51_p_to_Fe52_reaclib)*Y(Mn51)*state.rho - screened_rates(k_Mn51_p_to_He4_Cr48_derived)*Y(Mn51)*state.rho - screened_rates(k_Mn52_p_to_Fe53_reaclib)*Y(Mn52)*state.rho - screened_rates(k_Mn52_p_to_He4_Cr49_derived)*Y(Mn52)*state.rho - screened_rates(k_Mn52_p_to_n_Fe52_derived)*Y(Mn52)*state.rho - screened_rates(k_Mn53_p_to_Fe54_reaclib)*Y(Mn53)*state.rho - screened_rates(k_Mn53_p_to_He4_Cr50_reaclib)*Y(Mn53)*state.rho - screened_rates(k_Mn53_p_to_n_Fe53_derived)*Y(Mn53)*state.rho - screened_rates(k_Mn54_p_to_Fe55_reaclib)*Y(Mn54)*state.rho - screened_rates(k_Mn54_p_to_He4_Cr51_reaclib)*Y(Mn54)*state.rho - screened_rates(k_Mn54_p_to_n_Fe54_derived)*Y(Mn54)*state.rho - screened_rates(k_Mn55_p_to_Fe56_reaclib)*Y(Mn55)*state.rho - screened_rates(k_Mn55_p_to_He4_Cr52_reaclib)*Y(Mn55)*state.rho - screened_rates(k_Mn55_p_to_n_Fe55_derived)*Y(Mn55)*state.rho - screened_rates(k_N13_p_to_O14_reaclib)*Y(N13)*state.rho - screened_rates(k_N14_p_to_O15_reaclib)*Y(N14)*state.rho - screened_rates(k_N14_p_to_n_O14_reaclib)*Y(N14)*state.rho - screened_rates(k_N15_p_to_He4_C12_reaclib)*Y(N15)*state.rho - screened_rates(k_N15_p_to_O16_reaclib)*Y(N15)*state.rho - screened_rates(k_N15_p_to_n_O15_reaclib)*Y(N15)*state.rho - screened_rates(k_Na21_p_to_He4_Ne18_derived)*Y(Na21)*state.rho - screened_rates(k_Na22_p_to_He4_Ne19_derived)*Y(Na22)*state.rho - screened_rates(k_Na22_p_to_Mg23_reaclib)*Y(Na22)*state.rho - screened_rates(k_Na23_p_to_C12_C12_derived)*Y(Na23)*state.rho - screened_rates(k_Na23_p_to_He4_Ne20_reaclib)*Y(Na23)*state.rho - screened_rates(k_Na23_p_to_Mg24_reaclib)*Y(Na23)*state.rho - screened_rates(k_Na23_p_to_n_Mg23_reaclib)*Y(Na23)*state.rho - screened_rates(k_Ne20_p_to_He4_F17_reaclib)*Y(Ne20)*state.rho - screened_rates(k_Ne20_p_to_Na21_reaclib)*Y(Ne20)*state.rho - screened_rates(k_Ne21_p_to_He4_F18_derived)*Y(Ne21)*state.rho - screened_rates(k_Ne21_p_to_Na22_reaclib)*Y(Ne21)*state.rho - screened_rates(k_Ne21_p_to_n_Na21_derived)*Y(Ne21)*state.rho - screened_rates(k_Ne22_p_to_He4_F19_derived)*Y(Ne22)*state.rho - screened_rates(k_Ne22_p_to_Na23_reaclib)*Y(Ne22)*state.rho - screened_rates(k_Ne22_p_to_n_Na22_derived)*Y(Ne22)*state.rho - screened_rates(k_Ni56_p_to_Cu57_reaclib)*Y(Ni56)*state.rho - screened_rates(k_Ni56_p_to_He4_Co53_derived)*Y(Ni56)*state.rho - screened_rates(k_Ni57_p_to_Cu58_reaclib)*Y(Ni57)*state.rho - screened_rates(k_Ni57_p_to_He4_Co54_derived)*Y(Ni57)*state.rho - screened_rates(k_Ni57_p_to_n_Cu57_derived)*Y(Ni57)*state.rho - screened_rates(k_Ni58_p_to_Cu59_reaclib)*Y(Ni58)*state.rho - screened_rates(k_Ni58_p_to_He4_Co55_derived)*Y(Ni58)*state.rho - screened_rates(k_Ni58_p_to_n_Cu58_derived)*Y(Ni58)*state.rho - screened_rates(k_Ni59_p_to_Cu60_reaclib)*Y(Ni59)*state.rho - screened_rates(k_Ni59_p_to_He4_Co56_derived)*Y(Ni59)*state.rho - screened_rates(k_Ni59_p_to_n_Cu59_derived)*Y(Ni59)*state.rho - screened_rates(k_Ni60_p_to_Cu61_reaclib)*Y(Ni60)*state.rho - screened_rates(k_Ni60_p_to_He4_Co57_derived)*Y(Ni60)*state.rho - screened_rates(k_Ni60_p_to_n_Cu60_derived)*Y(Ni60)*state.rho - screened_rates(k_Ni61_p_to_Cu62_reaclib)*Y(Ni61)*state.rho - screened_rates(k_Ni61_p_to_He4_Co58_reaclib)*Y(Ni61)*state.rho - screened_rates(k_Ni61_p_to_n_Cu61_derived)*Y(Ni61)*state.rho - screened_rates(k_Ni62_p_to_Cu63_reaclib)*Y(Ni62)*state.rho - screened_rates(k_Ni62_p_to_He4_Co59_reaclib)*Y(Ni62)*state.rho - screened_rates(k_Ni62_p_to_n_Cu62_derived)*Y(Ni62)*state.rho - screened_rates(k_Ni63_p_to_Cu64_reaclib)*Y(Ni63)*state.rho - screened_rates(k_Ni63_p_to_n_Cu63_derived)*Y(Ni63)*state.rho - screened_rates(k_Ni64_p_to_Cu65_reaclib)*Y(Ni64)*state.rho - screened_rates(k_Ni64_p_to_n_Cu64_derived)*Y(Ni64)*state.rho - screened_rates(k_O16_p_to_F17_reaclib)*Y(O16)*state.rho - screened_rates(k_O16_p_to_He4_N13_derived)*Y(O16)*state.rho - screened_rates(k_O17_p_to_F18_reaclib)*Y(O17)*state.rho - screened_rates(k_O17_p_to_He4_N14_reaclib)*Y(O17)*state.rho - screened_rates(k_O17_p_to_n_F17_derived)*Y(O17)*state.rho - screened_rates(k_O18_p_to_F19_reaclib)*Y(O18)*state.rho - screened_rates(k_O18_p_to_He4_N15_reaclib)*Y(O18)*state.rho - screened_rates(k_O18_p_to_n_F18_derived)*Y(O18)*state.rho - screened_rates(k_P31_p_to_C12_Ne20_derived)*Y(P31)*state.rho - screened_rates(k_P31_p_to_He4_Si28_reaclib)*Y(P31)*state.rho - screened_rates(k_P31_p_to_O16_O16_derived)*Y(P31)*state.rho - screened_rates(k_P31_p_to_S32_reaclib)*Y(P31)*state.rho - screened_rates(k_P32_p_to_He4_Si29_reaclib)*Y(P32)*state.rho - screened_rates(k_P32_p_to_S33_reaclib)*Y(P32)*state.rho - screened_rates(k_P32_p_to_n_S32_reaclib)*Y(P32)*state.rho - screened_rates(k_P33_p_to_He4_Si30_reaclib)*Y(P33)*state.rho - screened_rates(k_P33_p_to_S34_reaclib)*Y(P33)*state.rho - screened_rates(k_P33_p_to_n_S33_derived)*Y(P33)*state.rho - screened_rates(k_S32_p_to_Cl33_reaclib)*Y(S32)*state.rho - screened_rates(k_S32_p_to_He4_P29_derived)*Y(S32)*state.rho - screened_rates(k_S33_p_to_Cl34_reaclib)*Y(S33)*state.rho - screened_rates(k_S33_p_to_He4_P30_derived)*Y(S33)*state.rho - screened_rates(k_S33_p_to_n_Cl33_derived)*Y(S33)*state.rho - screened_rates(k_S34_p_to_Cl35_reaclib)*Y(S34)*state.rho - screened_rates(k_S34_p_to_He4_P31_derived)*Y(S34)*state.rho - screened_rates(k_S34_p_to_n_Cl34_derived)*Y(S34)*state.rho - screened_rates(k_S35_p_to_Cl36_reaclib)*Y(S35)*state.rho - screened_rates(k_S35_p_to_He4_P32_reaclib)*Y(S35)*state.rho - screened_rates(k_S35_p_to_n_Cl35_derived)*Y(S35)*state.rho - screened_rates(k_S36_p_to_Cl37_reaclib)*Y(S36)*state.rho - screened_rates(k_S36_p_to_He4_P33_reaclib)*Y(S36)*state.rho - screened_rates(k_S36_p_to_n_Cl36_derived)*Y(S36)*state.rho - screened_rates(k_Sc43_p_to_He4_Ca40_reaclib)*Y(Sc43)*state.rho - screened_rates(k_Sc43_p_to_Ti44_reaclib)*Y(Sc43)*state.rho - screened_rates(k_Sc44_p_to_He4_Ca41_reaclib)*Y(Sc44)*state.rho - screened_rates(k_Sc44_p_to_Ti45_reaclib)*Y(Sc44)*state.rho - screened_rates(k_Sc44_p_to_n_Ti44_derived)*Y(Sc44)*state.rho - screened_rates(k_Sc45_p_to_He4_Ca42_reaclib)*Y(Sc45)*state.rho - screened_rates(k_Sc45_p_to_Ti46_reaclib)*Y(Sc45)*state.rho - screened_rates(k_Sc45_p_to_n_Ti45_derived)*Y(Sc45)*state.rho - screened_rates(k_Sc46_p_to_He4_Ca43_reaclib)*Y(Sc46)*state.rho - screened_rates(k_Sc46_p_to_Ti47_reaclib)*Y(Sc46)*state.rho - screened_rates(k_Sc46_p_to_n_Ti46_reaclib)*Y(Sc46)*state.rho - screened_rates(k_Sc47_p_to_He4_Ca44_reaclib)*Y(Sc47)*state.rho - screened_rates(k_Sc47_p_to_Ti48_reaclib)*Y(Sc47)*state.rho - screened_rates(k_Sc47_p_to_n_Ti47_derived)*Y(Sc47)*state.rho - screened_rates(k_Sc48_p_to_He4_Ca45_reaclib)*Y(Sc48)*state.rho - screened_rates(k_Sc48_p_to_Ti49_reaclib)*Y(Sc48)*state.rho - screened_rates(k_Sc48_p_to_n_Ti48_reaclib)*Y(Sc48)*state.rho - screened_rates(k_Sc49_p_to_He4_Ca46_reaclib)*Y(Sc49)*state.rho - screened_rates(k_Sc49_p_to_Ti50_reaclib)*Y(Sc49)*state.rho - screened_rates(k_Sc49_p_to_n_Ti49_reaclib)*Y(Sc49)*state.rho - screened_rates(k_Si28_p_to_He4_Al25_derived)*Y(Si28)*state.rho - screened_rates(k_Si28_p_to_P29_reaclib)*Y(Si28)*state.rho - screened_rates(k_Si29_p_to_He4_Al26_derived)*Y(Si29)*state.rho - screened_rates(k_Si29_p_to_P30_reaclib)*Y(Si29)*state.rho - screened_rates(k_Si29_p_to_n_P29_derived)*Y(Si29)*state.rho - screened_rates(k_Si30_p_to_He4_Al27_derived)*Y(Si30)*state.rho - screened_rates(k_Si30_p_to_P31_reaclib)*Y(Si30)*state.rho - screened_rates(k_Si30_p_to_n_P30_derived)*Y(Si30)*state.rho - screened_rates(k_Si31_p_to_P32_reaclib)*Y(Si31)*state.rho - screened_rates(k_Si31_p_to_n_P31_reaclib)*Y(Si31)*state.rho - screened_rates(k_Si32_p_to_P33_reaclib)*Y(Si32)*state.rho - screened_rates(k_Si32_p_to_n_P32_derived)*Y(Si32)*state.rho - screened_rates(k_Ti45_p_to_V46_reaclib)*Y(Ti45)*state.rho - screened_rates(k_Ti46_p_to_He4_Sc43_derived)*Y(Ti46)*state.rho - screened_rates(k_Ti46_p_to_V47_reaclib)*Y(Ti46)*state.rho - screened_rates(k_Ti46_p_to_n_V46_derived)*Y(Ti46)*state.rho - screened_rates(k_Ti47_p_to_He4_Sc44_derived)*Y(Ti47)*state.rho - screened_rates(k_Ti47_p_to_V48_reaclib)*Y(Ti47)*state.rho - screened_rates(k_Ti47_p_to_n_V47_derived)*Y(Ti47)*state.rho - screened_rates(k_Ti48_p_to_He4_Sc45_derived)*Y(Ti48)*state.rho - screened_rates(k_Ti48_p_to_V49_reaclib)*Y(Ti48)*state.rho - screened_rates(k_Ti48_p_to_n_V48_derived)*Y(Ti48)*state.rho - screened_rates(k_Ti49_p_to_He4_Sc46_derived)*Y(Ti49)*state.rho - screened_rates(k_Ti49_p_to_V50_reaclib)*Y(Ti49)*state.rho - screened_rates(k_Ti49_p_to_n_V49_derived)*Y(Ti49)*state.rho - screened_rates(k_Ti50_p_to_He4_Sc47_derived)*Y(Ti50)*state.rho - screened_rates(k_Ti50_p_to_V51_reaclib)*Y(Ti50)*state.rho - screened_rates(k_Ti50_p_to_n_V50_derived)*Y(Ti50)*state.rho - screened_rates(k_Ti51_p_to_He4_Sc48_derived)*Y(Ti51)*state.rho - screened_rates(k_Ti51_p_to_V52_reaclib)*Y(Ti51)*state.rho - screened_rates(k_Ti51_p_to_n_V51_reaclib)*Y(Ti51)*state.rho - screened_rates(k_V47_p_to_Cr48_reaclib)*Y(V47)*state.rho - screened_rates(k_V47_p_to_He4_Ti44_derived)*Y(V47)*state.rho - screened_rates(k_V48_p_to_Cr49_reaclib)*Y(V48)*state.rho - screened_rates(k_V48_p_to_He4_Ti45_derived)*Y(V48)*state.rho - screened_rates(k_V48_p_to_n_Cr48_derived)*Y(V48)*state.rho - screened_rates(k_V49_p_to_Cr50_reaclib)*Y(V49)*state.rho - screened_rates(k_V49_p_to_He4_Ti46_reaclib)*Y(V49)*state.rho - screened_rates(k_V49_p_to_n_Cr49_derived)*Y(V49)*state.rho - screened_rates(k_V50_p_to_Cr51_reaclib)*Y(V50)*state.rho - screened_rates(k_V50_p_to_He4_Ti47_reaclib)*Y(V50)*state.rho - screened_rates(k_V50_p_to_n_Cr50_reaclib)*Y(V50)*state.rho - screened_rates(k_V51_p_to_Cr52_reaclib)*Y(V51)*state.rho - screened_rates(k_V51_p_to_He4_Ti48_reaclib)*Y(V51)*state.rho - screened_rates(k_V51_p_to_n_Cr51_derived)*Y(V51)*state.rho - screened_rates(k_V52_p_to_Cr53_reaclib)*Y(V52)*state.rho - screened_rates(k_V52_p_to_He4_Ti49_reaclib)*Y(V52)*state.rho - screened_rates(k_V52_p_to_n_Cr52_reaclib)*Y(V52)*state.rho - screened_rates(k_Zn60_p_to_He4_Cu57_derived)*Y(Zn60)*state.rho - screened_rates(k_Zn61_p_to_Ga62_reaclib)*Y(Zn61)*state.rho - screened_rates(k_Zn61_p_to_He4_Cu58_reaclib)*Y(Zn61)*state.rho - screened_rates(k_Zn62_p_to_Ga63_reaclib)*Y(Zn62)*state.rho - screened_rates(k_Zn62_p_to_He4_Cu59_reaclib)*Y(Zn62)*state.rho - screened_rates(k_Zn62_p_to_n_Ga62_derived)*Y(Zn62)*state.rho - screened_rates(k_Zn63_p_to_Ga64_reaclib)*Y(Zn63)*state.rho - screened_rates(k_Zn63_p_to_He4_Cu60_reaclib)*Y(Zn63)*state.rho - screened_rates(k_Zn63_p_to_n_Ga63_derived)*Y(Zn63)*state.rho - screened_rates(k_Zn64_p_to_He4_Cu61_reaclib)*Y(Zn64)*state.rho - screened_rates(k_Zn64_p_to_n_Ga64_derived)*Y(Zn64)*state.rho - screened_rates(k_Zn65_p_to_He4_Cu62_reaclib)*Y(Zn65)*state.rho - screened_rates(k_Zn66_p_to_He4_Cu63_reaclib)*Y(Zn66)*state.rho - screened_rates(k_d_p_to_He3_reaclib)*Y(H2)*state.rho + screened_rates(k_d_p_to_n_p_p_derived)*Y(H2)*state.rho - screened_rates(k_p_n_to_d_reaclib)*Y(N)*state.rho - 1.0*screened_rates(k_p_p_n_to_p_d_reaclib)*Y(N)*Y(H1)*amrex::Math::powi<2>(state.rho) - 2.0*screened_rates(k_p_p_to_d_beta_pos_reaclib)*Y(H1)*state.rho - 2.0*screened_rates(k_p_p_to_d_electron_capture_reaclib)*Y(H1)*amrex::Math::powi<2>(state.rho)*state.y_e - screened_rates(k_p_to_n_electron_capture_weaktab); jac.set(H1, H1, scratch); - scratch = screened_rates(k_d_Be7_to_p_He4_He4_reaclib)*Y(Be7)*state.rho + screened_rates(k_d_He3_to_p_He4_reaclib)*Y(He3)*state.rho + 0.5*screened_rates(k_d_He4_He4_to_p_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) + screened_rates(k_d_Li6_to_p_Li7_reaclib)*Y(Li6)*state.rho + screened_rates(k_d_to_n_p_reaclib) - screened_rates(k_p_d_to_He3_reaclib)*Y(H1)*state.rho + 2*screened_rates(k_p_d_to_n_p_p_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Be7_d_to_p_He4_He4_reaclib)*Y(Be7)*state.rho + screened_rates(k_He3_d_to_p_He4_reaclib)*Y(He3)*state.rho + screened_rates(k_Li6_d_to_p_Li7_reaclib)*Y(Li6)*state.rho + 0.5*screened_rates(k_d_He4_He4_to_p_Be9_derived)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - screened_rates(k_d_p_to_He3_reaclib)*Y(H1)*state.rho + screened_rates(k_d_p_to_n_p_p_derived)*Y(H1)*state.rho + screened_rates(k_d_to_n_p_derived); jac.set(H1, H2, scratch); - scratch = 2.0*screened_rates(k_He3_Be7_to_p_p_He4_He4_reaclib)*Y(Be7)*state.rho + 2.0*screened_rates(k_He3_He3_to_p_p_He4_reaclib)*Y(He3)*state.rho + screened_rates(k_He3_Li7_to_n_p_He4_He4_reaclib)*Y(Li7)*state.rho + screened_rates(k_He3_to_p_d_reaclib) + screened_rates(k_He4_He3_to_p_Li6_reaclib)*Y(He4)*state.rho + screened_rates(k_d_He3_to_p_He4_reaclib)*Y(H2)*state.rho - screened_rates(k_p_He3_to_He4_reaclib)*Y(H1)*state.rho; + scratch = 2.0*screened_rates(k_Be7_He3_to_p_p_He4_He4_reaclib)*Y(Be7)*state.rho + 2.0*screened_rates(k_He3_He3_to_p_p_He4_reaclib)*Y(He3)*state.rho + screened_rates(k_He3_He4_to_p_Li6_derived)*Y(He4)*state.rho + screened_rates(k_He3_d_to_p_He4_reaclib)*Y(H2)*state.rho - screened_rates(k_He3_p_to_He4_beta_pos_reaclib)*Y(H1)*state.rho + screened_rates(k_He3_to_p_d_derived) + screened_rates(k_Li7_He3_to_n_p_He4_He4_reaclib)*Y(Li7)*state.rho; jac.set(H1, He3, scratch); - scratch = screened_rates(k_He4_Al25_to_p_Si28_reaclib)*Y(Al25)*state.rho + screened_rates(k_He4_Al26_to_p_Si29_reaclib)*Y(Al26)*state.rho + screened_rates(k_He4_Al27_to_p_Si30_reaclib)*Y(Al27)*state.rho + screened_rates(k_He4_Ar36_to_p_K39_reaclib)*Y(Ar36)*state.rho + screened_rates(k_He4_Ar37_to_p_K40_reaclib)*Y(Ar37)*state.rho + screened_rates(k_He4_Ar38_to_p_K41_reaclib)*Y(Ar38)*state.rho + screened_rates(k_He4_B10_to_p_C13_reaclib)*Y(B10)*state.rho + screened_rates(k_He4_B11_to_p_C14_reaclib)*Y(B11)*state.rho + screened_rates(k_He4_Be7_to_p_B10_reaclib)*Y(Be7)*state.rho + screened_rates(k_He4_C12_to_p_N15_reaclib)*Y(C12)*state.rho + screened_rates(k_He4_Ca40_to_p_Sc43_reaclib)*Y(Ca40)*state.rho + screened_rates(k_He4_Ca41_to_p_Sc44_reaclib)*Y(Ca41)*state.rho + screened_rates(k_He4_Ca42_to_p_Sc45_reaclib)*Y(Ca42)*state.rho + screened_rates(k_He4_Ca43_to_p_Sc46_reaclib)*Y(Ca43)*state.rho + screened_rates(k_He4_Ca44_to_p_Sc47_reaclib)*Y(Ca44)*state.rho + screened_rates(k_He4_Ca45_to_p_Sc48_reaclib)*Y(Ca45)*state.rho + screened_rates(k_He4_Ca46_to_p_Sc49_reaclib)*Y(Ca46)*state.rho + screened_rates(k_He4_Cl33_to_p_Ar36_reaclib)*Y(Cl33)*state.rho + screened_rates(k_He4_Cl34_to_p_Ar37_reaclib)*Y(Cl34)*state.rho + screened_rates(k_He4_Cl35_to_p_Ar38_reaclib)*Y(Cl35)*state.rho + screened_rates(k_He4_Cl36_to_p_Ar39_reaclib)*Y(Cl36)*state.rho + screened_rates(k_He4_Cl37_to_p_Ar40_reaclib)*Y(Cl37)*state.rho + screened_rates(k_He4_Co53_to_p_Ni56_reaclib)*Y(Co53)*state.rho + screened_rates(k_He4_Co54_to_p_Ni57_reaclib)*Y(Co54)*state.rho + screened_rates(k_He4_Co55_to_p_Ni58_reaclib)*Y(Co55)*state.rho + screened_rates(k_He4_Co56_to_p_Ni59_reaclib)*Y(Co56)*state.rho + screened_rates(k_He4_Co57_to_p_Ni60_reaclib)*Y(Co57)*state.rho + screened_rates(k_He4_Co58_to_p_Ni61_reaclib)*Y(Co58)*state.rho + screened_rates(k_He4_Co59_to_p_Ni62_reaclib)*Y(Co59)*state.rho + screened_rates(k_He4_Cr48_to_p_Mn51_reaclib)*Y(Cr48)*state.rho + screened_rates(k_He4_Cr49_to_p_Mn52_reaclib)*Y(Cr49)*state.rho + screened_rates(k_He4_Cr50_to_p_Mn53_reaclib)*Y(Cr50)*state.rho + screened_rates(k_He4_Cr51_to_p_Mn54_reaclib)*Y(Cr51)*state.rho + screened_rates(k_He4_Cr52_to_p_Mn55_reaclib)*Y(Cr52)*state.rho + screened_rates(k_He4_Cu57_to_p_Zn60_reaclib)*Y(Cu57)*state.rho + screened_rates(k_He4_Cu58_to_p_Zn61_reaclib)*Y(Cu58)*state.rho + screened_rates(k_He4_Cu59_to_p_Zn62_reaclib)*Y(Cu59)*state.rho + screened_rates(k_He4_Cu60_to_p_Zn63_reaclib)*Y(Cu60)*state.rho + screened_rates(k_He4_Cu61_to_p_Zn64_reaclib)*Y(Cu61)*state.rho + screened_rates(k_He4_Cu62_to_p_Zn65_reaclib)*Y(Cu62)*state.rho + screened_rates(k_He4_Cu63_to_p_Zn66_reaclib)*Y(Cu63)*state.rho + screened_rates(k_He4_F17_to_p_Ne20_reaclib)*Y(F17)*state.rho + screened_rates(k_He4_F18_to_p_Ne21_reaclib)*Y(F18)*state.rho + screened_rates(k_He4_F19_to_p_Ne22_reaclib)*Y(F19)*state.rho + screened_rates(k_He4_Fe52_to_p_Co55_reaclib)*Y(Fe52)*state.rho + screened_rates(k_He4_Fe53_to_p_Co56_reaclib)*Y(Fe53)*state.rho + screened_rates(k_He4_Fe54_to_p_Co57_reaclib)*Y(Fe54)*state.rho + screened_rates(k_He4_Fe55_to_p_Co58_reaclib)*Y(Fe55)*state.rho + screened_rates(k_He4_Fe56_to_p_Co59_reaclib)*Y(Fe56)*state.rho + screened_rates(k_He4_He3_to_p_Li6_reaclib)*Y(He3)*state.rho + 0.5*screened_rates(k_He4_He4_He4_to_p_B11_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) + 1.0*screened_rates(k_He4_He4_to_p_Li7_reaclib)*Y(He4)*state.rho + screened_rates(k_He4_K37_to_p_Ca40_reaclib)*Y(K37)*state.rho + screened_rates(k_He4_K38_to_p_Ca41_reaclib)*Y(K38)*state.rho + screened_rates(k_He4_K39_to_p_Ca42_reaclib)*Y(K39)*state.rho + screened_rates(k_He4_K40_to_p_Ca43_reaclib)*Y(K40)*state.rho + screened_rates(k_He4_K41_to_p_Ca44_reaclib)*Y(K41)*state.rho + screened_rates(k_He4_Li6_to_p_Be9_reaclib)*Y(Li6)*state.rho + screened_rates(k_He4_Mg23_to_p_Al26_reaclib)*Y(Mg23)*state.rho + screened_rates(k_He4_Mg24_to_p_Al27_reaclib)*Y(Mg24)*state.rho + screened_rates(k_He4_Mn50_to_p_Fe53_reaclib)*Y(Mn50)*state.rho + screened_rates(k_He4_Mn51_to_p_Fe54_reaclib)*Y(Mn51)*state.rho + screened_rates(k_He4_Mn52_to_p_Fe55_reaclib)*Y(Mn52)*state.rho + screened_rates(k_He4_Mn53_to_p_Fe56_reaclib)*Y(Mn53)*state.rho + screened_rates(k_He4_Mn54_to_p_Fe57_reaclib)*Y(Mn54)*state.rho + screened_rates(k_He4_Mn55_to_p_Fe58_reaclib)*Y(Mn55)*state.rho + screened_rates(k_He4_N13_to_p_O16_reaclib)*Y(N13)*state.rho + screened_rates(k_He4_N14_to_p_O17_reaclib)*Y(N14)*state.rho + screened_rates(k_He4_N15_to_p_O18_reaclib)*Y(N15)*state.rho + screened_rates(k_He4_Na21_to_p_Mg24_reaclib)*Y(Na21)*state.rho + screened_rates(k_He4_Na22_to_p_Mg25_reaclib)*Y(Na22)*state.rho + screened_rates(k_He4_Na23_to_p_Mg26_reaclib)*Y(Na23)*state.rho + screened_rates(k_He4_Ne18_to_p_Na21_reaclib)*Y(Ne18)*state.rho + screened_rates(k_He4_Ne19_to_p_Na22_reaclib)*Y(Ne19)*state.rho + screened_rates(k_He4_Ne20_to_p_Na23_reaclib)*Y(Ne20)*state.rho + screened_rates(k_He4_Ni56_to_p_Cu59_reaclib)*Y(Ni56)*state.rho + screened_rates(k_He4_Ni57_to_p_Cu60_reaclib)*Y(Ni57)*state.rho + screened_rates(k_He4_Ni58_to_p_Cu61_reaclib)*Y(Ni58)*state.rho + screened_rates(k_He4_Ni59_to_p_Cu62_reaclib)*Y(Ni59)*state.rho + screened_rates(k_He4_Ni60_to_p_Cu63_reaclib)*Y(Ni60)*state.rho + screened_rates(k_He4_Ni61_to_p_Cu64_reaclib)*Y(Ni61)*state.rho + screened_rates(k_He4_Ni62_to_p_Cu65_reaclib)*Y(Ni62)*state.rho + screened_rates(k_He4_O14_to_p_F17_reaclib)*Y(O14)*state.rho + screened_rates(k_He4_O15_to_p_F18_reaclib)*Y(O15)*state.rho + screened_rates(k_He4_O16_to_p_F19_reaclib)*Y(O16)*state.rho + screened_rates(k_He4_P29_to_p_S32_reaclib)*Y(P29)*state.rho + screened_rates(k_He4_P30_to_p_S33_reaclib)*Y(P30)*state.rho + screened_rates(k_He4_P31_to_p_S34_reaclib)*Y(P31)*state.rho + screened_rates(k_He4_P32_to_p_S35_reaclib)*Y(P32)*state.rho + screened_rates(k_He4_P33_to_p_S36_reaclib)*Y(P33)*state.rho + screened_rates(k_He4_S32_to_p_Cl35_reaclib)*Y(S32)*state.rho + screened_rates(k_He4_S33_to_p_Cl36_reaclib)*Y(S33)*state.rho + screened_rates(k_He4_S34_to_p_Cl37_reaclib)*Y(S34)*state.rho + screened_rates(k_He4_Sc43_to_p_Ti46_reaclib)*Y(Sc43)*state.rho + screened_rates(k_He4_Sc44_to_p_Ti47_reaclib)*Y(Sc44)*state.rho + screened_rates(k_He4_Sc45_to_p_Ti48_reaclib)*Y(Sc45)*state.rho + screened_rates(k_He4_Sc46_to_p_Ti49_reaclib)*Y(Sc46)*state.rho + screened_rates(k_He4_Sc47_to_p_Ti50_reaclib)*Y(Sc47)*state.rho + screened_rates(k_He4_Sc48_to_p_Ti51_reaclib)*Y(Sc48)*state.rho + screened_rates(k_He4_Si28_to_p_P31_reaclib)*Y(Si28)*state.rho + screened_rates(k_He4_Si29_to_p_P32_reaclib)*Y(Si29)*state.rho + screened_rates(k_He4_Si30_to_p_P33_reaclib)*Y(Si30)*state.rho + screened_rates(k_He4_Ti44_to_p_V47_reaclib)*Y(Ti44)*state.rho + screened_rates(k_He4_Ti45_to_p_V48_reaclib)*Y(Ti45)*state.rho + screened_rates(k_He4_Ti46_to_p_V49_reaclib)*Y(Ti46)*state.rho + screened_rates(k_He4_Ti47_to_p_V50_reaclib)*Y(Ti47)*state.rho + screened_rates(k_He4_Ti48_to_p_V51_reaclib)*Y(Ti48)*state.rho + screened_rates(k_He4_Ti49_to_p_V52_reaclib)*Y(Ti49)*state.rho + screened_rates(k_He4_V46_to_p_Cr49_reaclib)*Y(V46)*state.rho + screened_rates(k_He4_V47_to_p_Cr50_reaclib)*Y(V47)*state.rho + screened_rates(k_He4_V48_to_p_Cr51_reaclib)*Y(V48)*state.rho + screened_rates(k_He4_V49_to_p_Cr52_reaclib)*Y(V49)*state.rho + screened_rates(k_He4_V50_to_p_Cr53_reaclib)*Y(V50)*state.rho + screened_rates(k_He4_V51_to_p_Cr54_reaclib)*Y(V51)*state.rho + screened_rates(k_He4_Zn59_to_p_Ga62_reaclib)*Y(Zn59)*state.rho + screened_rates(k_He4_Zn60_to_p_Ga63_reaclib)*Y(Zn60)*state.rho + screened_rates(k_He4_Zn61_to_p_Ga64_reaclib)*Y(Zn61)*state.rho + 1.0*screened_rates(k_d_He4_He4_to_p_Be9_reaclib)*Y(He4)*Y(H2)*amrex::Math::powi<2>(state.rho) - 1.0*screened_rates(k_n_p_He4_He4_to_He3_Li7_reaclib)*Y(He4)*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho) - screened_rates(k_n_p_He4_to_Li6_reaclib)*Y(N)*Y(H1)*amrex::Math::powi<2>(state.rho) - 1.0*screened_rates(k_p_He4_He4_to_d_Be7_reaclib)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho) - 1.0*screened_rates(k_p_He4_He4_to_n_B8_reaclib)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho) - screened_rates(k_p_He4_to_d_He3_reaclib)*Y(H1)*state.rho - 1.0*screened_rates(k_p_p_He4_He4_to_He3_Be7_reaclib)*Y(He4)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<3>(state.rho) - screened_rates(k_p_p_He4_to_He3_He3_reaclib)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho); + scratch = screened_rates(k_Al25_He4_to_p_Si28_reaclib)*Y(Al25)*state.rho + screened_rates(k_Al26_He4_to_p_Si29_reaclib)*Y(Al26)*state.rho + screened_rates(k_Al27_He4_to_p_Si30_reaclib)*Y(Al27)*state.rho + screened_rates(k_Ar36_He4_to_p_K39_derived)*Y(Ar36)*state.rho + screened_rates(k_Ar37_He4_to_p_K40_derived)*Y(Ar37)*state.rho + screened_rates(k_Ar38_He4_to_p_K41_derived)*Y(Ar38)*state.rho + screened_rates(k_B10_He4_to_p_C13_reaclib)*Y(B10)*state.rho + screened_rates(k_B11_He4_to_p_C14_reaclib)*Y(B11)*state.rho + screened_rates(k_Be7_He4_to_p_B10_derived)*Y(Be7)*state.rho + screened_rates(k_C12_He4_to_p_N15_derived)*Y(C12)*state.rho + screened_rates(k_Ca40_He4_to_p_Sc43_derived)*Y(Ca40)*state.rho + screened_rates(k_Ca41_He4_to_p_Sc44_derived)*Y(Ca41)*state.rho + screened_rates(k_Ca42_He4_to_p_Sc45_derived)*Y(Ca42)*state.rho + screened_rates(k_Ca43_He4_to_p_Sc46_derived)*Y(Ca43)*state.rho + screened_rates(k_Ca44_He4_to_p_Sc47_derived)*Y(Ca44)*state.rho + screened_rates(k_Ca45_He4_to_p_Sc48_derived)*Y(Ca45)*state.rho + screened_rates(k_Ca46_He4_to_p_Sc49_derived)*Y(Ca46)*state.rho + screened_rates(k_Cl33_He4_to_p_Ar36_reaclib)*Y(Cl33)*state.rho + screened_rates(k_Cl34_He4_to_p_Ar37_reaclib)*Y(Cl34)*state.rho + screened_rates(k_Cl35_He4_to_p_Ar38_reaclib)*Y(Cl35)*state.rho + screened_rates(k_Cl36_He4_to_p_Ar39_derived)*Y(Cl36)*state.rho + screened_rates(k_Cl37_He4_to_p_Ar40_derived)*Y(Cl37)*state.rho + screened_rates(k_Co53_He4_to_p_Ni56_reaclib)*Y(Co53)*state.rho + screened_rates(k_Co54_He4_to_p_Ni57_reaclib)*Y(Co54)*state.rho + screened_rates(k_Co55_He4_to_p_Ni58_reaclib)*Y(Co55)*state.rho + screened_rates(k_Co56_He4_to_p_Ni59_reaclib)*Y(Co56)*state.rho + screened_rates(k_Co57_He4_to_p_Ni60_reaclib)*Y(Co57)*state.rho + screened_rates(k_Co58_He4_to_p_Ni61_derived)*Y(Co58)*state.rho + screened_rates(k_Co59_He4_to_p_Ni62_derived)*Y(Co59)*state.rho + screened_rates(k_Cr48_He4_to_p_Mn51_reaclib)*Y(Cr48)*state.rho + screened_rates(k_Cr49_He4_to_p_Mn52_reaclib)*Y(Cr49)*state.rho + screened_rates(k_Cr50_He4_to_p_Mn53_derived)*Y(Cr50)*state.rho + screened_rates(k_Cr51_He4_to_p_Mn54_derived)*Y(Cr51)*state.rho + screened_rates(k_Cr52_He4_to_p_Mn55_derived)*Y(Cr52)*state.rho + screened_rates(k_Cu57_He4_to_p_Zn60_reaclib)*Y(Cu57)*state.rho + screened_rates(k_Cu58_He4_to_p_Zn61_derived)*Y(Cu58)*state.rho + screened_rates(k_Cu59_He4_to_p_Zn62_derived)*Y(Cu59)*state.rho + screened_rates(k_Cu60_He4_to_p_Zn63_derived)*Y(Cu60)*state.rho + screened_rates(k_Cu61_He4_to_p_Zn64_derived)*Y(Cu61)*state.rho + screened_rates(k_Cu62_He4_to_p_Zn65_derived)*Y(Cu62)*state.rho + screened_rates(k_Cu63_He4_to_p_Zn66_derived)*Y(Cu63)*state.rho + screened_rates(k_F17_He4_to_p_Ne20_derived)*Y(F17)*state.rho + screened_rates(k_F18_He4_to_p_Ne21_reaclib)*Y(F18)*state.rho + screened_rates(k_F19_He4_to_p_Ne22_reaclib)*Y(F19)*state.rho + screened_rates(k_Fe52_He4_to_p_Co55_reaclib)*Y(Fe52)*state.rho + screened_rates(k_Fe53_He4_to_p_Co56_reaclib)*Y(Fe53)*state.rho + screened_rates(k_Fe54_He4_to_p_Co57_derived)*Y(Fe54)*state.rho + screened_rates(k_Fe55_He4_to_p_Co58_derived)*Y(Fe55)*state.rho + screened_rates(k_Fe56_He4_to_p_Co59_derived)*Y(Fe56)*state.rho + screened_rates(k_He3_He4_to_p_Li6_derived)*Y(He3)*state.rho + 0.5*screened_rates(k_He4_He4_He4_to_p_B11_derived)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - 1.0*screened_rates(k_He4_He4_p_n_to_He3_Li7_derived)*Y(He4)*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho) - 1.0*screened_rates(k_He4_He4_p_p_to_He3_Be7_derived)*Y(He4)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<3>(state.rho) - 1.0*screened_rates(k_He4_He4_p_to_d_Be7_derived)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho) - 1.0*screened_rates(k_He4_He4_p_to_n_B8_derived)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho) + 1.0*screened_rates(k_He4_He4_to_p_Li7_derived)*Y(He4)*state.rho - screened_rates(k_He4_p_n_to_Li6_reaclib)*Y(N)*Y(H1)*amrex::Math::powi<2>(state.rho) - screened_rates(k_He4_p_p_to_He3_He3_derived)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho) - screened_rates(k_He4_p_to_d_He3_derived)*Y(H1)*state.rho + screened_rates(k_K37_He4_to_p_Ca40_reaclib)*Y(K37)*state.rho + screened_rates(k_K38_He4_to_p_Ca41_reaclib)*Y(K38)*state.rho + screened_rates(k_K39_He4_to_p_Ca42_derived)*Y(K39)*state.rho + screened_rates(k_K40_He4_to_p_Ca43_reaclib)*Y(K40)*state.rho + screened_rates(k_K41_He4_to_p_Ca44_reaclib)*Y(K41)*state.rho + screened_rates(k_Li6_He4_to_p_Be9_derived)*Y(Li6)*state.rho + screened_rates(k_Mg23_He4_to_p_Al26_reaclib)*Y(Mg23)*state.rho + screened_rates(k_Mg24_He4_to_p_Al27_derived)*Y(Mg24)*state.rho + screened_rates(k_Mn50_He4_to_p_Fe53_reaclib)*Y(Mn50)*state.rho + screened_rates(k_Mn51_He4_to_p_Fe54_reaclib)*Y(Mn51)*state.rho + screened_rates(k_Mn52_He4_to_p_Fe55_reaclib)*Y(Mn52)*state.rho + screened_rates(k_Mn53_He4_to_p_Fe56_reaclib)*Y(Mn53)*state.rho + screened_rates(k_Mn54_He4_to_p_Fe57_derived)*Y(Mn54)*state.rho + screened_rates(k_Mn55_He4_to_p_Fe58_derived)*Y(Mn55)*state.rho + screened_rates(k_N13_He4_to_p_O16_reaclib)*Y(N13)*state.rho + screened_rates(k_N14_He4_to_p_O17_derived)*Y(N14)*state.rho + screened_rates(k_N15_He4_to_p_O18_derived)*Y(N15)*state.rho + screened_rates(k_Na21_He4_to_p_Mg24_derived)*Y(Na21)*state.rho + screened_rates(k_Na22_He4_to_p_Mg25_reaclib)*Y(Na22)*state.rho + screened_rates(k_Na23_He4_to_p_Mg26_reaclib)*Y(Na23)*state.rho + screened_rates(k_Ne18_He4_to_p_Na21_reaclib)*Y(Ne18)*state.rho + screened_rates(k_Ne19_He4_to_p_Na22_reaclib)*Y(Ne19)*state.rho + screened_rates(k_Ne20_He4_to_p_Na23_derived)*Y(Ne20)*state.rho + screened_rates(k_Ni56_He4_to_p_Cu59_derived)*Y(Ni56)*state.rho + screened_rates(k_Ni57_He4_to_p_Cu60_derived)*Y(Ni57)*state.rho + screened_rates(k_Ni58_He4_to_p_Cu61_derived)*Y(Ni58)*state.rho + screened_rates(k_Ni59_He4_to_p_Cu62_derived)*Y(Ni59)*state.rho + screened_rates(k_Ni60_He4_to_p_Cu63_derived)*Y(Ni60)*state.rho + screened_rates(k_Ni61_He4_to_p_Cu64_derived)*Y(Ni61)*state.rho + screened_rates(k_Ni62_He4_to_p_Cu65_derived)*Y(Ni62)*state.rho + screened_rates(k_O14_He4_to_p_F17_reaclib)*Y(O14)*state.rho + screened_rates(k_O15_He4_to_p_F18_derived)*Y(O15)*state.rho + screened_rates(k_O16_He4_to_p_F19_derived)*Y(O16)*state.rho + screened_rates(k_P29_He4_to_p_S32_reaclib)*Y(P29)*state.rho + screened_rates(k_P30_He4_to_p_S33_reaclib)*Y(P30)*state.rho + screened_rates(k_P31_He4_to_p_S34_reaclib)*Y(P31)*state.rho + screened_rates(k_P32_He4_to_p_S35_derived)*Y(P32)*state.rho + screened_rates(k_P33_He4_to_p_S36_derived)*Y(P33)*state.rho + screened_rates(k_S32_He4_to_p_Cl35_derived)*Y(S32)*state.rho + screened_rates(k_S33_He4_to_p_Cl36_derived)*Y(S33)*state.rho + screened_rates(k_S34_He4_to_p_Cl37_reaclib)*Y(S34)*state.rho + screened_rates(k_Sc43_He4_to_p_Ti46_reaclib)*Y(Sc43)*state.rho + screened_rates(k_Sc44_He4_to_p_Ti47_reaclib)*Y(Sc44)*state.rho + screened_rates(k_Sc45_He4_to_p_Ti48_reaclib)*Y(Sc45)*state.rho + screened_rates(k_Sc46_He4_to_p_Ti49_reaclib)*Y(Sc46)*state.rho + screened_rates(k_Sc47_He4_to_p_Ti50_reaclib)*Y(Sc47)*state.rho + screened_rates(k_Sc48_He4_to_p_Ti51_reaclib)*Y(Sc48)*state.rho + screened_rates(k_Si28_He4_to_p_P31_derived)*Y(Si28)*state.rho + screened_rates(k_Si29_He4_to_p_P32_derived)*Y(Si29)*state.rho + screened_rates(k_Si30_He4_to_p_P33_derived)*Y(Si30)*state.rho + screened_rates(k_Ti44_He4_to_p_V47_reaclib)*Y(Ti44)*state.rho + screened_rates(k_Ti45_He4_to_p_V48_reaclib)*Y(Ti45)*state.rho + screened_rates(k_Ti46_He4_to_p_V49_derived)*Y(Ti46)*state.rho + screened_rates(k_Ti47_He4_to_p_V50_derived)*Y(Ti47)*state.rho + screened_rates(k_Ti48_He4_to_p_V51_derived)*Y(Ti48)*state.rho + screened_rates(k_Ti49_He4_to_p_V52_derived)*Y(Ti49)*state.rho + screened_rates(k_V46_He4_to_p_Cr49_reaclib)*Y(V46)*state.rho + screened_rates(k_V47_He4_to_p_Cr50_reaclib)*Y(V47)*state.rho + screened_rates(k_V48_He4_to_p_Cr51_reaclib)*Y(V48)*state.rho + screened_rates(k_V49_He4_to_p_Cr52_reaclib)*Y(V49)*state.rho + screened_rates(k_V50_He4_to_p_Cr53_reaclib)*Y(V50)*state.rho + screened_rates(k_V51_He4_to_p_Cr54_derived)*Y(V51)*state.rho + screened_rates(k_Zn59_He4_to_p_Ga62_derived)*Y(Zn59)*state.rho + screened_rates(k_Zn60_He4_to_p_Ga63_derived)*Y(Zn60)*state.rho + screened_rates(k_Zn61_He4_to_p_Ga64_derived)*Y(Zn61)*state.rho + 1.0*screened_rates(k_d_He4_He4_to_p_Be9_derived)*Y(He4)*Y(H2)*amrex::Math::powi<2>(state.rho); jac.set(H1, He4, scratch); - scratch = screened_rates(k_He4_Li6_to_p_Be9_reaclib)*Y(He4)*state.rho + screened_rates(k_Li6_to_n_p_He4_reaclib) + screened_rates(k_d_Li6_to_p_Li7_reaclib)*Y(H2)*state.rho - screened_rates(k_p_Li6_to_Be7_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Li6_to_He4_He3_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Li6_He4_to_p_Be9_derived)*Y(He4)*state.rho + screened_rates(k_Li6_d_to_p_Li7_reaclib)*Y(H2)*state.rho - screened_rates(k_Li6_p_to_Be7_reaclib)*Y(H1)*state.rho - screened_rates(k_Li6_p_to_He4_He3_reaclib)*Y(H1)*state.rho + screened_rates(k_Li6_to_n_p_He4_derived); jac.set(H1, Li6, scratch); - scratch = screened_rates(k_He3_Li7_to_n_p_He4_He4_reaclib)*Y(He3)*state.rho - screened_rates(k_p_Li7_to_He4_He4_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Li7_to_d_Li6_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Li7_to_n_Be7_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Li7_He3_to_n_p_He4_He4_reaclib)*Y(He3)*state.rho - screened_rates(k_Li7_p_to_He4_He4_reaclib)*Y(H1)*state.rho - screened_rates(k_Li7_p_to_d_Li6_derived)*Y(H1)*state.rho - screened_rates(k_Li7_p_to_n_Be7_derived)*Y(H1)*state.rho; jac.set(H1, Li7, scratch); - scratch = screened_rates(k_Be7_to_p_Li6_reaclib) + 2.0*screened_rates(k_He3_Be7_to_p_p_He4_He4_reaclib)*Y(He3)*state.rho + screened_rates(k_He4_Be7_to_p_B10_reaclib)*Y(He4)*state.rho + screened_rates(k_d_Be7_to_p_He4_He4_reaclib)*Y(H2)*state.rho + screened_rates(k_n_Be7_to_p_Li7_reaclib)*Y(N)*state.rho - screened_rates(k_p_Be7_to_B8_reaclib)*Y(H1)*state.rho; + scratch = 2.0*screened_rates(k_Be7_He3_to_p_p_He4_He4_reaclib)*Y(He3)*state.rho + screened_rates(k_Be7_He4_to_p_B10_derived)*Y(He4)*state.rho + screened_rates(k_Be7_d_to_p_He4_He4_reaclib)*Y(H2)*state.rho + screened_rates(k_Be7_n_to_p_Li7_reaclib)*Y(N)*state.rho - screened_rates(k_Be7_p_to_B8_reaclib)*Y(H1)*state.rho + screened_rates(k_Be7_to_p_Li6_derived); jac.set(H1, Be7, scratch); - scratch = -screened_rates(k_p_Be9_to_B10_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Be9_to_He4_Li6_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Be9_to_d_He4_He4_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Be9_p_to_B10_reaclib)*Y(H1)*state.rho - screened_rates(k_Be9_p_to_He4_Li6_reaclib)*Y(H1)*state.rho - screened_rates(k_Be9_p_to_d_He4_He4_reaclib)*Y(H1)*state.rho; jac.set(H1, Be9, scratch); - scratch = screened_rates(k_B8_to_p_Be7_reaclib) + screened_rates(k_n_B8_to_p_He4_He4_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_B8_n_to_p_He4_He4_reaclib)*Y(N)*state.rho + screened_rates(k_B8_to_p_Be7_derived); jac.set(H1, B8, scratch); - scratch = screened_rates(k_B10_to_p_Be9_reaclib) + screened_rates(k_He4_B10_to_p_C13_reaclib)*Y(He4)*state.rho - screened_rates(k_p_B10_to_He4_Be7_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_B10_He4_to_p_C13_reaclib)*Y(He4)*state.rho - screened_rates(k_B10_p_to_He4_Be7_reaclib)*Y(H1)*state.rho + screened_rates(k_B10_to_p_Be9_derived); jac.set(H1, B10, scratch); - scratch = screened_rates(k_He4_B11_to_p_C14_reaclib)*Y(He4)*state.rho - screened_rates(k_p_B11_to_C12_reaclib)*Y(H1)*state.rho - screened_rates(k_p_B11_to_He4_He4_He4_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_B11_He4_to_p_C14_reaclib)*Y(He4)*state.rho - screened_rates(k_B11_p_to_3He4_reaclib)*Y(H1)*state.rho - screened_rates(k_B11_p_to_C12_reaclib)*Y(H1)*state.rho; jac.set(H1, B11, scratch); - scratch = 1.0*screened_rates(k_C12_C12_to_p_Na23_reaclib)*Y(C12)*state.rho + screened_rates(k_C12_Ne20_to_p_P31_reaclib)*Y(Ne20)*state.rho + screened_rates(k_C12_O16_to_p_Al27_reaclib)*Y(O16)*state.rho + screened_rates(k_C12_to_p_B11_reaclib) + screened_rates(k_He4_C12_to_p_N15_reaclib)*Y(He4)*state.rho - screened_rates(k_p_C12_to_N13_reaclib)*Y(H1)*state.rho; + scratch = 1.0*screened_rates(k_C12_C12_to_p_Na23_reaclib)*Y(C12)*state.rho + screened_rates(k_C12_He4_to_p_N15_derived)*Y(He4)*state.rho - screened_rates(k_C12_p_to_N13_reaclib)*Y(H1)*state.rho + screened_rates(k_C12_to_p_B11_derived) + screened_rates(k_Ne20_C12_to_p_P31_reaclib)*Y(Ne20)*state.rho + screened_rates(k_O16_C12_to_p_Al27_reaclib)*Y(O16)*state.rho; jac.set(H1, C12, scratch); - scratch = -screened_rates(k_p_C13_to_He4_B10_reaclib)*Y(H1)*state.rho - screened_rates(k_p_C13_to_N14_reaclib)*Y(H1)*state.rho - screened_rates(k_p_C13_to_n_N13_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_C13_p_to_He4_B10_derived)*Y(H1)*state.rho - screened_rates(k_C13_p_to_N14_reaclib)*Y(H1)*state.rho - screened_rates(k_C13_p_to_n_N13_reaclib)*Y(H1)*state.rho; jac.set(H1, C13, scratch); - scratch = -screened_rates(k_p_C14_to_He4_B11_reaclib)*Y(H1)*state.rho - screened_rates(k_p_C14_to_N15_reaclib)*Y(H1)*state.rho - screened_rates(k_p_C14_to_n_N14_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_C14_p_to_He4_B11_derived)*Y(H1)*state.rho - screened_rates(k_C14_p_to_N15_reaclib)*Y(H1)*state.rho - screened_rates(k_C14_p_to_n_N14_derived)*Y(H1)*state.rho; jac.set(H1, C14, scratch); - scratch = screened_rates(k_He4_N13_to_p_O16_reaclib)*Y(He4)*state.rho + screened_rates(k_N13_to_p_C12_reaclib) + screened_rates(k_n_N13_to_p_C13_reaclib)*Y(N)*state.rho - screened_rates(k_p_N13_to_O14_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_N13_He4_to_p_O16_reaclib)*Y(He4)*state.rho + screened_rates(k_N13_n_to_p_C13_derived)*Y(N)*state.rho - screened_rates(k_N13_p_to_O14_reaclib)*Y(H1)*state.rho + screened_rates(k_N13_to_p_C12_derived); jac.set(H1, N13, scratch); - scratch = screened_rates(k_He4_N14_to_p_O17_reaclib)*Y(He4)*state.rho + screened_rates(k_N14_to_p_C13_reaclib) + screened_rates(k_n_N14_to_p_C14_reaclib)*Y(N)*state.rho - screened_rates(k_p_N14_to_O15_reaclib)*Y(H1)*state.rho - screened_rates(k_p_N14_to_n_O14_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_N14_He4_to_p_O17_derived)*Y(He4)*state.rho + screened_rates(k_N14_n_to_p_C14_reaclib)*Y(N)*state.rho - screened_rates(k_N14_p_to_O15_reaclib)*Y(H1)*state.rho - screened_rates(k_N14_p_to_n_O14_reaclib)*Y(H1)*state.rho + screened_rates(k_N14_to_p_C13_derived); jac.set(H1, N14, scratch); - scratch = screened_rates(k_He4_N15_to_p_O18_reaclib)*Y(He4)*state.rho + screened_rates(k_N15_to_p_C14_reaclib) - screened_rates(k_p_N15_to_He4_C12_reaclib)*Y(H1)*state.rho - screened_rates(k_p_N15_to_O16_reaclib)*Y(H1)*state.rho - screened_rates(k_p_N15_to_n_O15_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_N15_He4_to_p_O18_derived)*Y(He4)*state.rho - screened_rates(k_N15_p_to_He4_C12_reaclib)*Y(H1)*state.rho - screened_rates(k_N15_p_to_O16_reaclib)*Y(H1)*state.rho - screened_rates(k_N15_p_to_n_O15_reaclib)*Y(H1)*state.rho + screened_rates(k_N15_to_p_C14_derived); jac.set(H1, N15, scratch); - scratch = screened_rates(k_He4_O14_to_p_F17_reaclib)*Y(He4)*state.rho + screened_rates(k_O14_to_p_N13_reaclib) + screened_rates(k_n_O14_to_p_N14_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_O14_He4_to_p_F17_reaclib)*Y(He4)*state.rho + screened_rates(k_O14_n_to_p_N14_derived)*Y(N)*state.rho + screened_rates(k_O14_to_p_N13_derived); jac.set(H1, O14, scratch); - scratch = screened_rates(k_He4_O15_to_p_F18_reaclib)*Y(He4)*state.rho + screened_rates(k_O15_to_p_N14_reaclib) + screened_rates(k_n_O15_to_p_N15_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_O15_He4_to_p_F18_derived)*Y(He4)*state.rho + screened_rates(k_O15_n_to_p_N15_derived)*Y(N)*state.rho + screened_rates(k_O15_to_p_N14_derived); jac.set(H1, O15, scratch); - scratch = screened_rates(k_C12_O16_to_p_Al27_reaclib)*Y(C12)*state.rho + screened_rates(k_He4_O16_to_p_F19_reaclib)*Y(He4)*state.rho + 1.0*screened_rates(k_O16_O16_to_p_P31_reaclib)*Y(O16)*state.rho + screened_rates(k_O16_to_p_N15_reaclib) - screened_rates(k_p_O16_to_F17_reaclib)*Y(H1)*state.rho - screened_rates(k_p_O16_to_He4_N13_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_O16_C12_to_p_Al27_reaclib)*Y(C12)*state.rho + screened_rates(k_O16_He4_to_p_F19_derived)*Y(He4)*state.rho + 1.0*screened_rates(k_O16_O16_to_p_P31_reaclib)*Y(O16)*state.rho - screened_rates(k_O16_p_to_F17_reaclib)*Y(H1)*state.rho - screened_rates(k_O16_p_to_He4_N13_derived)*Y(H1)*state.rho + screened_rates(k_O16_to_p_N15_derived); jac.set(H1, O16, scratch); - scratch = -screened_rates(k_p_O17_to_F18_reaclib)*Y(H1)*state.rho - screened_rates(k_p_O17_to_He4_N14_reaclib)*Y(H1)*state.rho - screened_rates(k_p_O17_to_n_F17_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_O17_p_to_F18_reaclib)*Y(H1)*state.rho - screened_rates(k_O17_p_to_He4_N14_reaclib)*Y(H1)*state.rho - screened_rates(k_O17_p_to_n_F17_derived)*Y(H1)*state.rho; jac.set(H1, O17, scratch); - scratch = -screened_rates(k_p_O18_to_F19_reaclib)*Y(H1)*state.rho - screened_rates(k_p_O18_to_He4_N15_reaclib)*Y(H1)*state.rho - screened_rates(k_p_O18_to_n_F18_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_O18_p_to_F19_reaclib)*Y(H1)*state.rho - screened_rates(k_O18_p_to_He4_N15_reaclib)*Y(H1)*state.rho - screened_rates(k_O18_p_to_n_F18_derived)*Y(H1)*state.rho; jac.set(H1, O18, scratch); - scratch = screened_rates(k_F17_to_p_O16_reaclib) + screened_rates(k_He4_F17_to_p_Ne20_reaclib)*Y(He4)*state.rho + screened_rates(k_n_F17_to_p_O17_reaclib)*Y(N)*state.rho - screened_rates(k_p_F17_to_He4_O14_reaclib)*Y(H1)*state.rho - screened_rates(k_p_F17_to_Ne18_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_F17_He4_to_p_Ne20_derived)*Y(He4)*state.rho + screened_rates(k_F17_n_to_p_O17_reaclib)*Y(N)*state.rho - screened_rates(k_F17_p_to_He4_O14_derived)*Y(H1)*state.rho - screened_rates(k_F17_p_to_Ne18_reaclib)*Y(H1)*state.rho + screened_rates(k_F17_to_p_O16_derived); jac.set(H1, F17, scratch); - scratch = screened_rates(k_F18_to_p_O17_reaclib) + screened_rates(k_He4_F18_to_p_Ne21_reaclib)*Y(He4)*state.rho + screened_rates(k_n_F18_to_p_O18_reaclib)*Y(N)*state.rho - screened_rates(k_p_F18_to_He4_O15_reaclib)*Y(H1)*state.rho - screened_rates(k_p_F18_to_Ne19_reaclib)*Y(H1)*state.rho - screened_rates(k_p_F18_to_n_Ne18_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_F18_He4_to_p_Ne21_reaclib)*Y(He4)*state.rho + screened_rates(k_F18_n_to_p_O18_reaclib)*Y(N)*state.rho - screened_rates(k_F18_p_to_He4_O15_reaclib)*Y(H1)*state.rho - screened_rates(k_F18_p_to_Ne19_reaclib)*Y(H1)*state.rho - screened_rates(k_F18_p_to_n_Ne18_derived)*Y(H1)*state.rho + screened_rates(k_F18_to_p_O17_derived); jac.set(H1, F18, scratch); - scratch = screened_rates(k_F19_to_p_O18_reaclib) + screened_rates(k_He4_F19_to_p_Ne22_reaclib)*Y(He4)*state.rho - screened_rates(k_p_F19_to_He4_O16_reaclib)*Y(H1)*state.rho - screened_rates(k_p_F19_to_Ne20_reaclib)*Y(H1)*state.rho - screened_rates(k_p_F19_to_n_Ne19_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_F19_He4_to_p_Ne22_reaclib)*Y(He4)*state.rho - screened_rates(k_F19_p_to_He4_O16_reaclib)*Y(H1)*state.rho - screened_rates(k_F19_p_to_Ne20_reaclib)*Y(H1)*state.rho - screened_rates(k_F19_p_to_n_Ne19_reaclib)*Y(H1)*state.rho + screened_rates(k_F19_to_p_O18_derived); jac.set(H1, F19, scratch); - scratch = screened_rates(k_He4_Ne18_to_p_Na21_reaclib)*Y(He4)*state.rho + screened_rates(k_Ne18_to_p_F17_reaclib) + screened_rates(k_n_Ne18_to_p_F18_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ne18_He4_to_p_Na21_reaclib)*Y(He4)*state.rho + screened_rates(k_Ne18_n_to_p_F18_reaclib)*Y(N)*state.rho + screened_rates(k_Ne18_to_p_F17_derived); jac.set(H1, Ne18, scratch); - scratch = screened_rates(k_He4_Ne19_to_p_Na22_reaclib)*Y(He4)*state.rho + screened_rates(k_Ne19_to_p_F18_reaclib) + screened_rates(k_n_Ne19_to_p_F19_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ne19_He4_to_p_Na22_reaclib)*Y(He4)*state.rho + screened_rates(k_Ne19_n_to_p_F19_derived)*Y(N)*state.rho + screened_rates(k_Ne19_to_p_F18_derived); jac.set(H1, Ne19, scratch); - scratch = screened_rates(k_C12_Ne20_to_p_P31_reaclib)*Y(C12)*state.rho + screened_rates(k_He4_Ne20_to_p_Na23_reaclib)*Y(He4)*state.rho + screened_rates(k_Ne20_to_p_F19_reaclib) - screened_rates(k_p_Ne20_to_He4_F17_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ne20_to_Na21_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ne20_C12_to_p_P31_reaclib)*Y(C12)*state.rho + screened_rates(k_Ne20_He4_to_p_Na23_derived)*Y(He4)*state.rho - screened_rates(k_Ne20_p_to_He4_F17_reaclib)*Y(H1)*state.rho - screened_rates(k_Ne20_p_to_Na21_reaclib)*Y(H1)*state.rho + screened_rates(k_Ne20_to_p_F19_derived); jac.set(H1, Ne20, scratch); - scratch = -screened_rates(k_p_Ne21_to_He4_F18_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ne21_to_Na22_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ne21_to_n_Na21_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ne21_p_to_He4_F18_derived)*Y(H1)*state.rho - screened_rates(k_Ne21_p_to_Na22_reaclib)*Y(H1)*state.rho - screened_rates(k_Ne21_p_to_n_Na21_derived)*Y(H1)*state.rho; jac.set(H1, Ne21, scratch); - scratch = -screened_rates(k_p_Ne22_to_He4_F19_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ne22_to_Na23_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ne22_to_n_Na22_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ne22_p_to_He4_F19_derived)*Y(H1)*state.rho - screened_rates(k_Ne22_p_to_Na23_reaclib)*Y(H1)*state.rho - screened_rates(k_Ne22_p_to_n_Na22_derived)*Y(H1)*state.rho; jac.set(H1, Ne22, scratch); - scratch = screened_rates(k_He4_Na21_to_p_Mg24_reaclib)*Y(He4)*state.rho + screened_rates(k_Na21_to_p_Ne20_reaclib) + screened_rates(k_n_Na21_to_p_Ne21_reaclib)*Y(N)*state.rho - screened_rates(k_p_Na21_to_He4_Ne18_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Na21_He4_to_p_Mg24_derived)*Y(He4)*state.rho + screened_rates(k_Na21_n_to_p_Ne21_reaclib)*Y(N)*state.rho - screened_rates(k_Na21_p_to_He4_Ne18_derived)*Y(H1)*state.rho + screened_rates(k_Na21_to_p_Ne20_derived); jac.set(H1, Na21, scratch); - scratch = screened_rates(k_He4_Na22_to_p_Mg25_reaclib)*Y(He4)*state.rho + screened_rates(k_Na22_to_p_Ne21_reaclib) + screened_rates(k_n_Na22_to_p_Ne22_reaclib)*Y(N)*state.rho - screened_rates(k_p_Na22_to_He4_Ne19_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Na22_to_Mg23_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Na22_He4_to_p_Mg25_reaclib)*Y(He4)*state.rho + screened_rates(k_Na22_n_to_p_Ne22_reaclib)*Y(N)*state.rho - screened_rates(k_Na22_p_to_He4_Ne19_derived)*Y(H1)*state.rho - screened_rates(k_Na22_p_to_Mg23_reaclib)*Y(H1)*state.rho + screened_rates(k_Na22_to_p_Ne21_derived); jac.set(H1, Na22, scratch); - scratch = screened_rates(k_He4_Na23_to_p_Mg26_reaclib)*Y(He4)*state.rho + screened_rates(k_Na23_to_p_Ne22_reaclib) - screened_rates(k_p_Na23_to_C12_C12_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Na23_to_He4_Ne20_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Na23_to_Mg24_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Na23_to_n_Mg23_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Na23_He4_to_p_Mg26_reaclib)*Y(He4)*state.rho - screened_rates(k_Na23_p_to_C12_C12_derived)*Y(H1)*state.rho - screened_rates(k_Na23_p_to_He4_Ne20_reaclib)*Y(H1)*state.rho - screened_rates(k_Na23_p_to_Mg24_reaclib)*Y(H1)*state.rho - screened_rates(k_Na23_p_to_n_Mg23_reaclib)*Y(H1)*state.rho + screened_rates(k_Na23_to_p_Ne22_derived); jac.set(H1, Na23, scratch); - scratch = screened_rates(k_He4_Mg23_to_p_Al26_reaclib)*Y(He4)*state.rho + screened_rates(k_Mg23_to_p_Na22_reaclib) + screened_rates(k_n_Mg23_to_p_Na23_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mg23_He4_to_p_Al26_reaclib)*Y(He4)*state.rho + screened_rates(k_Mg23_n_to_p_Na23_derived)*Y(N)*state.rho + screened_rates(k_Mg23_to_p_Na22_derived); jac.set(H1, Mg23, scratch); - scratch = screened_rates(k_He4_Mg24_to_p_Al27_reaclib)*Y(He4)*state.rho + screened_rates(k_Mg24_to_p_Na23_reaclib) - screened_rates(k_p_Mg24_to_Al25_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mg24_to_He4_Na21_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mg24_He4_to_p_Al27_derived)*Y(He4)*state.rho - screened_rates(k_Mg24_p_to_Al25_reaclib)*Y(H1)*state.rho - screened_rates(k_Mg24_p_to_He4_Na21_reaclib)*Y(H1)*state.rho + screened_rates(k_Mg24_to_p_Na23_derived); jac.set(H1, Mg24, scratch); - scratch = -screened_rates(k_p_Mg25_to_Al26_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mg25_to_He4_Na22_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mg25_to_n_Al25_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Mg25_p_to_Al26_reaclib)*Y(H1)*state.rho - screened_rates(k_Mg25_p_to_He4_Na22_derived)*Y(H1)*state.rho - screened_rates(k_Mg25_p_to_n_Al25_derived)*Y(H1)*state.rho; jac.set(H1, Mg25, scratch); - scratch = -screened_rates(k_p_Mg26_to_Al27_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mg26_to_He4_Na23_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mg26_to_n_Al26_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Mg26_p_to_Al27_reaclib)*Y(H1)*state.rho - screened_rates(k_Mg26_p_to_He4_Na23_derived)*Y(H1)*state.rho - screened_rates(k_Mg26_p_to_n_Al26_derived)*Y(H1)*state.rho; jac.set(H1, Mg26, scratch); - scratch = screened_rates(k_Al25_to_p_Mg24_reaclib) + screened_rates(k_He4_Al25_to_p_Si28_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Al25_to_p_Mg25_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Al25_He4_to_p_Si28_reaclib)*Y(He4)*state.rho + screened_rates(k_Al25_n_to_p_Mg25_reaclib)*Y(N)*state.rho + screened_rates(k_Al25_to_p_Mg24_derived); jac.set(H1, Al25, scratch); - scratch = screened_rates(k_Al26_to_p_Mg25_reaclib) + screened_rates(k_He4_Al26_to_p_Si29_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Al26_to_p_Mg26_reaclib)*Y(N)*state.rho - screened_rates(k_p_Al26_to_He4_Mg23_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Al26_He4_to_p_Si29_reaclib)*Y(He4)*state.rho + screened_rates(k_Al26_n_to_p_Mg26_reaclib)*Y(N)*state.rho - screened_rates(k_Al26_p_to_He4_Mg23_derived)*Y(H1)*state.rho + screened_rates(k_Al26_to_p_Mg25_derived); jac.set(H1, Al26, scratch); - scratch = screened_rates(k_Al27_to_p_Mg26_reaclib) + screened_rates(k_He4_Al27_to_p_Si30_reaclib)*Y(He4)*state.rho - screened_rates(k_p_Al27_to_C12_O16_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Al27_to_He4_Mg24_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Al27_to_Si28_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Al27_He4_to_p_Si30_reaclib)*Y(He4)*state.rho - screened_rates(k_Al27_p_to_C12_O16_derived)*Y(H1)*state.rho - screened_rates(k_Al27_p_to_He4_Mg24_reaclib)*Y(H1)*state.rho - screened_rates(k_Al27_p_to_Si28_reaclib)*Y(H1)*state.rho + screened_rates(k_Al27_to_p_Mg26_derived); jac.set(H1, Al27, scratch); - scratch = screened_rates(k_He4_Si28_to_p_P31_reaclib)*Y(He4)*state.rho + screened_rates(k_Si28_to_p_Al27_reaclib) - screened_rates(k_p_Si28_to_He4_Al25_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Si28_to_P29_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Si28_He4_to_p_P31_derived)*Y(He4)*state.rho - screened_rates(k_Si28_p_to_He4_Al25_derived)*Y(H1)*state.rho - screened_rates(k_Si28_p_to_P29_reaclib)*Y(H1)*state.rho + screened_rates(k_Si28_to_p_Al27_derived); jac.set(H1, Si28, scratch); - scratch = screened_rates(k_He4_Si29_to_p_P32_reaclib)*Y(He4)*state.rho - screened_rates(k_p_Si29_to_He4_Al26_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Si29_to_P30_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Si29_to_n_P29_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Si29_He4_to_p_P32_derived)*Y(He4)*state.rho - screened_rates(k_Si29_p_to_He4_Al26_derived)*Y(H1)*state.rho - screened_rates(k_Si29_p_to_P30_reaclib)*Y(H1)*state.rho - screened_rates(k_Si29_p_to_n_P29_derived)*Y(H1)*state.rho; jac.set(H1, Si29, scratch); - scratch = screened_rates(k_He4_Si30_to_p_P33_reaclib)*Y(He4)*state.rho - screened_rates(k_p_Si30_to_He4_Al27_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Si30_to_P31_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Si30_to_n_P30_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Si30_He4_to_p_P33_derived)*Y(He4)*state.rho - screened_rates(k_Si30_p_to_He4_Al27_derived)*Y(H1)*state.rho - screened_rates(k_Si30_p_to_P31_reaclib)*Y(H1)*state.rho - screened_rates(k_Si30_p_to_n_P30_derived)*Y(H1)*state.rho; jac.set(H1, Si30, scratch); - scratch = -screened_rates(k_p_Si31_to_P32_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Si31_to_n_P31_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Si31_p_to_P32_reaclib)*Y(H1)*state.rho - screened_rates(k_Si31_p_to_n_P31_reaclib)*Y(H1)*state.rho; jac.set(H1, Si31, scratch); - scratch = -screened_rates(k_p_Si32_to_P33_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Si32_to_n_P32_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Si32_p_to_P33_reaclib)*Y(H1)*state.rho - screened_rates(k_Si32_p_to_n_P32_derived)*Y(H1)*state.rho; jac.set(H1, Si32, scratch); - scratch = screened_rates(k_He4_P29_to_p_S32_reaclib)*Y(He4)*state.rho + screened_rates(k_P29_to_p_Si28_reaclib) + screened_rates(k_n_P29_to_p_Si29_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_P29_He4_to_p_S32_reaclib)*Y(He4)*state.rho + screened_rates(k_P29_n_to_p_Si29_reaclib)*Y(N)*state.rho + screened_rates(k_P29_to_p_Si28_derived); jac.set(H1, P29, scratch); - scratch = screened_rates(k_He4_P30_to_p_S33_reaclib)*Y(He4)*state.rho + screened_rates(k_P30_to_p_Si29_reaclib) + screened_rates(k_n_P30_to_p_Si30_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_P30_He4_to_p_S33_reaclib)*Y(He4)*state.rho + screened_rates(k_P30_n_to_p_Si30_reaclib)*Y(N)*state.rho + screened_rates(k_P30_to_p_Si29_derived); jac.set(H1, P30, scratch); - scratch = screened_rates(k_He4_P31_to_p_S34_reaclib)*Y(He4)*state.rho + screened_rates(k_P31_to_p_Si30_reaclib) + screened_rates(k_n_P31_to_p_Si31_reaclib)*Y(N)*state.rho - screened_rates(k_p_P31_to_C12_Ne20_reaclib)*Y(H1)*state.rho - screened_rates(k_p_P31_to_He4_Si28_reaclib)*Y(H1)*state.rho - screened_rates(k_p_P31_to_O16_O16_reaclib)*Y(H1)*state.rho - screened_rates(k_p_P31_to_S32_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_P31_He4_to_p_S34_reaclib)*Y(He4)*state.rho + screened_rates(k_P31_n_to_p_Si31_derived)*Y(N)*state.rho - screened_rates(k_P31_p_to_C12_Ne20_derived)*Y(H1)*state.rho - screened_rates(k_P31_p_to_He4_Si28_reaclib)*Y(H1)*state.rho - screened_rates(k_P31_p_to_O16_O16_derived)*Y(H1)*state.rho - screened_rates(k_P31_p_to_S32_reaclib)*Y(H1)*state.rho + screened_rates(k_P31_to_p_Si30_derived); jac.set(H1, P31, scratch); - scratch = screened_rates(k_He4_P32_to_p_S35_reaclib)*Y(He4)*state.rho + screened_rates(k_P32_to_p_Si31_reaclib) + screened_rates(k_n_P32_to_p_Si32_reaclib)*Y(N)*state.rho - screened_rates(k_p_P32_to_He4_Si29_reaclib)*Y(H1)*state.rho - screened_rates(k_p_P32_to_S33_reaclib)*Y(H1)*state.rho - screened_rates(k_p_P32_to_n_S32_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_P32_He4_to_p_S35_derived)*Y(He4)*state.rho + screened_rates(k_P32_n_to_p_Si32_reaclib)*Y(N)*state.rho - screened_rates(k_P32_p_to_He4_Si29_reaclib)*Y(H1)*state.rho - screened_rates(k_P32_p_to_S33_reaclib)*Y(H1)*state.rho - screened_rates(k_P32_p_to_n_S32_reaclib)*Y(H1)*state.rho + screened_rates(k_P32_to_p_Si31_derived); jac.set(H1, P32, scratch); - scratch = screened_rates(k_He4_P33_to_p_S36_reaclib)*Y(He4)*state.rho + screened_rates(k_P33_to_p_Si32_reaclib) - screened_rates(k_p_P33_to_He4_Si30_reaclib)*Y(H1)*state.rho - screened_rates(k_p_P33_to_S34_reaclib)*Y(H1)*state.rho - screened_rates(k_p_P33_to_n_S33_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_P33_He4_to_p_S36_derived)*Y(He4)*state.rho - screened_rates(k_P33_p_to_He4_Si30_reaclib)*Y(H1)*state.rho - screened_rates(k_P33_p_to_S34_reaclib)*Y(H1)*state.rho - screened_rates(k_P33_p_to_n_S33_derived)*Y(H1)*state.rho + screened_rates(k_P33_to_p_Si32_derived); jac.set(H1, P33, scratch); - scratch = screened_rates(k_He4_S32_to_p_Cl35_reaclib)*Y(He4)*state.rho + screened_rates(k_S32_to_p_P31_reaclib) + screened_rates(k_n_S32_to_p_P32_reaclib)*Y(N)*state.rho - screened_rates(k_p_S32_to_Cl33_reaclib)*Y(H1)*state.rho - screened_rates(k_p_S32_to_He4_P29_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_S32_He4_to_p_Cl35_derived)*Y(He4)*state.rho + screened_rates(k_S32_n_to_p_P32_derived)*Y(N)*state.rho - screened_rates(k_S32_p_to_Cl33_reaclib)*Y(H1)*state.rho - screened_rates(k_S32_p_to_He4_P29_derived)*Y(H1)*state.rho + screened_rates(k_S32_to_p_P31_derived); jac.set(H1, S32, scratch); - scratch = screened_rates(k_He4_S33_to_p_Cl36_reaclib)*Y(He4)*state.rho + screened_rates(k_S33_to_p_P32_reaclib) + screened_rates(k_n_S33_to_p_P33_reaclib)*Y(N)*state.rho - screened_rates(k_p_S33_to_Cl34_reaclib)*Y(H1)*state.rho - screened_rates(k_p_S33_to_He4_P30_reaclib)*Y(H1)*state.rho - screened_rates(k_p_S33_to_n_Cl33_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_S33_He4_to_p_Cl36_derived)*Y(He4)*state.rho + screened_rates(k_S33_n_to_p_P33_reaclib)*Y(N)*state.rho - screened_rates(k_S33_p_to_Cl34_reaclib)*Y(H1)*state.rho - screened_rates(k_S33_p_to_He4_P30_derived)*Y(H1)*state.rho - screened_rates(k_S33_p_to_n_Cl33_derived)*Y(H1)*state.rho + screened_rates(k_S33_to_p_P32_derived); jac.set(H1, S33, scratch); - scratch = screened_rates(k_He4_S34_to_p_Cl37_reaclib)*Y(He4)*state.rho + screened_rates(k_S34_to_p_P33_reaclib) - screened_rates(k_p_S34_to_Cl35_reaclib)*Y(H1)*state.rho - screened_rates(k_p_S34_to_He4_P31_reaclib)*Y(H1)*state.rho - screened_rates(k_p_S34_to_n_Cl34_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_S34_He4_to_p_Cl37_reaclib)*Y(He4)*state.rho - screened_rates(k_S34_p_to_Cl35_reaclib)*Y(H1)*state.rho - screened_rates(k_S34_p_to_He4_P31_derived)*Y(H1)*state.rho - screened_rates(k_S34_p_to_n_Cl34_derived)*Y(H1)*state.rho + screened_rates(k_S34_to_p_P33_derived); jac.set(H1, S34, scratch); - scratch = -screened_rates(k_p_S35_to_Cl36_reaclib)*Y(H1)*state.rho - screened_rates(k_p_S35_to_He4_P32_reaclib)*Y(H1)*state.rho - screened_rates(k_p_S35_to_n_Cl35_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_S35_p_to_Cl36_reaclib)*Y(H1)*state.rho - screened_rates(k_S35_p_to_He4_P32_reaclib)*Y(H1)*state.rho - screened_rates(k_S35_p_to_n_Cl35_derived)*Y(H1)*state.rho; jac.set(H1, S35, scratch); - scratch = -screened_rates(k_p_S36_to_Cl37_reaclib)*Y(H1)*state.rho - screened_rates(k_p_S36_to_He4_P33_reaclib)*Y(H1)*state.rho - screened_rates(k_p_S36_to_n_Cl36_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_S36_p_to_Cl37_reaclib)*Y(H1)*state.rho - screened_rates(k_S36_p_to_He4_P33_reaclib)*Y(H1)*state.rho - screened_rates(k_S36_p_to_n_Cl36_derived)*Y(H1)*state.rho; jac.set(H1, S36, scratch); - scratch = screened_rates(k_Cl33_to_p_S32_reaclib) + screened_rates(k_He4_Cl33_to_p_Ar36_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cl33_to_p_S33_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cl33_He4_to_p_Ar36_reaclib)*Y(He4)*state.rho + screened_rates(k_Cl33_n_to_p_S33_reaclib)*Y(N)*state.rho + screened_rates(k_Cl33_to_p_S32_derived); jac.set(H1, Cl33, scratch); - scratch = screened_rates(k_Cl34_to_p_S33_reaclib) + screened_rates(k_He4_Cl34_to_p_Ar37_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cl34_to_p_S34_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cl34_He4_to_p_Ar37_reaclib)*Y(He4)*state.rho + screened_rates(k_Cl34_n_to_p_S34_reaclib)*Y(N)*state.rho + screened_rates(k_Cl34_to_p_S33_derived); jac.set(H1, Cl34, scratch); - scratch = screened_rates(k_Cl35_to_p_S34_reaclib) + screened_rates(k_He4_Cl35_to_p_Ar38_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cl35_to_p_S35_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cl35_to_Ar36_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cl35_to_He4_S32_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cl35_He4_to_p_Ar38_reaclib)*Y(He4)*state.rho + screened_rates(k_Cl35_n_to_p_S35_reaclib)*Y(N)*state.rho - screened_rates(k_Cl35_p_to_Ar36_reaclib)*Y(H1)*state.rho - screened_rates(k_Cl35_p_to_He4_S32_reaclib)*Y(H1)*state.rho + screened_rates(k_Cl35_to_p_S34_derived); jac.set(H1, Cl35, scratch); - scratch = screened_rates(k_Cl36_to_p_S35_reaclib) + screened_rates(k_He4_Cl36_to_p_Ar39_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cl36_to_p_S36_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cl36_to_Ar37_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cl36_to_He4_S33_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cl36_to_n_Ar36_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cl36_He4_to_p_Ar39_derived)*Y(He4)*state.rho + screened_rates(k_Cl36_n_to_p_S36_reaclib)*Y(N)*state.rho - screened_rates(k_Cl36_p_to_Ar37_reaclib)*Y(H1)*state.rho - screened_rates(k_Cl36_p_to_He4_S33_reaclib)*Y(H1)*state.rho - screened_rates(k_Cl36_p_to_n_Ar36_derived)*Y(H1)*state.rho + screened_rates(k_Cl36_to_p_S35_derived); jac.set(H1, Cl36, scratch); - scratch = screened_rates(k_Cl37_to_p_S36_reaclib) + screened_rates(k_He4_Cl37_to_p_Ar40_reaclib)*Y(He4)*state.rho - screened_rates(k_p_Cl37_to_Ar38_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cl37_to_He4_S34_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cl37_to_n_Ar37_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cl37_He4_to_p_Ar40_derived)*Y(He4)*state.rho - screened_rates(k_Cl37_p_to_Ar38_reaclib)*Y(H1)*state.rho - screened_rates(k_Cl37_p_to_He4_S34_derived)*Y(H1)*state.rho - screened_rates(k_Cl37_p_to_n_Ar37_derived)*Y(H1)*state.rho + screened_rates(k_Cl37_to_p_S36_derived); jac.set(H1, Cl37, scratch); - scratch = screened_rates(k_Ar36_to_p_Cl35_reaclib) + screened_rates(k_He4_Ar36_to_p_K39_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Ar36_to_p_Cl36_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ar36_to_He4_Cl33_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ar36_to_K37_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ar36_He4_to_p_K39_derived)*Y(He4)*state.rho + screened_rates(k_Ar36_n_to_p_Cl36_reaclib)*Y(N)*state.rho - screened_rates(k_Ar36_p_to_He4_Cl33_derived)*Y(H1)*state.rho - screened_rates(k_Ar36_p_to_K37_reaclib)*Y(H1)*state.rho + screened_rates(k_Ar36_to_p_Cl35_derived); jac.set(H1, Ar36, scratch); - scratch = screened_rates(k_Ar37_to_p_Cl36_reaclib) + screened_rates(k_He4_Ar37_to_p_K40_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Ar37_to_p_Cl37_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ar37_to_He4_Cl34_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ar37_to_K38_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ar37_to_n_K37_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ar37_He4_to_p_K40_derived)*Y(He4)*state.rho + screened_rates(k_Ar37_n_to_p_Cl37_reaclib)*Y(N)*state.rho - screened_rates(k_Ar37_p_to_He4_Cl34_derived)*Y(H1)*state.rho - screened_rates(k_Ar37_p_to_K38_reaclib)*Y(H1)*state.rho - screened_rates(k_Ar37_p_to_n_K37_derived)*Y(H1)*state.rho + screened_rates(k_Ar37_to_p_Cl36_derived); jac.set(H1, Ar37, scratch); - scratch = screened_rates(k_Ar38_to_p_Cl37_reaclib) + screened_rates(k_He4_Ar38_to_p_K41_reaclib)*Y(He4)*state.rho - screened_rates(k_p_Ar38_to_He4_Cl35_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ar38_to_K39_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ar38_to_n_K38_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ar38_He4_to_p_K41_derived)*Y(He4)*state.rho - screened_rates(k_Ar38_p_to_He4_Cl35_derived)*Y(H1)*state.rho - screened_rates(k_Ar38_p_to_K39_reaclib)*Y(H1)*state.rho - screened_rates(k_Ar38_p_to_n_K38_derived)*Y(H1)*state.rho + screened_rates(k_Ar38_to_p_Cl37_derived); jac.set(H1, Ar38, scratch); - scratch = -screened_rates(k_p_Ar39_to_He4_Cl36_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ar39_to_K40_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ar39_to_n_K39_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ar39_p_to_He4_Cl36_reaclib)*Y(H1)*state.rho - screened_rates(k_Ar39_p_to_K40_reaclib)*Y(H1)*state.rho - screened_rates(k_Ar39_p_to_n_K39_derived)*Y(H1)*state.rho; jac.set(H1, Ar39, scratch); - scratch = -screened_rates(k_p_Ar40_to_He4_Cl37_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ar40_to_K41_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ar40_to_n_K40_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ar40_p_to_He4_Cl37_reaclib)*Y(H1)*state.rho - screened_rates(k_Ar40_p_to_K41_reaclib)*Y(H1)*state.rho - screened_rates(k_Ar40_p_to_n_K40_derived)*Y(H1)*state.rho; jac.set(H1, Ar40, scratch); - scratch = screened_rates(k_He4_K37_to_p_Ca40_reaclib)*Y(He4)*state.rho + screened_rates(k_K37_to_p_Ar36_reaclib) + screened_rates(k_n_K37_to_p_Ar37_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_K37_He4_to_p_Ca40_reaclib)*Y(He4)*state.rho + screened_rates(k_K37_n_to_p_Ar37_reaclib)*Y(N)*state.rho + screened_rates(k_K37_to_p_Ar36_derived); jac.set(H1, K37, scratch); - scratch = screened_rates(k_He4_K38_to_p_Ca41_reaclib)*Y(He4)*state.rho + screened_rates(k_K38_to_p_Ar37_reaclib) + screened_rates(k_n_K38_to_p_Ar38_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_K38_He4_to_p_Ca41_reaclib)*Y(He4)*state.rho + screened_rates(k_K38_n_to_p_Ar38_reaclib)*Y(N)*state.rho + screened_rates(k_K38_to_p_Ar37_derived); jac.set(H1, K38, scratch); - scratch = screened_rates(k_He4_K39_to_p_Ca42_reaclib)*Y(He4)*state.rho + screened_rates(k_K39_to_p_Ar38_reaclib) + screened_rates(k_n_K39_to_p_Ar39_reaclib)*Y(N)*state.rho - screened_rates(k_p_K39_to_Ca40_reaclib)*Y(H1)*state.rho - screened_rates(k_p_K39_to_He4_Ar36_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_K39_He4_to_p_Ca42_derived)*Y(He4)*state.rho + screened_rates(k_K39_n_to_p_Ar39_reaclib)*Y(N)*state.rho - screened_rates(k_K39_p_to_Ca40_reaclib)*Y(H1)*state.rho - screened_rates(k_K39_p_to_He4_Ar36_reaclib)*Y(H1)*state.rho + screened_rates(k_K39_to_p_Ar38_derived); jac.set(H1, K39, scratch); - scratch = screened_rates(k_He4_K40_to_p_Ca43_reaclib)*Y(He4)*state.rho + screened_rates(k_K40_to_p_Ar39_reaclib) + screened_rates(k_n_K40_to_p_Ar40_reaclib)*Y(N)*state.rho - screened_rates(k_p_K40_to_Ca41_reaclib)*Y(H1)*state.rho - screened_rates(k_p_K40_to_He4_Ar37_reaclib)*Y(H1)*state.rho - screened_rates(k_p_K40_to_n_Ca40_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_K40_He4_to_p_Ca43_reaclib)*Y(He4)*state.rho + screened_rates(k_K40_n_to_p_Ar40_reaclib)*Y(N)*state.rho - screened_rates(k_K40_p_to_Ca41_reaclib)*Y(H1)*state.rho - screened_rates(k_K40_p_to_He4_Ar37_reaclib)*Y(H1)*state.rho - screened_rates(k_K40_p_to_n_Ca40_reaclib)*Y(H1)*state.rho + screened_rates(k_K40_to_p_Ar39_derived); jac.set(H1, K40, scratch); - scratch = screened_rates(k_He4_K41_to_p_Ca44_reaclib)*Y(He4)*state.rho + screened_rates(k_K41_to_p_Ar40_reaclib) - screened_rates(k_p_K41_to_Ca42_reaclib)*Y(H1)*state.rho - screened_rates(k_p_K41_to_He4_Ar38_reaclib)*Y(H1)*state.rho - screened_rates(k_p_K41_to_n_Ca41_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_K41_He4_to_p_Ca44_reaclib)*Y(He4)*state.rho - screened_rates(k_K41_p_to_Ca42_reaclib)*Y(H1)*state.rho - screened_rates(k_K41_p_to_He4_Ar38_reaclib)*Y(H1)*state.rho - screened_rates(k_K41_p_to_n_Ca41_reaclib)*Y(H1)*state.rho + screened_rates(k_K41_to_p_Ar40_derived); jac.set(H1, K41, scratch); - scratch = screened_rates(k_Ca40_to_p_K39_reaclib) + screened_rates(k_He4_Ca40_to_p_Sc43_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Ca40_to_p_K40_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ca40_to_He4_K37_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca40_He4_to_p_Sc43_derived)*Y(He4)*state.rho + screened_rates(k_Ca40_n_to_p_K40_derived)*Y(N)*state.rho - screened_rates(k_Ca40_p_to_He4_K37_derived)*Y(H1)*state.rho + screened_rates(k_Ca40_to_p_K39_derived); jac.set(H1, Ca40, scratch); - scratch = screened_rates(k_Ca41_to_p_K40_reaclib) + screened_rates(k_He4_Ca41_to_p_Sc44_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Ca41_to_p_K41_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ca41_to_He4_K38_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca41_He4_to_p_Sc44_derived)*Y(He4)*state.rho + screened_rates(k_Ca41_n_to_p_K41_derived)*Y(N)*state.rho - screened_rates(k_Ca41_p_to_He4_K38_derived)*Y(H1)*state.rho + screened_rates(k_Ca41_to_p_K40_derived); jac.set(H1, Ca41, scratch); - scratch = screened_rates(k_Ca42_to_p_K41_reaclib) + screened_rates(k_He4_Ca42_to_p_Sc45_reaclib)*Y(He4)*state.rho - screened_rates(k_p_Ca42_to_He4_K39_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ca42_to_Sc43_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca42_He4_to_p_Sc45_derived)*Y(He4)*state.rho - screened_rates(k_Ca42_p_to_He4_K39_reaclib)*Y(H1)*state.rho - screened_rates(k_Ca42_p_to_Sc43_reaclib)*Y(H1)*state.rho + screened_rates(k_Ca42_to_p_K41_derived); jac.set(H1, Ca42, scratch); - scratch = screened_rates(k_He4_Ca43_to_p_Sc46_reaclib)*Y(He4)*state.rho - screened_rates(k_p_Ca43_to_He4_K40_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ca43_to_Sc44_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ca43_to_n_Sc43_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca43_He4_to_p_Sc46_derived)*Y(He4)*state.rho - screened_rates(k_Ca43_p_to_He4_K40_derived)*Y(H1)*state.rho - screened_rates(k_Ca43_p_to_Sc44_reaclib)*Y(H1)*state.rho - screened_rates(k_Ca43_p_to_n_Sc43_derived)*Y(H1)*state.rho; jac.set(H1, Ca43, scratch); - scratch = screened_rates(k_He4_Ca44_to_p_Sc47_reaclib)*Y(He4)*state.rho - screened_rates(k_p_Ca44_to_He4_K41_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ca44_to_Sc45_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ca44_to_n_Sc44_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca44_He4_to_p_Sc47_derived)*Y(He4)*state.rho - screened_rates(k_Ca44_p_to_He4_K41_derived)*Y(H1)*state.rho - screened_rates(k_Ca44_p_to_Sc45_reaclib)*Y(H1)*state.rho - screened_rates(k_Ca44_p_to_n_Sc44_derived)*Y(H1)*state.rho; jac.set(H1, Ca44, scratch); - scratch = screened_rates(k_He4_Ca45_to_p_Sc48_reaclib)*Y(He4)*state.rho - screened_rates(k_p_Ca45_to_Sc46_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ca45_to_n_Sc45_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca45_He4_to_p_Sc48_derived)*Y(He4)*state.rho - screened_rates(k_Ca45_p_to_Sc46_reaclib)*Y(H1)*state.rho - screened_rates(k_Ca45_p_to_n_Sc45_derived)*Y(H1)*state.rho; jac.set(H1, Ca45, scratch); - scratch = screened_rates(k_He4_Ca46_to_p_Sc49_reaclib)*Y(He4)*state.rho - screened_rates(k_p_Ca46_to_Sc47_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ca46_to_n_Sc46_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca46_He4_to_p_Sc49_derived)*Y(He4)*state.rho - screened_rates(k_Ca46_p_to_Sc47_reaclib)*Y(H1)*state.rho - screened_rates(k_Ca46_p_to_n_Sc46_derived)*Y(H1)*state.rho; jac.set(H1, Ca46, scratch); - scratch = -screened_rates(k_p_Ca47_to_Sc48_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ca47_to_n_Sc47_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ca47_p_to_Sc48_reaclib)*Y(H1)*state.rho - screened_rates(k_Ca47_p_to_n_Sc47_reaclib)*Y(H1)*state.rho; jac.set(H1, Ca47, scratch); - scratch = -screened_rates(k_p_Ca48_to_Sc49_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ca48_to_n_Sc48_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ca48_p_to_Sc49_reaclib)*Y(H1)*state.rho - screened_rates(k_Ca48_p_to_n_Sc48_derived)*Y(H1)*state.rho; jac.set(H1, Ca48, scratch); - scratch = screened_rates(k_He4_Sc43_to_p_Ti46_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc43_to_p_Ca42_reaclib) + screened_rates(k_n_Sc43_to_p_Ca43_reaclib)*Y(N)*state.rho - screened_rates(k_p_Sc43_to_He4_Ca40_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc43_to_Ti44_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc43_He4_to_p_Ti46_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc43_n_to_p_Ca43_reaclib)*Y(N)*state.rho - screened_rates(k_Sc43_p_to_He4_Ca40_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc43_p_to_Ti44_reaclib)*Y(H1)*state.rho + screened_rates(k_Sc43_to_p_Ca42_derived); jac.set(H1, Sc43, scratch); - scratch = screened_rates(k_He4_Sc44_to_p_Ti47_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc44_to_p_Ca43_reaclib) + screened_rates(k_n_Sc44_to_p_Ca44_reaclib)*Y(N)*state.rho - screened_rates(k_p_Sc44_to_He4_Ca41_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc44_to_Ti45_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc44_to_n_Ti44_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc44_He4_to_p_Ti47_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc44_n_to_p_Ca44_reaclib)*Y(N)*state.rho - screened_rates(k_Sc44_p_to_He4_Ca41_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc44_p_to_Ti45_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc44_p_to_n_Ti44_derived)*Y(H1)*state.rho + screened_rates(k_Sc44_to_p_Ca43_derived); jac.set(H1, Sc44, scratch); - scratch = screened_rates(k_He4_Sc45_to_p_Ti48_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc45_to_p_Ca44_reaclib) + screened_rates(k_n_Sc45_to_p_Ca45_reaclib)*Y(N)*state.rho - screened_rates(k_p_Sc45_to_He4_Ca42_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc45_to_Ti46_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc45_to_n_Ti45_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc45_He4_to_p_Ti48_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc45_n_to_p_Ca45_reaclib)*Y(N)*state.rho - screened_rates(k_Sc45_p_to_He4_Ca42_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc45_p_to_Ti46_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc45_p_to_n_Ti45_derived)*Y(H1)*state.rho + screened_rates(k_Sc45_to_p_Ca44_derived); jac.set(H1, Sc45, scratch); - scratch = screened_rates(k_He4_Sc46_to_p_Ti49_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc46_to_p_Ca45_reaclib) + screened_rates(k_n_Sc46_to_p_Ca46_reaclib)*Y(N)*state.rho - screened_rates(k_p_Sc46_to_He4_Ca43_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc46_to_Ti47_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc46_to_n_Ti46_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc46_He4_to_p_Ti49_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc46_n_to_p_Ca46_reaclib)*Y(N)*state.rho - screened_rates(k_Sc46_p_to_He4_Ca43_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc46_p_to_Ti47_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc46_p_to_n_Ti46_reaclib)*Y(H1)*state.rho + screened_rates(k_Sc46_to_p_Ca45_derived); jac.set(H1, Sc46, scratch); - scratch = screened_rates(k_He4_Sc47_to_p_Ti50_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc47_to_p_Ca46_reaclib) + screened_rates(k_n_Sc47_to_p_Ca47_reaclib)*Y(N)*state.rho - screened_rates(k_p_Sc47_to_He4_Ca44_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc47_to_Ti48_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc47_to_n_Ti47_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc47_He4_to_p_Ti50_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc47_n_to_p_Ca47_derived)*Y(N)*state.rho - screened_rates(k_Sc47_p_to_He4_Ca44_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc47_p_to_Ti48_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc47_p_to_n_Ti47_derived)*Y(H1)*state.rho + screened_rates(k_Sc47_to_p_Ca46_derived); jac.set(H1, Sc47, scratch); - scratch = screened_rates(k_He4_Sc48_to_p_Ti51_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc48_to_p_Ca47_reaclib) + screened_rates(k_n_Sc48_to_p_Ca48_reaclib)*Y(N)*state.rho - screened_rates(k_p_Sc48_to_He4_Ca45_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc48_to_Ti49_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc48_to_n_Ti48_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc48_He4_to_p_Ti51_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc48_n_to_p_Ca48_reaclib)*Y(N)*state.rho - screened_rates(k_Sc48_p_to_He4_Ca45_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc48_p_to_Ti49_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc48_p_to_n_Ti48_reaclib)*Y(H1)*state.rho + screened_rates(k_Sc48_to_p_Ca47_derived); jac.set(H1, Sc48, scratch); - scratch = screened_rates(k_Sc49_to_p_Ca48_reaclib) - screened_rates(k_p_Sc49_to_He4_Ca46_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc49_to_Ti50_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc49_to_n_Ti49_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Sc49_p_to_He4_Ca46_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc49_p_to_Ti50_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc49_p_to_n_Ti49_reaclib)*Y(H1)*state.rho + screened_rates(k_Sc49_to_p_Ca48_derived); jac.set(H1, Sc49, scratch); - scratch = screened_rates(k_He4_Ti44_to_p_V47_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti44_to_p_Sc43_reaclib) + screened_rates(k_n_Ti44_to_p_Sc44_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ti44_He4_to_p_V47_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti44_n_to_p_Sc44_reaclib)*Y(N)*state.rho + screened_rates(k_Ti44_to_p_Sc43_derived); jac.set(H1, Ti44, scratch); - scratch = screened_rates(k_He4_Ti45_to_p_V48_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti45_to_p_Sc44_reaclib) + screened_rates(k_n_Ti45_to_p_Sc45_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ti45_to_V46_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti45_He4_to_p_V48_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti45_n_to_p_Sc45_reaclib)*Y(N)*state.rho - screened_rates(k_Ti45_p_to_V46_reaclib)*Y(H1)*state.rho + screened_rates(k_Ti45_to_p_Sc44_derived); jac.set(H1, Ti45, scratch); - scratch = screened_rates(k_He4_Ti46_to_p_V49_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti46_to_p_Sc45_reaclib) + screened_rates(k_n_Ti46_to_p_Sc46_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ti46_to_He4_Sc43_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ti46_to_V47_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ti46_to_n_V46_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti46_He4_to_p_V49_derived)*Y(He4)*state.rho + screened_rates(k_Ti46_n_to_p_Sc46_derived)*Y(N)*state.rho - screened_rates(k_Ti46_p_to_He4_Sc43_derived)*Y(H1)*state.rho - screened_rates(k_Ti46_p_to_V47_reaclib)*Y(H1)*state.rho - screened_rates(k_Ti46_p_to_n_V46_derived)*Y(H1)*state.rho + screened_rates(k_Ti46_to_p_Sc45_derived); jac.set(H1, Ti46, scratch); - scratch = screened_rates(k_He4_Ti47_to_p_V50_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti47_to_p_Sc46_reaclib) + screened_rates(k_n_Ti47_to_p_Sc47_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ti47_to_He4_Sc44_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ti47_to_V48_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ti47_to_n_V47_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti47_He4_to_p_V50_derived)*Y(He4)*state.rho + screened_rates(k_Ti47_n_to_p_Sc47_reaclib)*Y(N)*state.rho - screened_rates(k_Ti47_p_to_He4_Sc44_derived)*Y(H1)*state.rho - screened_rates(k_Ti47_p_to_V48_reaclib)*Y(H1)*state.rho - screened_rates(k_Ti47_p_to_n_V47_derived)*Y(H1)*state.rho + screened_rates(k_Ti47_to_p_Sc46_derived); jac.set(H1, Ti47, scratch); - scratch = screened_rates(k_He4_Ti48_to_p_V51_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti48_to_p_Sc47_reaclib) + screened_rates(k_n_Ti48_to_p_Sc48_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ti48_to_He4_Sc45_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ti48_to_V49_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ti48_to_n_V48_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti48_He4_to_p_V51_derived)*Y(He4)*state.rho + screened_rates(k_Ti48_n_to_p_Sc48_derived)*Y(N)*state.rho - screened_rates(k_Ti48_p_to_He4_Sc45_derived)*Y(H1)*state.rho - screened_rates(k_Ti48_p_to_V49_reaclib)*Y(H1)*state.rho - screened_rates(k_Ti48_p_to_n_V48_derived)*Y(H1)*state.rho + screened_rates(k_Ti48_to_p_Sc47_derived); jac.set(H1, Ti48, scratch); - scratch = screened_rates(k_He4_Ti49_to_p_V52_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti49_to_p_Sc48_reaclib) + screened_rates(k_n_Ti49_to_p_Sc49_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ti49_to_He4_Sc46_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ti49_to_V50_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ti49_to_n_V49_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti49_He4_to_p_V52_derived)*Y(He4)*state.rho + screened_rates(k_Ti49_n_to_p_Sc49_derived)*Y(N)*state.rho - screened_rates(k_Ti49_p_to_He4_Sc46_derived)*Y(H1)*state.rho - screened_rates(k_Ti49_p_to_V50_reaclib)*Y(H1)*state.rho - screened_rates(k_Ti49_p_to_n_V49_derived)*Y(H1)*state.rho + screened_rates(k_Ti49_to_p_Sc48_derived); jac.set(H1, Ti49, scratch); - scratch = screened_rates(k_Ti50_to_p_Sc49_reaclib) - screened_rates(k_p_Ti50_to_He4_Sc47_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ti50_to_V51_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ti50_to_n_V50_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ti50_p_to_He4_Sc47_derived)*Y(H1)*state.rho - screened_rates(k_Ti50_p_to_V51_reaclib)*Y(H1)*state.rho - screened_rates(k_Ti50_p_to_n_V50_derived)*Y(H1)*state.rho + screened_rates(k_Ti50_to_p_Sc49_derived); jac.set(H1, Ti50, scratch); - scratch = -screened_rates(k_p_Ti51_to_He4_Sc48_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ti51_to_V52_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ti51_to_n_V51_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ti51_p_to_He4_Sc48_derived)*Y(H1)*state.rho - screened_rates(k_Ti51_p_to_V52_reaclib)*Y(H1)*state.rho - screened_rates(k_Ti51_p_to_n_V51_reaclib)*Y(H1)*state.rho; jac.set(H1, Ti51, scratch); - scratch = screened_rates(k_He4_V46_to_p_Cr49_reaclib)*Y(He4)*state.rho + screened_rates(k_V46_to_p_Ti45_reaclib) + screened_rates(k_n_V46_to_p_Ti46_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_V46_He4_to_p_Cr49_reaclib)*Y(He4)*state.rho + screened_rates(k_V46_n_to_p_Ti46_reaclib)*Y(N)*state.rho + screened_rates(k_V46_to_p_Ti45_derived); jac.set(H1, V46, scratch); - scratch = screened_rates(k_He4_V47_to_p_Cr50_reaclib)*Y(He4)*state.rho + screened_rates(k_V47_to_p_Ti46_reaclib) + screened_rates(k_n_V47_to_p_Ti47_reaclib)*Y(N)*state.rho - screened_rates(k_p_V47_to_Cr48_reaclib)*Y(H1)*state.rho - screened_rates(k_p_V47_to_He4_Ti44_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V47_He4_to_p_Cr50_reaclib)*Y(He4)*state.rho + screened_rates(k_V47_n_to_p_Ti47_reaclib)*Y(N)*state.rho - screened_rates(k_V47_p_to_Cr48_reaclib)*Y(H1)*state.rho - screened_rates(k_V47_p_to_He4_Ti44_derived)*Y(H1)*state.rho + screened_rates(k_V47_to_p_Ti46_derived); jac.set(H1, V47, scratch); - scratch = screened_rates(k_He4_V48_to_p_Cr51_reaclib)*Y(He4)*state.rho + screened_rates(k_V48_to_p_Ti47_reaclib) + screened_rates(k_n_V48_to_p_Ti48_reaclib)*Y(N)*state.rho - screened_rates(k_p_V48_to_Cr49_reaclib)*Y(H1)*state.rho - screened_rates(k_p_V48_to_He4_Ti45_reaclib)*Y(H1)*state.rho - screened_rates(k_p_V48_to_n_Cr48_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V48_He4_to_p_Cr51_reaclib)*Y(He4)*state.rho + screened_rates(k_V48_n_to_p_Ti48_reaclib)*Y(N)*state.rho - screened_rates(k_V48_p_to_Cr49_reaclib)*Y(H1)*state.rho - screened_rates(k_V48_p_to_He4_Ti45_derived)*Y(H1)*state.rho - screened_rates(k_V48_p_to_n_Cr48_derived)*Y(H1)*state.rho + screened_rates(k_V48_to_p_Ti47_derived); jac.set(H1, V48, scratch); - scratch = screened_rates(k_He4_V49_to_p_Cr52_reaclib)*Y(He4)*state.rho + screened_rates(k_V49_to_p_Ti48_reaclib) + screened_rates(k_n_V49_to_p_Ti49_reaclib)*Y(N)*state.rho - screened_rates(k_p_V49_to_Cr50_reaclib)*Y(H1)*state.rho - screened_rates(k_p_V49_to_He4_Ti46_reaclib)*Y(H1)*state.rho - screened_rates(k_p_V49_to_n_Cr49_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V49_He4_to_p_Cr52_reaclib)*Y(He4)*state.rho + screened_rates(k_V49_n_to_p_Ti49_reaclib)*Y(N)*state.rho - screened_rates(k_V49_p_to_Cr50_reaclib)*Y(H1)*state.rho - screened_rates(k_V49_p_to_He4_Ti46_reaclib)*Y(H1)*state.rho - screened_rates(k_V49_p_to_n_Cr49_derived)*Y(H1)*state.rho + screened_rates(k_V49_to_p_Ti48_derived); jac.set(H1, V49, scratch); - scratch = screened_rates(k_He4_V50_to_p_Cr53_reaclib)*Y(He4)*state.rho + screened_rates(k_V50_to_p_Ti49_reaclib) + screened_rates(k_n_V50_to_p_Ti50_reaclib)*Y(N)*state.rho - screened_rates(k_p_V50_to_Cr51_reaclib)*Y(H1)*state.rho - screened_rates(k_p_V50_to_He4_Ti47_reaclib)*Y(H1)*state.rho - screened_rates(k_p_V50_to_n_Cr50_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V50_He4_to_p_Cr53_reaclib)*Y(He4)*state.rho + screened_rates(k_V50_n_to_p_Ti50_reaclib)*Y(N)*state.rho - screened_rates(k_V50_p_to_Cr51_reaclib)*Y(H1)*state.rho - screened_rates(k_V50_p_to_He4_Ti47_reaclib)*Y(H1)*state.rho - screened_rates(k_V50_p_to_n_Cr50_reaclib)*Y(H1)*state.rho + screened_rates(k_V50_to_p_Ti49_derived); jac.set(H1, V50, scratch); - scratch = screened_rates(k_He4_V51_to_p_Cr54_reaclib)*Y(He4)*state.rho + screened_rates(k_V51_to_p_Ti50_reaclib) + screened_rates(k_n_V51_to_p_Ti51_reaclib)*Y(N)*state.rho - screened_rates(k_p_V51_to_Cr52_reaclib)*Y(H1)*state.rho - screened_rates(k_p_V51_to_He4_Ti48_reaclib)*Y(H1)*state.rho - screened_rates(k_p_V51_to_n_Cr51_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V51_He4_to_p_Cr54_derived)*Y(He4)*state.rho + screened_rates(k_V51_n_to_p_Ti51_derived)*Y(N)*state.rho - screened_rates(k_V51_p_to_Cr52_reaclib)*Y(H1)*state.rho - screened_rates(k_V51_p_to_He4_Ti48_reaclib)*Y(H1)*state.rho - screened_rates(k_V51_p_to_n_Cr51_derived)*Y(H1)*state.rho + screened_rates(k_V51_to_p_Ti50_derived); jac.set(H1, V51, scratch); - scratch = screened_rates(k_V52_to_p_Ti51_reaclib) - screened_rates(k_p_V52_to_Cr53_reaclib)*Y(H1)*state.rho - screened_rates(k_p_V52_to_He4_Ti49_reaclib)*Y(H1)*state.rho - screened_rates(k_p_V52_to_n_Cr52_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_V52_p_to_Cr53_reaclib)*Y(H1)*state.rho - screened_rates(k_V52_p_to_He4_Ti49_reaclib)*Y(H1)*state.rho - screened_rates(k_V52_p_to_n_Cr52_reaclib)*Y(H1)*state.rho + screened_rates(k_V52_to_p_Ti51_derived); jac.set(H1, V52, scratch); - scratch = screened_rates(k_Cr48_to_p_V47_reaclib) + screened_rates(k_He4_Cr48_to_p_Mn51_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cr48_to_p_V48_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cr48_He4_to_p_Mn51_reaclib)*Y(He4)*state.rho + screened_rates(k_Cr48_n_to_p_V48_reaclib)*Y(N)*state.rho + screened_rates(k_Cr48_to_p_V47_derived); jac.set(H1, Cr48, scratch); - scratch = screened_rates(k_Cr49_to_p_V48_reaclib) + screened_rates(k_He4_Cr49_to_p_Mn52_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cr49_to_p_V49_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cr49_to_He4_V46_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cr49_to_Mn50_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr49_He4_to_p_Mn52_reaclib)*Y(He4)*state.rho + screened_rates(k_Cr49_n_to_p_V49_reaclib)*Y(N)*state.rho - screened_rates(k_Cr49_p_to_He4_V46_derived)*Y(H1)*state.rho - screened_rates(k_Cr49_p_to_Mn50_reaclib)*Y(H1)*state.rho + screened_rates(k_Cr49_to_p_V48_derived); jac.set(H1, Cr49, scratch); - scratch = screened_rates(k_Cr50_to_p_V49_reaclib) + screened_rates(k_He4_Cr50_to_p_Mn53_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cr50_to_p_V50_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cr50_to_He4_V47_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cr50_to_Mn51_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cr50_to_n_Mn50_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr50_He4_to_p_Mn53_derived)*Y(He4)*state.rho + screened_rates(k_Cr50_n_to_p_V50_derived)*Y(N)*state.rho - screened_rates(k_Cr50_p_to_He4_V47_derived)*Y(H1)*state.rho - screened_rates(k_Cr50_p_to_Mn51_reaclib)*Y(H1)*state.rho - screened_rates(k_Cr50_p_to_n_Mn50_derived)*Y(H1)*state.rho + screened_rates(k_Cr50_to_p_V49_derived); jac.set(H1, Cr50, scratch); - scratch = screened_rates(k_Cr51_to_p_V50_reaclib) + screened_rates(k_He4_Cr51_to_p_Mn54_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cr51_to_p_V51_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cr51_to_He4_V48_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cr51_to_Mn52_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cr51_to_n_Mn51_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr51_He4_to_p_Mn54_derived)*Y(He4)*state.rho + screened_rates(k_Cr51_n_to_p_V51_reaclib)*Y(N)*state.rho - screened_rates(k_Cr51_p_to_He4_V48_derived)*Y(H1)*state.rho - screened_rates(k_Cr51_p_to_Mn52_reaclib)*Y(H1)*state.rho - screened_rates(k_Cr51_p_to_n_Mn51_derived)*Y(H1)*state.rho + screened_rates(k_Cr51_to_p_V50_derived); jac.set(H1, Cr51, scratch); - scratch = screened_rates(k_Cr52_to_p_V51_reaclib) + screened_rates(k_He4_Cr52_to_p_Mn55_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cr52_to_p_V52_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cr52_to_He4_V49_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cr52_to_Mn53_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cr52_to_n_Mn52_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr52_He4_to_p_Mn55_derived)*Y(He4)*state.rho + screened_rates(k_Cr52_n_to_p_V52_derived)*Y(N)*state.rho - screened_rates(k_Cr52_p_to_He4_V49_derived)*Y(H1)*state.rho - screened_rates(k_Cr52_p_to_Mn53_reaclib)*Y(H1)*state.rho - screened_rates(k_Cr52_p_to_n_Mn52_derived)*Y(H1)*state.rho + screened_rates(k_Cr52_to_p_V51_derived); jac.set(H1, Cr52, scratch); - scratch = screened_rates(k_Cr53_to_p_V52_reaclib) - screened_rates(k_p_Cr53_to_He4_V50_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cr53_to_Mn54_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cr53_to_n_Mn53_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cr53_p_to_He4_V50_derived)*Y(H1)*state.rho - screened_rates(k_Cr53_p_to_Mn54_reaclib)*Y(H1)*state.rho - screened_rates(k_Cr53_p_to_n_Mn53_derived)*Y(H1)*state.rho + screened_rates(k_Cr53_to_p_V52_derived); jac.set(H1, Cr53, scratch); - scratch = -screened_rates(k_p_Cr54_to_He4_V51_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cr54_to_Mn55_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cr54_to_n_Mn54_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cr54_p_to_He4_V51_reaclib)*Y(H1)*state.rho - screened_rates(k_Cr54_p_to_Mn55_reaclib)*Y(H1)*state.rho - screened_rates(k_Cr54_p_to_n_Mn54_derived)*Y(H1)*state.rho; jac.set(H1, Cr54, scratch); - scratch = screened_rates(k_He4_Mn50_to_p_Fe53_reaclib)*Y(He4)*state.rho + screened_rates(k_Mn50_to_p_Cr49_reaclib) + screened_rates(k_n_Mn50_to_p_Cr50_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mn50_He4_to_p_Fe53_reaclib)*Y(He4)*state.rho + screened_rates(k_Mn50_n_to_p_Cr50_reaclib)*Y(N)*state.rho + screened_rates(k_Mn50_to_p_Cr49_derived); jac.set(H1, Mn50, scratch); - scratch = screened_rates(k_He4_Mn51_to_p_Fe54_reaclib)*Y(He4)*state.rho + screened_rates(k_Mn51_to_p_Cr50_reaclib) + screened_rates(k_n_Mn51_to_p_Cr51_reaclib)*Y(N)*state.rho - screened_rates(k_p_Mn51_to_Fe52_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mn51_to_He4_Cr48_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mn51_He4_to_p_Fe54_reaclib)*Y(He4)*state.rho + screened_rates(k_Mn51_n_to_p_Cr51_reaclib)*Y(N)*state.rho - screened_rates(k_Mn51_p_to_Fe52_reaclib)*Y(H1)*state.rho - screened_rates(k_Mn51_p_to_He4_Cr48_derived)*Y(H1)*state.rho + screened_rates(k_Mn51_to_p_Cr50_derived); jac.set(H1, Mn51, scratch); - scratch = screened_rates(k_He4_Mn52_to_p_Fe55_reaclib)*Y(He4)*state.rho + screened_rates(k_Mn52_to_p_Cr51_reaclib) + screened_rates(k_n_Mn52_to_p_Cr52_reaclib)*Y(N)*state.rho - screened_rates(k_p_Mn52_to_Fe53_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mn52_to_He4_Cr49_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mn52_to_n_Fe52_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mn52_He4_to_p_Fe55_reaclib)*Y(He4)*state.rho + screened_rates(k_Mn52_n_to_p_Cr52_reaclib)*Y(N)*state.rho - screened_rates(k_Mn52_p_to_Fe53_reaclib)*Y(H1)*state.rho - screened_rates(k_Mn52_p_to_He4_Cr49_derived)*Y(H1)*state.rho - screened_rates(k_Mn52_p_to_n_Fe52_derived)*Y(H1)*state.rho + screened_rates(k_Mn52_to_p_Cr51_derived); jac.set(H1, Mn52, scratch); - scratch = screened_rates(k_He4_Mn53_to_p_Fe56_reaclib)*Y(He4)*state.rho + screened_rates(k_Mn53_to_p_Cr52_reaclib) + screened_rates(k_n_Mn53_to_p_Cr53_reaclib)*Y(N)*state.rho - screened_rates(k_p_Mn53_to_Fe54_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mn53_to_He4_Cr50_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mn53_to_n_Fe53_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mn53_He4_to_p_Fe56_reaclib)*Y(He4)*state.rho + screened_rates(k_Mn53_n_to_p_Cr53_reaclib)*Y(N)*state.rho - screened_rates(k_Mn53_p_to_Fe54_reaclib)*Y(H1)*state.rho - screened_rates(k_Mn53_p_to_He4_Cr50_reaclib)*Y(H1)*state.rho - screened_rates(k_Mn53_p_to_n_Fe53_derived)*Y(H1)*state.rho + screened_rates(k_Mn53_to_p_Cr52_derived); jac.set(H1, Mn53, scratch); - scratch = screened_rates(k_He4_Mn54_to_p_Fe57_reaclib)*Y(He4)*state.rho + screened_rates(k_Mn54_to_p_Cr53_reaclib) + screened_rates(k_n_Mn54_to_p_Cr54_reaclib)*Y(N)*state.rho - screened_rates(k_p_Mn54_to_Fe55_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mn54_to_He4_Cr51_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mn54_to_n_Fe54_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mn54_He4_to_p_Fe57_derived)*Y(He4)*state.rho + screened_rates(k_Mn54_n_to_p_Cr54_reaclib)*Y(N)*state.rho - screened_rates(k_Mn54_p_to_Fe55_reaclib)*Y(H1)*state.rho - screened_rates(k_Mn54_p_to_He4_Cr51_reaclib)*Y(H1)*state.rho - screened_rates(k_Mn54_p_to_n_Fe54_derived)*Y(H1)*state.rho + screened_rates(k_Mn54_to_p_Cr53_derived); jac.set(H1, Mn54, scratch); - scratch = screened_rates(k_He4_Mn55_to_p_Fe58_reaclib)*Y(He4)*state.rho + screened_rates(k_Mn55_to_p_Cr54_reaclib) - screened_rates(k_p_Mn55_to_Fe56_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mn55_to_He4_Cr52_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mn55_to_n_Fe55_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mn55_He4_to_p_Fe58_derived)*Y(He4)*state.rho - screened_rates(k_Mn55_p_to_Fe56_reaclib)*Y(H1)*state.rho - screened_rates(k_Mn55_p_to_He4_Cr52_reaclib)*Y(H1)*state.rho - screened_rates(k_Mn55_p_to_n_Fe55_derived)*Y(H1)*state.rho + screened_rates(k_Mn55_to_p_Cr54_derived); jac.set(H1, Mn55, scratch); - scratch = screened_rates(k_Fe52_to_p_Mn51_reaclib) + screened_rates(k_He4_Fe52_to_p_Co55_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Fe52_to_p_Mn52_reaclib)*Y(N)*state.rho - screened_rates(k_p_Fe52_to_Co53_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe52_He4_to_p_Co55_reaclib)*Y(He4)*state.rho + screened_rates(k_Fe52_n_to_p_Mn52_reaclib)*Y(N)*state.rho - screened_rates(k_Fe52_p_to_Co53_reaclib)*Y(H1)*state.rho + screened_rates(k_Fe52_to_p_Mn51_derived); jac.set(H1, Fe52, scratch); - scratch = screened_rates(k_Fe53_to_p_Mn52_reaclib) + screened_rates(k_He4_Fe53_to_p_Co56_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Fe53_to_p_Mn53_reaclib)*Y(N)*state.rho - screened_rates(k_p_Fe53_to_Co54_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Fe53_to_He4_Mn50_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Fe53_to_n_Co53_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe53_He4_to_p_Co56_reaclib)*Y(He4)*state.rho + screened_rates(k_Fe53_n_to_p_Mn53_reaclib)*Y(N)*state.rho - screened_rates(k_Fe53_p_to_Co54_reaclib)*Y(H1)*state.rho - screened_rates(k_Fe53_p_to_He4_Mn50_derived)*Y(H1)*state.rho - screened_rates(k_Fe53_p_to_n_Co53_derived)*Y(H1)*state.rho + screened_rates(k_Fe53_to_p_Mn52_derived); jac.set(H1, Fe53, scratch); - scratch = screened_rates(k_Fe54_to_p_Mn53_reaclib) + screened_rates(k_He4_Fe54_to_p_Co57_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Fe54_to_p_Mn54_reaclib)*Y(N)*state.rho - screened_rates(k_p_Fe54_to_Co55_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Fe54_to_He4_Mn51_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Fe54_to_n_Co54_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe54_He4_to_p_Co57_derived)*Y(He4)*state.rho + screened_rates(k_Fe54_n_to_p_Mn54_reaclib)*Y(N)*state.rho - screened_rates(k_Fe54_p_to_Co55_reaclib)*Y(H1)*state.rho - screened_rates(k_Fe54_p_to_He4_Mn51_derived)*Y(H1)*state.rho - screened_rates(k_Fe54_p_to_n_Co54_derived)*Y(H1)*state.rho + screened_rates(k_Fe54_to_p_Mn53_derived); jac.set(H1, Fe54, scratch); - scratch = screened_rates(k_Fe55_to_p_Mn54_reaclib) + screened_rates(k_He4_Fe55_to_p_Co58_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Fe55_to_p_Mn55_reaclib)*Y(N)*state.rho - screened_rates(k_p_Fe55_to_Co56_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Fe55_to_He4_Mn52_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Fe55_to_n_Co55_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe55_He4_to_p_Co58_derived)*Y(He4)*state.rho + screened_rates(k_Fe55_n_to_p_Mn55_reaclib)*Y(N)*state.rho - screened_rates(k_Fe55_p_to_Co56_reaclib)*Y(H1)*state.rho - screened_rates(k_Fe55_p_to_He4_Mn52_derived)*Y(H1)*state.rho - screened_rates(k_Fe55_p_to_n_Co55_derived)*Y(H1)*state.rho + screened_rates(k_Fe55_to_p_Mn54_derived); jac.set(H1, Fe55, scratch); - scratch = screened_rates(k_Fe56_to_p_Mn55_reaclib) + screened_rates(k_He4_Fe56_to_p_Co59_reaclib)*Y(He4)*state.rho - screened_rates(k_p_Fe56_to_Co57_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Fe56_to_He4_Mn53_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Fe56_to_n_Co56_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe56_He4_to_p_Co59_derived)*Y(He4)*state.rho - screened_rates(k_Fe56_p_to_Co57_reaclib)*Y(H1)*state.rho - screened_rates(k_Fe56_p_to_He4_Mn53_derived)*Y(H1)*state.rho - screened_rates(k_Fe56_p_to_n_Co56_derived)*Y(H1)*state.rho + screened_rates(k_Fe56_to_p_Mn55_derived); jac.set(H1, Fe56, scratch); - scratch = -screened_rates(k_p_Fe57_to_Co58_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Fe57_to_He4_Mn54_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Fe57_to_n_Co57_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Fe57_p_to_Co58_reaclib)*Y(H1)*state.rho - screened_rates(k_Fe57_p_to_He4_Mn54_reaclib)*Y(H1)*state.rho - screened_rates(k_Fe57_p_to_n_Co57_derived)*Y(H1)*state.rho; jac.set(H1, Fe57, scratch); - scratch = -screened_rates(k_p_Fe58_to_Co59_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Fe58_to_He4_Mn55_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Fe58_to_n_Co58_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Fe58_p_to_Co59_reaclib)*Y(H1)*state.rho - screened_rates(k_Fe58_p_to_He4_Mn55_reaclib)*Y(H1)*state.rho - screened_rates(k_Fe58_p_to_n_Co58_derived)*Y(H1)*state.rho; jac.set(H1, Fe58, scratch); - scratch = screened_rates(k_Co53_to_p_Fe52_reaclib) + screened_rates(k_He4_Co53_to_p_Ni56_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Co53_to_p_Fe53_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Co53_He4_to_p_Ni56_reaclib)*Y(He4)*state.rho + screened_rates(k_Co53_n_to_p_Fe53_reaclib)*Y(N)*state.rho + screened_rates(k_Co53_to_p_Fe52_derived); jac.set(H1, Co53, scratch); - scratch = screened_rates(k_Co54_to_p_Fe53_reaclib) + screened_rates(k_He4_Co54_to_p_Ni57_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Co54_to_p_Fe54_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Co54_He4_to_p_Ni57_reaclib)*Y(He4)*state.rho + screened_rates(k_Co54_n_to_p_Fe54_reaclib)*Y(N)*state.rho + screened_rates(k_Co54_to_p_Fe53_derived); jac.set(H1, Co54, scratch); - scratch = screened_rates(k_Co55_to_p_Fe54_reaclib) + screened_rates(k_He4_Co55_to_p_Ni58_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Co55_to_p_Fe55_reaclib)*Y(N)*state.rho - screened_rates(k_p_Co55_to_He4_Fe52_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Co55_to_Ni56_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Co55_He4_to_p_Ni58_reaclib)*Y(He4)*state.rho + screened_rates(k_Co55_n_to_p_Fe55_reaclib)*Y(N)*state.rho - screened_rates(k_Co55_p_to_He4_Fe52_derived)*Y(H1)*state.rho - screened_rates(k_Co55_p_to_Ni56_reaclib)*Y(H1)*state.rho + screened_rates(k_Co55_to_p_Fe54_derived); jac.set(H1, Co55, scratch); - scratch = screened_rates(k_Co56_to_p_Fe55_reaclib) + screened_rates(k_He4_Co56_to_p_Ni59_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Co56_to_p_Fe56_reaclib)*Y(N)*state.rho - screened_rates(k_p_Co56_to_He4_Fe53_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Co56_to_Ni57_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Co56_to_n_Ni56_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Co56_He4_to_p_Ni59_reaclib)*Y(He4)*state.rho + screened_rates(k_Co56_n_to_p_Fe56_reaclib)*Y(N)*state.rho - screened_rates(k_Co56_p_to_He4_Fe53_derived)*Y(H1)*state.rho - screened_rates(k_Co56_p_to_Ni57_reaclib)*Y(H1)*state.rho - screened_rates(k_Co56_p_to_n_Ni56_derived)*Y(H1)*state.rho + screened_rates(k_Co56_to_p_Fe55_derived); jac.set(H1, Co56, scratch); - scratch = screened_rates(k_Co57_to_p_Fe56_reaclib) + screened_rates(k_He4_Co57_to_p_Ni60_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Co57_to_p_Fe57_reaclib)*Y(N)*state.rho - screened_rates(k_p_Co57_to_He4_Fe54_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Co57_to_Ni58_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Co57_to_n_Ni57_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Co57_He4_to_p_Ni60_reaclib)*Y(He4)*state.rho + screened_rates(k_Co57_n_to_p_Fe57_reaclib)*Y(N)*state.rho - screened_rates(k_Co57_p_to_He4_Fe54_reaclib)*Y(H1)*state.rho - screened_rates(k_Co57_p_to_Ni58_reaclib)*Y(H1)*state.rho - screened_rates(k_Co57_p_to_n_Ni57_derived)*Y(H1)*state.rho + screened_rates(k_Co57_to_p_Fe56_derived); jac.set(H1, Co57, scratch); - scratch = screened_rates(k_Co58_to_p_Fe57_reaclib) + screened_rates(k_He4_Co58_to_p_Ni61_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Co58_to_p_Fe58_reaclib)*Y(N)*state.rho - screened_rates(k_p_Co58_to_He4_Fe55_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Co58_to_Ni59_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Co58_to_n_Ni58_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Co58_He4_to_p_Ni61_derived)*Y(He4)*state.rho + screened_rates(k_Co58_n_to_p_Fe58_reaclib)*Y(N)*state.rho - screened_rates(k_Co58_p_to_He4_Fe55_reaclib)*Y(H1)*state.rho - screened_rates(k_Co58_p_to_Ni59_reaclib)*Y(H1)*state.rho - screened_rates(k_Co58_p_to_n_Ni58_derived)*Y(H1)*state.rho + screened_rates(k_Co58_to_p_Fe57_derived); jac.set(H1, Co58, scratch); - scratch = screened_rates(k_Co59_to_p_Fe58_reaclib) + screened_rates(k_He4_Co59_to_p_Ni62_reaclib)*Y(He4)*state.rho - screened_rates(k_p_Co59_to_He4_Fe56_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Co59_to_Ni60_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Co59_to_n_Ni59_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Co59_He4_to_p_Ni62_derived)*Y(He4)*state.rho - screened_rates(k_Co59_p_to_He4_Fe56_reaclib)*Y(H1)*state.rho - screened_rates(k_Co59_p_to_Ni60_reaclib)*Y(H1)*state.rho - screened_rates(k_Co59_p_to_n_Ni59_derived)*Y(H1)*state.rho + screened_rates(k_Co59_to_p_Fe58_derived); jac.set(H1, Co59, scratch); - scratch = screened_rates(k_He4_Ni56_to_p_Cu59_reaclib)*Y(He4)*state.rho + screened_rates(k_Ni56_to_p_Co55_reaclib) + screened_rates(k_n_Ni56_to_p_Co56_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ni56_to_Cu57_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni56_to_He4_Co53_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni56_He4_to_p_Cu59_derived)*Y(He4)*state.rho + screened_rates(k_Ni56_n_to_p_Co56_reaclib)*Y(N)*state.rho - screened_rates(k_Ni56_p_to_Cu57_reaclib)*Y(H1)*state.rho - screened_rates(k_Ni56_p_to_He4_Co53_derived)*Y(H1)*state.rho + screened_rates(k_Ni56_to_p_Co55_derived); jac.set(H1, Ni56, scratch); - scratch = screened_rates(k_He4_Ni57_to_p_Cu60_reaclib)*Y(He4)*state.rho + screened_rates(k_Ni57_to_p_Co56_reaclib) + screened_rates(k_n_Ni57_to_p_Co57_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ni57_to_Cu58_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni57_to_He4_Co54_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni57_to_n_Cu57_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni57_He4_to_p_Cu60_derived)*Y(He4)*state.rho + screened_rates(k_Ni57_n_to_p_Co57_reaclib)*Y(N)*state.rho - screened_rates(k_Ni57_p_to_Cu58_reaclib)*Y(H1)*state.rho - screened_rates(k_Ni57_p_to_He4_Co54_derived)*Y(H1)*state.rho - screened_rates(k_Ni57_p_to_n_Cu57_derived)*Y(H1)*state.rho + screened_rates(k_Ni57_to_p_Co56_derived); jac.set(H1, Ni57, scratch); - scratch = screened_rates(k_He4_Ni58_to_p_Cu61_reaclib)*Y(He4)*state.rho + screened_rates(k_Ni58_to_p_Co57_reaclib) + screened_rates(k_n_Ni58_to_p_Co58_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ni58_to_Cu59_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni58_to_He4_Co55_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni58_to_n_Cu58_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni58_He4_to_p_Cu61_derived)*Y(He4)*state.rho + screened_rates(k_Ni58_n_to_p_Co58_reaclib)*Y(N)*state.rho - screened_rates(k_Ni58_p_to_Cu59_reaclib)*Y(H1)*state.rho - screened_rates(k_Ni58_p_to_He4_Co55_derived)*Y(H1)*state.rho - screened_rates(k_Ni58_p_to_n_Cu58_derived)*Y(H1)*state.rho + screened_rates(k_Ni58_to_p_Co57_derived); jac.set(H1, Ni58, scratch); - scratch = screened_rates(k_He4_Ni59_to_p_Cu62_reaclib)*Y(He4)*state.rho + screened_rates(k_Ni59_to_p_Co58_reaclib) + screened_rates(k_n_Ni59_to_p_Co59_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ni59_to_Cu60_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni59_to_He4_Co56_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni59_to_n_Cu59_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni59_He4_to_p_Cu62_derived)*Y(He4)*state.rho + screened_rates(k_Ni59_n_to_p_Co59_reaclib)*Y(N)*state.rho - screened_rates(k_Ni59_p_to_Cu60_reaclib)*Y(H1)*state.rho - screened_rates(k_Ni59_p_to_He4_Co56_derived)*Y(H1)*state.rho - screened_rates(k_Ni59_p_to_n_Cu59_derived)*Y(H1)*state.rho + screened_rates(k_Ni59_to_p_Co58_derived); jac.set(H1, Ni59, scratch); - scratch = screened_rates(k_He4_Ni60_to_p_Cu63_reaclib)*Y(He4)*state.rho + screened_rates(k_Ni60_to_p_Co59_reaclib) - screened_rates(k_p_Ni60_to_Cu61_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni60_to_He4_Co57_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni60_to_n_Cu60_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni60_He4_to_p_Cu63_derived)*Y(He4)*state.rho - screened_rates(k_Ni60_p_to_Cu61_reaclib)*Y(H1)*state.rho - screened_rates(k_Ni60_p_to_He4_Co57_derived)*Y(H1)*state.rho - screened_rates(k_Ni60_p_to_n_Cu60_derived)*Y(H1)*state.rho + screened_rates(k_Ni60_to_p_Co59_derived); jac.set(H1, Ni60, scratch); - scratch = screened_rates(k_He4_Ni61_to_p_Cu64_reaclib)*Y(He4)*state.rho - screened_rates(k_p_Ni61_to_Cu62_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni61_to_He4_Co58_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni61_to_n_Cu61_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni61_He4_to_p_Cu64_derived)*Y(He4)*state.rho - screened_rates(k_Ni61_p_to_Cu62_reaclib)*Y(H1)*state.rho - screened_rates(k_Ni61_p_to_He4_Co58_reaclib)*Y(H1)*state.rho - screened_rates(k_Ni61_p_to_n_Cu61_derived)*Y(H1)*state.rho; jac.set(H1, Ni61, scratch); - scratch = screened_rates(k_He4_Ni62_to_p_Cu65_reaclib)*Y(He4)*state.rho - screened_rates(k_p_Ni62_to_Cu63_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni62_to_He4_Co59_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni62_to_n_Cu62_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni62_He4_to_p_Cu65_derived)*Y(He4)*state.rho - screened_rates(k_Ni62_p_to_Cu63_reaclib)*Y(H1)*state.rho - screened_rates(k_Ni62_p_to_He4_Co59_reaclib)*Y(H1)*state.rho - screened_rates(k_Ni62_p_to_n_Cu62_derived)*Y(H1)*state.rho; jac.set(H1, Ni62, scratch); - scratch = -screened_rates(k_p_Ni63_to_Cu64_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni63_to_n_Cu63_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ni63_p_to_Cu64_reaclib)*Y(H1)*state.rho - screened_rates(k_Ni63_p_to_n_Cu63_derived)*Y(H1)*state.rho; jac.set(H1, Ni63, scratch); - scratch = -screened_rates(k_p_Ni64_to_Cu65_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni64_to_n_Cu64_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ni64_p_to_Cu65_reaclib)*Y(H1)*state.rho - screened_rates(k_Ni64_p_to_n_Cu64_derived)*Y(H1)*state.rho; jac.set(H1, Ni64, scratch); - scratch = screened_rates(k_Cu57_to_p_Ni56_reaclib) + screened_rates(k_He4_Cu57_to_p_Zn60_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cu57_to_p_Ni57_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cu57_He4_to_p_Zn60_reaclib)*Y(He4)*state.rho + screened_rates(k_Cu57_n_to_p_Ni57_reaclib)*Y(N)*state.rho + screened_rates(k_Cu57_to_p_Ni56_derived); jac.set(H1, Cu57, scratch); - scratch = screened_rates(k_Cu58_to_p_Ni57_reaclib) + screened_rates(k_He4_Cu58_to_p_Zn61_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cu58_to_p_Ni58_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cu58_to_Zn59_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu58_He4_to_p_Zn61_derived)*Y(He4)*state.rho + screened_rates(k_Cu58_n_to_p_Ni58_reaclib)*Y(N)*state.rho - screened_rates(k_Cu58_p_to_Zn59_reaclib)*Y(H1)*state.rho + screened_rates(k_Cu58_to_p_Ni57_derived); jac.set(H1, Cu58, scratch); - scratch = screened_rates(k_Cu59_to_p_Ni58_reaclib) + screened_rates(k_He4_Cu59_to_p_Zn62_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cu59_to_p_Ni59_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cu59_to_He4_Ni56_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu59_to_Zn60_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu59_to_n_Zn59_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu59_He4_to_p_Zn62_derived)*Y(He4)*state.rho + screened_rates(k_Cu59_n_to_p_Ni59_reaclib)*Y(N)*state.rho - screened_rates(k_Cu59_p_to_He4_Ni56_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu59_p_to_Zn60_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu59_p_to_n_Zn59_derived)*Y(H1)*state.rho + screened_rates(k_Cu59_to_p_Ni58_derived); jac.set(H1, Cu59, scratch); - scratch = screened_rates(k_Cu60_to_p_Ni59_reaclib) + screened_rates(k_He4_Cu60_to_p_Zn63_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cu60_to_p_Ni60_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cu60_to_He4_Ni57_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu60_to_Zn61_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu60_to_n_Zn60_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu60_He4_to_p_Zn63_derived)*Y(He4)*state.rho + screened_rates(k_Cu60_n_to_p_Ni60_reaclib)*Y(N)*state.rho - screened_rates(k_Cu60_p_to_He4_Ni57_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu60_p_to_Zn61_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu60_p_to_n_Zn60_derived)*Y(H1)*state.rho + screened_rates(k_Cu60_to_p_Ni59_derived); jac.set(H1, Cu60, scratch); - scratch = screened_rates(k_Cu61_to_p_Ni60_reaclib) + screened_rates(k_He4_Cu61_to_p_Zn64_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cu61_to_p_Ni61_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cu61_to_He4_Ni58_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu61_to_Zn62_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu61_to_n_Zn61_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu61_He4_to_p_Zn64_derived)*Y(He4)*state.rho + screened_rates(k_Cu61_n_to_p_Ni61_reaclib)*Y(N)*state.rho - screened_rates(k_Cu61_p_to_He4_Ni58_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu61_p_to_Zn62_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu61_p_to_n_Zn61_derived)*Y(H1)*state.rho + screened_rates(k_Cu61_to_p_Ni60_derived); jac.set(H1, Cu61, scratch); - scratch = screened_rates(k_Cu62_to_p_Ni61_reaclib) + screened_rates(k_He4_Cu62_to_p_Zn65_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cu62_to_p_Ni62_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cu62_to_He4_Ni59_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu62_to_Zn63_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu62_to_n_Zn62_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu62_He4_to_p_Zn65_derived)*Y(He4)*state.rho + screened_rates(k_Cu62_n_to_p_Ni62_reaclib)*Y(N)*state.rho - screened_rates(k_Cu62_p_to_He4_Ni59_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu62_p_to_Zn63_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu62_p_to_n_Zn62_derived)*Y(H1)*state.rho + screened_rates(k_Cu62_to_p_Ni61_derived); jac.set(H1, Cu62, scratch); - scratch = screened_rates(k_Cu63_to_p_Ni62_reaclib) + screened_rates(k_He4_Cu63_to_p_Zn66_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cu63_to_p_Ni63_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cu63_to_He4_Ni60_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu63_to_Zn64_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu63_to_n_Zn63_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu63_He4_to_p_Zn66_derived)*Y(He4)*state.rho + screened_rates(k_Cu63_n_to_p_Ni63_reaclib)*Y(N)*state.rho - screened_rates(k_Cu63_p_to_He4_Ni60_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu63_p_to_Zn64_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu63_p_to_n_Zn63_derived)*Y(H1)*state.rho + screened_rates(k_Cu63_to_p_Ni62_derived); jac.set(H1, Cu63, scratch); - scratch = screened_rates(k_Cu64_to_p_Ni63_reaclib) + screened_rates(k_n_Cu64_to_p_Ni64_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cu64_to_He4_Ni61_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu64_to_Zn65_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu64_to_n_Zn64_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu64_n_to_p_Ni64_reaclib)*Y(N)*state.rho - screened_rates(k_Cu64_p_to_He4_Ni61_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu64_p_to_Zn65_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu64_p_to_n_Zn64_derived)*Y(H1)*state.rho + screened_rates(k_Cu64_to_p_Ni63_derived); jac.set(H1, Cu64, scratch); - scratch = screened_rates(k_Cu65_to_p_Ni64_reaclib) - screened_rates(k_p_Cu65_to_He4_Ni62_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu65_to_Zn66_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu65_to_n_Zn65_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cu65_p_to_He4_Ni62_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu65_p_to_Zn66_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu65_p_to_n_Zn65_derived)*Y(H1)*state.rho + screened_rates(k_Cu65_to_p_Ni64_derived); jac.set(H1, Cu65, scratch); - scratch = screened_rates(k_He4_Zn59_to_p_Ga62_reaclib)*Y(He4)*state.rho + screened_rates(k_Zn59_to_p_Cu58_reaclib) + screened_rates(k_Zn59_to_p_Ni58_reaclib) + screened_rates(k_n_Zn59_to_p_Cu59_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Zn59_He4_to_p_Ga62_derived)*Y(He4)*state.rho + screened_rates(k_Zn59_n_to_p_Cu59_reaclib)*Y(N)*state.rho + screened_rates(k_Zn59_to_p_Cu58_derived) + screened_rates(k_Zn59_to_p_Ni58_beta_pos_reaclib); jac.set(H1, Zn59, scratch); - scratch = screened_rates(k_He4_Zn60_to_p_Ga63_reaclib)*Y(He4)*state.rho + screened_rates(k_Zn60_to_p_Cu59_reaclib) + screened_rates(k_n_Zn60_to_p_Cu60_reaclib)*Y(N)*state.rho - screened_rates(k_p_Zn60_to_He4_Cu57_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Zn60_He4_to_p_Ga63_derived)*Y(He4)*state.rho + screened_rates(k_Zn60_n_to_p_Cu60_reaclib)*Y(N)*state.rho - screened_rates(k_Zn60_p_to_He4_Cu57_derived)*Y(H1)*state.rho + screened_rates(k_Zn60_to_p_Cu59_derived); jac.set(H1, Zn60, scratch); - scratch = screened_rates(k_He4_Zn61_to_p_Ga64_reaclib)*Y(He4)*state.rho + screened_rates(k_Zn61_to_p_Cu60_reaclib) + screened_rates(k_n_Zn61_to_p_Cu61_reaclib)*Y(N)*state.rho - screened_rates(k_p_Zn61_to_Ga62_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Zn61_to_He4_Cu58_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Zn61_He4_to_p_Ga64_derived)*Y(He4)*state.rho + screened_rates(k_Zn61_n_to_p_Cu61_reaclib)*Y(N)*state.rho - screened_rates(k_Zn61_p_to_Ga62_reaclib)*Y(H1)*state.rho - screened_rates(k_Zn61_p_to_He4_Cu58_reaclib)*Y(H1)*state.rho + screened_rates(k_Zn61_to_p_Cu60_derived); jac.set(H1, Zn61, scratch); - scratch = screened_rates(k_Zn62_to_p_Cu61_reaclib) + screened_rates(k_n_Zn62_to_p_Cu62_reaclib)*Y(N)*state.rho - screened_rates(k_p_Zn62_to_Ga63_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Zn62_to_He4_Cu59_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Zn62_to_n_Ga62_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Zn62_n_to_p_Cu62_reaclib)*Y(N)*state.rho - screened_rates(k_Zn62_p_to_Ga63_reaclib)*Y(H1)*state.rho - screened_rates(k_Zn62_p_to_He4_Cu59_reaclib)*Y(H1)*state.rho - screened_rates(k_Zn62_p_to_n_Ga62_derived)*Y(H1)*state.rho + screened_rates(k_Zn62_to_p_Cu61_derived); jac.set(H1, Zn62, scratch); - scratch = screened_rates(k_Zn63_to_p_Cu62_reaclib) + screened_rates(k_n_Zn63_to_p_Cu63_reaclib)*Y(N)*state.rho - screened_rates(k_p_Zn63_to_Ga64_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Zn63_to_He4_Cu60_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Zn63_to_n_Ga63_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Zn63_n_to_p_Cu63_reaclib)*Y(N)*state.rho - screened_rates(k_Zn63_p_to_Ga64_reaclib)*Y(H1)*state.rho - screened_rates(k_Zn63_p_to_He4_Cu60_reaclib)*Y(H1)*state.rho - screened_rates(k_Zn63_p_to_n_Ga63_derived)*Y(H1)*state.rho + screened_rates(k_Zn63_to_p_Cu62_derived); jac.set(H1, Zn63, scratch); - scratch = screened_rates(k_Zn64_to_p_Cu63_reaclib) + screened_rates(k_n_Zn64_to_p_Cu64_reaclib)*Y(N)*state.rho - screened_rates(k_p_Zn64_to_He4_Cu61_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Zn64_to_n_Ga64_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Zn64_n_to_p_Cu64_reaclib)*Y(N)*state.rho - screened_rates(k_Zn64_p_to_He4_Cu61_reaclib)*Y(H1)*state.rho - screened_rates(k_Zn64_p_to_n_Ga64_derived)*Y(H1)*state.rho + screened_rates(k_Zn64_to_p_Cu63_derived); jac.set(H1, Zn64, scratch); - scratch = screened_rates(k_Zn65_to_p_Cu64_reaclib) + screened_rates(k_n_Zn65_to_p_Cu65_reaclib)*Y(N)*state.rho - screened_rates(k_p_Zn65_to_He4_Cu62_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Zn65_n_to_p_Cu65_reaclib)*Y(N)*state.rho - screened_rates(k_Zn65_p_to_He4_Cu62_reaclib)*Y(H1)*state.rho + screened_rates(k_Zn65_to_p_Cu64_derived); jac.set(H1, Zn65, scratch); - scratch = screened_rates(k_Zn66_to_p_Cu65_reaclib) - screened_rates(k_p_Zn66_to_He4_Cu63_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Zn66_p_to_He4_Cu63_reaclib)*Y(H1)*state.rho + screened_rates(k_Zn66_to_p_Cu65_derived); jac.set(H1, Zn66, scratch); - scratch = screened_rates(k_Ga62_to_p_Zn61_reaclib) + screened_rates(k_n_Ga62_to_p_Zn62_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ga62_to_Ge63_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ga62_to_He4_Zn59_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ga62_n_to_p_Zn62_reaclib)*Y(N)*state.rho - screened_rates(k_Ga62_p_to_Ge63_reaclib)*Y(H1)*state.rho - screened_rates(k_Ga62_p_to_He4_Zn59_reaclib)*Y(H1)*state.rho + screened_rates(k_Ga62_to_p_Zn61_derived); jac.set(H1, Ga62, scratch); - scratch = screened_rates(k_Ga63_to_p_Zn62_reaclib) + screened_rates(k_n_Ga63_to_p_Zn63_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ga63_to_Ge64_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ga63_to_He4_Zn60_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ga63_to_n_Ge63_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ga63_n_to_p_Zn63_reaclib)*Y(N)*state.rho - screened_rates(k_Ga63_p_to_Ge64_reaclib)*Y(H1)*state.rho - screened_rates(k_Ga63_p_to_He4_Zn60_reaclib)*Y(H1)*state.rho - screened_rates(k_Ga63_p_to_n_Ge63_derived)*Y(H1)*state.rho + screened_rates(k_Ga63_to_p_Zn62_derived); jac.set(H1, Ga63, scratch); - scratch = screened_rates(k_Ga64_to_p_Zn63_reaclib) + screened_rates(k_n_Ga64_to_p_Zn64_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ga64_to_He4_Zn61_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ga64_to_n_Ge64_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ga64_n_to_p_Zn64_reaclib)*Y(N)*state.rho - screened_rates(k_Ga64_p_to_He4_Zn61_reaclib)*Y(H1)*state.rho - screened_rates(k_Ga64_p_to_n_Ge64_derived)*Y(H1)*state.rho + screened_rates(k_Ga64_to_p_Zn63_derived); jac.set(H1, Ga64, scratch); - scratch = screened_rates(k_Ge63_to_p_Ga62_reaclib) + screened_rates(k_n_Ge63_to_p_Ga63_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ge63_n_to_p_Ga63_reaclib)*Y(N)*state.rho + screened_rates(k_Ge63_to_p_Ga62_derived); jac.set(H1, Ge63, scratch); - scratch = screened_rates(k_Ge64_to_p_Ga63_reaclib) + screened_rates(k_n_Ge64_to_p_Ga64_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ge64_n_to_p_Ga64_reaclib)*Y(N)*state.rho + screened_rates(k_Ge64_to_p_Ga63_derived); jac.set(H1, Ge64, scratch); - scratch = screened_rates(k_n_Be7_to_d_Li6_reaclib)*Y(Be7)*state.rho + 2.0*screened_rates(k_n_He3_to_d_d_reaclib)*Y(He3)*state.rho + 0.5*screened_rates(k_n_He4_He4_to_d_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) + screened_rates(k_n_N14_to_d_C13_reaclib)*Y(N14)*state.rho + screened_rates(k_n_N15_to_d_C14_reaclib)*Y(N15)*state.rho + 0.5*screened_rates(k_n_p_p_to_p_d_reaclib)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho) + screened_rates(k_n_p_to_d_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Be7_n_to_d_Li6_derived)*Y(Be7)*state.rho + 2.0*screened_rates(k_He3_n_to_d_d_derived)*Y(He3)*state.rho + 0.5*screened_rates(k_He4_He4_n_to_d_Li7_derived)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) + screened_rates(k_N14_n_to_d_C13_derived)*Y(N14)*state.rho + screened_rates(k_N15_n_to_d_C14_derived)*Y(N15)*state.rho + screened_rates(k_p_n_to_d_reaclib)*Y(H1)*state.rho + 0.5*screened_rates(k_p_p_n_to_p_d_reaclib)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho); jac.set(H2, N, scratch); - scratch = 1.0*screened_rates(k_n_p_p_to_p_d_reaclib)*Y(N)*Y(H1)*amrex::Math::powi<2>(state.rho) + screened_rates(k_n_p_to_d_reaclib)*Y(N)*state.rho + screened_rates(k_p_Be9_to_d_He4_He4_reaclib)*Y(Be9)*state.rho + 0.5*screened_rates(k_p_He4_He4_to_d_Be7_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) + screened_rates(k_p_He4_to_d_He3_reaclib)*Y(He4)*state.rho + screened_rates(k_p_Li7_to_d_Li6_reaclib)*Y(Li7)*state.rho - screened_rates(k_p_d_to_He3_reaclib)*Y(H2)*state.rho - screened_rates(k_p_d_to_n_p_p_reaclib)*Y(H2)*state.rho + 1.0*screened_rates(k_p_p_to_d_reaclib_beta_pos)*Y(H1)*state.rho + 1.0*screened_rates(k_p_p_to_d_reaclib_electron_capture)*Y(H1)*amrex::Math::powi<2>(state.rho)*state.y_e; + scratch = screened_rates(k_Be9_p_to_d_He4_He4_reaclib)*Y(Be9)*state.rho + 0.5*screened_rates(k_He4_He4_p_to_d_Be7_derived)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) + screened_rates(k_He4_p_to_d_He3_derived)*Y(He4)*state.rho + screened_rates(k_Li7_p_to_d_Li6_derived)*Y(Li7)*state.rho - screened_rates(k_d_p_to_He3_reaclib)*Y(H2)*state.rho - screened_rates(k_d_p_to_n_p_p_derived)*Y(H2)*state.rho + screened_rates(k_p_n_to_d_reaclib)*Y(N)*state.rho + 1.0*screened_rates(k_p_p_n_to_p_d_reaclib)*Y(N)*Y(H1)*amrex::Math::powi<2>(state.rho) + 1.0*screened_rates(k_p_p_to_d_beta_pos_reaclib)*Y(H1)*state.rho + 1.0*screened_rates(k_p_p_to_d_electron_capture_reaclib)*Y(H1)*amrex::Math::powi<2>(state.rho)*state.y_e; jac.set(H2, H1, scratch); - scratch = -screened_rates(k_He4_d_to_Li6_reaclib)*Y(He4)*state.rho - screened_rates(k_d_Be7_to_p_He4_He4_reaclib)*Y(Be7)*state.rho - screened_rates(k_d_C13_to_n_N14_reaclib)*Y(C13)*state.rho - screened_rates(k_d_C14_to_n_N15_reaclib)*Y(C14)*state.rho - screened_rates(k_d_He3_to_p_He4_reaclib)*Y(He3)*state.rho - 0.5*screened_rates(k_d_He4_He4_to_p_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - screened_rates(k_d_Li6_to_n_Be7_reaclib)*Y(Li6)*state.rho - screened_rates(k_d_Li6_to_p_Li7_reaclib)*Y(Li6)*state.rho - screened_rates(k_d_Li7_to_n_He4_He4_reaclib)*Y(Li7)*state.rho - 2.0*screened_rates(k_d_d_to_He4_reaclib)*Y(H2)*state.rho - 2.0*screened_rates(k_d_d_to_n_He3_reaclib)*Y(H2)*state.rho - screened_rates(k_d_to_n_p_reaclib) - screened_rates(k_p_d_to_He3_reaclib)*Y(H1)*state.rho - screened_rates(k_p_d_to_n_p_p_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Be7_d_to_p_He4_He4_reaclib)*Y(Be7)*state.rho - screened_rates(k_C13_d_to_n_N14_reaclib)*Y(C13)*state.rho - screened_rates(k_C14_d_to_n_N15_reaclib)*Y(C14)*state.rho - screened_rates(k_He3_d_to_p_He4_reaclib)*Y(He3)*state.rho - screened_rates(k_Li6_d_to_n_Be7_reaclib)*Y(Li6)*state.rho - screened_rates(k_Li6_d_to_p_Li7_reaclib)*Y(Li6)*state.rho - screened_rates(k_Li7_d_to_n_He4_He4_reaclib)*Y(Li7)*state.rho - 0.5*screened_rates(k_d_He4_He4_to_p_Be9_derived)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - screened_rates(k_d_He4_to_Li6_reaclib)*Y(He4)*state.rho - 2.0*screened_rates(k_d_d_to_He4_reaclib)*Y(H2)*state.rho - 2.0*screened_rates(k_d_d_to_n_He3_reaclib)*Y(H2)*state.rho - screened_rates(k_d_p_to_He3_reaclib)*Y(H1)*state.rho - screened_rates(k_d_p_to_n_p_p_derived)*Y(H1)*state.rho - screened_rates(k_d_to_n_p_derived); jac.set(H2, H2, scratch); - scratch = screened_rates(k_He3_to_p_d_reaclib) - screened_rates(k_d_He3_to_p_He4_reaclib)*Y(H2)*state.rho + 2.0*screened_rates(k_n_He3_to_d_d_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_He3_d_to_p_He4_reaclib)*Y(H2)*state.rho + 2.0*screened_rates(k_He3_n_to_d_d_derived)*Y(N)*state.rho + screened_rates(k_He3_to_p_d_derived); jac.set(H2, He3, scratch); - scratch = -screened_rates(k_He4_d_to_Li6_reaclib)*Y(H2)*state.rho + 2.0*screened_rates(k_He4_to_d_d_reaclib) - 1.0*screened_rates(k_d_He4_He4_to_p_Be9_reaclib)*Y(He4)*Y(H2)*amrex::Math::powi<2>(state.rho) + 1.0*screened_rates(k_n_He4_He4_to_d_Li7_reaclib)*Y(He4)*Y(N)*amrex::Math::powi<2>(state.rho) + 1.0*screened_rates(k_p_He4_He4_to_d_Be7_reaclib)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho) + screened_rates(k_p_He4_to_d_He3_reaclib)*Y(H1)*state.rho; + scratch = 1.0*screened_rates(k_He4_He4_n_to_d_Li7_derived)*Y(He4)*Y(N)*amrex::Math::powi<2>(state.rho) + 1.0*screened_rates(k_He4_He4_p_to_d_Be7_derived)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho) + screened_rates(k_He4_p_to_d_He3_derived)*Y(H1)*state.rho + 2.0*screened_rates(k_He4_to_d_d_derived) - 1.0*screened_rates(k_d_He4_He4_to_p_Be9_derived)*Y(He4)*Y(H2)*amrex::Math::powi<2>(state.rho) - screened_rates(k_d_He4_to_Li6_reaclib)*Y(H2)*state.rho; jac.set(H2, He4, scratch); - scratch = screened_rates(k_Li6_to_He4_d_reaclib) - screened_rates(k_d_Li6_to_n_Be7_reaclib)*Y(H2)*state.rho - screened_rates(k_d_Li6_to_p_Li7_reaclib)*Y(H2)*state.rho; + scratch = -screened_rates(k_Li6_d_to_n_Be7_reaclib)*Y(H2)*state.rho - screened_rates(k_Li6_d_to_p_Li7_reaclib)*Y(H2)*state.rho + screened_rates(k_Li6_to_He4_d_derived); jac.set(H2, Li6, scratch); - scratch = -screened_rates(k_d_Li7_to_n_He4_He4_reaclib)*Y(H2)*state.rho + screened_rates(k_p_Li7_to_d_Li6_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Li7_d_to_n_He4_He4_reaclib)*Y(H2)*state.rho + screened_rates(k_Li7_p_to_d_Li6_derived)*Y(H1)*state.rho; jac.set(H2, Li7, scratch); - scratch = -screened_rates(k_d_Be7_to_p_He4_He4_reaclib)*Y(H2)*state.rho + screened_rates(k_n_Be7_to_d_Li6_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Be7_d_to_p_He4_He4_reaclib)*Y(H2)*state.rho + screened_rates(k_Be7_n_to_d_Li6_derived)*Y(N)*state.rho; jac.set(H2, Be7, scratch); - scratch = screened_rates(k_p_Be9_to_d_He4_He4_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Be9_p_to_d_He4_He4_reaclib)*Y(H1)*state.rho; jac.set(H2, Be9, scratch); jac.set(H2, B8, 0.0); @@ -10143,18 +7952,18 @@ void jac_nuc(const burn_t& state, jac.set(H2, C12, 0.0); - scratch = -screened_rates(k_d_C13_to_n_N14_reaclib)*Y(H2)*state.rho; + scratch = -screened_rates(k_C13_d_to_n_N14_reaclib)*Y(H2)*state.rho; jac.set(H2, C13, scratch); - scratch = -screened_rates(k_d_C14_to_n_N15_reaclib)*Y(H2)*state.rho; + scratch = -screened_rates(k_C14_d_to_n_N15_reaclib)*Y(H2)*state.rho; jac.set(H2, C14, scratch); jac.set(H2, N13, 0.0); - scratch = screened_rates(k_n_N14_to_d_C13_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_N14_n_to_d_C13_derived)*Y(N)*state.rho; jac.set(H2, N14, scratch); - scratch = screened_rates(k_n_N15_to_d_C14_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_N15_n_to_d_C14_derived)*Y(N)*state.rho; jac.set(H2, N15, scratch); jac.set(H2, O14, 0.0); @@ -10441,28 +8250,28 @@ void jac_nuc(const burn_t& state, jac.set(H2, Ge64, 0.0); - scratch = -screened_rates(k_n_He3_to_He4_reaclib)*Y(He3)*state.rho - screened_rates(k_n_He3_to_d_d_reaclib)*Y(He3)*state.rho + 0.5*screened_rates(k_n_p_He4_He4_to_He3_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<3>(state.rho); + scratch = -screened_rates(k_He3_n_to_He4_reaclib)*Y(He3)*state.rho - screened_rates(k_He3_n_to_d_d_derived)*Y(He3)*state.rho + 0.5*screened_rates(k_He4_He4_p_n_to_He3_Li7_derived)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<3>(state.rho); jac.set(He3, N, scratch); - scratch = 0.5*screened_rates(k_n_p_He4_He4_to_He3_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<3>(state.rho) - screened_rates(k_p_He3_to_He4_reaclib)*Y(He3)*state.rho + screened_rates(k_p_He4_to_d_He3_reaclib)*Y(He4)*state.rho + screened_rates(k_p_Li6_to_He4_He3_reaclib)*Y(Li6)*state.rho + screened_rates(k_p_d_to_He3_reaclib)*Y(H2)*state.rho + 0.5*screened_rates(k_p_p_He4_He4_to_He3_Be7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<3>(state.rho) + 2.0*screened_rates(k_p_p_He4_to_He3_He3_reaclib)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho); + scratch = -screened_rates(k_He3_p_to_He4_beta_pos_reaclib)*Y(He3)*state.rho + 0.5*screened_rates(k_He4_He4_p_n_to_He3_Li7_derived)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<3>(state.rho) + 0.5*screened_rates(k_He4_He4_p_p_to_He3_Be7_derived)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<3>(state.rho) + 2.0*screened_rates(k_He4_p_p_to_He3_He3_derived)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho) + screened_rates(k_He4_p_to_d_He3_derived)*Y(He4)*state.rho + screened_rates(k_Li6_p_to_He4_He3_reaclib)*Y(Li6)*state.rho + screened_rates(k_d_p_to_He3_reaclib)*Y(H2)*state.rho; jac.set(He3, H1, scratch); - scratch = -screened_rates(k_d_He3_to_p_He4_reaclib)*Y(He3)*state.rho + 1.0*screened_rates(k_d_d_to_n_He3_reaclib)*Y(H2)*state.rho + screened_rates(k_p_d_to_He3_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_He3_d_to_p_He4_reaclib)*Y(He3)*state.rho + 1.0*screened_rates(k_d_d_to_n_He3_reaclib)*Y(H2)*state.rho + screened_rates(k_d_p_to_He3_reaclib)*Y(H1)*state.rho; jac.set(He3, H2, scratch); - scratch = -screened_rates(k_He3_Be7_to_p_p_He4_He4_reaclib)*Y(Be7)*state.rho - 2.0*screened_rates(k_He3_He3_to_p_p_He4_reaclib)*Y(He3)*state.rho - screened_rates(k_He3_Li7_to_n_p_He4_He4_reaclib)*Y(Li7)*state.rho - screened_rates(k_He3_to_p_d_reaclib) - screened_rates(k_He4_He3_to_Be7_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_He3_to_p_Li6_reaclib)*Y(He4)*state.rho - screened_rates(k_d_He3_to_p_He4_reaclib)*Y(H2)*state.rho - screened_rates(k_n_He3_to_He4_reaclib)*Y(N)*state.rho - screened_rates(k_n_He3_to_d_d_reaclib)*Y(N)*state.rho - screened_rates(k_p_He3_to_He4_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Be7_He3_to_p_p_He4_He4_reaclib)*Y(Be7)*state.rho - 2.0*screened_rates(k_He3_He3_to_p_p_He4_reaclib)*Y(He3)*state.rho - screened_rates(k_He3_He4_to_Be7_reaclib)*Y(He4)*state.rho - screened_rates(k_He3_He4_to_p_Li6_derived)*Y(He4)*state.rho - screened_rates(k_He3_d_to_p_He4_reaclib)*Y(H2)*state.rho - screened_rates(k_He3_n_to_He4_reaclib)*Y(N)*state.rho - screened_rates(k_He3_n_to_d_d_derived)*Y(N)*state.rho - screened_rates(k_He3_p_to_He4_beta_pos_reaclib)*Y(H1)*state.rho - screened_rates(k_He3_to_p_d_derived) - screened_rates(k_Li7_He3_to_n_p_He4_He4_reaclib)*Y(Li7)*state.rho; jac.set(He3, He3, scratch); - scratch = -screened_rates(k_He4_He3_to_Be7_reaclib)*Y(He3)*state.rho - screened_rates(k_He4_He3_to_p_Li6_reaclib)*Y(He3)*state.rho + screened_rates(k_He4_to_n_He3_reaclib) + 1.0*screened_rates(k_n_p_He4_He4_to_He3_Li7_reaclib)*Y(He4)*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho) + screened_rates(k_p_He4_to_d_He3_reaclib)*Y(H1)*state.rho + 0.5*screened_rates(k_p_p_He4_He4_to_He3_Be7_reaclib)*Y(He4)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<3>(state.rho) + screened_rates(k_p_p_He4_to_He3_He3_reaclib)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho); + scratch = -screened_rates(k_He3_He4_to_Be7_reaclib)*Y(He3)*state.rho - screened_rates(k_He3_He4_to_p_Li6_derived)*Y(He3)*state.rho + 1.0*screened_rates(k_He4_He4_p_n_to_He3_Li7_derived)*Y(He4)*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho) + 0.5*screened_rates(k_He4_He4_p_p_to_He3_Be7_derived)*Y(He4)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<3>(state.rho) + screened_rates(k_He4_p_p_to_He3_He3_derived)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho) + screened_rates(k_He4_p_to_d_He3_derived)*Y(H1)*state.rho + screened_rates(k_He4_to_n_He3_derived); jac.set(He3, He4, scratch); - scratch = screened_rates(k_p_Li6_to_He4_He3_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Li6_p_to_He4_He3_reaclib)*Y(H1)*state.rho; jac.set(He3, Li6, scratch); - scratch = -screened_rates(k_He3_Li7_to_n_p_He4_He4_reaclib)*Y(He3)*state.rho; + scratch = -screened_rates(k_Li7_He3_to_n_p_He4_He4_reaclib)*Y(He3)*state.rho; jac.set(He3, Li7, scratch); - scratch = screened_rates(k_Be7_to_He4_He3_reaclib) - screened_rates(k_He3_Be7_to_p_p_He4_He4_reaclib)*Y(He3)*state.rho; + scratch = -screened_rates(k_Be7_He3_to_p_p_He4_He4_reaclib)*Y(He3)*state.rho + screened_rates(k_Be7_to_He4_He3_derived); jac.set(He3, Be7, scratch); jac.set(He3, Be9, 0.0); @@ -10769,515 +8578,515 @@ void jac_nuc(const burn_t& state, jac.set(He3, Ge64, 0.0); - scratch = screened_rates(k_n_Al25_to_He4_Na22_reaclib)*Y(Al25)*state.rho + screened_rates(k_n_Al26_to_He4_Na23_reaclib)*Y(Al26)*state.rho + screened_rates(k_n_Ar36_to_He4_S33_reaclib)*Y(Ar36)*state.rho + screened_rates(k_n_Ar37_to_He4_S34_reaclib)*Y(Ar37)*state.rho + screened_rates(k_n_Ar38_to_He4_S35_reaclib)*Y(Ar38)*state.rho + screened_rates(k_n_Ar39_to_He4_S36_reaclib)*Y(Ar39)*state.rho + screened_rates(k_n_B10_to_He4_Li7_reaclib)*Y(B10)*state.rho + 2.0*screened_rates(k_n_B8_to_p_He4_He4_reaclib)*Y(B8)*state.rho + 2.0*screened_rates(k_n_Be7_to_He4_He4_reaclib)*Y(Be7)*state.rho + screened_rates(k_n_C12_to_He4_Be9_reaclib)*Y(C12)*state.rho + screened_rates(k_n_Ca40_to_He4_Ar37_reaclib)*Y(Ca40)*state.rho + screened_rates(k_n_Ca41_to_He4_Ar38_reaclib)*Y(Ca41)*state.rho + screened_rates(k_n_Ca42_to_He4_Ar39_reaclib)*Y(Ca42)*state.rho + screened_rates(k_n_Ca43_to_He4_Ar40_reaclib)*Y(Ca43)*state.rho + screened_rates(k_n_Cl33_to_He4_P30_reaclib)*Y(Cl33)*state.rho + screened_rates(k_n_Cl34_to_He4_P31_reaclib)*Y(Cl34)*state.rho + screened_rates(k_n_Cl35_to_He4_P32_reaclib)*Y(Cl35)*state.rho + screened_rates(k_n_Cl36_to_He4_P33_reaclib)*Y(Cl36)*state.rho + screened_rates(k_n_Co53_to_He4_Mn50_reaclib)*Y(Co53)*state.rho + screened_rates(k_n_Co54_to_He4_Mn51_reaclib)*Y(Co54)*state.rho + screened_rates(k_n_Co55_to_He4_Mn52_reaclib)*Y(Co55)*state.rho + screened_rates(k_n_Co56_to_He4_Mn53_reaclib)*Y(Co56)*state.rho + screened_rates(k_n_Co57_to_He4_Mn54_reaclib)*Y(Co57)*state.rho + screened_rates(k_n_Co58_to_He4_Mn55_reaclib)*Y(Co58)*state.rho + screened_rates(k_n_Cr48_to_He4_Ti45_reaclib)*Y(Cr48)*state.rho + screened_rates(k_n_Cr49_to_He4_Ti46_reaclib)*Y(Cr49)*state.rho + screened_rates(k_n_Cr50_to_He4_Ti47_reaclib)*Y(Cr50)*state.rho + screened_rates(k_n_Cr51_to_He4_Ti48_reaclib)*Y(Cr51)*state.rho + screened_rates(k_n_Cr52_to_He4_Ti49_reaclib)*Y(Cr52)*state.rho + screened_rates(k_n_Cr53_to_He4_Ti50_reaclib)*Y(Cr53)*state.rho + screened_rates(k_n_Cr54_to_He4_Ti51_reaclib)*Y(Cr54)*state.rho + screened_rates(k_n_Cu57_to_He4_Co54_reaclib)*Y(Cu57)*state.rho + screened_rates(k_n_Cu58_to_He4_Co55_reaclib)*Y(Cu58)*state.rho + screened_rates(k_n_Cu59_to_He4_Co56_reaclib)*Y(Cu59)*state.rho + screened_rates(k_n_Cu60_to_He4_Co57_reaclib)*Y(Cu60)*state.rho + screened_rates(k_n_Cu61_to_He4_Co58_reaclib)*Y(Cu61)*state.rho + screened_rates(k_n_Cu62_to_He4_Co59_reaclib)*Y(Cu62)*state.rho + screened_rates(k_n_F17_to_He4_N14_reaclib)*Y(F17)*state.rho + screened_rates(k_n_F18_to_He4_N15_reaclib)*Y(F18)*state.rho + screened_rates(k_n_Fe52_to_He4_Cr49_reaclib)*Y(Fe52)*state.rho + screened_rates(k_n_Fe53_to_He4_Cr50_reaclib)*Y(Fe53)*state.rho + screened_rates(k_n_Fe54_to_He4_Cr51_reaclib)*Y(Fe54)*state.rho + screened_rates(k_n_Fe55_to_He4_Cr52_reaclib)*Y(Fe55)*state.rho + screened_rates(k_n_Fe56_to_He4_Cr53_reaclib)*Y(Fe56)*state.rho + screened_rates(k_n_Fe57_to_He4_Cr54_reaclib)*Y(Fe57)*state.rho + screened_rates(k_n_Ga62_to_He4_Cu59_reaclib)*Y(Ga62)*state.rho + screened_rates(k_n_Ga63_to_He4_Cu60_reaclib)*Y(Ga63)*state.rho + screened_rates(k_n_Ga64_to_He4_Cu61_reaclib)*Y(Ga64)*state.rho + screened_rates(k_n_Ge63_to_He4_Zn60_reaclib)*Y(Ge63)*state.rho + screened_rates(k_n_Ge64_to_He4_Zn61_reaclib)*Y(Ge64)*state.rho + screened_rates(k_n_He3_to_He4_reaclib)*Y(He3)*state.rho - screened_rates(k_n_He4_He4_to_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - screened_rates(k_n_He4_He4_to_d_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) + screened_rates(k_n_K37_to_He4_Cl34_reaclib)*Y(K37)*state.rho + screened_rates(k_n_K38_to_He4_Cl35_reaclib)*Y(K38)*state.rho + screened_rates(k_n_K39_to_He4_Cl36_reaclib)*Y(K39)*state.rho + screened_rates(k_n_K40_to_He4_Cl37_reaclib)*Y(K40)*state.rho + screened_rates(k_n_Mg23_to_He4_Ne20_reaclib)*Y(Mg23)*state.rho + screened_rates(k_n_Mg24_to_He4_Ne21_reaclib)*Y(Mg24)*state.rho + screened_rates(k_n_Mg25_to_He4_Ne22_reaclib)*Y(Mg25)*state.rho + screened_rates(k_n_Mn50_to_He4_V47_reaclib)*Y(Mn50)*state.rho + screened_rates(k_n_Mn51_to_He4_V48_reaclib)*Y(Mn51)*state.rho + screened_rates(k_n_Mn52_to_He4_V49_reaclib)*Y(Mn52)*state.rho + screened_rates(k_n_Mn53_to_He4_V50_reaclib)*Y(Mn53)*state.rho + screened_rates(k_n_Mn54_to_He4_V51_reaclib)*Y(Mn54)*state.rho + screened_rates(k_n_Mn55_to_He4_V52_reaclib)*Y(Mn55)*state.rho + screened_rates(k_n_N13_to_He4_B10_reaclib)*Y(N13)*state.rho + screened_rates(k_n_N14_to_He4_B11_reaclib)*Y(N14)*state.rho + screened_rates(k_n_Na21_to_He4_F18_reaclib)*Y(Na21)*state.rho + screened_rates(k_n_Na22_to_He4_F19_reaclib)*Y(Na22)*state.rho + screened_rates(k_n_Ne18_to_He4_O15_reaclib)*Y(Ne18)*state.rho + screened_rates(k_n_Ne19_to_He4_O16_reaclib)*Y(Ne19)*state.rho + screened_rates(k_n_Ne20_to_He4_O17_reaclib)*Y(Ne20)*state.rho + screened_rates(k_n_Ne21_to_He4_O18_reaclib)*Y(Ne21)*state.rho + screened_rates(k_n_Ni56_to_He4_Fe53_reaclib)*Y(Ni56)*state.rho + screened_rates(k_n_Ni57_to_He4_Fe54_reaclib)*Y(Ni57)*state.rho + screened_rates(k_n_Ni58_to_He4_Fe55_reaclib)*Y(Ni58)*state.rho + screened_rates(k_n_Ni59_to_He4_Fe56_reaclib)*Y(Ni59)*state.rho + screened_rates(k_n_Ni60_to_He4_Fe57_reaclib)*Y(Ni60)*state.rho + screened_rates(k_n_Ni61_to_He4_Fe58_reaclib)*Y(Ni61)*state.rho + screened_rates(k_n_O15_to_He4_C12_reaclib)*Y(O15)*state.rho + screened_rates(k_n_O16_to_He4_C13_reaclib)*Y(O16)*state.rho + screened_rates(k_n_O17_to_He4_C14_reaclib)*Y(O17)*state.rho + screened_rates(k_n_P29_to_He4_Al26_reaclib)*Y(P29)*state.rho + screened_rates(k_n_P30_to_He4_Al27_reaclib)*Y(P30)*state.rho + screened_rates(k_n_S32_to_He4_Si29_reaclib)*Y(S32)*state.rho + screened_rates(k_n_S33_to_He4_Si30_reaclib)*Y(S33)*state.rho + screened_rates(k_n_S34_to_He4_Si31_reaclib)*Y(S34)*state.rho + screened_rates(k_n_S35_to_He4_Si32_reaclib)*Y(S35)*state.rho + screened_rates(k_n_Sc43_to_He4_K40_reaclib)*Y(Sc43)*state.rho + screened_rates(k_n_Sc44_to_He4_K41_reaclib)*Y(Sc44)*state.rho + screened_rates(k_n_Si28_to_He4_Mg25_reaclib)*Y(Si28)*state.rho + screened_rates(k_n_Si29_to_He4_Mg26_reaclib)*Y(Si29)*state.rho + screened_rates(k_n_Ti44_to_He4_Ca41_reaclib)*Y(Ti44)*state.rho + screened_rates(k_n_Ti45_to_He4_Ca42_reaclib)*Y(Ti45)*state.rho + screened_rates(k_n_Ti46_to_He4_Ca43_reaclib)*Y(Ti46)*state.rho + screened_rates(k_n_Ti47_to_He4_Ca44_reaclib)*Y(Ti47)*state.rho + screened_rates(k_n_Ti48_to_He4_Ca45_reaclib)*Y(Ti48)*state.rho + screened_rates(k_n_Ti49_to_He4_Ca46_reaclib)*Y(Ti49)*state.rho + screened_rates(k_n_Ti50_to_He4_Ca47_reaclib)*Y(Ti50)*state.rho + screened_rates(k_n_Ti51_to_He4_Ca48_reaclib)*Y(Ti51)*state.rho + screened_rates(k_n_V46_to_He4_Sc43_reaclib)*Y(V46)*state.rho + screened_rates(k_n_V47_to_He4_Sc44_reaclib)*Y(V47)*state.rho + screened_rates(k_n_V48_to_He4_Sc45_reaclib)*Y(V48)*state.rho + screened_rates(k_n_V49_to_He4_Sc46_reaclib)*Y(V49)*state.rho + screened_rates(k_n_V50_to_He4_Sc47_reaclib)*Y(V50)*state.rho + screened_rates(k_n_V51_to_He4_Sc48_reaclib)*Y(V51)*state.rho + screened_rates(k_n_V52_to_He4_Sc49_reaclib)*Y(V52)*state.rho + screened_rates(k_n_Zn59_to_He4_Ni56_reaclib)*Y(Zn59)*state.rho + screened_rates(k_n_Zn60_to_He4_Ni57_reaclib)*Y(Zn60)*state.rho + screened_rates(k_n_Zn61_to_He4_Ni58_reaclib)*Y(Zn61)*state.rho + screened_rates(k_n_Zn62_to_He4_Ni59_reaclib)*Y(Zn62)*state.rho + screened_rates(k_n_Zn63_to_He4_Ni60_reaclib)*Y(Zn63)*state.rho + screened_rates(k_n_Zn64_to_He4_Ni61_reaclib)*Y(Zn64)*state.rho + screened_rates(k_n_Zn65_to_He4_Ni62_reaclib)*Y(Zn65)*state.rho + screened_rates(k_n_Zn66_to_He4_Ni63_reaclib)*Y(Zn66)*state.rho - screened_rates(k_n_p_He4_He4_to_He3_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<3>(state.rho) - screened_rates(k_n_p_He4_He4_to_p_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<3>(state.rho) - screened_rates(k_n_p_He4_to_Li6_reaclib)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho); + scratch = screened_rates(k_Al25_n_to_He4_Na22_reaclib)*Y(Al25)*state.rho + screened_rates(k_Al26_n_to_He4_Na23_reaclib)*Y(Al26)*state.rho + screened_rates(k_Ar36_n_to_He4_S33_reaclib)*Y(Ar36)*state.rho + screened_rates(k_Ar37_n_to_He4_S34_derived)*Y(Ar37)*state.rho + screened_rates(k_Ar38_n_to_He4_S35_derived)*Y(Ar38)*state.rho + screened_rates(k_Ar39_n_to_He4_S36_reaclib)*Y(Ar39)*state.rho + screened_rates(k_B10_n_to_He4_Li7_reaclib)*Y(B10)*state.rho + 2.0*screened_rates(k_B8_n_to_p_He4_He4_reaclib)*Y(B8)*state.rho + 2.0*screened_rates(k_Be7_n_to_He4_He4_reaclib)*Y(Be7)*state.rho + screened_rates(k_C12_n_to_He4_Be9_derived)*Y(C12)*state.rho + screened_rates(k_Ca40_n_to_He4_Ar37_reaclib)*Y(Ca40)*state.rho + screened_rates(k_Ca41_n_to_He4_Ar38_reaclib)*Y(Ca41)*state.rho + screened_rates(k_Ca42_n_to_He4_Ar39_reaclib)*Y(Ca42)*state.rho + screened_rates(k_Ca43_n_to_He4_Ar40_reaclib)*Y(Ca43)*state.rho + screened_rates(k_Cl33_n_to_He4_P30_reaclib)*Y(Cl33)*state.rho + screened_rates(k_Cl34_n_to_He4_P31_reaclib)*Y(Cl34)*state.rho + screened_rates(k_Cl35_n_to_He4_P32_reaclib)*Y(Cl35)*state.rho + screened_rates(k_Cl36_n_to_He4_P33_reaclib)*Y(Cl36)*state.rho + screened_rates(k_Co53_n_to_He4_Mn50_reaclib)*Y(Co53)*state.rho + screened_rates(k_Co54_n_to_He4_Mn51_reaclib)*Y(Co54)*state.rho + screened_rates(k_Co55_n_to_He4_Mn52_reaclib)*Y(Co55)*state.rho + screened_rates(k_Co56_n_to_He4_Mn53_reaclib)*Y(Co56)*state.rho + screened_rates(k_Co57_n_to_He4_Mn54_reaclib)*Y(Co57)*state.rho + screened_rates(k_Co58_n_to_He4_Mn55_reaclib)*Y(Co58)*state.rho + screened_rates(k_Cr48_n_to_He4_Ti45_reaclib)*Y(Cr48)*state.rho + screened_rates(k_Cr49_n_to_He4_Ti46_reaclib)*Y(Cr49)*state.rho + screened_rates(k_Cr50_n_to_He4_Ti47_reaclib)*Y(Cr50)*state.rho + screened_rates(k_Cr51_n_to_He4_Ti48_reaclib)*Y(Cr51)*state.rho + screened_rates(k_Cr52_n_to_He4_Ti49_derived)*Y(Cr52)*state.rho + screened_rates(k_Cr53_n_to_He4_Ti50_reaclib)*Y(Cr53)*state.rho + screened_rates(k_Cr54_n_to_He4_Ti51_derived)*Y(Cr54)*state.rho + screened_rates(k_Cu57_n_to_He4_Co54_reaclib)*Y(Cu57)*state.rho + screened_rates(k_Cu58_n_to_He4_Co55_reaclib)*Y(Cu58)*state.rho + screened_rates(k_Cu59_n_to_He4_Co56_reaclib)*Y(Cu59)*state.rho + screened_rates(k_Cu60_n_to_He4_Co57_reaclib)*Y(Cu60)*state.rho + screened_rates(k_Cu61_n_to_He4_Co58_reaclib)*Y(Cu61)*state.rho + screened_rates(k_Cu62_n_to_He4_Co59_reaclib)*Y(Cu62)*state.rho + screened_rates(k_F17_n_to_He4_N14_derived)*Y(F17)*state.rho + screened_rates(k_F18_n_to_He4_N15_reaclib)*Y(F18)*state.rho + screened_rates(k_Fe52_n_to_He4_Cr49_reaclib)*Y(Fe52)*state.rho + screened_rates(k_Fe53_n_to_He4_Cr50_reaclib)*Y(Fe53)*state.rho + screened_rates(k_Fe54_n_to_He4_Cr51_reaclib)*Y(Fe54)*state.rho + screened_rates(k_Fe55_n_to_He4_Cr52_reaclib)*Y(Fe55)*state.rho + screened_rates(k_Fe56_n_to_He4_Cr53_reaclib)*Y(Fe56)*state.rho + screened_rates(k_Fe57_n_to_He4_Cr54_reaclib)*Y(Fe57)*state.rho + screened_rates(k_Ga62_n_to_He4_Cu59_reaclib)*Y(Ga62)*state.rho + screened_rates(k_Ga63_n_to_He4_Cu60_reaclib)*Y(Ga63)*state.rho + screened_rates(k_Ga64_n_to_He4_Cu61_reaclib)*Y(Ga64)*state.rho + screened_rates(k_Ge63_n_to_He4_Zn60_reaclib)*Y(Ge63)*state.rho + screened_rates(k_Ge64_n_to_He4_Zn61_reaclib)*Y(Ge64)*state.rho + screened_rates(k_He3_n_to_He4_reaclib)*Y(He3)*state.rho - screened_rates(k_He4_He4_n_to_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - screened_rates(k_He4_He4_n_to_d_Li7_derived)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - screened_rates(k_He4_He4_p_n_to_He3_Li7_derived)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<3>(state.rho) - screened_rates(k_He4_He4_p_n_to_p_Be9_derived)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<3>(state.rho) - screened_rates(k_He4_p_n_to_Li6_reaclib)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho) + screened_rates(k_K37_n_to_He4_Cl34_reaclib)*Y(K37)*state.rho + screened_rates(k_K38_n_to_He4_Cl35_reaclib)*Y(K38)*state.rho + screened_rates(k_K39_n_to_He4_Cl36_reaclib)*Y(K39)*state.rho + screened_rates(k_K40_n_to_He4_Cl37_reaclib)*Y(K40)*state.rho + screened_rates(k_Mg23_n_to_He4_Ne20_reaclib)*Y(Mg23)*state.rho + screened_rates(k_Mg24_n_to_He4_Ne21_derived)*Y(Mg24)*state.rho + screened_rates(k_Mg25_n_to_He4_Ne22_derived)*Y(Mg25)*state.rho + screened_rates(k_Mn50_n_to_He4_V47_reaclib)*Y(Mn50)*state.rho + screened_rates(k_Mn51_n_to_He4_V48_reaclib)*Y(Mn51)*state.rho + screened_rates(k_Mn52_n_to_He4_V49_reaclib)*Y(Mn52)*state.rho + screened_rates(k_Mn53_n_to_He4_V50_reaclib)*Y(Mn53)*state.rho + screened_rates(k_Mn54_n_to_He4_V51_reaclib)*Y(Mn54)*state.rho + screened_rates(k_Mn55_n_to_He4_V52_derived)*Y(Mn55)*state.rho + screened_rates(k_N13_n_to_He4_B10_derived)*Y(N13)*state.rho + screened_rates(k_N14_n_to_He4_B11_derived)*Y(N14)*state.rho + screened_rates(k_Na21_n_to_He4_F18_reaclib)*Y(Na21)*state.rho + screened_rates(k_Na22_n_to_He4_F19_reaclib)*Y(Na22)*state.rho + screened_rates(k_Ne18_n_to_He4_O15_reaclib)*Y(Ne18)*state.rho + screened_rates(k_Ne19_n_to_He4_O16_reaclib)*Y(Ne19)*state.rho + screened_rates(k_Ne20_n_to_He4_O17_derived)*Y(Ne20)*state.rho + screened_rates(k_Ne21_n_to_He4_O18_derived)*Y(Ne21)*state.rho + screened_rates(k_Ni56_n_to_He4_Fe53_reaclib)*Y(Ni56)*state.rho + screened_rates(k_Ni57_n_to_He4_Fe54_reaclib)*Y(Ni57)*state.rho + screened_rates(k_Ni58_n_to_He4_Fe55_reaclib)*Y(Ni58)*state.rho + screened_rates(k_Ni59_n_to_He4_Fe56_reaclib)*Y(Ni59)*state.rho + screened_rates(k_Ni60_n_to_He4_Fe57_reaclib)*Y(Ni60)*state.rho + screened_rates(k_Ni61_n_to_He4_Fe58_reaclib)*Y(Ni61)*state.rho + screened_rates(k_O15_n_to_He4_C12_reaclib)*Y(O15)*state.rho + screened_rates(k_O16_n_to_He4_C13_derived)*Y(O16)*state.rho + screened_rates(k_O17_n_to_He4_C14_reaclib)*Y(O17)*state.rho + screened_rates(k_P29_n_to_He4_Al26_reaclib)*Y(P29)*state.rho + screened_rates(k_P30_n_to_He4_Al27_derived)*Y(P30)*state.rho + screened_rates(k_S32_n_to_He4_Si29_reaclib)*Y(S32)*state.rho + screened_rates(k_S33_n_to_He4_Si30_reaclib)*Y(S33)*state.rho + screened_rates(k_S34_n_to_He4_Si31_derived)*Y(S34)*state.rho + screened_rates(k_S35_n_to_He4_Si32_reaclib)*Y(S35)*state.rho + screened_rates(k_Sc43_n_to_He4_K40_reaclib)*Y(Sc43)*state.rho + screened_rates(k_Sc44_n_to_He4_K41_derived)*Y(Sc44)*state.rho + screened_rates(k_Si28_n_to_He4_Mg25_derived)*Y(Si28)*state.rho + screened_rates(k_Si29_n_to_He4_Mg26_derived)*Y(Si29)*state.rho + screened_rates(k_Ti44_n_to_He4_Ca41_reaclib)*Y(Ti44)*state.rho + screened_rates(k_Ti45_n_to_He4_Ca42_reaclib)*Y(Ti45)*state.rho + screened_rates(k_Ti46_n_to_He4_Ca43_derived)*Y(Ti46)*state.rho + screened_rates(k_Ti47_n_to_He4_Ca44_reaclib)*Y(Ti47)*state.rho + screened_rates(k_Ti48_n_to_He4_Ca45_derived)*Y(Ti48)*state.rho + screened_rates(k_Ti49_n_to_He4_Ca46_reaclib)*Y(Ti49)*state.rho + screened_rates(k_Ti50_n_to_He4_Ca47_derived)*Y(Ti50)*state.rho + screened_rates(k_Ti51_n_to_He4_Ca48_reaclib)*Y(Ti51)*state.rho + screened_rates(k_V46_n_to_He4_Sc43_reaclib)*Y(V46)*state.rho + screened_rates(k_V47_n_to_He4_Sc44_reaclib)*Y(V47)*state.rho + screened_rates(k_V48_n_to_He4_Sc45_reaclib)*Y(V48)*state.rho + screened_rates(k_V49_n_to_He4_Sc46_derived)*Y(V49)*state.rho + screened_rates(k_V50_n_to_He4_Sc47_reaclib)*Y(V50)*state.rho + screened_rates(k_V51_n_to_He4_Sc48_derived)*Y(V51)*state.rho + screened_rates(k_V52_n_to_He4_Sc49_reaclib)*Y(V52)*state.rho + screened_rates(k_Zn59_n_to_He4_Ni56_reaclib)*Y(Zn59)*state.rho + screened_rates(k_Zn60_n_to_He4_Ni57_reaclib)*Y(Zn60)*state.rho + screened_rates(k_Zn61_n_to_He4_Ni58_reaclib)*Y(Zn61)*state.rho + screened_rates(k_Zn62_n_to_He4_Ni59_reaclib)*Y(Zn62)*state.rho + screened_rates(k_Zn63_n_to_He4_Ni60_reaclib)*Y(Zn63)*state.rho + screened_rates(k_Zn64_n_to_He4_Ni61_reaclib)*Y(Zn64)*state.rho + screened_rates(k_Zn65_n_to_He4_Ni62_reaclib)*Y(Zn65)*state.rho + screened_rates(k_Zn66_n_to_He4_Ni63_reaclib)*Y(Zn66)*state.rho; jac.set(He4, N, scratch); - scratch = -screened_rates(k_n_p_He4_He4_to_He3_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<3>(state.rho) - screened_rates(k_n_p_He4_He4_to_p_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<3>(state.rho) - screened_rates(k_n_p_He4_to_Li6_reaclib)*Y(He4)*Y(N)*amrex::Math::powi<2>(state.rho) + screened_rates(k_p_Al26_to_He4_Mg23_reaclib)*Y(Al26)*state.rho + screened_rates(k_p_Al27_to_He4_Mg24_reaclib)*Y(Al27)*state.rho + screened_rates(k_p_Ar36_to_He4_Cl33_reaclib)*Y(Ar36)*state.rho + screened_rates(k_p_Ar37_to_He4_Cl34_reaclib)*Y(Ar37)*state.rho + screened_rates(k_p_Ar38_to_He4_Cl35_reaclib)*Y(Ar38)*state.rho + screened_rates(k_p_Ar39_to_He4_Cl36_reaclib)*Y(Ar39)*state.rho + screened_rates(k_p_Ar40_to_He4_Cl37_reaclib)*Y(Ar40)*state.rho + screened_rates(k_p_B10_to_He4_Be7_reaclib)*Y(B10)*state.rho + 3.0*screened_rates(k_p_B11_to_He4_He4_He4_reaclib)*Y(B11)*state.rho + screened_rates(k_p_Be9_to_He4_Li6_reaclib)*Y(Be9)*state.rho + 2.0*screened_rates(k_p_Be9_to_d_He4_He4_reaclib)*Y(Be9)*state.rho + 2.0*screened_rates(k_p_Be9_to_n_p_He4_He4_reaclib)*Y(Be9)*state.rho + screened_rates(k_p_C13_to_He4_B10_reaclib)*Y(C13)*state.rho + screened_rates(k_p_C14_to_He4_B11_reaclib)*Y(C14)*state.rho + screened_rates(k_p_Ca40_to_He4_K37_reaclib)*Y(Ca40)*state.rho + screened_rates(k_p_Ca41_to_He4_K38_reaclib)*Y(Ca41)*state.rho + screened_rates(k_p_Ca42_to_He4_K39_reaclib)*Y(Ca42)*state.rho + screened_rates(k_p_Ca43_to_He4_K40_reaclib)*Y(Ca43)*state.rho + screened_rates(k_p_Ca44_to_He4_K41_reaclib)*Y(Ca44)*state.rho + screened_rates(k_p_Cl35_to_He4_S32_reaclib)*Y(Cl35)*state.rho + screened_rates(k_p_Cl36_to_He4_S33_reaclib)*Y(Cl36)*state.rho + screened_rates(k_p_Cl37_to_He4_S34_reaclib)*Y(Cl37)*state.rho + screened_rates(k_p_Co55_to_He4_Fe52_reaclib)*Y(Co55)*state.rho + screened_rates(k_p_Co56_to_He4_Fe53_reaclib)*Y(Co56)*state.rho + screened_rates(k_p_Co57_to_He4_Fe54_reaclib)*Y(Co57)*state.rho + screened_rates(k_p_Co58_to_He4_Fe55_reaclib)*Y(Co58)*state.rho + screened_rates(k_p_Co59_to_He4_Fe56_reaclib)*Y(Co59)*state.rho + screened_rates(k_p_Cr49_to_He4_V46_reaclib)*Y(Cr49)*state.rho + screened_rates(k_p_Cr50_to_He4_V47_reaclib)*Y(Cr50)*state.rho + screened_rates(k_p_Cr51_to_He4_V48_reaclib)*Y(Cr51)*state.rho + screened_rates(k_p_Cr52_to_He4_V49_reaclib)*Y(Cr52)*state.rho + screened_rates(k_p_Cr53_to_He4_V50_reaclib)*Y(Cr53)*state.rho + screened_rates(k_p_Cr54_to_He4_V51_reaclib)*Y(Cr54)*state.rho + screened_rates(k_p_Cu59_to_He4_Ni56_reaclib)*Y(Cu59)*state.rho + screened_rates(k_p_Cu60_to_He4_Ni57_reaclib)*Y(Cu60)*state.rho + screened_rates(k_p_Cu61_to_He4_Ni58_reaclib)*Y(Cu61)*state.rho + screened_rates(k_p_Cu62_to_He4_Ni59_reaclib)*Y(Cu62)*state.rho + screened_rates(k_p_Cu63_to_He4_Ni60_reaclib)*Y(Cu63)*state.rho + screened_rates(k_p_Cu64_to_He4_Ni61_reaclib)*Y(Cu64)*state.rho + screened_rates(k_p_Cu65_to_He4_Ni62_reaclib)*Y(Cu65)*state.rho + screened_rates(k_p_F17_to_He4_O14_reaclib)*Y(F17)*state.rho + screened_rates(k_p_F18_to_He4_O15_reaclib)*Y(F18)*state.rho + screened_rates(k_p_F19_to_He4_O16_reaclib)*Y(F19)*state.rho + screened_rates(k_p_Fe53_to_He4_Mn50_reaclib)*Y(Fe53)*state.rho + screened_rates(k_p_Fe54_to_He4_Mn51_reaclib)*Y(Fe54)*state.rho + screened_rates(k_p_Fe55_to_He4_Mn52_reaclib)*Y(Fe55)*state.rho + screened_rates(k_p_Fe56_to_He4_Mn53_reaclib)*Y(Fe56)*state.rho + screened_rates(k_p_Fe57_to_He4_Mn54_reaclib)*Y(Fe57)*state.rho + screened_rates(k_p_Fe58_to_He4_Mn55_reaclib)*Y(Fe58)*state.rho + screened_rates(k_p_Ga62_to_He4_Zn59_reaclib)*Y(Ga62)*state.rho + screened_rates(k_p_Ga63_to_He4_Zn60_reaclib)*Y(Ga63)*state.rho + screened_rates(k_p_Ga64_to_He4_Zn61_reaclib)*Y(Ga64)*state.rho + screened_rates(k_p_He3_to_He4_reaclib)*Y(He3)*state.rho - screened_rates(k_p_He4_He4_to_d_Be7_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - screened_rates(k_p_He4_He4_to_n_B8_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - screened_rates(k_p_He4_to_d_He3_reaclib)*Y(He4)*state.rho + screened_rates(k_p_K39_to_He4_Ar36_reaclib)*Y(K39)*state.rho + screened_rates(k_p_K40_to_He4_Ar37_reaclib)*Y(K40)*state.rho + screened_rates(k_p_K41_to_He4_Ar38_reaclib)*Y(K41)*state.rho + screened_rates(k_p_Li6_to_He4_He3_reaclib)*Y(Li6)*state.rho + 2.0*screened_rates(k_p_Li7_to_He4_He4_reaclib)*Y(Li7)*state.rho + screened_rates(k_p_Mg24_to_He4_Na21_reaclib)*Y(Mg24)*state.rho + screened_rates(k_p_Mg25_to_He4_Na22_reaclib)*Y(Mg25)*state.rho + screened_rates(k_p_Mg26_to_He4_Na23_reaclib)*Y(Mg26)*state.rho + screened_rates(k_p_Mn51_to_He4_Cr48_reaclib)*Y(Mn51)*state.rho + screened_rates(k_p_Mn52_to_He4_Cr49_reaclib)*Y(Mn52)*state.rho + screened_rates(k_p_Mn53_to_He4_Cr50_reaclib)*Y(Mn53)*state.rho + screened_rates(k_p_Mn54_to_He4_Cr51_reaclib)*Y(Mn54)*state.rho + screened_rates(k_p_Mn55_to_He4_Cr52_reaclib)*Y(Mn55)*state.rho + screened_rates(k_p_N15_to_He4_C12_reaclib)*Y(N15)*state.rho + screened_rates(k_p_Na21_to_He4_Ne18_reaclib)*Y(Na21)*state.rho + screened_rates(k_p_Na22_to_He4_Ne19_reaclib)*Y(Na22)*state.rho + screened_rates(k_p_Na23_to_He4_Ne20_reaclib)*Y(Na23)*state.rho + screened_rates(k_p_Ne20_to_He4_F17_reaclib)*Y(Ne20)*state.rho + screened_rates(k_p_Ne21_to_He4_F18_reaclib)*Y(Ne21)*state.rho + screened_rates(k_p_Ne22_to_He4_F19_reaclib)*Y(Ne22)*state.rho + screened_rates(k_p_Ni56_to_He4_Co53_reaclib)*Y(Ni56)*state.rho + screened_rates(k_p_Ni57_to_He4_Co54_reaclib)*Y(Ni57)*state.rho + screened_rates(k_p_Ni58_to_He4_Co55_reaclib)*Y(Ni58)*state.rho + screened_rates(k_p_Ni59_to_He4_Co56_reaclib)*Y(Ni59)*state.rho + screened_rates(k_p_Ni60_to_He4_Co57_reaclib)*Y(Ni60)*state.rho + screened_rates(k_p_Ni61_to_He4_Co58_reaclib)*Y(Ni61)*state.rho + screened_rates(k_p_Ni62_to_He4_Co59_reaclib)*Y(Ni62)*state.rho + screened_rates(k_p_O16_to_He4_N13_reaclib)*Y(O16)*state.rho + screened_rates(k_p_O17_to_He4_N14_reaclib)*Y(O17)*state.rho + screened_rates(k_p_O18_to_He4_N15_reaclib)*Y(O18)*state.rho + screened_rates(k_p_P31_to_He4_Si28_reaclib)*Y(P31)*state.rho + screened_rates(k_p_P32_to_He4_Si29_reaclib)*Y(P32)*state.rho + screened_rates(k_p_P33_to_He4_Si30_reaclib)*Y(P33)*state.rho + screened_rates(k_p_S32_to_He4_P29_reaclib)*Y(S32)*state.rho + screened_rates(k_p_S33_to_He4_P30_reaclib)*Y(S33)*state.rho + screened_rates(k_p_S34_to_He4_P31_reaclib)*Y(S34)*state.rho + screened_rates(k_p_S35_to_He4_P32_reaclib)*Y(S35)*state.rho + screened_rates(k_p_S36_to_He4_P33_reaclib)*Y(S36)*state.rho + screened_rates(k_p_Sc43_to_He4_Ca40_reaclib)*Y(Sc43)*state.rho + screened_rates(k_p_Sc44_to_He4_Ca41_reaclib)*Y(Sc44)*state.rho + screened_rates(k_p_Sc45_to_He4_Ca42_reaclib)*Y(Sc45)*state.rho + screened_rates(k_p_Sc46_to_He4_Ca43_reaclib)*Y(Sc46)*state.rho + screened_rates(k_p_Sc47_to_He4_Ca44_reaclib)*Y(Sc47)*state.rho + screened_rates(k_p_Sc48_to_He4_Ca45_reaclib)*Y(Sc48)*state.rho + screened_rates(k_p_Sc49_to_He4_Ca46_reaclib)*Y(Sc49)*state.rho + screened_rates(k_p_Si28_to_He4_Al25_reaclib)*Y(Si28)*state.rho + screened_rates(k_p_Si29_to_He4_Al26_reaclib)*Y(Si29)*state.rho + screened_rates(k_p_Si30_to_He4_Al27_reaclib)*Y(Si30)*state.rho + screened_rates(k_p_Ti46_to_He4_Sc43_reaclib)*Y(Ti46)*state.rho + screened_rates(k_p_Ti47_to_He4_Sc44_reaclib)*Y(Ti47)*state.rho + screened_rates(k_p_Ti48_to_He4_Sc45_reaclib)*Y(Ti48)*state.rho + screened_rates(k_p_Ti49_to_He4_Sc46_reaclib)*Y(Ti49)*state.rho + screened_rates(k_p_Ti50_to_He4_Sc47_reaclib)*Y(Ti50)*state.rho + screened_rates(k_p_Ti51_to_He4_Sc48_reaclib)*Y(Ti51)*state.rho + screened_rates(k_p_V47_to_He4_Ti44_reaclib)*Y(V47)*state.rho + screened_rates(k_p_V48_to_He4_Ti45_reaclib)*Y(V48)*state.rho + screened_rates(k_p_V49_to_He4_Ti46_reaclib)*Y(V49)*state.rho + screened_rates(k_p_V50_to_He4_Ti47_reaclib)*Y(V50)*state.rho + screened_rates(k_p_V51_to_He4_Ti48_reaclib)*Y(V51)*state.rho + screened_rates(k_p_V52_to_He4_Ti49_reaclib)*Y(V52)*state.rho + screened_rates(k_p_Zn60_to_He4_Cu57_reaclib)*Y(Zn60)*state.rho + screened_rates(k_p_Zn61_to_He4_Cu58_reaclib)*Y(Zn61)*state.rho + screened_rates(k_p_Zn62_to_He4_Cu59_reaclib)*Y(Zn62)*state.rho + screened_rates(k_p_Zn63_to_He4_Cu60_reaclib)*Y(Zn63)*state.rho + screened_rates(k_p_Zn64_to_He4_Cu61_reaclib)*Y(Zn64)*state.rho + screened_rates(k_p_Zn65_to_He4_Cu62_reaclib)*Y(Zn65)*state.rho + screened_rates(k_p_Zn66_to_He4_Cu63_reaclib)*Y(Zn66)*state.rho - 1.0*screened_rates(k_p_p_He4_He4_to_He3_Be7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<3>(state.rho) - 1.0*screened_rates(k_p_p_He4_to_He3_He3_reaclib)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho); + scratch = screened_rates(k_Al26_p_to_He4_Mg23_derived)*Y(Al26)*state.rho + screened_rates(k_Al27_p_to_He4_Mg24_reaclib)*Y(Al27)*state.rho + screened_rates(k_Ar36_p_to_He4_Cl33_derived)*Y(Ar36)*state.rho + screened_rates(k_Ar37_p_to_He4_Cl34_derived)*Y(Ar37)*state.rho + screened_rates(k_Ar38_p_to_He4_Cl35_derived)*Y(Ar38)*state.rho + screened_rates(k_Ar39_p_to_He4_Cl36_reaclib)*Y(Ar39)*state.rho + screened_rates(k_Ar40_p_to_He4_Cl37_reaclib)*Y(Ar40)*state.rho + screened_rates(k_B10_p_to_He4_Be7_reaclib)*Y(B10)*state.rho + 3.0*screened_rates(k_B11_p_to_3He4_reaclib)*Y(B11)*state.rho + screened_rates(k_Be9_p_to_He4_Li6_reaclib)*Y(Be9)*state.rho + 2.0*screened_rates(k_Be9_p_to_d_He4_He4_reaclib)*Y(Be9)*state.rho + 2.0*screened_rates(k_Be9_p_to_n_p_He4_He4_reaclib)*Y(Be9)*state.rho + screened_rates(k_C13_p_to_He4_B10_derived)*Y(C13)*state.rho + screened_rates(k_C14_p_to_He4_B11_derived)*Y(C14)*state.rho + screened_rates(k_Ca40_p_to_He4_K37_derived)*Y(Ca40)*state.rho + screened_rates(k_Ca41_p_to_He4_K38_derived)*Y(Ca41)*state.rho + screened_rates(k_Ca42_p_to_He4_K39_reaclib)*Y(Ca42)*state.rho + screened_rates(k_Ca43_p_to_He4_K40_derived)*Y(Ca43)*state.rho + screened_rates(k_Ca44_p_to_He4_K41_derived)*Y(Ca44)*state.rho + screened_rates(k_Cl35_p_to_He4_S32_reaclib)*Y(Cl35)*state.rho + screened_rates(k_Cl36_p_to_He4_S33_reaclib)*Y(Cl36)*state.rho + screened_rates(k_Cl37_p_to_He4_S34_derived)*Y(Cl37)*state.rho + screened_rates(k_Co55_p_to_He4_Fe52_derived)*Y(Co55)*state.rho + screened_rates(k_Co56_p_to_He4_Fe53_derived)*Y(Co56)*state.rho + screened_rates(k_Co57_p_to_He4_Fe54_reaclib)*Y(Co57)*state.rho + screened_rates(k_Co58_p_to_He4_Fe55_reaclib)*Y(Co58)*state.rho + screened_rates(k_Co59_p_to_He4_Fe56_reaclib)*Y(Co59)*state.rho + screened_rates(k_Cr49_p_to_He4_V46_derived)*Y(Cr49)*state.rho + screened_rates(k_Cr50_p_to_He4_V47_derived)*Y(Cr50)*state.rho + screened_rates(k_Cr51_p_to_He4_V48_derived)*Y(Cr51)*state.rho + screened_rates(k_Cr52_p_to_He4_V49_derived)*Y(Cr52)*state.rho + screened_rates(k_Cr53_p_to_He4_V50_derived)*Y(Cr53)*state.rho + screened_rates(k_Cr54_p_to_He4_V51_reaclib)*Y(Cr54)*state.rho + screened_rates(k_Cu59_p_to_He4_Ni56_reaclib)*Y(Cu59)*state.rho + screened_rates(k_Cu60_p_to_He4_Ni57_reaclib)*Y(Cu60)*state.rho + screened_rates(k_Cu61_p_to_He4_Ni58_reaclib)*Y(Cu61)*state.rho + screened_rates(k_Cu62_p_to_He4_Ni59_reaclib)*Y(Cu62)*state.rho + screened_rates(k_Cu63_p_to_He4_Ni60_reaclib)*Y(Cu63)*state.rho + screened_rates(k_Cu64_p_to_He4_Ni61_reaclib)*Y(Cu64)*state.rho + screened_rates(k_Cu65_p_to_He4_Ni62_reaclib)*Y(Cu65)*state.rho + screened_rates(k_F17_p_to_He4_O14_derived)*Y(F17)*state.rho + screened_rates(k_F18_p_to_He4_O15_reaclib)*Y(F18)*state.rho + screened_rates(k_F19_p_to_He4_O16_reaclib)*Y(F19)*state.rho + screened_rates(k_Fe53_p_to_He4_Mn50_derived)*Y(Fe53)*state.rho + screened_rates(k_Fe54_p_to_He4_Mn51_derived)*Y(Fe54)*state.rho + screened_rates(k_Fe55_p_to_He4_Mn52_derived)*Y(Fe55)*state.rho + screened_rates(k_Fe56_p_to_He4_Mn53_derived)*Y(Fe56)*state.rho + screened_rates(k_Fe57_p_to_He4_Mn54_reaclib)*Y(Fe57)*state.rho + screened_rates(k_Fe58_p_to_He4_Mn55_reaclib)*Y(Fe58)*state.rho + screened_rates(k_Ga62_p_to_He4_Zn59_reaclib)*Y(Ga62)*state.rho + screened_rates(k_Ga63_p_to_He4_Zn60_reaclib)*Y(Ga63)*state.rho + screened_rates(k_Ga64_p_to_He4_Zn61_reaclib)*Y(Ga64)*state.rho + screened_rates(k_He3_p_to_He4_beta_pos_reaclib)*Y(He3)*state.rho - screened_rates(k_He4_He4_p_n_to_He3_Li7_derived)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<3>(state.rho) - screened_rates(k_He4_He4_p_n_to_p_Be9_derived)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<3>(state.rho) - 1.0*screened_rates(k_He4_He4_p_p_to_He3_Be7_derived)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<3>(state.rho) - screened_rates(k_He4_He4_p_to_d_Be7_derived)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - screened_rates(k_He4_He4_p_to_n_B8_derived)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - screened_rates(k_He4_p_n_to_Li6_reaclib)*Y(He4)*Y(N)*amrex::Math::powi<2>(state.rho) - 1.0*screened_rates(k_He4_p_p_to_He3_He3_derived)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho) - screened_rates(k_He4_p_to_d_He3_derived)*Y(He4)*state.rho + screened_rates(k_K39_p_to_He4_Ar36_reaclib)*Y(K39)*state.rho + screened_rates(k_K40_p_to_He4_Ar37_reaclib)*Y(K40)*state.rho + screened_rates(k_K41_p_to_He4_Ar38_reaclib)*Y(K41)*state.rho + screened_rates(k_Li6_p_to_He4_He3_reaclib)*Y(Li6)*state.rho + 2.0*screened_rates(k_Li7_p_to_He4_He4_reaclib)*Y(Li7)*state.rho + screened_rates(k_Mg24_p_to_He4_Na21_reaclib)*Y(Mg24)*state.rho + screened_rates(k_Mg25_p_to_He4_Na22_derived)*Y(Mg25)*state.rho + screened_rates(k_Mg26_p_to_He4_Na23_derived)*Y(Mg26)*state.rho + screened_rates(k_Mn51_p_to_He4_Cr48_derived)*Y(Mn51)*state.rho + screened_rates(k_Mn52_p_to_He4_Cr49_derived)*Y(Mn52)*state.rho + screened_rates(k_Mn53_p_to_He4_Cr50_reaclib)*Y(Mn53)*state.rho + screened_rates(k_Mn54_p_to_He4_Cr51_reaclib)*Y(Mn54)*state.rho + screened_rates(k_Mn55_p_to_He4_Cr52_reaclib)*Y(Mn55)*state.rho + screened_rates(k_N15_p_to_He4_C12_reaclib)*Y(N15)*state.rho + screened_rates(k_Na21_p_to_He4_Ne18_derived)*Y(Na21)*state.rho + screened_rates(k_Na22_p_to_He4_Ne19_derived)*Y(Na22)*state.rho + screened_rates(k_Na23_p_to_He4_Ne20_reaclib)*Y(Na23)*state.rho + screened_rates(k_Ne20_p_to_He4_F17_reaclib)*Y(Ne20)*state.rho + screened_rates(k_Ne21_p_to_He4_F18_derived)*Y(Ne21)*state.rho + screened_rates(k_Ne22_p_to_He4_F19_derived)*Y(Ne22)*state.rho + screened_rates(k_Ni56_p_to_He4_Co53_derived)*Y(Ni56)*state.rho + screened_rates(k_Ni57_p_to_He4_Co54_derived)*Y(Ni57)*state.rho + screened_rates(k_Ni58_p_to_He4_Co55_derived)*Y(Ni58)*state.rho + screened_rates(k_Ni59_p_to_He4_Co56_derived)*Y(Ni59)*state.rho + screened_rates(k_Ni60_p_to_He4_Co57_derived)*Y(Ni60)*state.rho + screened_rates(k_Ni61_p_to_He4_Co58_reaclib)*Y(Ni61)*state.rho + screened_rates(k_Ni62_p_to_He4_Co59_reaclib)*Y(Ni62)*state.rho + screened_rates(k_O16_p_to_He4_N13_derived)*Y(O16)*state.rho + screened_rates(k_O17_p_to_He4_N14_reaclib)*Y(O17)*state.rho + screened_rates(k_O18_p_to_He4_N15_reaclib)*Y(O18)*state.rho + screened_rates(k_P31_p_to_He4_Si28_reaclib)*Y(P31)*state.rho + screened_rates(k_P32_p_to_He4_Si29_reaclib)*Y(P32)*state.rho + screened_rates(k_P33_p_to_He4_Si30_reaclib)*Y(P33)*state.rho + screened_rates(k_S32_p_to_He4_P29_derived)*Y(S32)*state.rho + screened_rates(k_S33_p_to_He4_P30_derived)*Y(S33)*state.rho + screened_rates(k_S34_p_to_He4_P31_derived)*Y(S34)*state.rho + screened_rates(k_S35_p_to_He4_P32_reaclib)*Y(S35)*state.rho + screened_rates(k_S36_p_to_He4_P33_reaclib)*Y(S36)*state.rho + screened_rates(k_Sc43_p_to_He4_Ca40_reaclib)*Y(Sc43)*state.rho + screened_rates(k_Sc44_p_to_He4_Ca41_reaclib)*Y(Sc44)*state.rho + screened_rates(k_Sc45_p_to_He4_Ca42_reaclib)*Y(Sc45)*state.rho + screened_rates(k_Sc46_p_to_He4_Ca43_reaclib)*Y(Sc46)*state.rho + screened_rates(k_Sc47_p_to_He4_Ca44_reaclib)*Y(Sc47)*state.rho + screened_rates(k_Sc48_p_to_He4_Ca45_reaclib)*Y(Sc48)*state.rho + screened_rates(k_Sc49_p_to_He4_Ca46_reaclib)*Y(Sc49)*state.rho + screened_rates(k_Si28_p_to_He4_Al25_derived)*Y(Si28)*state.rho + screened_rates(k_Si29_p_to_He4_Al26_derived)*Y(Si29)*state.rho + screened_rates(k_Si30_p_to_He4_Al27_derived)*Y(Si30)*state.rho + screened_rates(k_Ti46_p_to_He4_Sc43_derived)*Y(Ti46)*state.rho + screened_rates(k_Ti47_p_to_He4_Sc44_derived)*Y(Ti47)*state.rho + screened_rates(k_Ti48_p_to_He4_Sc45_derived)*Y(Ti48)*state.rho + screened_rates(k_Ti49_p_to_He4_Sc46_derived)*Y(Ti49)*state.rho + screened_rates(k_Ti50_p_to_He4_Sc47_derived)*Y(Ti50)*state.rho + screened_rates(k_Ti51_p_to_He4_Sc48_derived)*Y(Ti51)*state.rho + screened_rates(k_V47_p_to_He4_Ti44_derived)*Y(V47)*state.rho + screened_rates(k_V48_p_to_He4_Ti45_derived)*Y(V48)*state.rho + screened_rates(k_V49_p_to_He4_Ti46_reaclib)*Y(V49)*state.rho + screened_rates(k_V50_p_to_He4_Ti47_reaclib)*Y(V50)*state.rho + screened_rates(k_V51_p_to_He4_Ti48_reaclib)*Y(V51)*state.rho + screened_rates(k_V52_p_to_He4_Ti49_reaclib)*Y(V52)*state.rho + screened_rates(k_Zn60_p_to_He4_Cu57_derived)*Y(Zn60)*state.rho + screened_rates(k_Zn61_p_to_He4_Cu58_reaclib)*Y(Zn61)*state.rho + screened_rates(k_Zn62_p_to_He4_Cu59_reaclib)*Y(Zn62)*state.rho + screened_rates(k_Zn63_p_to_He4_Cu60_reaclib)*Y(Zn63)*state.rho + screened_rates(k_Zn64_p_to_He4_Cu61_reaclib)*Y(Zn64)*state.rho + screened_rates(k_Zn65_p_to_He4_Cu62_reaclib)*Y(Zn65)*state.rho + screened_rates(k_Zn66_p_to_He4_Cu63_reaclib)*Y(Zn66)*state.rho; jac.set(He4, H1, scratch); - scratch = -screened_rates(k_He4_d_to_Li6_reaclib)*Y(He4)*state.rho + 2.0*screened_rates(k_d_Be7_to_p_He4_He4_reaclib)*Y(Be7)*state.rho + screened_rates(k_d_He3_to_p_He4_reaclib)*Y(He3)*state.rho - screened_rates(k_d_He4_He4_to_p_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) + 2.0*screened_rates(k_d_Li7_to_n_He4_He4_reaclib)*Y(Li7)*state.rho + 1.0*screened_rates(k_d_d_to_He4_reaclib)*Y(H2)*state.rho; + scratch = 2.0*screened_rates(k_Be7_d_to_p_He4_He4_reaclib)*Y(Be7)*state.rho + screened_rates(k_He3_d_to_p_He4_reaclib)*Y(He3)*state.rho + 2.0*screened_rates(k_Li7_d_to_n_He4_He4_reaclib)*Y(Li7)*state.rho - screened_rates(k_d_He4_He4_to_p_Be9_derived)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - screened_rates(k_d_He4_to_Li6_reaclib)*Y(He4)*state.rho + 1.0*screened_rates(k_d_d_to_He4_reaclib)*Y(H2)*state.rho; jac.set(He4, H2, scratch); - scratch = 2.0*screened_rates(k_He3_Be7_to_p_p_He4_He4_reaclib)*Y(Be7)*state.rho + 1.0*screened_rates(k_He3_He3_to_p_p_He4_reaclib)*Y(He3)*state.rho + 2.0*screened_rates(k_He3_Li7_to_n_p_He4_He4_reaclib)*Y(Li7)*state.rho - screened_rates(k_He4_He3_to_Be7_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_He3_to_p_Li6_reaclib)*Y(He4)*state.rho + screened_rates(k_d_He3_to_p_He4_reaclib)*Y(H2)*state.rho + screened_rates(k_n_He3_to_He4_reaclib)*Y(N)*state.rho + screened_rates(k_p_He3_to_He4_reaclib)*Y(H1)*state.rho; + scratch = 2.0*screened_rates(k_Be7_He3_to_p_p_He4_He4_reaclib)*Y(Be7)*state.rho + 1.0*screened_rates(k_He3_He3_to_p_p_He4_reaclib)*Y(He3)*state.rho - screened_rates(k_He3_He4_to_Be7_reaclib)*Y(He4)*state.rho - screened_rates(k_He3_He4_to_p_Li6_derived)*Y(He4)*state.rho + screened_rates(k_He3_d_to_p_He4_reaclib)*Y(H2)*state.rho + screened_rates(k_He3_n_to_He4_reaclib)*Y(N)*state.rho + screened_rates(k_He3_p_to_He4_beta_pos_reaclib)*Y(H1)*state.rho + 2.0*screened_rates(k_Li7_He3_to_n_p_He4_He4_reaclib)*Y(Li7)*state.rho; jac.set(He4, He3, scratch); - scratch = -screened_rates(k_He4_Al25_to_P29_reaclib)*Y(Al25)*state.rho - screened_rates(k_He4_Al25_to_p_Si28_reaclib)*Y(Al25)*state.rho - screened_rates(k_He4_Al26_to_P30_reaclib)*Y(Al26)*state.rho - screened_rates(k_He4_Al26_to_n_P29_reaclib)*Y(Al26)*state.rho - screened_rates(k_He4_Al26_to_p_Si29_reaclib)*Y(Al26)*state.rho - screened_rates(k_He4_Al27_to_P31_reaclib)*Y(Al27)*state.rho - screened_rates(k_He4_Al27_to_n_P30_reaclib)*Y(Al27)*state.rho - screened_rates(k_He4_Al27_to_p_Si30_reaclib)*Y(Al27)*state.rho - screened_rates(k_He4_Ar36_to_Ca40_reaclib)*Y(Ar36)*state.rho - screened_rates(k_He4_Ar36_to_p_K39_reaclib)*Y(Ar36)*state.rho - screened_rates(k_He4_Ar37_to_Ca41_reaclib)*Y(Ar37)*state.rho - screened_rates(k_He4_Ar37_to_n_Ca40_reaclib)*Y(Ar37)*state.rho - screened_rates(k_He4_Ar37_to_p_K40_reaclib)*Y(Ar37)*state.rho - screened_rates(k_He4_Ar38_to_Ca42_reaclib)*Y(Ar38)*state.rho - screened_rates(k_He4_Ar38_to_n_Ca41_reaclib)*Y(Ar38)*state.rho - screened_rates(k_He4_Ar38_to_p_K41_reaclib)*Y(Ar38)*state.rho - screened_rates(k_He4_Ar39_to_Ca43_reaclib)*Y(Ar39)*state.rho - screened_rates(k_He4_Ar39_to_n_Ca42_reaclib)*Y(Ar39)*state.rho - screened_rates(k_He4_Ar40_to_Ca44_reaclib)*Y(Ar40)*state.rho - screened_rates(k_He4_Ar40_to_n_Ca43_reaclib)*Y(Ar40)*state.rho - screened_rates(k_He4_B10_to_n_N13_reaclib)*Y(B10)*state.rho - screened_rates(k_He4_B10_to_p_C13_reaclib)*Y(B10)*state.rho - screened_rates(k_He4_B11_to_n_N14_reaclib)*Y(B11)*state.rho - screened_rates(k_He4_B11_to_p_C14_reaclib)*Y(B11)*state.rho - screened_rates(k_He4_Be7_to_p_B10_reaclib)*Y(Be7)*state.rho - screened_rates(k_He4_Be9_to_n_C12_reaclib)*Y(Be9)*state.rho - screened_rates(k_He4_C12_to_O16_reaclib)*Y(C12)*state.rho - screened_rates(k_He4_C12_to_n_O15_reaclib)*Y(C12)*state.rho - screened_rates(k_He4_C12_to_p_N15_reaclib)*Y(C12)*state.rho - screened_rates(k_He4_C13_to_n_O16_reaclib)*Y(C13)*state.rho - screened_rates(k_He4_C14_to_O18_reaclib)*Y(C14)*state.rho - screened_rates(k_He4_C14_to_n_O17_reaclib)*Y(C14)*state.rho - screened_rates(k_He4_Ca40_to_Ti44_reaclib)*Y(Ca40)*state.rho - screened_rates(k_He4_Ca40_to_p_Sc43_reaclib)*Y(Ca40)*state.rho - screened_rates(k_He4_Ca41_to_Ti45_reaclib)*Y(Ca41)*state.rho - screened_rates(k_He4_Ca41_to_n_Ti44_reaclib)*Y(Ca41)*state.rho - screened_rates(k_He4_Ca41_to_p_Sc44_reaclib)*Y(Ca41)*state.rho - screened_rates(k_He4_Ca42_to_Ti46_reaclib)*Y(Ca42)*state.rho - screened_rates(k_He4_Ca42_to_n_Ti45_reaclib)*Y(Ca42)*state.rho - screened_rates(k_He4_Ca42_to_p_Sc45_reaclib)*Y(Ca42)*state.rho - screened_rates(k_He4_Ca43_to_Ti47_reaclib)*Y(Ca43)*state.rho - screened_rates(k_He4_Ca43_to_n_Ti46_reaclib)*Y(Ca43)*state.rho - screened_rates(k_He4_Ca43_to_p_Sc46_reaclib)*Y(Ca43)*state.rho - screened_rates(k_He4_Ca44_to_Ti48_reaclib)*Y(Ca44)*state.rho - screened_rates(k_He4_Ca44_to_n_Ti47_reaclib)*Y(Ca44)*state.rho - screened_rates(k_He4_Ca44_to_p_Sc47_reaclib)*Y(Ca44)*state.rho - screened_rates(k_He4_Ca45_to_Ti49_reaclib)*Y(Ca45)*state.rho - screened_rates(k_He4_Ca45_to_n_Ti48_reaclib)*Y(Ca45)*state.rho - screened_rates(k_He4_Ca45_to_p_Sc48_reaclib)*Y(Ca45)*state.rho - screened_rates(k_He4_Ca46_to_Ti50_reaclib)*Y(Ca46)*state.rho - screened_rates(k_He4_Ca46_to_n_Ti49_reaclib)*Y(Ca46)*state.rho - screened_rates(k_He4_Ca46_to_p_Sc49_reaclib)*Y(Ca46)*state.rho - screened_rates(k_He4_Ca47_to_Ti51_reaclib)*Y(Ca47)*state.rho - screened_rates(k_He4_Ca47_to_n_Ti50_reaclib)*Y(Ca47)*state.rho - screened_rates(k_He4_Ca48_to_n_Ti51_reaclib)*Y(Ca48)*state.rho - screened_rates(k_He4_Cl33_to_K37_reaclib)*Y(Cl33)*state.rho - screened_rates(k_He4_Cl33_to_p_Ar36_reaclib)*Y(Cl33)*state.rho - screened_rates(k_He4_Cl34_to_K38_reaclib)*Y(Cl34)*state.rho - screened_rates(k_He4_Cl34_to_n_K37_reaclib)*Y(Cl34)*state.rho - screened_rates(k_He4_Cl34_to_p_Ar37_reaclib)*Y(Cl34)*state.rho - screened_rates(k_He4_Cl35_to_K39_reaclib)*Y(Cl35)*state.rho - screened_rates(k_He4_Cl35_to_n_K38_reaclib)*Y(Cl35)*state.rho - screened_rates(k_He4_Cl35_to_p_Ar38_reaclib)*Y(Cl35)*state.rho - screened_rates(k_He4_Cl36_to_K40_reaclib)*Y(Cl36)*state.rho - screened_rates(k_He4_Cl36_to_n_K39_reaclib)*Y(Cl36)*state.rho - screened_rates(k_He4_Cl36_to_p_Ar39_reaclib)*Y(Cl36)*state.rho - screened_rates(k_He4_Cl37_to_K41_reaclib)*Y(Cl37)*state.rho - screened_rates(k_He4_Cl37_to_n_K40_reaclib)*Y(Cl37)*state.rho - screened_rates(k_He4_Cl37_to_p_Ar40_reaclib)*Y(Cl37)*state.rho - screened_rates(k_He4_Co53_to_Cu57_reaclib)*Y(Co53)*state.rho - screened_rates(k_He4_Co53_to_p_Ni56_reaclib)*Y(Co53)*state.rho - screened_rates(k_He4_Co54_to_Cu58_reaclib)*Y(Co54)*state.rho - screened_rates(k_He4_Co54_to_n_Cu57_reaclib)*Y(Co54)*state.rho - screened_rates(k_He4_Co54_to_p_Ni57_reaclib)*Y(Co54)*state.rho - screened_rates(k_He4_Co55_to_Cu59_reaclib)*Y(Co55)*state.rho - screened_rates(k_He4_Co55_to_n_Cu58_reaclib)*Y(Co55)*state.rho - screened_rates(k_He4_Co55_to_p_Ni58_reaclib)*Y(Co55)*state.rho - screened_rates(k_He4_Co56_to_Cu60_reaclib)*Y(Co56)*state.rho - screened_rates(k_He4_Co56_to_n_Cu59_reaclib)*Y(Co56)*state.rho - screened_rates(k_He4_Co56_to_p_Ni59_reaclib)*Y(Co56)*state.rho - screened_rates(k_He4_Co57_to_Cu61_reaclib)*Y(Co57)*state.rho - screened_rates(k_He4_Co57_to_n_Cu60_reaclib)*Y(Co57)*state.rho - screened_rates(k_He4_Co57_to_p_Ni60_reaclib)*Y(Co57)*state.rho - screened_rates(k_He4_Co58_to_Cu62_reaclib)*Y(Co58)*state.rho - screened_rates(k_He4_Co58_to_n_Cu61_reaclib)*Y(Co58)*state.rho - screened_rates(k_He4_Co58_to_p_Ni61_reaclib)*Y(Co58)*state.rho - screened_rates(k_He4_Co59_to_Cu63_reaclib)*Y(Co59)*state.rho - screened_rates(k_He4_Co59_to_n_Cu62_reaclib)*Y(Co59)*state.rho - screened_rates(k_He4_Co59_to_p_Ni62_reaclib)*Y(Co59)*state.rho - screened_rates(k_He4_Cr48_to_Fe52_reaclib)*Y(Cr48)*state.rho - screened_rates(k_He4_Cr48_to_p_Mn51_reaclib)*Y(Cr48)*state.rho - screened_rates(k_He4_Cr49_to_Fe53_reaclib)*Y(Cr49)*state.rho - screened_rates(k_He4_Cr49_to_n_Fe52_reaclib)*Y(Cr49)*state.rho - screened_rates(k_He4_Cr49_to_p_Mn52_reaclib)*Y(Cr49)*state.rho - screened_rates(k_He4_Cr50_to_Fe54_reaclib)*Y(Cr50)*state.rho - screened_rates(k_He4_Cr50_to_n_Fe53_reaclib)*Y(Cr50)*state.rho - screened_rates(k_He4_Cr50_to_p_Mn53_reaclib)*Y(Cr50)*state.rho - screened_rates(k_He4_Cr51_to_Fe55_reaclib)*Y(Cr51)*state.rho - screened_rates(k_He4_Cr51_to_n_Fe54_reaclib)*Y(Cr51)*state.rho - screened_rates(k_He4_Cr51_to_p_Mn54_reaclib)*Y(Cr51)*state.rho - screened_rates(k_He4_Cr52_to_Fe56_reaclib)*Y(Cr52)*state.rho - screened_rates(k_He4_Cr52_to_n_Fe55_reaclib)*Y(Cr52)*state.rho - screened_rates(k_He4_Cr52_to_p_Mn55_reaclib)*Y(Cr52)*state.rho - screened_rates(k_He4_Cr53_to_Fe57_reaclib)*Y(Cr53)*state.rho - screened_rates(k_He4_Cr53_to_n_Fe56_reaclib)*Y(Cr53)*state.rho - screened_rates(k_He4_Cr54_to_Fe58_reaclib)*Y(Cr54)*state.rho - screened_rates(k_He4_Cr54_to_n_Fe57_reaclib)*Y(Cr54)*state.rho - screened_rates(k_He4_Cu57_to_p_Zn60_reaclib)*Y(Cu57)*state.rho - screened_rates(k_He4_Cu58_to_Ga62_reaclib)*Y(Cu58)*state.rho - screened_rates(k_He4_Cu58_to_p_Zn61_reaclib)*Y(Cu58)*state.rho - screened_rates(k_He4_Cu59_to_Ga63_reaclib)*Y(Cu59)*state.rho - screened_rates(k_He4_Cu59_to_n_Ga62_reaclib)*Y(Cu59)*state.rho - screened_rates(k_He4_Cu59_to_p_Zn62_reaclib)*Y(Cu59)*state.rho - screened_rates(k_He4_Cu60_to_Ga64_reaclib)*Y(Cu60)*state.rho - screened_rates(k_He4_Cu60_to_n_Ga63_reaclib)*Y(Cu60)*state.rho - screened_rates(k_He4_Cu60_to_p_Zn63_reaclib)*Y(Cu60)*state.rho - screened_rates(k_He4_Cu61_to_n_Ga64_reaclib)*Y(Cu61)*state.rho - screened_rates(k_He4_Cu61_to_p_Zn64_reaclib)*Y(Cu61)*state.rho - screened_rates(k_He4_Cu62_to_p_Zn65_reaclib)*Y(Cu62)*state.rho - screened_rates(k_He4_Cu63_to_p_Zn66_reaclib)*Y(Cu63)*state.rho - screened_rates(k_He4_F17_to_Na21_reaclib)*Y(F17)*state.rho - screened_rates(k_He4_F17_to_p_Ne20_reaclib)*Y(F17)*state.rho - screened_rates(k_He4_F18_to_Na22_reaclib)*Y(F18)*state.rho - screened_rates(k_He4_F18_to_n_Na21_reaclib)*Y(F18)*state.rho - screened_rates(k_He4_F18_to_p_Ne21_reaclib)*Y(F18)*state.rho - screened_rates(k_He4_F19_to_Na23_reaclib)*Y(F19)*state.rho - screened_rates(k_He4_F19_to_n_Na22_reaclib)*Y(F19)*state.rho - screened_rates(k_He4_F19_to_p_Ne22_reaclib)*Y(F19)*state.rho - screened_rates(k_He4_Fe52_to_Ni56_reaclib)*Y(Fe52)*state.rho - screened_rates(k_He4_Fe52_to_p_Co55_reaclib)*Y(Fe52)*state.rho - screened_rates(k_He4_Fe53_to_Ni57_reaclib)*Y(Fe53)*state.rho - screened_rates(k_He4_Fe53_to_n_Ni56_reaclib)*Y(Fe53)*state.rho - screened_rates(k_He4_Fe53_to_p_Co56_reaclib)*Y(Fe53)*state.rho - screened_rates(k_He4_Fe54_to_Ni58_reaclib)*Y(Fe54)*state.rho - screened_rates(k_He4_Fe54_to_n_Ni57_reaclib)*Y(Fe54)*state.rho - screened_rates(k_He4_Fe54_to_p_Co57_reaclib)*Y(Fe54)*state.rho - screened_rates(k_He4_Fe55_to_Ni59_reaclib)*Y(Fe55)*state.rho - screened_rates(k_He4_Fe55_to_n_Ni58_reaclib)*Y(Fe55)*state.rho - screened_rates(k_He4_Fe55_to_p_Co58_reaclib)*Y(Fe55)*state.rho - screened_rates(k_He4_Fe56_to_Ni60_reaclib)*Y(Fe56)*state.rho - screened_rates(k_He4_Fe56_to_n_Ni59_reaclib)*Y(Fe56)*state.rho - screened_rates(k_He4_Fe56_to_p_Co59_reaclib)*Y(Fe56)*state.rho - screened_rates(k_He4_Fe57_to_Ni61_reaclib)*Y(Fe57)*state.rho - screened_rates(k_He4_Fe57_to_n_Ni60_reaclib)*Y(Fe57)*state.rho - screened_rates(k_He4_Fe58_to_Ni62_reaclib)*Y(Fe58)*state.rho - screened_rates(k_He4_Fe58_to_n_Ni61_reaclib)*Y(Fe58)*state.rho - screened_rates(k_He4_He3_to_Be7_reaclib)*Y(He3)*state.rho - screened_rates(k_He4_He3_to_p_Li6_reaclib)*Y(He3)*state.rho - 1.5*screened_rates(k_He4_He4_He4_to_C12_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - 1.5*screened_rates(k_He4_He4_He4_to_p_B11_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - 2.0*screened_rates(k_He4_He4_to_n_Be7_reaclib)*Y(He4)*state.rho - 2.0*screened_rates(k_He4_He4_to_p_Li7_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_K37_to_p_Ca40_reaclib)*Y(K37)*state.rho - screened_rates(k_He4_K38_to_p_Ca41_reaclib)*Y(K38)*state.rho - screened_rates(k_He4_K39_to_Sc43_reaclib)*Y(K39)*state.rho - screened_rates(k_He4_K39_to_p_Ca42_reaclib)*Y(K39)*state.rho - screened_rates(k_He4_K40_to_Sc44_reaclib)*Y(K40)*state.rho - screened_rates(k_He4_K40_to_n_Sc43_reaclib)*Y(K40)*state.rho - screened_rates(k_He4_K40_to_p_Ca43_reaclib)*Y(K40)*state.rho - screened_rates(k_He4_K41_to_Sc45_reaclib)*Y(K41)*state.rho - screened_rates(k_He4_K41_to_n_Sc44_reaclib)*Y(K41)*state.rho - screened_rates(k_He4_K41_to_p_Ca44_reaclib)*Y(K41)*state.rho - screened_rates(k_He4_Li6_to_B10_reaclib)*Y(Li6)*state.rho - screened_rates(k_He4_Li6_to_p_Be9_reaclib)*Y(Li6)*state.rho - screened_rates(k_He4_Li7_to_B11_reaclib)*Y(Li7)*state.rho - screened_rates(k_He4_Li7_to_n_B10_reaclib)*Y(Li7)*state.rho - screened_rates(k_He4_Mg23_to_p_Al26_reaclib)*Y(Mg23)*state.rho - screened_rates(k_He4_Mg24_to_C12_O16_reaclib)*Y(Mg24)*state.rho - screened_rates(k_He4_Mg24_to_Si28_reaclib)*Y(Mg24)*state.rho - screened_rates(k_He4_Mg24_to_p_Al27_reaclib)*Y(Mg24)*state.rho - screened_rates(k_He4_Mg25_to_Si29_reaclib)*Y(Mg25)*state.rho - screened_rates(k_He4_Mg25_to_n_Si28_reaclib)*Y(Mg25)*state.rho - screened_rates(k_He4_Mg26_to_Si30_reaclib)*Y(Mg26)*state.rho - screened_rates(k_He4_Mg26_to_n_Si29_reaclib)*Y(Mg26)*state.rho - screened_rates(k_He4_Mn50_to_Co54_reaclib)*Y(Mn50)*state.rho - screened_rates(k_He4_Mn50_to_n_Co53_reaclib)*Y(Mn50)*state.rho - screened_rates(k_He4_Mn50_to_p_Fe53_reaclib)*Y(Mn50)*state.rho - screened_rates(k_He4_Mn51_to_Co55_reaclib)*Y(Mn51)*state.rho - screened_rates(k_He4_Mn51_to_n_Co54_reaclib)*Y(Mn51)*state.rho - screened_rates(k_He4_Mn51_to_p_Fe54_reaclib)*Y(Mn51)*state.rho - screened_rates(k_He4_Mn52_to_Co56_reaclib)*Y(Mn52)*state.rho - screened_rates(k_He4_Mn52_to_n_Co55_reaclib)*Y(Mn52)*state.rho - screened_rates(k_He4_Mn52_to_p_Fe55_reaclib)*Y(Mn52)*state.rho - screened_rates(k_He4_Mn53_to_Co57_reaclib)*Y(Mn53)*state.rho - screened_rates(k_He4_Mn53_to_n_Co56_reaclib)*Y(Mn53)*state.rho - screened_rates(k_He4_Mn53_to_p_Fe56_reaclib)*Y(Mn53)*state.rho - screened_rates(k_He4_Mn54_to_Co58_reaclib)*Y(Mn54)*state.rho - screened_rates(k_He4_Mn54_to_n_Co57_reaclib)*Y(Mn54)*state.rho - screened_rates(k_He4_Mn54_to_p_Fe57_reaclib)*Y(Mn54)*state.rho - screened_rates(k_He4_Mn55_to_Co59_reaclib)*Y(Mn55)*state.rho - screened_rates(k_He4_Mn55_to_n_Co58_reaclib)*Y(Mn55)*state.rho - screened_rates(k_He4_Mn55_to_p_Fe58_reaclib)*Y(Mn55)*state.rho - screened_rates(k_He4_N13_to_p_O16_reaclib)*Y(N13)*state.rho - screened_rates(k_He4_N14_to_F18_reaclib)*Y(N14)*state.rho - screened_rates(k_He4_N14_to_n_F17_reaclib)*Y(N14)*state.rho - screened_rates(k_He4_N14_to_p_O17_reaclib)*Y(N14)*state.rho - screened_rates(k_He4_N15_to_F19_reaclib)*Y(N15)*state.rho - screened_rates(k_He4_N15_to_n_F18_reaclib)*Y(N15)*state.rho - screened_rates(k_He4_N15_to_p_O18_reaclib)*Y(N15)*state.rho - screened_rates(k_He4_Na21_to_Al25_reaclib)*Y(Na21)*state.rho - screened_rates(k_He4_Na21_to_p_Mg24_reaclib)*Y(Na21)*state.rho - screened_rates(k_He4_Na22_to_Al26_reaclib)*Y(Na22)*state.rho - screened_rates(k_He4_Na22_to_n_Al25_reaclib)*Y(Na22)*state.rho - screened_rates(k_He4_Na22_to_p_Mg25_reaclib)*Y(Na22)*state.rho - screened_rates(k_He4_Na23_to_Al27_reaclib)*Y(Na23)*state.rho - screened_rates(k_He4_Na23_to_n_Al26_reaclib)*Y(Na23)*state.rho - screened_rates(k_He4_Na23_to_p_Mg26_reaclib)*Y(Na23)*state.rho - screened_rates(k_He4_Ne18_to_p_Na21_reaclib)*Y(Ne18)*state.rho - screened_rates(k_He4_Ne19_to_Mg23_reaclib)*Y(Ne19)*state.rho - screened_rates(k_He4_Ne19_to_p_Na22_reaclib)*Y(Ne19)*state.rho - screened_rates(k_He4_Ne20_to_C12_C12_reaclib)*Y(Ne20)*state.rho - screened_rates(k_He4_Ne20_to_Mg24_reaclib)*Y(Ne20)*state.rho - screened_rates(k_He4_Ne20_to_n_Mg23_reaclib)*Y(Ne20)*state.rho - screened_rates(k_He4_Ne20_to_p_Na23_reaclib)*Y(Ne20)*state.rho - screened_rates(k_He4_Ne21_to_Mg25_reaclib)*Y(Ne21)*state.rho - screened_rates(k_He4_Ne21_to_n_Mg24_reaclib)*Y(Ne21)*state.rho - screened_rates(k_He4_Ne22_to_Mg26_reaclib)*Y(Ne22)*state.rho - screened_rates(k_He4_Ne22_to_n_Mg25_reaclib)*Y(Ne22)*state.rho - screened_rates(k_He4_Ni56_to_Zn60_reaclib)*Y(Ni56)*state.rho - screened_rates(k_He4_Ni56_to_n_Zn59_reaclib)*Y(Ni56)*state.rho - screened_rates(k_He4_Ni56_to_p_Cu59_reaclib)*Y(Ni56)*state.rho - screened_rates(k_He4_Ni57_to_Zn61_reaclib)*Y(Ni57)*state.rho - screened_rates(k_He4_Ni57_to_n_Zn60_reaclib)*Y(Ni57)*state.rho - screened_rates(k_He4_Ni57_to_p_Cu60_reaclib)*Y(Ni57)*state.rho - screened_rates(k_He4_Ni58_to_Zn62_reaclib)*Y(Ni58)*state.rho - screened_rates(k_He4_Ni58_to_n_Zn61_reaclib)*Y(Ni58)*state.rho - screened_rates(k_He4_Ni58_to_p_Cu61_reaclib)*Y(Ni58)*state.rho - screened_rates(k_He4_Ni59_to_Zn63_reaclib)*Y(Ni59)*state.rho - screened_rates(k_He4_Ni59_to_n_Zn62_reaclib)*Y(Ni59)*state.rho - screened_rates(k_He4_Ni59_to_p_Cu62_reaclib)*Y(Ni59)*state.rho - screened_rates(k_He4_Ni60_to_Zn64_reaclib)*Y(Ni60)*state.rho - screened_rates(k_He4_Ni60_to_n_Zn63_reaclib)*Y(Ni60)*state.rho - screened_rates(k_He4_Ni60_to_p_Cu63_reaclib)*Y(Ni60)*state.rho - screened_rates(k_He4_Ni61_to_Zn65_reaclib)*Y(Ni61)*state.rho - screened_rates(k_He4_Ni61_to_n_Zn64_reaclib)*Y(Ni61)*state.rho - screened_rates(k_He4_Ni61_to_p_Cu64_reaclib)*Y(Ni61)*state.rho - screened_rates(k_He4_Ni62_to_Zn66_reaclib)*Y(Ni62)*state.rho - screened_rates(k_He4_Ni62_to_n_Zn65_reaclib)*Y(Ni62)*state.rho - screened_rates(k_He4_Ni62_to_p_Cu65_reaclib)*Y(Ni62)*state.rho - screened_rates(k_He4_Ni63_to_n_Zn66_reaclib)*Y(Ni63)*state.rho - screened_rates(k_He4_O14_to_Ne18_reaclib)*Y(O14)*state.rho - screened_rates(k_He4_O14_to_p_F17_reaclib)*Y(O14)*state.rho - screened_rates(k_He4_O15_to_Ne19_reaclib)*Y(O15)*state.rho - screened_rates(k_He4_O15_to_n_Ne18_reaclib)*Y(O15)*state.rho - screened_rates(k_He4_O15_to_p_F18_reaclib)*Y(O15)*state.rho - screened_rates(k_He4_O16_to_Ne20_reaclib)*Y(O16)*state.rho - screened_rates(k_He4_O16_to_n_Ne19_reaclib)*Y(O16)*state.rho - screened_rates(k_He4_O16_to_p_F19_reaclib)*Y(O16)*state.rho - screened_rates(k_He4_O17_to_Ne21_reaclib)*Y(O17)*state.rho - screened_rates(k_He4_O17_to_n_Ne20_reaclib)*Y(O17)*state.rho - screened_rates(k_He4_O18_to_Ne22_reaclib)*Y(O18)*state.rho - screened_rates(k_He4_O18_to_n_Ne21_reaclib)*Y(O18)*state.rho - screened_rates(k_He4_P29_to_Cl33_reaclib)*Y(P29)*state.rho - screened_rates(k_He4_P29_to_p_S32_reaclib)*Y(P29)*state.rho - screened_rates(k_He4_P30_to_Cl34_reaclib)*Y(P30)*state.rho - screened_rates(k_He4_P30_to_n_Cl33_reaclib)*Y(P30)*state.rho - screened_rates(k_He4_P30_to_p_S33_reaclib)*Y(P30)*state.rho - screened_rates(k_He4_P31_to_Cl35_reaclib)*Y(P31)*state.rho - screened_rates(k_He4_P31_to_n_Cl34_reaclib)*Y(P31)*state.rho - screened_rates(k_He4_P31_to_p_S34_reaclib)*Y(P31)*state.rho - screened_rates(k_He4_P32_to_Cl36_reaclib)*Y(P32)*state.rho - screened_rates(k_He4_P32_to_n_Cl35_reaclib)*Y(P32)*state.rho - screened_rates(k_He4_P32_to_p_S35_reaclib)*Y(P32)*state.rho - screened_rates(k_He4_P33_to_Cl37_reaclib)*Y(P33)*state.rho - screened_rates(k_He4_P33_to_n_Cl36_reaclib)*Y(P33)*state.rho - screened_rates(k_He4_P33_to_p_S36_reaclib)*Y(P33)*state.rho - screened_rates(k_He4_S32_to_Ar36_reaclib)*Y(S32)*state.rho - screened_rates(k_He4_S32_to_p_Cl35_reaclib)*Y(S32)*state.rho - screened_rates(k_He4_S33_to_Ar37_reaclib)*Y(S33)*state.rho - screened_rates(k_He4_S33_to_n_Ar36_reaclib)*Y(S33)*state.rho - screened_rates(k_He4_S33_to_p_Cl36_reaclib)*Y(S33)*state.rho - screened_rates(k_He4_S34_to_Ar38_reaclib)*Y(S34)*state.rho - screened_rates(k_He4_S34_to_n_Ar37_reaclib)*Y(S34)*state.rho - screened_rates(k_He4_S34_to_p_Cl37_reaclib)*Y(S34)*state.rho - screened_rates(k_He4_S35_to_Ar39_reaclib)*Y(S35)*state.rho - screened_rates(k_He4_S35_to_n_Ar38_reaclib)*Y(S35)*state.rho - screened_rates(k_He4_S36_to_Ar40_reaclib)*Y(S36)*state.rho - screened_rates(k_He4_S36_to_n_Ar39_reaclib)*Y(S36)*state.rho - screened_rates(k_He4_Sc43_to_V47_reaclib)*Y(Sc43)*state.rho - screened_rates(k_He4_Sc43_to_n_V46_reaclib)*Y(Sc43)*state.rho - screened_rates(k_He4_Sc43_to_p_Ti46_reaclib)*Y(Sc43)*state.rho - screened_rates(k_He4_Sc44_to_V48_reaclib)*Y(Sc44)*state.rho - screened_rates(k_He4_Sc44_to_n_V47_reaclib)*Y(Sc44)*state.rho - screened_rates(k_He4_Sc44_to_p_Ti47_reaclib)*Y(Sc44)*state.rho - screened_rates(k_He4_Sc45_to_V49_reaclib)*Y(Sc45)*state.rho - screened_rates(k_He4_Sc45_to_n_V48_reaclib)*Y(Sc45)*state.rho - screened_rates(k_He4_Sc45_to_p_Ti48_reaclib)*Y(Sc45)*state.rho - screened_rates(k_He4_Sc46_to_V50_reaclib)*Y(Sc46)*state.rho - screened_rates(k_He4_Sc46_to_n_V49_reaclib)*Y(Sc46)*state.rho - screened_rates(k_He4_Sc46_to_p_Ti49_reaclib)*Y(Sc46)*state.rho - screened_rates(k_He4_Sc47_to_V51_reaclib)*Y(Sc47)*state.rho - screened_rates(k_He4_Sc47_to_n_V50_reaclib)*Y(Sc47)*state.rho - screened_rates(k_He4_Sc47_to_p_Ti50_reaclib)*Y(Sc47)*state.rho - screened_rates(k_He4_Sc48_to_V52_reaclib)*Y(Sc48)*state.rho - screened_rates(k_He4_Sc48_to_n_V51_reaclib)*Y(Sc48)*state.rho - screened_rates(k_He4_Sc48_to_p_Ti51_reaclib)*Y(Sc48)*state.rho - screened_rates(k_He4_Sc49_to_n_V52_reaclib)*Y(Sc49)*state.rho - screened_rates(k_He4_Si28_to_C12_Ne20_reaclib)*Y(Si28)*state.rho - screened_rates(k_He4_Si28_to_O16_O16_reaclib)*Y(Si28)*state.rho - screened_rates(k_He4_Si28_to_S32_reaclib)*Y(Si28)*state.rho - screened_rates(k_He4_Si28_to_p_P31_reaclib)*Y(Si28)*state.rho - screened_rates(k_He4_Si29_to_S33_reaclib)*Y(Si29)*state.rho - screened_rates(k_He4_Si29_to_n_S32_reaclib)*Y(Si29)*state.rho - screened_rates(k_He4_Si29_to_p_P32_reaclib)*Y(Si29)*state.rho - screened_rates(k_He4_Si30_to_S34_reaclib)*Y(Si30)*state.rho - screened_rates(k_He4_Si30_to_n_S33_reaclib)*Y(Si30)*state.rho - screened_rates(k_He4_Si30_to_p_P33_reaclib)*Y(Si30)*state.rho - screened_rates(k_He4_Si31_to_S35_reaclib)*Y(Si31)*state.rho - screened_rates(k_He4_Si31_to_n_S34_reaclib)*Y(Si31)*state.rho - screened_rates(k_He4_Si32_to_S36_reaclib)*Y(Si32)*state.rho - screened_rates(k_He4_Si32_to_n_S35_reaclib)*Y(Si32)*state.rho - screened_rates(k_He4_Ti44_to_Cr48_reaclib)*Y(Ti44)*state.rho - screened_rates(k_He4_Ti44_to_p_V47_reaclib)*Y(Ti44)*state.rho - screened_rates(k_He4_Ti45_to_Cr49_reaclib)*Y(Ti45)*state.rho - screened_rates(k_He4_Ti45_to_n_Cr48_reaclib)*Y(Ti45)*state.rho - screened_rates(k_He4_Ti45_to_p_V48_reaclib)*Y(Ti45)*state.rho - screened_rates(k_He4_Ti46_to_Cr50_reaclib)*Y(Ti46)*state.rho - screened_rates(k_He4_Ti46_to_n_Cr49_reaclib)*Y(Ti46)*state.rho - screened_rates(k_He4_Ti46_to_p_V49_reaclib)*Y(Ti46)*state.rho - screened_rates(k_He4_Ti47_to_Cr51_reaclib)*Y(Ti47)*state.rho - screened_rates(k_He4_Ti47_to_n_Cr50_reaclib)*Y(Ti47)*state.rho - screened_rates(k_He4_Ti47_to_p_V50_reaclib)*Y(Ti47)*state.rho - screened_rates(k_He4_Ti48_to_Cr52_reaclib)*Y(Ti48)*state.rho - screened_rates(k_He4_Ti48_to_n_Cr51_reaclib)*Y(Ti48)*state.rho - screened_rates(k_He4_Ti48_to_p_V51_reaclib)*Y(Ti48)*state.rho - screened_rates(k_He4_Ti49_to_Cr53_reaclib)*Y(Ti49)*state.rho - screened_rates(k_He4_Ti49_to_n_Cr52_reaclib)*Y(Ti49)*state.rho - screened_rates(k_He4_Ti49_to_p_V52_reaclib)*Y(Ti49)*state.rho - screened_rates(k_He4_Ti50_to_Cr54_reaclib)*Y(Ti50)*state.rho - screened_rates(k_He4_Ti50_to_n_Cr53_reaclib)*Y(Ti50)*state.rho - screened_rates(k_He4_Ti51_to_n_Cr54_reaclib)*Y(Ti51)*state.rho - screened_rates(k_He4_V46_to_Mn50_reaclib)*Y(V46)*state.rho - screened_rates(k_He4_V46_to_p_Cr49_reaclib)*Y(V46)*state.rho - screened_rates(k_He4_V47_to_Mn51_reaclib)*Y(V47)*state.rho - screened_rates(k_He4_V47_to_n_Mn50_reaclib)*Y(V47)*state.rho - screened_rates(k_He4_V47_to_p_Cr50_reaclib)*Y(V47)*state.rho - screened_rates(k_He4_V48_to_Mn52_reaclib)*Y(V48)*state.rho - screened_rates(k_He4_V48_to_n_Mn51_reaclib)*Y(V48)*state.rho - screened_rates(k_He4_V48_to_p_Cr51_reaclib)*Y(V48)*state.rho - screened_rates(k_He4_V49_to_Mn53_reaclib)*Y(V49)*state.rho - screened_rates(k_He4_V49_to_n_Mn52_reaclib)*Y(V49)*state.rho - screened_rates(k_He4_V49_to_p_Cr52_reaclib)*Y(V49)*state.rho - screened_rates(k_He4_V50_to_Mn54_reaclib)*Y(V50)*state.rho - screened_rates(k_He4_V50_to_n_Mn53_reaclib)*Y(V50)*state.rho - screened_rates(k_He4_V50_to_p_Cr53_reaclib)*Y(V50)*state.rho - screened_rates(k_He4_V51_to_Mn55_reaclib)*Y(V51)*state.rho - screened_rates(k_He4_V51_to_n_Mn54_reaclib)*Y(V51)*state.rho - screened_rates(k_He4_V51_to_p_Cr54_reaclib)*Y(V51)*state.rho - screened_rates(k_He4_V52_to_n_Mn55_reaclib)*Y(V52)*state.rho - screened_rates(k_He4_Zn59_to_Ge63_reaclib)*Y(Zn59)*state.rho - screened_rates(k_He4_Zn59_to_p_Ga62_reaclib)*Y(Zn59)*state.rho - screened_rates(k_He4_Zn60_to_Ge64_reaclib)*Y(Zn60)*state.rho - screened_rates(k_He4_Zn60_to_n_Ge63_reaclib)*Y(Zn60)*state.rho - screened_rates(k_He4_Zn60_to_p_Ga63_reaclib)*Y(Zn60)*state.rho - screened_rates(k_He4_Zn61_to_n_Ge64_reaclib)*Y(Zn61)*state.rho - screened_rates(k_He4_Zn61_to_p_Ga64_reaclib)*Y(Zn61)*state.rho - screened_rates(k_He4_d_to_Li6_reaclib)*Y(H2)*state.rho - screened_rates(k_He4_to_d_d_reaclib) - screened_rates(k_He4_to_n_He3_reaclib) - 2.0*screened_rates(k_d_He4_He4_to_p_Be9_reaclib)*Y(He4)*Y(H2)*amrex::Math::powi<2>(state.rho) - 2.0*screened_rates(k_n_He4_He4_to_Be9_reaclib)*Y(He4)*Y(N)*amrex::Math::powi<2>(state.rho) - 2.0*screened_rates(k_n_He4_He4_to_d_Li7_reaclib)*Y(He4)*Y(N)*amrex::Math::powi<2>(state.rho) - 2.0*screened_rates(k_n_p_He4_He4_to_He3_Li7_reaclib)*Y(He4)*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho) - 2.0*screened_rates(k_n_p_He4_He4_to_p_Be9_reaclib)*Y(He4)*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho) - screened_rates(k_n_p_He4_to_Li6_reaclib)*Y(N)*Y(H1)*amrex::Math::powi<2>(state.rho) - 2.0*screened_rates(k_p_He4_He4_to_d_Be7_reaclib)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho) - 2.0*screened_rates(k_p_He4_He4_to_n_B8_reaclib)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho) - screened_rates(k_p_He4_to_d_He3_reaclib)*Y(H1)*state.rho - 1.0*screened_rates(k_p_p_He4_He4_to_He3_Be7_reaclib)*Y(He4)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<3>(state.rho) - 0.5*screened_rates(k_p_p_He4_to_He3_He3_reaclib)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho); + scratch = -screened_rates(k_Al25_He4_to_P29_reaclib)*Y(Al25)*state.rho - screened_rates(k_Al25_He4_to_p_Si28_reaclib)*Y(Al25)*state.rho - screened_rates(k_Al26_He4_to_P30_reaclib)*Y(Al26)*state.rho - screened_rates(k_Al26_He4_to_n_P29_derived)*Y(Al26)*state.rho - screened_rates(k_Al26_He4_to_p_Si29_reaclib)*Y(Al26)*state.rho - screened_rates(k_Al27_He4_to_P31_reaclib)*Y(Al27)*state.rho - screened_rates(k_Al27_He4_to_n_P30_reaclib)*Y(Al27)*state.rho - screened_rates(k_Al27_He4_to_p_Si30_reaclib)*Y(Al27)*state.rho - screened_rates(k_Ar36_He4_to_Ca40_reaclib)*Y(Ar36)*state.rho - screened_rates(k_Ar36_He4_to_p_K39_derived)*Y(Ar36)*state.rho - screened_rates(k_Ar37_He4_to_Ca41_reaclib)*Y(Ar37)*state.rho - screened_rates(k_Ar37_He4_to_n_Ca40_derived)*Y(Ar37)*state.rho - screened_rates(k_Ar37_He4_to_p_K40_derived)*Y(Ar37)*state.rho - screened_rates(k_Ar38_He4_to_Ca42_reaclib)*Y(Ar38)*state.rho - screened_rates(k_Ar38_He4_to_n_Ca41_derived)*Y(Ar38)*state.rho - screened_rates(k_Ar38_He4_to_p_K41_derived)*Y(Ar38)*state.rho - screened_rates(k_Ar39_He4_to_Ca43_reaclib)*Y(Ar39)*state.rho - screened_rates(k_Ar39_He4_to_n_Ca42_derived)*Y(Ar39)*state.rho - screened_rates(k_Ar40_He4_to_Ca44_reaclib)*Y(Ar40)*state.rho - screened_rates(k_Ar40_He4_to_n_Ca43_derived)*Y(Ar40)*state.rho - screened_rates(k_B10_He4_to_n_N13_reaclib)*Y(B10)*state.rho - screened_rates(k_B10_He4_to_p_C13_reaclib)*Y(B10)*state.rho - screened_rates(k_B11_He4_to_n_N14_reaclib)*Y(B11)*state.rho - screened_rates(k_B11_He4_to_p_C14_reaclib)*Y(B11)*state.rho - screened_rates(k_Be7_He4_to_p_B10_derived)*Y(Be7)*state.rho - screened_rates(k_Be9_He4_to_n_C12_reaclib)*Y(Be9)*state.rho - screened_rates(k_C12_He4_to_O16_reaclib)*Y(C12)*state.rho - screened_rates(k_C12_He4_to_n_O15_derived)*Y(C12)*state.rho - screened_rates(k_C12_He4_to_p_N15_derived)*Y(C12)*state.rho - screened_rates(k_C13_He4_to_n_O16_reaclib)*Y(C13)*state.rho - screened_rates(k_C14_He4_to_O18_reaclib)*Y(C14)*state.rho - screened_rates(k_C14_He4_to_n_O17_derived)*Y(C14)*state.rho - screened_rates(k_Ca40_He4_to_Ti44_reaclib)*Y(Ca40)*state.rho - screened_rates(k_Ca40_He4_to_p_Sc43_derived)*Y(Ca40)*state.rho - screened_rates(k_Ca41_He4_to_Ti45_reaclib)*Y(Ca41)*state.rho - screened_rates(k_Ca41_He4_to_n_Ti44_derived)*Y(Ca41)*state.rho - screened_rates(k_Ca41_He4_to_p_Sc44_derived)*Y(Ca41)*state.rho - screened_rates(k_Ca42_He4_to_Ti46_reaclib)*Y(Ca42)*state.rho - screened_rates(k_Ca42_He4_to_n_Ti45_derived)*Y(Ca42)*state.rho - screened_rates(k_Ca42_He4_to_p_Sc45_derived)*Y(Ca42)*state.rho - screened_rates(k_Ca43_He4_to_Ti47_reaclib)*Y(Ca43)*state.rho - screened_rates(k_Ca43_He4_to_n_Ti46_reaclib)*Y(Ca43)*state.rho - screened_rates(k_Ca43_He4_to_p_Sc46_derived)*Y(Ca43)*state.rho - screened_rates(k_Ca44_He4_to_Ti48_reaclib)*Y(Ca44)*state.rho - screened_rates(k_Ca44_He4_to_n_Ti47_derived)*Y(Ca44)*state.rho - screened_rates(k_Ca44_He4_to_p_Sc47_derived)*Y(Ca44)*state.rho - screened_rates(k_Ca45_He4_to_Ti49_reaclib)*Y(Ca45)*state.rho - screened_rates(k_Ca45_He4_to_n_Ti48_reaclib)*Y(Ca45)*state.rho - screened_rates(k_Ca45_He4_to_p_Sc48_derived)*Y(Ca45)*state.rho - screened_rates(k_Ca46_He4_to_Ti50_reaclib)*Y(Ca46)*state.rho - screened_rates(k_Ca46_He4_to_n_Ti49_derived)*Y(Ca46)*state.rho - screened_rates(k_Ca46_He4_to_p_Sc49_derived)*Y(Ca46)*state.rho - screened_rates(k_Ca47_He4_to_Ti51_reaclib)*Y(Ca47)*state.rho - screened_rates(k_Ca47_He4_to_n_Ti50_reaclib)*Y(Ca47)*state.rho - screened_rates(k_Ca48_He4_to_n_Ti51_derived)*Y(Ca48)*state.rho - screened_rates(k_Cl33_He4_to_K37_reaclib)*Y(Cl33)*state.rho - screened_rates(k_Cl33_He4_to_p_Ar36_reaclib)*Y(Cl33)*state.rho - screened_rates(k_Cl34_He4_to_K38_reaclib)*Y(Cl34)*state.rho - screened_rates(k_Cl34_He4_to_n_K37_derived)*Y(Cl34)*state.rho - screened_rates(k_Cl34_He4_to_p_Ar37_reaclib)*Y(Cl34)*state.rho - screened_rates(k_Cl35_He4_to_K39_reaclib)*Y(Cl35)*state.rho - screened_rates(k_Cl35_He4_to_n_K38_derived)*Y(Cl35)*state.rho - screened_rates(k_Cl35_He4_to_p_Ar38_reaclib)*Y(Cl35)*state.rho - screened_rates(k_Cl36_He4_to_K40_reaclib)*Y(Cl36)*state.rho - screened_rates(k_Cl36_He4_to_n_K39_derived)*Y(Cl36)*state.rho - screened_rates(k_Cl36_He4_to_p_Ar39_derived)*Y(Cl36)*state.rho - screened_rates(k_Cl37_He4_to_K41_reaclib)*Y(Cl37)*state.rho - screened_rates(k_Cl37_He4_to_n_K40_derived)*Y(Cl37)*state.rho - screened_rates(k_Cl37_He4_to_p_Ar40_derived)*Y(Cl37)*state.rho - screened_rates(k_Co53_He4_to_Cu57_reaclib)*Y(Co53)*state.rho - screened_rates(k_Co53_He4_to_p_Ni56_reaclib)*Y(Co53)*state.rho - screened_rates(k_Co54_He4_to_Cu58_reaclib)*Y(Co54)*state.rho - screened_rates(k_Co54_He4_to_n_Cu57_derived)*Y(Co54)*state.rho - screened_rates(k_Co54_He4_to_p_Ni57_reaclib)*Y(Co54)*state.rho - screened_rates(k_Co55_He4_to_Cu59_reaclib)*Y(Co55)*state.rho - screened_rates(k_Co55_He4_to_n_Cu58_derived)*Y(Co55)*state.rho - screened_rates(k_Co55_He4_to_p_Ni58_reaclib)*Y(Co55)*state.rho - screened_rates(k_Co56_He4_to_Cu60_reaclib)*Y(Co56)*state.rho - screened_rates(k_Co56_He4_to_n_Cu59_derived)*Y(Co56)*state.rho - screened_rates(k_Co56_He4_to_p_Ni59_reaclib)*Y(Co56)*state.rho - screened_rates(k_Co57_He4_to_Cu61_reaclib)*Y(Co57)*state.rho - screened_rates(k_Co57_He4_to_n_Cu60_derived)*Y(Co57)*state.rho - screened_rates(k_Co57_He4_to_p_Ni60_reaclib)*Y(Co57)*state.rho - screened_rates(k_Co58_He4_to_Cu62_reaclib)*Y(Co58)*state.rho - screened_rates(k_Co58_He4_to_n_Cu61_derived)*Y(Co58)*state.rho - screened_rates(k_Co58_He4_to_p_Ni61_derived)*Y(Co58)*state.rho - screened_rates(k_Co59_He4_to_Cu63_reaclib)*Y(Co59)*state.rho - screened_rates(k_Co59_He4_to_n_Cu62_derived)*Y(Co59)*state.rho - screened_rates(k_Co59_He4_to_p_Ni62_derived)*Y(Co59)*state.rho - screened_rates(k_Cr48_He4_to_Fe52_reaclib)*Y(Cr48)*state.rho - screened_rates(k_Cr48_He4_to_p_Mn51_reaclib)*Y(Cr48)*state.rho - screened_rates(k_Cr49_He4_to_Fe53_reaclib)*Y(Cr49)*state.rho - screened_rates(k_Cr49_He4_to_n_Fe52_derived)*Y(Cr49)*state.rho - screened_rates(k_Cr49_He4_to_p_Mn52_reaclib)*Y(Cr49)*state.rho - screened_rates(k_Cr50_He4_to_Fe54_reaclib)*Y(Cr50)*state.rho - screened_rates(k_Cr50_He4_to_n_Fe53_derived)*Y(Cr50)*state.rho - screened_rates(k_Cr50_He4_to_p_Mn53_derived)*Y(Cr50)*state.rho - screened_rates(k_Cr51_He4_to_Fe55_reaclib)*Y(Cr51)*state.rho - screened_rates(k_Cr51_He4_to_n_Fe54_derived)*Y(Cr51)*state.rho - screened_rates(k_Cr51_He4_to_p_Mn54_derived)*Y(Cr51)*state.rho - screened_rates(k_Cr52_He4_to_Fe56_reaclib)*Y(Cr52)*state.rho - screened_rates(k_Cr52_He4_to_n_Fe55_derived)*Y(Cr52)*state.rho - screened_rates(k_Cr52_He4_to_p_Mn55_derived)*Y(Cr52)*state.rho - screened_rates(k_Cr53_He4_to_Fe57_reaclib)*Y(Cr53)*state.rho - screened_rates(k_Cr53_He4_to_n_Fe56_derived)*Y(Cr53)*state.rho - screened_rates(k_Cr54_He4_to_Fe58_reaclib)*Y(Cr54)*state.rho - screened_rates(k_Cr54_He4_to_n_Fe57_derived)*Y(Cr54)*state.rho - screened_rates(k_Cu57_He4_to_p_Zn60_reaclib)*Y(Cu57)*state.rho - screened_rates(k_Cu58_He4_to_Ga62_reaclib)*Y(Cu58)*state.rho - screened_rates(k_Cu58_He4_to_p_Zn61_derived)*Y(Cu58)*state.rho - screened_rates(k_Cu59_He4_to_Ga63_reaclib)*Y(Cu59)*state.rho - screened_rates(k_Cu59_He4_to_n_Ga62_derived)*Y(Cu59)*state.rho - screened_rates(k_Cu59_He4_to_p_Zn62_derived)*Y(Cu59)*state.rho - screened_rates(k_Cu60_He4_to_Ga64_reaclib)*Y(Cu60)*state.rho - screened_rates(k_Cu60_He4_to_n_Ga63_derived)*Y(Cu60)*state.rho - screened_rates(k_Cu60_He4_to_p_Zn63_derived)*Y(Cu60)*state.rho - screened_rates(k_Cu61_He4_to_n_Ga64_derived)*Y(Cu61)*state.rho - screened_rates(k_Cu61_He4_to_p_Zn64_derived)*Y(Cu61)*state.rho - screened_rates(k_Cu62_He4_to_p_Zn65_derived)*Y(Cu62)*state.rho - screened_rates(k_Cu63_He4_to_p_Zn66_derived)*Y(Cu63)*state.rho - screened_rates(k_F17_He4_to_Na21_reaclib)*Y(F17)*state.rho - screened_rates(k_F17_He4_to_p_Ne20_derived)*Y(F17)*state.rho - screened_rates(k_F18_He4_to_Na22_reaclib)*Y(F18)*state.rho - screened_rates(k_F18_He4_to_n_Na21_derived)*Y(F18)*state.rho - screened_rates(k_F18_He4_to_p_Ne21_reaclib)*Y(F18)*state.rho - screened_rates(k_F19_He4_to_Na23_reaclib)*Y(F19)*state.rho - screened_rates(k_F19_He4_to_n_Na22_derived)*Y(F19)*state.rho - screened_rates(k_F19_He4_to_p_Ne22_reaclib)*Y(F19)*state.rho - screened_rates(k_Fe52_He4_to_Ni56_reaclib)*Y(Fe52)*state.rho - screened_rates(k_Fe52_He4_to_p_Co55_reaclib)*Y(Fe52)*state.rho - screened_rates(k_Fe53_He4_to_Ni57_reaclib)*Y(Fe53)*state.rho - screened_rates(k_Fe53_He4_to_n_Ni56_derived)*Y(Fe53)*state.rho - screened_rates(k_Fe53_He4_to_p_Co56_reaclib)*Y(Fe53)*state.rho - screened_rates(k_Fe54_He4_to_Ni58_reaclib)*Y(Fe54)*state.rho - screened_rates(k_Fe54_He4_to_n_Ni57_derived)*Y(Fe54)*state.rho - screened_rates(k_Fe54_He4_to_p_Co57_derived)*Y(Fe54)*state.rho - screened_rates(k_Fe55_He4_to_Ni59_reaclib)*Y(Fe55)*state.rho - screened_rates(k_Fe55_He4_to_n_Ni58_derived)*Y(Fe55)*state.rho - screened_rates(k_Fe55_He4_to_p_Co58_derived)*Y(Fe55)*state.rho - screened_rates(k_Fe56_He4_to_Ni60_reaclib)*Y(Fe56)*state.rho - screened_rates(k_Fe56_He4_to_n_Ni59_derived)*Y(Fe56)*state.rho - screened_rates(k_Fe56_He4_to_p_Co59_derived)*Y(Fe56)*state.rho - screened_rates(k_Fe57_He4_to_Ni61_reaclib)*Y(Fe57)*state.rho - screened_rates(k_Fe57_He4_to_n_Ni60_derived)*Y(Fe57)*state.rho - screened_rates(k_Fe58_He4_to_Ni62_reaclib)*Y(Fe58)*state.rho - screened_rates(k_Fe58_He4_to_n_Ni61_derived)*Y(Fe58)*state.rho - screened_rates(k_He3_He4_to_Be7_reaclib)*Y(He3)*state.rho - screened_rates(k_He3_He4_to_p_Li6_derived)*Y(He3)*state.rho - 1.5*screened_rates(k_He4_He4_He4_to_C12_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - 1.5*screened_rates(k_He4_He4_He4_to_p_B11_derived)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) - 2.0*screened_rates(k_He4_He4_n_to_Be9_reaclib)*Y(He4)*Y(N)*amrex::Math::powi<2>(state.rho) - 2.0*screened_rates(k_He4_He4_n_to_d_Li7_derived)*Y(He4)*Y(N)*amrex::Math::powi<2>(state.rho) - 2.0*screened_rates(k_He4_He4_p_n_to_He3_Li7_derived)*Y(He4)*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho) - 2.0*screened_rates(k_He4_He4_p_n_to_p_Be9_derived)*Y(He4)*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho) - 1.0*screened_rates(k_He4_He4_p_p_to_He3_Be7_derived)*Y(He4)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<3>(state.rho) - 2.0*screened_rates(k_He4_He4_p_to_d_Be7_derived)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho) - 2.0*screened_rates(k_He4_He4_p_to_n_B8_derived)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho) - 2.0*screened_rates(k_He4_He4_to_n_Be7_derived)*Y(He4)*state.rho - 2.0*screened_rates(k_He4_He4_to_p_Li7_derived)*Y(He4)*state.rho - screened_rates(k_He4_p_n_to_Li6_reaclib)*Y(N)*Y(H1)*amrex::Math::powi<2>(state.rho) - 0.5*screened_rates(k_He4_p_p_to_He3_He3_derived)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<2>(state.rho) - screened_rates(k_He4_p_to_d_He3_derived)*Y(H1)*state.rho - screened_rates(k_He4_to_d_d_derived) - screened_rates(k_He4_to_n_He3_derived) - screened_rates(k_K37_He4_to_p_Ca40_reaclib)*Y(K37)*state.rho - screened_rates(k_K38_He4_to_p_Ca41_reaclib)*Y(K38)*state.rho - screened_rates(k_K39_He4_to_Sc43_reaclib)*Y(K39)*state.rho - screened_rates(k_K39_He4_to_p_Ca42_derived)*Y(K39)*state.rho - screened_rates(k_K40_He4_to_Sc44_reaclib)*Y(K40)*state.rho - screened_rates(k_K40_He4_to_n_Sc43_derived)*Y(K40)*state.rho - screened_rates(k_K40_He4_to_p_Ca43_reaclib)*Y(K40)*state.rho - screened_rates(k_K41_He4_to_Sc45_reaclib)*Y(K41)*state.rho - screened_rates(k_K41_He4_to_n_Sc44_reaclib)*Y(K41)*state.rho - screened_rates(k_K41_He4_to_p_Ca44_reaclib)*Y(K41)*state.rho - screened_rates(k_Li6_He4_to_B10_reaclib)*Y(Li6)*state.rho - screened_rates(k_Li6_He4_to_p_Be9_derived)*Y(Li6)*state.rho - screened_rates(k_Li7_He4_to_B11_reaclib)*Y(Li7)*state.rho - screened_rates(k_Li7_He4_to_n_B10_derived)*Y(Li7)*state.rho - screened_rates(k_Mg23_He4_to_p_Al26_reaclib)*Y(Mg23)*state.rho - screened_rates(k_Mg24_He4_to_C12_O16_derived)*Y(Mg24)*state.rho - screened_rates(k_Mg24_He4_to_Si28_reaclib)*Y(Mg24)*state.rho - screened_rates(k_Mg24_He4_to_p_Al27_derived)*Y(Mg24)*state.rho - screened_rates(k_Mg25_He4_to_Si29_reaclib)*Y(Mg25)*state.rho - screened_rates(k_Mg25_He4_to_n_Si28_reaclib)*Y(Mg25)*state.rho - screened_rates(k_Mg26_He4_to_Si30_reaclib)*Y(Mg26)*state.rho - screened_rates(k_Mg26_He4_to_n_Si29_reaclib)*Y(Mg26)*state.rho - screened_rates(k_Mn50_He4_to_Co54_reaclib)*Y(Mn50)*state.rho - screened_rates(k_Mn50_He4_to_n_Co53_derived)*Y(Mn50)*state.rho - screened_rates(k_Mn50_He4_to_p_Fe53_reaclib)*Y(Mn50)*state.rho - screened_rates(k_Mn51_He4_to_Co55_reaclib)*Y(Mn51)*state.rho - screened_rates(k_Mn51_He4_to_n_Co54_derived)*Y(Mn51)*state.rho - screened_rates(k_Mn51_He4_to_p_Fe54_reaclib)*Y(Mn51)*state.rho - screened_rates(k_Mn52_He4_to_Co56_reaclib)*Y(Mn52)*state.rho - screened_rates(k_Mn52_He4_to_n_Co55_derived)*Y(Mn52)*state.rho - screened_rates(k_Mn52_He4_to_p_Fe55_reaclib)*Y(Mn52)*state.rho - screened_rates(k_Mn53_He4_to_Co57_reaclib)*Y(Mn53)*state.rho - screened_rates(k_Mn53_He4_to_n_Co56_derived)*Y(Mn53)*state.rho - screened_rates(k_Mn53_He4_to_p_Fe56_reaclib)*Y(Mn53)*state.rho - screened_rates(k_Mn54_He4_to_Co58_reaclib)*Y(Mn54)*state.rho - screened_rates(k_Mn54_He4_to_n_Co57_derived)*Y(Mn54)*state.rho - screened_rates(k_Mn54_He4_to_p_Fe57_derived)*Y(Mn54)*state.rho - screened_rates(k_Mn55_He4_to_Co59_reaclib)*Y(Mn55)*state.rho - screened_rates(k_Mn55_He4_to_n_Co58_derived)*Y(Mn55)*state.rho - screened_rates(k_Mn55_He4_to_p_Fe58_derived)*Y(Mn55)*state.rho - screened_rates(k_N13_He4_to_p_O16_reaclib)*Y(N13)*state.rho - screened_rates(k_N14_He4_to_F18_reaclib)*Y(N14)*state.rho - screened_rates(k_N14_He4_to_n_F17_reaclib)*Y(N14)*state.rho - screened_rates(k_N14_He4_to_p_O17_derived)*Y(N14)*state.rho - screened_rates(k_N15_He4_to_F19_reaclib)*Y(N15)*state.rho - screened_rates(k_N15_He4_to_n_F18_derived)*Y(N15)*state.rho - screened_rates(k_N15_He4_to_p_O18_derived)*Y(N15)*state.rho - screened_rates(k_Na21_He4_to_Al25_reaclib)*Y(Na21)*state.rho - screened_rates(k_Na21_He4_to_p_Mg24_derived)*Y(Na21)*state.rho - screened_rates(k_Na22_He4_to_Al26_reaclib)*Y(Na22)*state.rho - screened_rates(k_Na22_He4_to_n_Al25_derived)*Y(Na22)*state.rho - screened_rates(k_Na22_He4_to_p_Mg25_reaclib)*Y(Na22)*state.rho - screened_rates(k_Na23_He4_to_Al27_reaclib)*Y(Na23)*state.rho - screened_rates(k_Na23_He4_to_n_Al26_derived)*Y(Na23)*state.rho - screened_rates(k_Na23_He4_to_p_Mg26_reaclib)*Y(Na23)*state.rho - screened_rates(k_Ne18_He4_to_p_Na21_reaclib)*Y(Ne18)*state.rho - screened_rates(k_Ne19_He4_to_Mg23_reaclib)*Y(Ne19)*state.rho - screened_rates(k_Ne19_He4_to_p_Na22_reaclib)*Y(Ne19)*state.rho - screened_rates(k_Ne20_He4_to_C12_C12_derived)*Y(Ne20)*state.rho - screened_rates(k_Ne20_He4_to_Mg24_reaclib)*Y(Ne20)*state.rho - screened_rates(k_Ne20_He4_to_n_Mg23_derived)*Y(Ne20)*state.rho - screened_rates(k_Ne20_He4_to_p_Na23_derived)*Y(Ne20)*state.rho - screened_rates(k_Ne21_He4_to_Mg25_reaclib)*Y(Ne21)*state.rho - screened_rates(k_Ne21_He4_to_n_Mg24_reaclib)*Y(Ne21)*state.rho - screened_rates(k_Ne22_He4_to_Mg26_reaclib)*Y(Ne22)*state.rho - screened_rates(k_Ne22_He4_to_n_Mg25_reaclib)*Y(Ne22)*state.rho - screened_rates(k_Ni56_He4_to_Zn60_reaclib)*Y(Ni56)*state.rho - screened_rates(k_Ni56_He4_to_n_Zn59_derived)*Y(Ni56)*state.rho - screened_rates(k_Ni56_He4_to_p_Cu59_derived)*Y(Ni56)*state.rho - screened_rates(k_Ni57_He4_to_Zn61_reaclib)*Y(Ni57)*state.rho - screened_rates(k_Ni57_He4_to_n_Zn60_derived)*Y(Ni57)*state.rho - screened_rates(k_Ni57_He4_to_p_Cu60_derived)*Y(Ni57)*state.rho - screened_rates(k_Ni58_He4_to_Zn62_reaclib)*Y(Ni58)*state.rho - screened_rates(k_Ni58_He4_to_n_Zn61_derived)*Y(Ni58)*state.rho - screened_rates(k_Ni58_He4_to_p_Cu61_derived)*Y(Ni58)*state.rho - screened_rates(k_Ni59_He4_to_Zn63_reaclib)*Y(Ni59)*state.rho - screened_rates(k_Ni59_He4_to_n_Zn62_derived)*Y(Ni59)*state.rho - screened_rates(k_Ni59_He4_to_p_Cu62_derived)*Y(Ni59)*state.rho - screened_rates(k_Ni60_He4_to_Zn64_reaclib)*Y(Ni60)*state.rho - screened_rates(k_Ni60_He4_to_n_Zn63_derived)*Y(Ni60)*state.rho - screened_rates(k_Ni60_He4_to_p_Cu63_derived)*Y(Ni60)*state.rho - screened_rates(k_Ni61_He4_to_Zn65_reaclib)*Y(Ni61)*state.rho - screened_rates(k_Ni61_He4_to_n_Zn64_derived)*Y(Ni61)*state.rho - screened_rates(k_Ni61_He4_to_p_Cu64_derived)*Y(Ni61)*state.rho - screened_rates(k_Ni62_He4_to_Zn66_reaclib)*Y(Ni62)*state.rho - screened_rates(k_Ni62_He4_to_n_Zn65_derived)*Y(Ni62)*state.rho - screened_rates(k_Ni62_He4_to_p_Cu65_derived)*Y(Ni62)*state.rho - screened_rates(k_Ni63_He4_to_n_Zn66_derived)*Y(Ni63)*state.rho - screened_rates(k_O14_He4_to_Ne18_reaclib)*Y(O14)*state.rho - screened_rates(k_O14_He4_to_p_F17_reaclib)*Y(O14)*state.rho - screened_rates(k_O15_He4_to_Ne19_reaclib)*Y(O15)*state.rho - screened_rates(k_O15_He4_to_n_Ne18_derived)*Y(O15)*state.rho - screened_rates(k_O15_He4_to_p_F18_derived)*Y(O15)*state.rho - screened_rates(k_O16_He4_to_Ne20_reaclib)*Y(O16)*state.rho - screened_rates(k_O16_He4_to_n_Ne19_derived)*Y(O16)*state.rho - screened_rates(k_O16_He4_to_p_F19_derived)*Y(O16)*state.rho - screened_rates(k_O17_He4_to_Ne21_reaclib)*Y(O17)*state.rho - screened_rates(k_O17_He4_to_n_Ne20_reaclib)*Y(O17)*state.rho - screened_rates(k_O18_He4_to_Ne22_reaclib)*Y(O18)*state.rho - screened_rates(k_O18_He4_to_n_Ne21_reaclib)*Y(O18)*state.rho - screened_rates(k_P29_He4_to_Cl33_reaclib)*Y(P29)*state.rho - screened_rates(k_P29_He4_to_p_S32_reaclib)*Y(P29)*state.rho - screened_rates(k_P30_He4_to_Cl34_reaclib)*Y(P30)*state.rho - screened_rates(k_P30_He4_to_n_Cl33_derived)*Y(P30)*state.rho - screened_rates(k_P30_He4_to_p_S33_reaclib)*Y(P30)*state.rho - screened_rates(k_P31_He4_to_Cl35_reaclib)*Y(P31)*state.rho - screened_rates(k_P31_He4_to_n_Cl34_derived)*Y(P31)*state.rho - screened_rates(k_P31_He4_to_p_S34_reaclib)*Y(P31)*state.rho - screened_rates(k_P32_He4_to_Cl36_reaclib)*Y(P32)*state.rho - screened_rates(k_P32_He4_to_n_Cl35_derived)*Y(P32)*state.rho - screened_rates(k_P32_He4_to_p_S35_derived)*Y(P32)*state.rho - screened_rates(k_P33_He4_to_Cl37_reaclib)*Y(P33)*state.rho - screened_rates(k_P33_He4_to_n_Cl36_derived)*Y(P33)*state.rho - screened_rates(k_P33_He4_to_p_S36_derived)*Y(P33)*state.rho - screened_rates(k_S32_He4_to_Ar36_reaclib)*Y(S32)*state.rho - screened_rates(k_S32_He4_to_p_Cl35_derived)*Y(S32)*state.rho - screened_rates(k_S33_He4_to_Ar37_reaclib)*Y(S33)*state.rho - screened_rates(k_S33_He4_to_n_Ar36_derived)*Y(S33)*state.rho - screened_rates(k_S33_He4_to_p_Cl36_derived)*Y(S33)*state.rho - screened_rates(k_S34_He4_to_Ar38_reaclib)*Y(S34)*state.rho - screened_rates(k_S34_He4_to_n_Ar37_reaclib)*Y(S34)*state.rho - screened_rates(k_S34_He4_to_p_Cl37_reaclib)*Y(S34)*state.rho - screened_rates(k_S35_He4_to_Ar39_reaclib)*Y(S35)*state.rho - screened_rates(k_S35_He4_to_n_Ar38_reaclib)*Y(S35)*state.rho - screened_rates(k_S36_He4_to_Ar40_reaclib)*Y(S36)*state.rho - screened_rates(k_S36_He4_to_n_Ar39_derived)*Y(S36)*state.rho - screened_rates(k_Sc43_He4_to_V47_reaclib)*Y(Sc43)*state.rho - screened_rates(k_Sc43_He4_to_n_V46_derived)*Y(Sc43)*state.rho - screened_rates(k_Sc43_He4_to_p_Ti46_reaclib)*Y(Sc43)*state.rho - screened_rates(k_Sc44_He4_to_V48_reaclib)*Y(Sc44)*state.rho - screened_rates(k_Sc44_He4_to_n_V47_derived)*Y(Sc44)*state.rho - screened_rates(k_Sc44_He4_to_p_Ti47_reaclib)*Y(Sc44)*state.rho - screened_rates(k_Sc45_He4_to_V49_reaclib)*Y(Sc45)*state.rho - screened_rates(k_Sc45_He4_to_n_V48_derived)*Y(Sc45)*state.rho - screened_rates(k_Sc45_He4_to_p_Ti48_reaclib)*Y(Sc45)*state.rho - screened_rates(k_Sc46_He4_to_V50_reaclib)*Y(Sc46)*state.rho - screened_rates(k_Sc46_He4_to_n_V49_reaclib)*Y(Sc46)*state.rho - screened_rates(k_Sc46_He4_to_p_Ti49_reaclib)*Y(Sc46)*state.rho - screened_rates(k_Sc47_He4_to_V51_reaclib)*Y(Sc47)*state.rho - screened_rates(k_Sc47_He4_to_n_V50_derived)*Y(Sc47)*state.rho - screened_rates(k_Sc47_He4_to_p_Ti50_reaclib)*Y(Sc47)*state.rho - screened_rates(k_Sc48_He4_to_V52_reaclib)*Y(Sc48)*state.rho - screened_rates(k_Sc48_He4_to_n_V51_reaclib)*Y(Sc48)*state.rho - screened_rates(k_Sc48_He4_to_p_Ti51_reaclib)*Y(Sc48)*state.rho - screened_rates(k_Sc49_He4_to_n_V52_derived)*Y(Sc49)*state.rho - screened_rates(k_Si28_He4_to_C12_Ne20_derived)*Y(Si28)*state.rho - screened_rates(k_Si28_He4_to_O16_O16_derived)*Y(Si28)*state.rho - screened_rates(k_Si28_He4_to_S32_reaclib)*Y(Si28)*state.rho - screened_rates(k_Si28_He4_to_p_P31_derived)*Y(Si28)*state.rho - screened_rates(k_Si29_He4_to_S33_reaclib)*Y(Si29)*state.rho - screened_rates(k_Si29_He4_to_n_S32_derived)*Y(Si29)*state.rho - screened_rates(k_Si29_He4_to_p_P32_derived)*Y(Si29)*state.rho - screened_rates(k_Si30_He4_to_S34_reaclib)*Y(Si30)*state.rho - screened_rates(k_Si30_He4_to_n_S33_derived)*Y(Si30)*state.rho - screened_rates(k_Si30_He4_to_p_P33_derived)*Y(Si30)*state.rho - screened_rates(k_Si31_He4_to_S35_reaclib)*Y(Si31)*state.rho - screened_rates(k_Si31_He4_to_n_S34_reaclib)*Y(Si31)*state.rho - screened_rates(k_Si32_He4_to_S36_reaclib)*Y(Si32)*state.rho - screened_rates(k_Si32_He4_to_n_S35_derived)*Y(Si32)*state.rho - screened_rates(k_Ti44_He4_to_Cr48_reaclib)*Y(Ti44)*state.rho - screened_rates(k_Ti44_He4_to_p_V47_reaclib)*Y(Ti44)*state.rho - screened_rates(k_Ti45_He4_to_Cr49_reaclib)*Y(Ti45)*state.rho - screened_rates(k_Ti45_He4_to_n_Cr48_derived)*Y(Ti45)*state.rho - screened_rates(k_Ti45_He4_to_p_V48_reaclib)*Y(Ti45)*state.rho - screened_rates(k_Ti46_He4_to_Cr50_reaclib)*Y(Ti46)*state.rho - screened_rates(k_Ti46_He4_to_n_Cr49_derived)*Y(Ti46)*state.rho - screened_rates(k_Ti46_He4_to_p_V49_derived)*Y(Ti46)*state.rho - screened_rates(k_Ti47_He4_to_Cr51_reaclib)*Y(Ti47)*state.rho - screened_rates(k_Ti47_He4_to_n_Cr50_derived)*Y(Ti47)*state.rho - screened_rates(k_Ti47_He4_to_p_V50_derived)*Y(Ti47)*state.rho - screened_rates(k_Ti48_He4_to_Cr52_reaclib)*Y(Ti48)*state.rho - screened_rates(k_Ti48_He4_to_n_Cr51_derived)*Y(Ti48)*state.rho - screened_rates(k_Ti48_He4_to_p_V51_derived)*Y(Ti48)*state.rho - screened_rates(k_Ti49_He4_to_Cr53_reaclib)*Y(Ti49)*state.rho - screened_rates(k_Ti49_He4_to_n_Cr52_reaclib)*Y(Ti49)*state.rho - screened_rates(k_Ti49_He4_to_p_V52_derived)*Y(Ti49)*state.rho - screened_rates(k_Ti50_He4_to_Cr54_reaclib)*Y(Ti50)*state.rho - screened_rates(k_Ti50_He4_to_n_Cr53_derived)*Y(Ti50)*state.rho - screened_rates(k_Ti51_He4_to_n_Cr54_reaclib)*Y(Ti51)*state.rho - screened_rates(k_V46_He4_to_Mn50_reaclib)*Y(V46)*state.rho - screened_rates(k_V46_He4_to_p_Cr49_reaclib)*Y(V46)*state.rho - screened_rates(k_V47_He4_to_Mn51_reaclib)*Y(V47)*state.rho - screened_rates(k_V47_He4_to_n_Mn50_derived)*Y(V47)*state.rho - screened_rates(k_V47_He4_to_p_Cr50_reaclib)*Y(V47)*state.rho - screened_rates(k_V48_He4_to_Mn52_reaclib)*Y(V48)*state.rho - screened_rates(k_V48_He4_to_n_Mn51_derived)*Y(V48)*state.rho - screened_rates(k_V48_He4_to_p_Cr51_reaclib)*Y(V48)*state.rho - screened_rates(k_V49_He4_to_Mn53_reaclib)*Y(V49)*state.rho - screened_rates(k_V49_He4_to_n_Mn52_derived)*Y(V49)*state.rho - screened_rates(k_V49_He4_to_p_Cr52_reaclib)*Y(V49)*state.rho - screened_rates(k_V50_He4_to_Mn54_reaclib)*Y(V50)*state.rho - screened_rates(k_V50_He4_to_n_Mn53_derived)*Y(V50)*state.rho - screened_rates(k_V50_He4_to_p_Cr53_reaclib)*Y(V50)*state.rho - screened_rates(k_V51_He4_to_Mn55_reaclib)*Y(V51)*state.rho - screened_rates(k_V51_He4_to_n_Mn54_derived)*Y(V51)*state.rho - screened_rates(k_V51_He4_to_p_Cr54_derived)*Y(V51)*state.rho - screened_rates(k_V52_He4_to_n_Mn55_reaclib)*Y(V52)*state.rho - screened_rates(k_Zn59_He4_to_Ge63_reaclib)*Y(Zn59)*state.rho - screened_rates(k_Zn59_He4_to_p_Ga62_derived)*Y(Zn59)*state.rho - screened_rates(k_Zn60_He4_to_Ge64_reaclib)*Y(Zn60)*state.rho - screened_rates(k_Zn60_He4_to_n_Ge63_derived)*Y(Zn60)*state.rho - screened_rates(k_Zn60_He4_to_p_Ga63_derived)*Y(Zn60)*state.rho - screened_rates(k_Zn61_He4_to_n_Ge64_derived)*Y(Zn61)*state.rho - screened_rates(k_Zn61_He4_to_p_Ga64_derived)*Y(Zn61)*state.rho - 2.0*screened_rates(k_d_He4_He4_to_p_Be9_derived)*Y(He4)*Y(H2)*amrex::Math::powi<2>(state.rho) - screened_rates(k_d_He4_to_Li6_reaclib)*Y(H2)*state.rho; jac.set(He4, He4, scratch); - scratch = -screened_rates(k_He4_Li6_to_B10_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Li6_to_p_Be9_reaclib)*Y(He4)*state.rho + screened_rates(k_Li6_to_He4_d_reaclib) + screened_rates(k_Li6_to_n_p_He4_reaclib) + screened_rates(k_p_Li6_to_He4_He3_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Li6_He4_to_B10_reaclib)*Y(He4)*state.rho - screened_rates(k_Li6_He4_to_p_Be9_derived)*Y(He4)*state.rho + screened_rates(k_Li6_p_to_He4_He3_reaclib)*Y(H1)*state.rho + screened_rates(k_Li6_to_He4_d_derived) + screened_rates(k_Li6_to_n_p_He4_derived); jac.set(He4, Li6, scratch); - scratch = 2.0*screened_rates(k_He3_Li7_to_n_p_He4_He4_reaclib)*Y(He3)*state.rho - screened_rates(k_He4_Li7_to_B11_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Li7_to_n_B10_reaclib)*Y(He4)*state.rho + 2.0*screened_rates(k_d_Li7_to_n_He4_He4_reaclib)*Y(H2)*state.rho + 2.0*screened_rates(k_p_Li7_to_He4_He4_reaclib)*Y(H1)*state.rho; + scratch = 2.0*screened_rates(k_Li7_He3_to_n_p_He4_He4_reaclib)*Y(He3)*state.rho - screened_rates(k_Li7_He4_to_B11_reaclib)*Y(He4)*state.rho - screened_rates(k_Li7_He4_to_n_B10_derived)*Y(He4)*state.rho + 2.0*screened_rates(k_Li7_d_to_n_He4_He4_reaclib)*Y(H2)*state.rho + 2.0*screened_rates(k_Li7_p_to_He4_He4_reaclib)*Y(H1)*state.rho; jac.set(He4, Li7, scratch); - scratch = screened_rates(k_Be7_to_He4_He3_reaclib) + 2.0*screened_rates(k_He3_Be7_to_p_p_He4_He4_reaclib)*Y(He3)*state.rho - screened_rates(k_He4_Be7_to_p_B10_reaclib)*Y(He4)*state.rho + 2.0*screened_rates(k_d_Be7_to_p_He4_He4_reaclib)*Y(H2)*state.rho + 2.0*screened_rates(k_n_Be7_to_He4_He4_reaclib)*Y(N)*state.rho; + scratch = 2.0*screened_rates(k_Be7_He3_to_p_p_He4_He4_reaclib)*Y(He3)*state.rho - screened_rates(k_Be7_He4_to_p_B10_derived)*Y(He4)*state.rho + 2.0*screened_rates(k_Be7_d_to_p_He4_He4_reaclib)*Y(H2)*state.rho + 2.0*screened_rates(k_Be7_n_to_He4_He4_reaclib)*Y(N)*state.rho + screened_rates(k_Be7_to_He4_He3_derived); jac.set(He4, Be7, scratch); - scratch = 2.0*screened_rates(k_Be9_to_n_He4_He4_reaclib) - screened_rates(k_He4_Be9_to_n_C12_reaclib)*Y(He4)*state.rho + screened_rates(k_p_Be9_to_He4_Li6_reaclib)*Y(H1)*state.rho + 2.0*screened_rates(k_p_Be9_to_d_He4_He4_reaclib)*Y(H1)*state.rho + 2.0*screened_rates(k_p_Be9_to_n_p_He4_He4_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Be9_He4_to_n_C12_reaclib)*Y(He4)*state.rho + screened_rates(k_Be9_p_to_He4_Li6_reaclib)*Y(H1)*state.rho + 2.0*screened_rates(k_Be9_p_to_d_He4_He4_reaclib)*Y(H1)*state.rho + 2.0*screened_rates(k_Be9_p_to_n_p_He4_He4_reaclib)*Y(H1)*state.rho + 2.0*screened_rates(k_Be9_to_n_He4_He4_derived); jac.set(He4, Be9, scratch); - scratch = 2.0*screened_rates(k_B8_to_He4_He4_reaclib) + 2.0*screened_rates(k_n_B8_to_p_He4_He4_reaclib)*Y(N)*state.rho; + scratch = 2.0*screened_rates(k_B8_n_to_p_He4_He4_reaclib)*Y(N)*state.rho + 2.0*screened_rates(k_B8_to_He4_He4_beta_pos_reaclib); jac.set(He4, B8, scratch); - scratch = screened_rates(k_B10_to_He4_Li6_reaclib) - screened_rates(k_He4_B10_to_n_N13_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_B10_to_p_C13_reaclib)*Y(He4)*state.rho + screened_rates(k_n_B10_to_He4_Li7_reaclib)*Y(N)*state.rho + screened_rates(k_p_B10_to_He4_Be7_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_B10_He4_to_n_N13_reaclib)*Y(He4)*state.rho - screened_rates(k_B10_He4_to_p_C13_reaclib)*Y(He4)*state.rho + screened_rates(k_B10_n_to_He4_Li7_reaclib)*Y(N)*state.rho + screened_rates(k_B10_p_to_He4_Be7_reaclib)*Y(H1)*state.rho + screened_rates(k_B10_to_He4_Li6_derived); jac.set(He4, B10, scratch); - scratch = screened_rates(k_B11_to_He4_Li7_reaclib) - screened_rates(k_He4_B11_to_n_N14_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_B11_to_p_C14_reaclib)*Y(He4)*state.rho + 3.0*screened_rates(k_p_B11_to_He4_He4_He4_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_B11_He4_to_n_N14_reaclib)*Y(He4)*state.rho - screened_rates(k_B11_He4_to_p_C14_reaclib)*Y(He4)*state.rho + 3.0*screened_rates(k_B11_p_to_3He4_reaclib)*Y(H1)*state.rho + screened_rates(k_B11_to_He4_Li7_derived); jac.set(He4, B11, scratch); - scratch = 1.0*screened_rates(k_C12_C12_to_He4_Ne20_reaclib)*Y(C12)*state.rho + screened_rates(k_C12_Ne20_to_He4_Si28_reaclib)*Y(Ne20)*state.rho + screened_rates(k_C12_O16_to_He4_Mg24_reaclib)*Y(O16)*state.rho + 3.0*screened_rates(k_C12_to_He4_He4_He4_reaclib) - screened_rates(k_He4_C12_to_O16_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_C12_to_n_O15_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_C12_to_p_N15_reaclib)*Y(He4)*state.rho + screened_rates(k_n_C12_to_He4_Be9_reaclib)*Y(N)*state.rho; + scratch = 1.0*screened_rates(k_C12_C12_to_He4_Ne20_reaclib)*Y(C12)*state.rho - screened_rates(k_C12_He4_to_O16_reaclib)*Y(He4)*state.rho - screened_rates(k_C12_He4_to_n_O15_derived)*Y(He4)*state.rho - screened_rates(k_C12_He4_to_p_N15_derived)*Y(He4)*state.rho + screened_rates(k_C12_n_to_He4_Be9_derived)*Y(N)*state.rho + 3.0*screened_rates(k_C12_to_3He4_derived) + screened_rates(k_Ne20_C12_to_He4_Si28_reaclib)*Y(Ne20)*state.rho + screened_rates(k_O16_C12_to_He4_Mg24_reaclib)*Y(O16)*state.rho; jac.set(He4, C12, scratch); - scratch = -screened_rates(k_He4_C13_to_n_O16_reaclib)*Y(He4)*state.rho + screened_rates(k_p_C13_to_He4_B10_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_C13_He4_to_n_O16_reaclib)*Y(He4)*state.rho + screened_rates(k_C13_p_to_He4_B10_derived)*Y(H1)*state.rho; jac.set(He4, C13, scratch); - scratch = -screened_rates(k_He4_C14_to_O18_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_C14_to_n_O17_reaclib)*Y(He4)*state.rho + screened_rates(k_p_C14_to_He4_B11_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_C14_He4_to_O18_reaclib)*Y(He4)*state.rho - screened_rates(k_C14_He4_to_n_O17_derived)*Y(He4)*state.rho + screened_rates(k_C14_p_to_He4_B11_derived)*Y(H1)*state.rho; jac.set(He4, C14, scratch); - scratch = -screened_rates(k_He4_N13_to_p_O16_reaclib)*Y(He4)*state.rho + screened_rates(k_n_N13_to_He4_B10_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_N13_He4_to_p_O16_reaclib)*Y(He4)*state.rho + screened_rates(k_N13_n_to_He4_B10_derived)*Y(N)*state.rho; jac.set(He4, N13, scratch); - scratch = -screened_rates(k_He4_N14_to_F18_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_N14_to_n_F17_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_N14_to_p_O17_reaclib)*Y(He4)*state.rho + screened_rates(k_n_N14_to_He4_B11_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_N14_He4_to_F18_reaclib)*Y(He4)*state.rho - screened_rates(k_N14_He4_to_n_F17_reaclib)*Y(He4)*state.rho - screened_rates(k_N14_He4_to_p_O17_derived)*Y(He4)*state.rho + screened_rates(k_N14_n_to_He4_B11_derived)*Y(N)*state.rho; jac.set(He4, N14, scratch); - scratch = -screened_rates(k_He4_N15_to_F19_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_N15_to_n_F18_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_N15_to_p_O18_reaclib)*Y(He4)*state.rho + screened_rates(k_p_N15_to_He4_C12_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_N15_He4_to_F19_reaclib)*Y(He4)*state.rho - screened_rates(k_N15_He4_to_n_F18_derived)*Y(He4)*state.rho - screened_rates(k_N15_He4_to_p_O18_derived)*Y(He4)*state.rho + screened_rates(k_N15_p_to_He4_C12_reaclib)*Y(H1)*state.rho; jac.set(He4, N15, scratch); - scratch = -screened_rates(k_He4_O14_to_Ne18_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_O14_to_p_F17_reaclib)*Y(He4)*state.rho; + scratch = -screened_rates(k_O14_He4_to_Ne18_reaclib)*Y(He4)*state.rho - screened_rates(k_O14_He4_to_p_F17_reaclib)*Y(He4)*state.rho; jac.set(He4, O14, scratch); - scratch = -screened_rates(k_He4_O15_to_Ne19_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_O15_to_n_Ne18_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_O15_to_p_F18_reaclib)*Y(He4)*state.rho + screened_rates(k_n_O15_to_He4_C12_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_O15_He4_to_Ne19_reaclib)*Y(He4)*state.rho - screened_rates(k_O15_He4_to_n_Ne18_derived)*Y(He4)*state.rho - screened_rates(k_O15_He4_to_p_F18_derived)*Y(He4)*state.rho + screened_rates(k_O15_n_to_He4_C12_reaclib)*Y(N)*state.rho; jac.set(He4, O15, scratch); - scratch = screened_rates(k_C12_O16_to_He4_Mg24_reaclib)*Y(C12)*state.rho - screened_rates(k_He4_O16_to_Ne20_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_O16_to_n_Ne19_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_O16_to_p_F19_reaclib)*Y(He4)*state.rho + 1.0*screened_rates(k_O16_O16_to_He4_Si28_reaclib)*Y(O16)*state.rho + screened_rates(k_O16_to_He4_C12_reaclib) + screened_rates(k_n_O16_to_He4_C13_reaclib)*Y(N)*state.rho + screened_rates(k_p_O16_to_He4_N13_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_O16_C12_to_He4_Mg24_reaclib)*Y(C12)*state.rho - screened_rates(k_O16_He4_to_Ne20_reaclib)*Y(He4)*state.rho - screened_rates(k_O16_He4_to_n_Ne19_derived)*Y(He4)*state.rho - screened_rates(k_O16_He4_to_p_F19_derived)*Y(He4)*state.rho + 1.0*screened_rates(k_O16_O16_to_He4_Si28_reaclib)*Y(O16)*state.rho + screened_rates(k_O16_n_to_He4_C13_derived)*Y(N)*state.rho + screened_rates(k_O16_p_to_He4_N13_derived)*Y(H1)*state.rho + screened_rates(k_O16_to_He4_C12_derived); jac.set(He4, O16, scratch); - scratch = -screened_rates(k_He4_O17_to_Ne21_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_O17_to_n_Ne20_reaclib)*Y(He4)*state.rho + screened_rates(k_n_O17_to_He4_C14_reaclib)*Y(N)*state.rho + screened_rates(k_p_O17_to_He4_N14_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_O17_He4_to_Ne21_reaclib)*Y(He4)*state.rho - screened_rates(k_O17_He4_to_n_Ne20_reaclib)*Y(He4)*state.rho + screened_rates(k_O17_n_to_He4_C14_reaclib)*Y(N)*state.rho + screened_rates(k_O17_p_to_He4_N14_reaclib)*Y(H1)*state.rho; jac.set(He4, O17, scratch); - scratch = -screened_rates(k_He4_O18_to_Ne22_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_O18_to_n_Ne21_reaclib)*Y(He4)*state.rho + screened_rates(k_O18_to_He4_C14_reaclib) + screened_rates(k_p_O18_to_He4_N15_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_O18_He4_to_Ne22_reaclib)*Y(He4)*state.rho - screened_rates(k_O18_He4_to_n_Ne21_reaclib)*Y(He4)*state.rho + screened_rates(k_O18_p_to_He4_N15_reaclib)*Y(H1)*state.rho + screened_rates(k_O18_to_He4_C14_derived); jac.set(He4, O18, scratch); - scratch = -screened_rates(k_He4_F17_to_Na21_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_F17_to_p_Ne20_reaclib)*Y(He4)*state.rho + screened_rates(k_n_F17_to_He4_N14_reaclib)*Y(N)*state.rho + screened_rates(k_p_F17_to_He4_O14_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_F17_He4_to_Na21_reaclib)*Y(He4)*state.rho - screened_rates(k_F17_He4_to_p_Ne20_derived)*Y(He4)*state.rho + screened_rates(k_F17_n_to_He4_N14_derived)*Y(N)*state.rho + screened_rates(k_F17_p_to_He4_O14_derived)*Y(H1)*state.rho; jac.set(He4, F17, scratch); - scratch = screened_rates(k_F18_to_He4_N14_reaclib) - screened_rates(k_He4_F18_to_Na22_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_F18_to_n_Na21_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_F18_to_p_Ne21_reaclib)*Y(He4)*state.rho + screened_rates(k_n_F18_to_He4_N15_reaclib)*Y(N)*state.rho + screened_rates(k_p_F18_to_He4_O15_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_F18_He4_to_Na22_reaclib)*Y(He4)*state.rho - screened_rates(k_F18_He4_to_n_Na21_derived)*Y(He4)*state.rho - screened_rates(k_F18_He4_to_p_Ne21_reaclib)*Y(He4)*state.rho + screened_rates(k_F18_n_to_He4_N15_reaclib)*Y(N)*state.rho + screened_rates(k_F18_p_to_He4_O15_reaclib)*Y(H1)*state.rho + screened_rates(k_F18_to_He4_N14_derived); jac.set(He4, F18, scratch); - scratch = screened_rates(k_F19_to_He4_N15_reaclib) - screened_rates(k_He4_F19_to_Na23_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_F19_to_n_Na22_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_F19_to_p_Ne22_reaclib)*Y(He4)*state.rho + screened_rates(k_p_F19_to_He4_O16_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_F19_He4_to_Na23_reaclib)*Y(He4)*state.rho - screened_rates(k_F19_He4_to_n_Na22_derived)*Y(He4)*state.rho - screened_rates(k_F19_He4_to_p_Ne22_reaclib)*Y(He4)*state.rho + screened_rates(k_F19_p_to_He4_O16_reaclib)*Y(H1)*state.rho + screened_rates(k_F19_to_He4_N15_derived); jac.set(He4, F19, scratch); - scratch = -screened_rates(k_He4_Ne18_to_p_Na21_reaclib)*Y(He4)*state.rho + screened_rates(k_Ne18_to_He4_O14_reaclib) + screened_rates(k_n_Ne18_to_He4_O15_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Ne18_He4_to_p_Na21_reaclib)*Y(He4)*state.rho + screened_rates(k_Ne18_n_to_He4_O15_reaclib)*Y(N)*state.rho + screened_rates(k_Ne18_to_He4_O14_derived); jac.set(He4, Ne18, scratch); - scratch = -screened_rates(k_He4_Ne19_to_Mg23_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ne19_to_p_Na22_reaclib)*Y(He4)*state.rho + screened_rates(k_Ne19_to_He4_O15_reaclib) + screened_rates(k_n_Ne19_to_He4_O16_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Ne19_He4_to_Mg23_reaclib)*Y(He4)*state.rho - screened_rates(k_Ne19_He4_to_p_Na22_reaclib)*Y(He4)*state.rho + screened_rates(k_Ne19_n_to_He4_O16_reaclib)*Y(N)*state.rho + screened_rates(k_Ne19_to_He4_O15_derived); jac.set(He4, Ne19, scratch); - scratch = screened_rates(k_C12_Ne20_to_He4_Si28_reaclib)*Y(C12)*state.rho - screened_rates(k_He4_Ne20_to_C12_C12_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ne20_to_Mg24_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ne20_to_n_Mg23_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ne20_to_p_Na23_reaclib)*Y(He4)*state.rho + screened_rates(k_Ne20_to_He4_O16_reaclib) + screened_rates(k_n_Ne20_to_He4_O17_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ne20_to_He4_F17_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ne20_C12_to_He4_Si28_reaclib)*Y(C12)*state.rho - screened_rates(k_Ne20_He4_to_C12_C12_derived)*Y(He4)*state.rho - screened_rates(k_Ne20_He4_to_Mg24_reaclib)*Y(He4)*state.rho - screened_rates(k_Ne20_He4_to_n_Mg23_derived)*Y(He4)*state.rho - screened_rates(k_Ne20_He4_to_p_Na23_derived)*Y(He4)*state.rho + screened_rates(k_Ne20_n_to_He4_O17_derived)*Y(N)*state.rho + screened_rates(k_Ne20_p_to_He4_F17_reaclib)*Y(H1)*state.rho + screened_rates(k_Ne20_to_He4_O16_derived); jac.set(He4, Ne20, scratch); - scratch = -screened_rates(k_He4_Ne21_to_Mg25_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ne21_to_n_Mg24_reaclib)*Y(He4)*state.rho + screened_rates(k_Ne21_to_He4_O17_reaclib) + screened_rates(k_n_Ne21_to_He4_O18_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ne21_to_He4_F18_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ne21_He4_to_Mg25_reaclib)*Y(He4)*state.rho - screened_rates(k_Ne21_He4_to_n_Mg24_reaclib)*Y(He4)*state.rho + screened_rates(k_Ne21_n_to_He4_O18_derived)*Y(N)*state.rho + screened_rates(k_Ne21_p_to_He4_F18_derived)*Y(H1)*state.rho + screened_rates(k_Ne21_to_He4_O17_derived); jac.set(He4, Ne21, scratch); - scratch = -screened_rates(k_He4_Ne22_to_Mg26_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ne22_to_n_Mg25_reaclib)*Y(He4)*state.rho + screened_rates(k_Ne22_to_He4_O18_reaclib) + screened_rates(k_p_Ne22_to_He4_F19_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ne22_He4_to_Mg26_reaclib)*Y(He4)*state.rho - screened_rates(k_Ne22_He4_to_n_Mg25_reaclib)*Y(He4)*state.rho + screened_rates(k_Ne22_p_to_He4_F19_derived)*Y(H1)*state.rho + screened_rates(k_Ne22_to_He4_O18_derived); jac.set(He4, Ne22, scratch); - scratch = -screened_rates(k_He4_Na21_to_Al25_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Na21_to_p_Mg24_reaclib)*Y(He4)*state.rho + screened_rates(k_Na21_to_He4_F17_reaclib) + screened_rates(k_n_Na21_to_He4_F18_reaclib)*Y(N)*state.rho + screened_rates(k_p_Na21_to_He4_Ne18_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Na21_He4_to_Al25_reaclib)*Y(He4)*state.rho - screened_rates(k_Na21_He4_to_p_Mg24_derived)*Y(He4)*state.rho + screened_rates(k_Na21_n_to_He4_F18_reaclib)*Y(N)*state.rho + screened_rates(k_Na21_p_to_He4_Ne18_derived)*Y(H1)*state.rho + screened_rates(k_Na21_to_He4_F17_derived); jac.set(He4, Na21, scratch); - scratch = -screened_rates(k_He4_Na22_to_Al26_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Na22_to_n_Al25_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Na22_to_p_Mg25_reaclib)*Y(He4)*state.rho + screened_rates(k_Na22_to_He4_F18_reaclib) + screened_rates(k_n_Na22_to_He4_F19_reaclib)*Y(N)*state.rho + screened_rates(k_p_Na22_to_He4_Ne19_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Na22_He4_to_Al26_reaclib)*Y(He4)*state.rho - screened_rates(k_Na22_He4_to_n_Al25_derived)*Y(He4)*state.rho - screened_rates(k_Na22_He4_to_p_Mg25_reaclib)*Y(He4)*state.rho + screened_rates(k_Na22_n_to_He4_F19_reaclib)*Y(N)*state.rho + screened_rates(k_Na22_p_to_He4_Ne19_derived)*Y(H1)*state.rho + screened_rates(k_Na22_to_He4_F18_derived); jac.set(He4, Na22, scratch); - scratch = -screened_rates(k_He4_Na23_to_Al27_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Na23_to_n_Al26_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Na23_to_p_Mg26_reaclib)*Y(He4)*state.rho + screened_rates(k_Na23_to_He4_F19_reaclib) + screened_rates(k_p_Na23_to_He4_Ne20_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Na23_He4_to_Al27_reaclib)*Y(He4)*state.rho - screened_rates(k_Na23_He4_to_n_Al26_derived)*Y(He4)*state.rho - screened_rates(k_Na23_He4_to_p_Mg26_reaclib)*Y(He4)*state.rho + screened_rates(k_Na23_p_to_He4_Ne20_reaclib)*Y(H1)*state.rho + screened_rates(k_Na23_to_He4_F19_derived); jac.set(He4, Na23, scratch); - scratch = -screened_rates(k_He4_Mg23_to_p_Al26_reaclib)*Y(He4)*state.rho + screened_rates(k_Mg23_to_He4_Ne19_reaclib) + screened_rates(k_n_Mg23_to_He4_Ne20_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Mg23_He4_to_p_Al26_reaclib)*Y(He4)*state.rho + screened_rates(k_Mg23_n_to_He4_Ne20_reaclib)*Y(N)*state.rho + screened_rates(k_Mg23_to_He4_Ne19_derived); jac.set(He4, Mg23, scratch); - scratch = -screened_rates(k_He4_Mg24_to_C12_O16_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mg24_to_Si28_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mg24_to_p_Al27_reaclib)*Y(He4)*state.rho + screened_rates(k_Mg24_to_He4_Ne20_reaclib) + screened_rates(k_n_Mg24_to_He4_Ne21_reaclib)*Y(N)*state.rho + screened_rates(k_p_Mg24_to_He4_Na21_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Mg24_He4_to_C12_O16_derived)*Y(He4)*state.rho - screened_rates(k_Mg24_He4_to_Si28_reaclib)*Y(He4)*state.rho - screened_rates(k_Mg24_He4_to_p_Al27_derived)*Y(He4)*state.rho + screened_rates(k_Mg24_n_to_He4_Ne21_derived)*Y(N)*state.rho + screened_rates(k_Mg24_p_to_He4_Na21_reaclib)*Y(H1)*state.rho + screened_rates(k_Mg24_to_He4_Ne20_derived); jac.set(He4, Mg24, scratch); - scratch = -screened_rates(k_He4_Mg25_to_Si29_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mg25_to_n_Si28_reaclib)*Y(He4)*state.rho + screened_rates(k_Mg25_to_He4_Ne21_reaclib) + screened_rates(k_n_Mg25_to_He4_Ne22_reaclib)*Y(N)*state.rho + screened_rates(k_p_Mg25_to_He4_Na22_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Mg25_He4_to_Si29_reaclib)*Y(He4)*state.rho - screened_rates(k_Mg25_He4_to_n_Si28_reaclib)*Y(He4)*state.rho + screened_rates(k_Mg25_n_to_He4_Ne22_derived)*Y(N)*state.rho + screened_rates(k_Mg25_p_to_He4_Na22_derived)*Y(H1)*state.rho + screened_rates(k_Mg25_to_He4_Ne21_derived); jac.set(He4, Mg25, scratch); - scratch = -screened_rates(k_He4_Mg26_to_Si30_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mg26_to_n_Si29_reaclib)*Y(He4)*state.rho + screened_rates(k_Mg26_to_He4_Ne22_reaclib) + screened_rates(k_p_Mg26_to_He4_Na23_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Mg26_He4_to_Si30_reaclib)*Y(He4)*state.rho - screened_rates(k_Mg26_He4_to_n_Si29_reaclib)*Y(He4)*state.rho + screened_rates(k_Mg26_p_to_He4_Na23_derived)*Y(H1)*state.rho + screened_rates(k_Mg26_to_He4_Ne22_derived); jac.set(He4, Mg26, scratch); - scratch = screened_rates(k_Al25_to_He4_Na21_reaclib) - screened_rates(k_He4_Al25_to_P29_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Al25_to_p_Si28_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Al25_to_He4_Na22_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Al25_He4_to_P29_reaclib)*Y(He4)*state.rho - screened_rates(k_Al25_He4_to_p_Si28_reaclib)*Y(He4)*state.rho + screened_rates(k_Al25_n_to_He4_Na22_reaclib)*Y(N)*state.rho + screened_rates(k_Al25_to_He4_Na21_derived); jac.set(He4, Al25, scratch); - scratch = screened_rates(k_Al26_to_He4_Na22_reaclib) - screened_rates(k_He4_Al26_to_P30_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Al26_to_n_P29_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Al26_to_p_Si29_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Al26_to_He4_Na23_reaclib)*Y(N)*state.rho + screened_rates(k_p_Al26_to_He4_Mg23_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Al26_He4_to_P30_reaclib)*Y(He4)*state.rho - screened_rates(k_Al26_He4_to_n_P29_derived)*Y(He4)*state.rho - screened_rates(k_Al26_He4_to_p_Si29_reaclib)*Y(He4)*state.rho + screened_rates(k_Al26_n_to_He4_Na23_reaclib)*Y(N)*state.rho + screened_rates(k_Al26_p_to_He4_Mg23_derived)*Y(H1)*state.rho + screened_rates(k_Al26_to_He4_Na22_derived); jac.set(He4, Al26, scratch); - scratch = screened_rates(k_Al27_to_He4_Na23_reaclib) - screened_rates(k_He4_Al27_to_P31_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Al27_to_n_P30_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Al27_to_p_Si30_reaclib)*Y(He4)*state.rho + screened_rates(k_p_Al27_to_He4_Mg24_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Al27_He4_to_P31_reaclib)*Y(He4)*state.rho - screened_rates(k_Al27_He4_to_n_P30_reaclib)*Y(He4)*state.rho - screened_rates(k_Al27_He4_to_p_Si30_reaclib)*Y(He4)*state.rho + screened_rates(k_Al27_p_to_He4_Mg24_reaclib)*Y(H1)*state.rho + screened_rates(k_Al27_to_He4_Na23_derived); jac.set(He4, Al27, scratch); - scratch = -screened_rates(k_He4_Si28_to_C12_Ne20_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Si28_to_O16_O16_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Si28_to_S32_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Si28_to_p_P31_reaclib)*Y(He4)*state.rho + screened_rates(k_Si28_to_He4_Mg24_reaclib) + screened_rates(k_n_Si28_to_He4_Mg25_reaclib)*Y(N)*state.rho + screened_rates(k_p_Si28_to_He4_Al25_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Si28_He4_to_C12_Ne20_derived)*Y(He4)*state.rho - screened_rates(k_Si28_He4_to_O16_O16_derived)*Y(He4)*state.rho - screened_rates(k_Si28_He4_to_S32_reaclib)*Y(He4)*state.rho - screened_rates(k_Si28_He4_to_p_P31_derived)*Y(He4)*state.rho + screened_rates(k_Si28_n_to_He4_Mg25_derived)*Y(N)*state.rho + screened_rates(k_Si28_p_to_He4_Al25_derived)*Y(H1)*state.rho + screened_rates(k_Si28_to_He4_Mg24_derived); jac.set(He4, Si28, scratch); - scratch = -screened_rates(k_He4_Si29_to_S33_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Si29_to_n_S32_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Si29_to_p_P32_reaclib)*Y(He4)*state.rho + screened_rates(k_Si29_to_He4_Mg25_reaclib) + screened_rates(k_n_Si29_to_He4_Mg26_reaclib)*Y(N)*state.rho + screened_rates(k_p_Si29_to_He4_Al26_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Si29_He4_to_S33_reaclib)*Y(He4)*state.rho - screened_rates(k_Si29_He4_to_n_S32_derived)*Y(He4)*state.rho - screened_rates(k_Si29_He4_to_p_P32_derived)*Y(He4)*state.rho + screened_rates(k_Si29_n_to_He4_Mg26_derived)*Y(N)*state.rho + screened_rates(k_Si29_p_to_He4_Al26_derived)*Y(H1)*state.rho + screened_rates(k_Si29_to_He4_Mg25_derived); jac.set(He4, Si29, scratch); - scratch = -screened_rates(k_He4_Si30_to_S34_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Si30_to_n_S33_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Si30_to_p_P33_reaclib)*Y(He4)*state.rho + screened_rates(k_Si30_to_He4_Mg26_reaclib) + screened_rates(k_p_Si30_to_He4_Al27_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Si30_He4_to_S34_reaclib)*Y(He4)*state.rho - screened_rates(k_Si30_He4_to_n_S33_derived)*Y(He4)*state.rho - screened_rates(k_Si30_He4_to_p_P33_derived)*Y(He4)*state.rho + screened_rates(k_Si30_p_to_He4_Al27_derived)*Y(H1)*state.rho + screened_rates(k_Si30_to_He4_Mg26_derived); jac.set(He4, Si30, scratch); - scratch = -screened_rates(k_He4_Si31_to_S35_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Si31_to_n_S34_reaclib)*Y(He4)*state.rho; + scratch = -screened_rates(k_Si31_He4_to_S35_reaclib)*Y(He4)*state.rho - screened_rates(k_Si31_He4_to_n_S34_reaclib)*Y(He4)*state.rho; jac.set(He4, Si31, scratch); - scratch = -screened_rates(k_He4_Si32_to_S36_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Si32_to_n_S35_reaclib)*Y(He4)*state.rho; + scratch = -screened_rates(k_Si32_He4_to_S36_reaclib)*Y(He4)*state.rho - screened_rates(k_Si32_He4_to_n_S35_derived)*Y(He4)*state.rho; jac.set(He4, Si32, scratch); - scratch = -screened_rates(k_He4_P29_to_Cl33_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_P29_to_p_S32_reaclib)*Y(He4)*state.rho + screened_rates(k_P29_to_He4_Al25_reaclib) + screened_rates(k_n_P29_to_He4_Al26_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_P29_He4_to_Cl33_reaclib)*Y(He4)*state.rho - screened_rates(k_P29_He4_to_p_S32_reaclib)*Y(He4)*state.rho + screened_rates(k_P29_n_to_He4_Al26_reaclib)*Y(N)*state.rho + screened_rates(k_P29_to_He4_Al25_derived); jac.set(He4, P29, scratch); - scratch = -screened_rates(k_He4_P30_to_Cl34_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_P30_to_n_Cl33_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_P30_to_p_S33_reaclib)*Y(He4)*state.rho + screened_rates(k_P30_to_He4_Al26_reaclib) + screened_rates(k_n_P30_to_He4_Al27_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_P30_He4_to_Cl34_reaclib)*Y(He4)*state.rho - screened_rates(k_P30_He4_to_n_Cl33_derived)*Y(He4)*state.rho - screened_rates(k_P30_He4_to_p_S33_reaclib)*Y(He4)*state.rho + screened_rates(k_P30_n_to_He4_Al27_derived)*Y(N)*state.rho + screened_rates(k_P30_to_He4_Al26_derived); jac.set(He4, P30, scratch); - scratch = -screened_rates(k_He4_P31_to_Cl35_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_P31_to_n_Cl34_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_P31_to_p_S34_reaclib)*Y(He4)*state.rho + screened_rates(k_P31_to_He4_Al27_reaclib) + screened_rates(k_p_P31_to_He4_Si28_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_P31_He4_to_Cl35_reaclib)*Y(He4)*state.rho - screened_rates(k_P31_He4_to_n_Cl34_derived)*Y(He4)*state.rho - screened_rates(k_P31_He4_to_p_S34_reaclib)*Y(He4)*state.rho + screened_rates(k_P31_p_to_He4_Si28_reaclib)*Y(H1)*state.rho + screened_rates(k_P31_to_He4_Al27_derived); jac.set(He4, P31, scratch); - scratch = -screened_rates(k_He4_P32_to_Cl36_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_P32_to_n_Cl35_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_P32_to_p_S35_reaclib)*Y(He4)*state.rho + screened_rates(k_p_P32_to_He4_Si29_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_P32_He4_to_Cl36_reaclib)*Y(He4)*state.rho - screened_rates(k_P32_He4_to_n_Cl35_derived)*Y(He4)*state.rho - screened_rates(k_P32_He4_to_p_S35_derived)*Y(He4)*state.rho + screened_rates(k_P32_p_to_He4_Si29_reaclib)*Y(H1)*state.rho; jac.set(He4, P32, scratch); - scratch = -screened_rates(k_He4_P33_to_Cl37_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_P33_to_n_Cl36_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_P33_to_p_S36_reaclib)*Y(He4)*state.rho + screened_rates(k_p_P33_to_He4_Si30_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_P33_He4_to_Cl37_reaclib)*Y(He4)*state.rho - screened_rates(k_P33_He4_to_n_Cl36_derived)*Y(He4)*state.rho - screened_rates(k_P33_He4_to_p_S36_derived)*Y(He4)*state.rho + screened_rates(k_P33_p_to_He4_Si30_reaclib)*Y(H1)*state.rho; jac.set(He4, P33, scratch); - scratch = -screened_rates(k_He4_S32_to_Ar36_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_S32_to_p_Cl35_reaclib)*Y(He4)*state.rho + screened_rates(k_S32_to_He4_Si28_reaclib) + screened_rates(k_n_S32_to_He4_Si29_reaclib)*Y(N)*state.rho + screened_rates(k_p_S32_to_He4_P29_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_S32_He4_to_Ar36_reaclib)*Y(He4)*state.rho - screened_rates(k_S32_He4_to_p_Cl35_derived)*Y(He4)*state.rho + screened_rates(k_S32_n_to_He4_Si29_reaclib)*Y(N)*state.rho + screened_rates(k_S32_p_to_He4_P29_derived)*Y(H1)*state.rho + screened_rates(k_S32_to_He4_Si28_derived); jac.set(He4, S32, scratch); - scratch = -screened_rates(k_He4_S33_to_Ar37_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_S33_to_n_Ar36_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_S33_to_p_Cl36_reaclib)*Y(He4)*state.rho + screened_rates(k_S33_to_He4_Si29_reaclib) + screened_rates(k_n_S33_to_He4_Si30_reaclib)*Y(N)*state.rho + screened_rates(k_p_S33_to_He4_P30_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_S33_He4_to_Ar37_reaclib)*Y(He4)*state.rho - screened_rates(k_S33_He4_to_n_Ar36_derived)*Y(He4)*state.rho - screened_rates(k_S33_He4_to_p_Cl36_derived)*Y(He4)*state.rho + screened_rates(k_S33_n_to_He4_Si30_reaclib)*Y(N)*state.rho + screened_rates(k_S33_p_to_He4_P30_derived)*Y(H1)*state.rho + screened_rates(k_S33_to_He4_Si29_derived); jac.set(He4, S33, scratch); - scratch = -screened_rates(k_He4_S34_to_Ar38_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_S34_to_n_Ar37_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_S34_to_p_Cl37_reaclib)*Y(He4)*state.rho + screened_rates(k_S34_to_He4_Si30_reaclib) + screened_rates(k_n_S34_to_He4_Si31_reaclib)*Y(N)*state.rho + screened_rates(k_p_S34_to_He4_P31_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_S34_He4_to_Ar38_reaclib)*Y(He4)*state.rho - screened_rates(k_S34_He4_to_n_Ar37_reaclib)*Y(He4)*state.rho - screened_rates(k_S34_He4_to_p_Cl37_reaclib)*Y(He4)*state.rho + screened_rates(k_S34_n_to_He4_Si31_derived)*Y(N)*state.rho + screened_rates(k_S34_p_to_He4_P31_derived)*Y(H1)*state.rho + screened_rates(k_S34_to_He4_Si30_derived); jac.set(He4, S34, scratch); - scratch = -screened_rates(k_He4_S35_to_Ar39_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_S35_to_n_Ar38_reaclib)*Y(He4)*state.rho + screened_rates(k_S35_to_He4_Si31_reaclib) + screened_rates(k_n_S35_to_He4_Si32_reaclib)*Y(N)*state.rho + screened_rates(k_p_S35_to_He4_P32_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_S35_He4_to_Ar39_reaclib)*Y(He4)*state.rho - screened_rates(k_S35_He4_to_n_Ar38_reaclib)*Y(He4)*state.rho + screened_rates(k_S35_n_to_He4_Si32_reaclib)*Y(N)*state.rho + screened_rates(k_S35_p_to_He4_P32_reaclib)*Y(H1)*state.rho + screened_rates(k_S35_to_He4_Si31_derived); jac.set(He4, S35, scratch); - scratch = -screened_rates(k_He4_S36_to_Ar40_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_S36_to_n_Ar39_reaclib)*Y(He4)*state.rho + screened_rates(k_S36_to_He4_Si32_reaclib) + screened_rates(k_p_S36_to_He4_P33_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_S36_He4_to_Ar40_reaclib)*Y(He4)*state.rho - screened_rates(k_S36_He4_to_n_Ar39_derived)*Y(He4)*state.rho + screened_rates(k_S36_p_to_He4_P33_reaclib)*Y(H1)*state.rho + screened_rates(k_S36_to_He4_Si32_derived); jac.set(He4, S36, scratch); - scratch = screened_rates(k_Cl33_to_He4_P29_reaclib) - screened_rates(k_He4_Cl33_to_K37_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cl33_to_p_Ar36_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cl33_to_He4_P30_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Cl33_He4_to_K37_reaclib)*Y(He4)*state.rho - screened_rates(k_Cl33_He4_to_p_Ar36_reaclib)*Y(He4)*state.rho + screened_rates(k_Cl33_n_to_He4_P30_reaclib)*Y(N)*state.rho + screened_rates(k_Cl33_to_He4_P29_derived); jac.set(He4, Cl33, scratch); - scratch = screened_rates(k_Cl34_to_He4_P30_reaclib) - screened_rates(k_He4_Cl34_to_K38_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cl34_to_n_K37_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cl34_to_p_Ar37_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cl34_to_He4_P31_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Cl34_He4_to_K38_reaclib)*Y(He4)*state.rho - screened_rates(k_Cl34_He4_to_n_K37_derived)*Y(He4)*state.rho - screened_rates(k_Cl34_He4_to_p_Ar37_reaclib)*Y(He4)*state.rho + screened_rates(k_Cl34_n_to_He4_P31_reaclib)*Y(N)*state.rho + screened_rates(k_Cl34_to_He4_P30_derived); jac.set(He4, Cl34, scratch); - scratch = screened_rates(k_Cl35_to_He4_P31_reaclib) - screened_rates(k_He4_Cl35_to_K39_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cl35_to_n_K38_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cl35_to_p_Ar38_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cl35_to_He4_P32_reaclib)*Y(N)*state.rho + screened_rates(k_p_Cl35_to_He4_S32_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cl35_He4_to_K39_reaclib)*Y(He4)*state.rho - screened_rates(k_Cl35_He4_to_n_K38_derived)*Y(He4)*state.rho - screened_rates(k_Cl35_He4_to_p_Ar38_reaclib)*Y(He4)*state.rho + screened_rates(k_Cl35_n_to_He4_P32_reaclib)*Y(N)*state.rho + screened_rates(k_Cl35_p_to_He4_S32_reaclib)*Y(H1)*state.rho + screened_rates(k_Cl35_to_He4_P31_derived); jac.set(He4, Cl35, scratch); - scratch = screened_rates(k_Cl36_to_He4_P32_reaclib) - screened_rates(k_He4_Cl36_to_K40_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cl36_to_n_K39_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cl36_to_p_Ar39_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cl36_to_He4_P33_reaclib)*Y(N)*state.rho + screened_rates(k_p_Cl36_to_He4_S33_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cl36_He4_to_K40_reaclib)*Y(He4)*state.rho - screened_rates(k_Cl36_He4_to_n_K39_derived)*Y(He4)*state.rho - screened_rates(k_Cl36_He4_to_p_Ar39_derived)*Y(He4)*state.rho + screened_rates(k_Cl36_n_to_He4_P33_reaclib)*Y(N)*state.rho + screened_rates(k_Cl36_p_to_He4_S33_reaclib)*Y(H1)*state.rho + screened_rates(k_Cl36_to_He4_P32_derived); jac.set(He4, Cl36, scratch); - scratch = screened_rates(k_Cl37_to_He4_P33_reaclib) - screened_rates(k_He4_Cl37_to_K41_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cl37_to_n_K40_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cl37_to_p_Ar40_reaclib)*Y(He4)*state.rho + screened_rates(k_p_Cl37_to_He4_S34_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cl37_He4_to_K41_reaclib)*Y(He4)*state.rho - screened_rates(k_Cl37_He4_to_n_K40_derived)*Y(He4)*state.rho - screened_rates(k_Cl37_He4_to_p_Ar40_derived)*Y(He4)*state.rho + screened_rates(k_Cl37_p_to_He4_S34_derived)*Y(H1)*state.rho + screened_rates(k_Cl37_to_He4_P33_derived); jac.set(He4, Cl37, scratch); - scratch = screened_rates(k_Ar36_to_He4_S32_reaclib) - screened_rates(k_He4_Ar36_to_Ca40_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ar36_to_p_K39_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Ar36_to_He4_S33_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ar36_to_He4_Cl33_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ar36_He4_to_Ca40_reaclib)*Y(He4)*state.rho - screened_rates(k_Ar36_He4_to_p_K39_derived)*Y(He4)*state.rho + screened_rates(k_Ar36_n_to_He4_S33_reaclib)*Y(N)*state.rho + screened_rates(k_Ar36_p_to_He4_Cl33_derived)*Y(H1)*state.rho + screened_rates(k_Ar36_to_He4_S32_derived); jac.set(He4, Ar36, scratch); - scratch = screened_rates(k_Ar37_to_He4_S33_reaclib) - screened_rates(k_He4_Ar37_to_Ca41_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ar37_to_n_Ca40_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ar37_to_p_K40_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Ar37_to_He4_S34_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ar37_to_He4_Cl34_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ar37_He4_to_Ca41_reaclib)*Y(He4)*state.rho - screened_rates(k_Ar37_He4_to_n_Ca40_derived)*Y(He4)*state.rho - screened_rates(k_Ar37_He4_to_p_K40_derived)*Y(He4)*state.rho + screened_rates(k_Ar37_n_to_He4_S34_derived)*Y(N)*state.rho + screened_rates(k_Ar37_p_to_He4_Cl34_derived)*Y(H1)*state.rho + screened_rates(k_Ar37_to_He4_S33_derived); jac.set(He4, Ar37, scratch); - scratch = screened_rates(k_Ar38_to_He4_S34_reaclib) - screened_rates(k_He4_Ar38_to_Ca42_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ar38_to_n_Ca41_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ar38_to_p_K41_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Ar38_to_He4_S35_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ar38_to_He4_Cl35_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ar38_He4_to_Ca42_reaclib)*Y(He4)*state.rho - screened_rates(k_Ar38_He4_to_n_Ca41_derived)*Y(He4)*state.rho - screened_rates(k_Ar38_He4_to_p_K41_derived)*Y(He4)*state.rho + screened_rates(k_Ar38_n_to_He4_S35_derived)*Y(N)*state.rho + screened_rates(k_Ar38_p_to_He4_Cl35_derived)*Y(H1)*state.rho + screened_rates(k_Ar38_to_He4_S34_derived); jac.set(He4, Ar38, scratch); - scratch = screened_rates(k_Ar39_to_He4_S35_reaclib) - screened_rates(k_He4_Ar39_to_Ca43_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ar39_to_n_Ca42_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Ar39_to_He4_S36_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ar39_to_He4_Cl36_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ar39_He4_to_Ca43_reaclib)*Y(He4)*state.rho - screened_rates(k_Ar39_He4_to_n_Ca42_derived)*Y(He4)*state.rho + screened_rates(k_Ar39_n_to_He4_S36_reaclib)*Y(N)*state.rho + screened_rates(k_Ar39_p_to_He4_Cl36_reaclib)*Y(H1)*state.rho + screened_rates(k_Ar39_to_He4_S35_derived); jac.set(He4, Ar39, scratch); - scratch = screened_rates(k_Ar40_to_He4_S36_reaclib) - screened_rates(k_He4_Ar40_to_Ca44_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ar40_to_n_Ca43_reaclib)*Y(He4)*state.rho + screened_rates(k_p_Ar40_to_He4_Cl37_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ar40_He4_to_Ca44_reaclib)*Y(He4)*state.rho - screened_rates(k_Ar40_He4_to_n_Ca43_derived)*Y(He4)*state.rho + screened_rates(k_Ar40_p_to_He4_Cl37_reaclib)*Y(H1)*state.rho + screened_rates(k_Ar40_to_He4_S36_derived); jac.set(He4, Ar40, scratch); - scratch = -screened_rates(k_He4_K37_to_p_Ca40_reaclib)*Y(He4)*state.rho + screened_rates(k_K37_to_He4_Cl33_reaclib) + screened_rates(k_n_K37_to_He4_Cl34_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_K37_He4_to_p_Ca40_reaclib)*Y(He4)*state.rho + screened_rates(k_K37_n_to_He4_Cl34_reaclib)*Y(N)*state.rho + screened_rates(k_K37_to_He4_Cl33_derived); jac.set(He4, K37, scratch); - scratch = -screened_rates(k_He4_K38_to_p_Ca41_reaclib)*Y(He4)*state.rho + screened_rates(k_K38_to_He4_Cl34_reaclib) + screened_rates(k_n_K38_to_He4_Cl35_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_K38_He4_to_p_Ca41_reaclib)*Y(He4)*state.rho + screened_rates(k_K38_n_to_He4_Cl35_reaclib)*Y(N)*state.rho + screened_rates(k_K38_to_He4_Cl34_derived); jac.set(He4, K38, scratch); - scratch = -screened_rates(k_He4_K39_to_Sc43_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_K39_to_p_Ca42_reaclib)*Y(He4)*state.rho + screened_rates(k_K39_to_He4_Cl35_reaclib) + screened_rates(k_n_K39_to_He4_Cl36_reaclib)*Y(N)*state.rho + screened_rates(k_p_K39_to_He4_Ar36_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_K39_He4_to_Sc43_reaclib)*Y(He4)*state.rho - screened_rates(k_K39_He4_to_p_Ca42_derived)*Y(He4)*state.rho + screened_rates(k_K39_n_to_He4_Cl36_reaclib)*Y(N)*state.rho + screened_rates(k_K39_p_to_He4_Ar36_reaclib)*Y(H1)*state.rho + screened_rates(k_K39_to_He4_Cl35_derived); jac.set(He4, K39, scratch); - scratch = -screened_rates(k_He4_K40_to_Sc44_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_K40_to_n_Sc43_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_K40_to_p_Ca43_reaclib)*Y(He4)*state.rho + screened_rates(k_K40_to_He4_Cl36_reaclib) + screened_rates(k_n_K40_to_He4_Cl37_reaclib)*Y(N)*state.rho + screened_rates(k_p_K40_to_He4_Ar37_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_K40_He4_to_Sc44_reaclib)*Y(He4)*state.rho - screened_rates(k_K40_He4_to_n_Sc43_derived)*Y(He4)*state.rho - screened_rates(k_K40_He4_to_p_Ca43_reaclib)*Y(He4)*state.rho + screened_rates(k_K40_n_to_He4_Cl37_reaclib)*Y(N)*state.rho + screened_rates(k_K40_p_to_He4_Ar37_reaclib)*Y(H1)*state.rho + screened_rates(k_K40_to_He4_Cl36_derived); jac.set(He4, K40, scratch); - scratch = -screened_rates(k_He4_K41_to_Sc45_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_K41_to_n_Sc44_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_K41_to_p_Ca44_reaclib)*Y(He4)*state.rho + screened_rates(k_K41_to_He4_Cl37_reaclib) + screened_rates(k_p_K41_to_He4_Ar38_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_K41_He4_to_Sc45_reaclib)*Y(He4)*state.rho - screened_rates(k_K41_He4_to_n_Sc44_reaclib)*Y(He4)*state.rho - screened_rates(k_K41_He4_to_p_Ca44_reaclib)*Y(He4)*state.rho + screened_rates(k_K41_p_to_He4_Ar38_reaclib)*Y(H1)*state.rho + screened_rates(k_K41_to_He4_Cl37_derived); jac.set(He4, K41, scratch); - scratch = screened_rates(k_Ca40_to_He4_Ar36_reaclib) - screened_rates(k_He4_Ca40_to_Ti44_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca40_to_p_Sc43_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Ca40_to_He4_Ar37_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ca40_to_He4_K37_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ca40_He4_to_Ti44_reaclib)*Y(He4)*state.rho - screened_rates(k_Ca40_He4_to_p_Sc43_derived)*Y(He4)*state.rho + screened_rates(k_Ca40_n_to_He4_Ar37_reaclib)*Y(N)*state.rho + screened_rates(k_Ca40_p_to_He4_K37_derived)*Y(H1)*state.rho + screened_rates(k_Ca40_to_He4_Ar36_derived); jac.set(He4, Ca40, scratch); - scratch = screened_rates(k_Ca41_to_He4_Ar37_reaclib) - screened_rates(k_He4_Ca41_to_Ti45_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca41_to_n_Ti44_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca41_to_p_Sc44_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Ca41_to_He4_Ar38_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ca41_to_He4_K38_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ca41_He4_to_Ti45_reaclib)*Y(He4)*state.rho - screened_rates(k_Ca41_He4_to_n_Ti44_derived)*Y(He4)*state.rho - screened_rates(k_Ca41_He4_to_p_Sc44_derived)*Y(He4)*state.rho + screened_rates(k_Ca41_n_to_He4_Ar38_reaclib)*Y(N)*state.rho + screened_rates(k_Ca41_p_to_He4_K38_derived)*Y(H1)*state.rho + screened_rates(k_Ca41_to_He4_Ar37_derived); jac.set(He4, Ca41, scratch); - scratch = screened_rates(k_Ca42_to_He4_Ar38_reaclib) - screened_rates(k_He4_Ca42_to_Ti46_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca42_to_n_Ti45_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca42_to_p_Sc45_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Ca42_to_He4_Ar39_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ca42_to_He4_K39_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ca42_He4_to_Ti46_reaclib)*Y(He4)*state.rho - screened_rates(k_Ca42_He4_to_n_Ti45_derived)*Y(He4)*state.rho - screened_rates(k_Ca42_He4_to_p_Sc45_derived)*Y(He4)*state.rho + screened_rates(k_Ca42_n_to_He4_Ar39_reaclib)*Y(N)*state.rho + screened_rates(k_Ca42_p_to_He4_K39_reaclib)*Y(H1)*state.rho + screened_rates(k_Ca42_to_He4_Ar38_derived); jac.set(He4, Ca42, scratch); - scratch = screened_rates(k_Ca43_to_He4_Ar39_reaclib) - screened_rates(k_He4_Ca43_to_Ti47_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca43_to_n_Ti46_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca43_to_p_Sc46_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Ca43_to_He4_Ar40_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ca43_to_He4_K40_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ca43_He4_to_Ti47_reaclib)*Y(He4)*state.rho - screened_rates(k_Ca43_He4_to_n_Ti46_reaclib)*Y(He4)*state.rho - screened_rates(k_Ca43_He4_to_p_Sc46_derived)*Y(He4)*state.rho + screened_rates(k_Ca43_n_to_He4_Ar40_reaclib)*Y(N)*state.rho + screened_rates(k_Ca43_p_to_He4_K40_derived)*Y(H1)*state.rho + screened_rates(k_Ca43_to_He4_Ar39_derived); jac.set(He4, Ca43, scratch); - scratch = screened_rates(k_Ca44_to_He4_Ar40_reaclib) - screened_rates(k_He4_Ca44_to_Ti48_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca44_to_n_Ti47_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca44_to_p_Sc47_reaclib)*Y(He4)*state.rho + screened_rates(k_p_Ca44_to_He4_K41_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ca44_He4_to_Ti48_reaclib)*Y(He4)*state.rho - screened_rates(k_Ca44_He4_to_n_Ti47_derived)*Y(He4)*state.rho - screened_rates(k_Ca44_He4_to_p_Sc47_derived)*Y(He4)*state.rho + screened_rates(k_Ca44_p_to_He4_K41_derived)*Y(H1)*state.rho + screened_rates(k_Ca44_to_He4_Ar40_derived); jac.set(He4, Ca44, scratch); - scratch = -screened_rates(k_He4_Ca45_to_Ti49_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca45_to_n_Ti48_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca45_to_p_Sc48_reaclib)*Y(He4)*state.rho; + scratch = -screened_rates(k_Ca45_He4_to_Ti49_reaclib)*Y(He4)*state.rho - screened_rates(k_Ca45_He4_to_n_Ti48_reaclib)*Y(He4)*state.rho - screened_rates(k_Ca45_He4_to_p_Sc48_derived)*Y(He4)*state.rho; jac.set(He4, Ca45, scratch); - scratch = -screened_rates(k_He4_Ca46_to_Ti50_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca46_to_n_Ti49_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca46_to_p_Sc49_reaclib)*Y(He4)*state.rho; + scratch = -screened_rates(k_Ca46_He4_to_Ti50_reaclib)*Y(He4)*state.rho - screened_rates(k_Ca46_He4_to_n_Ti49_derived)*Y(He4)*state.rho - screened_rates(k_Ca46_He4_to_p_Sc49_derived)*Y(He4)*state.rho; jac.set(He4, Ca46, scratch); - scratch = -screened_rates(k_He4_Ca47_to_Ti51_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca47_to_n_Ti50_reaclib)*Y(He4)*state.rho; + scratch = -screened_rates(k_Ca47_He4_to_Ti51_reaclib)*Y(He4)*state.rho - screened_rates(k_Ca47_He4_to_n_Ti50_reaclib)*Y(He4)*state.rho; jac.set(He4, Ca47, scratch); - scratch = -screened_rates(k_He4_Ca48_to_n_Ti51_reaclib)*Y(He4)*state.rho; + scratch = -screened_rates(k_Ca48_He4_to_n_Ti51_derived)*Y(He4)*state.rho; jac.set(He4, Ca48, scratch); - scratch = -screened_rates(k_He4_Sc43_to_V47_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Sc43_to_n_V46_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Sc43_to_p_Ti46_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc43_to_He4_K39_reaclib) + screened_rates(k_n_Sc43_to_He4_K40_reaclib)*Y(N)*state.rho + screened_rates(k_p_Sc43_to_He4_Ca40_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Sc43_He4_to_V47_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc43_He4_to_n_V46_derived)*Y(He4)*state.rho - screened_rates(k_Sc43_He4_to_p_Ti46_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc43_n_to_He4_K40_reaclib)*Y(N)*state.rho + screened_rates(k_Sc43_p_to_He4_Ca40_reaclib)*Y(H1)*state.rho + screened_rates(k_Sc43_to_He4_K39_derived); jac.set(He4, Sc43, scratch); - scratch = -screened_rates(k_He4_Sc44_to_V48_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Sc44_to_n_V47_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Sc44_to_p_Ti47_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc44_to_He4_K40_reaclib) + screened_rates(k_n_Sc44_to_He4_K41_reaclib)*Y(N)*state.rho + screened_rates(k_p_Sc44_to_He4_Ca41_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Sc44_He4_to_V48_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc44_He4_to_n_V47_derived)*Y(He4)*state.rho - screened_rates(k_Sc44_He4_to_p_Ti47_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc44_n_to_He4_K41_derived)*Y(N)*state.rho + screened_rates(k_Sc44_p_to_He4_Ca41_reaclib)*Y(H1)*state.rho + screened_rates(k_Sc44_to_He4_K40_derived); jac.set(He4, Sc44, scratch); - scratch = -screened_rates(k_He4_Sc45_to_V49_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Sc45_to_n_V48_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Sc45_to_p_Ti48_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc45_to_He4_K41_reaclib) + screened_rates(k_p_Sc45_to_He4_Ca42_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Sc45_He4_to_V49_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc45_He4_to_n_V48_derived)*Y(He4)*state.rho - screened_rates(k_Sc45_He4_to_p_Ti48_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc45_p_to_He4_Ca42_reaclib)*Y(H1)*state.rho + screened_rates(k_Sc45_to_He4_K41_derived); jac.set(He4, Sc45, scratch); - scratch = -screened_rates(k_He4_Sc46_to_V50_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Sc46_to_n_V49_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Sc46_to_p_Ti49_reaclib)*Y(He4)*state.rho + screened_rates(k_p_Sc46_to_He4_Ca43_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Sc46_He4_to_V50_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc46_He4_to_n_V49_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc46_He4_to_p_Ti49_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc46_p_to_He4_Ca43_reaclib)*Y(H1)*state.rho; jac.set(He4, Sc46, scratch); - scratch = -screened_rates(k_He4_Sc47_to_V51_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Sc47_to_n_V50_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Sc47_to_p_Ti50_reaclib)*Y(He4)*state.rho + screened_rates(k_p_Sc47_to_He4_Ca44_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Sc47_He4_to_V51_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc47_He4_to_n_V50_derived)*Y(He4)*state.rho - screened_rates(k_Sc47_He4_to_p_Ti50_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc47_p_to_He4_Ca44_reaclib)*Y(H1)*state.rho; jac.set(He4, Sc47, scratch); - scratch = -screened_rates(k_He4_Sc48_to_V52_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Sc48_to_n_V51_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Sc48_to_p_Ti51_reaclib)*Y(He4)*state.rho + screened_rates(k_p_Sc48_to_He4_Ca45_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Sc48_He4_to_V52_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc48_He4_to_n_V51_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc48_He4_to_p_Ti51_reaclib)*Y(He4)*state.rho + screened_rates(k_Sc48_p_to_He4_Ca45_reaclib)*Y(H1)*state.rho; jac.set(He4, Sc48, scratch); - scratch = -screened_rates(k_He4_Sc49_to_n_V52_reaclib)*Y(He4)*state.rho + screened_rates(k_p_Sc49_to_He4_Ca46_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Sc49_He4_to_n_V52_derived)*Y(He4)*state.rho + screened_rates(k_Sc49_p_to_He4_Ca46_reaclib)*Y(H1)*state.rho; jac.set(He4, Sc49, scratch); - scratch = -screened_rates(k_He4_Ti44_to_Cr48_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ti44_to_p_V47_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti44_to_He4_Ca40_reaclib) + screened_rates(k_n_Ti44_to_He4_Ca41_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Ti44_He4_to_Cr48_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti44_He4_to_p_V47_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti44_n_to_He4_Ca41_reaclib)*Y(N)*state.rho + screened_rates(k_Ti44_to_He4_Ca40_derived); jac.set(He4, Ti44, scratch); - scratch = -screened_rates(k_He4_Ti45_to_Cr49_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ti45_to_n_Cr48_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ti45_to_p_V48_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti45_to_He4_Ca41_reaclib) + screened_rates(k_n_Ti45_to_He4_Ca42_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Ti45_He4_to_Cr49_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti45_He4_to_n_Cr48_derived)*Y(He4)*state.rho - screened_rates(k_Ti45_He4_to_p_V48_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti45_n_to_He4_Ca42_reaclib)*Y(N)*state.rho + screened_rates(k_Ti45_to_He4_Ca41_derived); jac.set(He4, Ti45, scratch); - scratch = -screened_rates(k_He4_Ti46_to_Cr50_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ti46_to_n_Cr49_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ti46_to_p_V49_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti46_to_He4_Ca42_reaclib) + screened_rates(k_n_Ti46_to_He4_Ca43_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ti46_to_He4_Sc43_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ti46_He4_to_Cr50_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti46_He4_to_n_Cr49_derived)*Y(He4)*state.rho - screened_rates(k_Ti46_He4_to_p_V49_derived)*Y(He4)*state.rho + screened_rates(k_Ti46_n_to_He4_Ca43_derived)*Y(N)*state.rho + screened_rates(k_Ti46_p_to_He4_Sc43_derived)*Y(H1)*state.rho + screened_rates(k_Ti46_to_He4_Ca42_derived); jac.set(He4, Ti46, scratch); - scratch = -screened_rates(k_He4_Ti47_to_Cr51_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ti47_to_n_Cr50_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ti47_to_p_V50_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti47_to_He4_Ca43_reaclib) + screened_rates(k_n_Ti47_to_He4_Ca44_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ti47_to_He4_Sc44_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ti47_He4_to_Cr51_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti47_He4_to_n_Cr50_derived)*Y(He4)*state.rho - screened_rates(k_Ti47_He4_to_p_V50_derived)*Y(He4)*state.rho + screened_rates(k_Ti47_n_to_He4_Ca44_reaclib)*Y(N)*state.rho + screened_rates(k_Ti47_p_to_He4_Sc44_derived)*Y(H1)*state.rho + screened_rates(k_Ti47_to_He4_Ca43_derived); jac.set(He4, Ti47, scratch); - scratch = -screened_rates(k_He4_Ti48_to_Cr52_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ti48_to_n_Cr51_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ti48_to_p_V51_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti48_to_He4_Ca44_reaclib) + screened_rates(k_n_Ti48_to_He4_Ca45_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ti48_to_He4_Sc45_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ti48_He4_to_Cr52_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti48_He4_to_n_Cr51_derived)*Y(He4)*state.rho - screened_rates(k_Ti48_He4_to_p_V51_derived)*Y(He4)*state.rho + screened_rates(k_Ti48_n_to_He4_Ca45_derived)*Y(N)*state.rho + screened_rates(k_Ti48_p_to_He4_Sc45_derived)*Y(H1)*state.rho + screened_rates(k_Ti48_to_He4_Ca44_derived); jac.set(He4, Ti48, scratch); - scratch = -screened_rates(k_He4_Ti49_to_Cr53_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ti49_to_n_Cr52_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ti49_to_p_V52_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti49_to_He4_Ca45_reaclib) + screened_rates(k_n_Ti49_to_He4_Ca46_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ti49_to_He4_Sc46_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ti49_He4_to_Cr53_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti49_He4_to_n_Cr52_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti49_He4_to_p_V52_derived)*Y(He4)*state.rho + screened_rates(k_Ti49_n_to_He4_Ca46_reaclib)*Y(N)*state.rho + screened_rates(k_Ti49_p_to_He4_Sc46_derived)*Y(H1)*state.rho + screened_rates(k_Ti49_to_He4_Ca45_derived); jac.set(He4, Ti49, scratch); - scratch = -screened_rates(k_He4_Ti50_to_Cr54_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ti50_to_n_Cr53_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti50_to_He4_Ca46_reaclib) + screened_rates(k_n_Ti50_to_He4_Ca47_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ti50_to_He4_Sc47_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ti50_He4_to_Cr54_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti50_He4_to_n_Cr53_derived)*Y(He4)*state.rho + screened_rates(k_Ti50_n_to_He4_Ca47_derived)*Y(N)*state.rho + screened_rates(k_Ti50_p_to_He4_Sc47_derived)*Y(H1)*state.rho + screened_rates(k_Ti50_to_He4_Ca46_derived); jac.set(He4, Ti50, scratch); - scratch = -screened_rates(k_He4_Ti51_to_n_Cr54_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti51_to_He4_Ca47_reaclib) + screened_rates(k_n_Ti51_to_He4_Ca48_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ti51_to_He4_Sc48_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ti51_He4_to_n_Cr54_reaclib)*Y(He4)*state.rho + screened_rates(k_Ti51_n_to_He4_Ca48_reaclib)*Y(N)*state.rho + screened_rates(k_Ti51_p_to_He4_Sc48_derived)*Y(H1)*state.rho + screened_rates(k_Ti51_to_He4_Ca47_derived); jac.set(He4, Ti51, scratch); - scratch = -screened_rates(k_He4_V46_to_Mn50_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_V46_to_p_Cr49_reaclib)*Y(He4)*state.rho + screened_rates(k_n_V46_to_He4_Sc43_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_V46_He4_to_Mn50_reaclib)*Y(He4)*state.rho - screened_rates(k_V46_He4_to_p_Cr49_reaclib)*Y(He4)*state.rho + screened_rates(k_V46_n_to_He4_Sc43_reaclib)*Y(N)*state.rho; jac.set(He4, V46, scratch); - scratch = -screened_rates(k_He4_V47_to_Mn51_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_V47_to_n_Mn50_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_V47_to_p_Cr50_reaclib)*Y(He4)*state.rho + screened_rates(k_V47_to_He4_Sc43_reaclib) + screened_rates(k_n_V47_to_He4_Sc44_reaclib)*Y(N)*state.rho + screened_rates(k_p_V47_to_He4_Ti44_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_V47_He4_to_Mn51_reaclib)*Y(He4)*state.rho - screened_rates(k_V47_He4_to_n_Mn50_derived)*Y(He4)*state.rho - screened_rates(k_V47_He4_to_p_Cr50_reaclib)*Y(He4)*state.rho + screened_rates(k_V47_n_to_He4_Sc44_reaclib)*Y(N)*state.rho + screened_rates(k_V47_p_to_He4_Ti44_derived)*Y(H1)*state.rho + screened_rates(k_V47_to_He4_Sc43_derived); jac.set(He4, V47, scratch); - scratch = -screened_rates(k_He4_V48_to_Mn52_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_V48_to_n_Mn51_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_V48_to_p_Cr51_reaclib)*Y(He4)*state.rho + screened_rates(k_V48_to_He4_Sc44_reaclib) + screened_rates(k_n_V48_to_He4_Sc45_reaclib)*Y(N)*state.rho + screened_rates(k_p_V48_to_He4_Ti45_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_V48_He4_to_Mn52_reaclib)*Y(He4)*state.rho - screened_rates(k_V48_He4_to_n_Mn51_derived)*Y(He4)*state.rho - screened_rates(k_V48_He4_to_p_Cr51_reaclib)*Y(He4)*state.rho + screened_rates(k_V48_n_to_He4_Sc45_reaclib)*Y(N)*state.rho + screened_rates(k_V48_p_to_He4_Ti45_derived)*Y(H1)*state.rho + screened_rates(k_V48_to_He4_Sc44_derived); jac.set(He4, V48, scratch); - scratch = -screened_rates(k_He4_V49_to_Mn53_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_V49_to_n_Mn52_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_V49_to_p_Cr52_reaclib)*Y(He4)*state.rho + screened_rates(k_V49_to_He4_Sc45_reaclib) + screened_rates(k_n_V49_to_He4_Sc46_reaclib)*Y(N)*state.rho + screened_rates(k_p_V49_to_He4_Ti46_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_V49_He4_to_Mn53_reaclib)*Y(He4)*state.rho - screened_rates(k_V49_He4_to_n_Mn52_derived)*Y(He4)*state.rho - screened_rates(k_V49_He4_to_p_Cr52_reaclib)*Y(He4)*state.rho + screened_rates(k_V49_n_to_He4_Sc46_derived)*Y(N)*state.rho + screened_rates(k_V49_p_to_He4_Ti46_reaclib)*Y(H1)*state.rho + screened_rates(k_V49_to_He4_Sc45_derived); jac.set(He4, V49, scratch); - scratch = -screened_rates(k_He4_V50_to_Mn54_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_V50_to_n_Mn53_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_V50_to_p_Cr53_reaclib)*Y(He4)*state.rho + screened_rates(k_V50_to_He4_Sc46_reaclib) + screened_rates(k_n_V50_to_He4_Sc47_reaclib)*Y(N)*state.rho + screened_rates(k_p_V50_to_He4_Ti47_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_V50_He4_to_Mn54_reaclib)*Y(He4)*state.rho - screened_rates(k_V50_He4_to_n_Mn53_derived)*Y(He4)*state.rho - screened_rates(k_V50_He4_to_p_Cr53_reaclib)*Y(He4)*state.rho + screened_rates(k_V50_n_to_He4_Sc47_reaclib)*Y(N)*state.rho + screened_rates(k_V50_p_to_He4_Ti47_reaclib)*Y(H1)*state.rho + screened_rates(k_V50_to_He4_Sc46_derived); jac.set(He4, V50, scratch); - scratch = -screened_rates(k_He4_V51_to_Mn55_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_V51_to_n_Mn54_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_V51_to_p_Cr54_reaclib)*Y(He4)*state.rho + screened_rates(k_V51_to_He4_Sc47_reaclib) + screened_rates(k_n_V51_to_He4_Sc48_reaclib)*Y(N)*state.rho + screened_rates(k_p_V51_to_He4_Ti48_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_V51_He4_to_Mn55_reaclib)*Y(He4)*state.rho - screened_rates(k_V51_He4_to_n_Mn54_derived)*Y(He4)*state.rho - screened_rates(k_V51_He4_to_p_Cr54_derived)*Y(He4)*state.rho + screened_rates(k_V51_n_to_He4_Sc48_derived)*Y(N)*state.rho + screened_rates(k_V51_p_to_He4_Ti48_reaclib)*Y(H1)*state.rho + screened_rates(k_V51_to_He4_Sc47_derived); jac.set(He4, V51, scratch); - scratch = -screened_rates(k_He4_V52_to_n_Mn55_reaclib)*Y(He4)*state.rho + screened_rates(k_V52_to_He4_Sc48_reaclib) + screened_rates(k_n_V52_to_He4_Sc49_reaclib)*Y(N)*state.rho + screened_rates(k_p_V52_to_He4_Ti49_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_V52_He4_to_n_Mn55_reaclib)*Y(He4)*state.rho + screened_rates(k_V52_n_to_He4_Sc49_reaclib)*Y(N)*state.rho + screened_rates(k_V52_p_to_He4_Ti49_reaclib)*Y(H1)*state.rho + screened_rates(k_V52_to_He4_Sc48_derived); jac.set(He4, V52, scratch); - scratch = screened_rates(k_Cr48_to_He4_Ti44_reaclib) - screened_rates(k_He4_Cr48_to_Fe52_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cr48_to_p_Mn51_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cr48_to_He4_Ti45_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Cr48_He4_to_Fe52_reaclib)*Y(He4)*state.rho - screened_rates(k_Cr48_He4_to_p_Mn51_reaclib)*Y(He4)*state.rho + screened_rates(k_Cr48_n_to_He4_Ti45_reaclib)*Y(N)*state.rho + screened_rates(k_Cr48_to_He4_Ti44_derived); jac.set(He4, Cr48, scratch); - scratch = screened_rates(k_Cr49_to_He4_Ti45_reaclib) - screened_rates(k_He4_Cr49_to_Fe53_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cr49_to_n_Fe52_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cr49_to_p_Mn52_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cr49_to_He4_Ti46_reaclib)*Y(N)*state.rho + screened_rates(k_p_Cr49_to_He4_V46_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cr49_He4_to_Fe53_reaclib)*Y(He4)*state.rho - screened_rates(k_Cr49_He4_to_n_Fe52_derived)*Y(He4)*state.rho - screened_rates(k_Cr49_He4_to_p_Mn52_reaclib)*Y(He4)*state.rho + screened_rates(k_Cr49_n_to_He4_Ti46_reaclib)*Y(N)*state.rho + screened_rates(k_Cr49_p_to_He4_V46_derived)*Y(H1)*state.rho + screened_rates(k_Cr49_to_He4_Ti45_derived); jac.set(He4, Cr49, scratch); - scratch = screened_rates(k_Cr50_to_He4_Ti46_reaclib) - screened_rates(k_He4_Cr50_to_Fe54_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cr50_to_n_Fe53_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cr50_to_p_Mn53_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cr50_to_He4_Ti47_reaclib)*Y(N)*state.rho + screened_rates(k_p_Cr50_to_He4_V47_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cr50_He4_to_Fe54_reaclib)*Y(He4)*state.rho - screened_rates(k_Cr50_He4_to_n_Fe53_derived)*Y(He4)*state.rho - screened_rates(k_Cr50_He4_to_p_Mn53_derived)*Y(He4)*state.rho + screened_rates(k_Cr50_n_to_He4_Ti47_reaclib)*Y(N)*state.rho + screened_rates(k_Cr50_p_to_He4_V47_derived)*Y(H1)*state.rho + screened_rates(k_Cr50_to_He4_Ti46_derived); jac.set(He4, Cr50, scratch); - scratch = screened_rates(k_Cr51_to_He4_Ti47_reaclib) - screened_rates(k_He4_Cr51_to_Fe55_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cr51_to_n_Fe54_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cr51_to_p_Mn54_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cr51_to_He4_Ti48_reaclib)*Y(N)*state.rho + screened_rates(k_p_Cr51_to_He4_V48_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cr51_He4_to_Fe55_reaclib)*Y(He4)*state.rho - screened_rates(k_Cr51_He4_to_n_Fe54_derived)*Y(He4)*state.rho - screened_rates(k_Cr51_He4_to_p_Mn54_derived)*Y(He4)*state.rho + screened_rates(k_Cr51_n_to_He4_Ti48_reaclib)*Y(N)*state.rho + screened_rates(k_Cr51_p_to_He4_V48_derived)*Y(H1)*state.rho + screened_rates(k_Cr51_to_He4_Ti47_derived); jac.set(He4, Cr51, scratch); - scratch = screened_rates(k_Cr52_to_He4_Ti48_reaclib) - screened_rates(k_He4_Cr52_to_Fe56_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cr52_to_n_Fe55_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cr52_to_p_Mn55_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cr52_to_He4_Ti49_reaclib)*Y(N)*state.rho + screened_rates(k_p_Cr52_to_He4_V49_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cr52_He4_to_Fe56_reaclib)*Y(He4)*state.rho - screened_rates(k_Cr52_He4_to_n_Fe55_derived)*Y(He4)*state.rho - screened_rates(k_Cr52_He4_to_p_Mn55_derived)*Y(He4)*state.rho + screened_rates(k_Cr52_n_to_He4_Ti49_derived)*Y(N)*state.rho + screened_rates(k_Cr52_p_to_He4_V49_derived)*Y(H1)*state.rho + screened_rates(k_Cr52_to_He4_Ti48_derived); jac.set(He4, Cr52, scratch); - scratch = screened_rates(k_Cr53_to_He4_Ti49_reaclib) - screened_rates(k_He4_Cr53_to_Fe57_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cr53_to_n_Fe56_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cr53_to_He4_Ti50_reaclib)*Y(N)*state.rho + screened_rates(k_p_Cr53_to_He4_V50_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cr53_He4_to_Fe57_reaclib)*Y(He4)*state.rho - screened_rates(k_Cr53_He4_to_n_Fe56_derived)*Y(He4)*state.rho + screened_rates(k_Cr53_n_to_He4_Ti50_reaclib)*Y(N)*state.rho + screened_rates(k_Cr53_p_to_He4_V50_derived)*Y(H1)*state.rho + screened_rates(k_Cr53_to_He4_Ti49_derived); jac.set(He4, Cr53, scratch); - scratch = screened_rates(k_Cr54_to_He4_Ti50_reaclib) - screened_rates(k_He4_Cr54_to_Fe58_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cr54_to_n_Fe57_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cr54_to_He4_Ti51_reaclib)*Y(N)*state.rho + screened_rates(k_p_Cr54_to_He4_V51_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cr54_He4_to_Fe58_reaclib)*Y(He4)*state.rho - screened_rates(k_Cr54_He4_to_n_Fe57_derived)*Y(He4)*state.rho + screened_rates(k_Cr54_n_to_He4_Ti51_derived)*Y(N)*state.rho + screened_rates(k_Cr54_p_to_He4_V51_reaclib)*Y(H1)*state.rho + screened_rates(k_Cr54_to_He4_Ti50_derived); jac.set(He4, Cr54, scratch); - scratch = -screened_rates(k_He4_Mn50_to_Co54_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mn50_to_n_Co53_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mn50_to_p_Fe53_reaclib)*Y(He4)*state.rho + screened_rates(k_Mn50_to_He4_V46_reaclib) + screened_rates(k_n_Mn50_to_He4_V47_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Mn50_He4_to_Co54_reaclib)*Y(He4)*state.rho - screened_rates(k_Mn50_He4_to_n_Co53_derived)*Y(He4)*state.rho - screened_rates(k_Mn50_He4_to_p_Fe53_reaclib)*Y(He4)*state.rho + screened_rates(k_Mn50_n_to_He4_V47_reaclib)*Y(N)*state.rho + screened_rates(k_Mn50_to_He4_V46_derived); jac.set(He4, Mn50, scratch); - scratch = -screened_rates(k_He4_Mn51_to_Co55_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mn51_to_n_Co54_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mn51_to_p_Fe54_reaclib)*Y(He4)*state.rho + screened_rates(k_Mn51_to_He4_V47_reaclib) + screened_rates(k_n_Mn51_to_He4_V48_reaclib)*Y(N)*state.rho + screened_rates(k_p_Mn51_to_He4_Cr48_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Mn51_He4_to_Co55_reaclib)*Y(He4)*state.rho - screened_rates(k_Mn51_He4_to_n_Co54_derived)*Y(He4)*state.rho - screened_rates(k_Mn51_He4_to_p_Fe54_reaclib)*Y(He4)*state.rho + screened_rates(k_Mn51_n_to_He4_V48_reaclib)*Y(N)*state.rho + screened_rates(k_Mn51_p_to_He4_Cr48_derived)*Y(H1)*state.rho + screened_rates(k_Mn51_to_He4_V47_derived); jac.set(He4, Mn51, scratch); - scratch = -screened_rates(k_He4_Mn52_to_Co56_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mn52_to_n_Co55_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mn52_to_p_Fe55_reaclib)*Y(He4)*state.rho + screened_rates(k_Mn52_to_He4_V48_reaclib) + screened_rates(k_n_Mn52_to_He4_V49_reaclib)*Y(N)*state.rho + screened_rates(k_p_Mn52_to_He4_Cr49_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Mn52_He4_to_Co56_reaclib)*Y(He4)*state.rho - screened_rates(k_Mn52_He4_to_n_Co55_derived)*Y(He4)*state.rho - screened_rates(k_Mn52_He4_to_p_Fe55_reaclib)*Y(He4)*state.rho + screened_rates(k_Mn52_n_to_He4_V49_reaclib)*Y(N)*state.rho + screened_rates(k_Mn52_p_to_He4_Cr49_derived)*Y(H1)*state.rho + screened_rates(k_Mn52_to_He4_V48_derived); jac.set(He4, Mn52, scratch); - scratch = -screened_rates(k_He4_Mn53_to_Co57_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mn53_to_n_Co56_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mn53_to_p_Fe56_reaclib)*Y(He4)*state.rho + screened_rates(k_Mn53_to_He4_V49_reaclib) + screened_rates(k_n_Mn53_to_He4_V50_reaclib)*Y(N)*state.rho + screened_rates(k_p_Mn53_to_He4_Cr50_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Mn53_He4_to_Co57_reaclib)*Y(He4)*state.rho - screened_rates(k_Mn53_He4_to_n_Co56_derived)*Y(He4)*state.rho - screened_rates(k_Mn53_He4_to_p_Fe56_reaclib)*Y(He4)*state.rho + screened_rates(k_Mn53_n_to_He4_V50_reaclib)*Y(N)*state.rho + screened_rates(k_Mn53_p_to_He4_Cr50_reaclib)*Y(H1)*state.rho + screened_rates(k_Mn53_to_He4_V49_derived); jac.set(He4, Mn53, scratch); - scratch = -screened_rates(k_He4_Mn54_to_Co58_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mn54_to_n_Co57_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mn54_to_p_Fe57_reaclib)*Y(He4)*state.rho + screened_rates(k_Mn54_to_He4_V50_reaclib) + screened_rates(k_n_Mn54_to_He4_V51_reaclib)*Y(N)*state.rho + screened_rates(k_p_Mn54_to_He4_Cr51_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Mn54_He4_to_Co58_reaclib)*Y(He4)*state.rho - screened_rates(k_Mn54_He4_to_n_Co57_derived)*Y(He4)*state.rho - screened_rates(k_Mn54_He4_to_p_Fe57_derived)*Y(He4)*state.rho + screened_rates(k_Mn54_n_to_He4_V51_reaclib)*Y(N)*state.rho + screened_rates(k_Mn54_p_to_He4_Cr51_reaclib)*Y(H1)*state.rho + screened_rates(k_Mn54_to_He4_V50_derived); jac.set(He4, Mn54, scratch); - scratch = -screened_rates(k_He4_Mn55_to_Co59_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mn55_to_n_Co58_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mn55_to_p_Fe58_reaclib)*Y(He4)*state.rho + screened_rates(k_Mn55_to_He4_V51_reaclib) + screened_rates(k_n_Mn55_to_He4_V52_reaclib)*Y(N)*state.rho + screened_rates(k_p_Mn55_to_He4_Cr52_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Mn55_He4_to_Co59_reaclib)*Y(He4)*state.rho - screened_rates(k_Mn55_He4_to_n_Co58_derived)*Y(He4)*state.rho - screened_rates(k_Mn55_He4_to_p_Fe58_derived)*Y(He4)*state.rho + screened_rates(k_Mn55_n_to_He4_V52_derived)*Y(N)*state.rho + screened_rates(k_Mn55_p_to_He4_Cr52_reaclib)*Y(H1)*state.rho + screened_rates(k_Mn55_to_He4_V51_derived); jac.set(He4, Mn55, scratch); - scratch = screened_rates(k_Fe52_to_He4_Cr48_reaclib) - screened_rates(k_He4_Fe52_to_Ni56_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Fe52_to_p_Co55_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Fe52_to_He4_Cr49_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Fe52_He4_to_Ni56_reaclib)*Y(He4)*state.rho - screened_rates(k_Fe52_He4_to_p_Co55_reaclib)*Y(He4)*state.rho + screened_rates(k_Fe52_n_to_He4_Cr49_reaclib)*Y(N)*state.rho + screened_rates(k_Fe52_to_He4_Cr48_derived); jac.set(He4, Fe52, scratch); - scratch = screened_rates(k_Fe53_to_He4_Cr49_reaclib) - screened_rates(k_He4_Fe53_to_Ni57_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Fe53_to_n_Ni56_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Fe53_to_p_Co56_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Fe53_to_He4_Cr50_reaclib)*Y(N)*state.rho + screened_rates(k_p_Fe53_to_He4_Mn50_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Fe53_He4_to_Ni57_reaclib)*Y(He4)*state.rho - screened_rates(k_Fe53_He4_to_n_Ni56_derived)*Y(He4)*state.rho - screened_rates(k_Fe53_He4_to_p_Co56_reaclib)*Y(He4)*state.rho + screened_rates(k_Fe53_n_to_He4_Cr50_reaclib)*Y(N)*state.rho + screened_rates(k_Fe53_p_to_He4_Mn50_derived)*Y(H1)*state.rho + screened_rates(k_Fe53_to_He4_Cr49_derived); jac.set(He4, Fe53, scratch); - scratch = screened_rates(k_Fe54_to_He4_Cr50_reaclib) - screened_rates(k_He4_Fe54_to_Ni58_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Fe54_to_n_Ni57_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Fe54_to_p_Co57_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Fe54_to_He4_Cr51_reaclib)*Y(N)*state.rho + screened_rates(k_p_Fe54_to_He4_Mn51_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Fe54_He4_to_Ni58_reaclib)*Y(He4)*state.rho - screened_rates(k_Fe54_He4_to_n_Ni57_derived)*Y(He4)*state.rho - screened_rates(k_Fe54_He4_to_p_Co57_derived)*Y(He4)*state.rho + screened_rates(k_Fe54_n_to_He4_Cr51_reaclib)*Y(N)*state.rho + screened_rates(k_Fe54_p_to_He4_Mn51_derived)*Y(H1)*state.rho + screened_rates(k_Fe54_to_He4_Cr50_derived); jac.set(He4, Fe54, scratch); - scratch = screened_rates(k_Fe55_to_He4_Cr51_reaclib) - screened_rates(k_He4_Fe55_to_Ni59_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Fe55_to_n_Ni58_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Fe55_to_p_Co58_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Fe55_to_He4_Cr52_reaclib)*Y(N)*state.rho + screened_rates(k_p_Fe55_to_He4_Mn52_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Fe55_He4_to_Ni59_reaclib)*Y(He4)*state.rho - screened_rates(k_Fe55_He4_to_n_Ni58_derived)*Y(He4)*state.rho - screened_rates(k_Fe55_He4_to_p_Co58_derived)*Y(He4)*state.rho + screened_rates(k_Fe55_n_to_He4_Cr52_reaclib)*Y(N)*state.rho + screened_rates(k_Fe55_p_to_He4_Mn52_derived)*Y(H1)*state.rho + screened_rates(k_Fe55_to_He4_Cr51_derived); jac.set(He4, Fe55, scratch); - scratch = screened_rates(k_Fe56_to_He4_Cr52_reaclib) - screened_rates(k_He4_Fe56_to_Ni60_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Fe56_to_n_Ni59_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Fe56_to_p_Co59_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Fe56_to_He4_Cr53_reaclib)*Y(N)*state.rho + screened_rates(k_p_Fe56_to_He4_Mn53_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Fe56_He4_to_Ni60_reaclib)*Y(He4)*state.rho - screened_rates(k_Fe56_He4_to_n_Ni59_derived)*Y(He4)*state.rho - screened_rates(k_Fe56_He4_to_p_Co59_derived)*Y(He4)*state.rho + screened_rates(k_Fe56_n_to_He4_Cr53_reaclib)*Y(N)*state.rho + screened_rates(k_Fe56_p_to_He4_Mn53_derived)*Y(H1)*state.rho + screened_rates(k_Fe56_to_He4_Cr52_derived); jac.set(He4, Fe56, scratch); - scratch = screened_rates(k_Fe57_to_He4_Cr53_reaclib) - screened_rates(k_He4_Fe57_to_Ni61_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Fe57_to_n_Ni60_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Fe57_to_He4_Cr54_reaclib)*Y(N)*state.rho + screened_rates(k_p_Fe57_to_He4_Mn54_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Fe57_He4_to_Ni61_reaclib)*Y(He4)*state.rho - screened_rates(k_Fe57_He4_to_n_Ni60_derived)*Y(He4)*state.rho + screened_rates(k_Fe57_n_to_He4_Cr54_reaclib)*Y(N)*state.rho + screened_rates(k_Fe57_p_to_He4_Mn54_reaclib)*Y(H1)*state.rho + screened_rates(k_Fe57_to_He4_Cr53_derived); jac.set(He4, Fe57, scratch); - scratch = screened_rates(k_Fe58_to_He4_Cr54_reaclib) - screened_rates(k_He4_Fe58_to_Ni62_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Fe58_to_n_Ni61_reaclib)*Y(He4)*state.rho + screened_rates(k_p_Fe58_to_He4_Mn55_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Fe58_He4_to_Ni62_reaclib)*Y(He4)*state.rho - screened_rates(k_Fe58_He4_to_n_Ni61_derived)*Y(He4)*state.rho + screened_rates(k_Fe58_p_to_He4_Mn55_reaclib)*Y(H1)*state.rho + screened_rates(k_Fe58_to_He4_Cr54_derived); jac.set(He4, Fe58, scratch); - scratch = -screened_rates(k_He4_Co53_to_Cu57_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co53_to_p_Ni56_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Co53_to_He4_Mn50_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Co53_He4_to_Cu57_reaclib)*Y(He4)*state.rho - screened_rates(k_Co53_He4_to_p_Ni56_reaclib)*Y(He4)*state.rho + screened_rates(k_Co53_n_to_He4_Mn50_reaclib)*Y(N)*state.rho; jac.set(He4, Co53, scratch); - scratch = screened_rates(k_Co54_to_He4_Mn50_reaclib) - screened_rates(k_He4_Co54_to_Cu58_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co54_to_n_Cu57_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co54_to_p_Ni57_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Co54_to_He4_Mn51_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Co54_He4_to_Cu58_reaclib)*Y(He4)*state.rho - screened_rates(k_Co54_He4_to_n_Cu57_derived)*Y(He4)*state.rho - screened_rates(k_Co54_He4_to_p_Ni57_reaclib)*Y(He4)*state.rho + screened_rates(k_Co54_n_to_He4_Mn51_reaclib)*Y(N)*state.rho + screened_rates(k_Co54_to_He4_Mn50_derived); jac.set(He4, Co54, scratch); - scratch = screened_rates(k_Co55_to_He4_Mn51_reaclib) - screened_rates(k_He4_Co55_to_Cu59_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co55_to_n_Cu58_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co55_to_p_Ni58_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Co55_to_He4_Mn52_reaclib)*Y(N)*state.rho + screened_rates(k_p_Co55_to_He4_Fe52_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Co55_He4_to_Cu59_reaclib)*Y(He4)*state.rho - screened_rates(k_Co55_He4_to_n_Cu58_derived)*Y(He4)*state.rho - screened_rates(k_Co55_He4_to_p_Ni58_reaclib)*Y(He4)*state.rho + screened_rates(k_Co55_n_to_He4_Mn52_reaclib)*Y(N)*state.rho + screened_rates(k_Co55_p_to_He4_Fe52_derived)*Y(H1)*state.rho + screened_rates(k_Co55_to_He4_Mn51_derived); jac.set(He4, Co55, scratch); - scratch = screened_rates(k_Co56_to_He4_Mn52_reaclib) - screened_rates(k_He4_Co56_to_Cu60_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co56_to_n_Cu59_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co56_to_p_Ni59_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Co56_to_He4_Mn53_reaclib)*Y(N)*state.rho + screened_rates(k_p_Co56_to_He4_Fe53_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Co56_He4_to_Cu60_reaclib)*Y(He4)*state.rho - screened_rates(k_Co56_He4_to_n_Cu59_derived)*Y(He4)*state.rho - screened_rates(k_Co56_He4_to_p_Ni59_reaclib)*Y(He4)*state.rho + screened_rates(k_Co56_n_to_He4_Mn53_reaclib)*Y(N)*state.rho + screened_rates(k_Co56_p_to_He4_Fe53_derived)*Y(H1)*state.rho + screened_rates(k_Co56_to_He4_Mn52_derived); jac.set(He4, Co56, scratch); - scratch = screened_rates(k_Co57_to_He4_Mn53_reaclib) - screened_rates(k_He4_Co57_to_Cu61_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co57_to_n_Cu60_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co57_to_p_Ni60_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Co57_to_He4_Mn54_reaclib)*Y(N)*state.rho + screened_rates(k_p_Co57_to_He4_Fe54_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Co57_He4_to_Cu61_reaclib)*Y(He4)*state.rho - screened_rates(k_Co57_He4_to_n_Cu60_derived)*Y(He4)*state.rho - screened_rates(k_Co57_He4_to_p_Ni60_reaclib)*Y(He4)*state.rho + screened_rates(k_Co57_n_to_He4_Mn54_reaclib)*Y(N)*state.rho + screened_rates(k_Co57_p_to_He4_Fe54_reaclib)*Y(H1)*state.rho + screened_rates(k_Co57_to_He4_Mn53_derived); jac.set(He4, Co57, scratch); - scratch = screened_rates(k_Co58_to_He4_Mn54_reaclib) - screened_rates(k_He4_Co58_to_Cu62_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co58_to_n_Cu61_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co58_to_p_Ni61_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Co58_to_He4_Mn55_reaclib)*Y(N)*state.rho + screened_rates(k_p_Co58_to_He4_Fe55_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Co58_He4_to_Cu62_reaclib)*Y(He4)*state.rho - screened_rates(k_Co58_He4_to_n_Cu61_derived)*Y(He4)*state.rho - screened_rates(k_Co58_He4_to_p_Ni61_derived)*Y(He4)*state.rho + screened_rates(k_Co58_n_to_He4_Mn55_reaclib)*Y(N)*state.rho + screened_rates(k_Co58_p_to_He4_Fe55_reaclib)*Y(H1)*state.rho + screened_rates(k_Co58_to_He4_Mn54_derived); jac.set(He4, Co58, scratch); - scratch = screened_rates(k_Co59_to_He4_Mn55_reaclib) - screened_rates(k_He4_Co59_to_Cu63_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co59_to_n_Cu62_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co59_to_p_Ni62_reaclib)*Y(He4)*state.rho + screened_rates(k_p_Co59_to_He4_Fe56_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Co59_He4_to_Cu63_reaclib)*Y(He4)*state.rho - screened_rates(k_Co59_He4_to_n_Cu62_derived)*Y(He4)*state.rho - screened_rates(k_Co59_He4_to_p_Ni62_derived)*Y(He4)*state.rho + screened_rates(k_Co59_p_to_He4_Fe56_reaclib)*Y(H1)*state.rho + screened_rates(k_Co59_to_He4_Mn55_derived); jac.set(He4, Co59, scratch); - scratch = -screened_rates(k_He4_Ni56_to_Zn60_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni56_to_n_Zn59_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni56_to_p_Cu59_reaclib)*Y(He4)*state.rho + screened_rates(k_Ni56_to_He4_Fe52_reaclib) + screened_rates(k_n_Ni56_to_He4_Fe53_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ni56_to_He4_Co53_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ni56_He4_to_Zn60_reaclib)*Y(He4)*state.rho - screened_rates(k_Ni56_He4_to_n_Zn59_derived)*Y(He4)*state.rho - screened_rates(k_Ni56_He4_to_p_Cu59_derived)*Y(He4)*state.rho + screened_rates(k_Ni56_n_to_He4_Fe53_reaclib)*Y(N)*state.rho + screened_rates(k_Ni56_p_to_He4_Co53_derived)*Y(H1)*state.rho + screened_rates(k_Ni56_to_He4_Fe52_derived); jac.set(He4, Ni56, scratch); - scratch = -screened_rates(k_He4_Ni57_to_Zn61_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni57_to_n_Zn60_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni57_to_p_Cu60_reaclib)*Y(He4)*state.rho + screened_rates(k_Ni57_to_He4_Fe53_reaclib) + screened_rates(k_n_Ni57_to_He4_Fe54_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ni57_to_He4_Co54_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ni57_He4_to_Zn61_reaclib)*Y(He4)*state.rho - screened_rates(k_Ni57_He4_to_n_Zn60_derived)*Y(He4)*state.rho - screened_rates(k_Ni57_He4_to_p_Cu60_derived)*Y(He4)*state.rho + screened_rates(k_Ni57_n_to_He4_Fe54_reaclib)*Y(N)*state.rho + screened_rates(k_Ni57_p_to_He4_Co54_derived)*Y(H1)*state.rho + screened_rates(k_Ni57_to_He4_Fe53_derived); jac.set(He4, Ni57, scratch); - scratch = -screened_rates(k_He4_Ni58_to_Zn62_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni58_to_n_Zn61_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni58_to_p_Cu61_reaclib)*Y(He4)*state.rho + screened_rates(k_Ni58_to_He4_Fe54_reaclib) + screened_rates(k_n_Ni58_to_He4_Fe55_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ni58_to_He4_Co55_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ni58_He4_to_Zn62_reaclib)*Y(He4)*state.rho - screened_rates(k_Ni58_He4_to_n_Zn61_derived)*Y(He4)*state.rho - screened_rates(k_Ni58_He4_to_p_Cu61_derived)*Y(He4)*state.rho + screened_rates(k_Ni58_n_to_He4_Fe55_reaclib)*Y(N)*state.rho + screened_rates(k_Ni58_p_to_He4_Co55_derived)*Y(H1)*state.rho + screened_rates(k_Ni58_to_He4_Fe54_derived); jac.set(He4, Ni58, scratch); - scratch = -screened_rates(k_He4_Ni59_to_Zn63_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni59_to_n_Zn62_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni59_to_p_Cu62_reaclib)*Y(He4)*state.rho + screened_rates(k_Ni59_to_He4_Fe55_reaclib) + screened_rates(k_n_Ni59_to_He4_Fe56_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ni59_to_He4_Co56_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ni59_He4_to_Zn63_reaclib)*Y(He4)*state.rho - screened_rates(k_Ni59_He4_to_n_Zn62_derived)*Y(He4)*state.rho - screened_rates(k_Ni59_He4_to_p_Cu62_derived)*Y(He4)*state.rho + screened_rates(k_Ni59_n_to_He4_Fe56_reaclib)*Y(N)*state.rho + screened_rates(k_Ni59_p_to_He4_Co56_derived)*Y(H1)*state.rho + screened_rates(k_Ni59_to_He4_Fe55_derived); jac.set(He4, Ni59, scratch); - scratch = -screened_rates(k_He4_Ni60_to_Zn64_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni60_to_n_Zn63_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni60_to_p_Cu63_reaclib)*Y(He4)*state.rho + screened_rates(k_Ni60_to_He4_Fe56_reaclib) + screened_rates(k_n_Ni60_to_He4_Fe57_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ni60_to_He4_Co57_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ni60_He4_to_Zn64_reaclib)*Y(He4)*state.rho - screened_rates(k_Ni60_He4_to_n_Zn63_derived)*Y(He4)*state.rho - screened_rates(k_Ni60_He4_to_p_Cu63_derived)*Y(He4)*state.rho + screened_rates(k_Ni60_n_to_He4_Fe57_reaclib)*Y(N)*state.rho + screened_rates(k_Ni60_p_to_He4_Co57_derived)*Y(H1)*state.rho + screened_rates(k_Ni60_to_He4_Fe56_derived); jac.set(He4, Ni60, scratch); - scratch = -screened_rates(k_He4_Ni61_to_Zn65_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni61_to_n_Zn64_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni61_to_p_Cu64_reaclib)*Y(He4)*state.rho + screened_rates(k_Ni61_to_He4_Fe57_reaclib) + screened_rates(k_n_Ni61_to_He4_Fe58_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ni61_to_He4_Co58_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ni61_He4_to_Zn65_reaclib)*Y(He4)*state.rho - screened_rates(k_Ni61_He4_to_n_Zn64_derived)*Y(He4)*state.rho - screened_rates(k_Ni61_He4_to_p_Cu64_derived)*Y(He4)*state.rho + screened_rates(k_Ni61_n_to_He4_Fe58_reaclib)*Y(N)*state.rho + screened_rates(k_Ni61_p_to_He4_Co58_reaclib)*Y(H1)*state.rho + screened_rates(k_Ni61_to_He4_Fe57_derived); jac.set(He4, Ni61, scratch); - scratch = -screened_rates(k_He4_Ni62_to_Zn66_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni62_to_n_Zn65_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni62_to_p_Cu65_reaclib)*Y(He4)*state.rho + screened_rates(k_Ni62_to_He4_Fe58_reaclib) + screened_rates(k_p_Ni62_to_He4_Co59_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ni62_He4_to_Zn66_reaclib)*Y(He4)*state.rho - screened_rates(k_Ni62_He4_to_n_Zn65_derived)*Y(He4)*state.rho - screened_rates(k_Ni62_He4_to_p_Cu65_derived)*Y(He4)*state.rho + screened_rates(k_Ni62_p_to_He4_Co59_reaclib)*Y(H1)*state.rho + screened_rates(k_Ni62_to_He4_Fe58_derived); jac.set(He4, Ni62, scratch); - scratch = -screened_rates(k_He4_Ni63_to_n_Zn66_reaclib)*Y(He4)*state.rho; + scratch = -screened_rates(k_Ni63_He4_to_n_Zn66_derived)*Y(He4)*state.rho; jac.set(He4, Ni63, scratch); jac.set(He4, Ni64, 0.0); - scratch = screened_rates(k_Cu57_to_He4_Co53_reaclib) - screened_rates(k_He4_Cu57_to_p_Zn60_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cu57_to_He4_Co54_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Cu57_He4_to_p_Zn60_reaclib)*Y(He4)*state.rho + screened_rates(k_Cu57_n_to_He4_Co54_reaclib)*Y(N)*state.rho + screened_rates(k_Cu57_to_He4_Co53_derived); jac.set(He4, Cu57, scratch); - scratch = screened_rates(k_Cu58_to_He4_Co54_reaclib) - screened_rates(k_He4_Cu58_to_Ga62_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cu58_to_p_Zn61_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cu58_to_He4_Co55_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Cu58_He4_to_Ga62_reaclib)*Y(He4)*state.rho - screened_rates(k_Cu58_He4_to_p_Zn61_derived)*Y(He4)*state.rho + screened_rates(k_Cu58_n_to_He4_Co55_reaclib)*Y(N)*state.rho + screened_rates(k_Cu58_to_He4_Co54_derived); jac.set(He4, Cu58, scratch); - scratch = screened_rates(k_Cu59_to_He4_Co55_reaclib) - screened_rates(k_He4_Cu59_to_Ga63_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cu59_to_n_Ga62_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cu59_to_p_Zn62_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cu59_to_He4_Co56_reaclib)*Y(N)*state.rho + screened_rates(k_p_Cu59_to_He4_Ni56_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cu59_He4_to_Ga63_reaclib)*Y(He4)*state.rho - screened_rates(k_Cu59_He4_to_n_Ga62_derived)*Y(He4)*state.rho - screened_rates(k_Cu59_He4_to_p_Zn62_derived)*Y(He4)*state.rho + screened_rates(k_Cu59_n_to_He4_Co56_reaclib)*Y(N)*state.rho + screened_rates(k_Cu59_p_to_He4_Ni56_reaclib)*Y(H1)*state.rho + screened_rates(k_Cu59_to_He4_Co55_derived); jac.set(He4, Cu59, scratch); - scratch = screened_rates(k_Cu60_to_He4_Co56_reaclib) - screened_rates(k_He4_Cu60_to_Ga64_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cu60_to_n_Ga63_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cu60_to_p_Zn63_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cu60_to_He4_Co57_reaclib)*Y(N)*state.rho + screened_rates(k_p_Cu60_to_He4_Ni57_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cu60_He4_to_Ga64_reaclib)*Y(He4)*state.rho - screened_rates(k_Cu60_He4_to_n_Ga63_derived)*Y(He4)*state.rho - screened_rates(k_Cu60_He4_to_p_Zn63_derived)*Y(He4)*state.rho + screened_rates(k_Cu60_n_to_He4_Co57_reaclib)*Y(N)*state.rho + screened_rates(k_Cu60_p_to_He4_Ni57_reaclib)*Y(H1)*state.rho + screened_rates(k_Cu60_to_He4_Co56_derived); jac.set(He4, Cu60, scratch); - scratch = screened_rates(k_Cu61_to_He4_Co57_reaclib) - screened_rates(k_He4_Cu61_to_n_Ga64_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cu61_to_p_Zn64_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cu61_to_He4_Co58_reaclib)*Y(N)*state.rho + screened_rates(k_p_Cu61_to_He4_Ni58_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cu61_He4_to_n_Ga64_derived)*Y(He4)*state.rho - screened_rates(k_Cu61_He4_to_p_Zn64_derived)*Y(He4)*state.rho + screened_rates(k_Cu61_n_to_He4_Co58_reaclib)*Y(N)*state.rho + screened_rates(k_Cu61_p_to_He4_Ni58_reaclib)*Y(H1)*state.rho + screened_rates(k_Cu61_to_He4_Co57_derived); jac.set(He4, Cu61, scratch); - scratch = screened_rates(k_Cu62_to_He4_Co58_reaclib) - screened_rates(k_He4_Cu62_to_p_Zn65_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Cu62_to_He4_Co59_reaclib)*Y(N)*state.rho + screened_rates(k_p_Cu62_to_He4_Ni59_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cu62_He4_to_p_Zn65_derived)*Y(He4)*state.rho + screened_rates(k_Cu62_n_to_He4_Co59_reaclib)*Y(N)*state.rho + screened_rates(k_Cu62_p_to_He4_Ni59_reaclib)*Y(H1)*state.rho + screened_rates(k_Cu62_to_He4_Co58_derived); jac.set(He4, Cu62, scratch); - scratch = screened_rates(k_Cu63_to_He4_Co59_reaclib) - screened_rates(k_He4_Cu63_to_p_Zn66_reaclib)*Y(He4)*state.rho + screened_rates(k_p_Cu63_to_He4_Ni60_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cu63_He4_to_p_Zn66_derived)*Y(He4)*state.rho + screened_rates(k_Cu63_p_to_He4_Ni60_reaclib)*Y(H1)*state.rho + screened_rates(k_Cu63_to_He4_Co59_derived); jac.set(He4, Cu63, scratch); - scratch = screened_rates(k_p_Cu64_to_He4_Ni61_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu64_p_to_He4_Ni61_reaclib)*Y(H1)*state.rho; jac.set(He4, Cu64, scratch); - scratch = screened_rates(k_p_Cu65_to_He4_Ni62_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu65_p_to_He4_Ni62_reaclib)*Y(H1)*state.rho; jac.set(He4, Cu65, scratch); - scratch = -screened_rates(k_He4_Zn59_to_Ge63_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Zn59_to_p_Ga62_reaclib)*Y(He4)*state.rho + screened_rates(k_n_Zn59_to_He4_Ni56_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Zn59_He4_to_Ge63_reaclib)*Y(He4)*state.rho - screened_rates(k_Zn59_He4_to_p_Ga62_derived)*Y(He4)*state.rho + screened_rates(k_Zn59_n_to_He4_Ni56_reaclib)*Y(N)*state.rho; jac.set(He4, Zn59, scratch); - scratch = -screened_rates(k_He4_Zn60_to_Ge64_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Zn60_to_n_Ge63_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Zn60_to_p_Ga63_reaclib)*Y(He4)*state.rho + screened_rates(k_Zn60_to_He4_Ni56_reaclib) + screened_rates(k_n_Zn60_to_He4_Ni57_reaclib)*Y(N)*state.rho + screened_rates(k_p_Zn60_to_He4_Cu57_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Zn60_He4_to_Ge64_reaclib)*Y(He4)*state.rho - screened_rates(k_Zn60_He4_to_n_Ge63_derived)*Y(He4)*state.rho - screened_rates(k_Zn60_He4_to_p_Ga63_derived)*Y(He4)*state.rho + screened_rates(k_Zn60_n_to_He4_Ni57_reaclib)*Y(N)*state.rho + screened_rates(k_Zn60_p_to_He4_Cu57_derived)*Y(H1)*state.rho + screened_rates(k_Zn60_to_He4_Ni56_derived); jac.set(He4, Zn60, scratch); - scratch = -screened_rates(k_He4_Zn61_to_n_Ge64_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Zn61_to_p_Ga64_reaclib)*Y(He4)*state.rho + screened_rates(k_Zn61_to_He4_Ni57_reaclib) + screened_rates(k_n_Zn61_to_He4_Ni58_reaclib)*Y(N)*state.rho + screened_rates(k_p_Zn61_to_He4_Cu58_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Zn61_He4_to_n_Ge64_derived)*Y(He4)*state.rho - screened_rates(k_Zn61_He4_to_p_Ga64_derived)*Y(He4)*state.rho + screened_rates(k_Zn61_n_to_He4_Ni58_reaclib)*Y(N)*state.rho + screened_rates(k_Zn61_p_to_He4_Cu58_reaclib)*Y(H1)*state.rho + screened_rates(k_Zn61_to_He4_Ni57_derived); jac.set(He4, Zn61, scratch); - scratch = screened_rates(k_Zn62_to_He4_Ni58_reaclib) + screened_rates(k_n_Zn62_to_He4_Ni59_reaclib)*Y(N)*state.rho + screened_rates(k_p_Zn62_to_He4_Cu59_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Zn62_n_to_He4_Ni59_reaclib)*Y(N)*state.rho + screened_rates(k_Zn62_p_to_He4_Cu59_reaclib)*Y(H1)*state.rho + screened_rates(k_Zn62_to_He4_Ni58_derived); jac.set(He4, Zn62, scratch); - scratch = screened_rates(k_Zn63_to_He4_Ni59_reaclib) + screened_rates(k_n_Zn63_to_He4_Ni60_reaclib)*Y(N)*state.rho + screened_rates(k_p_Zn63_to_He4_Cu60_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Zn63_n_to_He4_Ni60_reaclib)*Y(N)*state.rho + screened_rates(k_Zn63_p_to_He4_Cu60_reaclib)*Y(H1)*state.rho + screened_rates(k_Zn63_to_He4_Ni59_derived); jac.set(He4, Zn63, scratch); - scratch = screened_rates(k_Zn64_to_He4_Ni60_reaclib) + screened_rates(k_n_Zn64_to_He4_Ni61_reaclib)*Y(N)*state.rho + screened_rates(k_p_Zn64_to_He4_Cu61_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Zn64_n_to_He4_Ni61_reaclib)*Y(N)*state.rho + screened_rates(k_Zn64_p_to_He4_Cu61_reaclib)*Y(H1)*state.rho + screened_rates(k_Zn64_to_He4_Ni60_derived); jac.set(He4, Zn64, scratch); - scratch = screened_rates(k_Zn65_to_He4_Ni61_reaclib) + screened_rates(k_n_Zn65_to_He4_Ni62_reaclib)*Y(N)*state.rho + screened_rates(k_p_Zn65_to_He4_Cu62_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Zn65_n_to_He4_Ni62_reaclib)*Y(N)*state.rho + screened_rates(k_Zn65_p_to_He4_Cu62_reaclib)*Y(H1)*state.rho + screened_rates(k_Zn65_to_He4_Ni61_derived); jac.set(He4, Zn65, scratch); - scratch = screened_rates(k_Zn66_to_He4_Ni62_reaclib) + screened_rates(k_n_Zn66_to_He4_Ni63_reaclib)*Y(N)*state.rho + screened_rates(k_p_Zn66_to_He4_Cu63_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Zn66_n_to_He4_Ni63_reaclib)*Y(N)*state.rho + screened_rates(k_Zn66_p_to_He4_Cu63_reaclib)*Y(H1)*state.rho + screened_rates(k_Zn66_to_He4_Ni62_derived); jac.set(He4, Zn66, scratch); - scratch = screened_rates(k_Ga62_to_He4_Cu58_reaclib) + screened_rates(k_n_Ga62_to_He4_Cu59_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ga62_to_He4_Zn59_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ga62_n_to_He4_Cu59_reaclib)*Y(N)*state.rho + screened_rates(k_Ga62_p_to_He4_Zn59_reaclib)*Y(H1)*state.rho + screened_rates(k_Ga62_to_He4_Cu58_derived); jac.set(He4, Ga62, scratch); - scratch = screened_rates(k_Ga63_to_He4_Cu59_reaclib) + screened_rates(k_n_Ga63_to_He4_Cu60_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ga63_to_He4_Zn60_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ga63_n_to_He4_Cu60_reaclib)*Y(N)*state.rho + screened_rates(k_Ga63_p_to_He4_Zn60_reaclib)*Y(H1)*state.rho + screened_rates(k_Ga63_to_He4_Cu59_derived); jac.set(He4, Ga63, scratch); - scratch = screened_rates(k_Ga64_to_He4_Cu60_reaclib) + screened_rates(k_n_Ga64_to_He4_Cu61_reaclib)*Y(N)*state.rho + screened_rates(k_p_Ga64_to_He4_Zn61_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ga64_n_to_He4_Cu61_reaclib)*Y(N)*state.rho + screened_rates(k_Ga64_p_to_He4_Zn61_reaclib)*Y(H1)*state.rho + screened_rates(k_Ga64_to_He4_Cu60_derived); jac.set(He4, Ga64, scratch); - scratch = screened_rates(k_Ge63_to_He4_Zn59_reaclib) + screened_rates(k_n_Ge63_to_He4_Zn60_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ge63_n_to_He4_Zn60_reaclib)*Y(N)*state.rho + screened_rates(k_Ge63_to_He4_Zn59_derived); jac.set(He4, Ge63, scratch); - scratch = screened_rates(k_Ge64_to_He4_Zn60_reaclib) + screened_rates(k_n_Ge64_to_He4_Zn61_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ge64_n_to_He4_Zn61_reaclib)*Y(N)*state.rho + screened_rates(k_Ge64_to_He4_Zn60_derived); jac.set(He4, Ge64, scratch); - scratch = screened_rates(k_n_Be7_to_d_Li6_reaclib)*Y(Be7)*state.rho - screened_rates(k_n_Li6_to_Li7_reaclib)*Y(Li6)*state.rho + screened_rates(k_n_p_He4_to_Li6_reaclib)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho); + scratch = screened_rates(k_Be7_n_to_d_Li6_derived)*Y(Be7)*state.rho + screened_rates(k_He4_p_n_to_Li6_reaclib)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho) - screened_rates(k_Li6_n_to_Li7_reaclib)*Y(Li6)*state.rho; jac.set(Li6, N, scratch); - scratch = screened_rates(k_n_p_He4_to_Li6_reaclib)*Y(He4)*Y(N)*amrex::Math::powi<2>(state.rho) + screened_rates(k_p_Be9_to_He4_Li6_reaclib)*Y(Be9)*state.rho - screened_rates(k_p_Li6_to_Be7_reaclib)*Y(Li6)*state.rho - screened_rates(k_p_Li6_to_He4_He3_reaclib)*Y(Li6)*state.rho + screened_rates(k_p_Li7_to_d_Li6_reaclib)*Y(Li7)*state.rho; + scratch = screened_rates(k_Be9_p_to_He4_Li6_reaclib)*Y(Be9)*state.rho + screened_rates(k_He4_p_n_to_Li6_reaclib)*Y(He4)*Y(N)*amrex::Math::powi<2>(state.rho) - screened_rates(k_Li6_p_to_Be7_reaclib)*Y(Li6)*state.rho - screened_rates(k_Li6_p_to_He4_He3_reaclib)*Y(Li6)*state.rho + screened_rates(k_Li7_p_to_d_Li6_derived)*Y(Li7)*state.rho; jac.set(Li6, H1, scratch); - scratch = screened_rates(k_He4_d_to_Li6_reaclib)*Y(He4)*state.rho - screened_rates(k_d_Li6_to_n_Be7_reaclib)*Y(Li6)*state.rho - screened_rates(k_d_Li6_to_p_Li7_reaclib)*Y(Li6)*state.rho; + scratch = -screened_rates(k_Li6_d_to_n_Be7_reaclib)*Y(Li6)*state.rho - screened_rates(k_Li6_d_to_p_Li7_reaclib)*Y(Li6)*state.rho + screened_rates(k_d_He4_to_Li6_reaclib)*Y(He4)*state.rho; jac.set(Li6, H2, scratch); - scratch = screened_rates(k_He4_He3_to_p_Li6_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_He3_He4_to_p_Li6_derived)*Y(He4)*state.rho; jac.set(Li6, He3, scratch); - scratch = screened_rates(k_He4_He3_to_p_Li6_reaclib)*Y(He3)*state.rho - screened_rates(k_He4_Li6_to_B10_reaclib)*Y(Li6)*state.rho - screened_rates(k_He4_Li6_to_p_Be9_reaclib)*Y(Li6)*state.rho + screened_rates(k_He4_d_to_Li6_reaclib)*Y(H2)*state.rho + screened_rates(k_n_p_He4_to_Li6_reaclib)*Y(N)*Y(H1)*amrex::Math::powi<2>(state.rho); + scratch = screened_rates(k_He3_He4_to_p_Li6_derived)*Y(He3)*state.rho + screened_rates(k_He4_p_n_to_Li6_reaclib)*Y(N)*Y(H1)*amrex::Math::powi<2>(state.rho) - screened_rates(k_Li6_He4_to_B10_reaclib)*Y(Li6)*state.rho - screened_rates(k_Li6_He4_to_p_Be9_derived)*Y(Li6)*state.rho + screened_rates(k_d_He4_to_Li6_reaclib)*Y(H2)*state.rho; jac.set(Li6, He4, scratch); - scratch = -screened_rates(k_He4_Li6_to_B10_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Li6_to_p_Be9_reaclib)*Y(He4)*state.rho - screened_rates(k_Li6_to_He4_d_reaclib) - screened_rates(k_Li6_to_n_p_He4_reaclib) - screened_rates(k_d_Li6_to_n_Be7_reaclib)*Y(H2)*state.rho - screened_rates(k_d_Li6_to_p_Li7_reaclib)*Y(H2)*state.rho - screened_rates(k_n_Li6_to_Li7_reaclib)*Y(N)*state.rho - screened_rates(k_p_Li6_to_Be7_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Li6_to_He4_He3_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Li6_He4_to_B10_reaclib)*Y(He4)*state.rho - screened_rates(k_Li6_He4_to_p_Be9_derived)*Y(He4)*state.rho - screened_rates(k_Li6_d_to_n_Be7_reaclib)*Y(H2)*state.rho - screened_rates(k_Li6_d_to_p_Li7_reaclib)*Y(H2)*state.rho - screened_rates(k_Li6_n_to_Li7_reaclib)*Y(N)*state.rho - screened_rates(k_Li6_p_to_Be7_reaclib)*Y(H1)*state.rho - screened_rates(k_Li6_p_to_He4_He3_reaclib)*Y(H1)*state.rho - screened_rates(k_Li6_to_He4_d_derived) - screened_rates(k_Li6_to_n_p_He4_derived); jac.set(Li6, Li6, scratch); - scratch = screened_rates(k_Li7_to_n_Li6_reaclib) + screened_rates(k_p_Li7_to_d_Li6_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Li7_p_to_d_Li6_derived)*Y(H1)*state.rho + screened_rates(k_Li7_to_n_Li6_derived); jac.set(Li6, Li7, scratch); - scratch = screened_rates(k_Be7_to_p_Li6_reaclib) + screened_rates(k_n_Be7_to_d_Li6_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Be7_n_to_d_Li6_derived)*Y(N)*state.rho + screened_rates(k_Be7_to_p_Li6_derived); jac.set(Li6, Be7, scratch); - scratch = screened_rates(k_p_Be9_to_He4_Li6_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Be9_p_to_He4_Li6_reaclib)*Y(H1)*state.rho; jac.set(Li6, Be9, scratch); jac.set(Li6, B8, 0.0); - scratch = screened_rates(k_B10_to_He4_Li6_reaclib); + scratch = screened_rates(k_B10_to_He4_Li6_derived); jac.set(Li6, B10, scratch); jac.set(Li6, B11, 0.0); @@ -11578,38 +9387,38 @@ void jac_nuc(const burn_t& state, jac.set(Li6, Ge64, 0.0); - scratch = screened_rates(k_n_B10_to_He4_Li7_reaclib)*Y(B10)*state.rho + screened_rates(k_n_Be7_to_p_Li7_reaclib)*Y(Be7)*state.rho + 0.5*screened_rates(k_n_He4_He4_to_d_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) + screened_rates(k_n_Li6_to_Li7_reaclib)*Y(Li6)*state.rho + 0.5*screened_rates(k_n_p_He4_He4_to_He3_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<3>(state.rho); + scratch = screened_rates(k_B10_n_to_He4_Li7_reaclib)*Y(B10)*state.rho + screened_rates(k_Be7_n_to_p_Li7_reaclib)*Y(Be7)*state.rho + 0.5*screened_rates(k_He4_He4_n_to_d_Li7_derived)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) + 0.5*screened_rates(k_He4_He4_p_n_to_He3_Li7_derived)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<3>(state.rho) + screened_rates(k_Li6_n_to_Li7_reaclib)*Y(Li6)*state.rho; jac.set(Li7, N, scratch); - scratch = 0.5*screened_rates(k_n_p_He4_He4_to_He3_Li7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<3>(state.rho) - screened_rates(k_p_Li7_to_He4_He4_reaclib)*Y(Li7)*state.rho - screened_rates(k_p_Li7_to_d_Li6_reaclib)*Y(Li7)*state.rho - screened_rates(k_p_Li7_to_n_Be7_reaclib)*Y(Li7)*state.rho; + scratch = 0.5*screened_rates(k_He4_He4_p_n_to_He3_Li7_derived)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<3>(state.rho) - screened_rates(k_Li7_p_to_He4_He4_reaclib)*Y(Li7)*state.rho - screened_rates(k_Li7_p_to_d_Li6_derived)*Y(Li7)*state.rho - screened_rates(k_Li7_p_to_n_Be7_derived)*Y(Li7)*state.rho; jac.set(Li7, H1, scratch); - scratch = screened_rates(k_d_Li6_to_p_Li7_reaclib)*Y(Li6)*state.rho - screened_rates(k_d_Li7_to_n_He4_He4_reaclib)*Y(Li7)*state.rho; + scratch = screened_rates(k_Li6_d_to_p_Li7_reaclib)*Y(Li6)*state.rho - screened_rates(k_Li7_d_to_n_He4_He4_reaclib)*Y(Li7)*state.rho; jac.set(Li7, H2, scratch); - scratch = -screened_rates(k_He3_Li7_to_n_p_He4_He4_reaclib)*Y(Li7)*state.rho; + scratch = -screened_rates(k_Li7_He3_to_n_p_He4_He4_reaclib)*Y(Li7)*state.rho; jac.set(Li7, He3, scratch); - scratch = 1.0*screened_rates(k_He4_He4_to_p_Li7_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Li7_to_B11_reaclib)*Y(Li7)*state.rho - screened_rates(k_He4_Li7_to_n_B10_reaclib)*Y(Li7)*state.rho + 1.0*screened_rates(k_n_He4_He4_to_d_Li7_reaclib)*Y(He4)*Y(N)*amrex::Math::powi<2>(state.rho) + 1.0*screened_rates(k_n_p_He4_He4_to_He3_Li7_reaclib)*Y(He4)*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho); + scratch = 1.0*screened_rates(k_He4_He4_n_to_d_Li7_derived)*Y(He4)*Y(N)*amrex::Math::powi<2>(state.rho) + 1.0*screened_rates(k_He4_He4_p_n_to_He3_Li7_derived)*Y(He4)*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho) + 1.0*screened_rates(k_He4_He4_to_p_Li7_derived)*Y(He4)*state.rho - screened_rates(k_Li7_He4_to_B11_reaclib)*Y(Li7)*state.rho - screened_rates(k_Li7_He4_to_n_B10_derived)*Y(Li7)*state.rho; jac.set(Li7, He4, scratch); - scratch = screened_rates(k_d_Li6_to_p_Li7_reaclib)*Y(H2)*state.rho + screened_rates(k_n_Li6_to_Li7_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Li6_d_to_p_Li7_reaclib)*Y(H2)*state.rho + screened_rates(k_Li6_n_to_Li7_reaclib)*Y(N)*state.rho; jac.set(Li7, Li6, scratch); - scratch = -screened_rates(k_He3_Li7_to_n_p_He4_He4_reaclib)*Y(He3)*state.rho - screened_rates(k_He4_Li7_to_B11_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Li7_to_n_B10_reaclib)*Y(He4)*state.rho - screened_rates(k_Li7_to_n_Li6_reaclib) - screened_rates(k_d_Li7_to_n_He4_He4_reaclib)*Y(H2)*state.rho - screened_rates(k_p_Li7_to_He4_He4_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Li7_to_d_Li6_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Li7_to_n_Be7_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Li7_He3_to_n_p_He4_He4_reaclib)*Y(He3)*state.rho - screened_rates(k_Li7_He4_to_B11_reaclib)*Y(He4)*state.rho - screened_rates(k_Li7_He4_to_n_B10_derived)*Y(He4)*state.rho - screened_rates(k_Li7_d_to_n_He4_He4_reaclib)*Y(H2)*state.rho - screened_rates(k_Li7_p_to_He4_He4_reaclib)*Y(H1)*state.rho - screened_rates(k_Li7_p_to_d_Li6_derived)*Y(H1)*state.rho - screened_rates(k_Li7_p_to_n_Be7_derived)*Y(H1)*state.rho - screened_rates(k_Li7_to_n_Li6_derived); jac.set(Li7, Li7, scratch); - scratch = screened_rates(k_Be7_to_Li7_reaclib)*state.rho*state.y_e + screened_rates(k_n_Be7_to_p_Li7_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Be7_n_to_p_Li7_reaclib)*Y(N)*state.rho + screened_rates(k_Be7_to_Li7_electron_capture_reaclib)*state.rho*state.y_e; jac.set(Li7, Be7, scratch); jac.set(Li7, Be9, 0.0); jac.set(Li7, B8, 0.0); - scratch = screened_rates(k_n_B10_to_He4_Li7_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_B10_n_to_He4_Li7_reaclib)*Y(N)*state.rho; jac.set(Li7, B10, scratch); - scratch = screened_rates(k_B11_to_He4_Li7_reaclib); + scratch = screened_rates(k_B11_to_He4_Li7_derived); jac.set(Li7, B11, scratch); jac.set(Li7, C12, 0.0); @@ -11908,36 +9717,36 @@ void jac_nuc(const burn_t& state, jac.set(Li7, Ge64, 0.0); - scratch = -screened_rates(k_n_Be7_to_He4_He4_reaclib)*Y(Be7)*state.rho - screened_rates(k_n_Be7_to_d_Li6_reaclib)*Y(Be7)*state.rho - screened_rates(k_n_Be7_to_p_Li7_reaclib)*Y(Be7)*state.rho; + scratch = -screened_rates(k_Be7_n_to_He4_He4_reaclib)*Y(Be7)*state.rho - screened_rates(k_Be7_n_to_d_Li6_derived)*Y(Be7)*state.rho - screened_rates(k_Be7_n_to_p_Li7_reaclib)*Y(Be7)*state.rho; jac.set(Be7, N, scratch); - scratch = screened_rates(k_p_B10_to_He4_Be7_reaclib)*Y(B10)*state.rho - screened_rates(k_p_Be7_to_B8_reaclib)*Y(Be7)*state.rho + 0.5*screened_rates(k_p_He4_He4_to_d_Be7_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) + screened_rates(k_p_Li6_to_Be7_reaclib)*Y(Li6)*state.rho + screened_rates(k_p_Li7_to_n_Be7_reaclib)*Y(Li7)*state.rho + 0.5*screened_rates(k_p_p_He4_He4_to_He3_Be7_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<3>(state.rho); + scratch = screened_rates(k_B10_p_to_He4_Be7_reaclib)*Y(B10)*state.rho - screened_rates(k_Be7_p_to_B8_reaclib)*Y(Be7)*state.rho + 0.5*screened_rates(k_He4_He4_p_p_to_He3_Be7_derived)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<3>(state.rho) + 0.5*screened_rates(k_He4_He4_p_to_d_Be7_derived)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) + screened_rates(k_Li6_p_to_Be7_reaclib)*Y(Li6)*state.rho + screened_rates(k_Li7_p_to_n_Be7_derived)*Y(Li7)*state.rho; jac.set(Be7, H1, scratch); - scratch = -screened_rates(k_d_Be7_to_p_He4_He4_reaclib)*Y(Be7)*state.rho + screened_rates(k_d_Li6_to_n_Be7_reaclib)*Y(Li6)*state.rho; + scratch = -screened_rates(k_Be7_d_to_p_He4_He4_reaclib)*Y(Be7)*state.rho + screened_rates(k_Li6_d_to_n_Be7_reaclib)*Y(Li6)*state.rho; jac.set(Be7, H2, scratch); - scratch = -screened_rates(k_He3_Be7_to_p_p_He4_He4_reaclib)*Y(Be7)*state.rho + screened_rates(k_He4_He3_to_Be7_reaclib)*Y(He4)*state.rho; + scratch = -screened_rates(k_Be7_He3_to_p_p_He4_He4_reaclib)*Y(Be7)*state.rho + screened_rates(k_He3_He4_to_Be7_reaclib)*Y(He4)*state.rho; jac.set(Be7, He3, scratch); - scratch = -screened_rates(k_He4_Be7_to_p_B10_reaclib)*Y(Be7)*state.rho + screened_rates(k_He4_He3_to_Be7_reaclib)*Y(He3)*state.rho + 1.0*screened_rates(k_He4_He4_to_n_Be7_reaclib)*Y(He4)*state.rho + 1.0*screened_rates(k_p_He4_He4_to_d_Be7_reaclib)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho) + 0.5*screened_rates(k_p_p_He4_He4_to_He3_Be7_reaclib)*Y(He4)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<3>(state.rho); + scratch = -screened_rates(k_Be7_He4_to_p_B10_derived)*Y(Be7)*state.rho + screened_rates(k_He3_He4_to_Be7_reaclib)*Y(He3)*state.rho + 0.5*screened_rates(k_He4_He4_p_p_to_He3_Be7_derived)*Y(He4)*amrex::Math::powi<2>(Y(H1))*amrex::Math::powi<3>(state.rho) + 1.0*screened_rates(k_He4_He4_p_to_d_Be7_derived)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho) + 1.0*screened_rates(k_He4_He4_to_n_Be7_derived)*Y(He4)*state.rho; jac.set(Be7, He4, scratch); - scratch = screened_rates(k_d_Li6_to_n_Be7_reaclib)*Y(H2)*state.rho + screened_rates(k_p_Li6_to_Be7_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Li6_d_to_n_Be7_reaclib)*Y(H2)*state.rho + screened_rates(k_Li6_p_to_Be7_reaclib)*Y(H1)*state.rho; jac.set(Be7, Li6, scratch); - scratch = screened_rates(k_p_Li7_to_n_Be7_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Li7_p_to_n_Be7_derived)*Y(H1)*state.rho; jac.set(Be7, Li7, scratch); - scratch = -screened_rates(k_Be7_to_He4_He3_reaclib) - screened_rates(k_Be7_to_Li7_reaclib)*state.rho*state.y_e - screened_rates(k_Be7_to_p_Li6_reaclib) - screened_rates(k_He3_Be7_to_p_p_He4_He4_reaclib)*Y(He3)*state.rho - screened_rates(k_He4_Be7_to_p_B10_reaclib)*Y(He4)*state.rho - screened_rates(k_d_Be7_to_p_He4_He4_reaclib)*Y(H2)*state.rho - screened_rates(k_n_Be7_to_He4_He4_reaclib)*Y(N)*state.rho - screened_rates(k_n_Be7_to_d_Li6_reaclib)*Y(N)*state.rho - screened_rates(k_n_Be7_to_p_Li7_reaclib)*Y(N)*state.rho - screened_rates(k_p_Be7_to_B8_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Be7_He3_to_p_p_He4_He4_reaclib)*Y(He3)*state.rho - screened_rates(k_Be7_He4_to_p_B10_derived)*Y(He4)*state.rho - screened_rates(k_Be7_d_to_p_He4_He4_reaclib)*Y(H2)*state.rho - screened_rates(k_Be7_n_to_He4_He4_reaclib)*Y(N)*state.rho - screened_rates(k_Be7_n_to_d_Li6_derived)*Y(N)*state.rho - screened_rates(k_Be7_n_to_p_Li7_reaclib)*Y(N)*state.rho - screened_rates(k_Be7_p_to_B8_reaclib)*Y(H1)*state.rho - screened_rates(k_Be7_to_He4_He3_derived) - screened_rates(k_Be7_to_Li7_electron_capture_reaclib)*state.rho*state.y_e - screened_rates(k_Be7_to_p_Li6_derived); jac.set(Be7, Be7, scratch); jac.set(Be7, Be9, 0.0); - scratch = screened_rates(k_B8_to_p_Be7_reaclib); + scratch = screened_rates(k_B8_to_p_Be7_derived); jac.set(Be7, B8, scratch); - scratch = screened_rates(k_p_B10_to_He4_Be7_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_B10_p_to_He4_Be7_reaclib)*Y(H1)*state.rho; jac.set(Be7, B10, scratch); jac.set(Be7, B11, 0.0); @@ -12238,38 +10047,38 @@ void jac_nuc(const burn_t& state, jac.set(Be7, Ge64, 0.0); - scratch = screened_rates(k_n_C12_to_He4_Be9_reaclib)*Y(C12)*state.rho + 0.5*screened_rates(k_n_He4_He4_to_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) + 0.5*screened_rates(k_n_p_He4_He4_to_p_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<3>(state.rho); + scratch = screened_rates(k_C12_n_to_He4_Be9_derived)*Y(C12)*state.rho + 0.5*screened_rates(k_He4_He4_n_to_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) + 0.5*screened_rates(k_He4_He4_p_n_to_p_Be9_derived)*amrex::Math::powi<2>(Y(He4))*Y(H1)*amrex::Math::powi<3>(state.rho); jac.set(Be9, N, scratch); - scratch = 0.5*screened_rates(k_n_p_He4_He4_to_p_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<3>(state.rho) - screened_rates(k_p_Be9_to_B10_reaclib)*Y(Be9)*state.rho - screened_rates(k_p_Be9_to_He4_Li6_reaclib)*Y(Be9)*state.rho - screened_rates(k_p_Be9_to_d_He4_He4_reaclib)*Y(Be9)*state.rho - screened_rates(k_p_Be9_to_n_p_He4_He4_reaclib)*Y(Be9)*state.rho; + scratch = -screened_rates(k_Be9_p_to_B10_reaclib)*Y(Be9)*state.rho - screened_rates(k_Be9_p_to_He4_Li6_reaclib)*Y(Be9)*state.rho - screened_rates(k_Be9_p_to_d_He4_He4_reaclib)*Y(Be9)*state.rho - screened_rates(k_Be9_p_to_n_p_He4_He4_reaclib)*Y(Be9)*state.rho + 0.5*screened_rates(k_He4_He4_p_n_to_p_Be9_derived)*amrex::Math::powi<2>(Y(He4))*Y(N)*amrex::Math::powi<3>(state.rho); jac.set(Be9, H1, scratch); - scratch = 0.5*screened_rates(k_d_He4_He4_to_p_Be9_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho); + scratch = 0.5*screened_rates(k_d_He4_He4_to_p_Be9_derived)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho); jac.set(Be9, H2, scratch); jac.set(Be9, He3, 0.0); - scratch = -screened_rates(k_He4_Be9_to_n_C12_reaclib)*Y(Be9)*state.rho + screened_rates(k_He4_Li6_to_p_Be9_reaclib)*Y(Li6)*state.rho + 1.0*screened_rates(k_d_He4_He4_to_p_Be9_reaclib)*Y(He4)*Y(H2)*amrex::Math::powi<2>(state.rho) + 1.0*screened_rates(k_n_He4_He4_to_Be9_reaclib)*Y(He4)*Y(N)*amrex::Math::powi<2>(state.rho) + 1.0*screened_rates(k_n_p_He4_He4_to_p_Be9_reaclib)*Y(He4)*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho); + scratch = -screened_rates(k_Be9_He4_to_n_C12_reaclib)*Y(Be9)*state.rho + 1.0*screened_rates(k_He4_He4_n_to_Be9_reaclib)*Y(He4)*Y(N)*amrex::Math::powi<2>(state.rho) + 1.0*screened_rates(k_He4_He4_p_n_to_p_Be9_derived)*Y(He4)*Y(N)*Y(H1)*amrex::Math::powi<3>(state.rho) + screened_rates(k_Li6_He4_to_p_Be9_derived)*Y(Li6)*state.rho + 1.0*screened_rates(k_d_He4_He4_to_p_Be9_derived)*Y(He4)*Y(H2)*amrex::Math::powi<2>(state.rho); jac.set(Be9, He4, scratch); - scratch = screened_rates(k_He4_Li6_to_p_Be9_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Li6_He4_to_p_Be9_derived)*Y(He4)*state.rho; jac.set(Be9, Li6, scratch); jac.set(Be9, Li7, 0.0); jac.set(Be9, Be7, 0.0); - scratch = -screened_rates(k_Be9_to_n_He4_He4_reaclib) - screened_rates(k_He4_Be9_to_n_C12_reaclib)*Y(He4)*state.rho - screened_rates(k_p_Be9_to_B10_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Be9_to_He4_Li6_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Be9_to_d_He4_He4_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Be9_to_n_p_He4_He4_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Be9_He4_to_n_C12_reaclib)*Y(He4)*state.rho - screened_rates(k_Be9_p_to_B10_reaclib)*Y(H1)*state.rho - screened_rates(k_Be9_p_to_He4_Li6_reaclib)*Y(H1)*state.rho - screened_rates(k_Be9_p_to_d_He4_He4_reaclib)*Y(H1)*state.rho - screened_rates(k_Be9_p_to_n_p_He4_He4_reaclib)*Y(H1)*state.rho - screened_rates(k_Be9_to_n_He4_He4_derived); jac.set(Be9, Be9, scratch); jac.set(Be9, B8, 0.0); - scratch = screened_rates(k_B10_to_p_Be9_reaclib); + scratch = screened_rates(k_B10_to_p_Be9_derived); jac.set(Be9, B10, scratch); jac.set(Be9, B11, 0.0); - scratch = screened_rates(k_n_C12_to_He4_Be9_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_C12_n_to_He4_Be9_derived)*Y(N)*state.rho; jac.set(Be9, C12, scratch); jac.set(Be9, C13, 0.0); @@ -12566,29 +10375,29 @@ void jac_nuc(const burn_t& state, jac.set(Be9, Ge64, 0.0); - scratch = -screened_rates(k_n_B8_to_p_He4_He4_reaclib)*Y(B8)*state.rho; + scratch = -screened_rates(k_B8_n_to_p_He4_He4_reaclib)*Y(B8)*state.rho; jac.set(B8, N, scratch); - scratch = screened_rates(k_p_Be7_to_B8_reaclib)*Y(Be7)*state.rho + 0.5*screened_rates(k_p_He4_He4_to_n_B8_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho); + scratch = screened_rates(k_Be7_p_to_B8_reaclib)*Y(Be7)*state.rho + 0.5*screened_rates(k_He4_He4_p_to_n_B8_derived)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho); jac.set(B8, H1, scratch); jac.set(B8, H2, 0.0); jac.set(B8, He3, 0.0); - scratch = 1.0*screened_rates(k_p_He4_He4_to_n_B8_reaclib)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho); + scratch = 1.0*screened_rates(k_He4_He4_p_to_n_B8_derived)*Y(He4)*Y(H1)*amrex::Math::powi<2>(state.rho); jac.set(B8, He4, scratch); jac.set(B8, Li6, 0.0); jac.set(B8, Li7, 0.0); - scratch = screened_rates(k_p_Be7_to_B8_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Be7_p_to_B8_reaclib)*Y(H1)*state.rho; jac.set(B8, Be7, scratch); jac.set(B8, Be9, 0.0); - scratch = -screened_rates(k_B8_to_He4_He4_reaclib) - screened_rates(k_B8_to_p_Be7_reaclib) - screened_rates(k_n_B8_to_p_He4_He4_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_B8_n_to_p_He4_He4_reaclib)*Y(N)*state.rho - screened_rates(k_B8_to_He4_He4_beta_pos_reaclib) - screened_rates(k_B8_to_p_Be7_derived); jac.set(B8, B8, scratch); jac.set(B8, B10, 0.0); @@ -12891,47 +10700,47 @@ void jac_nuc(const burn_t& state, jac.set(B8, Ge64, 0.0); - scratch = -screened_rates(k_n_B10_to_B11_reaclib)*Y(B10)*state.rho - screened_rates(k_n_B10_to_He4_Li7_reaclib)*Y(B10)*state.rho + screened_rates(k_n_N13_to_He4_B10_reaclib)*Y(N13)*state.rho; + scratch = -screened_rates(k_B10_n_to_B11_reaclib)*Y(B10)*state.rho - screened_rates(k_B10_n_to_He4_Li7_reaclib)*Y(B10)*state.rho + screened_rates(k_N13_n_to_He4_B10_derived)*Y(N13)*state.rho; jac.set(B10, N, scratch); - scratch = -screened_rates(k_p_B10_to_He4_Be7_reaclib)*Y(B10)*state.rho + screened_rates(k_p_Be9_to_B10_reaclib)*Y(Be9)*state.rho + screened_rates(k_p_C13_to_He4_B10_reaclib)*Y(C13)*state.rho; + scratch = -screened_rates(k_B10_p_to_He4_Be7_reaclib)*Y(B10)*state.rho + screened_rates(k_Be9_p_to_B10_reaclib)*Y(Be9)*state.rho + screened_rates(k_C13_p_to_He4_B10_derived)*Y(C13)*state.rho; jac.set(B10, H1, scratch); jac.set(B10, H2, 0.0); jac.set(B10, He3, 0.0); - scratch = -screened_rates(k_He4_B10_to_n_N13_reaclib)*Y(B10)*state.rho - screened_rates(k_He4_B10_to_p_C13_reaclib)*Y(B10)*state.rho + screened_rates(k_He4_Be7_to_p_B10_reaclib)*Y(Be7)*state.rho + screened_rates(k_He4_Li6_to_B10_reaclib)*Y(Li6)*state.rho + screened_rates(k_He4_Li7_to_n_B10_reaclib)*Y(Li7)*state.rho; + scratch = -screened_rates(k_B10_He4_to_n_N13_reaclib)*Y(B10)*state.rho - screened_rates(k_B10_He4_to_p_C13_reaclib)*Y(B10)*state.rho + screened_rates(k_Be7_He4_to_p_B10_derived)*Y(Be7)*state.rho + screened_rates(k_Li6_He4_to_B10_reaclib)*Y(Li6)*state.rho + screened_rates(k_Li7_He4_to_n_B10_derived)*Y(Li7)*state.rho; jac.set(B10, He4, scratch); - scratch = screened_rates(k_He4_Li6_to_B10_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Li6_He4_to_B10_reaclib)*Y(He4)*state.rho; jac.set(B10, Li6, scratch); - scratch = screened_rates(k_He4_Li7_to_n_B10_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Li7_He4_to_n_B10_derived)*Y(He4)*state.rho; jac.set(B10, Li7, scratch); - scratch = screened_rates(k_He4_Be7_to_p_B10_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Be7_He4_to_p_B10_derived)*Y(He4)*state.rho; jac.set(B10, Be7, scratch); - scratch = screened_rates(k_p_Be9_to_B10_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Be9_p_to_B10_reaclib)*Y(H1)*state.rho; jac.set(B10, Be9, scratch); jac.set(B10, B8, 0.0); - scratch = -screened_rates(k_B10_to_He4_Li6_reaclib) - screened_rates(k_B10_to_p_Be9_reaclib) - screened_rates(k_He4_B10_to_n_N13_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_B10_to_p_C13_reaclib)*Y(He4)*state.rho - screened_rates(k_n_B10_to_B11_reaclib)*Y(N)*state.rho - screened_rates(k_n_B10_to_He4_Li7_reaclib)*Y(N)*state.rho - screened_rates(k_p_B10_to_He4_Be7_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_B10_He4_to_n_N13_reaclib)*Y(He4)*state.rho - screened_rates(k_B10_He4_to_p_C13_reaclib)*Y(He4)*state.rho - screened_rates(k_B10_n_to_B11_reaclib)*Y(N)*state.rho - screened_rates(k_B10_n_to_He4_Li7_reaclib)*Y(N)*state.rho - screened_rates(k_B10_p_to_He4_Be7_reaclib)*Y(H1)*state.rho - screened_rates(k_B10_to_He4_Li6_derived) - screened_rates(k_B10_to_p_Be9_derived); jac.set(B10, B10, scratch); - scratch = screened_rates(k_B11_to_n_B10_reaclib); + scratch = screened_rates(k_B11_to_n_B10_derived); jac.set(B10, B11, scratch); jac.set(B10, C12, 0.0); - scratch = screened_rates(k_p_C13_to_He4_B10_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_C13_p_to_He4_B10_derived)*Y(H1)*state.rho; jac.set(B10, C13, scratch); jac.set(B10, C14, 0.0); - scratch = screened_rates(k_n_N13_to_He4_B10_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_N13_n_to_He4_B10_derived)*Y(N)*state.rho; jac.set(B10, N13, scratch); jac.set(B10, N14, 0.0); @@ -13222,22 +11031,22 @@ void jac_nuc(const burn_t& state, jac.set(B10, Ge64, 0.0); - scratch = screened_rates(k_n_B10_to_B11_reaclib)*Y(B10)*state.rho + screened_rates(k_n_N14_to_He4_B11_reaclib)*Y(N14)*state.rho; + scratch = screened_rates(k_B10_n_to_B11_reaclib)*Y(B10)*state.rho + screened_rates(k_N14_n_to_He4_B11_derived)*Y(N14)*state.rho; jac.set(B11, N, scratch); - scratch = -screened_rates(k_p_B11_to_C12_reaclib)*Y(B11)*state.rho - screened_rates(k_p_B11_to_He4_He4_He4_reaclib)*Y(B11)*state.rho + screened_rates(k_p_C14_to_He4_B11_reaclib)*Y(C14)*state.rho; + scratch = -screened_rates(k_B11_p_to_3He4_reaclib)*Y(B11)*state.rho - screened_rates(k_B11_p_to_C12_reaclib)*Y(B11)*state.rho + screened_rates(k_C14_p_to_He4_B11_derived)*Y(C14)*state.rho; jac.set(B11, H1, scratch); jac.set(B11, H2, 0.0); jac.set(B11, He3, 0.0); - scratch = -screened_rates(k_He4_B11_to_n_N14_reaclib)*Y(B11)*state.rho - screened_rates(k_He4_B11_to_p_C14_reaclib)*Y(B11)*state.rho + 0.5*screened_rates(k_He4_He4_He4_to_p_B11_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) + screened_rates(k_He4_Li7_to_B11_reaclib)*Y(Li7)*state.rho; + scratch = -screened_rates(k_B11_He4_to_n_N14_reaclib)*Y(B11)*state.rho - screened_rates(k_B11_He4_to_p_C14_reaclib)*Y(B11)*state.rho + 0.5*screened_rates(k_He4_He4_He4_to_p_B11_derived)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) + screened_rates(k_Li7_He4_to_B11_reaclib)*Y(Li7)*state.rho; jac.set(B11, He4, scratch); jac.set(B11, Li6, 0.0); - scratch = screened_rates(k_He4_Li7_to_B11_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Li7_He4_to_B11_reaclib)*Y(He4)*state.rho; jac.set(B11, Li7, scratch); jac.set(B11, Be7, 0.0); @@ -13246,23 +11055,23 @@ void jac_nuc(const burn_t& state, jac.set(B11, B8, 0.0); - scratch = screened_rates(k_n_B10_to_B11_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_B10_n_to_B11_reaclib)*Y(N)*state.rho; jac.set(B11, B10, scratch); - scratch = -screened_rates(k_B11_to_He4_Li7_reaclib) - screened_rates(k_B11_to_n_B10_reaclib) - screened_rates(k_He4_B11_to_n_N14_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_B11_to_p_C14_reaclib)*Y(He4)*state.rho - screened_rates(k_p_B11_to_C12_reaclib)*Y(H1)*state.rho - screened_rates(k_p_B11_to_He4_He4_He4_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_B11_He4_to_n_N14_reaclib)*Y(He4)*state.rho - screened_rates(k_B11_He4_to_p_C14_reaclib)*Y(He4)*state.rho - screened_rates(k_B11_p_to_3He4_reaclib)*Y(H1)*state.rho - screened_rates(k_B11_p_to_C12_reaclib)*Y(H1)*state.rho - screened_rates(k_B11_to_He4_Li7_derived) - screened_rates(k_B11_to_n_B10_derived); jac.set(B11, B11, scratch); - scratch = screened_rates(k_C12_to_p_B11_reaclib); + scratch = screened_rates(k_C12_to_p_B11_derived); jac.set(B11, C12, scratch); jac.set(B11, C13, 0.0); - scratch = screened_rates(k_p_C14_to_He4_B11_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_C14_p_to_He4_B11_derived)*Y(H1)*state.rho; jac.set(B11, C14, scratch); jac.set(B11, N13, 0.0); - scratch = screened_rates(k_n_N14_to_He4_B11_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_N14_n_to_He4_B11_derived)*Y(N)*state.rho; jac.set(B11, N14, scratch); jac.set(B11, N15, 0.0); @@ -13551,17 +11360,17 @@ void jac_nuc(const burn_t& state, jac.set(B11, Ge64, 0.0); - scratch = -screened_rates(k_n_C12_to_C13_reaclib)*Y(C12)*state.rho - screened_rates(k_n_C12_to_He4_Be9_reaclib)*Y(C12)*state.rho + 2.0*screened_rates(k_n_Mg23_to_C12_C12_reaclib)*Y(Mg23)*state.rho + screened_rates(k_n_O15_to_He4_C12_reaclib)*Y(O15)*state.rho; + scratch = -screened_rates(k_C12_n_to_C13_reaclib)*Y(C12)*state.rho - screened_rates(k_C12_n_to_He4_Be9_derived)*Y(C12)*state.rho + 2.0*screened_rates(k_Mg23_n_to_C12_C12_reaclib)*Y(Mg23)*state.rho + screened_rates(k_O15_n_to_He4_C12_reaclib)*Y(O15)*state.rho; jac.set(C12, N, scratch); - scratch = screened_rates(k_p_Al27_to_C12_O16_reaclib)*Y(Al27)*state.rho + screened_rates(k_p_B11_to_C12_reaclib)*Y(B11)*state.rho - screened_rates(k_p_C12_to_N13_reaclib)*Y(C12)*state.rho + screened_rates(k_p_N15_to_He4_C12_reaclib)*Y(N15)*state.rho + 2.0*screened_rates(k_p_Na23_to_C12_C12_reaclib)*Y(Na23)*state.rho + screened_rates(k_p_P31_to_C12_Ne20_reaclib)*Y(P31)*state.rho; + scratch = screened_rates(k_Al27_p_to_C12_O16_derived)*Y(Al27)*state.rho + screened_rates(k_B11_p_to_C12_reaclib)*Y(B11)*state.rho - screened_rates(k_C12_p_to_N13_reaclib)*Y(C12)*state.rho + screened_rates(k_N15_p_to_He4_C12_reaclib)*Y(N15)*state.rho + 2.0*screened_rates(k_Na23_p_to_C12_C12_derived)*Y(Na23)*state.rho + screened_rates(k_P31_p_to_C12_Ne20_derived)*Y(P31)*state.rho; jac.set(C12, H1, scratch); jac.set(C12, H2, 0.0); jac.set(C12, He3, 0.0); - scratch = screened_rates(k_He4_Be9_to_n_C12_reaclib)*Y(Be9)*state.rho - screened_rates(k_He4_C12_to_O16_reaclib)*Y(C12)*state.rho - screened_rates(k_He4_C12_to_n_O15_reaclib)*Y(C12)*state.rho - screened_rates(k_He4_C12_to_p_N15_reaclib)*Y(C12)*state.rho + 0.5*screened_rates(k_He4_He4_He4_to_C12_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) + screened_rates(k_He4_Mg24_to_C12_O16_reaclib)*Y(Mg24)*state.rho + 2.0*screened_rates(k_He4_Ne20_to_C12_C12_reaclib)*Y(Ne20)*state.rho + screened_rates(k_He4_Si28_to_C12_Ne20_reaclib)*Y(Si28)*state.rho; + scratch = screened_rates(k_Be9_He4_to_n_C12_reaclib)*Y(Be9)*state.rho - screened_rates(k_C12_He4_to_O16_reaclib)*Y(C12)*state.rho - screened_rates(k_C12_He4_to_n_O15_derived)*Y(C12)*state.rho - screened_rates(k_C12_He4_to_p_N15_derived)*Y(C12)*state.rho + 0.5*screened_rates(k_He4_He4_He4_to_C12_reaclib)*amrex::Math::powi<2>(Y(He4))*amrex::Math::powi<2>(state.rho) + screened_rates(k_Mg24_He4_to_C12_O16_derived)*Y(Mg24)*state.rho + 2.0*screened_rates(k_Ne20_He4_to_C12_C12_derived)*Y(Ne20)*state.rho + screened_rates(k_Si28_He4_to_C12_Ne20_derived)*Y(Si28)*state.rho; jac.set(C12, He4, scratch); jac.set(C12, Li6, 0.0); @@ -13570,38 +11379,38 @@ void jac_nuc(const burn_t& state, jac.set(C12, Be7, 0.0); - scratch = screened_rates(k_He4_Be9_to_n_C12_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Be9_He4_to_n_C12_reaclib)*Y(He4)*state.rho; jac.set(C12, Be9, scratch); jac.set(C12, B8, 0.0); jac.set(C12, B10, 0.0); - scratch = screened_rates(k_p_B11_to_C12_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_B11_p_to_C12_reaclib)*Y(H1)*state.rho; jac.set(C12, B11, scratch); - scratch = -2.0*screened_rates(k_C12_C12_to_He4_Ne20_reaclib)*Y(C12)*state.rho - 2.0*screened_rates(k_C12_C12_to_n_Mg23_reaclib)*Y(C12)*state.rho - 2.0*screened_rates(k_C12_C12_to_p_Na23_reaclib)*Y(C12)*state.rho - screened_rates(k_C12_Ne20_to_He4_Si28_reaclib)*Y(Ne20)*state.rho - screened_rates(k_C12_Ne20_to_p_P31_reaclib)*Y(Ne20)*state.rho - screened_rates(k_C12_O16_to_He4_Mg24_reaclib)*Y(O16)*state.rho - screened_rates(k_C12_O16_to_p_Al27_reaclib)*Y(O16)*state.rho - screened_rates(k_C12_to_He4_He4_He4_reaclib) - screened_rates(k_C12_to_p_B11_reaclib) - screened_rates(k_He4_C12_to_O16_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_C12_to_n_O15_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_C12_to_p_N15_reaclib)*Y(He4)*state.rho - screened_rates(k_n_C12_to_C13_reaclib)*Y(N)*state.rho - screened_rates(k_n_C12_to_He4_Be9_reaclib)*Y(N)*state.rho - screened_rates(k_p_C12_to_N13_reaclib)*Y(H1)*state.rho; + scratch = -2.0*screened_rates(k_C12_C12_to_He4_Ne20_reaclib)*Y(C12)*state.rho - 2.0*screened_rates(k_C12_C12_to_n_Mg23_derived)*Y(C12)*state.rho - 2.0*screened_rates(k_C12_C12_to_p_Na23_reaclib)*Y(C12)*state.rho - screened_rates(k_C12_He4_to_O16_reaclib)*Y(He4)*state.rho - screened_rates(k_C12_He4_to_n_O15_derived)*Y(He4)*state.rho - screened_rates(k_C12_He4_to_p_N15_derived)*Y(He4)*state.rho - screened_rates(k_C12_n_to_C13_reaclib)*Y(N)*state.rho - screened_rates(k_C12_n_to_He4_Be9_derived)*Y(N)*state.rho - screened_rates(k_C12_p_to_N13_reaclib)*Y(H1)*state.rho - screened_rates(k_C12_to_3He4_derived) - screened_rates(k_C12_to_p_B11_derived) - screened_rates(k_Ne20_C12_to_He4_Si28_reaclib)*Y(Ne20)*state.rho - screened_rates(k_Ne20_C12_to_p_P31_reaclib)*Y(Ne20)*state.rho - screened_rates(k_O16_C12_to_He4_Mg24_reaclib)*Y(O16)*state.rho - screened_rates(k_O16_C12_to_p_Al27_reaclib)*Y(O16)*state.rho; jac.set(C12, C12, scratch); - scratch = screened_rates(k_C13_to_n_C12_reaclib); + scratch = screened_rates(k_C13_to_n_C12_derived); jac.set(C12, C13, scratch); jac.set(C12, C14, 0.0); - scratch = screened_rates(k_N13_to_p_C12_reaclib); + scratch = screened_rates(k_N13_to_p_C12_derived); jac.set(C12, N13, scratch); jac.set(C12, N14, 0.0); - scratch = screened_rates(k_p_N15_to_He4_C12_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_N15_p_to_He4_C12_reaclib)*Y(H1)*state.rho; jac.set(C12, N15, scratch); jac.set(C12, O14, 0.0); - scratch = screened_rates(k_n_O15_to_He4_C12_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_O15_n_to_He4_C12_reaclib)*Y(N)*state.rho; jac.set(C12, O15, scratch); - scratch = -screened_rates(k_C12_O16_to_He4_Mg24_reaclib)*Y(C12)*state.rho - screened_rates(k_C12_O16_to_p_Al27_reaclib)*Y(C12)*state.rho + screened_rates(k_O16_to_He4_C12_reaclib); + scratch = -screened_rates(k_O16_C12_to_He4_Mg24_reaclib)*Y(C12)*state.rho - screened_rates(k_O16_C12_to_p_Al27_reaclib)*Y(C12)*state.rho + screened_rates(k_O16_to_He4_C12_derived); jac.set(C12, O16, scratch); jac.set(C12, O17, 0.0); @@ -13618,7 +11427,7 @@ void jac_nuc(const burn_t& state, jac.set(C12, Ne19, 0.0); - scratch = -screened_rates(k_C12_Ne20_to_He4_Si28_reaclib)*Y(C12)*state.rho - screened_rates(k_C12_Ne20_to_p_P31_reaclib)*Y(C12)*state.rho + 2.0*screened_rates(k_He4_Ne20_to_C12_C12_reaclib)*Y(He4)*state.rho; + scratch = -screened_rates(k_Ne20_C12_to_He4_Si28_reaclib)*Y(C12)*state.rho - screened_rates(k_Ne20_C12_to_p_P31_reaclib)*Y(C12)*state.rho + 2.0*screened_rates(k_Ne20_He4_to_C12_C12_derived)*Y(He4)*state.rho; jac.set(C12, Ne20, scratch); jac.set(C12, Ne21, 0.0); @@ -13629,13 +11438,13 @@ void jac_nuc(const burn_t& state, jac.set(C12, Na22, 0.0); - scratch = 2.0*screened_rates(k_p_Na23_to_C12_C12_reaclib)*Y(H1)*state.rho; + scratch = 2.0*screened_rates(k_Na23_p_to_C12_C12_derived)*Y(H1)*state.rho; jac.set(C12, Na23, scratch); - scratch = 2.0*screened_rates(k_n_Mg23_to_C12_C12_reaclib)*Y(N)*state.rho; + scratch = 2.0*screened_rates(k_Mg23_n_to_C12_C12_reaclib)*Y(N)*state.rho; jac.set(C12, Mg23, scratch); - scratch = screened_rates(k_He4_Mg24_to_C12_O16_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mg24_He4_to_C12_O16_derived)*Y(He4)*state.rho; jac.set(C12, Mg24, scratch); jac.set(C12, Mg25, 0.0); @@ -13646,10 +11455,10 @@ void jac_nuc(const burn_t& state, jac.set(C12, Al26, 0.0); - scratch = screened_rates(k_p_Al27_to_C12_O16_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Al27_p_to_C12_O16_derived)*Y(H1)*state.rho; jac.set(C12, Al27, scratch); - scratch = screened_rates(k_He4_Si28_to_C12_Ne20_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Si28_He4_to_C12_Ne20_derived)*Y(He4)*state.rho; jac.set(C12, Si28, scratch); jac.set(C12, Si29, 0.0); @@ -13664,7 +11473,7 @@ void jac_nuc(const burn_t& state, jac.set(C12, P30, 0.0); - scratch = screened_rates(k_p_P31_to_C12_Ne20_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_P31_p_to_C12_Ne20_derived)*Y(H1)*state.rho; jac.set(C12, P31, scratch); jac.set(C12, P32, 0.0); @@ -13889,18 +11698,18 @@ void jac_nuc(const burn_t& state, jac.set(C12, Ge64, 0.0); - scratch = screened_rates(k_n_C12_to_C13_reaclib)*Y(C12)*state.rho - screened_rates(k_n_C13_to_C14_reaclib)*Y(C13)*state.rho + screened_rates(k_n_N13_to_p_C13_reaclib)*Y(N13)*state.rho + screened_rates(k_n_N14_to_d_C13_reaclib)*Y(N14)*state.rho + screened_rates(k_n_O16_to_He4_C13_reaclib)*Y(O16)*state.rho; + scratch = screened_rates(k_C12_n_to_C13_reaclib)*Y(C12)*state.rho - screened_rates(k_C13_n_to_C14_reaclib)*Y(C13)*state.rho + screened_rates(k_N13_n_to_p_C13_derived)*Y(N13)*state.rho + screened_rates(k_N14_n_to_d_C13_derived)*Y(N14)*state.rho + screened_rates(k_O16_n_to_He4_C13_derived)*Y(O16)*state.rho; jac.set(C13, N, scratch); - scratch = -screened_rates(k_p_C13_to_He4_B10_reaclib)*Y(C13)*state.rho - screened_rates(k_p_C13_to_N14_reaclib)*Y(C13)*state.rho - screened_rates(k_p_C13_to_n_N13_reaclib)*Y(C13)*state.rho; + scratch = -screened_rates(k_C13_p_to_He4_B10_derived)*Y(C13)*state.rho - screened_rates(k_C13_p_to_N14_reaclib)*Y(C13)*state.rho - screened_rates(k_C13_p_to_n_N13_reaclib)*Y(C13)*state.rho; jac.set(C13, H1, scratch); - scratch = -screened_rates(k_d_C13_to_n_N14_reaclib)*Y(C13)*state.rho; + scratch = -screened_rates(k_C13_d_to_n_N14_reaclib)*Y(C13)*state.rho; jac.set(C13, H2, scratch); jac.set(C13, He3, 0.0); - scratch = screened_rates(k_He4_B10_to_p_C13_reaclib)*Y(B10)*state.rho - screened_rates(k_He4_C13_to_n_O16_reaclib)*Y(C13)*state.rho; + scratch = screened_rates(k_B10_He4_to_p_C13_reaclib)*Y(B10)*state.rho - screened_rates(k_C13_He4_to_n_O16_reaclib)*Y(C13)*state.rho; jac.set(C13, He4, scratch); jac.set(C13, Li6, 0.0); @@ -13913,24 +11722,24 @@ void jac_nuc(const burn_t& state, jac.set(C13, B8, 0.0); - scratch = screened_rates(k_He4_B10_to_p_C13_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_B10_He4_to_p_C13_reaclib)*Y(He4)*state.rho; jac.set(C13, B10, scratch); jac.set(C13, B11, 0.0); - scratch = screened_rates(k_n_C12_to_C13_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_C12_n_to_C13_reaclib)*Y(N)*state.rho; jac.set(C13, C12, scratch); - scratch = -screened_rates(k_C13_to_n_C12_reaclib) - screened_rates(k_He4_C13_to_n_O16_reaclib)*Y(He4)*state.rho - screened_rates(k_d_C13_to_n_N14_reaclib)*Y(H2)*state.rho - screened_rates(k_n_C13_to_C14_reaclib)*Y(N)*state.rho - screened_rates(k_p_C13_to_He4_B10_reaclib)*Y(H1)*state.rho - screened_rates(k_p_C13_to_N14_reaclib)*Y(H1)*state.rho - screened_rates(k_p_C13_to_n_N13_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_C13_He4_to_n_O16_reaclib)*Y(He4)*state.rho - screened_rates(k_C13_d_to_n_N14_reaclib)*Y(H2)*state.rho - screened_rates(k_C13_n_to_C14_reaclib)*Y(N)*state.rho - screened_rates(k_C13_p_to_He4_B10_derived)*Y(H1)*state.rho - screened_rates(k_C13_p_to_N14_reaclib)*Y(H1)*state.rho - screened_rates(k_C13_p_to_n_N13_reaclib)*Y(H1)*state.rho - screened_rates(k_C13_to_n_C12_derived); jac.set(C13, C13, scratch); - scratch = screened_rates(k_C14_to_n_C13_reaclib); + scratch = screened_rates(k_C14_to_n_C13_derived); jac.set(C13, C14, scratch); - scratch = screened_rates(k_N13_to_C13_reaclib) + screened_rates(k_n_N13_to_p_C13_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_N13_n_to_p_C13_derived)*Y(N)*state.rho + screened_rates(k_N13_to_C13_beta_pos_reaclib); jac.set(C13, N13, scratch); - scratch = screened_rates(k_N14_to_p_C13_reaclib) + screened_rates(k_n_N14_to_d_C13_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_N14_n_to_d_C13_derived)*Y(N)*state.rho + screened_rates(k_N14_to_p_C13_derived); jac.set(C13, N14, scratch); jac.set(C13, N15, 0.0); @@ -13939,7 +11748,7 @@ void jac_nuc(const burn_t& state, jac.set(C13, O15, 0.0); - scratch = screened_rates(k_n_O16_to_He4_C13_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_O16_n_to_He4_C13_derived)*Y(N)*state.rho; jac.set(C13, O16, scratch); jac.set(C13, O17, 0.0); @@ -14220,18 +12029,18 @@ void jac_nuc(const burn_t& state, jac.set(C13, Ge64, 0.0); - scratch = screened_rates(k_n_C13_to_C14_reaclib)*Y(C13)*state.rho + screened_rates(k_n_N14_to_p_C14_reaclib)*Y(N14)*state.rho + screened_rates(k_n_N15_to_d_C14_reaclib)*Y(N15)*state.rho + screened_rates(k_n_O17_to_He4_C14_reaclib)*Y(O17)*state.rho; + scratch = screened_rates(k_C13_n_to_C14_reaclib)*Y(C13)*state.rho + screened_rates(k_N14_n_to_p_C14_reaclib)*Y(N14)*state.rho + screened_rates(k_N15_n_to_d_C14_derived)*Y(N15)*state.rho + screened_rates(k_O17_n_to_He4_C14_reaclib)*Y(O17)*state.rho; jac.set(C14, N, scratch); - scratch = -screened_rates(k_p_C14_to_He4_B11_reaclib)*Y(C14)*state.rho - screened_rates(k_p_C14_to_N15_reaclib)*Y(C14)*state.rho - screened_rates(k_p_C14_to_n_N14_reaclib)*Y(C14)*state.rho; + scratch = -screened_rates(k_C14_p_to_He4_B11_derived)*Y(C14)*state.rho - screened_rates(k_C14_p_to_N15_reaclib)*Y(C14)*state.rho - screened_rates(k_C14_p_to_n_N14_derived)*Y(C14)*state.rho; jac.set(C14, H1, scratch); - scratch = -screened_rates(k_d_C14_to_n_N15_reaclib)*Y(C14)*state.rho; + scratch = -screened_rates(k_C14_d_to_n_N15_reaclib)*Y(C14)*state.rho; jac.set(C14, H2, scratch); jac.set(C14, He3, 0.0); - scratch = screened_rates(k_He4_B11_to_p_C14_reaclib)*Y(B11)*state.rho - screened_rates(k_He4_C14_to_O18_reaclib)*Y(C14)*state.rho - screened_rates(k_He4_C14_to_n_O17_reaclib)*Y(C14)*state.rho; + scratch = screened_rates(k_B11_He4_to_p_C14_reaclib)*Y(B11)*state.rho - screened_rates(k_C14_He4_to_O18_reaclib)*Y(C14)*state.rho - screened_rates(k_C14_He4_to_n_O17_derived)*Y(C14)*state.rho; jac.set(C14, He4, scratch); jac.set(C14, Li6, 0.0); @@ -14246,23 +12055,23 @@ void jac_nuc(const burn_t& state, jac.set(C14, B10, 0.0); - scratch = screened_rates(k_He4_B11_to_p_C14_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_B11_He4_to_p_C14_reaclib)*Y(He4)*state.rho; jac.set(C14, B11, scratch); jac.set(C14, C12, 0.0); - scratch = screened_rates(k_n_C13_to_C14_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_C13_n_to_C14_reaclib)*Y(N)*state.rho; jac.set(C14, C13, scratch); - scratch = -screened_rates(k_C14_to_N14_reaclib) - screened_rates(k_C14_to_n_C13_reaclib) - screened_rates(k_He4_C14_to_O18_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_C14_to_n_O17_reaclib)*Y(He4)*state.rho - screened_rates(k_d_C14_to_n_N15_reaclib)*Y(H2)*state.rho - screened_rates(k_p_C14_to_He4_B11_reaclib)*Y(H1)*state.rho - screened_rates(k_p_C14_to_N15_reaclib)*Y(H1)*state.rho - screened_rates(k_p_C14_to_n_N14_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_C14_He4_to_O18_reaclib)*Y(He4)*state.rho - screened_rates(k_C14_He4_to_n_O17_derived)*Y(He4)*state.rho - screened_rates(k_C14_d_to_n_N15_reaclib)*Y(H2)*state.rho - screened_rates(k_C14_p_to_He4_B11_derived)*Y(H1)*state.rho - screened_rates(k_C14_p_to_N15_reaclib)*Y(H1)*state.rho - screened_rates(k_C14_p_to_n_N14_derived)*Y(H1)*state.rho - screened_rates(k_C14_to_N14_beta_neg_reaclib) - screened_rates(k_C14_to_n_C13_derived); jac.set(C14, C14, scratch); jac.set(C14, N13, 0.0); - scratch = screened_rates(k_n_N14_to_p_C14_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_N14_n_to_p_C14_reaclib)*Y(N)*state.rho; jac.set(C14, N14, scratch); - scratch = screened_rates(k_N15_to_p_C14_reaclib) + screened_rates(k_n_N15_to_d_C14_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_N15_n_to_d_C14_derived)*Y(N)*state.rho + screened_rates(k_N15_to_p_C14_derived); jac.set(C14, N15, scratch); jac.set(C14, O14, 0.0); @@ -14271,10 +12080,10 @@ void jac_nuc(const burn_t& state, jac.set(C14, O16, 0.0); - scratch = screened_rates(k_n_O17_to_He4_C14_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_O17_n_to_He4_C14_reaclib)*Y(N)*state.rho; jac.set(C14, O17, scratch); - scratch = screened_rates(k_O18_to_He4_C14_reaclib); + scratch = screened_rates(k_O18_to_He4_C14_derived); jac.set(C14, O18, scratch); jac.set(C14, F17, 0.0); @@ -14551,17 +12360,17 @@ void jac_nuc(const burn_t& state, jac.set(C14, Ge64, 0.0); - scratch = -screened_rates(k_n_N13_to_He4_B10_reaclib)*Y(N13)*state.rho - screened_rates(k_n_N13_to_N14_reaclib)*Y(N13)*state.rho - screened_rates(k_n_N13_to_p_C13_reaclib)*Y(N13)*state.rho; + scratch = -screened_rates(k_N13_n_to_He4_B10_derived)*Y(N13)*state.rho - screened_rates(k_N13_n_to_N14_reaclib)*Y(N13)*state.rho - screened_rates(k_N13_n_to_p_C13_derived)*Y(N13)*state.rho; jac.set(N13, N, scratch); - scratch = screened_rates(k_p_C12_to_N13_reaclib)*Y(C12)*state.rho + screened_rates(k_p_C13_to_n_N13_reaclib)*Y(C13)*state.rho - screened_rates(k_p_N13_to_O14_reaclib)*Y(N13)*state.rho + screened_rates(k_p_O16_to_He4_N13_reaclib)*Y(O16)*state.rho; + scratch = screened_rates(k_C12_p_to_N13_reaclib)*Y(C12)*state.rho + screened_rates(k_C13_p_to_n_N13_reaclib)*Y(C13)*state.rho - screened_rates(k_N13_p_to_O14_reaclib)*Y(N13)*state.rho + screened_rates(k_O16_p_to_He4_N13_derived)*Y(O16)*state.rho; jac.set(N13, H1, scratch); jac.set(N13, H2, 0.0); jac.set(N13, He3, 0.0); - scratch = screened_rates(k_He4_B10_to_n_N13_reaclib)*Y(B10)*state.rho - screened_rates(k_He4_N13_to_p_O16_reaclib)*Y(N13)*state.rho; + scratch = screened_rates(k_B10_He4_to_n_N13_reaclib)*Y(B10)*state.rho - screened_rates(k_N13_He4_to_p_O16_reaclib)*Y(N13)*state.rho; jac.set(N13, He4, scratch); jac.set(N13, Li6, 0.0); @@ -14574,33 +12383,33 @@ void jac_nuc(const burn_t& state, jac.set(N13, B8, 0.0); - scratch = screened_rates(k_He4_B10_to_n_N13_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_B10_He4_to_n_N13_reaclib)*Y(He4)*state.rho; jac.set(N13, B10, scratch); jac.set(N13, B11, 0.0); - scratch = screened_rates(k_p_C12_to_N13_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_C12_p_to_N13_reaclib)*Y(H1)*state.rho; jac.set(N13, C12, scratch); - scratch = screened_rates(k_p_C13_to_n_N13_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_C13_p_to_n_N13_reaclib)*Y(H1)*state.rho; jac.set(N13, C13, scratch); jac.set(N13, C14, 0.0); - scratch = -screened_rates(k_He4_N13_to_p_O16_reaclib)*Y(He4)*state.rho - screened_rates(k_N13_to_C13_reaclib) - screened_rates(k_N13_to_p_C12_reaclib) - screened_rates(k_n_N13_to_He4_B10_reaclib)*Y(N)*state.rho - screened_rates(k_n_N13_to_N14_reaclib)*Y(N)*state.rho - screened_rates(k_n_N13_to_p_C13_reaclib)*Y(N)*state.rho - screened_rates(k_p_N13_to_O14_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_N13_He4_to_p_O16_reaclib)*Y(He4)*state.rho - screened_rates(k_N13_n_to_He4_B10_derived)*Y(N)*state.rho - screened_rates(k_N13_n_to_N14_reaclib)*Y(N)*state.rho - screened_rates(k_N13_n_to_p_C13_derived)*Y(N)*state.rho - screened_rates(k_N13_p_to_O14_reaclib)*Y(H1)*state.rho - screened_rates(k_N13_to_C13_beta_pos_reaclib) - screened_rates(k_N13_to_p_C12_derived); jac.set(N13, N13, scratch); - scratch = screened_rates(k_N14_to_n_N13_reaclib); + scratch = screened_rates(k_N14_to_n_N13_derived); jac.set(N13, N14, scratch); jac.set(N13, N15, 0.0); - scratch = screened_rates(k_O14_to_p_N13_reaclib); + scratch = screened_rates(k_O14_to_p_N13_derived); jac.set(N13, O14, scratch); jac.set(N13, O15, 0.0); - scratch = screened_rates(k_p_O16_to_He4_N13_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_O16_p_to_He4_N13_derived)*Y(H1)*state.rho; jac.set(N13, O16, scratch); jac.set(N13, O17, 0.0); @@ -14881,18 +12690,18 @@ void jac_nuc(const burn_t& state, jac.set(N13, Ge64, 0.0); - scratch = screened_rates(k_n_F17_to_He4_N14_reaclib)*Y(F17)*state.rho + screened_rates(k_n_N13_to_N14_reaclib)*Y(N13)*state.rho - screened_rates(k_n_N14_to_He4_B11_reaclib)*Y(N14)*state.rho - screened_rates(k_n_N14_to_N15_reaclib)*Y(N14)*state.rho - screened_rates(k_n_N14_to_d_C13_reaclib)*Y(N14)*state.rho - screened_rates(k_n_N14_to_p_C14_reaclib)*Y(N14)*state.rho + screened_rates(k_n_O14_to_p_N14_reaclib)*Y(O14)*state.rho; + scratch = screened_rates(k_F17_n_to_He4_N14_derived)*Y(F17)*state.rho + screened_rates(k_N13_n_to_N14_reaclib)*Y(N13)*state.rho - screened_rates(k_N14_n_to_He4_B11_derived)*Y(N14)*state.rho - screened_rates(k_N14_n_to_N15_reaclib)*Y(N14)*state.rho - screened_rates(k_N14_n_to_d_C13_derived)*Y(N14)*state.rho - screened_rates(k_N14_n_to_p_C14_reaclib)*Y(N14)*state.rho + screened_rates(k_O14_n_to_p_N14_derived)*Y(O14)*state.rho; jac.set(N14, N, scratch); - scratch = screened_rates(k_p_C13_to_N14_reaclib)*Y(C13)*state.rho + screened_rates(k_p_C14_to_n_N14_reaclib)*Y(C14)*state.rho - screened_rates(k_p_N14_to_O15_reaclib)*Y(N14)*state.rho - screened_rates(k_p_N14_to_n_O14_reaclib)*Y(N14)*state.rho + screened_rates(k_p_O17_to_He4_N14_reaclib)*Y(O17)*state.rho; + scratch = screened_rates(k_C13_p_to_N14_reaclib)*Y(C13)*state.rho + screened_rates(k_C14_p_to_n_N14_derived)*Y(C14)*state.rho - screened_rates(k_N14_p_to_O15_reaclib)*Y(N14)*state.rho - screened_rates(k_N14_p_to_n_O14_reaclib)*Y(N14)*state.rho + screened_rates(k_O17_p_to_He4_N14_reaclib)*Y(O17)*state.rho; jac.set(N14, H1, scratch); - scratch = screened_rates(k_d_C13_to_n_N14_reaclib)*Y(C13)*state.rho; + scratch = screened_rates(k_C13_d_to_n_N14_reaclib)*Y(C13)*state.rho; jac.set(N14, H2, scratch); jac.set(N14, He3, 0.0); - scratch = screened_rates(k_He4_B11_to_n_N14_reaclib)*Y(B11)*state.rho - screened_rates(k_He4_N14_to_F18_reaclib)*Y(N14)*state.rho - screened_rates(k_He4_N14_to_n_F17_reaclib)*Y(N14)*state.rho - screened_rates(k_He4_N14_to_p_O17_reaclib)*Y(N14)*state.rho; + scratch = screened_rates(k_B11_He4_to_n_N14_reaclib)*Y(B11)*state.rho - screened_rates(k_N14_He4_to_F18_reaclib)*Y(N14)*state.rho - screened_rates(k_N14_He4_to_n_F17_reaclib)*Y(N14)*state.rho - screened_rates(k_N14_He4_to_p_O17_derived)*Y(N14)*state.rho; jac.set(N14, He4, scratch); jac.set(N14, Li6, 0.0); @@ -14907,43 +12716,43 @@ void jac_nuc(const burn_t& state, jac.set(N14, B10, 0.0); - scratch = screened_rates(k_He4_B11_to_n_N14_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_B11_He4_to_n_N14_reaclib)*Y(He4)*state.rho; jac.set(N14, B11, scratch); jac.set(N14, C12, 0.0); - scratch = screened_rates(k_d_C13_to_n_N14_reaclib)*Y(H2)*state.rho + screened_rates(k_p_C13_to_N14_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_C13_d_to_n_N14_reaclib)*Y(H2)*state.rho + screened_rates(k_C13_p_to_N14_reaclib)*Y(H1)*state.rho; jac.set(N14, C13, scratch); - scratch = screened_rates(k_C14_to_N14_reaclib) + screened_rates(k_p_C14_to_n_N14_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_C14_p_to_n_N14_derived)*Y(H1)*state.rho + screened_rates(k_C14_to_N14_beta_neg_reaclib); jac.set(N14, C14, scratch); - scratch = screened_rates(k_n_N13_to_N14_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_N13_n_to_N14_reaclib)*Y(N)*state.rho; jac.set(N14, N13, scratch); - scratch = -screened_rates(k_He4_N14_to_F18_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_N14_to_n_F17_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_N14_to_p_O17_reaclib)*Y(He4)*state.rho - screened_rates(k_N14_to_n_N13_reaclib) - screened_rates(k_N14_to_p_C13_reaclib) - screened_rates(k_n_N14_to_He4_B11_reaclib)*Y(N)*state.rho - screened_rates(k_n_N14_to_N15_reaclib)*Y(N)*state.rho - screened_rates(k_n_N14_to_d_C13_reaclib)*Y(N)*state.rho - screened_rates(k_n_N14_to_p_C14_reaclib)*Y(N)*state.rho - screened_rates(k_p_N14_to_O15_reaclib)*Y(H1)*state.rho - screened_rates(k_p_N14_to_n_O14_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_N14_He4_to_F18_reaclib)*Y(He4)*state.rho - screened_rates(k_N14_He4_to_n_F17_reaclib)*Y(He4)*state.rho - screened_rates(k_N14_He4_to_p_O17_derived)*Y(He4)*state.rho - screened_rates(k_N14_n_to_He4_B11_derived)*Y(N)*state.rho - screened_rates(k_N14_n_to_N15_reaclib)*Y(N)*state.rho - screened_rates(k_N14_n_to_d_C13_derived)*Y(N)*state.rho - screened_rates(k_N14_n_to_p_C14_reaclib)*Y(N)*state.rho - screened_rates(k_N14_p_to_O15_reaclib)*Y(H1)*state.rho - screened_rates(k_N14_p_to_n_O14_reaclib)*Y(H1)*state.rho - screened_rates(k_N14_to_n_N13_derived) - screened_rates(k_N14_to_p_C13_derived); jac.set(N14, N14, scratch); - scratch = screened_rates(k_N15_to_n_N14_reaclib); + scratch = screened_rates(k_N15_to_n_N14_derived); jac.set(N14, N15, scratch); - scratch = screened_rates(k_O14_to_N14_reaclib) + screened_rates(k_n_O14_to_p_N14_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_O14_n_to_p_N14_derived)*Y(N)*state.rho + screened_rates(k_O14_to_N14_beta_pos_reaclib); jac.set(N14, O14, scratch); - scratch = screened_rates(k_O15_to_p_N14_reaclib); + scratch = screened_rates(k_O15_to_p_N14_derived); jac.set(N14, O15, scratch); jac.set(N14, O16, 0.0); - scratch = screened_rates(k_p_O17_to_He4_N14_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_O17_p_to_He4_N14_reaclib)*Y(H1)*state.rho; jac.set(N14, O17, scratch); jac.set(N14, O18, 0.0); - scratch = screened_rates(k_n_F17_to_He4_N14_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_F17_n_to_He4_N14_derived)*Y(N)*state.rho; jac.set(N14, F17, scratch); - scratch = screened_rates(k_F18_to_He4_N14_reaclib); + scratch = screened_rates(k_F18_to_He4_N14_derived); jac.set(N14, F18, scratch); jac.set(N14, F19, 0.0); @@ -15216,18 +13025,18 @@ void jac_nuc(const burn_t& state, jac.set(N14, Ge64, 0.0); - scratch = screened_rates(k_n_F18_to_He4_N15_reaclib)*Y(F18)*state.rho + screened_rates(k_n_N14_to_N15_reaclib)*Y(N14)*state.rho - screened_rates(k_n_N15_to_d_C14_reaclib)*Y(N15)*state.rho + screened_rates(k_n_O15_to_p_N15_reaclib)*Y(O15)*state.rho; + scratch = screened_rates(k_F18_n_to_He4_N15_reaclib)*Y(F18)*state.rho + screened_rates(k_N14_n_to_N15_reaclib)*Y(N14)*state.rho - screened_rates(k_N15_n_to_d_C14_derived)*Y(N15)*state.rho + screened_rates(k_O15_n_to_p_N15_derived)*Y(O15)*state.rho; jac.set(N15, N, scratch); - scratch = screened_rates(k_p_C14_to_N15_reaclib)*Y(C14)*state.rho - screened_rates(k_p_N15_to_He4_C12_reaclib)*Y(N15)*state.rho - screened_rates(k_p_N15_to_O16_reaclib)*Y(N15)*state.rho - screened_rates(k_p_N15_to_n_O15_reaclib)*Y(N15)*state.rho + screened_rates(k_p_O18_to_He4_N15_reaclib)*Y(O18)*state.rho; + scratch = screened_rates(k_C14_p_to_N15_reaclib)*Y(C14)*state.rho - screened_rates(k_N15_p_to_He4_C12_reaclib)*Y(N15)*state.rho - screened_rates(k_N15_p_to_O16_reaclib)*Y(N15)*state.rho - screened_rates(k_N15_p_to_n_O15_reaclib)*Y(N15)*state.rho + screened_rates(k_O18_p_to_He4_N15_reaclib)*Y(O18)*state.rho; jac.set(N15, H1, scratch); - scratch = screened_rates(k_d_C14_to_n_N15_reaclib)*Y(C14)*state.rho; + scratch = screened_rates(k_C14_d_to_n_N15_reaclib)*Y(C14)*state.rho; jac.set(N15, H2, scratch); jac.set(N15, He3, 0.0); - scratch = screened_rates(k_He4_C12_to_p_N15_reaclib)*Y(C12)*state.rho - screened_rates(k_He4_N15_to_F19_reaclib)*Y(N15)*state.rho - screened_rates(k_He4_N15_to_n_F18_reaclib)*Y(N15)*state.rho - screened_rates(k_He4_N15_to_p_O18_reaclib)*Y(N15)*state.rho; + scratch = screened_rates(k_C12_He4_to_p_N15_derived)*Y(C12)*state.rho - screened_rates(k_N15_He4_to_F19_reaclib)*Y(N15)*state.rho - screened_rates(k_N15_He4_to_n_F18_derived)*Y(N15)*state.rho - screened_rates(k_N15_He4_to_p_O18_derived)*Y(N15)*state.rho; jac.set(N15, He4, scratch); jac.set(N15, Li6, 0.0); @@ -15244,41 +13053,41 @@ void jac_nuc(const burn_t& state, jac.set(N15, B11, 0.0); - scratch = screened_rates(k_He4_C12_to_p_N15_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_C12_He4_to_p_N15_derived)*Y(He4)*state.rho; jac.set(N15, C12, scratch); jac.set(N15, C13, 0.0); - scratch = screened_rates(k_d_C14_to_n_N15_reaclib)*Y(H2)*state.rho + screened_rates(k_p_C14_to_N15_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_C14_d_to_n_N15_reaclib)*Y(H2)*state.rho + screened_rates(k_C14_p_to_N15_reaclib)*Y(H1)*state.rho; jac.set(N15, C14, scratch); jac.set(N15, N13, 0.0); - scratch = screened_rates(k_n_N14_to_N15_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_N14_n_to_N15_reaclib)*Y(N)*state.rho; jac.set(N15, N14, scratch); - scratch = -screened_rates(k_He4_N15_to_F19_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_N15_to_n_F18_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_N15_to_p_O18_reaclib)*Y(He4)*state.rho - screened_rates(k_N15_to_n_N14_reaclib) - screened_rates(k_N15_to_p_C14_reaclib) - screened_rates(k_n_N15_to_d_C14_reaclib)*Y(N)*state.rho - screened_rates(k_p_N15_to_He4_C12_reaclib)*Y(H1)*state.rho - screened_rates(k_p_N15_to_O16_reaclib)*Y(H1)*state.rho - screened_rates(k_p_N15_to_n_O15_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_N15_He4_to_F19_reaclib)*Y(He4)*state.rho - screened_rates(k_N15_He4_to_n_F18_derived)*Y(He4)*state.rho - screened_rates(k_N15_He4_to_p_O18_derived)*Y(He4)*state.rho - screened_rates(k_N15_n_to_d_C14_derived)*Y(N)*state.rho - screened_rates(k_N15_p_to_He4_C12_reaclib)*Y(H1)*state.rho - screened_rates(k_N15_p_to_O16_reaclib)*Y(H1)*state.rho - screened_rates(k_N15_p_to_n_O15_reaclib)*Y(H1)*state.rho - screened_rates(k_N15_to_n_N14_derived) - screened_rates(k_N15_to_p_C14_derived); jac.set(N15, N15, scratch); jac.set(N15, O14, 0.0); - scratch = screened_rates(k_O15_to_N15_reaclib) + screened_rates(k_n_O15_to_p_N15_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_O15_n_to_p_N15_derived)*Y(N)*state.rho + screened_rates(k_O15_to_N15_beta_pos_reaclib); jac.set(N15, O15, scratch); - scratch = screened_rates(k_O16_to_p_N15_reaclib); + scratch = screened_rates(k_O16_to_p_N15_derived); jac.set(N15, O16, scratch); jac.set(N15, O17, 0.0); - scratch = screened_rates(k_p_O18_to_He4_N15_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_O18_p_to_He4_N15_reaclib)*Y(H1)*state.rho; jac.set(N15, O18, scratch); jac.set(N15, F17, 0.0); - scratch = screened_rates(k_n_F18_to_He4_N15_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_F18_n_to_He4_N15_reaclib)*Y(N)*state.rho; jac.set(N15, F18, scratch); - scratch = screened_rates(k_F19_to_He4_N15_reaclib); + scratch = screened_rates(k_F19_to_He4_N15_derived); jac.set(N15, F19, scratch); jac.set(N15, Ne18, 0.0); @@ -15549,17 +13358,17 @@ void jac_nuc(const burn_t& state, jac.set(N15, Ge64, 0.0); - scratch = -screened_rates(k_n_O14_to_O15_reaclib)*Y(O14)*state.rho - screened_rates(k_n_O14_to_p_N14_reaclib)*Y(O14)*state.rho; + scratch = -screened_rates(k_O14_n_to_O15_reaclib)*Y(O14)*state.rho - screened_rates(k_O14_n_to_p_N14_derived)*Y(O14)*state.rho; jac.set(O14, N, scratch); - scratch = screened_rates(k_p_F17_to_He4_O14_reaclib)*Y(F17)*state.rho + screened_rates(k_p_N13_to_O14_reaclib)*Y(N13)*state.rho + screened_rates(k_p_N14_to_n_O14_reaclib)*Y(N14)*state.rho; + scratch = screened_rates(k_F17_p_to_He4_O14_derived)*Y(F17)*state.rho + screened_rates(k_N13_p_to_O14_reaclib)*Y(N13)*state.rho + screened_rates(k_N14_p_to_n_O14_reaclib)*Y(N14)*state.rho; jac.set(O14, H1, scratch); jac.set(O14, H2, 0.0); jac.set(O14, He3, 0.0); - scratch = -screened_rates(k_He4_O14_to_Ne18_reaclib)*Y(O14)*state.rho - screened_rates(k_He4_O14_to_p_F17_reaclib)*Y(O14)*state.rho; + scratch = -screened_rates(k_O14_He4_to_Ne18_reaclib)*Y(O14)*state.rho - screened_rates(k_O14_He4_to_p_F17_reaclib)*Y(O14)*state.rho; jac.set(O14, He4, scratch); jac.set(O14, Li6, 0.0); @@ -15582,18 +13391,18 @@ void jac_nuc(const burn_t& state, jac.set(O14, C14, 0.0); - scratch = screened_rates(k_p_N13_to_O14_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_N13_p_to_O14_reaclib)*Y(H1)*state.rho; jac.set(O14, N13, scratch); - scratch = screened_rates(k_p_N14_to_n_O14_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_N14_p_to_n_O14_reaclib)*Y(H1)*state.rho; jac.set(O14, N14, scratch); jac.set(O14, N15, 0.0); - scratch = -screened_rates(k_He4_O14_to_Ne18_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_O14_to_p_F17_reaclib)*Y(He4)*state.rho - screened_rates(k_O14_to_N14_reaclib) - screened_rates(k_O14_to_p_N13_reaclib) - screened_rates(k_n_O14_to_O15_reaclib)*Y(N)*state.rho - screened_rates(k_n_O14_to_p_N14_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_O14_He4_to_Ne18_reaclib)*Y(He4)*state.rho - screened_rates(k_O14_He4_to_p_F17_reaclib)*Y(He4)*state.rho - screened_rates(k_O14_n_to_O15_reaclib)*Y(N)*state.rho - screened_rates(k_O14_n_to_p_N14_derived)*Y(N)*state.rho - screened_rates(k_O14_to_N14_beta_pos_reaclib) - screened_rates(k_O14_to_p_N13_derived); jac.set(O14, O14, scratch); - scratch = screened_rates(k_O15_to_n_O14_reaclib); + scratch = screened_rates(k_O15_to_n_O14_derived); jac.set(O14, O15, scratch); jac.set(O14, O16, 0.0); @@ -15602,14 +13411,14 @@ void jac_nuc(const burn_t& state, jac.set(O14, O18, 0.0); - scratch = screened_rates(k_p_F17_to_He4_O14_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_F17_p_to_He4_O14_derived)*Y(H1)*state.rho; jac.set(O14, F17, scratch); jac.set(O14, F18, 0.0); jac.set(O14, F19, 0.0); - scratch = screened_rates(k_Ne18_to_He4_O14_reaclib); + scratch = screened_rates(k_Ne18_to_He4_O14_derived); jac.set(O14, Ne18, scratch); jac.set(O14, Ne19, 0.0); @@ -15878,17 +13687,17 @@ void jac_nuc(const burn_t& state, jac.set(O14, Ge64, 0.0); - scratch = screened_rates(k_n_Ne18_to_He4_O15_reaclib)*Y(Ne18)*state.rho + screened_rates(k_n_O14_to_O15_reaclib)*Y(O14)*state.rho - screened_rates(k_n_O15_to_He4_C12_reaclib)*Y(O15)*state.rho - screened_rates(k_n_O15_to_O16_reaclib)*Y(O15)*state.rho - screened_rates(k_n_O15_to_p_N15_reaclib)*Y(O15)*state.rho; + scratch = screened_rates(k_Ne18_n_to_He4_O15_reaclib)*Y(Ne18)*state.rho + screened_rates(k_O14_n_to_O15_reaclib)*Y(O14)*state.rho - screened_rates(k_O15_n_to_He4_C12_reaclib)*Y(O15)*state.rho - screened_rates(k_O15_n_to_O16_reaclib)*Y(O15)*state.rho - screened_rates(k_O15_n_to_p_N15_derived)*Y(O15)*state.rho; jac.set(O15, N, scratch); - scratch = screened_rates(k_p_F18_to_He4_O15_reaclib)*Y(F18)*state.rho + screened_rates(k_p_N14_to_O15_reaclib)*Y(N14)*state.rho + screened_rates(k_p_N15_to_n_O15_reaclib)*Y(N15)*state.rho; + scratch = screened_rates(k_F18_p_to_He4_O15_reaclib)*Y(F18)*state.rho + screened_rates(k_N14_p_to_O15_reaclib)*Y(N14)*state.rho + screened_rates(k_N15_p_to_n_O15_reaclib)*Y(N15)*state.rho; jac.set(O15, H1, scratch); jac.set(O15, H2, 0.0); jac.set(O15, He3, 0.0); - scratch = screened_rates(k_He4_C12_to_n_O15_reaclib)*Y(C12)*state.rho - screened_rates(k_He4_O15_to_Ne19_reaclib)*Y(O15)*state.rho - screened_rates(k_He4_O15_to_n_Ne18_reaclib)*Y(O15)*state.rho - screened_rates(k_He4_O15_to_p_F18_reaclib)*Y(O15)*state.rho; + scratch = screened_rates(k_C12_He4_to_n_O15_derived)*Y(C12)*state.rho - screened_rates(k_O15_He4_to_Ne19_reaclib)*Y(O15)*state.rho - screened_rates(k_O15_He4_to_n_Ne18_derived)*Y(O15)*state.rho - screened_rates(k_O15_He4_to_p_F18_derived)*Y(O15)*state.rho; jac.set(O15, He4, scratch); jac.set(O15, Li6, 0.0); @@ -15905,7 +13714,7 @@ void jac_nuc(const burn_t& state, jac.set(O15, B11, 0.0); - scratch = screened_rates(k_He4_C12_to_n_O15_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_C12_He4_to_n_O15_derived)*Y(He4)*state.rho; jac.set(O15, C12, scratch); jac.set(O15, C13, 0.0); @@ -15914,19 +13723,19 @@ void jac_nuc(const burn_t& state, jac.set(O15, N13, 0.0); - scratch = screened_rates(k_p_N14_to_O15_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_N14_p_to_O15_reaclib)*Y(H1)*state.rho; jac.set(O15, N14, scratch); - scratch = screened_rates(k_p_N15_to_n_O15_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_N15_p_to_n_O15_reaclib)*Y(H1)*state.rho; jac.set(O15, N15, scratch); - scratch = screened_rates(k_n_O14_to_O15_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_O14_n_to_O15_reaclib)*Y(N)*state.rho; jac.set(O15, O14, scratch); - scratch = -screened_rates(k_He4_O15_to_Ne19_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_O15_to_n_Ne18_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_O15_to_p_F18_reaclib)*Y(He4)*state.rho - screened_rates(k_O15_to_N15_reaclib) - screened_rates(k_O15_to_n_O14_reaclib) - screened_rates(k_O15_to_p_N14_reaclib) - screened_rates(k_n_O15_to_He4_C12_reaclib)*Y(N)*state.rho - screened_rates(k_n_O15_to_O16_reaclib)*Y(N)*state.rho - screened_rates(k_n_O15_to_p_N15_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_O15_He4_to_Ne19_reaclib)*Y(He4)*state.rho - screened_rates(k_O15_He4_to_n_Ne18_derived)*Y(He4)*state.rho - screened_rates(k_O15_He4_to_p_F18_derived)*Y(He4)*state.rho - screened_rates(k_O15_n_to_He4_C12_reaclib)*Y(N)*state.rho - screened_rates(k_O15_n_to_O16_reaclib)*Y(N)*state.rho - screened_rates(k_O15_n_to_p_N15_derived)*Y(N)*state.rho - screened_rates(k_O15_to_N15_beta_pos_reaclib) - screened_rates(k_O15_to_n_O14_derived) - screened_rates(k_O15_to_p_N14_derived); jac.set(O15, O15, scratch); - scratch = screened_rates(k_O16_to_n_O15_reaclib); + scratch = screened_rates(k_O16_to_n_O15_derived); jac.set(O15, O16, scratch); jac.set(O15, O17, 0.0); @@ -15935,15 +13744,15 @@ void jac_nuc(const burn_t& state, jac.set(O15, F17, 0.0); - scratch = screened_rates(k_p_F18_to_He4_O15_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_F18_p_to_He4_O15_reaclib)*Y(H1)*state.rho; jac.set(O15, F18, scratch); jac.set(O15, F19, 0.0); - scratch = screened_rates(k_n_Ne18_to_He4_O15_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ne18_n_to_He4_O15_reaclib)*Y(N)*state.rho; jac.set(O15, Ne18, scratch); - scratch = screened_rates(k_Ne19_to_He4_O15_reaclib); + scratch = screened_rates(k_Ne19_to_He4_O15_derived); jac.set(O15, Ne19, scratch); jac.set(O15, Ne20, 0.0); @@ -16210,17 +14019,17 @@ void jac_nuc(const burn_t& state, jac.set(O15, Ge64, 0.0); - scratch = screened_rates(k_n_Ne19_to_He4_O16_reaclib)*Y(Ne19)*state.rho + screened_rates(k_n_O15_to_O16_reaclib)*Y(O15)*state.rho - screened_rates(k_n_O16_to_He4_C13_reaclib)*Y(O16)*state.rho - screened_rates(k_n_O16_to_O17_reaclib)*Y(O16)*state.rho; + scratch = screened_rates(k_Ne19_n_to_He4_O16_reaclib)*Y(Ne19)*state.rho + screened_rates(k_O15_n_to_O16_reaclib)*Y(O15)*state.rho - screened_rates(k_O16_n_to_He4_C13_derived)*Y(O16)*state.rho - screened_rates(k_O16_n_to_O17_reaclib)*Y(O16)*state.rho; jac.set(O16, N, scratch); - scratch = screened_rates(k_p_Al27_to_C12_O16_reaclib)*Y(Al27)*state.rho + screened_rates(k_p_F19_to_He4_O16_reaclib)*Y(F19)*state.rho + screened_rates(k_p_N15_to_O16_reaclib)*Y(N15)*state.rho - screened_rates(k_p_O16_to_F17_reaclib)*Y(O16)*state.rho - screened_rates(k_p_O16_to_He4_N13_reaclib)*Y(O16)*state.rho + 2.0*screened_rates(k_p_P31_to_O16_O16_reaclib)*Y(P31)*state.rho; + scratch = screened_rates(k_Al27_p_to_C12_O16_derived)*Y(Al27)*state.rho + screened_rates(k_F19_p_to_He4_O16_reaclib)*Y(F19)*state.rho + screened_rates(k_N15_p_to_O16_reaclib)*Y(N15)*state.rho - screened_rates(k_O16_p_to_F17_reaclib)*Y(O16)*state.rho - screened_rates(k_O16_p_to_He4_N13_derived)*Y(O16)*state.rho + 2.0*screened_rates(k_P31_p_to_O16_O16_derived)*Y(P31)*state.rho; jac.set(O16, H1, scratch); jac.set(O16, H2, 0.0); jac.set(O16, He3, 0.0); - scratch = screened_rates(k_He4_C12_to_O16_reaclib)*Y(C12)*state.rho + screened_rates(k_He4_C13_to_n_O16_reaclib)*Y(C13)*state.rho + screened_rates(k_He4_Mg24_to_C12_O16_reaclib)*Y(Mg24)*state.rho + screened_rates(k_He4_N13_to_p_O16_reaclib)*Y(N13)*state.rho - screened_rates(k_He4_O16_to_Ne20_reaclib)*Y(O16)*state.rho - screened_rates(k_He4_O16_to_n_Ne19_reaclib)*Y(O16)*state.rho - screened_rates(k_He4_O16_to_p_F19_reaclib)*Y(O16)*state.rho + 2.0*screened_rates(k_He4_Si28_to_O16_O16_reaclib)*Y(Si28)*state.rho; + scratch = screened_rates(k_C12_He4_to_O16_reaclib)*Y(C12)*state.rho + screened_rates(k_C13_He4_to_n_O16_reaclib)*Y(C13)*state.rho + screened_rates(k_Mg24_He4_to_C12_O16_derived)*Y(Mg24)*state.rho + screened_rates(k_N13_He4_to_p_O16_reaclib)*Y(N13)*state.rho - screened_rates(k_O16_He4_to_Ne20_reaclib)*Y(O16)*state.rho - screened_rates(k_O16_He4_to_n_Ne19_derived)*Y(O16)*state.rho - screened_rates(k_O16_He4_to_p_F19_derived)*Y(O16)*state.rho + 2.0*screened_rates(k_Si28_He4_to_O16_O16_derived)*Y(Si28)*state.rho; jac.set(O16, He4, scratch); jac.set(O16, Li6, 0.0); @@ -16237,49 +14046,49 @@ void jac_nuc(const burn_t& state, jac.set(O16, B11, 0.0); - scratch = -screened_rates(k_C12_O16_to_He4_Mg24_reaclib)*Y(O16)*state.rho - screened_rates(k_C12_O16_to_p_Al27_reaclib)*Y(O16)*state.rho + screened_rates(k_He4_C12_to_O16_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_C12_He4_to_O16_reaclib)*Y(He4)*state.rho - screened_rates(k_O16_C12_to_He4_Mg24_reaclib)*Y(O16)*state.rho - screened_rates(k_O16_C12_to_p_Al27_reaclib)*Y(O16)*state.rho; jac.set(O16, C12, scratch); - scratch = screened_rates(k_He4_C13_to_n_O16_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_C13_He4_to_n_O16_reaclib)*Y(He4)*state.rho; jac.set(O16, C13, scratch); jac.set(O16, C14, 0.0); - scratch = screened_rates(k_He4_N13_to_p_O16_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_N13_He4_to_p_O16_reaclib)*Y(He4)*state.rho; jac.set(O16, N13, scratch); jac.set(O16, N14, 0.0); - scratch = screened_rates(k_p_N15_to_O16_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_N15_p_to_O16_reaclib)*Y(H1)*state.rho; jac.set(O16, N15, scratch); jac.set(O16, O14, 0.0); - scratch = screened_rates(k_n_O15_to_O16_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_O15_n_to_O16_reaclib)*Y(N)*state.rho; jac.set(O16, O15, scratch); - scratch = -screened_rates(k_C12_O16_to_He4_Mg24_reaclib)*Y(C12)*state.rho - screened_rates(k_C12_O16_to_p_Al27_reaclib)*Y(C12)*state.rho - screened_rates(k_He4_O16_to_Ne20_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_O16_to_n_Ne19_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_O16_to_p_F19_reaclib)*Y(He4)*state.rho - 2.0*screened_rates(k_O16_O16_to_He4_Si28_reaclib)*Y(O16)*state.rho - 2.0*screened_rates(k_O16_O16_to_p_P31_reaclib)*Y(O16)*state.rho - screened_rates(k_O16_to_He4_C12_reaclib) - screened_rates(k_O16_to_n_O15_reaclib) - screened_rates(k_O16_to_p_N15_reaclib) - screened_rates(k_n_O16_to_He4_C13_reaclib)*Y(N)*state.rho - screened_rates(k_n_O16_to_O17_reaclib)*Y(N)*state.rho - screened_rates(k_p_O16_to_F17_reaclib)*Y(H1)*state.rho - screened_rates(k_p_O16_to_He4_N13_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_O16_C12_to_He4_Mg24_reaclib)*Y(C12)*state.rho - screened_rates(k_O16_C12_to_p_Al27_reaclib)*Y(C12)*state.rho - screened_rates(k_O16_He4_to_Ne20_reaclib)*Y(He4)*state.rho - screened_rates(k_O16_He4_to_n_Ne19_derived)*Y(He4)*state.rho - screened_rates(k_O16_He4_to_p_F19_derived)*Y(He4)*state.rho - 2.0*screened_rates(k_O16_O16_to_He4_Si28_reaclib)*Y(O16)*state.rho - 2.0*screened_rates(k_O16_O16_to_p_P31_reaclib)*Y(O16)*state.rho - screened_rates(k_O16_n_to_He4_C13_derived)*Y(N)*state.rho - screened_rates(k_O16_n_to_O17_reaclib)*Y(N)*state.rho - screened_rates(k_O16_p_to_F17_reaclib)*Y(H1)*state.rho - screened_rates(k_O16_p_to_He4_N13_derived)*Y(H1)*state.rho - screened_rates(k_O16_to_He4_C12_derived) - screened_rates(k_O16_to_n_O15_derived) - screened_rates(k_O16_to_p_N15_derived); jac.set(O16, O16, scratch); - scratch = screened_rates(k_O17_to_n_O16_reaclib); + scratch = screened_rates(k_O17_to_n_O16_derived); jac.set(O16, O17, scratch); jac.set(O16, O18, 0.0); - scratch = screened_rates(k_F17_to_p_O16_reaclib); + scratch = screened_rates(k_F17_to_p_O16_derived); jac.set(O16, F17, scratch); jac.set(O16, F18, 0.0); - scratch = screened_rates(k_p_F19_to_He4_O16_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_F19_p_to_He4_O16_reaclib)*Y(H1)*state.rho; jac.set(O16, F19, scratch); jac.set(O16, Ne18, 0.0); - scratch = screened_rates(k_n_Ne19_to_He4_O16_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ne19_n_to_He4_O16_reaclib)*Y(N)*state.rho; jac.set(O16, Ne19, scratch); - scratch = screened_rates(k_Ne20_to_He4_O16_reaclib); + scratch = screened_rates(k_Ne20_to_He4_O16_derived); jac.set(O16, Ne20, scratch); jac.set(O16, Ne21, 0.0); @@ -16294,7 +14103,7 @@ void jac_nuc(const burn_t& state, jac.set(O16, Mg23, 0.0); - scratch = screened_rates(k_He4_Mg24_to_C12_O16_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mg24_He4_to_C12_O16_derived)*Y(He4)*state.rho; jac.set(O16, Mg24, scratch); jac.set(O16, Mg25, 0.0); @@ -16305,10 +14114,10 @@ void jac_nuc(const burn_t& state, jac.set(O16, Al26, 0.0); - scratch = screened_rates(k_p_Al27_to_C12_O16_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Al27_p_to_C12_O16_derived)*Y(H1)*state.rho; jac.set(O16, Al27, scratch); - scratch = 2.0*screened_rates(k_He4_Si28_to_O16_O16_reaclib)*Y(He4)*state.rho; + scratch = 2.0*screened_rates(k_Si28_He4_to_O16_O16_derived)*Y(He4)*state.rho; jac.set(O16, Si28, scratch); jac.set(O16, Si29, 0.0); @@ -16323,7 +14132,7 @@ void jac_nuc(const burn_t& state, jac.set(O16, P30, 0.0); - scratch = 2.0*screened_rates(k_p_P31_to_O16_O16_reaclib)*Y(H1)*state.rho; + scratch = 2.0*screened_rates(k_P31_p_to_O16_O16_derived)*Y(H1)*state.rho; jac.set(O16, P31, scratch); jac.set(O16, P32, 0.0); @@ -16548,17 +14357,17 @@ void jac_nuc(const burn_t& state, jac.set(O16, Ge64, 0.0); - scratch = screened_rates(k_n_F17_to_p_O17_reaclib)*Y(F17)*state.rho + screened_rates(k_n_Ne20_to_He4_O17_reaclib)*Y(Ne20)*state.rho + screened_rates(k_n_O16_to_O17_reaclib)*Y(O16)*state.rho - screened_rates(k_n_O17_to_He4_C14_reaclib)*Y(O17)*state.rho - screened_rates(k_n_O17_to_O18_reaclib)*Y(O17)*state.rho; + scratch = screened_rates(k_F17_n_to_p_O17_reaclib)*Y(F17)*state.rho + screened_rates(k_Ne20_n_to_He4_O17_derived)*Y(Ne20)*state.rho + screened_rates(k_O16_n_to_O17_reaclib)*Y(O16)*state.rho - screened_rates(k_O17_n_to_He4_C14_reaclib)*Y(O17)*state.rho - screened_rates(k_O17_n_to_O18_reaclib)*Y(O17)*state.rho; jac.set(O17, N, scratch); - scratch = -screened_rates(k_p_O17_to_F18_reaclib)*Y(O17)*state.rho - screened_rates(k_p_O17_to_He4_N14_reaclib)*Y(O17)*state.rho - screened_rates(k_p_O17_to_n_F17_reaclib)*Y(O17)*state.rho; + scratch = -screened_rates(k_O17_p_to_F18_reaclib)*Y(O17)*state.rho - screened_rates(k_O17_p_to_He4_N14_reaclib)*Y(O17)*state.rho - screened_rates(k_O17_p_to_n_F17_derived)*Y(O17)*state.rho; jac.set(O17, H1, scratch); jac.set(O17, H2, 0.0); jac.set(O17, He3, 0.0); - scratch = screened_rates(k_He4_C14_to_n_O17_reaclib)*Y(C14)*state.rho + screened_rates(k_He4_N14_to_p_O17_reaclib)*Y(N14)*state.rho - screened_rates(k_He4_O17_to_Ne21_reaclib)*Y(O17)*state.rho - screened_rates(k_He4_O17_to_n_Ne20_reaclib)*Y(O17)*state.rho; + scratch = screened_rates(k_C14_He4_to_n_O17_derived)*Y(C14)*state.rho + screened_rates(k_N14_He4_to_p_O17_derived)*Y(N14)*state.rho - screened_rates(k_O17_He4_to_Ne21_reaclib)*Y(O17)*state.rho - screened_rates(k_O17_He4_to_n_Ne20_reaclib)*Y(O17)*state.rho; jac.set(O17, He4, scratch); jac.set(O17, Li6, 0.0); @@ -16579,12 +14388,12 @@ void jac_nuc(const burn_t& state, jac.set(O17, C13, 0.0); - scratch = screened_rates(k_He4_C14_to_n_O17_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_C14_He4_to_n_O17_derived)*Y(He4)*state.rho; jac.set(O17, C14, scratch); jac.set(O17, N13, 0.0); - scratch = screened_rates(k_He4_N14_to_p_O17_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_N14_He4_to_p_O17_derived)*Y(He4)*state.rho; jac.set(O17, N14, scratch); jac.set(O17, N15, 0.0); @@ -16593,19 +14402,19 @@ void jac_nuc(const burn_t& state, jac.set(O17, O15, 0.0); - scratch = screened_rates(k_n_O16_to_O17_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_O16_n_to_O17_reaclib)*Y(N)*state.rho; jac.set(O17, O16, scratch); - scratch = -screened_rates(k_He4_O17_to_Ne21_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_O17_to_n_Ne20_reaclib)*Y(He4)*state.rho - screened_rates(k_O17_to_n_O16_reaclib) - screened_rates(k_n_O17_to_He4_C14_reaclib)*Y(N)*state.rho - screened_rates(k_n_O17_to_O18_reaclib)*Y(N)*state.rho - screened_rates(k_p_O17_to_F18_reaclib)*Y(H1)*state.rho - screened_rates(k_p_O17_to_He4_N14_reaclib)*Y(H1)*state.rho - screened_rates(k_p_O17_to_n_F17_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_O17_He4_to_Ne21_reaclib)*Y(He4)*state.rho - screened_rates(k_O17_He4_to_n_Ne20_reaclib)*Y(He4)*state.rho - screened_rates(k_O17_n_to_He4_C14_reaclib)*Y(N)*state.rho - screened_rates(k_O17_n_to_O18_reaclib)*Y(N)*state.rho - screened_rates(k_O17_p_to_F18_reaclib)*Y(H1)*state.rho - screened_rates(k_O17_p_to_He4_N14_reaclib)*Y(H1)*state.rho - screened_rates(k_O17_p_to_n_F17_derived)*Y(H1)*state.rho - screened_rates(k_O17_to_n_O16_derived); jac.set(O17, O17, scratch); - scratch = screened_rates(k_O18_to_n_O17_reaclib); + scratch = screened_rates(k_O18_to_n_O17_derived); jac.set(O17, O18, scratch); - scratch = screened_rates(k_F17_to_O17_reaclib) + screened_rates(k_n_F17_to_p_O17_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_F17_n_to_p_O17_reaclib)*Y(N)*state.rho + screened_rates(k_F17_to_O17_beta_pos_reaclib); jac.set(O17, F17, scratch); - scratch = screened_rates(k_F18_to_p_O17_reaclib); + scratch = screened_rates(k_F18_to_p_O17_derived); jac.set(O17, F18, scratch); jac.set(O17, F19, 0.0); @@ -16614,10 +14423,10 @@ void jac_nuc(const burn_t& state, jac.set(O17, Ne19, 0.0); - scratch = screened_rates(k_n_Ne20_to_He4_O17_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ne20_n_to_He4_O17_derived)*Y(N)*state.rho; jac.set(O17, Ne20, scratch); - scratch = screened_rates(k_Ne21_to_He4_O17_reaclib); + scratch = screened_rates(k_Ne21_to_He4_O17_derived); jac.set(O17, Ne21, scratch); jac.set(O17, Ne22, 0.0); @@ -16880,17 +14689,17 @@ void jac_nuc(const burn_t& state, jac.set(O17, Ge64, 0.0); - scratch = screened_rates(k_n_F18_to_p_O18_reaclib)*Y(F18)*state.rho + screened_rates(k_n_Ne21_to_He4_O18_reaclib)*Y(Ne21)*state.rho + screened_rates(k_n_O17_to_O18_reaclib)*Y(O17)*state.rho; + scratch = screened_rates(k_F18_n_to_p_O18_reaclib)*Y(F18)*state.rho + screened_rates(k_Ne21_n_to_He4_O18_derived)*Y(Ne21)*state.rho + screened_rates(k_O17_n_to_O18_reaclib)*Y(O17)*state.rho; jac.set(O18, N, scratch); - scratch = -screened_rates(k_p_O18_to_F19_reaclib)*Y(O18)*state.rho - screened_rates(k_p_O18_to_He4_N15_reaclib)*Y(O18)*state.rho - screened_rates(k_p_O18_to_n_F18_reaclib)*Y(O18)*state.rho; + scratch = -screened_rates(k_O18_p_to_F19_reaclib)*Y(O18)*state.rho - screened_rates(k_O18_p_to_He4_N15_reaclib)*Y(O18)*state.rho - screened_rates(k_O18_p_to_n_F18_derived)*Y(O18)*state.rho; jac.set(O18, H1, scratch); jac.set(O18, H2, 0.0); jac.set(O18, He3, 0.0); - scratch = screened_rates(k_He4_C14_to_O18_reaclib)*Y(C14)*state.rho + screened_rates(k_He4_N15_to_p_O18_reaclib)*Y(N15)*state.rho - screened_rates(k_He4_O18_to_Ne22_reaclib)*Y(O18)*state.rho - screened_rates(k_He4_O18_to_n_Ne21_reaclib)*Y(O18)*state.rho; + scratch = screened_rates(k_C14_He4_to_O18_reaclib)*Y(C14)*state.rho + screened_rates(k_N15_He4_to_p_O18_derived)*Y(N15)*state.rho - screened_rates(k_O18_He4_to_Ne22_reaclib)*Y(O18)*state.rho - screened_rates(k_O18_He4_to_n_Ne21_reaclib)*Y(O18)*state.rho; jac.set(O18, He4, scratch); jac.set(O18, Li6, 0.0); @@ -16911,14 +14720,14 @@ void jac_nuc(const burn_t& state, jac.set(O18, C13, 0.0); - scratch = screened_rates(k_He4_C14_to_O18_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_C14_He4_to_O18_reaclib)*Y(He4)*state.rho; jac.set(O18, C14, scratch); jac.set(O18, N13, 0.0); jac.set(O18, N14, 0.0); - scratch = screened_rates(k_He4_N15_to_p_O18_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_N15_He4_to_p_O18_derived)*Y(He4)*state.rho; jac.set(O18, N15, scratch); jac.set(O18, O14, 0.0); @@ -16927,18 +14736,18 @@ void jac_nuc(const burn_t& state, jac.set(O18, O16, 0.0); - scratch = screened_rates(k_n_O17_to_O18_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_O17_n_to_O18_reaclib)*Y(N)*state.rho; jac.set(O18, O17, scratch); - scratch = -screened_rates(k_He4_O18_to_Ne22_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_O18_to_n_Ne21_reaclib)*Y(He4)*state.rho - screened_rates(k_O18_to_He4_C14_reaclib) - screened_rates(k_O18_to_n_O17_reaclib) - screened_rates(k_p_O18_to_F19_reaclib)*Y(H1)*state.rho - screened_rates(k_p_O18_to_He4_N15_reaclib)*Y(H1)*state.rho - screened_rates(k_p_O18_to_n_F18_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_O18_He4_to_Ne22_reaclib)*Y(He4)*state.rho - screened_rates(k_O18_He4_to_n_Ne21_reaclib)*Y(He4)*state.rho - screened_rates(k_O18_p_to_F19_reaclib)*Y(H1)*state.rho - screened_rates(k_O18_p_to_He4_N15_reaclib)*Y(H1)*state.rho - screened_rates(k_O18_p_to_n_F18_derived)*Y(H1)*state.rho - screened_rates(k_O18_to_He4_C14_derived) - screened_rates(k_O18_to_n_O17_derived); jac.set(O18, O18, scratch); jac.set(O18, F17, 0.0); - scratch = screened_rates(k_F18_to_O18_reaclib) + screened_rates(k_n_F18_to_p_O18_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_F18_n_to_p_O18_reaclib)*Y(N)*state.rho + screened_rates(k_F18_to_O18_beta_pos_reaclib); jac.set(O18, F18, scratch); - scratch = screened_rates(k_F19_to_p_O18_reaclib); + scratch = screened_rates(k_F19_to_p_O18_derived); jac.set(O18, F19, scratch); jac.set(O18, Ne18, 0.0); @@ -16947,10 +14756,10 @@ void jac_nuc(const burn_t& state, jac.set(O18, Ne20, 0.0); - scratch = screened_rates(k_n_Ne21_to_He4_O18_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ne21_n_to_He4_O18_derived)*Y(N)*state.rho; jac.set(O18, Ne21, scratch); - scratch = screened_rates(k_Ne22_to_He4_O18_reaclib); + scratch = screened_rates(k_Ne22_to_He4_O18_derived); jac.set(O18, Ne22, scratch); jac.set(O18, Na21, 0.0); @@ -17211,17 +15020,17 @@ void jac_nuc(const burn_t& state, jac.set(O18, Ge64, 0.0); - scratch = -screened_rates(k_n_F17_to_F18_reaclib)*Y(F17)*state.rho - screened_rates(k_n_F17_to_He4_N14_reaclib)*Y(F17)*state.rho - screened_rates(k_n_F17_to_p_O17_reaclib)*Y(F17)*state.rho; + scratch = -screened_rates(k_F17_n_to_F18_reaclib)*Y(F17)*state.rho - screened_rates(k_F17_n_to_He4_N14_derived)*Y(F17)*state.rho - screened_rates(k_F17_n_to_p_O17_reaclib)*Y(F17)*state.rho; jac.set(F17, N, scratch); - scratch = -screened_rates(k_p_F17_to_He4_O14_reaclib)*Y(F17)*state.rho - screened_rates(k_p_F17_to_Ne18_reaclib)*Y(F17)*state.rho + screened_rates(k_p_Ne20_to_He4_F17_reaclib)*Y(Ne20)*state.rho + screened_rates(k_p_O16_to_F17_reaclib)*Y(O16)*state.rho + screened_rates(k_p_O17_to_n_F17_reaclib)*Y(O17)*state.rho; + scratch = -screened_rates(k_F17_p_to_He4_O14_derived)*Y(F17)*state.rho - screened_rates(k_F17_p_to_Ne18_reaclib)*Y(F17)*state.rho + screened_rates(k_Ne20_p_to_He4_F17_reaclib)*Y(Ne20)*state.rho + screened_rates(k_O16_p_to_F17_reaclib)*Y(O16)*state.rho + screened_rates(k_O17_p_to_n_F17_derived)*Y(O17)*state.rho; jac.set(F17, H1, scratch); jac.set(F17, H2, 0.0); jac.set(F17, He3, 0.0); - scratch = -screened_rates(k_He4_F17_to_Na21_reaclib)*Y(F17)*state.rho - screened_rates(k_He4_F17_to_p_Ne20_reaclib)*Y(F17)*state.rho + screened_rates(k_He4_N14_to_n_F17_reaclib)*Y(N14)*state.rho + screened_rates(k_He4_O14_to_p_F17_reaclib)*Y(O14)*state.rho; + scratch = -screened_rates(k_F17_He4_to_Na21_reaclib)*Y(F17)*state.rho - screened_rates(k_F17_He4_to_p_Ne20_derived)*Y(F17)*state.rho + screened_rates(k_N14_He4_to_n_F17_reaclib)*Y(N14)*state.rho + screened_rates(k_O14_He4_to_p_F17_reaclib)*Y(O14)*state.rho; jac.set(F17, He4, scratch); jac.set(F17, Li6, 0.0); @@ -17246,45 +15055,45 @@ void jac_nuc(const burn_t& state, jac.set(F17, N13, 0.0); - scratch = screened_rates(k_He4_N14_to_n_F17_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_N14_He4_to_n_F17_reaclib)*Y(He4)*state.rho; jac.set(F17, N14, scratch); jac.set(F17, N15, 0.0); - scratch = screened_rates(k_He4_O14_to_p_F17_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_O14_He4_to_p_F17_reaclib)*Y(He4)*state.rho; jac.set(F17, O14, scratch); jac.set(F17, O15, 0.0); - scratch = screened_rates(k_p_O16_to_F17_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_O16_p_to_F17_reaclib)*Y(H1)*state.rho; jac.set(F17, O16, scratch); - scratch = screened_rates(k_p_O17_to_n_F17_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_O17_p_to_n_F17_derived)*Y(H1)*state.rho; jac.set(F17, O17, scratch); jac.set(F17, O18, 0.0); - scratch = -screened_rates(k_F17_to_O17_reaclib) - screened_rates(k_F17_to_p_O16_reaclib) - screened_rates(k_He4_F17_to_Na21_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_F17_to_p_Ne20_reaclib)*Y(He4)*state.rho - screened_rates(k_n_F17_to_F18_reaclib)*Y(N)*state.rho - screened_rates(k_n_F17_to_He4_N14_reaclib)*Y(N)*state.rho - screened_rates(k_n_F17_to_p_O17_reaclib)*Y(N)*state.rho - screened_rates(k_p_F17_to_He4_O14_reaclib)*Y(H1)*state.rho - screened_rates(k_p_F17_to_Ne18_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_F17_He4_to_Na21_reaclib)*Y(He4)*state.rho - screened_rates(k_F17_He4_to_p_Ne20_derived)*Y(He4)*state.rho - screened_rates(k_F17_n_to_F18_reaclib)*Y(N)*state.rho - screened_rates(k_F17_n_to_He4_N14_derived)*Y(N)*state.rho - screened_rates(k_F17_n_to_p_O17_reaclib)*Y(N)*state.rho - screened_rates(k_F17_p_to_He4_O14_derived)*Y(H1)*state.rho - screened_rates(k_F17_p_to_Ne18_reaclib)*Y(H1)*state.rho - screened_rates(k_F17_to_O17_beta_pos_reaclib) - screened_rates(k_F17_to_p_O16_derived); jac.set(F17, F17, scratch); - scratch = screened_rates(k_F18_to_n_F17_reaclib); + scratch = screened_rates(k_F18_to_n_F17_derived); jac.set(F17, F18, scratch); jac.set(F17, F19, 0.0); - scratch = screened_rates(k_Ne18_to_p_F17_reaclib); + scratch = screened_rates(k_Ne18_to_p_F17_derived); jac.set(F17, Ne18, scratch); jac.set(F17, Ne19, 0.0); - scratch = screened_rates(k_p_Ne20_to_He4_F17_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ne20_p_to_He4_F17_reaclib)*Y(H1)*state.rho; jac.set(F17, Ne20, scratch); jac.set(F17, Ne21, 0.0); jac.set(F17, Ne22, 0.0); - scratch = screened_rates(k_Na21_to_He4_F17_reaclib); + scratch = screened_rates(k_Na21_to_He4_F17_derived); jac.set(F17, Na21, scratch); jac.set(F17, Na22, 0.0); @@ -17543,17 +15352,17 @@ void jac_nuc(const burn_t& state, jac.set(F17, Ge64, 0.0); - scratch = screened_rates(k_n_F17_to_F18_reaclib)*Y(F17)*state.rho - screened_rates(k_n_F18_to_F19_reaclib)*Y(F18)*state.rho - screened_rates(k_n_F18_to_He4_N15_reaclib)*Y(F18)*state.rho - screened_rates(k_n_F18_to_p_O18_reaclib)*Y(F18)*state.rho + screened_rates(k_n_Na21_to_He4_F18_reaclib)*Y(Na21)*state.rho + screened_rates(k_n_Ne18_to_p_F18_reaclib)*Y(Ne18)*state.rho; + scratch = screened_rates(k_F17_n_to_F18_reaclib)*Y(F17)*state.rho - screened_rates(k_F18_n_to_F19_reaclib)*Y(F18)*state.rho - screened_rates(k_F18_n_to_He4_N15_reaclib)*Y(F18)*state.rho - screened_rates(k_F18_n_to_p_O18_reaclib)*Y(F18)*state.rho + screened_rates(k_Na21_n_to_He4_F18_reaclib)*Y(Na21)*state.rho + screened_rates(k_Ne18_n_to_p_F18_reaclib)*Y(Ne18)*state.rho; jac.set(F18, N, scratch); - scratch = -screened_rates(k_p_F18_to_He4_O15_reaclib)*Y(F18)*state.rho - screened_rates(k_p_F18_to_Ne19_reaclib)*Y(F18)*state.rho - screened_rates(k_p_F18_to_n_Ne18_reaclib)*Y(F18)*state.rho + screened_rates(k_p_Ne21_to_He4_F18_reaclib)*Y(Ne21)*state.rho + screened_rates(k_p_O17_to_F18_reaclib)*Y(O17)*state.rho + screened_rates(k_p_O18_to_n_F18_reaclib)*Y(O18)*state.rho; + scratch = -screened_rates(k_F18_p_to_He4_O15_reaclib)*Y(F18)*state.rho - screened_rates(k_F18_p_to_Ne19_reaclib)*Y(F18)*state.rho - screened_rates(k_F18_p_to_n_Ne18_derived)*Y(F18)*state.rho + screened_rates(k_Ne21_p_to_He4_F18_derived)*Y(Ne21)*state.rho + screened_rates(k_O17_p_to_F18_reaclib)*Y(O17)*state.rho + screened_rates(k_O18_p_to_n_F18_derived)*Y(O18)*state.rho; jac.set(F18, H1, scratch); jac.set(F18, H2, 0.0); jac.set(F18, He3, 0.0); - scratch = -screened_rates(k_He4_F18_to_Na22_reaclib)*Y(F18)*state.rho - screened_rates(k_He4_F18_to_n_Na21_reaclib)*Y(F18)*state.rho - screened_rates(k_He4_F18_to_p_Ne21_reaclib)*Y(F18)*state.rho + screened_rates(k_He4_N14_to_F18_reaclib)*Y(N14)*state.rho + screened_rates(k_He4_N15_to_n_F18_reaclib)*Y(N15)*state.rho + screened_rates(k_He4_O15_to_p_F18_reaclib)*Y(O15)*state.rho; + scratch = -screened_rates(k_F18_He4_to_Na22_reaclib)*Y(F18)*state.rho - screened_rates(k_F18_He4_to_n_Na21_derived)*Y(F18)*state.rho - screened_rates(k_F18_He4_to_p_Ne21_reaclib)*Y(F18)*state.rho + screened_rates(k_N14_He4_to_F18_reaclib)*Y(N14)*state.rho + screened_rates(k_N15_He4_to_n_F18_derived)*Y(N15)*state.rho + screened_rates(k_O15_He4_to_p_F18_derived)*Y(O15)*state.rho; jac.set(F18, He4, scratch); jac.set(F18, Li6, 0.0); @@ -17578,51 +15387,51 @@ void jac_nuc(const burn_t& state, jac.set(F18, N13, 0.0); - scratch = screened_rates(k_He4_N14_to_F18_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_N14_He4_to_F18_reaclib)*Y(He4)*state.rho; jac.set(F18, N14, scratch); - scratch = screened_rates(k_He4_N15_to_n_F18_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_N15_He4_to_n_F18_derived)*Y(He4)*state.rho; jac.set(F18, N15, scratch); jac.set(F18, O14, 0.0); - scratch = screened_rates(k_He4_O15_to_p_F18_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_O15_He4_to_p_F18_derived)*Y(He4)*state.rho; jac.set(F18, O15, scratch); jac.set(F18, O16, 0.0); - scratch = screened_rates(k_p_O17_to_F18_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_O17_p_to_F18_reaclib)*Y(H1)*state.rho; jac.set(F18, O17, scratch); - scratch = screened_rates(k_p_O18_to_n_F18_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_O18_p_to_n_F18_derived)*Y(H1)*state.rho; jac.set(F18, O18, scratch); - scratch = screened_rates(k_n_F17_to_F18_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_F17_n_to_F18_reaclib)*Y(N)*state.rho; jac.set(F18, F17, scratch); - scratch = -screened_rates(k_F18_to_He4_N14_reaclib) - screened_rates(k_F18_to_O18_reaclib) - screened_rates(k_F18_to_n_F17_reaclib) - screened_rates(k_F18_to_p_O17_reaclib) - screened_rates(k_He4_F18_to_Na22_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_F18_to_n_Na21_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_F18_to_p_Ne21_reaclib)*Y(He4)*state.rho - screened_rates(k_n_F18_to_F19_reaclib)*Y(N)*state.rho - screened_rates(k_n_F18_to_He4_N15_reaclib)*Y(N)*state.rho - screened_rates(k_n_F18_to_p_O18_reaclib)*Y(N)*state.rho - screened_rates(k_p_F18_to_He4_O15_reaclib)*Y(H1)*state.rho - screened_rates(k_p_F18_to_Ne19_reaclib)*Y(H1)*state.rho - screened_rates(k_p_F18_to_n_Ne18_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_F18_He4_to_Na22_reaclib)*Y(He4)*state.rho - screened_rates(k_F18_He4_to_n_Na21_derived)*Y(He4)*state.rho - screened_rates(k_F18_He4_to_p_Ne21_reaclib)*Y(He4)*state.rho - screened_rates(k_F18_n_to_F19_reaclib)*Y(N)*state.rho - screened_rates(k_F18_n_to_He4_N15_reaclib)*Y(N)*state.rho - screened_rates(k_F18_n_to_p_O18_reaclib)*Y(N)*state.rho - screened_rates(k_F18_p_to_He4_O15_reaclib)*Y(H1)*state.rho - screened_rates(k_F18_p_to_Ne19_reaclib)*Y(H1)*state.rho - screened_rates(k_F18_p_to_n_Ne18_derived)*Y(H1)*state.rho - screened_rates(k_F18_to_He4_N14_derived) - screened_rates(k_F18_to_O18_beta_pos_reaclib) - screened_rates(k_F18_to_n_F17_derived) - screened_rates(k_F18_to_p_O17_derived); jac.set(F18, F18, scratch); - scratch = screened_rates(k_F19_to_n_F18_reaclib); + scratch = screened_rates(k_F19_to_n_F18_derived); jac.set(F18, F19, scratch); - scratch = screened_rates(k_Ne18_to_F18_reaclib) + screened_rates(k_n_Ne18_to_p_F18_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ne18_n_to_p_F18_reaclib)*Y(N)*state.rho + screened_rates(k_Ne18_to_F18_beta_pos_reaclib); jac.set(F18, Ne18, scratch); - scratch = screened_rates(k_Ne19_to_p_F18_reaclib); + scratch = screened_rates(k_Ne19_to_p_F18_derived); jac.set(F18, Ne19, scratch); jac.set(F18, Ne20, 0.0); - scratch = screened_rates(k_p_Ne21_to_He4_F18_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ne21_p_to_He4_F18_derived)*Y(H1)*state.rho; jac.set(F18, Ne21, scratch); jac.set(F18, Ne22, 0.0); - scratch = screened_rates(k_n_Na21_to_He4_F18_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Na21_n_to_He4_F18_reaclib)*Y(N)*state.rho; jac.set(F18, Na21, scratch); - scratch = screened_rates(k_Na22_to_He4_F18_reaclib); + scratch = screened_rates(k_Na22_to_He4_F18_derived); jac.set(F18, Na22, scratch); jac.set(F18, Na23, 0.0); @@ -17879,17 +15688,17 @@ void jac_nuc(const burn_t& state, jac.set(F18, Ge64, 0.0); - scratch = screened_rates(k_n_F18_to_F19_reaclib)*Y(F18)*state.rho + screened_rates(k_n_Na22_to_He4_F19_reaclib)*Y(Na22)*state.rho + screened_rates(k_n_Ne19_to_p_F19_reaclib)*Y(Ne19)*state.rho; + scratch = screened_rates(k_F18_n_to_F19_reaclib)*Y(F18)*state.rho + screened_rates(k_Na22_n_to_He4_F19_reaclib)*Y(Na22)*state.rho + screened_rates(k_Ne19_n_to_p_F19_derived)*Y(Ne19)*state.rho; jac.set(F19, N, scratch); - scratch = -screened_rates(k_p_F19_to_He4_O16_reaclib)*Y(F19)*state.rho - screened_rates(k_p_F19_to_Ne20_reaclib)*Y(F19)*state.rho - screened_rates(k_p_F19_to_n_Ne19_reaclib)*Y(F19)*state.rho + screened_rates(k_p_Ne22_to_He4_F19_reaclib)*Y(Ne22)*state.rho + screened_rates(k_p_O18_to_F19_reaclib)*Y(O18)*state.rho; + scratch = -screened_rates(k_F19_p_to_He4_O16_reaclib)*Y(F19)*state.rho - screened_rates(k_F19_p_to_Ne20_reaclib)*Y(F19)*state.rho - screened_rates(k_F19_p_to_n_Ne19_reaclib)*Y(F19)*state.rho + screened_rates(k_Ne22_p_to_He4_F19_derived)*Y(Ne22)*state.rho + screened_rates(k_O18_p_to_F19_reaclib)*Y(O18)*state.rho; jac.set(F19, H1, scratch); jac.set(F19, H2, 0.0); jac.set(F19, He3, 0.0); - scratch = -screened_rates(k_He4_F19_to_Na23_reaclib)*Y(F19)*state.rho - screened_rates(k_He4_F19_to_n_Na22_reaclib)*Y(F19)*state.rho - screened_rates(k_He4_F19_to_p_Ne22_reaclib)*Y(F19)*state.rho + screened_rates(k_He4_N15_to_F19_reaclib)*Y(N15)*state.rho + screened_rates(k_He4_O16_to_p_F19_reaclib)*Y(O16)*state.rho; + scratch = -screened_rates(k_F19_He4_to_Na23_reaclib)*Y(F19)*state.rho - screened_rates(k_F19_He4_to_n_Na22_derived)*Y(F19)*state.rho - screened_rates(k_F19_He4_to_p_Ne22_reaclib)*Y(F19)*state.rho + screened_rates(k_N15_He4_to_F19_reaclib)*Y(N15)*state.rho + screened_rates(k_O16_He4_to_p_F19_derived)*Y(O16)*state.rho; jac.set(F19, He4, scratch); jac.set(F19, Li6, 0.0); @@ -17916,48 +15725,48 @@ void jac_nuc(const burn_t& state, jac.set(F19, N14, 0.0); - scratch = screened_rates(k_He4_N15_to_F19_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_N15_He4_to_F19_reaclib)*Y(He4)*state.rho; jac.set(F19, N15, scratch); jac.set(F19, O14, 0.0); jac.set(F19, O15, 0.0); - scratch = screened_rates(k_He4_O16_to_p_F19_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_O16_He4_to_p_F19_derived)*Y(He4)*state.rho; jac.set(F19, O16, scratch); jac.set(F19, O17, 0.0); - scratch = screened_rates(k_p_O18_to_F19_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_O18_p_to_F19_reaclib)*Y(H1)*state.rho; jac.set(F19, O18, scratch); jac.set(F19, F17, 0.0); - scratch = screened_rates(k_n_F18_to_F19_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_F18_n_to_F19_reaclib)*Y(N)*state.rho; jac.set(F19, F18, scratch); - scratch = -screened_rates(k_F19_to_He4_N15_reaclib) - screened_rates(k_F19_to_n_F18_reaclib) - screened_rates(k_F19_to_p_O18_reaclib) - screened_rates(k_He4_F19_to_Na23_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_F19_to_n_Na22_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_F19_to_p_Ne22_reaclib)*Y(He4)*state.rho - screened_rates(k_p_F19_to_He4_O16_reaclib)*Y(H1)*state.rho - screened_rates(k_p_F19_to_Ne20_reaclib)*Y(H1)*state.rho - screened_rates(k_p_F19_to_n_Ne19_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_F19_He4_to_Na23_reaclib)*Y(He4)*state.rho - screened_rates(k_F19_He4_to_n_Na22_derived)*Y(He4)*state.rho - screened_rates(k_F19_He4_to_p_Ne22_reaclib)*Y(He4)*state.rho - screened_rates(k_F19_p_to_He4_O16_reaclib)*Y(H1)*state.rho - screened_rates(k_F19_p_to_Ne20_reaclib)*Y(H1)*state.rho - screened_rates(k_F19_p_to_n_Ne19_reaclib)*Y(H1)*state.rho - screened_rates(k_F19_to_He4_N15_derived) - screened_rates(k_F19_to_n_F18_derived) - screened_rates(k_F19_to_p_O18_derived); jac.set(F19, F19, scratch); jac.set(F19, Ne18, 0.0); - scratch = screened_rates(k_Ne19_to_F19_reaclib) + screened_rates(k_n_Ne19_to_p_F19_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ne19_n_to_p_F19_derived)*Y(N)*state.rho + screened_rates(k_Ne19_to_F19_beta_pos_reaclib); jac.set(F19, Ne19, scratch); - scratch = screened_rates(k_Ne20_to_p_F19_reaclib); + scratch = screened_rates(k_Ne20_to_p_F19_derived); jac.set(F19, Ne20, scratch); jac.set(F19, Ne21, 0.0); - scratch = screened_rates(k_p_Ne22_to_He4_F19_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ne22_p_to_He4_F19_derived)*Y(H1)*state.rho; jac.set(F19, Ne22, scratch); jac.set(F19, Na21, 0.0); - scratch = screened_rates(k_n_Na22_to_He4_F19_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Na22_n_to_He4_F19_reaclib)*Y(N)*state.rho; jac.set(F19, Na22, scratch); - scratch = screened_rates(k_Na23_to_He4_F19_reaclib); + scratch = screened_rates(k_Na23_to_He4_F19_derived); jac.set(F19, Na23, scratch); jac.set(F19, Mg23, 0.0); @@ -18212,17 +16021,17 @@ void jac_nuc(const burn_t& state, jac.set(F19, Ge64, 0.0); - scratch = -screened_rates(k_n_Ne18_to_He4_O15_reaclib)*Y(Ne18)*state.rho - screened_rates(k_n_Ne18_to_Ne19_reaclib)*Y(Ne18)*state.rho - screened_rates(k_n_Ne18_to_p_F18_reaclib)*Y(Ne18)*state.rho; + scratch = -screened_rates(k_Ne18_n_to_He4_O15_reaclib)*Y(Ne18)*state.rho - screened_rates(k_Ne18_n_to_Ne19_reaclib)*Y(Ne18)*state.rho - screened_rates(k_Ne18_n_to_p_F18_reaclib)*Y(Ne18)*state.rho; jac.set(Ne18, N, scratch); - scratch = screened_rates(k_p_F17_to_Ne18_reaclib)*Y(F17)*state.rho + screened_rates(k_p_F18_to_n_Ne18_reaclib)*Y(F18)*state.rho + screened_rates(k_p_Na21_to_He4_Ne18_reaclib)*Y(Na21)*state.rho; + scratch = screened_rates(k_F17_p_to_Ne18_reaclib)*Y(F17)*state.rho + screened_rates(k_F18_p_to_n_Ne18_derived)*Y(F18)*state.rho + screened_rates(k_Na21_p_to_He4_Ne18_derived)*Y(Na21)*state.rho; jac.set(Ne18, H1, scratch); jac.set(Ne18, H2, 0.0); jac.set(Ne18, He3, 0.0); - scratch = -screened_rates(k_He4_Ne18_to_p_Na21_reaclib)*Y(Ne18)*state.rho + screened_rates(k_He4_O14_to_Ne18_reaclib)*Y(O14)*state.rho + screened_rates(k_He4_O15_to_n_Ne18_reaclib)*Y(O15)*state.rho; + scratch = -screened_rates(k_Ne18_He4_to_p_Na21_reaclib)*Y(Ne18)*state.rho + screened_rates(k_O14_He4_to_Ne18_reaclib)*Y(O14)*state.rho + screened_rates(k_O15_He4_to_n_Ne18_derived)*Y(O15)*state.rho; jac.set(Ne18, He4, scratch); jac.set(Ne18, Li6, 0.0); @@ -18251,10 +16060,10 @@ void jac_nuc(const burn_t& state, jac.set(Ne18, N15, 0.0); - scratch = screened_rates(k_He4_O14_to_Ne18_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_O14_He4_to_Ne18_reaclib)*Y(He4)*state.rho; jac.set(Ne18, O14, scratch); - scratch = screened_rates(k_He4_O15_to_n_Ne18_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_O15_He4_to_n_Ne18_derived)*Y(He4)*state.rho; jac.set(Ne18, O15, scratch); jac.set(Ne18, O16, 0.0); @@ -18263,18 +16072,18 @@ void jac_nuc(const burn_t& state, jac.set(Ne18, O18, 0.0); - scratch = screened_rates(k_p_F17_to_Ne18_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_F17_p_to_Ne18_reaclib)*Y(H1)*state.rho; jac.set(Ne18, F17, scratch); - scratch = screened_rates(k_p_F18_to_n_Ne18_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_F18_p_to_n_Ne18_derived)*Y(H1)*state.rho; jac.set(Ne18, F18, scratch); jac.set(Ne18, F19, 0.0); - scratch = -screened_rates(k_He4_Ne18_to_p_Na21_reaclib)*Y(He4)*state.rho - screened_rates(k_Ne18_to_F18_reaclib) - screened_rates(k_Ne18_to_He4_O14_reaclib) - screened_rates(k_Ne18_to_p_F17_reaclib) - screened_rates(k_n_Ne18_to_He4_O15_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ne18_to_Ne19_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ne18_to_p_F18_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Ne18_He4_to_p_Na21_reaclib)*Y(He4)*state.rho - screened_rates(k_Ne18_n_to_He4_O15_reaclib)*Y(N)*state.rho - screened_rates(k_Ne18_n_to_Ne19_reaclib)*Y(N)*state.rho - screened_rates(k_Ne18_n_to_p_F18_reaclib)*Y(N)*state.rho - screened_rates(k_Ne18_to_F18_beta_pos_reaclib) - screened_rates(k_Ne18_to_He4_O14_derived) - screened_rates(k_Ne18_to_p_F17_derived); jac.set(Ne18, Ne18, scratch); - scratch = screened_rates(k_Ne19_to_n_Ne18_reaclib); + scratch = screened_rates(k_Ne19_to_n_Ne18_derived); jac.set(Ne18, Ne19, scratch); jac.set(Ne18, Ne20, 0.0); @@ -18283,7 +16092,7 @@ void jac_nuc(const burn_t& state, jac.set(Ne18, Ne22, 0.0); - scratch = screened_rates(k_p_Na21_to_He4_Ne18_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Na21_p_to_He4_Ne18_derived)*Y(H1)*state.rho; jac.set(Ne18, Na21, scratch); jac.set(Ne18, Na22, 0.0); @@ -18542,17 +16351,17 @@ void jac_nuc(const burn_t& state, jac.set(Ne18, Ge64, 0.0); - scratch = screened_rates(k_n_Ne18_to_Ne19_reaclib)*Y(Ne18)*state.rho - screened_rates(k_n_Ne19_to_He4_O16_reaclib)*Y(Ne19)*state.rho - screened_rates(k_n_Ne19_to_Ne20_reaclib)*Y(Ne19)*state.rho - screened_rates(k_n_Ne19_to_p_F19_reaclib)*Y(Ne19)*state.rho; + scratch = screened_rates(k_Ne18_n_to_Ne19_reaclib)*Y(Ne18)*state.rho - screened_rates(k_Ne19_n_to_He4_O16_reaclib)*Y(Ne19)*state.rho - screened_rates(k_Ne19_n_to_Ne20_reaclib)*Y(Ne19)*state.rho - screened_rates(k_Ne19_n_to_p_F19_derived)*Y(Ne19)*state.rho; jac.set(Ne19, N, scratch); - scratch = screened_rates(k_p_F18_to_Ne19_reaclib)*Y(F18)*state.rho + screened_rates(k_p_F19_to_n_Ne19_reaclib)*Y(F19)*state.rho + screened_rates(k_p_Na22_to_He4_Ne19_reaclib)*Y(Na22)*state.rho; + scratch = screened_rates(k_F18_p_to_Ne19_reaclib)*Y(F18)*state.rho + screened_rates(k_F19_p_to_n_Ne19_reaclib)*Y(F19)*state.rho + screened_rates(k_Na22_p_to_He4_Ne19_derived)*Y(Na22)*state.rho; jac.set(Ne19, H1, scratch); jac.set(Ne19, H2, 0.0); jac.set(Ne19, He3, 0.0); - scratch = -screened_rates(k_He4_Ne19_to_Mg23_reaclib)*Y(Ne19)*state.rho - screened_rates(k_He4_Ne19_to_p_Na22_reaclib)*Y(Ne19)*state.rho + screened_rates(k_He4_O15_to_Ne19_reaclib)*Y(O15)*state.rho + screened_rates(k_He4_O16_to_n_Ne19_reaclib)*Y(O16)*state.rho; + scratch = -screened_rates(k_Ne19_He4_to_Mg23_reaclib)*Y(Ne19)*state.rho - screened_rates(k_Ne19_He4_to_p_Na22_reaclib)*Y(Ne19)*state.rho + screened_rates(k_O15_He4_to_Ne19_reaclib)*Y(O15)*state.rho + screened_rates(k_O16_He4_to_n_Ne19_derived)*Y(O16)*state.rho; jac.set(Ne19, He4, scratch); jac.set(Ne19, Li6, 0.0); @@ -18583,10 +16392,10 @@ void jac_nuc(const burn_t& state, jac.set(Ne19, O14, 0.0); - scratch = screened_rates(k_He4_O15_to_Ne19_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_O15_He4_to_Ne19_reaclib)*Y(He4)*state.rho; jac.set(Ne19, O15, scratch); - scratch = screened_rates(k_He4_O16_to_n_Ne19_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_O16_He4_to_n_Ne19_derived)*Y(He4)*state.rho; jac.set(Ne19, O16, scratch); jac.set(Ne19, O17, 0.0); @@ -18595,19 +16404,19 @@ void jac_nuc(const burn_t& state, jac.set(Ne19, F17, 0.0); - scratch = screened_rates(k_p_F18_to_Ne19_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_F18_p_to_Ne19_reaclib)*Y(H1)*state.rho; jac.set(Ne19, F18, scratch); - scratch = screened_rates(k_p_F19_to_n_Ne19_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_F19_p_to_n_Ne19_reaclib)*Y(H1)*state.rho; jac.set(Ne19, F19, scratch); - scratch = screened_rates(k_n_Ne18_to_Ne19_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ne18_n_to_Ne19_reaclib)*Y(N)*state.rho; jac.set(Ne19, Ne18, scratch); - scratch = -screened_rates(k_He4_Ne19_to_Mg23_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ne19_to_p_Na22_reaclib)*Y(He4)*state.rho - screened_rates(k_Ne19_to_F19_reaclib) - screened_rates(k_Ne19_to_He4_O15_reaclib) - screened_rates(k_Ne19_to_n_Ne18_reaclib) - screened_rates(k_Ne19_to_p_F18_reaclib) - screened_rates(k_n_Ne19_to_He4_O16_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ne19_to_Ne20_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ne19_to_p_F19_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Ne19_He4_to_Mg23_reaclib)*Y(He4)*state.rho - screened_rates(k_Ne19_He4_to_p_Na22_reaclib)*Y(He4)*state.rho - screened_rates(k_Ne19_n_to_He4_O16_reaclib)*Y(N)*state.rho - screened_rates(k_Ne19_n_to_Ne20_reaclib)*Y(N)*state.rho - screened_rates(k_Ne19_n_to_p_F19_derived)*Y(N)*state.rho - screened_rates(k_Ne19_to_F19_beta_pos_reaclib) - screened_rates(k_Ne19_to_He4_O15_derived) - screened_rates(k_Ne19_to_n_Ne18_derived) - screened_rates(k_Ne19_to_p_F18_derived); jac.set(Ne19, Ne19, scratch); - scratch = screened_rates(k_Ne20_to_n_Ne19_reaclib); + scratch = screened_rates(k_Ne20_to_n_Ne19_derived); jac.set(Ne19, Ne20, scratch); jac.set(Ne19, Ne21, 0.0); @@ -18616,12 +16425,12 @@ void jac_nuc(const burn_t& state, jac.set(Ne19, Na21, 0.0); - scratch = screened_rates(k_p_Na22_to_He4_Ne19_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Na22_p_to_He4_Ne19_derived)*Y(H1)*state.rho; jac.set(Ne19, Na22, scratch); jac.set(Ne19, Na23, 0.0); - scratch = screened_rates(k_Mg23_to_He4_Ne19_reaclib); + scratch = screened_rates(k_Mg23_to_He4_Ne19_derived); jac.set(Ne19, Mg23, scratch); jac.set(Ne19, Mg24, 0.0); @@ -18874,17 +16683,17 @@ void jac_nuc(const burn_t& state, jac.set(Ne19, Ge64, 0.0); - scratch = screened_rates(k_n_Mg23_to_He4_Ne20_reaclib)*Y(Mg23)*state.rho + screened_rates(k_n_Ne19_to_Ne20_reaclib)*Y(Ne19)*state.rho - screened_rates(k_n_Ne20_to_He4_O17_reaclib)*Y(Ne20)*state.rho - screened_rates(k_n_Ne20_to_Ne21_reaclib)*Y(Ne20)*state.rho; + scratch = screened_rates(k_Mg23_n_to_He4_Ne20_reaclib)*Y(Mg23)*state.rho + screened_rates(k_Ne19_n_to_Ne20_reaclib)*Y(Ne19)*state.rho - screened_rates(k_Ne20_n_to_He4_O17_derived)*Y(Ne20)*state.rho - screened_rates(k_Ne20_n_to_Ne21_reaclib)*Y(Ne20)*state.rho; jac.set(Ne20, N, scratch); - scratch = screened_rates(k_p_F19_to_Ne20_reaclib)*Y(F19)*state.rho + screened_rates(k_p_Na23_to_He4_Ne20_reaclib)*Y(Na23)*state.rho - screened_rates(k_p_Ne20_to_He4_F17_reaclib)*Y(Ne20)*state.rho - screened_rates(k_p_Ne20_to_Na21_reaclib)*Y(Ne20)*state.rho + screened_rates(k_p_P31_to_C12_Ne20_reaclib)*Y(P31)*state.rho; + scratch = screened_rates(k_F19_p_to_Ne20_reaclib)*Y(F19)*state.rho + screened_rates(k_Na23_p_to_He4_Ne20_reaclib)*Y(Na23)*state.rho - screened_rates(k_Ne20_p_to_He4_F17_reaclib)*Y(Ne20)*state.rho - screened_rates(k_Ne20_p_to_Na21_reaclib)*Y(Ne20)*state.rho + screened_rates(k_P31_p_to_C12_Ne20_derived)*Y(P31)*state.rho; jac.set(Ne20, H1, scratch); jac.set(Ne20, H2, 0.0); jac.set(Ne20, He3, 0.0); - scratch = screened_rates(k_He4_F17_to_p_Ne20_reaclib)*Y(F17)*state.rho - screened_rates(k_He4_Ne20_to_C12_C12_reaclib)*Y(Ne20)*state.rho - screened_rates(k_He4_Ne20_to_Mg24_reaclib)*Y(Ne20)*state.rho - screened_rates(k_He4_Ne20_to_n_Mg23_reaclib)*Y(Ne20)*state.rho - screened_rates(k_He4_Ne20_to_p_Na23_reaclib)*Y(Ne20)*state.rho + screened_rates(k_He4_O16_to_Ne20_reaclib)*Y(O16)*state.rho + screened_rates(k_He4_O17_to_n_Ne20_reaclib)*Y(O17)*state.rho + screened_rates(k_He4_Si28_to_C12_Ne20_reaclib)*Y(Si28)*state.rho; + scratch = screened_rates(k_F17_He4_to_p_Ne20_derived)*Y(F17)*state.rho - screened_rates(k_Ne20_He4_to_C12_C12_derived)*Y(Ne20)*state.rho - screened_rates(k_Ne20_He4_to_Mg24_reaclib)*Y(Ne20)*state.rho - screened_rates(k_Ne20_He4_to_n_Mg23_derived)*Y(Ne20)*state.rho - screened_rates(k_Ne20_He4_to_p_Na23_derived)*Y(Ne20)*state.rho + screened_rates(k_O16_He4_to_Ne20_reaclib)*Y(O16)*state.rho + screened_rates(k_O17_He4_to_n_Ne20_reaclib)*Y(O17)*state.rho + screened_rates(k_Si28_He4_to_C12_Ne20_derived)*Y(Si28)*state.rho; jac.set(Ne20, He4, scratch); jac.set(Ne20, Li6, 0.0); @@ -18901,7 +16710,7 @@ void jac_nuc(const burn_t& state, jac.set(Ne20, B11, 0.0); - scratch = 1.0*screened_rates(k_C12_C12_to_He4_Ne20_reaclib)*Y(C12)*state.rho - screened_rates(k_C12_Ne20_to_He4_Si28_reaclib)*Y(Ne20)*state.rho - screened_rates(k_C12_Ne20_to_p_P31_reaclib)*Y(Ne20)*state.rho; + scratch = 1.0*screened_rates(k_C12_C12_to_He4_Ne20_reaclib)*Y(C12)*state.rho - screened_rates(k_Ne20_C12_to_He4_Si28_reaclib)*Y(Ne20)*state.rho - screened_rates(k_Ne20_C12_to_p_P31_reaclib)*Y(Ne20)*state.rho; jac.set(Ne20, C12, scratch); jac.set(Ne20, C13, 0.0); @@ -18918,47 +16727,47 @@ void jac_nuc(const burn_t& state, jac.set(Ne20, O15, 0.0); - scratch = screened_rates(k_He4_O16_to_Ne20_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_O16_He4_to_Ne20_reaclib)*Y(He4)*state.rho; jac.set(Ne20, O16, scratch); - scratch = screened_rates(k_He4_O17_to_n_Ne20_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_O17_He4_to_n_Ne20_reaclib)*Y(He4)*state.rho; jac.set(Ne20, O17, scratch); jac.set(Ne20, O18, 0.0); - scratch = screened_rates(k_He4_F17_to_p_Ne20_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_F17_He4_to_p_Ne20_derived)*Y(He4)*state.rho; jac.set(Ne20, F17, scratch); jac.set(Ne20, F18, 0.0); - scratch = screened_rates(k_p_F19_to_Ne20_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_F19_p_to_Ne20_reaclib)*Y(H1)*state.rho; jac.set(Ne20, F19, scratch); jac.set(Ne20, Ne18, 0.0); - scratch = screened_rates(k_n_Ne19_to_Ne20_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ne19_n_to_Ne20_reaclib)*Y(N)*state.rho; jac.set(Ne20, Ne19, scratch); - scratch = -screened_rates(k_C12_Ne20_to_He4_Si28_reaclib)*Y(C12)*state.rho - screened_rates(k_C12_Ne20_to_p_P31_reaclib)*Y(C12)*state.rho - screened_rates(k_He4_Ne20_to_C12_C12_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ne20_to_Mg24_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ne20_to_n_Mg23_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ne20_to_p_Na23_reaclib)*Y(He4)*state.rho - screened_rates(k_Ne20_to_He4_O16_reaclib) - screened_rates(k_Ne20_to_n_Ne19_reaclib) - screened_rates(k_Ne20_to_p_F19_reaclib) - screened_rates(k_n_Ne20_to_He4_O17_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ne20_to_Ne21_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ne20_to_He4_F17_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ne20_to_Na21_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ne20_C12_to_He4_Si28_reaclib)*Y(C12)*state.rho - screened_rates(k_Ne20_C12_to_p_P31_reaclib)*Y(C12)*state.rho - screened_rates(k_Ne20_He4_to_C12_C12_derived)*Y(He4)*state.rho - screened_rates(k_Ne20_He4_to_Mg24_reaclib)*Y(He4)*state.rho - screened_rates(k_Ne20_He4_to_n_Mg23_derived)*Y(He4)*state.rho - screened_rates(k_Ne20_He4_to_p_Na23_derived)*Y(He4)*state.rho - screened_rates(k_Ne20_n_to_He4_O17_derived)*Y(N)*state.rho - screened_rates(k_Ne20_n_to_Ne21_reaclib)*Y(N)*state.rho - screened_rates(k_Ne20_p_to_He4_F17_reaclib)*Y(H1)*state.rho - screened_rates(k_Ne20_p_to_Na21_reaclib)*Y(H1)*state.rho - screened_rates(k_Ne20_to_He4_O16_derived) - screened_rates(k_Ne20_to_n_Ne19_derived) - screened_rates(k_Ne20_to_p_F19_derived); jac.set(Ne20, Ne20, scratch); - scratch = screened_rates(k_Ne21_to_n_Ne20_reaclib); + scratch = screened_rates(k_Ne21_to_n_Ne20_derived); jac.set(Ne20, Ne21, scratch); jac.set(Ne20, Ne22, 0.0); - scratch = screened_rates(k_Na21_to_p_Ne20_reaclib); + scratch = screened_rates(k_Na21_to_p_Ne20_derived); jac.set(Ne20, Na21, scratch); jac.set(Ne20, Na22, 0.0); - scratch = screened_rates(k_p_Na23_to_He4_Ne20_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Na23_p_to_He4_Ne20_reaclib)*Y(H1)*state.rho; jac.set(Ne20, Na23, scratch); - scratch = screened_rates(k_n_Mg23_to_He4_Ne20_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mg23_n_to_He4_Ne20_reaclib)*Y(N)*state.rho; jac.set(Ne20, Mg23, scratch); - scratch = screened_rates(k_Mg24_to_He4_Ne20_reaclib); + scratch = screened_rates(k_Mg24_to_He4_Ne20_derived); jac.set(Ne20, Mg24, scratch); jac.set(Ne20, Mg25, 0.0); @@ -18971,7 +16780,7 @@ void jac_nuc(const burn_t& state, jac.set(Ne20, Al27, 0.0); - scratch = screened_rates(k_He4_Si28_to_C12_Ne20_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Si28_He4_to_C12_Ne20_derived)*Y(He4)*state.rho; jac.set(Ne20, Si28, scratch); jac.set(Ne20, Si29, 0.0); @@ -18986,7 +16795,7 @@ void jac_nuc(const burn_t& state, jac.set(Ne20, P30, 0.0); - scratch = screened_rates(k_p_P31_to_C12_Ne20_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_P31_p_to_C12_Ne20_derived)*Y(H1)*state.rho; jac.set(Ne20, P31, scratch); jac.set(Ne20, P32, 0.0); @@ -19211,17 +17020,17 @@ void jac_nuc(const burn_t& state, jac.set(Ne20, Ge64, 0.0); - scratch = screened_rates(k_n_Mg24_to_He4_Ne21_reaclib)*Y(Mg24)*state.rho + screened_rates(k_n_Na21_to_p_Ne21_reaclib)*Y(Na21)*state.rho + screened_rates(k_n_Ne20_to_Ne21_reaclib)*Y(Ne20)*state.rho - screened_rates(k_n_Ne21_to_He4_O18_reaclib)*Y(Ne21)*state.rho - screened_rates(k_n_Ne21_to_Ne22_reaclib)*Y(Ne21)*state.rho; + scratch = screened_rates(k_Mg24_n_to_He4_Ne21_derived)*Y(Mg24)*state.rho + screened_rates(k_Na21_n_to_p_Ne21_reaclib)*Y(Na21)*state.rho + screened_rates(k_Ne20_n_to_Ne21_reaclib)*Y(Ne20)*state.rho - screened_rates(k_Ne21_n_to_He4_O18_derived)*Y(Ne21)*state.rho - screened_rates(k_Ne21_n_to_Ne22_reaclib)*Y(Ne21)*state.rho; jac.set(Ne21, N, scratch); - scratch = -screened_rates(k_p_Ne21_to_He4_F18_reaclib)*Y(Ne21)*state.rho - screened_rates(k_p_Ne21_to_Na22_reaclib)*Y(Ne21)*state.rho - screened_rates(k_p_Ne21_to_n_Na21_reaclib)*Y(Ne21)*state.rho; + scratch = -screened_rates(k_Ne21_p_to_He4_F18_derived)*Y(Ne21)*state.rho - screened_rates(k_Ne21_p_to_Na22_reaclib)*Y(Ne21)*state.rho - screened_rates(k_Ne21_p_to_n_Na21_derived)*Y(Ne21)*state.rho; jac.set(Ne21, H1, scratch); jac.set(Ne21, H2, 0.0); jac.set(Ne21, He3, 0.0); - scratch = screened_rates(k_He4_F18_to_p_Ne21_reaclib)*Y(F18)*state.rho - screened_rates(k_He4_Ne21_to_Mg25_reaclib)*Y(Ne21)*state.rho - screened_rates(k_He4_Ne21_to_n_Mg24_reaclib)*Y(Ne21)*state.rho + screened_rates(k_He4_O17_to_Ne21_reaclib)*Y(O17)*state.rho + screened_rates(k_He4_O18_to_n_Ne21_reaclib)*Y(O18)*state.rho; + scratch = screened_rates(k_F18_He4_to_p_Ne21_reaclib)*Y(F18)*state.rho - screened_rates(k_Ne21_He4_to_Mg25_reaclib)*Y(Ne21)*state.rho - screened_rates(k_Ne21_He4_to_n_Mg24_reaclib)*Y(Ne21)*state.rho + screened_rates(k_O17_He4_to_Ne21_reaclib)*Y(O17)*state.rho + screened_rates(k_O18_He4_to_n_Ne21_reaclib)*Y(O18)*state.rho; jac.set(Ne21, He4, scratch); jac.set(Ne21, Li6, 0.0); @@ -19256,15 +17065,15 @@ void jac_nuc(const burn_t& state, jac.set(Ne21, O16, 0.0); - scratch = screened_rates(k_He4_O17_to_Ne21_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_O17_He4_to_Ne21_reaclib)*Y(He4)*state.rho; jac.set(Ne21, O17, scratch); - scratch = screened_rates(k_He4_O18_to_n_Ne21_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_O18_He4_to_n_Ne21_reaclib)*Y(He4)*state.rho; jac.set(Ne21, O18, scratch); jac.set(Ne21, F17, 0.0); - scratch = screened_rates(k_He4_F18_to_p_Ne21_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_F18_He4_to_p_Ne21_reaclib)*Y(He4)*state.rho; jac.set(Ne21, F18, scratch); jac.set(Ne21, F19, 0.0); @@ -19273,29 +17082,29 @@ void jac_nuc(const burn_t& state, jac.set(Ne21, Ne19, 0.0); - scratch = screened_rates(k_n_Ne20_to_Ne21_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ne20_n_to_Ne21_reaclib)*Y(N)*state.rho; jac.set(Ne21, Ne20, scratch); - scratch = -screened_rates(k_He4_Ne21_to_Mg25_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ne21_to_n_Mg24_reaclib)*Y(He4)*state.rho - screened_rates(k_Ne21_to_He4_O17_reaclib) - screened_rates(k_Ne21_to_Na21_weaktab) - screened_rates(k_Ne21_to_n_Ne20_reaclib) - screened_rates(k_n_Ne21_to_He4_O18_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ne21_to_Ne22_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ne21_to_He4_F18_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ne21_to_Na22_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ne21_to_n_Na21_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ne21_He4_to_Mg25_reaclib)*Y(He4)*state.rho - screened_rates(k_Ne21_He4_to_n_Mg24_reaclib)*Y(He4)*state.rho - screened_rates(k_Ne21_n_to_He4_O18_derived)*Y(N)*state.rho - screened_rates(k_Ne21_n_to_Ne22_reaclib)*Y(N)*state.rho - screened_rates(k_Ne21_p_to_He4_F18_derived)*Y(H1)*state.rho - screened_rates(k_Ne21_p_to_Na22_reaclib)*Y(H1)*state.rho - screened_rates(k_Ne21_p_to_n_Na21_derived)*Y(H1)*state.rho - screened_rates(k_Ne21_to_He4_O17_derived) - screened_rates(k_Ne21_to_Na21_beta_neg_weaktab) - screened_rates(k_Ne21_to_n_Ne20_derived); jac.set(Ne21, Ne21, scratch); - scratch = screened_rates(k_Ne22_to_n_Ne21_reaclib); + scratch = screened_rates(k_Ne22_to_n_Ne21_derived); jac.set(Ne21, Ne22, scratch); - scratch = screened_rates(k_Na21_to_Ne21_weaktab) + screened_rates(k_n_Na21_to_p_Ne21_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Na21_n_to_p_Ne21_reaclib)*Y(N)*state.rho + screened_rates(k_Na21_to_Ne21_electron_capture_weaktab); jac.set(Ne21, Na21, scratch); - scratch = screened_rates(k_Na22_to_p_Ne21_reaclib); + scratch = screened_rates(k_Na22_to_p_Ne21_derived); jac.set(Ne21, Na22, scratch); jac.set(Ne21, Na23, 0.0); jac.set(Ne21, Mg23, 0.0); - scratch = screened_rates(k_n_Mg24_to_He4_Ne21_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mg24_n_to_He4_Ne21_derived)*Y(N)*state.rho; jac.set(Ne21, Mg24, scratch); - scratch = screened_rates(k_Mg25_to_He4_Ne21_reaclib); + scratch = screened_rates(k_Mg25_to_He4_Ne21_derived); jac.set(Ne21, Mg25, scratch); jac.set(Ne21, Mg26, 0.0); @@ -19544,17 +17353,17 @@ void jac_nuc(const burn_t& state, jac.set(Ne21, Ge64, 0.0); - scratch = screened_rates(k_n_Mg25_to_He4_Ne22_reaclib)*Y(Mg25)*state.rho + screened_rates(k_n_Na22_to_p_Ne22_reaclib)*Y(Na22)*state.rho + screened_rates(k_n_Ne21_to_Ne22_reaclib)*Y(Ne21)*state.rho; + scratch = screened_rates(k_Mg25_n_to_He4_Ne22_derived)*Y(Mg25)*state.rho + screened_rates(k_Na22_n_to_p_Ne22_reaclib)*Y(Na22)*state.rho + screened_rates(k_Ne21_n_to_Ne22_reaclib)*Y(Ne21)*state.rho; jac.set(Ne22, N, scratch); - scratch = -screened_rates(k_p_Ne22_to_He4_F19_reaclib)*Y(Ne22)*state.rho - screened_rates(k_p_Ne22_to_Na23_reaclib)*Y(Ne22)*state.rho - screened_rates(k_p_Ne22_to_n_Na22_reaclib)*Y(Ne22)*state.rho; + scratch = -screened_rates(k_Ne22_p_to_He4_F19_derived)*Y(Ne22)*state.rho - screened_rates(k_Ne22_p_to_Na23_reaclib)*Y(Ne22)*state.rho - screened_rates(k_Ne22_p_to_n_Na22_derived)*Y(Ne22)*state.rho; jac.set(Ne22, H1, scratch); jac.set(Ne22, H2, 0.0); jac.set(Ne22, He3, 0.0); - scratch = screened_rates(k_He4_F19_to_p_Ne22_reaclib)*Y(F19)*state.rho - screened_rates(k_He4_Ne22_to_Mg26_reaclib)*Y(Ne22)*state.rho - screened_rates(k_He4_Ne22_to_n_Mg25_reaclib)*Y(Ne22)*state.rho + screened_rates(k_He4_O18_to_Ne22_reaclib)*Y(O18)*state.rho; + scratch = screened_rates(k_F19_He4_to_p_Ne22_reaclib)*Y(F19)*state.rho - screened_rates(k_Ne22_He4_to_Mg26_reaclib)*Y(Ne22)*state.rho - screened_rates(k_Ne22_He4_to_n_Mg25_reaclib)*Y(Ne22)*state.rho + screened_rates(k_O18_He4_to_Ne22_reaclib)*Y(O18)*state.rho; jac.set(Ne22, He4, scratch); jac.set(Ne22, Li6, 0.0); @@ -19591,14 +17400,14 @@ void jac_nuc(const burn_t& state, jac.set(Ne22, O17, 0.0); - scratch = screened_rates(k_He4_O18_to_Ne22_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_O18_He4_to_Ne22_reaclib)*Y(He4)*state.rho; jac.set(Ne22, O18, scratch); jac.set(Ne22, F17, 0.0); jac.set(Ne22, F18, 0.0); - scratch = screened_rates(k_He4_F19_to_p_Ne22_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_F19_He4_to_p_Ne22_reaclib)*Y(He4)*state.rho; jac.set(Ne22, F19, scratch); jac.set(Ne22, Ne18, 0.0); @@ -19607,28 +17416,28 @@ void jac_nuc(const burn_t& state, jac.set(Ne22, Ne20, 0.0); - scratch = screened_rates(k_n_Ne21_to_Ne22_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ne21_n_to_Ne22_reaclib)*Y(N)*state.rho; jac.set(Ne22, Ne21, scratch); - scratch = -screened_rates(k_He4_Ne22_to_Mg26_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ne22_to_n_Mg25_reaclib)*Y(He4)*state.rho - screened_rates(k_Ne22_to_He4_O18_reaclib) - screened_rates(k_Ne22_to_Na22_weaktab) - screened_rates(k_Ne22_to_n_Ne21_reaclib) - screened_rates(k_p_Ne22_to_He4_F19_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ne22_to_Na23_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ne22_to_n_Na22_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ne22_He4_to_Mg26_reaclib)*Y(He4)*state.rho - screened_rates(k_Ne22_He4_to_n_Mg25_reaclib)*Y(He4)*state.rho - screened_rates(k_Ne22_p_to_He4_F19_derived)*Y(H1)*state.rho - screened_rates(k_Ne22_p_to_Na23_reaclib)*Y(H1)*state.rho - screened_rates(k_Ne22_p_to_n_Na22_derived)*Y(H1)*state.rho - screened_rates(k_Ne22_to_He4_O18_derived) - screened_rates(k_Ne22_to_Na22_beta_neg_weaktab) - screened_rates(k_Ne22_to_n_Ne21_derived); jac.set(Ne22, Ne22, scratch); jac.set(Ne22, Na21, 0.0); - scratch = screened_rates(k_Na22_to_Ne22_weaktab) + screened_rates(k_n_Na22_to_p_Ne22_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Na22_n_to_p_Ne22_reaclib)*Y(N)*state.rho + screened_rates(k_Na22_to_Ne22_electron_capture_weaktab); jac.set(Ne22, Na22, scratch); - scratch = screened_rates(k_Na23_to_p_Ne22_reaclib); + scratch = screened_rates(k_Na23_to_p_Ne22_derived); jac.set(Ne22, Na23, scratch); jac.set(Ne22, Mg23, 0.0); jac.set(Ne22, Mg24, 0.0); - scratch = screened_rates(k_n_Mg25_to_He4_Ne22_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mg25_n_to_He4_Ne22_derived)*Y(N)*state.rho; jac.set(Ne22, Mg25, scratch); - scratch = screened_rates(k_Mg26_to_He4_Ne22_reaclib); + scratch = screened_rates(k_Mg26_to_He4_Ne22_derived); jac.set(Ne22, Mg26, scratch); jac.set(Ne22, Al25, 0.0); @@ -19875,17 +17684,17 @@ void jac_nuc(const burn_t& state, jac.set(Ne22, Ge64, 0.0); - scratch = -screened_rates(k_n_Na21_to_He4_F18_reaclib)*Y(Na21)*state.rho - screened_rates(k_n_Na21_to_Na22_reaclib)*Y(Na21)*state.rho - screened_rates(k_n_Na21_to_p_Ne21_reaclib)*Y(Na21)*state.rho; + scratch = -screened_rates(k_Na21_n_to_He4_F18_reaclib)*Y(Na21)*state.rho - screened_rates(k_Na21_n_to_Na22_reaclib)*Y(Na21)*state.rho - screened_rates(k_Na21_n_to_p_Ne21_reaclib)*Y(Na21)*state.rho; jac.set(Na21, N, scratch); - scratch = screened_rates(k_p_Mg24_to_He4_Na21_reaclib)*Y(Mg24)*state.rho - screened_rates(k_p_Na21_to_He4_Ne18_reaclib)*Y(Na21)*state.rho + screened_rates(k_p_Ne20_to_Na21_reaclib)*Y(Ne20)*state.rho + screened_rates(k_p_Ne21_to_n_Na21_reaclib)*Y(Ne21)*state.rho; + scratch = screened_rates(k_Mg24_p_to_He4_Na21_reaclib)*Y(Mg24)*state.rho - screened_rates(k_Na21_p_to_He4_Ne18_derived)*Y(Na21)*state.rho + screened_rates(k_Ne20_p_to_Na21_reaclib)*Y(Ne20)*state.rho + screened_rates(k_Ne21_p_to_n_Na21_derived)*Y(Ne21)*state.rho; jac.set(Na21, H1, scratch); jac.set(Na21, H2, 0.0); jac.set(Na21, He3, 0.0); - scratch = screened_rates(k_He4_F17_to_Na21_reaclib)*Y(F17)*state.rho + screened_rates(k_He4_F18_to_n_Na21_reaclib)*Y(F18)*state.rho - screened_rates(k_He4_Na21_to_Al25_reaclib)*Y(Na21)*state.rho - screened_rates(k_He4_Na21_to_p_Mg24_reaclib)*Y(Na21)*state.rho + screened_rates(k_He4_Ne18_to_p_Na21_reaclib)*Y(Ne18)*state.rho; + scratch = screened_rates(k_F17_He4_to_Na21_reaclib)*Y(F17)*state.rho + screened_rates(k_F18_He4_to_n_Na21_derived)*Y(F18)*state.rho - screened_rates(k_Na21_He4_to_Al25_reaclib)*Y(Na21)*state.rho - screened_rates(k_Na21_He4_to_p_Mg24_derived)*Y(Na21)*state.rho + screened_rates(k_Ne18_He4_to_p_Na21_reaclib)*Y(Ne18)*state.rho; jac.set(Na21, He4, scratch); jac.set(Na21, Li6, 0.0); @@ -19924,45 +17733,45 @@ void jac_nuc(const burn_t& state, jac.set(Na21, O18, 0.0); - scratch = screened_rates(k_He4_F17_to_Na21_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_F17_He4_to_Na21_reaclib)*Y(He4)*state.rho; jac.set(Na21, F17, scratch); - scratch = screened_rates(k_He4_F18_to_n_Na21_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_F18_He4_to_n_Na21_derived)*Y(He4)*state.rho; jac.set(Na21, F18, scratch); jac.set(Na21, F19, 0.0); - scratch = screened_rates(k_He4_Ne18_to_p_Na21_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ne18_He4_to_p_Na21_reaclib)*Y(He4)*state.rho; jac.set(Na21, Ne18, scratch); jac.set(Na21, Ne19, 0.0); - scratch = screened_rates(k_p_Ne20_to_Na21_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ne20_p_to_Na21_reaclib)*Y(H1)*state.rho; jac.set(Na21, Ne20, scratch); - scratch = screened_rates(k_Ne21_to_Na21_weaktab) + screened_rates(k_p_Ne21_to_n_Na21_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ne21_p_to_n_Na21_derived)*Y(H1)*state.rho + screened_rates(k_Ne21_to_Na21_beta_neg_weaktab); jac.set(Na21, Ne21, scratch); jac.set(Na21, Ne22, 0.0); - scratch = -screened_rates(k_He4_Na21_to_Al25_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Na21_to_p_Mg24_reaclib)*Y(He4)*state.rho - screened_rates(k_Na21_to_He4_F17_reaclib) - screened_rates(k_Na21_to_Ne21_weaktab) - screened_rates(k_Na21_to_p_Ne20_reaclib) - screened_rates(k_n_Na21_to_He4_F18_reaclib)*Y(N)*state.rho - screened_rates(k_n_Na21_to_Na22_reaclib)*Y(N)*state.rho - screened_rates(k_n_Na21_to_p_Ne21_reaclib)*Y(N)*state.rho - screened_rates(k_p_Na21_to_He4_Ne18_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Na21_He4_to_Al25_reaclib)*Y(He4)*state.rho - screened_rates(k_Na21_He4_to_p_Mg24_derived)*Y(He4)*state.rho - screened_rates(k_Na21_n_to_He4_F18_reaclib)*Y(N)*state.rho - screened_rates(k_Na21_n_to_Na22_reaclib)*Y(N)*state.rho - screened_rates(k_Na21_n_to_p_Ne21_reaclib)*Y(N)*state.rho - screened_rates(k_Na21_p_to_He4_Ne18_derived)*Y(H1)*state.rho - screened_rates(k_Na21_to_He4_F17_derived) - screened_rates(k_Na21_to_Ne21_electron_capture_weaktab) - screened_rates(k_Na21_to_p_Ne20_derived); jac.set(Na21, Na21, scratch); - scratch = screened_rates(k_Na22_to_n_Na21_reaclib); + scratch = screened_rates(k_Na22_to_n_Na21_derived); jac.set(Na21, Na22, scratch); jac.set(Na21, Na23, 0.0); jac.set(Na21, Mg23, 0.0); - scratch = screened_rates(k_p_Mg24_to_He4_Na21_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mg24_p_to_He4_Na21_reaclib)*Y(H1)*state.rho; jac.set(Na21, Mg24, scratch); jac.set(Na21, Mg25, 0.0); jac.set(Na21, Mg26, 0.0); - scratch = screened_rates(k_Al25_to_He4_Na21_reaclib); + scratch = screened_rates(k_Al25_to_He4_Na21_derived); jac.set(Na21, Al25, scratch); jac.set(Na21, Al26, 0.0); @@ -20207,17 +18016,17 @@ void jac_nuc(const burn_t& state, jac.set(Na21, Ge64, 0.0); - scratch = screened_rates(k_n_Al25_to_He4_Na22_reaclib)*Y(Al25)*state.rho + screened_rates(k_n_Na21_to_Na22_reaclib)*Y(Na21)*state.rho - screened_rates(k_n_Na22_to_He4_F19_reaclib)*Y(Na22)*state.rho - screened_rates(k_n_Na22_to_Na23_reaclib)*Y(Na22)*state.rho - screened_rates(k_n_Na22_to_p_Ne22_reaclib)*Y(Na22)*state.rho; + scratch = screened_rates(k_Al25_n_to_He4_Na22_reaclib)*Y(Al25)*state.rho + screened_rates(k_Na21_n_to_Na22_reaclib)*Y(Na21)*state.rho - screened_rates(k_Na22_n_to_He4_F19_reaclib)*Y(Na22)*state.rho - screened_rates(k_Na22_n_to_Na23_reaclib)*Y(Na22)*state.rho - screened_rates(k_Na22_n_to_p_Ne22_reaclib)*Y(Na22)*state.rho; jac.set(Na22, N, scratch); - scratch = screened_rates(k_p_Mg25_to_He4_Na22_reaclib)*Y(Mg25)*state.rho - screened_rates(k_p_Na22_to_He4_Ne19_reaclib)*Y(Na22)*state.rho - screened_rates(k_p_Na22_to_Mg23_reaclib)*Y(Na22)*state.rho + screened_rates(k_p_Ne21_to_Na22_reaclib)*Y(Ne21)*state.rho + screened_rates(k_p_Ne22_to_n_Na22_reaclib)*Y(Ne22)*state.rho; + scratch = screened_rates(k_Mg25_p_to_He4_Na22_derived)*Y(Mg25)*state.rho - screened_rates(k_Na22_p_to_He4_Ne19_derived)*Y(Na22)*state.rho - screened_rates(k_Na22_p_to_Mg23_reaclib)*Y(Na22)*state.rho + screened_rates(k_Ne21_p_to_Na22_reaclib)*Y(Ne21)*state.rho + screened_rates(k_Ne22_p_to_n_Na22_derived)*Y(Ne22)*state.rho; jac.set(Na22, H1, scratch); jac.set(Na22, H2, 0.0); jac.set(Na22, He3, 0.0); - scratch = screened_rates(k_He4_F18_to_Na22_reaclib)*Y(F18)*state.rho + screened_rates(k_He4_F19_to_n_Na22_reaclib)*Y(F19)*state.rho - screened_rates(k_He4_Na22_to_Al26_reaclib)*Y(Na22)*state.rho - screened_rates(k_He4_Na22_to_n_Al25_reaclib)*Y(Na22)*state.rho - screened_rates(k_He4_Na22_to_p_Mg25_reaclib)*Y(Na22)*state.rho + screened_rates(k_He4_Ne19_to_p_Na22_reaclib)*Y(Ne19)*state.rho; + scratch = screened_rates(k_F18_He4_to_Na22_reaclib)*Y(F18)*state.rho + screened_rates(k_F19_He4_to_n_Na22_derived)*Y(F19)*state.rho - screened_rates(k_Na22_He4_to_Al26_reaclib)*Y(Na22)*state.rho - screened_rates(k_Na22_He4_to_n_Al25_derived)*Y(Na22)*state.rho - screened_rates(k_Na22_He4_to_p_Mg25_reaclib)*Y(Na22)*state.rho + screened_rates(k_Ne19_He4_to_p_Na22_reaclib)*Y(Ne19)*state.rho; jac.set(Na22, He4, scratch); jac.set(Na22, Li6, 0.0); @@ -20258,48 +18067,48 @@ void jac_nuc(const burn_t& state, jac.set(Na22, F17, 0.0); - scratch = screened_rates(k_He4_F18_to_Na22_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_F18_He4_to_Na22_reaclib)*Y(He4)*state.rho; jac.set(Na22, F18, scratch); - scratch = screened_rates(k_He4_F19_to_n_Na22_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_F19_He4_to_n_Na22_derived)*Y(He4)*state.rho; jac.set(Na22, F19, scratch); jac.set(Na22, Ne18, 0.0); - scratch = screened_rates(k_He4_Ne19_to_p_Na22_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ne19_He4_to_p_Na22_reaclib)*Y(He4)*state.rho; jac.set(Na22, Ne19, scratch); jac.set(Na22, Ne20, 0.0); - scratch = screened_rates(k_p_Ne21_to_Na22_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ne21_p_to_Na22_reaclib)*Y(H1)*state.rho; jac.set(Na22, Ne21, scratch); - scratch = screened_rates(k_Ne22_to_Na22_weaktab) + screened_rates(k_p_Ne22_to_n_Na22_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ne22_p_to_n_Na22_derived)*Y(H1)*state.rho + screened_rates(k_Ne22_to_Na22_beta_neg_weaktab); jac.set(Na22, Ne22, scratch); - scratch = screened_rates(k_n_Na21_to_Na22_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Na21_n_to_Na22_reaclib)*Y(N)*state.rho; jac.set(Na22, Na21, scratch); - scratch = -screened_rates(k_He4_Na22_to_Al26_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Na22_to_n_Al25_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Na22_to_p_Mg25_reaclib)*Y(He4)*state.rho - screened_rates(k_Na22_to_He4_F18_reaclib) - screened_rates(k_Na22_to_Ne22_weaktab) - screened_rates(k_Na22_to_n_Na21_reaclib) - screened_rates(k_Na22_to_p_Ne21_reaclib) - screened_rates(k_n_Na22_to_He4_F19_reaclib)*Y(N)*state.rho - screened_rates(k_n_Na22_to_Na23_reaclib)*Y(N)*state.rho - screened_rates(k_n_Na22_to_p_Ne22_reaclib)*Y(N)*state.rho - screened_rates(k_p_Na22_to_He4_Ne19_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Na22_to_Mg23_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Na22_He4_to_Al26_reaclib)*Y(He4)*state.rho - screened_rates(k_Na22_He4_to_n_Al25_derived)*Y(He4)*state.rho - screened_rates(k_Na22_He4_to_p_Mg25_reaclib)*Y(He4)*state.rho - screened_rates(k_Na22_n_to_He4_F19_reaclib)*Y(N)*state.rho - screened_rates(k_Na22_n_to_Na23_reaclib)*Y(N)*state.rho - screened_rates(k_Na22_n_to_p_Ne22_reaclib)*Y(N)*state.rho - screened_rates(k_Na22_p_to_He4_Ne19_derived)*Y(H1)*state.rho - screened_rates(k_Na22_p_to_Mg23_reaclib)*Y(H1)*state.rho - screened_rates(k_Na22_to_He4_F18_derived) - screened_rates(k_Na22_to_Ne22_electron_capture_weaktab) - screened_rates(k_Na22_to_n_Na21_derived) - screened_rates(k_Na22_to_p_Ne21_derived); jac.set(Na22, Na22, scratch); - scratch = screened_rates(k_Na23_to_n_Na22_reaclib); + scratch = screened_rates(k_Na23_to_n_Na22_derived); jac.set(Na22, Na23, scratch); - scratch = screened_rates(k_Mg23_to_p_Na22_reaclib); + scratch = screened_rates(k_Mg23_to_p_Na22_derived); jac.set(Na22, Mg23, scratch); jac.set(Na22, Mg24, 0.0); - scratch = screened_rates(k_p_Mg25_to_He4_Na22_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mg25_p_to_He4_Na22_derived)*Y(H1)*state.rho; jac.set(Na22, Mg25, scratch); jac.set(Na22, Mg26, 0.0); - scratch = screened_rates(k_n_Al25_to_He4_Na22_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Al25_n_to_He4_Na22_reaclib)*Y(N)*state.rho; jac.set(Na22, Al25, scratch); - scratch = screened_rates(k_Al26_to_He4_Na22_reaclib); + scratch = screened_rates(k_Al26_to_He4_Na22_derived); jac.set(Na22, Al26, scratch); jac.set(Na22, Al27, 0.0); @@ -20542,17 +18351,17 @@ void jac_nuc(const burn_t& state, jac.set(Na22, Ge64, 0.0); - scratch = screened_rates(k_n_Al26_to_He4_Na23_reaclib)*Y(Al26)*state.rho + screened_rates(k_n_Mg23_to_p_Na23_reaclib)*Y(Mg23)*state.rho + screened_rates(k_n_Na22_to_Na23_reaclib)*Y(Na22)*state.rho; + scratch = screened_rates(k_Al26_n_to_He4_Na23_reaclib)*Y(Al26)*state.rho + screened_rates(k_Mg23_n_to_p_Na23_derived)*Y(Mg23)*state.rho + screened_rates(k_Na22_n_to_Na23_reaclib)*Y(Na22)*state.rho; jac.set(Na23, N, scratch); - scratch = screened_rates(k_p_Mg26_to_He4_Na23_reaclib)*Y(Mg26)*state.rho - screened_rates(k_p_Na23_to_C12_C12_reaclib)*Y(Na23)*state.rho - screened_rates(k_p_Na23_to_He4_Ne20_reaclib)*Y(Na23)*state.rho - screened_rates(k_p_Na23_to_Mg24_reaclib)*Y(Na23)*state.rho - screened_rates(k_p_Na23_to_n_Mg23_reaclib)*Y(Na23)*state.rho + screened_rates(k_p_Ne22_to_Na23_reaclib)*Y(Ne22)*state.rho; + scratch = screened_rates(k_Mg26_p_to_He4_Na23_derived)*Y(Mg26)*state.rho - screened_rates(k_Na23_p_to_C12_C12_derived)*Y(Na23)*state.rho - screened_rates(k_Na23_p_to_He4_Ne20_reaclib)*Y(Na23)*state.rho - screened_rates(k_Na23_p_to_Mg24_reaclib)*Y(Na23)*state.rho - screened_rates(k_Na23_p_to_n_Mg23_reaclib)*Y(Na23)*state.rho + screened_rates(k_Ne22_p_to_Na23_reaclib)*Y(Ne22)*state.rho; jac.set(Na23, H1, scratch); jac.set(Na23, H2, 0.0); jac.set(Na23, He3, 0.0); - scratch = screened_rates(k_He4_F19_to_Na23_reaclib)*Y(F19)*state.rho - screened_rates(k_He4_Na23_to_Al27_reaclib)*Y(Na23)*state.rho - screened_rates(k_He4_Na23_to_n_Al26_reaclib)*Y(Na23)*state.rho - screened_rates(k_He4_Na23_to_p_Mg26_reaclib)*Y(Na23)*state.rho + screened_rates(k_He4_Ne20_to_p_Na23_reaclib)*Y(Ne20)*state.rho; + scratch = screened_rates(k_F19_He4_to_Na23_reaclib)*Y(F19)*state.rho - screened_rates(k_Na23_He4_to_Al27_reaclib)*Y(Na23)*state.rho - screened_rates(k_Na23_He4_to_n_Al26_derived)*Y(Na23)*state.rho - screened_rates(k_Na23_He4_to_p_Mg26_reaclib)*Y(Na23)*state.rho + screened_rates(k_Ne20_He4_to_p_Na23_derived)*Y(Ne20)*state.rho; jac.set(Na23, He4, scratch); jac.set(Na23, Li6, 0.0); @@ -20596,46 +18405,46 @@ void jac_nuc(const burn_t& state, jac.set(Na23, F18, 0.0); - scratch = screened_rates(k_He4_F19_to_Na23_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_F19_He4_to_Na23_reaclib)*Y(He4)*state.rho; jac.set(Na23, F19, scratch); jac.set(Na23, Ne18, 0.0); jac.set(Na23, Ne19, 0.0); - scratch = screened_rates(k_He4_Ne20_to_p_Na23_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ne20_He4_to_p_Na23_derived)*Y(He4)*state.rho; jac.set(Na23, Ne20, scratch); jac.set(Na23, Ne21, 0.0); - scratch = screened_rates(k_p_Ne22_to_Na23_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ne22_p_to_Na23_reaclib)*Y(H1)*state.rho; jac.set(Na23, Ne22, scratch); jac.set(Na23, Na21, 0.0); - scratch = screened_rates(k_n_Na22_to_Na23_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Na22_n_to_Na23_reaclib)*Y(N)*state.rho; jac.set(Na23, Na22, scratch); - scratch = -screened_rates(k_He4_Na23_to_Al27_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Na23_to_n_Al26_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Na23_to_p_Mg26_reaclib)*Y(He4)*state.rho - screened_rates(k_Na23_to_He4_F19_reaclib) - screened_rates(k_Na23_to_Mg23_weaktab) - screened_rates(k_Na23_to_n_Na22_reaclib) - screened_rates(k_Na23_to_p_Ne22_reaclib) - screened_rates(k_p_Na23_to_C12_C12_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Na23_to_He4_Ne20_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Na23_to_Mg24_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Na23_to_n_Mg23_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Na23_He4_to_Al27_reaclib)*Y(He4)*state.rho - screened_rates(k_Na23_He4_to_n_Al26_derived)*Y(He4)*state.rho - screened_rates(k_Na23_He4_to_p_Mg26_reaclib)*Y(He4)*state.rho - screened_rates(k_Na23_p_to_C12_C12_derived)*Y(H1)*state.rho - screened_rates(k_Na23_p_to_He4_Ne20_reaclib)*Y(H1)*state.rho - screened_rates(k_Na23_p_to_Mg24_reaclib)*Y(H1)*state.rho - screened_rates(k_Na23_p_to_n_Mg23_reaclib)*Y(H1)*state.rho - screened_rates(k_Na23_to_He4_F19_derived) - screened_rates(k_Na23_to_Mg23_beta_neg_weaktab) - screened_rates(k_Na23_to_n_Na22_derived) - screened_rates(k_Na23_to_p_Ne22_derived); jac.set(Na23, Na23, scratch); - scratch = screened_rates(k_Mg23_to_Na23_weaktab) + screened_rates(k_n_Mg23_to_p_Na23_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mg23_n_to_p_Na23_derived)*Y(N)*state.rho + screened_rates(k_Mg23_to_Na23_electron_capture_weaktab); jac.set(Na23, Mg23, scratch); - scratch = screened_rates(k_Mg24_to_p_Na23_reaclib); + scratch = screened_rates(k_Mg24_to_p_Na23_derived); jac.set(Na23, Mg24, scratch); jac.set(Na23, Mg25, 0.0); - scratch = screened_rates(k_p_Mg26_to_He4_Na23_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mg26_p_to_He4_Na23_derived)*Y(H1)*state.rho; jac.set(Na23, Mg26, scratch); jac.set(Na23, Al25, 0.0); - scratch = screened_rates(k_n_Al26_to_He4_Na23_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Al26_n_to_He4_Na23_reaclib)*Y(N)*state.rho; jac.set(Na23, Al26, scratch); - scratch = screened_rates(k_Al27_to_He4_Na23_reaclib); + scratch = screened_rates(k_Al27_to_He4_Na23_derived); jac.set(Na23, Al27, scratch); jac.set(Na23, Si28, 0.0); @@ -20876,17 +18685,17 @@ void jac_nuc(const burn_t& state, jac.set(Na23, Ge64, 0.0); - scratch = -screened_rates(k_n_Mg23_to_C12_C12_reaclib)*Y(Mg23)*state.rho - screened_rates(k_n_Mg23_to_He4_Ne20_reaclib)*Y(Mg23)*state.rho - screened_rates(k_n_Mg23_to_Mg24_reaclib)*Y(Mg23)*state.rho - screened_rates(k_n_Mg23_to_p_Na23_reaclib)*Y(Mg23)*state.rho; + scratch = -screened_rates(k_Mg23_n_to_C12_C12_reaclib)*Y(Mg23)*state.rho - screened_rates(k_Mg23_n_to_He4_Ne20_reaclib)*Y(Mg23)*state.rho - screened_rates(k_Mg23_n_to_Mg24_reaclib)*Y(Mg23)*state.rho - screened_rates(k_Mg23_n_to_p_Na23_derived)*Y(Mg23)*state.rho; jac.set(Mg23, N, scratch); - scratch = screened_rates(k_p_Al26_to_He4_Mg23_reaclib)*Y(Al26)*state.rho + screened_rates(k_p_Na22_to_Mg23_reaclib)*Y(Na22)*state.rho + screened_rates(k_p_Na23_to_n_Mg23_reaclib)*Y(Na23)*state.rho; + scratch = screened_rates(k_Al26_p_to_He4_Mg23_derived)*Y(Al26)*state.rho + screened_rates(k_Na22_p_to_Mg23_reaclib)*Y(Na22)*state.rho + screened_rates(k_Na23_p_to_n_Mg23_reaclib)*Y(Na23)*state.rho; jac.set(Mg23, H1, scratch); jac.set(Mg23, H2, 0.0); jac.set(Mg23, He3, 0.0); - scratch = -screened_rates(k_He4_Mg23_to_p_Al26_reaclib)*Y(Mg23)*state.rho + screened_rates(k_He4_Ne19_to_Mg23_reaclib)*Y(Ne19)*state.rho + screened_rates(k_He4_Ne20_to_n_Mg23_reaclib)*Y(Ne20)*state.rho; + scratch = -screened_rates(k_Mg23_He4_to_p_Al26_reaclib)*Y(Mg23)*state.rho + screened_rates(k_Ne19_He4_to_Mg23_reaclib)*Y(Ne19)*state.rho + screened_rates(k_Ne20_He4_to_n_Mg23_derived)*Y(Ne20)*state.rho; jac.set(Mg23, He4, scratch); jac.set(Mg23, Li6, 0.0); @@ -20903,7 +18712,7 @@ void jac_nuc(const burn_t& state, jac.set(Mg23, B11, 0.0); - scratch = 1.0*screened_rates(k_C12_C12_to_n_Mg23_reaclib)*Y(C12)*state.rho; + scratch = 1.0*screened_rates(k_C12_C12_to_n_Mg23_derived)*Y(C12)*state.rho; jac.set(Mg23, C12, scratch); jac.set(Mg23, C13, 0.0); @@ -20934,10 +18743,10 @@ void jac_nuc(const burn_t& state, jac.set(Mg23, Ne18, 0.0); - scratch = screened_rates(k_He4_Ne19_to_Mg23_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ne19_He4_to_Mg23_reaclib)*Y(He4)*state.rho; jac.set(Mg23, Ne19, scratch); - scratch = screened_rates(k_He4_Ne20_to_n_Mg23_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ne20_He4_to_n_Mg23_derived)*Y(He4)*state.rho; jac.set(Mg23, Ne20, scratch); jac.set(Mg23, Ne21, 0.0); @@ -20946,16 +18755,16 @@ void jac_nuc(const burn_t& state, jac.set(Mg23, Na21, 0.0); - scratch = screened_rates(k_p_Na22_to_Mg23_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Na22_p_to_Mg23_reaclib)*Y(H1)*state.rho; jac.set(Mg23, Na22, scratch); - scratch = screened_rates(k_Na23_to_Mg23_weaktab) + screened_rates(k_p_Na23_to_n_Mg23_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Na23_p_to_n_Mg23_reaclib)*Y(H1)*state.rho + screened_rates(k_Na23_to_Mg23_beta_neg_weaktab); jac.set(Mg23, Na23, scratch); - scratch = -screened_rates(k_He4_Mg23_to_p_Al26_reaclib)*Y(He4)*state.rho - screened_rates(k_Mg23_to_He4_Ne19_reaclib) - screened_rates(k_Mg23_to_Na23_weaktab) - screened_rates(k_Mg23_to_p_Na22_reaclib) - screened_rates(k_n_Mg23_to_C12_C12_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mg23_to_He4_Ne20_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mg23_to_Mg24_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mg23_to_p_Na23_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Mg23_He4_to_p_Al26_reaclib)*Y(He4)*state.rho - screened_rates(k_Mg23_n_to_C12_C12_reaclib)*Y(N)*state.rho - screened_rates(k_Mg23_n_to_He4_Ne20_reaclib)*Y(N)*state.rho - screened_rates(k_Mg23_n_to_Mg24_reaclib)*Y(N)*state.rho - screened_rates(k_Mg23_n_to_p_Na23_derived)*Y(N)*state.rho - screened_rates(k_Mg23_to_He4_Ne19_derived) - screened_rates(k_Mg23_to_Na23_electron_capture_weaktab) - screened_rates(k_Mg23_to_p_Na22_derived); jac.set(Mg23, Mg23, scratch); - scratch = screened_rates(k_Mg24_to_n_Mg23_reaclib); + scratch = screened_rates(k_Mg24_to_n_Mg23_derived); jac.set(Mg23, Mg24, scratch); jac.set(Mg23, Mg25, 0.0); @@ -20964,7 +18773,7 @@ void jac_nuc(const burn_t& state, jac.set(Mg23, Al25, 0.0); - scratch = screened_rates(k_p_Al26_to_He4_Mg23_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Al26_p_to_He4_Mg23_derived)*Y(H1)*state.rho; jac.set(Mg23, Al26, scratch); jac.set(Mg23, Al27, 0.0); @@ -21207,17 +19016,17 @@ void jac_nuc(const burn_t& state, jac.set(Mg23, Ge64, 0.0); - scratch = screened_rates(k_n_Mg23_to_Mg24_reaclib)*Y(Mg23)*state.rho - screened_rates(k_n_Mg24_to_He4_Ne21_reaclib)*Y(Mg24)*state.rho - screened_rates(k_n_Mg24_to_Mg25_reaclib)*Y(Mg24)*state.rho; + scratch = screened_rates(k_Mg23_n_to_Mg24_reaclib)*Y(Mg23)*state.rho - screened_rates(k_Mg24_n_to_He4_Ne21_derived)*Y(Mg24)*state.rho - screened_rates(k_Mg24_n_to_Mg25_reaclib)*Y(Mg24)*state.rho; jac.set(Mg24, N, scratch); - scratch = screened_rates(k_p_Al27_to_He4_Mg24_reaclib)*Y(Al27)*state.rho - screened_rates(k_p_Mg24_to_Al25_reaclib)*Y(Mg24)*state.rho - screened_rates(k_p_Mg24_to_He4_Na21_reaclib)*Y(Mg24)*state.rho + screened_rates(k_p_Na23_to_Mg24_reaclib)*Y(Na23)*state.rho; + scratch = screened_rates(k_Al27_p_to_He4_Mg24_reaclib)*Y(Al27)*state.rho - screened_rates(k_Mg24_p_to_Al25_reaclib)*Y(Mg24)*state.rho - screened_rates(k_Mg24_p_to_He4_Na21_reaclib)*Y(Mg24)*state.rho + screened_rates(k_Na23_p_to_Mg24_reaclib)*Y(Na23)*state.rho; jac.set(Mg24, H1, scratch); jac.set(Mg24, H2, 0.0); jac.set(Mg24, He3, 0.0); - scratch = -screened_rates(k_He4_Mg24_to_C12_O16_reaclib)*Y(Mg24)*state.rho - screened_rates(k_He4_Mg24_to_Si28_reaclib)*Y(Mg24)*state.rho - screened_rates(k_He4_Mg24_to_p_Al27_reaclib)*Y(Mg24)*state.rho + screened_rates(k_He4_Na21_to_p_Mg24_reaclib)*Y(Na21)*state.rho + screened_rates(k_He4_Ne20_to_Mg24_reaclib)*Y(Ne20)*state.rho + screened_rates(k_He4_Ne21_to_n_Mg24_reaclib)*Y(Ne21)*state.rho; + scratch = -screened_rates(k_Mg24_He4_to_C12_O16_derived)*Y(Mg24)*state.rho - screened_rates(k_Mg24_He4_to_Si28_reaclib)*Y(Mg24)*state.rho - screened_rates(k_Mg24_He4_to_p_Al27_derived)*Y(Mg24)*state.rho + screened_rates(k_Na21_He4_to_p_Mg24_derived)*Y(Na21)*state.rho + screened_rates(k_Ne20_He4_to_Mg24_reaclib)*Y(Ne20)*state.rho + screened_rates(k_Ne21_He4_to_n_Mg24_reaclib)*Y(Ne21)*state.rho; jac.set(Mg24, He4, scratch); jac.set(Mg24, Li6, 0.0); @@ -21234,7 +19043,7 @@ void jac_nuc(const burn_t& state, jac.set(Mg24, B11, 0.0); - scratch = screened_rates(k_C12_O16_to_He4_Mg24_reaclib)*Y(O16)*state.rho; + scratch = screened_rates(k_O16_C12_to_He4_Mg24_reaclib)*Y(O16)*state.rho; jac.set(Mg24, C12, scratch); jac.set(Mg24, C13, 0.0); @@ -21251,7 +19060,7 @@ void jac_nuc(const burn_t& state, jac.set(Mg24, O15, 0.0); - scratch = screened_rates(k_C12_O16_to_He4_Mg24_reaclib)*Y(C12)*state.rho; + scratch = screened_rates(k_O16_C12_to_He4_Mg24_reaclib)*Y(C12)*state.rho; jac.set(Mg24, O16, scratch); jac.set(Mg24, O17, 0.0); @@ -21268,42 +19077,42 @@ void jac_nuc(const burn_t& state, jac.set(Mg24, Ne19, 0.0); - scratch = screened_rates(k_He4_Ne20_to_Mg24_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ne20_He4_to_Mg24_reaclib)*Y(He4)*state.rho; jac.set(Mg24, Ne20, scratch); - scratch = screened_rates(k_He4_Ne21_to_n_Mg24_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ne21_He4_to_n_Mg24_reaclib)*Y(He4)*state.rho; jac.set(Mg24, Ne21, scratch); jac.set(Mg24, Ne22, 0.0); - scratch = screened_rates(k_He4_Na21_to_p_Mg24_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Na21_He4_to_p_Mg24_derived)*Y(He4)*state.rho; jac.set(Mg24, Na21, scratch); jac.set(Mg24, Na22, 0.0); - scratch = screened_rates(k_p_Na23_to_Mg24_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Na23_p_to_Mg24_reaclib)*Y(H1)*state.rho; jac.set(Mg24, Na23, scratch); - scratch = screened_rates(k_n_Mg23_to_Mg24_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mg23_n_to_Mg24_reaclib)*Y(N)*state.rho; jac.set(Mg24, Mg23, scratch); - scratch = -screened_rates(k_He4_Mg24_to_C12_O16_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mg24_to_Si28_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mg24_to_p_Al27_reaclib)*Y(He4)*state.rho - screened_rates(k_Mg24_to_He4_Ne20_reaclib) - screened_rates(k_Mg24_to_n_Mg23_reaclib) - screened_rates(k_Mg24_to_p_Na23_reaclib) - screened_rates(k_n_Mg24_to_He4_Ne21_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mg24_to_Mg25_reaclib)*Y(N)*state.rho - screened_rates(k_p_Mg24_to_Al25_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mg24_to_He4_Na21_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Mg24_He4_to_C12_O16_derived)*Y(He4)*state.rho - screened_rates(k_Mg24_He4_to_Si28_reaclib)*Y(He4)*state.rho - screened_rates(k_Mg24_He4_to_p_Al27_derived)*Y(He4)*state.rho - screened_rates(k_Mg24_n_to_He4_Ne21_derived)*Y(N)*state.rho - screened_rates(k_Mg24_n_to_Mg25_reaclib)*Y(N)*state.rho - screened_rates(k_Mg24_p_to_Al25_reaclib)*Y(H1)*state.rho - screened_rates(k_Mg24_p_to_He4_Na21_reaclib)*Y(H1)*state.rho - screened_rates(k_Mg24_to_He4_Ne20_derived) - screened_rates(k_Mg24_to_n_Mg23_derived) - screened_rates(k_Mg24_to_p_Na23_derived); jac.set(Mg24, Mg24, scratch); - scratch = screened_rates(k_Mg25_to_n_Mg24_reaclib); + scratch = screened_rates(k_Mg25_to_n_Mg24_derived); jac.set(Mg24, Mg25, scratch); jac.set(Mg24, Mg26, 0.0); - scratch = screened_rates(k_Al25_to_p_Mg24_reaclib); + scratch = screened_rates(k_Al25_to_p_Mg24_derived); jac.set(Mg24, Al25, scratch); jac.set(Mg24, Al26, 0.0); - scratch = screened_rates(k_p_Al27_to_He4_Mg24_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Al27_p_to_He4_Mg24_reaclib)*Y(H1)*state.rho; jac.set(Mg24, Al27, scratch); - scratch = screened_rates(k_Si28_to_He4_Mg24_reaclib); + scratch = screened_rates(k_Si28_to_He4_Mg24_derived); jac.set(Mg24, Si28, scratch); jac.set(Mg24, Si29, 0.0); @@ -21542,17 +19351,17 @@ void jac_nuc(const burn_t& state, jac.set(Mg24, Ge64, 0.0); - scratch = screened_rates(k_n_Al25_to_p_Mg25_reaclib)*Y(Al25)*state.rho + screened_rates(k_n_Mg24_to_Mg25_reaclib)*Y(Mg24)*state.rho - screened_rates(k_n_Mg25_to_He4_Ne22_reaclib)*Y(Mg25)*state.rho - screened_rates(k_n_Mg25_to_Mg26_reaclib)*Y(Mg25)*state.rho + screened_rates(k_n_Si28_to_He4_Mg25_reaclib)*Y(Si28)*state.rho; + scratch = screened_rates(k_Al25_n_to_p_Mg25_reaclib)*Y(Al25)*state.rho + screened_rates(k_Mg24_n_to_Mg25_reaclib)*Y(Mg24)*state.rho - screened_rates(k_Mg25_n_to_He4_Ne22_derived)*Y(Mg25)*state.rho - screened_rates(k_Mg25_n_to_Mg26_reaclib)*Y(Mg25)*state.rho + screened_rates(k_Si28_n_to_He4_Mg25_derived)*Y(Si28)*state.rho; jac.set(Mg25, N, scratch); - scratch = -screened_rates(k_p_Mg25_to_Al26_reaclib)*Y(Mg25)*state.rho - screened_rates(k_p_Mg25_to_He4_Na22_reaclib)*Y(Mg25)*state.rho - screened_rates(k_p_Mg25_to_n_Al25_reaclib)*Y(Mg25)*state.rho; + scratch = -screened_rates(k_Mg25_p_to_Al26_reaclib)*Y(Mg25)*state.rho - screened_rates(k_Mg25_p_to_He4_Na22_derived)*Y(Mg25)*state.rho - screened_rates(k_Mg25_p_to_n_Al25_derived)*Y(Mg25)*state.rho; jac.set(Mg25, H1, scratch); jac.set(Mg25, H2, 0.0); jac.set(Mg25, He3, 0.0); - scratch = -screened_rates(k_He4_Mg25_to_Si29_reaclib)*Y(Mg25)*state.rho - screened_rates(k_He4_Mg25_to_n_Si28_reaclib)*Y(Mg25)*state.rho + screened_rates(k_He4_Na22_to_p_Mg25_reaclib)*Y(Na22)*state.rho + screened_rates(k_He4_Ne21_to_Mg25_reaclib)*Y(Ne21)*state.rho + screened_rates(k_He4_Ne22_to_n_Mg25_reaclib)*Y(Ne22)*state.rho; + scratch = -screened_rates(k_Mg25_He4_to_Si29_reaclib)*Y(Mg25)*state.rho - screened_rates(k_Mg25_He4_to_n_Si28_reaclib)*Y(Mg25)*state.rho + screened_rates(k_Na22_He4_to_p_Mg25_reaclib)*Y(Na22)*state.rho + screened_rates(k_Ne21_He4_to_Mg25_reaclib)*Y(Ne21)*state.rho + screened_rates(k_Ne22_He4_to_n_Mg25_reaclib)*Y(Ne22)*state.rho; jac.set(Mg25, He4, scratch); jac.set(Mg25, Li6, 0.0); @@ -21603,42 +19412,42 @@ void jac_nuc(const burn_t& state, jac.set(Mg25, Ne20, 0.0); - scratch = screened_rates(k_He4_Ne21_to_Mg25_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ne21_He4_to_Mg25_reaclib)*Y(He4)*state.rho; jac.set(Mg25, Ne21, scratch); - scratch = screened_rates(k_He4_Ne22_to_n_Mg25_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ne22_He4_to_n_Mg25_reaclib)*Y(He4)*state.rho; jac.set(Mg25, Ne22, scratch); jac.set(Mg25, Na21, 0.0); - scratch = screened_rates(k_He4_Na22_to_p_Mg25_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Na22_He4_to_p_Mg25_reaclib)*Y(He4)*state.rho; jac.set(Mg25, Na22, scratch); jac.set(Mg25, Na23, 0.0); jac.set(Mg25, Mg23, 0.0); - scratch = screened_rates(k_n_Mg24_to_Mg25_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mg24_n_to_Mg25_reaclib)*Y(N)*state.rho; jac.set(Mg25, Mg24, scratch); - scratch = -screened_rates(k_He4_Mg25_to_Si29_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mg25_to_n_Si28_reaclib)*Y(He4)*state.rho - screened_rates(k_Mg25_to_Al25_weaktab) - screened_rates(k_Mg25_to_He4_Ne21_reaclib) - screened_rates(k_Mg25_to_n_Mg24_reaclib) - screened_rates(k_n_Mg25_to_He4_Ne22_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mg25_to_Mg26_reaclib)*Y(N)*state.rho - screened_rates(k_p_Mg25_to_Al26_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mg25_to_He4_Na22_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mg25_to_n_Al25_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Mg25_He4_to_Si29_reaclib)*Y(He4)*state.rho - screened_rates(k_Mg25_He4_to_n_Si28_reaclib)*Y(He4)*state.rho - screened_rates(k_Mg25_n_to_He4_Ne22_derived)*Y(N)*state.rho - screened_rates(k_Mg25_n_to_Mg26_reaclib)*Y(N)*state.rho - screened_rates(k_Mg25_p_to_Al26_reaclib)*Y(H1)*state.rho - screened_rates(k_Mg25_p_to_He4_Na22_derived)*Y(H1)*state.rho - screened_rates(k_Mg25_p_to_n_Al25_derived)*Y(H1)*state.rho - screened_rates(k_Mg25_to_Al25_beta_neg_weaktab) - screened_rates(k_Mg25_to_He4_Ne21_derived) - screened_rates(k_Mg25_to_n_Mg24_derived); jac.set(Mg25, Mg25, scratch); - scratch = screened_rates(k_Mg26_to_n_Mg25_reaclib); + scratch = screened_rates(k_Mg26_to_n_Mg25_derived); jac.set(Mg25, Mg26, scratch); - scratch = screened_rates(k_Al25_to_Mg25_weaktab) + screened_rates(k_n_Al25_to_p_Mg25_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Al25_n_to_p_Mg25_reaclib)*Y(N)*state.rho + screened_rates(k_Al25_to_Mg25_electron_capture_weaktab); jac.set(Mg25, Al25, scratch); - scratch = screened_rates(k_Al26_to_p_Mg25_reaclib); + scratch = screened_rates(k_Al26_to_p_Mg25_derived); jac.set(Mg25, Al26, scratch); jac.set(Mg25, Al27, 0.0); - scratch = screened_rates(k_n_Si28_to_He4_Mg25_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Si28_n_to_He4_Mg25_derived)*Y(N)*state.rho; jac.set(Mg25, Si28, scratch); - scratch = screened_rates(k_Si29_to_He4_Mg25_reaclib); + scratch = screened_rates(k_Si29_to_He4_Mg25_derived); jac.set(Mg25, Si29, scratch); jac.set(Mg25, Si30, 0.0); @@ -21875,17 +19684,17 @@ void jac_nuc(const burn_t& state, jac.set(Mg25, Ge64, 0.0); - scratch = screened_rates(k_n_Al26_to_p_Mg26_reaclib)*Y(Al26)*state.rho + screened_rates(k_n_Mg25_to_Mg26_reaclib)*Y(Mg25)*state.rho + screened_rates(k_n_Si29_to_He4_Mg26_reaclib)*Y(Si29)*state.rho; + scratch = screened_rates(k_Al26_n_to_p_Mg26_reaclib)*Y(Al26)*state.rho + screened_rates(k_Mg25_n_to_Mg26_reaclib)*Y(Mg25)*state.rho + screened_rates(k_Si29_n_to_He4_Mg26_derived)*Y(Si29)*state.rho; jac.set(Mg26, N, scratch); - scratch = -screened_rates(k_p_Mg26_to_Al27_reaclib)*Y(Mg26)*state.rho - screened_rates(k_p_Mg26_to_He4_Na23_reaclib)*Y(Mg26)*state.rho - screened_rates(k_p_Mg26_to_n_Al26_reaclib)*Y(Mg26)*state.rho; + scratch = -screened_rates(k_Mg26_p_to_Al27_reaclib)*Y(Mg26)*state.rho - screened_rates(k_Mg26_p_to_He4_Na23_derived)*Y(Mg26)*state.rho - screened_rates(k_Mg26_p_to_n_Al26_derived)*Y(Mg26)*state.rho; jac.set(Mg26, H1, scratch); jac.set(Mg26, H2, 0.0); jac.set(Mg26, He3, 0.0); - scratch = -screened_rates(k_He4_Mg26_to_Si30_reaclib)*Y(Mg26)*state.rho - screened_rates(k_He4_Mg26_to_n_Si29_reaclib)*Y(Mg26)*state.rho + screened_rates(k_He4_Na23_to_p_Mg26_reaclib)*Y(Na23)*state.rho + screened_rates(k_He4_Ne22_to_Mg26_reaclib)*Y(Ne22)*state.rho; + scratch = -screened_rates(k_Mg26_He4_to_Si30_reaclib)*Y(Mg26)*state.rho - screened_rates(k_Mg26_He4_to_n_Si29_reaclib)*Y(Mg26)*state.rho + screened_rates(k_Na23_He4_to_p_Mg26_reaclib)*Y(Na23)*state.rho + screened_rates(k_Ne22_He4_to_Mg26_reaclib)*Y(Ne22)*state.rho; jac.set(Mg26, He4, scratch); jac.set(Mg26, Li6, 0.0); @@ -21938,40 +19747,40 @@ void jac_nuc(const burn_t& state, jac.set(Mg26, Ne21, 0.0); - scratch = screened_rates(k_He4_Ne22_to_Mg26_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ne22_He4_to_Mg26_reaclib)*Y(He4)*state.rho; jac.set(Mg26, Ne22, scratch); jac.set(Mg26, Na21, 0.0); jac.set(Mg26, Na22, 0.0); - scratch = screened_rates(k_He4_Na23_to_p_Mg26_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Na23_He4_to_p_Mg26_reaclib)*Y(He4)*state.rho; jac.set(Mg26, Na23, scratch); jac.set(Mg26, Mg23, 0.0); jac.set(Mg26, Mg24, 0.0); - scratch = screened_rates(k_n_Mg25_to_Mg26_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mg25_n_to_Mg26_reaclib)*Y(N)*state.rho; jac.set(Mg26, Mg25, scratch); - scratch = -screened_rates(k_He4_Mg26_to_Si30_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mg26_to_n_Si29_reaclib)*Y(He4)*state.rho - screened_rates(k_Mg26_to_Al26_weaktab) - screened_rates(k_Mg26_to_He4_Ne22_reaclib) - screened_rates(k_Mg26_to_n_Mg25_reaclib) - screened_rates(k_p_Mg26_to_Al27_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mg26_to_He4_Na23_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mg26_to_n_Al26_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Mg26_He4_to_Si30_reaclib)*Y(He4)*state.rho - screened_rates(k_Mg26_He4_to_n_Si29_reaclib)*Y(He4)*state.rho - screened_rates(k_Mg26_p_to_Al27_reaclib)*Y(H1)*state.rho - screened_rates(k_Mg26_p_to_He4_Na23_derived)*Y(H1)*state.rho - screened_rates(k_Mg26_p_to_n_Al26_derived)*Y(H1)*state.rho - screened_rates(k_Mg26_to_Al26_beta_neg_weaktab) - screened_rates(k_Mg26_to_He4_Ne22_derived) - screened_rates(k_Mg26_to_n_Mg25_derived); jac.set(Mg26, Mg26, scratch); jac.set(Mg26, Al25, 0.0); - scratch = screened_rates(k_Al26_to_Mg26_weaktab) + screened_rates(k_n_Al26_to_p_Mg26_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Al26_n_to_p_Mg26_reaclib)*Y(N)*state.rho + screened_rates(k_Al26_to_Mg26_electron_capture_weaktab); jac.set(Mg26, Al26, scratch); - scratch = screened_rates(k_Al27_to_p_Mg26_reaclib); + scratch = screened_rates(k_Al27_to_p_Mg26_derived); jac.set(Mg26, Al27, scratch); jac.set(Mg26, Si28, 0.0); - scratch = screened_rates(k_n_Si29_to_He4_Mg26_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Si29_n_to_He4_Mg26_derived)*Y(N)*state.rho; jac.set(Mg26, Si29, scratch); - scratch = screened_rates(k_Si30_to_He4_Mg26_reaclib); + scratch = screened_rates(k_Si30_to_He4_Mg26_derived); jac.set(Mg26, Si30, scratch); jac.set(Mg26, Si31, 0.0); @@ -22206,17 +20015,17 @@ void jac_nuc(const burn_t& state, jac.set(Mg26, Ge64, 0.0); - scratch = -screened_rates(k_n_Al25_to_Al26_reaclib)*Y(Al25)*state.rho - screened_rates(k_n_Al25_to_He4_Na22_reaclib)*Y(Al25)*state.rho - screened_rates(k_n_Al25_to_p_Mg25_reaclib)*Y(Al25)*state.rho; + scratch = -screened_rates(k_Al25_n_to_Al26_reaclib)*Y(Al25)*state.rho - screened_rates(k_Al25_n_to_He4_Na22_reaclib)*Y(Al25)*state.rho - screened_rates(k_Al25_n_to_p_Mg25_reaclib)*Y(Al25)*state.rho; jac.set(Al25, N, scratch); - scratch = screened_rates(k_p_Mg24_to_Al25_reaclib)*Y(Mg24)*state.rho + screened_rates(k_p_Mg25_to_n_Al25_reaclib)*Y(Mg25)*state.rho + screened_rates(k_p_Si28_to_He4_Al25_reaclib)*Y(Si28)*state.rho; + scratch = screened_rates(k_Mg24_p_to_Al25_reaclib)*Y(Mg24)*state.rho + screened_rates(k_Mg25_p_to_n_Al25_derived)*Y(Mg25)*state.rho + screened_rates(k_Si28_p_to_He4_Al25_derived)*Y(Si28)*state.rho; jac.set(Al25, H1, scratch); jac.set(Al25, H2, 0.0); jac.set(Al25, He3, 0.0); - scratch = -screened_rates(k_He4_Al25_to_P29_reaclib)*Y(Al25)*state.rho - screened_rates(k_He4_Al25_to_p_Si28_reaclib)*Y(Al25)*state.rho + screened_rates(k_He4_Na21_to_Al25_reaclib)*Y(Na21)*state.rho + screened_rates(k_He4_Na22_to_n_Al25_reaclib)*Y(Na22)*state.rho; + scratch = -screened_rates(k_Al25_He4_to_P29_reaclib)*Y(Al25)*state.rho - screened_rates(k_Al25_He4_to_p_Si28_reaclib)*Y(Al25)*state.rho + screened_rates(k_Na21_He4_to_Al25_reaclib)*Y(Na21)*state.rho + screened_rates(k_Na22_He4_to_n_Al25_derived)*Y(Na22)*state.rho; jac.set(Al25, He4, scratch); jac.set(Al25, Li6, 0.0); @@ -22271,33 +20080,33 @@ void jac_nuc(const burn_t& state, jac.set(Al25, Ne22, 0.0); - scratch = screened_rates(k_He4_Na21_to_Al25_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Na21_He4_to_Al25_reaclib)*Y(He4)*state.rho; jac.set(Al25, Na21, scratch); - scratch = screened_rates(k_He4_Na22_to_n_Al25_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Na22_He4_to_n_Al25_derived)*Y(He4)*state.rho; jac.set(Al25, Na22, scratch); jac.set(Al25, Na23, 0.0); jac.set(Al25, Mg23, 0.0); - scratch = screened_rates(k_p_Mg24_to_Al25_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mg24_p_to_Al25_reaclib)*Y(H1)*state.rho; jac.set(Al25, Mg24, scratch); - scratch = screened_rates(k_Mg25_to_Al25_weaktab) + screened_rates(k_p_Mg25_to_n_Al25_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mg25_p_to_n_Al25_derived)*Y(H1)*state.rho + screened_rates(k_Mg25_to_Al25_beta_neg_weaktab); jac.set(Al25, Mg25, scratch); jac.set(Al25, Mg26, 0.0); - scratch = -screened_rates(k_Al25_to_He4_Na21_reaclib) - screened_rates(k_Al25_to_Mg25_weaktab) - screened_rates(k_Al25_to_p_Mg24_reaclib) - screened_rates(k_He4_Al25_to_P29_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Al25_to_p_Si28_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Al25_to_Al26_reaclib)*Y(N)*state.rho - screened_rates(k_n_Al25_to_He4_Na22_reaclib)*Y(N)*state.rho - screened_rates(k_n_Al25_to_p_Mg25_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Al25_He4_to_P29_reaclib)*Y(He4)*state.rho - screened_rates(k_Al25_He4_to_p_Si28_reaclib)*Y(He4)*state.rho - screened_rates(k_Al25_n_to_Al26_reaclib)*Y(N)*state.rho - screened_rates(k_Al25_n_to_He4_Na22_reaclib)*Y(N)*state.rho - screened_rates(k_Al25_n_to_p_Mg25_reaclib)*Y(N)*state.rho - screened_rates(k_Al25_to_He4_Na21_derived) - screened_rates(k_Al25_to_Mg25_electron_capture_weaktab) - screened_rates(k_Al25_to_p_Mg24_derived); jac.set(Al25, Al25, scratch); - scratch = screened_rates(k_Al26_to_n_Al25_reaclib); + scratch = screened_rates(k_Al26_to_n_Al25_derived); jac.set(Al25, Al26, scratch); jac.set(Al25, Al27, 0.0); - scratch = screened_rates(k_p_Si28_to_He4_Al25_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Si28_p_to_He4_Al25_derived)*Y(H1)*state.rho; jac.set(Al25, Si28, scratch); jac.set(Al25, Si29, 0.0); @@ -22308,7 +20117,7 @@ void jac_nuc(const burn_t& state, jac.set(Al25, Si32, 0.0); - scratch = screened_rates(k_P29_to_He4_Al25_reaclib); + scratch = screened_rates(k_P29_to_He4_Al25_derived); jac.set(Al25, P29, scratch); jac.set(Al25, P30, 0.0); @@ -22537,17 +20346,17 @@ void jac_nuc(const burn_t& state, jac.set(Al25, Ge64, 0.0); - scratch = screened_rates(k_n_Al25_to_Al26_reaclib)*Y(Al25)*state.rho - screened_rates(k_n_Al26_to_Al27_reaclib)*Y(Al26)*state.rho - screened_rates(k_n_Al26_to_He4_Na23_reaclib)*Y(Al26)*state.rho - screened_rates(k_n_Al26_to_p_Mg26_reaclib)*Y(Al26)*state.rho + screened_rates(k_n_P29_to_He4_Al26_reaclib)*Y(P29)*state.rho; + scratch = screened_rates(k_Al25_n_to_Al26_reaclib)*Y(Al25)*state.rho - screened_rates(k_Al26_n_to_Al27_reaclib)*Y(Al26)*state.rho - screened_rates(k_Al26_n_to_He4_Na23_reaclib)*Y(Al26)*state.rho - screened_rates(k_Al26_n_to_p_Mg26_reaclib)*Y(Al26)*state.rho + screened_rates(k_P29_n_to_He4_Al26_reaclib)*Y(P29)*state.rho; jac.set(Al26, N, scratch); - scratch = -screened_rates(k_p_Al26_to_He4_Mg23_reaclib)*Y(Al26)*state.rho + screened_rates(k_p_Mg25_to_Al26_reaclib)*Y(Mg25)*state.rho + screened_rates(k_p_Mg26_to_n_Al26_reaclib)*Y(Mg26)*state.rho + screened_rates(k_p_Si29_to_He4_Al26_reaclib)*Y(Si29)*state.rho; + scratch = -screened_rates(k_Al26_p_to_He4_Mg23_derived)*Y(Al26)*state.rho + screened_rates(k_Mg25_p_to_Al26_reaclib)*Y(Mg25)*state.rho + screened_rates(k_Mg26_p_to_n_Al26_derived)*Y(Mg26)*state.rho + screened_rates(k_Si29_p_to_He4_Al26_derived)*Y(Si29)*state.rho; jac.set(Al26, H1, scratch); jac.set(Al26, H2, 0.0); jac.set(Al26, He3, 0.0); - scratch = -screened_rates(k_He4_Al26_to_P30_reaclib)*Y(Al26)*state.rho - screened_rates(k_He4_Al26_to_n_P29_reaclib)*Y(Al26)*state.rho - screened_rates(k_He4_Al26_to_p_Si29_reaclib)*Y(Al26)*state.rho + screened_rates(k_He4_Mg23_to_p_Al26_reaclib)*Y(Mg23)*state.rho + screened_rates(k_He4_Na22_to_Al26_reaclib)*Y(Na22)*state.rho + screened_rates(k_He4_Na23_to_n_Al26_reaclib)*Y(Na23)*state.rho; + scratch = -screened_rates(k_Al26_He4_to_P30_reaclib)*Y(Al26)*state.rho - screened_rates(k_Al26_He4_to_n_P29_derived)*Y(Al26)*state.rho - screened_rates(k_Al26_He4_to_p_Si29_reaclib)*Y(Al26)*state.rho + screened_rates(k_Mg23_He4_to_p_Al26_reaclib)*Y(Mg23)*state.rho + screened_rates(k_Na22_He4_to_Al26_reaclib)*Y(Na22)*state.rho + screened_rates(k_Na23_He4_to_n_Al26_derived)*Y(Na23)*state.rho; jac.set(Al26, He4, scratch); jac.set(Al26, Li6, 0.0); @@ -22604,35 +20413,35 @@ void jac_nuc(const burn_t& state, jac.set(Al26, Na21, 0.0); - scratch = screened_rates(k_He4_Na22_to_Al26_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Na22_He4_to_Al26_reaclib)*Y(He4)*state.rho; jac.set(Al26, Na22, scratch); - scratch = screened_rates(k_He4_Na23_to_n_Al26_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Na23_He4_to_n_Al26_derived)*Y(He4)*state.rho; jac.set(Al26, Na23, scratch); - scratch = screened_rates(k_He4_Mg23_to_p_Al26_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mg23_He4_to_p_Al26_reaclib)*Y(He4)*state.rho; jac.set(Al26, Mg23, scratch); jac.set(Al26, Mg24, 0.0); - scratch = screened_rates(k_p_Mg25_to_Al26_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mg25_p_to_Al26_reaclib)*Y(H1)*state.rho; jac.set(Al26, Mg25, scratch); - scratch = screened_rates(k_Mg26_to_Al26_weaktab) + screened_rates(k_p_Mg26_to_n_Al26_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mg26_p_to_n_Al26_derived)*Y(H1)*state.rho + screened_rates(k_Mg26_to_Al26_beta_neg_weaktab); jac.set(Al26, Mg26, scratch); - scratch = screened_rates(k_n_Al25_to_Al26_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Al25_n_to_Al26_reaclib)*Y(N)*state.rho; jac.set(Al26, Al25, scratch); - scratch = -screened_rates(k_Al26_to_He4_Na22_reaclib) - screened_rates(k_Al26_to_Mg26_weaktab) - screened_rates(k_Al26_to_n_Al25_reaclib) - screened_rates(k_Al26_to_p_Mg25_reaclib) - screened_rates(k_He4_Al26_to_P30_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Al26_to_n_P29_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Al26_to_p_Si29_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Al26_to_Al27_reaclib)*Y(N)*state.rho - screened_rates(k_n_Al26_to_He4_Na23_reaclib)*Y(N)*state.rho - screened_rates(k_n_Al26_to_p_Mg26_reaclib)*Y(N)*state.rho - screened_rates(k_p_Al26_to_He4_Mg23_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Al26_He4_to_P30_reaclib)*Y(He4)*state.rho - screened_rates(k_Al26_He4_to_n_P29_derived)*Y(He4)*state.rho - screened_rates(k_Al26_He4_to_p_Si29_reaclib)*Y(He4)*state.rho - screened_rates(k_Al26_n_to_Al27_reaclib)*Y(N)*state.rho - screened_rates(k_Al26_n_to_He4_Na23_reaclib)*Y(N)*state.rho - screened_rates(k_Al26_n_to_p_Mg26_reaclib)*Y(N)*state.rho - screened_rates(k_Al26_p_to_He4_Mg23_derived)*Y(H1)*state.rho - screened_rates(k_Al26_to_He4_Na22_derived) - screened_rates(k_Al26_to_Mg26_electron_capture_weaktab) - screened_rates(k_Al26_to_n_Al25_derived) - screened_rates(k_Al26_to_p_Mg25_derived); jac.set(Al26, Al26, scratch); - scratch = screened_rates(k_Al27_to_n_Al26_reaclib); + scratch = screened_rates(k_Al27_to_n_Al26_derived); jac.set(Al26, Al27, scratch); jac.set(Al26, Si28, 0.0); - scratch = screened_rates(k_p_Si29_to_He4_Al26_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Si29_p_to_He4_Al26_derived)*Y(H1)*state.rho; jac.set(Al26, Si29, scratch); jac.set(Al26, Si30, 0.0); @@ -22641,10 +20450,10 @@ void jac_nuc(const burn_t& state, jac.set(Al26, Si32, 0.0); - scratch = screened_rates(k_n_P29_to_He4_Al26_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_P29_n_to_He4_Al26_reaclib)*Y(N)*state.rho; jac.set(Al26, P29, scratch); - scratch = screened_rates(k_P30_to_He4_Al26_reaclib); + scratch = screened_rates(k_P30_to_He4_Al26_derived); jac.set(Al26, P30, scratch); jac.set(Al26, P31, 0.0); @@ -22871,17 +20680,17 @@ void jac_nuc(const burn_t& state, jac.set(Al26, Ge64, 0.0); - scratch = screened_rates(k_n_Al26_to_Al27_reaclib)*Y(Al26)*state.rho + screened_rates(k_n_P30_to_He4_Al27_reaclib)*Y(P30)*state.rho; + scratch = screened_rates(k_Al26_n_to_Al27_reaclib)*Y(Al26)*state.rho + screened_rates(k_P30_n_to_He4_Al27_derived)*Y(P30)*state.rho; jac.set(Al27, N, scratch); - scratch = -screened_rates(k_p_Al27_to_C12_O16_reaclib)*Y(Al27)*state.rho - screened_rates(k_p_Al27_to_He4_Mg24_reaclib)*Y(Al27)*state.rho - screened_rates(k_p_Al27_to_Si28_reaclib)*Y(Al27)*state.rho + screened_rates(k_p_Mg26_to_Al27_reaclib)*Y(Mg26)*state.rho + screened_rates(k_p_Si30_to_He4_Al27_reaclib)*Y(Si30)*state.rho; + scratch = -screened_rates(k_Al27_p_to_C12_O16_derived)*Y(Al27)*state.rho - screened_rates(k_Al27_p_to_He4_Mg24_reaclib)*Y(Al27)*state.rho - screened_rates(k_Al27_p_to_Si28_reaclib)*Y(Al27)*state.rho + screened_rates(k_Mg26_p_to_Al27_reaclib)*Y(Mg26)*state.rho + screened_rates(k_Si30_p_to_He4_Al27_derived)*Y(Si30)*state.rho; jac.set(Al27, H1, scratch); jac.set(Al27, H2, 0.0); jac.set(Al27, He3, 0.0); - scratch = -screened_rates(k_He4_Al27_to_P31_reaclib)*Y(Al27)*state.rho - screened_rates(k_He4_Al27_to_n_P30_reaclib)*Y(Al27)*state.rho - screened_rates(k_He4_Al27_to_p_Si30_reaclib)*Y(Al27)*state.rho + screened_rates(k_He4_Mg24_to_p_Al27_reaclib)*Y(Mg24)*state.rho + screened_rates(k_He4_Na23_to_Al27_reaclib)*Y(Na23)*state.rho; + scratch = -screened_rates(k_Al27_He4_to_P31_reaclib)*Y(Al27)*state.rho - screened_rates(k_Al27_He4_to_n_P30_reaclib)*Y(Al27)*state.rho - screened_rates(k_Al27_He4_to_p_Si30_reaclib)*Y(Al27)*state.rho + screened_rates(k_Mg24_He4_to_p_Al27_derived)*Y(Mg24)*state.rho + screened_rates(k_Na23_He4_to_Al27_reaclib)*Y(Na23)*state.rho; jac.set(Al27, He4, scratch); jac.set(Al27, Li6, 0.0); @@ -22898,7 +20707,7 @@ void jac_nuc(const burn_t& state, jac.set(Al27, B11, 0.0); - scratch = screened_rates(k_C12_O16_to_p_Al27_reaclib)*Y(O16)*state.rho; + scratch = screened_rates(k_O16_C12_to_p_Al27_reaclib)*Y(O16)*state.rho; jac.set(Al27, C12, scratch); jac.set(Al27, C13, 0.0); @@ -22915,7 +20724,7 @@ void jac_nuc(const burn_t& state, jac.set(Al27, O15, 0.0); - scratch = screened_rates(k_C12_O16_to_p_Al27_reaclib)*Y(C12)*state.rho; + scratch = screened_rates(k_O16_C12_to_p_Al27_reaclib)*Y(C12)*state.rho; jac.set(Al27, O16, scratch); jac.set(Al27, O17, 0.0); @@ -22942,33 +20751,33 @@ void jac_nuc(const burn_t& state, jac.set(Al27, Na22, 0.0); - scratch = screened_rates(k_He4_Na23_to_Al27_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Na23_He4_to_Al27_reaclib)*Y(He4)*state.rho; jac.set(Al27, Na23, scratch); jac.set(Al27, Mg23, 0.0); - scratch = screened_rates(k_He4_Mg24_to_p_Al27_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mg24_He4_to_p_Al27_derived)*Y(He4)*state.rho; jac.set(Al27, Mg24, scratch); jac.set(Al27, Mg25, 0.0); - scratch = screened_rates(k_p_Mg26_to_Al27_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mg26_p_to_Al27_reaclib)*Y(H1)*state.rho; jac.set(Al27, Mg26, scratch); jac.set(Al27, Al25, 0.0); - scratch = screened_rates(k_n_Al26_to_Al27_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Al26_n_to_Al27_reaclib)*Y(N)*state.rho; jac.set(Al27, Al26, scratch); - scratch = -screened_rates(k_Al27_to_He4_Na23_reaclib) - screened_rates(k_Al27_to_n_Al26_reaclib) - screened_rates(k_Al27_to_p_Mg26_reaclib) - screened_rates(k_He4_Al27_to_P31_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Al27_to_n_P30_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Al27_to_p_Si30_reaclib)*Y(He4)*state.rho - screened_rates(k_p_Al27_to_C12_O16_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Al27_to_He4_Mg24_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Al27_to_Si28_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Al27_He4_to_P31_reaclib)*Y(He4)*state.rho - screened_rates(k_Al27_He4_to_n_P30_reaclib)*Y(He4)*state.rho - screened_rates(k_Al27_He4_to_p_Si30_reaclib)*Y(He4)*state.rho - screened_rates(k_Al27_p_to_C12_O16_derived)*Y(H1)*state.rho - screened_rates(k_Al27_p_to_He4_Mg24_reaclib)*Y(H1)*state.rho - screened_rates(k_Al27_p_to_Si28_reaclib)*Y(H1)*state.rho - screened_rates(k_Al27_to_He4_Na23_derived) - screened_rates(k_Al27_to_n_Al26_derived) - screened_rates(k_Al27_to_p_Mg26_derived); jac.set(Al27, Al27, scratch); - scratch = screened_rates(k_Si28_to_p_Al27_reaclib); + scratch = screened_rates(k_Si28_to_p_Al27_derived); jac.set(Al27, Si28, scratch); jac.set(Al27, Si29, 0.0); - scratch = screened_rates(k_p_Si30_to_He4_Al27_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Si30_p_to_He4_Al27_derived)*Y(H1)*state.rho; jac.set(Al27, Si30, scratch); jac.set(Al27, Si31, 0.0); @@ -22977,10 +20786,10 @@ void jac_nuc(const burn_t& state, jac.set(Al27, P29, 0.0); - scratch = screened_rates(k_n_P30_to_He4_Al27_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_P30_n_to_He4_Al27_derived)*Y(N)*state.rho; jac.set(Al27, P30, scratch); - scratch = screened_rates(k_P31_to_He4_Al27_reaclib); + scratch = screened_rates(k_P31_to_He4_Al27_derived); jac.set(Al27, P31, scratch); jac.set(Al27, P32, 0.0); @@ -23205,17 +21014,17 @@ void jac_nuc(const burn_t& state, jac.set(Al27, Ge64, 0.0); - scratch = -screened_rates(k_n_Si28_to_He4_Mg25_reaclib)*Y(Si28)*state.rho - screened_rates(k_n_Si28_to_Si29_reaclib)*Y(Si28)*state.rho; + scratch = -screened_rates(k_Si28_n_to_He4_Mg25_derived)*Y(Si28)*state.rho - screened_rates(k_Si28_n_to_Si29_reaclib)*Y(Si28)*state.rho; jac.set(Si28, N, scratch); - scratch = screened_rates(k_p_Al27_to_Si28_reaclib)*Y(Al27)*state.rho + screened_rates(k_p_P31_to_He4_Si28_reaclib)*Y(P31)*state.rho - screened_rates(k_p_Si28_to_He4_Al25_reaclib)*Y(Si28)*state.rho - screened_rates(k_p_Si28_to_P29_reaclib)*Y(Si28)*state.rho; + scratch = screened_rates(k_Al27_p_to_Si28_reaclib)*Y(Al27)*state.rho + screened_rates(k_P31_p_to_He4_Si28_reaclib)*Y(P31)*state.rho - screened_rates(k_Si28_p_to_He4_Al25_derived)*Y(Si28)*state.rho - screened_rates(k_Si28_p_to_P29_reaclib)*Y(Si28)*state.rho; jac.set(Si28, H1, scratch); jac.set(Si28, H2, 0.0); jac.set(Si28, He3, 0.0); - scratch = screened_rates(k_He4_Al25_to_p_Si28_reaclib)*Y(Al25)*state.rho + screened_rates(k_He4_Mg24_to_Si28_reaclib)*Y(Mg24)*state.rho + screened_rates(k_He4_Mg25_to_n_Si28_reaclib)*Y(Mg25)*state.rho - screened_rates(k_He4_Si28_to_C12_Ne20_reaclib)*Y(Si28)*state.rho - screened_rates(k_He4_Si28_to_O16_O16_reaclib)*Y(Si28)*state.rho - screened_rates(k_He4_Si28_to_S32_reaclib)*Y(Si28)*state.rho - screened_rates(k_He4_Si28_to_p_P31_reaclib)*Y(Si28)*state.rho; + scratch = screened_rates(k_Al25_He4_to_p_Si28_reaclib)*Y(Al25)*state.rho + screened_rates(k_Mg24_He4_to_Si28_reaclib)*Y(Mg24)*state.rho + screened_rates(k_Mg25_He4_to_n_Si28_reaclib)*Y(Mg25)*state.rho - screened_rates(k_Si28_He4_to_C12_Ne20_derived)*Y(Si28)*state.rho - screened_rates(k_Si28_He4_to_O16_O16_derived)*Y(Si28)*state.rho - screened_rates(k_Si28_He4_to_S32_reaclib)*Y(Si28)*state.rho - screened_rates(k_Si28_He4_to_p_P31_derived)*Y(Si28)*state.rho; jac.set(Si28, He4, scratch); jac.set(Si28, Li6, 0.0); @@ -23232,7 +21041,7 @@ void jac_nuc(const burn_t& state, jac.set(Si28, B11, 0.0); - scratch = screened_rates(k_C12_Ne20_to_He4_Si28_reaclib)*Y(Ne20)*state.rho; + scratch = screened_rates(k_Ne20_C12_to_He4_Si28_reaclib)*Y(Ne20)*state.rho; jac.set(Si28, C12, scratch); jac.set(Si28, C13, 0.0); @@ -23266,7 +21075,7 @@ void jac_nuc(const burn_t& state, jac.set(Si28, Ne19, 0.0); - scratch = screened_rates(k_C12_Ne20_to_He4_Si28_reaclib)*Y(C12)*state.rho; + scratch = screened_rates(k_Ne20_C12_to_He4_Si28_reaclib)*Y(C12)*state.rho; jac.set(Si28, Ne20, scratch); jac.set(Si28, Ne21, 0.0); @@ -23281,26 +21090,26 @@ void jac_nuc(const burn_t& state, jac.set(Si28, Mg23, 0.0); - scratch = screened_rates(k_He4_Mg24_to_Si28_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mg24_He4_to_Si28_reaclib)*Y(He4)*state.rho; jac.set(Si28, Mg24, scratch); - scratch = screened_rates(k_He4_Mg25_to_n_Si28_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mg25_He4_to_n_Si28_reaclib)*Y(He4)*state.rho; jac.set(Si28, Mg25, scratch); jac.set(Si28, Mg26, 0.0); - scratch = screened_rates(k_He4_Al25_to_p_Si28_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Al25_He4_to_p_Si28_reaclib)*Y(He4)*state.rho; jac.set(Si28, Al25, scratch); jac.set(Si28, Al26, 0.0); - scratch = screened_rates(k_p_Al27_to_Si28_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Al27_p_to_Si28_reaclib)*Y(H1)*state.rho; jac.set(Si28, Al27, scratch); - scratch = -screened_rates(k_He4_Si28_to_C12_Ne20_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Si28_to_O16_O16_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Si28_to_S32_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Si28_to_p_P31_reaclib)*Y(He4)*state.rho - screened_rates(k_Si28_to_He4_Mg24_reaclib) - screened_rates(k_Si28_to_p_Al27_reaclib) - screened_rates(k_n_Si28_to_He4_Mg25_reaclib)*Y(N)*state.rho - screened_rates(k_n_Si28_to_Si29_reaclib)*Y(N)*state.rho - screened_rates(k_p_Si28_to_He4_Al25_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Si28_to_P29_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Si28_He4_to_C12_Ne20_derived)*Y(He4)*state.rho - screened_rates(k_Si28_He4_to_O16_O16_derived)*Y(He4)*state.rho - screened_rates(k_Si28_He4_to_S32_reaclib)*Y(He4)*state.rho - screened_rates(k_Si28_He4_to_p_P31_derived)*Y(He4)*state.rho - screened_rates(k_Si28_n_to_He4_Mg25_derived)*Y(N)*state.rho - screened_rates(k_Si28_n_to_Si29_reaclib)*Y(N)*state.rho - screened_rates(k_Si28_p_to_He4_Al25_derived)*Y(H1)*state.rho - screened_rates(k_Si28_p_to_P29_reaclib)*Y(H1)*state.rho - screened_rates(k_Si28_to_He4_Mg24_derived) - screened_rates(k_Si28_to_p_Al27_derived); jac.set(Si28, Si28, scratch); - scratch = screened_rates(k_Si29_to_n_Si28_reaclib); + scratch = screened_rates(k_Si29_to_n_Si28_derived); jac.set(Si28, Si29, scratch); jac.set(Si28, Si30, 0.0); @@ -23309,19 +21118,19 @@ void jac_nuc(const burn_t& state, jac.set(Si28, Si32, 0.0); - scratch = screened_rates(k_P29_to_p_Si28_reaclib); + scratch = screened_rates(k_P29_to_p_Si28_derived); jac.set(Si28, P29, scratch); jac.set(Si28, P30, 0.0); - scratch = screened_rates(k_p_P31_to_He4_Si28_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_P31_p_to_He4_Si28_reaclib)*Y(H1)*state.rho; jac.set(Si28, P31, scratch); jac.set(Si28, P32, 0.0); jac.set(Si28, P33, 0.0); - scratch = screened_rates(k_S32_to_He4_Si28_reaclib); + scratch = screened_rates(k_S32_to_He4_Si28_derived); jac.set(Si28, S32, scratch); jac.set(Si28, S33, 0.0); @@ -23540,17 +21349,17 @@ void jac_nuc(const burn_t& state, jac.set(Si28, Ge64, 0.0); - scratch = screened_rates(k_n_P29_to_p_Si29_reaclib)*Y(P29)*state.rho + screened_rates(k_n_S32_to_He4_Si29_reaclib)*Y(S32)*state.rho + screened_rates(k_n_Si28_to_Si29_reaclib)*Y(Si28)*state.rho - screened_rates(k_n_Si29_to_He4_Mg26_reaclib)*Y(Si29)*state.rho - screened_rates(k_n_Si29_to_Si30_reaclib)*Y(Si29)*state.rho; + scratch = screened_rates(k_P29_n_to_p_Si29_reaclib)*Y(P29)*state.rho + screened_rates(k_S32_n_to_He4_Si29_reaclib)*Y(S32)*state.rho + screened_rates(k_Si28_n_to_Si29_reaclib)*Y(Si28)*state.rho - screened_rates(k_Si29_n_to_He4_Mg26_derived)*Y(Si29)*state.rho - screened_rates(k_Si29_n_to_Si30_reaclib)*Y(Si29)*state.rho; jac.set(Si29, N, scratch); - scratch = screened_rates(k_p_P32_to_He4_Si29_reaclib)*Y(P32)*state.rho - screened_rates(k_p_Si29_to_He4_Al26_reaclib)*Y(Si29)*state.rho - screened_rates(k_p_Si29_to_P30_reaclib)*Y(Si29)*state.rho - screened_rates(k_p_Si29_to_n_P29_reaclib)*Y(Si29)*state.rho; + scratch = screened_rates(k_P32_p_to_He4_Si29_reaclib)*Y(P32)*state.rho - screened_rates(k_Si29_p_to_He4_Al26_derived)*Y(Si29)*state.rho - screened_rates(k_Si29_p_to_P30_reaclib)*Y(Si29)*state.rho - screened_rates(k_Si29_p_to_n_P29_derived)*Y(Si29)*state.rho; jac.set(Si29, H1, scratch); jac.set(Si29, H2, 0.0); jac.set(Si29, He3, 0.0); - scratch = screened_rates(k_He4_Al26_to_p_Si29_reaclib)*Y(Al26)*state.rho + screened_rates(k_He4_Mg25_to_Si29_reaclib)*Y(Mg25)*state.rho + screened_rates(k_He4_Mg26_to_n_Si29_reaclib)*Y(Mg26)*state.rho - screened_rates(k_He4_Si29_to_S33_reaclib)*Y(Si29)*state.rho - screened_rates(k_He4_Si29_to_n_S32_reaclib)*Y(Si29)*state.rho - screened_rates(k_He4_Si29_to_p_P32_reaclib)*Y(Si29)*state.rho; + scratch = screened_rates(k_Al26_He4_to_p_Si29_reaclib)*Y(Al26)*state.rho + screened_rates(k_Mg25_He4_to_Si29_reaclib)*Y(Mg25)*state.rho + screened_rates(k_Mg26_He4_to_n_Si29_reaclib)*Y(Mg26)*state.rho - screened_rates(k_Si29_He4_to_S33_reaclib)*Y(Si29)*state.rho - screened_rates(k_Si29_He4_to_n_S32_derived)*Y(Si29)*state.rho - screened_rates(k_Si29_He4_to_p_P32_derived)*Y(Si29)*state.rho; jac.set(Si29, He4, scratch); jac.set(Si29, Li6, 0.0); @@ -23615,49 +21424,49 @@ void jac_nuc(const burn_t& state, jac.set(Si29, Mg24, 0.0); - scratch = screened_rates(k_He4_Mg25_to_Si29_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mg25_He4_to_Si29_reaclib)*Y(He4)*state.rho; jac.set(Si29, Mg25, scratch); - scratch = screened_rates(k_He4_Mg26_to_n_Si29_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mg26_He4_to_n_Si29_reaclib)*Y(He4)*state.rho; jac.set(Si29, Mg26, scratch); jac.set(Si29, Al25, 0.0); - scratch = screened_rates(k_He4_Al26_to_p_Si29_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Al26_He4_to_p_Si29_reaclib)*Y(He4)*state.rho; jac.set(Si29, Al26, scratch); jac.set(Si29, Al27, 0.0); - scratch = screened_rates(k_n_Si28_to_Si29_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Si28_n_to_Si29_reaclib)*Y(N)*state.rho; jac.set(Si29, Si28, scratch); - scratch = -screened_rates(k_He4_Si29_to_S33_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Si29_to_n_S32_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Si29_to_p_P32_reaclib)*Y(He4)*state.rho - screened_rates(k_Si29_to_He4_Mg25_reaclib) - screened_rates(k_Si29_to_P29_weaktab) - screened_rates(k_Si29_to_n_Si28_reaclib) - screened_rates(k_n_Si29_to_He4_Mg26_reaclib)*Y(N)*state.rho - screened_rates(k_n_Si29_to_Si30_reaclib)*Y(N)*state.rho - screened_rates(k_p_Si29_to_He4_Al26_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Si29_to_P30_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Si29_to_n_P29_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Si29_He4_to_S33_reaclib)*Y(He4)*state.rho - screened_rates(k_Si29_He4_to_n_S32_derived)*Y(He4)*state.rho - screened_rates(k_Si29_He4_to_p_P32_derived)*Y(He4)*state.rho - screened_rates(k_Si29_n_to_He4_Mg26_derived)*Y(N)*state.rho - screened_rates(k_Si29_n_to_Si30_reaclib)*Y(N)*state.rho - screened_rates(k_Si29_p_to_He4_Al26_derived)*Y(H1)*state.rho - screened_rates(k_Si29_p_to_P30_reaclib)*Y(H1)*state.rho - screened_rates(k_Si29_p_to_n_P29_derived)*Y(H1)*state.rho - screened_rates(k_Si29_to_He4_Mg25_derived) - screened_rates(k_Si29_to_P29_beta_neg_weaktab) - screened_rates(k_Si29_to_n_Si28_derived); jac.set(Si29, Si29, scratch); - scratch = screened_rates(k_Si30_to_n_Si29_reaclib); + scratch = screened_rates(k_Si30_to_n_Si29_derived); jac.set(Si29, Si30, scratch); jac.set(Si29, Si31, 0.0); jac.set(Si29, Si32, 0.0); - scratch = screened_rates(k_P29_to_Si29_weaktab) + screened_rates(k_n_P29_to_p_Si29_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_P29_n_to_p_Si29_reaclib)*Y(N)*state.rho + screened_rates(k_P29_to_Si29_electron_capture_weaktab); jac.set(Si29, P29, scratch); - scratch = screened_rates(k_P30_to_p_Si29_reaclib); + scratch = screened_rates(k_P30_to_p_Si29_derived); jac.set(Si29, P30, scratch); jac.set(Si29, P31, 0.0); - scratch = screened_rates(k_p_P32_to_He4_Si29_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_P32_p_to_He4_Si29_reaclib)*Y(H1)*state.rho; jac.set(Si29, P32, scratch); jac.set(Si29, P33, 0.0); - scratch = screened_rates(k_n_S32_to_He4_Si29_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_S32_n_to_He4_Si29_reaclib)*Y(N)*state.rho; jac.set(Si29, S32, scratch); - scratch = screened_rates(k_S33_to_He4_Si29_reaclib); + scratch = screened_rates(k_S33_to_He4_Si29_derived); jac.set(Si29, S33, scratch); jac.set(Si29, S34, 0.0); @@ -23874,17 +21683,17 @@ void jac_nuc(const burn_t& state, jac.set(Si29, Ge64, 0.0); - scratch = screened_rates(k_n_P30_to_p_Si30_reaclib)*Y(P30)*state.rho + screened_rates(k_n_S33_to_He4_Si30_reaclib)*Y(S33)*state.rho + screened_rates(k_n_Si29_to_Si30_reaclib)*Y(Si29)*state.rho - screened_rates(k_n_Si30_to_Si31_reaclib)*Y(Si30)*state.rho; + scratch = screened_rates(k_P30_n_to_p_Si30_reaclib)*Y(P30)*state.rho + screened_rates(k_S33_n_to_He4_Si30_reaclib)*Y(S33)*state.rho + screened_rates(k_Si29_n_to_Si30_reaclib)*Y(Si29)*state.rho - screened_rates(k_Si30_n_to_Si31_reaclib)*Y(Si30)*state.rho; jac.set(Si30, N, scratch); - scratch = screened_rates(k_p_P33_to_He4_Si30_reaclib)*Y(P33)*state.rho - screened_rates(k_p_Si30_to_He4_Al27_reaclib)*Y(Si30)*state.rho - screened_rates(k_p_Si30_to_P31_reaclib)*Y(Si30)*state.rho - screened_rates(k_p_Si30_to_n_P30_reaclib)*Y(Si30)*state.rho; + scratch = screened_rates(k_P33_p_to_He4_Si30_reaclib)*Y(P33)*state.rho - screened_rates(k_Si30_p_to_He4_Al27_derived)*Y(Si30)*state.rho - screened_rates(k_Si30_p_to_P31_reaclib)*Y(Si30)*state.rho - screened_rates(k_Si30_p_to_n_P30_derived)*Y(Si30)*state.rho; jac.set(Si30, H1, scratch); jac.set(Si30, H2, 0.0); jac.set(Si30, He3, 0.0); - scratch = screened_rates(k_He4_Al27_to_p_Si30_reaclib)*Y(Al27)*state.rho + screened_rates(k_He4_Mg26_to_Si30_reaclib)*Y(Mg26)*state.rho - screened_rates(k_He4_Si30_to_S34_reaclib)*Y(Si30)*state.rho - screened_rates(k_He4_Si30_to_n_S33_reaclib)*Y(Si30)*state.rho - screened_rates(k_He4_Si30_to_p_P33_reaclib)*Y(Si30)*state.rho; + scratch = screened_rates(k_Al27_He4_to_p_Si30_reaclib)*Y(Al27)*state.rho + screened_rates(k_Mg26_He4_to_Si30_reaclib)*Y(Mg26)*state.rho - screened_rates(k_Si30_He4_to_S34_reaclib)*Y(Si30)*state.rho - screened_rates(k_Si30_He4_to_n_S33_derived)*Y(Si30)*state.rho - screened_rates(k_Si30_He4_to_p_P33_derived)*Y(Si30)*state.rho; jac.set(Si30, He4, scratch); jac.set(Si30, Li6, 0.0); @@ -23951,48 +21760,48 @@ void jac_nuc(const burn_t& state, jac.set(Si30, Mg25, 0.0); - scratch = screened_rates(k_He4_Mg26_to_Si30_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mg26_He4_to_Si30_reaclib)*Y(He4)*state.rho; jac.set(Si30, Mg26, scratch); jac.set(Si30, Al25, 0.0); jac.set(Si30, Al26, 0.0); - scratch = screened_rates(k_He4_Al27_to_p_Si30_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Al27_He4_to_p_Si30_reaclib)*Y(He4)*state.rho; jac.set(Si30, Al27, scratch); jac.set(Si30, Si28, 0.0); - scratch = screened_rates(k_n_Si29_to_Si30_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Si29_n_to_Si30_reaclib)*Y(N)*state.rho; jac.set(Si30, Si29, scratch); - scratch = -screened_rates(k_He4_Si30_to_S34_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Si30_to_n_S33_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Si30_to_p_P33_reaclib)*Y(He4)*state.rho - screened_rates(k_Si30_to_He4_Mg26_reaclib) - screened_rates(k_Si30_to_P30_weaktab) - screened_rates(k_Si30_to_n_Si29_reaclib) - screened_rates(k_n_Si30_to_Si31_reaclib)*Y(N)*state.rho - screened_rates(k_p_Si30_to_He4_Al27_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Si30_to_P31_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Si30_to_n_P30_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Si30_He4_to_S34_reaclib)*Y(He4)*state.rho - screened_rates(k_Si30_He4_to_n_S33_derived)*Y(He4)*state.rho - screened_rates(k_Si30_He4_to_p_P33_derived)*Y(He4)*state.rho - screened_rates(k_Si30_n_to_Si31_reaclib)*Y(N)*state.rho - screened_rates(k_Si30_p_to_He4_Al27_derived)*Y(H1)*state.rho - screened_rates(k_Si30_p_to_P31_reaclib)*Y(H1)*state.rho - screened_rates(k_Si30_p_to_n_P30_derived)*Y(H1)*state.rho - screened_rates(k_Si30_to_He4_Mg26_derived) - screened_rates(k_Si30_to_P30_beta_neg_weaktab) - screened_rates(k_Si30_to_n_Si29_derived); jac.set(Si30, Si30, scratch); - scratch = screened_rates(k_Si31_to_n_Si30_reaclib); + scratch = screened_rates(k_Si31_to_n_Si30_derived); jac.set(Si30, Si31, scratch); jac.set(Si30, Si32, 0.0); jac.set(Si30, P29, 0.0); - scratch = screened_rates(k_P30_to_Si30_weaktab) + screened_rates(k_n_P30_to_p_Si30_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_P30_n_to_p_Si30_reaclib)*Y(N)*state.rho + screened_rates(k_P30_to_Si30_electron_capture_weaktab); jac.set(Si30, P30, scratch); - scratch = screened_rates(k_P31_to_p_Si30_reaclib); + scratch = screened_rates(k_P31_to_p_Si30_derived); jac.set(Si30, P31, scratch); jac.set(Si30, P32, 0.0); - scratch = screened_rates(k_p_P33_to_He4_Si30_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_P33_p_to_He4_Si30_reaclib)*Y(H1)*state.rho; jac.set(Si30, P33, scratch); jac.set(Si30, S32, 0.0); - scratch = screened_rates(k_n_S33_to_He4_Si30_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_S33_n_to_He4_Si30_reaclib)*Y(N)*state.rho; jac.set(Si30, S33, scratch); - scratch = screened_rates(k_S34_to_He4_Si30_reaclib); + scratch = screened_rates(k_S34_to_He4_Si30_derived); jac.set(Si30, S34, scratch); jac.set(Si30, S35, 0.0); @@ -24207,17 +22016,17 @@ void jac_nuc(const burn_t& state, jac.set(Si30, Ge64, 0.0); - scratch = screened_rates(k_n_P31_to_p_Si31_reaclib)*Y(P31)*state.rho + screened_rates(k_n_S34_to_He4_Si31_reaclib)*Y(S34)*state.rho + screened_rates(k_n_Si30_to_Si31_reaclib)*Y(Si30)*state.rho - screened_rates(k_n_Si31_to_Si32_reaclib)*Y(Si31)*state.rho; + scratch = screened_rates(k_P31_n_to_p_Si31_derived)*Y(P31)*state.rho + screened_rates(k_S34_n_to_He4_Si31_derived)*Y(S34)*state.rho + screened_rates(k_Si30_n_to_Si31_reaclib)*Y(Si30)*state.rho - screened_rates(k_Si31_n_to_Si32_reaclib)*Y(Si31)*state.rho; jac.set(Si31, N, scratch); - scratch = -screened_rates(k_p_Si31_to_P32_reaclib)*Y(Si31)*state.rho - screened_rates(k_p_Si31_to_n_P31_reaclib)*Y(Si31)*state.rho; + scratch = -screened_rates(k_Si31_p_to_P32_reaclib)*Y(Si31)*state.rho - screened_rates(k_Si31_p_to_n_P31_reaclib)*Y(Si31)*state.rho; jac.set(Si31, H1, scratch); jac.set(Si31, H2, 0.0); jac.set(Si31, He3, 0.0); - scratch = -screened_rates(k_He4_Si31_to_S35_reaclib)*Y(Si31)*state.rho - screened_rates(k_He4_Si31_to_n_S34_reaclib)*Y(Si31)*state.rho; + scratch = -screened_rates(k_Si31_He4_to_S35_reaclib)*Y(Si31)*state.rho - screened_rates(k_Si31_He4_to_n_S34_reaclib)*Y(Si31)*state.rho; jac.set(Si31, He4, scratch); jac.set(Si31, Li6, 0.0); @@ -24296,23 +22105,23 @@ void jac_nuc(const burn_t& state, jac.set(Si31, Si29, 0.0); - scratch = screened_rates(k_n_Si30_to_Si31_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Si30_n_to_Si31_reaclib)*Y(N)*state.rho; jac.set(Si31, Si30, scratch); - scratch = -screened_rates(k_He4_Si31_to_S35_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Si31_to_n_S34_reaclib)*Y(He4)*state.rho - screened_rates(k_Si31_to_P31_weaktab) - screened_rates(k_Si31_to_n_Si30_reaclib) - screened_rates(k_n_Si31_to_Si32_reaclib)*Y(N)*state.rho - screened_rates(k_p_Si31_to_P32_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Si31_to_n_P31_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Si31_He4_to_S35_reaclib)*Y(He4)*state.rho - screened_rates(k_Si31_He4_to_n_S34_reaclib)*Y(He4)*state.rho - screened_rates(k_Si31_n_to_Si32_reaclib)*Y(N)*state.rho - screened_rates(k_Si31_p_to_P32_reaclib)*Y(H1)*state.rho - screened_rates(k_Si31_p_to_n_P31_reaclib)*Y(H1)*state.rho - screened_rates(k_Si31_to_P31_beta_neg_weaktab) - screened_rates(k_Si31_to_n_Si30_derived); jac.set(Si31, Si31, scratch); - scratch = screened_rates(k_Si32_to_n_Si31_reaclib); + scratch = screened_rates(k_Si32_to_n_Si31_derived); jac.set(Si31, Si32, scratch); jac.set(Si31, P29, 0.0); jac.set(Si31, P30, 0.0); - scratch = screened_rates(k_P31_to_Si31_weaktab) + screened_rates(k_n_P31_to_p_Si31_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_P31_n_to_p_Si31_derived)*Y(N)*state.rho + screened_rates(k_P31_to_Si31_electron_capture_weaktab); jac.set(Si31, P31, scratch); - scratch = screened_rates(k_P32_to_p_Si31_reaclib); + scratch = screened_rates(k_P32_to_p_Si31_derived); jac.set(Si31, P32, scratch); jac.set(Si31, P33, 0.0); @@ -24321,10 +22130,10 @@ void jac_nuc(const burn_t& state, jac.set(Si31, S33, 0.0); - scratch = screened_rates(k_n_S34_to_He4_Si31_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_S34_n_to_He4_Si31_derived)*Y(N)*state.rho; jac.set(Si31, S34, scratch); - scratch = screened_rates(k_S35_to_He4_Si31_reaclib); + scratch = screened_rates(k_S35_to_He4_Si31_derived); jac.set(Si31, S35, scratch); jac.set(Si31, S36, 0.0); @@ -24537,17 +22346,17 @@ void jac_nuc(const burn_t& state, jac.set(Si31, Ge64, 0.0); - scratch = screened_rates(k_n_P32_to_p_Si32_reaclib)*Y(P32)*state.rho + screened_rates(k_n_S35_to_He4_Si32_reaclib)*Y(S35)*state.rho + screened_rates(k_n_Si31_to_Si32_reaclib)*Y(Si31)*state.rho; + scratch = screened_rates(k_P32_n_to_p_Si32_reaclib)*Y(P32)*state.rho + screened_rates(k_S35_n_to_He4_Si32_reaclib)*Y(S35)*state.rho + screened_rates(k_Si31_n_to_Si32_reaclib)*Y(Si31)*state.rho; jac.set(Si32, N, scratch); - scratch = -screened_rates(k_p_Si32_to_P33_reaclib)*Y(Si32)*state.rho - screened_rates(k_p_Si32_to_n_P32_reaclib)*Y(Si32)*state.rho; + scratch = -screened_rates(k_Si32_p_to_P33_reaclib)*Y(Si32)*state.rho - screened_rates(k_Si32_p_to_n_P32_derived)*Y(Si32)*state.rho; jac.set(Si32, H1, scratch); jac.set(Si32, H2, 0.0); jac.set(Si32, He3, 0.0); - scratch = -screened_rates(k_He4_Si32_to_S36_reaclib)*Y(Si32)*state.rho - screened_rates(k_He4_Si32_to_n_S35_reaclib)*Y(Si32)*state.rho; + scratch = -screened_rates(k_Si32_He4_to_S36_reaclib)*Y(Si32)*state.rho - screened_rates(k_Si32_He4_to_n_S35_derived)*Y(Si32)*state.rho; jac.set(Si32, He4, scratch); jac.set(Si32, Li6, 0.0); @@ -24628,10 +22437,10 @@ void jac_nuc(const burn_t& state, jac.set(Si32, Si30, 0.0); - scratch = screened_rates(k_n_Si31_to_Si32_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Si31_n_to_Si32_reaclib)*Y(N)*state.rho; jac.set(Si32, Si31, scratch); - scratch = -screened_rates(k_He4_Si32_to_S36_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Si32_to_n_S35_reaclib)*Y(He4)*state.rho - screened_rates(k_Si32_to_P32_weaktab) - screened_rates(k_Si32_to_n_Si31_reaclib) - screened_rates(k_p_Si32_to_P33_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Si32_to_n_P32_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Si32_He4_to_S36_reaclib)*Y(He4)*state.rho - screened_rates(k_Si32_He4_to_n_S35_derived)*Y(He4)*state.rho - screened_rates(k_Si32_p_to_P33_reaclib)*Y(H1)*state.rho - screened_rates(k_Si32_p_to_n_P32_derived)*Y(H1)*state.rho - screened_rates(k_Si32_to_P32_beta_neg_weaktab) - screened_rates(k_Si32_to_n_Si31_derived); jac.set(Si32, Si32, scratch); jac.set(Si32, P29, 0.0); @@ -24640,10 +22449,10 @@ void jac_nuc(const burn_t& state, jac.set(Si32, P31, 0.0); - scratch = screened_rates(k_P32_to_Si32_weaktab) + screened_rates(k_n_P32_to_p_Si32_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_P32_n_to_p_Si32_reaclib)*Y(N)*state.rho + screened_rates(k_P32_to_Si32_electron_capture_weaktab); jac.set(Si32, P32, scratch); - scratch = screened_rates(k_P33_to_p_Si32_reaclib); + scratch = screened_rates(k_P33_to_p_Si32_derived); jac.set(Si32, P33, scratch); jac.set(Si32, S32, 0.0); @@ -24652,10 +22461,10 @@ void jac_nuc(const burn_t& state, jac.set(Si32, S34, 0.0); - scratch = screened_rates(k_n_S35_to_He4_Si32_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_S35_n_to_He4_Si32_reaclib)*Y(N)*state.rho; jac.set(Si32, S35, scratch); - scratch = screened_rates(k_S36_to_He4_Si32_reaclib); + scratch = screened_rates(k_S36_to_He4_Si32_derived); jac.set(Si32, S36, scratch); jac.set(Si32, Cl33, 0.0); @@ -24866,17 +22675,17 @@ void jac_nuc(const burn_t& state, jac.set(Si32, Ge64, 0.0); - scratch = -screened_rates(k_n_P29_to_He4_Al26_reaclib)*Y(P29)*state.rho - screened_rates(k_n_P29_to_P30_reaclib)*Y(P29)*state.rho - screened_rates(k_n_P29_to_p_Si29_reaclib)*Y(P29)*state.rho; + scratch = -screened_rates(k_P29_n_to_He4_Al26_reaclib)*Y(P29)*state.rho - screened_rates(k_P29_n_to_P30_reaclib)*Y(P29)*state.rho - screened_rates(k_P29_n_to_p_Si29_reaclib)*Y(P29)*state.rho; jac.set(P29, N, scratch); - scratch = screened_rates(k_p_S32_to_He4_P29_reaclib)*Y(S32)*state.rho + screened_rates(k_p_Si28_to_P29_reaclib)*Y(Si28)*state.rho + screened_rates(k_p_Si29_to_n_P29_reaclib)*Y(Si29)*state.rho; + scratch = screened_rates(k_S32_p_to_He4_P29_derived)*Y(S32)*state.rho + screened_rates(k_Si28_p_to_P29_reaclib)*Y(Si28)*state.rho + screened_rates(k_Si29_p_to_n_P29_derived)*Y(Si29)*state.rho; jac.set(P29, H1, scratch); jac.set(P29, H2, 0.0); jac.set(P29, He3, 0.0); - scratch = screened_rates(k_He4_Al25_to_P29_reaclib)*Y(Al25)*state.rho + screened_rates(k_He4_Al26_to_n_P29_reaclib)*Y(Al26)*state.rho - screened_rates(k_He4_P29_to_Cl33_reaclib)*Y(P29)*state.rho - screened_rates(k_He4_P29_to_p_S32_reaclib)*Y(P29)*state.rho; + scratch = screened_rates(k_Al25_He4_to_P29_reaclib)*Y(Al25)*state.rho + screened_rates(k_Al26_He4_to_n_P29_derived)*Y(Al26)*state.rho - screened_rates(k_P29_He4_to_Cl33_reaclib)*Y(P29)*state.rho - screened_rates(k_P29_He4_to_p_S32_reaclib)*Y(P29)*state.rho; jac.set(P29, He4, scratch); jac.set(P29, Li6, 0.0); @@ -24945,18 +22754,18 @@ void jac_nuc(const burn_t& state, jac.set(P29, Mg26, 0.0); - scratch = screened_rates(k_He4_Al25_to_P29_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Al25_He4_to_P29_reaclib)*Y(He4)*state.rho; jac.set(P29, Al25, scratch); - scratch = screened_rates(k_He4_Al26_to_n_P29_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Al26_He4_to_n_P29_derived)*Y(He4)*state.rho; jac.set(P29, Al26, scratch); jac.set(P29, Al27, 0.0); - scratch = screened_rates(k_p_Si28_to_P29_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Si28_p_to_P29_reaclib)*Y(H1)*state.rho; jac.set(P29, Si28, scratch); - scratch = screened_rates(k_Si29_to_P29_weaktab) + screened_rates(k_p_Si29_to_n_P29_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Si29_p_to_n_P29_derived)*Y(H1)*state.rho + screened_rates(k_Si29_to_P29_beta_neg_weaktab); jac.set(P29, Si29, scratch); jac.set(P29, Si30, 0.0); @@ -24965,10 +22774,10 @@ void jac_nuc(const burn_t& state, jac.set(P29, Si32, 0.0); - scratch = -screened_rates(k_He4_P29_to_Cl33_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_P29_to_p_S32_reaclib)*Y(He4)*state.rho - screened_rates(k_P29_to_He4_Al25_reaclib) - screened_rates(k_P29_to_Si29_weaktab) - screened_rates(k_P29_to_p_Si28_reaclib) - screened_rates(k_n_P29_to_He4_Al26_reaclib)*Y(N)*state.rho - screened_rates(k_n_P29_to_P30_reaclib)*Y(N)*state.rho - screened_rates(k_n_P29_to_p_Si29_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_P29_He4_to_Cl33_reaclib)*Y(He4)*state.rho - screened_rates(k_P29_He4_to_p_S32_reaclib)*Y(He4)*state.rho - screened_rates(k_P29_n_to_He4_Al26_reaclib)*Y(N)*state.rho - screened_rates(k_P29_n_to_P30_reaclib)*Y(N)*state.rho - screened_rates(k_P29_n_to_p_Si29_reaclib)*Y(N)*state.rho - screened_rates(k_P29_to_He4_Al25_derived) - screened_rates(k_P29_to_Si29_electron_capture_weaktab) - screened_rates(k_P29_to_p_Si28_derived); jac.set(P29, P29, scratch); - scratch = screened_rates(k_P30_to_n_P29_reaclib); + scratch = screened_rates(k_P30_to_n_P29_derived); jac.set(P29, P30, scratch); jac.set(P29, P31, 0.0); @@ -24977,7 +22786,7 @@ void jac_nuc(const burn_t& state, jac.set(P29, P33, 0.0); - scratch = screened_rates(k_p_S32_to_He4_P29_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_S32_p_to_He4_P29_derived)*Y(H1)*state.rho; jac.set(P29, S32, scratch); jac.set(P29, S33, 0.0); @@ -24988,7 +22797,7 @@ void jac_nuc(const burn_t& state, jac.set(P29, S36, 0.0); - scratch = screened_rates(k_Cl33_to_He4_P29_reaclib); + scratch = screened_rates(k_Cl33_to_He4_P29_derived); jac.set(P29, Cl33, scratch); jac.set(P29, Cl34, 0.0); @@ -25197,17 +23006,17 @@ void jac_nuc(const burn_t& state, jac.set(P29, Ge64, 0.0); - scratch = screened_rates(k_n_Cl33_to_He4_P30_reaclib)*Y(Cl33)*state.rho + screened_rates(k_n_P29_to_P30_reaclib)*Y(P29)*state.rho - screened_rates(k_n_P30_to_He4_Al27_reaclib)*Y(P30)*state.rho - screened_rates(k_n_P30_to_P31_reaclib)*Y(P30)*state.rho - screened_rates(k_n_P30_to_p_Si30_reaclib)*Y(P30)*state.rho; + scratch = screened_rates(k_Cl33_n_to_He4_P30_reaclib)*Y(Cl33)*state.rho + screened_rates(k_P29_n_to_P30_reaclib)*Y(P29)*state.rho - screened_rates(k_P30_n_to_He4_Al27_derived)*Y(P30)*state.rho - screened_rates(k_P30_n_to_P31_reaclib)*Y(P30)*state.rho - screened_rates(k_P30_n_to_p_Si30_reaclib)*Y(P30)*state.rho; jac.set(P30, N, scratch); - scratch = screened_rates(k_p_S33_to_He4_P30_reaclib)*Y(S33)*state.rho + screened_rates(k_p_Si29_to_P30_reaclib)*Y(Si29)*state.rho + screened_rates(k_p_Si30_to_n_P30_reaclib)*Y(Si30)*state.rho; + scratch = screened_rates(k_S33_p_to_He4_P30_derived)*Y(S33)*state.rho + screened_rates(k_Si29_p_to_P30_reaclib)*Y(Si29)*state.rho + screened_rates(k_Si30_p_to_n_P30_derived)*Y(Si30)*state.rho; jac.set(P30, H1, scratch); jac.set(P30, H2, 0.0); jac.set(P30, He3, 0.0); - scratch = screened_rates(k_He4_Al26_to_P30_reaclib)*Y(Al26)*state.rho + screened_rates(k_He4_Al27_to_n_P30_reaclib)*Y(Al27)*state.rho - screened_rates(k_He4_P30_to_Cl34_reaclib)*Y(P30)*state.rho - screened_rates(k_He4_P30_to_n_Cl33_reaclib)*Y(P30)*state.rho - screened_rates(k_He4_P30_to_p_S33_reaclib)*Y(P30)*state.rho; + scratch = screened_rates(k_Al26_He4_to_P30_reaclib)*Y(Al26)*state.rho + screened_rates(k_Al27_He4_to_n_P30_reaclib)*Y(Al27)*state.rho - screened_rates(k_P30_He4_to_Cl34_reaclib)*Y(P30)*state.rho - screened_rates(k_P30_He4_to_n_Cl33_derived)*Y(P30)*state.rho - screened_rates(k_P30_He4_to_p_S33_reaclib)*Y(P30)*state.rho; jac.set(P30, He4, scratch); jac.set(P30, Li6, 0.0); @@ -25278,31 +23087,31 @@ void jac_nuc(const burn_t& state, jac.set(P30, Al25, 0.0); - scratch = screened_rates(k_He4_Al26_to_P30_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Al26_He4_to_P30_reaclib)*Y(He4)*state.rho; jac.set(P30, Al26, scratch); - scratch = screened_rates(k_He4_Al27_to_n_P30_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Al27_He4_to_n_P30_reaclib)*Y(He4)*state.rho; jac.set(P30, Al27, scratch); jac.set(P30, Si28, 0.0); - scratch = screened_rates(k_p_Si29_to_P30_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Si29_p_to_P30_reaclib)*Y(H1)*state.rho; jac.set(P30, Si29, scratch); - scratch = screened_rates(k_Si30_to_P30_weaktab) + screened_rates(k_p_Si30_to_n_P30_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Si30_p_to_n_P30_derived)*Y(H1)*state.rho + screened_rates(k_Si30_to_P30_beta_neg_weaktab); jac.set(P30, Si30, scratch); jac.set(P30, Si31, 0.0); jac.set(P30, Si32, 0.0); - scratch = screened_rates(k_n_P29_to_P30_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_P29_n_to_P30_reaclib)*Y(N)*state.rho; jac.set(P30, P29, scratch); - scratch = -screened_rates(k_He4_P30_to_Cl34_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_P30_to_n_Cl33_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_P30_to_p_S33_reaclib)*Y(He4)*state.rho - screened_rates(k_P30_to_He4_Al26_reaclib) - screened_rates(k_P30_to_Si30_weaktab) - screened_rates(k_P30_to_n_P29_reaclib) - screened_rates(k_P30_to_p_Si29_reaclib) - screened_rates(k_n_P30_to_He4_Al27_reaclib)*Y(N)*state.rho - screened_rates(k_n_P30_to_P31_reaclib)*Y(N)*state.rho - screened_rates(k_n_P30_to_p_Si30_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_P30_He4_to_Cl34_reaclib)*Y(He4)*state.rho - screened_rates(k_P30_He4_to_n_Cl33_derived)*Y(He4)*state.rho - screened_rates(k_P30_He4_to_p_S33_reaclib)*Y(He4)*state.rho - screened_rates(k_P30_n_to_He4_Al27_derived)*Y(N)*state.rho - screened_rates(k_P30_n_to_P31_reaclib)*Y(N)*state.rho - screened_rates(k_P30_n_to_p_Si30_reaclib)*Y(N)*state.rho - screened_rates(k_P30_to_He4_Al26_derived) - screened_rates(k_P30_to_Si30_electron_capture_weaktab) - screened_rates(k_P30_to_n_P29_derived) - screened_rates(k_P30_to_p_Si29_derived); jac.set(P30, P30, scratch); - scratch = screened_rates(k_P31_to_n_P30_reaclib); + scratch = screened_rates(k_P31_to_n_P30_derived); jac.set(P30, P31, scratch); jac.set(P30, P32, 0.0); @@ -25311,7 +23120,7 @@ void jac_nuc(const burn_t& state, jac.set(P30, S32, 0.0); - scratch = screened_rates(k_p_S33_to_He4_P30_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_S33_p_to_He4_P30_derived)*Y(H1)*state.rho; jac.set(P30, S33, scratch); jac.set(P30, S34, 0.0); @@ -25320,10 +23129,10 @@ void jac_nuc(const burn_t& state, jac.set(P30, S36, 0.0); - scratch = screened_rates(k_n_Cl33_to_He4_P30_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cl33_n_to_He4_P30_reaclib)*Y(N)*state.rho; jac.set(P30, Cl33, scratch); - scratch = screened_rates(k_Cl34_to_He4_P30_reaclib); + scratch = screened_rates(k_Cl34_to_He4_P30_derived); jac.set(P30, Cl34, scratch); jac.set(P30, Cl35, 0.0); @@ -25530,17 +23339,17 @@ void jac_nuc(const burn_t& state, jac.set(P30, Ge64, 0.0); - scratch = screened_rates(k_n_Cl34_to_He4_P31_reaclib)*Y(Cl34)*state.rho + screened_rates(k_n_P30_to_P31_reaclib)*Y(P30)*state.rho - screened_rates(k_n_P31_to_P32_reaclib)*Y(P31)*state.rho - screened_rates(k_n_P31_to_p_Si31_reaclib)*Y(P31)*state.rho; + scratch = screened_rates(k_Cl34_n_to_He4_P31_reaclib)*Y(Cl34)*state.rho + screened_rates(k_P30_n_to_P31_reaclib)*Y(P30)*state.rho - screened_rates(k_P31_n_to_P32_reaclib)*Y(P31)*state.rho - screened_rates(k_P31_n_to_p_Si31_derived)*Y(P31)*state.rho; jac.set(P31, N, scratch); - scratch = -screened_rates(k_p_P31_to_C12_Ne20_reaclib)*Y(P31)*state.rho - screened_rates(k_p_P31_to_He4_Si28_reaclib)*Y(P31)*state.rho - screened_rates(k_p_P31_to_O16_O16_reaclib)*Y(P31)*state.rho - screened_rates(k_p_P31_to_S32_reaclib)*Y(P31)*state.rho + screened_rates(k_p_S34_to_He4_P31_reaclib)*Y(S34)*state.rho + screened_rates(k_p_Si30_to_P31_reaclib)*Y(Si30)*state.rho + screened_rates(k_p_Si31_to_n_P31_reaclib)*Y(Si31)*state.rho; + scratch = -screened_rates(k_P31_p_to_C12_Ne20_derived)*Y(P31)*state.rho - screened_rates(k_P31_p_to_He4_Si28_reaclib)*Y(P31)*state.rho - screened_rates(k_P31_p_to_O16_O16_derived)*Y(P31)*state.rho - screened_rates(k_P31_p_to_S32_reaclib)*Y(P31)*state.rho + screened_rates(k_S34_p_to_He4_P31_derived)*Y(S34)*state.rho + screened_rates(k_Si30_p_to_P31_reaclib)*Y(Si30)*state.rho + screened_rates(k_Si31_p_to_n_P31_reaclib)*Y(Si31)*state.rho; jac.set(P31, H1, scratch); jac.set(P31, H2, 0.0); jac.set(P31, He3, 0.0); - scratch = screened_rates(k_He4_Al27_to_P31_reaclib)*Y(Al27)*state.rho - screened_rates(k_He4_P31_to_Cl35_reaclib)*Y(P31)*state.rho - screened_rates(k_He4_P31_to_n_Cl34_reaclib)*Y(P31)*state.rho - screened_rates(k_He4_P31_to_p_S34_reaclib)*Y(P31)*state.rho + screened_rates(k_He4_Si28_to_p_P31_reaclib)*Y(Si28)*state.rho; + scratch = screened_rates(k_Al27_He4_to_P31_reaclib)*Y(Al27)*state.rho - screened_rates(k_P31_He4_to_Cl35_reaclib)*Y(P31)*state.rho - screened_rates(k_P31_He4_to_n_Cl34_derived)*Y(P31)*state.rho - screened_rates(k_P31_He4_to_p_S34_reaclib)*Y(P31)*state.rho + screened_rates(k_Si28_He4_to_p_P31_derived)*Y(Si28)*state.rho; jac.set(P31, He4, scratch); jac.set(P31, Li6, 0.0); @@ -25557,7 +23366,7 @@ void jac_nuc(const burn_t& state, jac.set(P31, B11, 0.0); - scratch = screened_rates(k_C12_Ne20_to_p_P31_reaclib)*Y(Ne20)*state.rho; + scratch = screened_rates(k_Ne20_C12_to_p_P31_reaclib)*Y(Ne20)*state.rho; jac.set(P31, C12, scratch); jac.set(P31, C13, 0.0); @@ -25591,7 +23400,7 @@ void jac_nuc(const burn_t& state, jac.set(P31, Ne19, 0.0); - scratch = screened_rates(k_C12_Ne20_to_p_P31_reaclib)*Y(C12)*state.rho; + scratch = screened_rates(k_Ne20_C12_to_p_P31_reaclib)*Y(C12)*state.rho; jac.set(P31, Ne20, scratch); jac.set(P31, Ne21, 0.0); @@ -25616,41 +23425,41 @@ void jac_nuc(const burn_t& state, jac.set(P31, Al26, 0.0); - scratch = screened_rates(k_He4_Al27_to_P31_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Al27_He4_to_P31_reaclib)*Y(He4)*state.rho; jac.set(P31, Al27, scratch); - scratch = screened_rates(k_He4_Si28_to_p_P31_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Si28_He4_to_p_P31_derived)*Y(He4)*state.rho; jac.set(P31, Si28, scratch); jac.set(P31, Si29, 0.0); - scratch = screened_rates(k_p_Si30_to_P31_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Si30_p_to_P31_reaclib)*Y(H1)*state.rho; jac.set(P31, Si30, scratch); - scratch = screened_rates(k_Si31_to_P31_weaktab) + screened_rates(k_p_Si31_to_n_P31_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Si31_p_to_n_P31_reaclib)*Y(H1)*state.rho + screened_rates(k_Si31_to_P31_beta_neg_weaktab); jac.set(P31, Si31, scratch); jac.set(P31, Si32, 0.0); jac.set(P31, P29, 0.0); - scratch = screened_rates(k_n_P30_to_P31_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_P30_n_to_P31_reaclib)*Y(N)*state.rho; jac.set(P31, P30, scratch); - scratch = -screened_rates(k_He4_P31_to_Cl35_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_P31_to_n_Cl34_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_P31_to_p_S34_reaclib)*Y(He4)*state.rho - screened_rates(k_P31_to_He4_Al27_reaclib) - screened_rates(k_P31_to_Si31_weaktab) - screened_rates(k_P31_to_n_P30_reaclib) - screened_rates(k_P31_to_p_Si30_reaclib) - screened_rates(k_n_P31_to_P32_reaclib)*Y(N)*state.rho - screened_rates(k_n_P31_to_p_Si31_reaclib)*Y(N)*state.rho - screened_rates(k_p_P31_to_C12_Ne20_reaclib)*Y(H1)*state.rho - screened_rates(k_p_P31_to_He4_Si28_reaclib)*Y(H1)*state.rho - screened_rates(k_p_P31_to_O16_O16_reaclib)*Y(H1)*state.rho - screened_rates(k_p_P31_to_S32_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_P31_He4_to_Cl35_reaclib)*Y(He4)*state.rho - screened_rates(k_P31_He4_to_n_Cl34_derived)*Y(He4)*state.rho - screened_rates(k_P31_He4_to_p_S34_reaclib)*Y(He4)*state.rho - screened_rates(k_P31_n_to_P32_reaclib)*Y(N)*state.rho - screened_rates(k_P31_n_to_p_Si31_derived)*Y(N)*state.rho - screened_rates(k_P31_p_to_C12_Ne20_derived)*Y(H1)*state.rho - screened_rates(k_P31_p_to_He4_Si28_reaclib)*Y(H1)*state.rho - screened_rates(k_P31_p_to_O16_O16_derived)*Y(H1)*state.rho - screened_rates(k_P31_p_to_S32_reaclib)*Y(H1)*state.rho - screened_rates(k_P31_to_He4_Al27_derived) - screened_rates(k_P31_to_Si31_electron_capture_weaktab) - screened_rates(k_P31_to_n_P30_derived) - screened_rates(k_P31_to_p_Si30_derived); jac.set(P31, P31, scratch); - scratch = screened_rates(k_P32_to_n_P31_reaclib); + scratch = screened_rates(k_P32_to_n_P31_derived); jac.set(P31, P32, scratch); jac.set(P31, P33, 0.0); - scratch = screened_rates(k_S32_to_p_P31_reaclib); + scratch = screened_rates(k_S32_to_p_P31_derived); jac.set(P31, S32, scratch); jac.set(P31, S33, 0.0); - scratch = screened_rates(k_p_S34_to_He4_P31_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_S34_p_to_He4_P31_derived)*Y(H1)*state.rho; jac.set(P31, S34, scratch); jac.set(P31, S35, 0.0); @@ -25659,10 +23468,10 @@ void jac_nuc(const burn_t& state, jac.set(P31, Cl33, 0.0); - scratch = screened_rates(k_n_Cl34_to_He4_P31_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cl34_n_to_He4_P31_reaclib)*Y(N)*state.rho; jac.set(P31, Cl34, scratch); - scratch = screened_rates(k_Cl35_to_He4_P31_reaclib); + scratch = screened_rates(k_Cl35_to_He4_P31_derived); jac.set(P31, Cl35, scratch); jac.set(P31, Cl36, 0.0); @@ -25867,17 +23676,17 @@ void jac_nuc(const burn_t& state, jac.set(P31, Ge64, 0.0); - scratch = screened_rates(k_n_Cl35_to_He4_P32_reaclib)*Y(Cl35)*state.rho + screened_rates(k_n_P31_to_P32_reaclib)*Y(P31)*state.rho - screened_rates(k_n_P32_to_P33_reaclib)*Y(P32)*state.rho - screened_rates(k_n_P32_to_p_Si32_reaclib)*Y(P32)*state.rho + screened_rates(k_n_S32_to_p_P32_reaclib)*Y(S32)*state.rho; + scratch = screened_rates(k_Cl35_n_to_He4_P32_reaclib)*Y(Cl35)*state.rho + screened_rates(k_P31_n_to_P32_reaclib)*Y(P31)*state.rho - screened_rates(k_P32_n_to_P33_reaclib)*Y(P32)*state.rho - screened_rates(k_P32_n_to_p_Si32_reaclib)*Y(P32)*state.rho + screened_rates(k_S32_n_to_p_P32_derived)*Y(S32)*state.rho; jac.set(P32, N, scratch); - scratch = -screened_rates(k_p_P32_to_He4_Si29_reaclib)*Y(P32)*state.rho - screened_rates(k_p_P32_to_S33_reaclib)*Y(P32)*state.rho - screened_rates(k_p_P32_to_n_S32_reaclib)*Y(P32)*state.rho + screened_rates(k_p_S35_to_He4_P32_reaclib)*Y(S35)*state.rho + screened_rates(k_p_Si31_to_P32_reaclib)*Y(Si31)*state.rho + screened_rates(k_p_Si32_to_n_P32_reaclib)*Y(Si32)*state.rho; + scratch = -screened_rates(k_P32_p_to_He4_Si29_reaclib)*Y(P32)*state.rho - screened_rates(k_P32_p_to_S33_reaclib)*Y(P32)*state.rho - screened_rates(k_P32_p_to_n_S32_reaclib)*Y(P32)*state.rho + screened_rates(k_S35_p_to_He4_P32_reaclib)*Y(S35)*state.rho + screened_rates(k_Si31_p_to_P32_reaclib)*Y(Si31)*state.rho + screened_rates(k_Si32_p_to_n_P32_derived)*Y(Si32)*state.rho; jac.set(P32, H1, scratch); jac.set(P32, H2, 0.0); jac.set(P32, He3, 0.0); - scratch = -screened_rates(k_He4_P32_to_Cl36_reaclib)*Y(P32)*state.rho - screened_rates(k_He4_P32_to_n_Cl35_reaclib)*Y(P32)*state.rho - screened_rates(k_He4_P32_to_p_S35_reaclib)*Y(P32)*state.rho + screened_rates(k_He4_Si29_to_p_P32_reaclib)*Y(Si29)*state.rho; + scratch = -screened_rates(k_P32_He4_to_Cl36_reaclib)*Y(P32)*state.rho - screened_rates(k_P32_He4_to_n_Cl35_derived)*Y(P32)*state.rho - screened_rates(k_P32_He4_to_p_S35_derived)*Y(P32)*state.rho + screened_rates(k_Si29_He4_to_p_P32_derived)*Y(Si29)*state.rho; jac.set(P32, He4, scratch); jac.set(P32, Li6, 0.0); @@ -25954,39 +23763,39 @@ void jac_nuc(const burn_t& state, jac.set(P32, Si28, 0.0); - scratch = screened_rates(k_He4_Si29_to_p_P32_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Si29_He4_to_p_P32_derived)*Y(He4)*state.rho; jac.set(P32, Si29, scratch); jac.set(P32, Si30, 0.0); - scratch = screened_rates(k_p_Si31_to_P32_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Si31_p_to_P32_reaclib)*Y(H1)*state.rho; jac.set(P32, Si31, scratch); - scratch = screened_rates(k_Si32_to_P32_weaktab) + screened_rates(k_p_Si32_to_n_P32_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Si32_p_to_n_P32_derived)*Y(H1)*state.rho + screened_rates(k_Si32_to_P32_beta_neg_weaktab); jac.set(P32, Si32, scratch); jac.set(P32, P29, 0.0); jac.set(P32, P30, 0.0); - scratch = screened_rates(k_n_P31_to_P32_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_P31_n_to_P32_reaclib)*Y(N)*state.rho; jac.set(P32, P31, scratch); - scratch = -screened_rates(k_He4_P32_to_Cl36_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_P32_to_n_Cl35_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_P32_to_p_S35_reaclib)*Y(He4)*state.rho - screened_rates(k_P32_to_S32_weaktab) - screened_rates(k_P32_to_Si32_weaktab) - screened_rates(k_P32_to_n_P31_reaclib) - screened_rates(k_P32_to_p_Si31_reaclib) - screened_rates(k_n_P32_to_P33_reaclib)*Y(N)*state.rho - screened_rates(k_n_P32_to_p_Si32_reaclib)*Y(N)*state.rho - screened_rates(k_p_P32_to_He4_Si29_reaclib)*Y(H1)*state.rho - screened_rates(k_p_P32_to_S33_reaclib)*Y(H1)*state.rho - screened_rates(k_p_P32_to_n_S32_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_P32_He4_to_Cl36_reaclib)*Y(He4)*state.rho - screened_rates(k_P32_He4_to_n_Cl35_derived)*Y(He4)*state.rho - screened_rates(k_P32_He4_to_p_S35_derived)*Y(He4)*state.rho - screened_rates(k_P32_n_to_P33_reaclib)*Y(N)*state.rho - screened_rates(k_P32_n_to_p_Si32_reaclib)*Y(N)*state.rho - screened_rates(k_P32_p_to_He4_Si29_reaclib)*Y(H1)*state.rho - screened_rates(k_P32_p_to_S33_reaclib)*Y(H1)*state.rho - screened_rates(k_P32_p_to_n_S32_reaclib)*Y(H1)*state.rho - screened_rates(k_P32_to_S32_beta_neg_weaktab) - screened_rates(k_P32_to_Si32_electron_capture_weaktab) - screened_rates(k_P32_to_n_P31_derived) - screened_rates(k_P32_to_p_Si31_derived); jac.set(P32, P32, scratch); - scratch = screened_rates(k_P33_to_n_P32_reaclib); + scratch = screened_rates(k_P33_to_n_P32_derived); jac.set(P32, P33, scratch); - scratch = screened_rates(k_S32_to_P32_weaktab) + screened_rates(k_n_S32_to_p_P32_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_S32_n_to_p_P32_derived)*Y(N)*state.rho + screened_rates(k_S32_to_P32_electron_capture_weaktab); jac.set(P32, S32, scratch); - scratch = screened_rates(k_S33_to_p_P32_reaclib); + scratch = screened_rates(k_S33_to_p_P32_derived); jac.set(P32, S33, scratch); jac.set(P32, S34, 0.0); - scratch = screened_rates(k_p_S35_to_He4_P32_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_S35_p_to_He4_P32_reaclib)*Y(H1)*state.rho; jac.set(P32, S35, scratch); jac.set(P32, S36, 0.0); @@ -25995,10 +23804,10 @@ void jac_nuc(const burn_t& state, jac.set(P32, Cl34, 0.0); - scratch = screened_rates(k_n_Cl35_to_He4_P32_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cl35_n_to_He4_P32_reaclib)*Y(N)*state.rho; jac.set(P32, Cl35, scratch); - scratch = screened_rates(k_Cl36_to_He4_P32_reaclib); + scratch = screened_rates(k_Cl36_to_He4_P32_derived); jac.set(P32, Cl36, scratch); jac.set(P32, Cl37, 0.0); @@ -26201,17 +24010,17 @@ void jac_nuc(const burn_t& state, jac.set(P32, Ge64, 0.0); - scratch = screened_rates(k_n_Cl36_to_He4_P33_reaclib)*Y(Cl36)*state.rho + screened_rates(k_n_P32_to_P33_reaclib)*Y(P32)*state.rho + screened_rates(k_n_S33_to_p_P33_reaclib)*Y(S33)*state.rho; + scratch = screened_rates(k_Cl36_n_to_He4_P33_reaclib)*Y(Cl36)*state.rho + screened_rates(k_P32_n_to_P33_reaclib)*Y(P32)*state.rho + screened_rates(k_S33_n_to_p_P33_reaclib)*Y(S33)*state.rho; jac.set(P33, N, scratch); - scratch = -screened_rates(k_p_P33_to_He4_Si30_reaclib)*Y(P33)*state.rho - screened_rates(k_p_P33_to_S34_reaclib)*Y(P33)*state.rho - screened_rates(k_p_P33_to_n_S33_reaclib)*Y(P33)*state.rho + screened_rates(k_p_S36_to_He4_P33_reaclib)*Y(S36)*state.rho + screened_rates(k_p_Si32_to_P33_reaclib)*Y(Si32)*state.rho; + scratch = -screened_rates(k_P33_p_to_He4_Si30_reaclib)*Y(P33)*state.rho - screened_rates(k_P33_p_to_S34_reaclib)*Y(P33)*state.rho - screened_rates(k_P33_p_to_n_S33_derived)*Y(P33)*state.rho + screened_rates(k_S36_p_to_He4_P33_reaclib)*Y(S36)*state.rho + screened_rates(k_Si32_p_to_P33_reaclib)*Y(Si32)*state.rho; jac.set(P33, H1, scratch); jac.set(P33, H2, 0.0); jac.set(P33, He3, 0.0); - scratch = -screened_rates(k_He4_P33_to_Cl37_reaclib)*Y(P33)*state.rho - screened_rates(k_He4_P33_to_n_Cl36_reaclib)*Y(P33)*state.rho - screened_rates(k_He4_P33_to_p_S36_reaclib)*Y(P33)*state.rho + screened_rates(k_He4_Si30_to_p_P33_reaclib)*Y(Si30)*state.rho; + scratch = -screened_rates(k_P33_He4_to_Cl37_reaclib)*Y(P33)*state.rho - screened_rates(k_P33_He4_to_n_Cl36_derived)*Y(P33)*state.rho - screened_rates(k_P33_He4_to_p_S36_derived)*Y(P33)*state.rho + screened_rates(k_Si30_He4_to_p_P33_derived)*Y(Si30)*state.rho; jac.set(P33, He4, scratch); jac.set(P33, Li6, 0.0); @@ -26290,12 +24099,12 @@ void jac_nuc(const burn_t& state, jac.set(P33, Si29, 0.0); - scratch = screened_rates(k_He4_Si30_to_p_P33_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Si30_He4_to_p_P33_derived)*Y(He4)*state.rho; jac.set(P33, Si30, scratch); jac.set(P33, Si31, 0.0); - scratch = screened_rates(k_p_Si32_to_P33_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Si32_p_to_P33_reaclib)*Y(H1)*state.rho; jac.set(P33, Si32, scratch); jac.set(P33, P29, 0.0); @@ -26304,23 +24113,23 @@ void jac_nuc(const burn_t& state, jac.set(P33, P31, 0.0); - scratch = screened_rates(k_n_P32_to_P33_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_P32_n_to_P33_reaclib)*Y(N)*state.rho; jac.set(P33, P32, scratch); - scratch = -screened_rates(k_He4_P33_to_Cl37_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_P33_to_n_Cl36_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_P33_to_p_S36_reaclib)*Y(He4)*state.rho - screened_rates(k_P33_to_S33_weaktab) - screened_rates(k_P33_to_n_P32_reaclib) - screened_rates(k_P33_to_p_Si32_reaclib) - screened_rates(k_p_P33_to_He4_Si30_reaclib)*Y(H1)*state.rho - screened_rates(k_p_P33_to_S34_reaclib)*Y(H1)*state.rho - screened_rates(k_p_P33_to_n_S33_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_P33_He4_to_Cl37_reaclib)*Y(He4)*state.rho - screened_rates(k_P33_He4_to_n_Cl36_derived)*Y(He4)*state.rho - screened_rates(k_P33_He4_to_p_S36_derived)*Y(He4)*state.rho - screened_rates(k_P33_p_to_He4_Si30_reaclib)*Y(H1)*state.rho - screened_rates(k_P33_p_to_S34_reaclib)*Y(H1)*state.rho - screened_rates(k_P33_p_to_n_S33_derived)*Y(H1)*state.rho - screened_rates(k_P33_to_S33_beta_neg_weaktab) - screened_rates(k_P33_to_n_P32_derived) - screened_rates(k_P33_to_p_Si32_derived); jac.set(P33, P33, scratch); jac.set(P33, S32, 0.0); - scratch = screened_rates(k_S33_to_P33_weaktab) + screened_rates(k_n_S33_to_p_P33_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_S33_n_to_p_P33_reaclib)*Y(N)*state.rho + screened_rates(k_S33_to_P33_electron_capture_weaktab); jac.set(P33, S33, scratch); - scratch = screened_rates(k_S34_to_p_P33_reaclib); + scratch = screened_rates(k_S34_to_p_P33_derived); jac.set(P33, S34, scratch); jac.set(P33, S35, 0.0); - scratch = screened_rates(k_p_S36_to_He4_P33_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_S36_p_to_He4_P33_reaclib)*Y(H1)*state.rho; jac.set(P33, S36, scratch); jac.set(P33, Cl33, 0.0); @@ -26329,10 +24138,10 @@ void jac_nuc(const burn_t& state, jac.set(P33, Cl35, 0.0); - scratch = screened_rates(k_n_Cl36_to_He4_P33_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cl36_n_to_He4_P33_reaclib)*Y(N)*state.rho; jac.set(P33, Cl36, scratch); - scratch = screened_rates(k_Cl37_to_He4_P33_reaclib); + scratch = screened_rates(k_Cl37_to_He4_P33_derived); jac.set(P33, Cl37, scratch); jac.set(P33, Ar36, 0.0); @@ -26533,17 +24342,17 @@ void jac_nuc(const burn_t& state, jac.set(P33, Ge64, 0.0); - scratch = -screened_rates(k_n_S32_to_He4_Si29_reaclib)*Y(S32)*state.rho - screened_rates(k_n_S32_to_S33_reaclib)*Y(S32)*state.rho - screened_rates(k_n_S32_to_p_P32_reaclib)*Y(S32)*state.rho; + scratch = -screened_rates(k_S32_n_to_He4_Si29_reaclib)*Y(S32)*state.rho - screened_rates(k_S32_n_to_S33_reaclib)*Y(S32)*state.rho - screened_rates(k_S32_n_to_p_P32_derived)*Y(S32)*state.rho; jac.set(S32, N, scratch); - scratch = screened_rates(k_p_Cl35_to_He4_S32_reaclib)*Y(Cl35)*state.rho + screened_rates(k_p_P31_to_S32_reaclib)*Y(P31)*state.rho + screened_rates(k_p_P32_to_n_S32_reaclib)*Y(P32)*state.rho - screened_rates(k_p_S32_to_Cl33_reaclib)*Y(S32)*state.rho - screened_rates(k_p_S32_to_He4_P29_reaclib)*Y(S32)*state.rho; + scratch = screened_rates(k_Cl35_p_to_He4_S32_reaclib)*Y(Cl35)*state.rho + screened_rates(k_P31_p_to_S32_reaclib)*Y(P31)*state.rho + screened_rates(k_P32_p_to_n_S32_reaclib)*Y(P32)*state.rho - screened_rates(k_S32_p_to_Cl33_reaclib)*Y(S32)*state.rho - screened_rates(k_S32_p_to_He4_P29_derived)*Y(S32)*state.rho; jac.set(S32, H1, scratch); jac.set(S32, H2, 0.0); jac.set(S32, He3, 0.0); - scratch = screened_rates(k_He4_P29_to_p_S32_reaclib)*Y(P29)*state.rho - screened_rates(k_He4_S32_to_Ar36_reaclib)*Y(S32)*state.rho - screened_rates(k_He4_S32_to_p_Cl35_reaclib)*Y(S32)*state.rho + screened_rates(k_He4_Si28_to_S32_reaclib)*Y(Si28)*state.rho + screened_rates(k_He4_Si29_to_n_S32_reaclib)*Y(Si29)*state.rho; + scratch = screened_rates(k_P29_He4_to_p_S32_reaclib)*Y(P29)*state.rho - screened_rates(k_S32_He4_to_Ar36_reaclib)*Y(S32)*state.rho - screened_rates(k_S32_He4_to_p_Cl35_derived)*Y(S32)*state.rho + screened_rates(k_Si28_He4_to_S32_reaclib)*Y(Si28)*state.rho + screened_rates(k_Si29_He4_to_n_S32_derived)*Y(Si29)*state.rho; jac.set(S32, He4, scratch); jac.set(S32, Li6, 0.0); @@ -26618,10 +24427,10 @@ void jac_nuc(const burn_t& state, jac.set(S32, Al27, 0.0); - scratch = screened_rates(k_He4_Si28_to_S32_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Si28_He4_to_S32_reaclib)*Y(He4)*state.rho; jac.set(S32, Si28, scratch); - scratch = screened_rates(k_He4_Si29_to_n_S32_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Si29_He4_to_n_S32_derived)*Y(He4)*state.rho; jac.set(S32, Si29, scratch); jac.set(S32, Si30, 0.0); @@ -26630,23 +24439,23 @@ void jac_nuc(const burn_t& state, jac.set(S32, Si32, 0.0); - scratch = screened_rates(k_He4_P29_to_p_S32_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_P29_He4_to_p_S32_reaclib)*Y(He4)*state.rho; jac.set(S32, P29, scratch); jac.set(S32, P30, 0.0); - scratch = screened_rates(k_p_P31_to_S32_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_P31_p_to_S32_reaclib)*Y(H1)*state.rho; jac.set(S32, P31, scratch); - scratch = screened_rates(k_P32_to_S32_weaktab) + screened_rates(k_p_P32_to_n_S32_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_P32_p_to_n_S32_reaclib)*Y(H1)*state.rho + screened_rates(k_P32_to_S32_beta_neg_weaktab); jac.set(S32, P32, scratch); jac.set(S32, P33, 0.0); - scratch = -screened_rates(k_He4_S32_to_Ar36_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_S32_to_p_Cl35_reaclib)*Y(He4)*state.rho - screened_rates(k_S32_to_He4_Si28_reaclib) - screened_rates(k_S32_to_P32_weaktab) - screened_rates(k_S32_to_p_P31_reaclib) - screened_rates(k_n_S32_to_He4_Si29_reaclib)*Y(N)*state.rho - screened_rates(k_n_S32_to_S33_reaclib)*Y(N)*state.rho - screened_rates(k_n_S32_to_p_P32_reaclib)*Y(N)*state.rho - screened_rates(k_p_S32_to_Cl33_reaclib)*Y(H1)*state.rho - screened_rates(k_p_S32_to_He4_P29_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_S32_He4_to_Ar36_reaclib)*Y(He4)*state.rho - screened_rates(k_S32_He4_to_p_Cl35_derived)*Y(He4)*state.rho - screened_rates(k_S32_n_to_He4_Si29_reaclib)*Y(N)*state.rho - screened_rates(k_S32_n_to_S33_reaclib)*Y(N)*state.rho - screened_rates(k_S32_n_to_p_P32_derived)*Y(N)*state.rho - screened_rates(k_S32_p_to_Cl33_reaclib)*Y(H1)*state.rho - screened_rates(k_S32_p_to_He4_P29_derived)*Y(H1)*state.rho - screened_rates(k_S32_to_He4_Si28_derived) - screened_rates(k_S32_to_P32_electron_capture_weaktab) - screened_rates(k_S32_to_p_P31_derived); jac.set(S32, S32, scratch); - scratch = screened_rates(k_S33_to_n_S32_reaclib); + scratch = screened_rates(k_S33_to_n_S32_derived); jac.set(S32, S33, scratch); jac.set(S32, S34, 0.0); @@ -26655,19 +24464,19 @@ void jac_nuc(const burn_t& state, jac.set(S32, S36, 0.0); - scratch = screened_rates(k_Cl33_to_p_S32_reaclib); + scratch = screened_rates(k_Cl33_to_p_S32_derived); jac.set(S32, Cl33, scratch); jac.set(S32, Cl34, 0.0); - scratch = screened_rates(k_p_Cl35_to_He4_S32_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cl35_p_to_He4_S32_reaclib)*Y(H1)*state.rho; jac.set(S32, Cl35, scratch); jac.set(S32, Cl36, 0.0); jac.set(S32, Cl37, 0.0); - scratch = screened_rates(k_Ar36_to_He4_S32_reaclib); + scratch = screened_rates(k_Ar36_to_He4_S32_derived); jac.set(S32, Ar36, scratch); jac.set(S32, Ar37, 0.0); @@ -26866,17 +24675,17 @@ void jac_nuc(const burn_t& state, jac.set(S32, Ge64, 0.0); - scratch = screened_rates(k_n_Ar36_to_He4_S33_reaclib)*Y(Ar36)*state.rho + screened_rates(k_n_Cl33_to_p_S33_reaclib)*Y(Cl33)*state.rho + screened_rates(k_n_S32_to_S33_reaclib)*Y(S32)*state.rho - screened_rates(k_n_S33_to_He4_Si30_reaclib)*Y(S33)*state.rho - screened_rates(k_n_S33_to_S34_reaclib)*Y(S33)*state.rho - screened_rates(k_n_S33_to_p_P33_reaclib)*Y(S33)*state.rho; + scratch = screened_rates(k_Ar36_n_to_He4_S33_reaclib)*Y(Ar36)*state.rho + screened_rates(k_Cl33_n_to_p_S33_reaclib)*Y(Cl33)*state.rho + screened_rates(k_S32_n_to_S33_reaclib)*Y(S32)*state.rho - screened_rates(k_S33_n_to_He4_Si30_reaclib)*Y(S33)*state.rho - screened_rates(k_S33_n_to_S34_reaclib)*Y(S33)*state.rho - screened_rates(k_S33_n_to_p_P33_reaclib)*Y(S33)*state.rho; jac.set(S33, N, scratch); - scratch = screened_rates(k_p_Cl36_to_He4_S33_reaclib)*Y(Cl36)*state.rho + screened_rates(k_p_P32_to_S33_reaclib)*Y(P32)*state.rho + screened_rates(k_p_P33_to_n_S33_reaclib)*Y(P33)*state.rho - screened_rates(k_p_S33_to_Cl34_reaclib)*Y(S33)*state.rho - screened_rates(k_p_S33_to_He4_P30_reaclib)*Y(S33)*state.rho - screened_rates(k_p_S33_to_n_Cl33_reaclib)*Y(S33)*state.rho; + scratch = screened_rates(k_Cl36_p_to_He4_S33_reaclib)*Y(Cl36)*state.rho + screened_rates(k_P32_p_to_S33_reaclib)*Y(P32)*state.rho + screened_rates(k_P33_p_to_n_S33_derived)*Y(P33)*state.rho - screened_rates(k_S33_p_to_Cl34_reaclib)*Y(S33)*state.rho - screened_rates(k_S33_p_to_He4_P30_derived)*Y(S33)*state.rho - screened_rates(k_S33_p_to_n_Cl33_derived)*Y(S33)*state.rho; jac.set(S33, H1, scratch); jac.set(S33, H2, 0.0); jac.set(S33, He3, 0.0); - scratch = screened_rates(k_He4_P30_to_p_S33_reaclib)*Y(P30)*state.rho - screened_rates(k_He4_S33_to_Ar37_reaclib)*Y(S33)*state.rho - screened_rates(k_He4_S33_to_n_Ar36_reaclib)*Y(S33)*state.rho - screened_rates(k_He4_S33_to_p_Cl36_reaclib)*Y(S33)*state.rho + screened_rates(k_He4_Si29_to_S33_reaclib)*Y(Si29)*state.rho + screened_rates(k_He4_Si30_to_n_S33_reaclib)*Y(Si30)*state.rho; + scratch = screened_rates(k_P30_He4_to_p_S33_reaclib)*Y(P30)*state.rho - screened_rates(k_S33_He4_to_Ar37_reaclib)*Y(S33)*state.rho - screened_rates(k_S33_He4_to_n_Ar36_derived)*Y(S33)*state.rho - screened_rates(k_S33_He4_to_p_Cl36_derived)*Y(S33)*state.rho + screened_rates(k_Si29_He4_to_S33_reaclib)*Y(Si29)*state.rho + screened_rates(k_Si30_He4_to_n_S33_derived)*Y(Si30)*state.rho; jac.set(S33, He4, scratch); jac.set(S33, Li6, 0.0); @@ -26953,10 +24762,10 @@ void jac_nuc(const burn_t& state, jac.set(S33, Si28, 0.0); - scratch = screened_rates(k_He4_Si29_to_S33_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Si29_He4_to_S33_reaclib)*Y(He4)*state.rho; jac.set(S33, Si29, scratch); - scratch = screened_rates(k_He4_Si30_to_n_S33_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Si30_He4_to_n_S33_derived)*Y(He4)*state.rho; jac.set(S33, Si30, scratch); jac.set(S33, Si31, 0.0); @@ -26965,47 +24774,47 @@ void jac_nuc(const burn_t& state, jac.set(S33, P29, 0.0); - scratch = screened_rates(k_He4_P30_to_p_S33_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_P30_He4_to_p_S33_reaclib)*Y(He4)*state.rho; jac.set(S33, P30, scratch); jac.set(S33, P31, 0.0); - scratch = screened_rates(k_p_P32_to_S33_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_P32_p_to_S33_reaclib)*Y(H1)*state.rho; jac.set(S33, P32, scratch); - scratch = screened_rates(k_P33_to_S33_weaktab) + screened_rates(k_p_P33_to_n_S33_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_P33_p_to_n_S33_derived)*Y(H1)*state.rho + screened_rates(k_P33_to_S33_beta_neg_weaktab); jac.set(S33, P33, scratch); - scratch = screened_rates(k_n_S32_to_S33_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_S32_n_to_S33_reaclib)*Y(N)*state.rho; jac.set(S33, S32, scratch); - scratch = -screened_rates(k_He4_S33_to_Ar37_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_S33_to_n_Ar36_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_S33_to_p_Cl36_reaclib)*Y(He4)*state.rho - screened_rates(k_S33_to_Cl33_weaktab) - screened_rates(k_S33_to_He4_Si29_reaclib) - screened_rates(k_S33_to_P33_weaktab) - screened_rates(k_S33_to_n_S32_reaclib) - screened_rates(k_S33_to_p_P32_reaclib) - screened_rates(k_n_S33_to_He4_Si30_reaclib)*Y(N)*state.rho - screened_rates(k_n_S33_to_S34_reaclib)*Y(N)*state.rho - screened_rates(k_n_S33_to_p_P33_reaclib)*Y(N)*state.rho - screened_rates(k_p_S33_to_Cl34_reaclib)*Y(H1)*state.rho - screened_rates(k_p_S33_to_He4_P30_reaclib)*Y(H1)*state.rho - screened_rates(k_p_S33_to_n_Cl33_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_S33_He4_to_Ar37_reaclib)*Y(He4)*state.rho - screened_rates(k_S33_He4_to_n_Ar36_derived)*Y(He4)*state.rho - screened_rates(k_S33_He4_to_p_Cl36_derived)*Y(He4)*state.rho - screened_rates(k_S33_n_to_He4_Si30_reaclib)*Y(N)*state.rho - screened_rates(k_S33_n_to_S34_reaclib)*Y(N)*state.rho - screened_rates(k_S33_n_to_p_P33_reaclib)*Y(N)*state.rho - screened_rates(k_S33_p_to_Cl34_reaclib)*Y(H1)*state.rho - screened_rates(k_S33_p_to_He4_P30_derived)*Y(H1)*state.rho - screened_rates(k_S33_p_to_n_Cl33_derived)*Y(H1)*state.rho - screened_rates(k_S33_to_Cl33_beta_neg_weaktab) - screened_rates(k_S33_to_He4_Si29_derived) - screened_rates(k_S33_to_P33_electron_capture_weaktab) - screened_rates(k_S33_to_n_S32_derived) - screened_rates(k_S33_to_p_P32_derived); jac.set(S33, S33, scratch); - scratch = screened_rates(k_S34_to_n_S33_reaclib); + scratch = screened_rates(k_S34_to_n_S33_derived); jac.set(S33, S34, scratch); jac.set(S33, S35, 0.0); jac.set(S33, S36, 0.0); - scratch = screened_rates(k_Cl33_to_S33_weaktab) + screened_rates(k_n_Cl33_to_p_S33_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cl33_n_to_p_S33_reaclib)*Y(N)*state.rho + screened_rates(k_Cl33_to_S33_electron_capture_weaktab); jac.set(S33, Cl33, scratch); - scratch = screened_rates(k_Cl34_to_p_S33_reaclib); + scratch = screened_rates(k_Cl34_to_p_S33_derived); jac.set(S33, Cl34, scratch); jac.set(S33, Cl35, 0.0); - scratch = screened_rates(k_p_Cl36_to_He4_S33_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cl36_p_to_He4_S33_reaclib)*Y(H1)*state.rho; jac.set(S33, Cl36, scratch); jac.set(S33, Cl37, 0.0); - scratch = screened_rates(k_n_Ar36_to_He4_S33_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ar36_n_to_He4_S33_reaclib)*Y(N)*state.rho; jac.set(S33, Ar36, scratch); - scratch = screened_rates(k_Ar37_to_He4_S33_reaclib); + scratch = screened_rates(k_Ar37_to_He4_S33_derived); jac.set(S33, Ar37, scratch); jac.set(S33, Ar38, 0.0); @@ -27202,17 +25011,17 @@ void jac_nuc(const burn_t& state, jac.set(S33, Ge64, 0.0); - scratch = screened_rates(k_n_Ar37_to_He4_S34_reaclib)*Y(Ar37)*state.rho + screened_rates(k_n_Cl34_to_p_S34_reaclib)*Y(Cl34)*state.rho + screened_rates(k_n_S33_to_S34_reaclib)*Y(S33)*state.rho - screened_rates(k_n_S34_to_He4_Si31_reaclib)*Y(S34)*state.rho - screened_rates(k_n_S34_to_S35_reaclib)*Y(S34)*state.rho; + scratch = screened_rates(k_Ar37_n_to_He4_S34_derived)*Y(Ar37)*state.rho + screened_rates(k_Cl34_n_to_p_S34_reaclib)*Y(Cl34)*state.rho + screened_rates(k_S33_n_to_S34_reaclib)*Y(S33)*state.rho - screened_rates(k_S34_n_to_He4_Si31_derived)*Y(S34)*state.rho - screened_rates(k_S34_n_to_S35_reaclib)*Y(S34)*state.rho; jac.set(S34, N, scratch); - scratch = screened_rates(k_p_Cl37_to_He4_S34_reaclib)*Y(Cl37)*state.rho + screened_rates(k_p_P33_to_S34_reaclib)*Y(P33)*state.rho - screened_rates(k_p_S34_to_Cl35_reaclib)*Y(S34)*state.rho - screened_rates(k_p_S34_to_He4_P31_reaclib)*Y(S34)*state.rho - screened_rates(k_p_S34_to_n_Cl34_reaclib)*Y(S34)*state.rho; + scratch = screened_rates(k_Cl37_p_to_He4_S34_derived)*Y(Cl37)*state.rho + screened_rates(k_P33_p_to_S34_reaclib)*Y(P33)*state.rho - screened_rates(k_S34_p_to_Cl35_reaclib)*Y(S34)*state.rho - screened_rates(k_S34_p_to_He4_P31_derived)*Y(S34)*state.rho - screened_rates(k_S34_p_to_n_Cl34_derived)*Y(S34)*state.rho; jac.set(S34, H1, scratch); jac.set(S34, H2, 0.0); jac.set(S34, He3, 0.0); - scratch = screened_rates(k_He4_P31_to_p_S34_reaclib)*Y(P31)*state.rho - screened_rates(k_He4_S34_to_Ar38_reaclib)*Y(S34)*state.rho - screened_rates(k_He4_S34_to_n_Ar37_reaclib)*Y(S34)*state.rho - screened_rates(k_He4_S34_to_p_Cl37_reaclib)*Y(S34)*state.rho + screened_rates(k_He4_Si30_to_S34_reaclib)*Y(Si30)*state.rho + screened_rates(k_He4_Si31_to_n_S34_reaclib)*Y(Si31)*state.rho; + scratch = screened_rates(k_P31_He4_to_p_S34_reaclib)*Y(P31)*state.rho - screened_rates(k_S34_He4_to_Ar38_reaclib)*Y(S34)*state.rho - screened_rates(k_S34_He4_to_n_Ar37_reaclib)*Y(S34)*state.rho - screened_rates(k_S34_He4_to_p_Cl37_reaclib)*Y(S34)*state.rho + screened_rates(k_Si30_He4_to_S34_reaclib)*Y(Si30)*state.rho + screened_rates(k_Si31_He4_to_n_S34_reaclib)*Y(Si31)*state.rho; jac.set(S34, He4, scratch); jac.set(S34, Li6, 0.0); @@ -27291,10 +25100,10 @@ void jac_nuc(const burn_t& state, jac.set(S34, Si29, 0.0); - scratch = screened_rates(k_He4_Si30_to_S34_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Si30_He4_to_S34_reaclib)*Y(He4)*state.rho; jac.set(S34, Si30, scratch); - scratch = screened_rates(k_He4_Si31_to_n_S34_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Si31_He4_to_n_S34_reaclib)*Y(He4)*state.rho; jac.set(S34, Si31, scratch); jac.set(S34, Si32, 0.0); @@ -27303,46 +25112,46 @@ void jac_nuc(const burn_t& state, jac.set(S34, P30, 0.0); - scratch = screened_rates(k_He4_P31_to_p_S34_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_P31_He4_to_p_S34_reaclib)*Y(He4)*state.rho; jac.set(S34, P31, scratch); jac.set(S34, P32, 0.0); - scratch = screened_rates(k_p_P33_to_S34_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_P33_p_to_S34_reaclib)*Y(H1)*state.rho; jac.set(S34, P33, scratch); jac.set(S34, S32, 0.0); - scratch = screened_rates(k_n_S33_to_S34_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_S33_n_to_S34_reaclib)*Y(N)*state.rho; jac.set(S34, S33, scratch); - scratch = -screened_rates(k_He4_S34_to_Ar38_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_S34_to_n_Ar37_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_S34_to_p_Cl37_reaclib)*Y(He4)*state.rho - screened_rates(k_S34_to_Cl34_weaktab) - screened_rates(k_S34_to_He4_Si30_reaclib) - screened_rates(k_S34_to_n_S33_reaclib) - screened_rates(k_S34_to_p_P33_reaclib) - screened_rates(k_n_S34_to_He4_Si31_reaclib)*Y(N)*state.rho - screened_rates(k_n_S34_to_S35_reaclib)*Y(N)*state.rho - screened_rates(k_p_S34_to_Cl35_reaclib)*Y(H1)*state.rho - screened_rates(k_p_S34_to_He4_P31_reaclib)*Y(H1)*state.rho - screened_rates(k_p_S34_to_n_Cl34_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_S34_He4_to_Ar38_reaclib)*Y(He4)*state.rho - screened_rates(k_S34_He4_to_n_Ar37_reaclib)*Y(He4)*state.rho - screened_rates(k_S34_He4_to_p_Cl37_reaclib)*Y(He4)*state.rho - screened_rates(k_S34_n_to_He4_Si31_derived)*Y(N)*state.rho - screened_rates(k_S34_n_to_S35_reaclib)*Y(N)*state.rho - screened_rates(k_S34_p_to_Cl35_reaclib)*Y(H1)*state.rho - screened_rates(k_S34_p_to_He4_P31_derived)*Y(H1)*state.rho - screened_rates(k_S34_p_to_n_Cl34_derived)*Y(H1)*state.rho - screened_rates(k_S34_to_Cl34_beta_neg_weaktab) - screened_rates(k_S34_to_He4_Si30_derived) - screened_rates(k_S34_to_n_S33_derived) - screened_rates(k_S34_to_p_P33_derived); jac.set(S34, S34, scratch); - scratch = screened_rates(k_S35_to_n_S34_reaclib); + scratch = screened_rates(k_S35_to_n_S34_derived); jac.set(S34, S35, scratch); jac.set(S34, S36, 0.0); jac.set(S34, Cl33, 0.0); - scratch = screened_rates(k_Cl34_to_S34_weaktab) + screened_rates(k_n_Cl34_to_p_S34_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cl34_n_to_p_S34_reaclib)*Y(N)*state.rho + screened_rates(k_Cl34_to_S34_electron_capture_weaktab); jac.set(S34, Cl34, scratch); - scratch = screened_rates(k_Cl35_to_p_S34_reaclib); + scratch = screened_rates(k_Cl35_to_p_S34_derived); jac.set(S34, Cl35, scratch); jac.set(S34, Cl36, 0.0); - scratch = screened_rates(k_p_Cl37_to_He4_S34_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cl37_p_to_He4_S34_derived)*Y(H1)*state.rho; jac.set(S34, Cl37, scratch); jac.set(S34, Ar36, 0.0); - scratch = screened_rates(k_n_Ar37_to_He4_S34_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ar37_n_to_He4_S34_derived)*Y(N)*state.rho; jac.set(S34, Ar37, scratch); - scratch = screened_rates(k_Ar38_to_He4_S34_reaclib); + scratch = screened_rates(k_Ar38_to_He4_S34_derived); jac.set(S34, Ar38, scratch); jac.set(S34, Ar39, 0.0); @@ -27537,17 +25346,17 @@ void jac_nuc(const burn_t& state, jac.set(S34, Ge64, 0.0); - scratch = screened_rates(k_n_Ar38_to_He4_S35_reaclib)*Y(Ar38)*state.rho + screened_rates(k_n_Cl35_to_p_S35_reaclib)*Y(Cl35)*state.rho + screened_rates(k_n_S34_to_S35_reaclib)*Y(S34)*state.rho - screened_rates(k_n_S35_to_He4_Si32_reaclib)*Y(S35)*state.rho - screened_rates(k_n_S35_to_S36_reaclib)*Y(S35)*state.rho; + scratch = screened_rates(k_Ar38_n_to_He4_S35_derived)*Y(Ar38)*state.rho + screened_rates(k_Cl35_n_to_p_S35_reaclib)*Y(Cl35)*state.rho + screened_rates(k_S34_n_to_S35_reaclib)*Y(S34)*state.rho - screened_rates(k_S35_n_to_He4_Si32_reaclib)*Y(S35)*state.rho - screened_rates(k_S35_n_to_S36_reaclib)*Y(S35)*state.rho; jac.set(S35, N, scratch); - scratch = -screened_rates(k_p_S35_to_Cl36_reaclib)*Y(S35)*state.rho - screened_rates(k_p_S35_to_He4_P32_reaclib)*Y(S35)*state.rho - screened_rates(k_p_S35_to_n_Cl35_reaclib)*Y(S35)*state.rho; + scratch = -screened_rates(k_S35_p_to_Cl36_reaclib)*Y(S35)*state.rho - screened_rates(k_S35_p_to_He4_P32_reaclib)*Y(S35)*state.rho - screened_rates(k_S35_p_to_n_Cl35_derived)*Y(S35)*state.rho; jac.set(S35, H1, scratch); jac.set(S35, H2, 0.0); jac.set(S35, He3, 0.0); - scratch = screened_rates(k_He4_P32_to_p_S35_reaclib)*Y(P32)*state.rho - screened_rates(k_He4_S35_to_Ar39_reaclib)*Y(S35)*state.rho - screened_rates(k_He4_S35_to_n_Ar38_reaclib)*Y(S35)*state.rho + screened_rates(k_He4_Si31_to_S35_reaclib)*Y(Si31)*state.rho + screened_rates(k_He4_Si32_to_n_S35_reaclib)*Y(Si32)*state.rho; + scratch = screened_rates(k_P32_He4_to_p_S35_derived)*Y(P32)*state.rho - screened_rates(k_S35_He4_to_Ar39_reaclib)*Y(S35)*state.rho - screened_rates(k_S35_He4_to_n_Ar38_reaclib)*Y(S35)*state.rho + screened_rates(k_Si31_He4_to_S35_reaclib)*Y(Si31)*state.rho + screened_rates(k_Si32_He4_to_n_S35_derived)*Y(Si32)*state.rho; jac.set(S35, He4, scratch); jac.set(S35, Li6, 0.0); @@ -27628,10 +25437,10 @@ void jac_nuc(const burn_t& state, jac.set(S35, Si30, 0.0); - scratch = screened_rates(k_He4_Si31_to_S35_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Si31_He4_to_S35_reaclib)*Y(He4)*state.rho; jac.set(S35, Si31, scratch); - scratch = screened_rates(k_He4_Si32_to_n_S35_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Si32_He4_to_n_S35_derived)*Y(He4)*state.rho; jac.set(S35, Si32, scratch); jac.set(S35, P29, 0.0); @@ -27640,7 +25449,7 @@ void jac_nuc(const burn_t& state, jac.set(S35, P31, 0.0); - scratch = screened_rates(k_He4_P32_to_p_S35_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_P32_He4_to_p_S35_derived)*Y(He4)*state.rho; jac.set(S35, P32, scratch); jac.set(S35, P33, 0.0); @@ -27649,23 +25458,23 @@ void jac_nuc(const burn_t& state, jac.set(S35, S33, 0.0); - scratch = screened_rates(k_n_S34_to_S35_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_S34_n_to_S35_reaclib)*Y(N)*state.rho; jac.set(S35, S34, scratch); - scratch = -screened_rates(k_He4_S35_to_Ar39_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_S35_to_n_Ar38_reaclib)*Y(He4)*state.rho - screened_rates(k_S35_to_Cl35_weaktab) - screened_rates(k_S35_to_He4_Si31_reaclib) - screened_rates(k_S35_to_n_S34_reaclib) - screened_rates(k_n_S35_to_He4_Si32_reaclib)*Y(N)*state.rho - screened_rates(k_n_S35_to_S36_reaclib)*Y(N)*state.rho - screened_rates(k_p_S35_to_Cl36_reaclib)*Y(H1)*state.rho - screened_rates(k_p_S35_to_He4_P32_reaclib)*Y(H1)*state.rho - screened_rates(k_p_S35_to_n_Cl35_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_S35_He4_to_Ar39_reaclib)*Y(He4)*state.rho - screened_rates(k_S35_He4_to_n_Ar38_reaclib)*Y(He4)*state.rho - screened_rates(k_S35_n_to_He4_Si32_reaclib)*Y(N)*state.rho - screened_rates(k_S35_n_to_S36_reaclib)*Y(N)*state.rho - screened_rates(k_S35_p_to_Cl36_reaclib)*Y(H1)*state.rho - screened_rates(k_S35_p_to_He4_P32_reaclib)*Y(H1)*state.rho - screened_rates(k_S35_p_to_n_Cl35_derived)*Y(H1)*state.rho - screened_rates(k_S35_to_Cl35_beta_neg_weaktab) - screened_rates(k_S35_to_He4_Si31_derived) - screened_rates(k_S35_to_n_S34_derived); jac.set(S35, S35, scratch); - scratch = screened_rates(k_S36_to_n_S35_reaclib); + scratch = screened_rates(k_S36_to_n_S35_derived); jac.set(S35, S36, scratch); jac.set(S35, Cl33, 0.0); jac.set(S35, Cl34, 0.0); - scratch = screened_rates(k_Cl35_to_S35_weaktab) + screened_rates(k_n_Cl35_to_p_S35_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cl35_n_to_p_S35_reaclib)*Y(N)*state.rho + screened_rates(k_Cl35_to_S35_electron_capture_weaktab); jac.set(S35, Cl35, scratch); - scratch = screened_rates(k_Cl36_to_p_S35_reaclib); + scratch = screened_rates(k_Cl36_to_p_S35_derived); jac.set(S35, Cl36, scratch); jac.set(S35, Cl37, 0.0); @@ -27674,10 +25483,10 @@ void jac_nuc(const burn_t& state, jac.set(S35, Ar37, 0.0); - scratch = screened_rates(k_n_Ar38_to_He4_S35_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ar38_n_to_He4_S35_derived)*Y(N)*state.rho; jac.set(S35, Ar38, scratch); - scratch = screened_rates(k_Ar39_to_He4_S35_reaclib); + scratch = screened_rates(k_Ar39_to_He4_S35_derived); jac.set(S35, Ar39, scratch); jac.set(S35, Ar40, 0.0); @@ -27870,17 +25679,17 @@ void jac_nuc(const burn_t& state, jac.set(S35, Ge64, 0.0); - scratch = screened_rates(k_n_Ar39_to_He4_S36_reaclib)*Y(Ar39)*state.rho + screened_rates(k_n_Cl36_to_p_S36_reaclib)*Y(Cl36)*state.rho + screened_rates(k_n_S35_to_S36_reaclib)*Y(S35)*state.rho; + scratch = screened_rates(k_Ar39_n_to_He4_S36_reaclib)*Y(Ar39)*state.rho + screened_rates(k_Cl36_n_to_p_S36_reaclib)*Y(Cl36)*state.rho + screened_rates(k_S35_n_to_S36_reaclib)*Y(S35)*state.rho; jac.set(S36, N, scratch); - scratch = -screened_rates(k_p_S36_to_Cl37_reaclib)*Y(S36)*state.rho - screened_rates(k_p_S36_to_He4_P33_reaclib)*Y(S36)*state.rho - screened_rates(k_p_S36_to_n_Cl36_reaclib)*Y(S36)*state.rho; + scratch = -screened_rates(k_S36_p_to_Cl37_reaclib)*Y(S36)*state.rho - screened_rates(k_S36_p_to_He4_P33_reaclib)*Y(S36)*state.rho - screened_rates(k_S36_p_to_n_Cl36_derived)*Y(S36)*state.rho; jac.set(S36, H1, scratch); jac.set(S36, H2, 0.0); jac.set(S36, He3, 0.0); - scratch = screened_rates(k_He4_P33_to_p_S36_reaclib)*Y(P33)*state.rho - screened_rates(k_He4_S36_to_Ar40_reaclib)*Y(S36)*state.rho - screened_rates(k_He4_S36_to_n_Ar39_reaclib)*Y(S36)*state.rho + screened_rates(k_He4_Si32_to_S36_reaclib)*Y(Si32)*state.rho; + scratch = screened_rates(k_P33_He4_to_p_S36_derived)*Y(P33)*state.rho - screened_rates(k_S36_He4_to_Ar40_reaclib)*Y(S36)*state.rho - screened_rates(k_S36_He4_to_n_Ar39_derived)*Y(S36)*state.rho + screened_rates(k_Si32_He4_to_S36_reaclib)*Y(Si32)*state.rho; jac.set(S36, He4, scratch); jac.set(S36, Li6, 0.0); @@ -27963,7 +25772,7 @@ void jac_nuc(const burn_t& state, jac.set(S36, Si31, 0.0); - scratch = screened_rates(k_He4_Si32_to_S36_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Si32_He4_to_S36_reaclib)*Y(He4)*state.rho; jac.set(S36, Si32, scratch); jac.set(S36, P29, 0.0); @@ -27974,7 +25783,7 @@ void jac_nuc(const burn_t& state, jac.set(S36, P32, 0.0); - scratch = screened_rates(k_He4_P33_to_p_S36_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_P33_He4_to_p_S36_derived)*Y(He4)*state.rho; jac.set(S36, P33, scratch); jac.set(S36, S32, 0.0); @@ -27983,10 +25792,10 @@ void jac_nuc(const burn_t& state, jac.set(S36, S34, 0.0); - scratch = screened_rates(k_n_S35_to_S36_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_S35_n_to_S36_reaclib)*Y(N)*state.rho; jac.set(S36, S35, scratch); - scratch = -screened_rates(k_He4_S36_to_Ar40_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_S36_to_n_Ar39_reaclib)*Y(He4)*state.rho - screened_rates(k_S36_to_Cl36_weaktab) - screened_rates(k_S36_to_He4_Si32_reaclib) - screened_rates(k_S36_to_n_S35_reaclib) - screened_rates(k_p_S36_to_Cl37_reaclib)*Y(H1)*state.rho - screened_rates(k_p_S36_to_He4_P33_reaclib)*Y(H1)*state.rho - screened_rates(k_p_S36_to_n_Cl36_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_S36_He4_to_Ar40_reaclib)*Y(He4)*state.rho - screened_rates(k_S36_He4_to_n_Ar39_derived)*Y(He4)*state.rho - screened_rates(k_S36_p_to_Cl37_reaclib)*Y(H1)*state.rho - screened_rates(k_S36_p_to_He4_P33_reaclib)*Y(H1)*state.rho - screened_rates(k_S36_p_to_n_Cl36_derived)*Y(H1)*state.rho - screened_rates(k_S36_to_Cl36_beta_neg_weaktab) - screened_rates(k_S36_to_He4_Si32_derived) - screened_rates(k_S36_to_n_S35_derived); jac.set(S36, S36, scratch); jac.set(S36, Cl33, 0.0); @@ -27995,10 +25804,10 @@ void jac_nuc(const burn_t& state, jac.set(S36, Cl35, 0.0); - scratch = screened_rates(k_Cl36_to_S36_weaktab) + screened_rates(k_n_Cl36_to_p_S36_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cl36_n_to_p_S36_reaclib)*Y(N)*state.rho + screened_rates(k_Cl36_to_S36_electron_capture_weaktab); jac.set(S36, Cl36, scratch); - scratch = screened_rates(k_Cl37_to_p_S36_reaclib); + scratch = screened_rates(k_Cl37_to_p_S36_derived); jac.set(S36, Cl37, scratch); jac.set(S36, Ar36, 0.0); @@ -28007,10 +25816,10 @@ void jac_nuc(const burn_t& state, jac.set(S36, Ar38, 0.0); - scratch = screened_rates(k_n_Ar39_to_He4_S36_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ar39_n_to_He4_S36_reaclib)*Y(N)*state.rho; jac.set(S36, Ar39, scratch); - scratch = screened_rates(k_Ar40_to_He4_S36_reaclib); + scratch = screened_rates(k_Ar40_to_He4_S36_derived); jac.set(S36, Ar40, scratch); jac.set(S36, K37, 0.0); @@ -28201,17 +26010,17 @@ void jac_nuc(const burn_t& state, jac.set(S36, Ge64, 0.0); - scratch = -screened_rates(k_n_Cl33_to_Cl34_reaclib)*Y(Cl33)*state.rho - screened_rates(k_n_Cl33_to_He4_P30_reaclib)*Y(Cl33)*state.rho - screened_rates(k_n_Cl33_to_p_S33_reaclib)*Y(Cl33)*state.rho; + scratch = -screened_rates(k_Cl33_n_to_Cl34_reaclib)*Y(Cl33)*state.rho - screened_rates(k_Cl33_n_to_He4_P30_reaclib)*Y(Cl33)*state.rho - screened_rates(k_Cl33_n_to_p_S33_reaclib)*Y(Cl33)*state.rho; jac.set(Cl33, N, scratch); - scratch = screened_rates(k_p_Ar36_to_He4_Cl33_reaclib)*Y(Ar36)*state.rho + screened_rates(k_p_S32_to_Cl33_reaclib)*Y(S32)*state.rho + screened_rates(k_p_S33_to_n_Cl33_reaclib)*Y(S33)*state.rho; + scratch = screened_rates(k_Ar36_p_to_He4_Cl33_derived)*Y(Ar36)*state.rho + screened_rates(k_S32_p_to_Cl33_reaclib)*Y(S32)*state.rho + screened_rates(k_S33_p_to_n_Cl33_derived)*Y(S33)*state.rho; jac.set(Cl33, H1, scratch); jac.set(Cl33, H2, 0.0); jac.set(Cl33, He3, 0.0); - scratch = -screened_rates(k_He4_Cl33_to_K37_reaclib)*Y(Cl33)*state.rho - screened_rates(k_He4_Cl33_to_p_Ar36_reaclib)*Y(Cl33)*state.rho + screened_rates(k_He4_P29_to_Cl33_reaclib)*Y(P29)*state.rho + screened_rates(k_He4_P30_to_n_Cl33_reaclib)*Y(P30)*state.rho; + scratch = -screened_rates(k_Cl33_He4_to_K37_reaclib)*Y(Cl33)*state.rho - screened_rates(k_Cl33_He4_to_p_Ar36_reaclib)*Y(Cl33)*state.rho + screened_rates(k_P29_He4_to_Cl33_reaclib)*Y(P29)*state.rho + screened_rates(k_P30_He4_to_n_Cl33_derived)*Y(P30)*state.rho; jac.set(Cl33, He4, scratch); jac.set(Cl33, Li6, 0.0); @@ -28296,10 +26105,10 @@ void jac_nuc(const burn_t& state, jac.set(Cl33, Si32, 0.0); - scratch = screened_rates(k_He4_P29_to_Cl33_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_P29_He4_to_Cl33_reaclib)*Y(He4)*state.rho; jac.set(Cl33, P29, scratch); - scratch = screened_rates(k_He4_P30_to_n_Cl33_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_P30_He4_to_n_Cl33_derived)*Y(He4)*state.rho; jac.set(Cl33, P30, scratch); jac.set(Cl33, P31, 0.0); @@ -28308,10 +26117,10 @@ void jac_nuc(const burn_t& state, jac.set(Cl33, P33, 0.0); - scratch = screened_rates(k_p_S32_to_Cl33_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_S32_p_to_Cl33_reaclib)*Y(H1)*state.rho; jac.set(Cl33, S32, scratch); - scratch = screened_rates(k_S33_to_Cl33_weaktab) + screened_rates(k_p_S33_to_n_Cl33_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_S33_p_to_n_Cl33_derived)*Y(H1)*state.rho + screened_rates(k_S33_to_Cl33_beta_neg_weaktab); jac.set(Cl33, S33, scratch); jac.set(Cl33, S34, 0.0); @@ -28320,10 +26129,10 @@ void jac_nuc(const burn_t& state, jac.set(Cl33, S36, 0.0); - scratch = -screened_rates(k_Cl33_to_He4_P29_reaclib) - screened_rates(k_Cl33_to_S33_weaktab) - screened_rates(k_Cl33_to_p_S32_reaclib) - screened_rates(k_He4_Cl33_to_K37_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cl33_to_p_Ar36_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cl33_to_Cl34_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cl33_to_He4_P30_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cl33_to_p_S33_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Cl33_He4_to_K37_reaclib)*Y(He4)*state.rho - screened_rates(k_Cl33_He4_to_p_Ar36_reaclib)*Y(He4)*state.rho - screened_rates(k_Cl33_n_to_Cl34_reaclib)*Y(N)*state.rho - screened_rates(k_Cl33_n_to_He4_P30_reaclib)*Y(N)*state.rho - screened_rates(k_Cl33_n_to_p_S33_reaclib)*Y(N)*state.rho - screened_rates(k_Cl33_to_He4_P29_derived) - screened_rates(k_Cl33_to_S33_electron_capture_weaktab) - screened_rates(k_Cl33_to_p_S32_derived); jac.set(Cl33, Cl33, scratch); - scratch = screened_rates(k_Cl34_to_n_Cl33_reaclib); + scratch = screened_rates(k_Cl34_to_n_Cl33_derived); jac.set(Cl33, Cl34, scratch); jac.set(Cl33, Cl35, 0.0); @@ -28332,7 +26141,7 @@ void jac_nuc(const burn_t& state, jac.set(Cl33, Cl37, 0.0); - scratch = screened_rates(k_p_Ar36_to_He4_Cl33_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ar36_p_to_He4_Cl33_derived)*Y(H1)*state.rho; jac.set(Cl33, Ar36, scratch); jac.set(Cl33, Ar37, 0.0); @@ -28343,7 +26152,7 @@ void jac_nuc(const burn_t& state, jac.set(Cl33, Ar40, 0.0); - scratch = screened_rates(k_K37_to_He4_Cl33_reaclib); + scratch = screened_rates(k_K37_to_He4_Cl33_derived); jac.set(Cl33, K37, scratch); jac.set(Cl33, K38, 0.0); @@ -28532,17 +26341,17 @@ void jac_nuc(const burn_t& state, jac.set(Cl33, Ge64, 0.0); - scratch = screened_rates(k_n_Cl33_to_Cl34_reaclib)*Y(Cl33)*state.rho - screened_rates(k_n_Cl34_to_Cl35_reaclib)*Y(Cl34)*state.rho - screened_rates(k_n_Cl34_to_He4_P31_reaclib)*Y(Cl34)*state.rho - screened_rates(k_n_Cl34_to_p_S34_reaclib)*Y(Cl34)*state.rho + screened_rates(k_n_K37_to_He4_Cl34_reaclib)*Y(K37)*state.rho; + scratch = screened_rates(k_Cl33_n_to_Cl34_reaclib)*Y(Cl33)*state.rho - screened_rates(k_Cl34_n_to_Cl35_reaclib)*Y(Cl34)*state.rho - screened_rates(k_Cl34_n_to_He4_P31_reaclib)*Y(Cl34)*state.rho - screened_rates(k_Cl34_n_to_p_S34_reaclib)*Y(Cl34)*state.rho + screened_rates(k_K37_n_to_He4_Cl34_reaclib)*Y(K37)*state.rho; jac.set(Cl34, N, scratch); - scratch = screened_rates(k_p_Ar37_to_He4_Cl34_reaclib)*Y(Ar37)*state.rho + screened_rates(k_p_S33_to_Cl34_reaclib)*Y(S33)*state.rho + screened_rates(k_p_S34_to_n_Cl34_reaclib)*Y(S34)*state.rho; + scratch = screened_rates(k_Ar37_p_to_He4_Cl34_derived)*Y(Ar37)*state.rho + screened_rates(k_S33_p_to_Cl34_reaclib)*Y(S33)*state.rho + screened_rates(k_S34_p_to_n_Cl34_derived)*Y(S34)*state.rho; jac.set(Cl34, H1, scratch); jac.set(Cl34, H2, 0.0); jac.set(Cl34, He3, 0.0); - scratch = -screened_rates(k_He4_Cl34_to_K38_reaclib)*Y(Cl34)*state.rho - screened_rates(k_He4_Cl34_to_n_K37_reaclib)*Y(Cl34)*state.rho - screened_rates(k_He4_Cl34_to_p_Ar37_reaclib)*Y(Cl34)*state.rho + screened_rates(k_He4_P30_to_Cl34_reaclib)*Y(P30)*state.rho + screened_rates(k_He4_P31_to_n_Cl34_reaclib)*Y(P31)*state.rho; + scratch = -screened_rates(k_Cl34_He4_to_K38_reaclib)*Y(Cl34)*state.rho - screened_rates(k_Cl34_He4_to_n_K37_derived)*Y(Cl34)*state.rho - screened_rates(k_Cl34_He4_to_p_Ar37_reaclib)*Y(Cl34)*state.rho + screened_rates(k_P30_He4_to_Cl34_reaclib)*Y(P30)*state.rho + screened_rates(k_P31_He4_to_n_Cl34_derived)*Y(P31)*state.rho; jac.set(Cl34, He4, scratch); jac.set(Cl34, Li6, 0.0); @@ -28629,10 +26438,10 @@ void jac_nuc(const burn_t& state, jac.set(Cl34, P29, 0.0); - scratch = screened_rates(k_He4_P30_to_Cl34_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_P30_He4_to_Cl34_reaclib)*Y(He4)*state.rho; jac.set(Cl34, P30, scratch); - scratch = screened_rates(k_He4_P31_to_n_Cl34_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_P31_He4_to_n_Cl34_derived)*Y(He4)*state.rho; jac.set(Cl34, P31, scratch); jac.set(Cl34, P32, 0.0); @@ -28641,23 +26450,23 @@ void jac_nuc(const burn_t& state, jac.set(Cl34, S32, 0.0); - scratch = screened_rates(k_p_S33_to_Cl34_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_S33_p_to_Cl34_reaclib)*Y(H1)*state.rho; jac.set(Cl34, S33, scratch); - scratch = screened_rates(k_S34_to_Cl34_weaktab) + screened_rates(k_p_S34_to_n_Cl34_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_S34_p_to_n_Cl34_derived)*Y(H1)*state.rho + screened_rates(k_S34_to_Cl34_beta_neg_weaktab); jac.set(Cl34, S34, scratch); jac.set(Cl34, S35, 0.0); jac.set(Cl34, S36, 0.0); - scratch = screened_rates(k_n_Cl33_to_Cl34_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cl33_n_to_Cl34_reaclib)*Y(N)*state.rho; jac.set(Cl34, Cl33, scratch); - scratch = -screened_rates(k_Cl34_to_He4_P30_reaclib) - screened_rates(k_Cl34_to_S34_weaktab) - screened_rates(k_Cl34_to_n_Cl33_reaclib) - screened_rates(k_Cl34_to_p_S33_reaclib) - screened_rates(k_He4_Cl34_to_K38_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cl34_to_n_K37_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cl34_to_p_Ar37_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cl34_to_Cl35_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cl34_to_He4_P31_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cl34_to_p_S34_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Cl34_He4_to_K38_reaclib)*Y(He4)*state.rho - screened_rates(k_Cl34_He4_to_n_K37_derived)*Y(He4)*state.rho - screened_rates(k_Cl34_He4_to_p_Ar37_reaclib)*Y(He4)*state.rho - screened_rates(k_Cl34_n_to_Cl35_reaclib)*Y(N)*state.rho - screened_rates(k_Cl34_n_to_He4_P31_reaclib)*Y(N)*state.rho - screened_rates(k_Cl34_n_to_p_S34_reaclib)*Y(N)*state.rho - screened_rates(k_Cl34_to_He4_P30_derived) - screened_rates(k_Cl34_to_S34_electron_capture_weaktab) - screened_rates(k_Cl34_to_n_Cl33_derived) - screened_rates(k_Cl34_to_p_S33_derived); jac.set(Cl34, Cl34, scratch); - scratch = screened_rates(k_Cl35_to_n_Cl34_reaclib); + scratch = screened_rates(k_Cl35_to_n_Cl34_derived); jac.set(Cl34, Cl35, scratch); jac.set(Cl34, Cl36, 0.0); @@ -28666,7 +26475,7 @@ void jac_nuc(const burn_t& state, jac.set(Cl34, Ar36, 0.0); - scratch = screened_rates(k_p_Ar37_to_He4_Cl34_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ar37_p_to_He4_Cl34_derived)*Y(H1)*state.rho; jac.set(Cl34, Ar37, scratch); jac.set(Cl34, Ar38, 0.0); @@ -28675,10 +26484,10 @@ void jac_nuc(const burn_t& state, jac.set(Cl34, Ar40, 0.0); - scratch = screened_rates(k_n_K37_to_He4_Cl34_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_K37_n_to_He4_Cl34_reaclib)*Y(N)*state.rho; jac.set(Cl34, K37, scratch); - scratch = screened_rates(k_K38_to_He4_Cl34_reaclib); + scratch = screened_rates(k_K38_to_He4_Cl34_derived); jac.set(Cl34, K38, scratch); jac.set(Cl34, K39, 0.0); @@ -28865,17 +26674,17 @@ void jac_nuc(const burn_t& state, jac.set(Cl34, Ge64, 0.0); - scratch = screened_rates(k_n_Cl34_to_Cl35_reaclib)*Y(Cl34)*state.rho - screened_rates(k_n_Cl35_to_Cl36_reaclib)*Y(Cl35)*state.rho - screened_rates(k_n_Cl35_to_He4_P32_reaclib)*Y(Cl35)*state.rho - screened_rates(k_n_Cl35_to_p_S35_reaclib)*Y(Cl35)*state.rho + screened_rates(k_n_K38_to_He4_Cl35_reaclib)*Y(K38)*state.rho; + scratch = screened_rates(k_Cl34_n_to_Cl35_reaclib)*Y(Cl34)*state.rho - screened_rates(k_Cl35_n_to_Cl36_reaclib)*Y(Cl35)*state.rho - screened_rates(k_Cl35_n_to_He4_P32_reaclib)*Y(Cl35)*state.rho - screened_rates(k_Cl35_n_to_p_S35_reaclib)*Y(Cl35)*state.rho + screened_rates(k_K38_n_to_He4_Cl35_reaclib)*Y(K38)*state.rho; jac.set(Cl35, N, scratch); - scratch = screened_rates(k_p_Ar38_to_He4_Cl35_reaclib)*Y(Ar38)*state.rho - screened_rates(k_p_Cl35_to_Ar36_reaclib)*Y(Cl35)*state.rho - screened_rates(k_p_Cl35_to_He4_S32_reaclib)*Y(Cl35)*state.rho + screened_rates(k_p_S34_to_Cl35_reaclib)*Y(S34)*state.rho + screened_rates(k_p_S35_to_n_Cl35_reaclib)*Y(S35)*state.rho; + scratch = screened_rates(k_Ar38_p_to_He4_Cl35_derived)*Y(Ar38)*state.rho - screened_rates(k_Cl35_p_to_Ar36_reaclib)*Y(Cl35)*state.rho - screened_rates(k_Cl35_p_to_He4_S32_reaclib)*Y(Cl35)*state.rho + screened_rates(k_S34_p_to_Cl35_reaclib)*Y(S34)*state.rho + screened_rates(k_S35_p_to_n_Cl35_derived)*Y(S35)*state.rho; jac.set(Cl35, H1, scratch); jac.set(Cl35, H2, 0.0); jac.set(Cl35, He3, 0.0); - scratch = -screened_rates(k_He4_Cl35_to_K39_reaclib)*Y(Cl35)*state.rho - screened_rates(k_He4_Cl35_to_n_K38_reaclib)*Y(Cl35)*state.rho - screened_rates(k_He4_Cl35_to_p_Ar38_reaclib)*Y(Cl35)*state.rho + screened_rates(k_He4_P31_to_Cl35_reaclib)*Y(P31)*state.rho + screened_rates(k_He4_P32_to_n_Cl35_reaclib)*Y(P32)*state.rho + screened_rates(k_He4_S32_to_p_Cl35_reaclib)*Y(S32)*state.rho; + scratch = -screened_rates(k_Cl35_He4_to_K39_reaclib)*Y(Cl35)*state.rho - screened_rates(k_Cl35_He4_to_n_K38_derived)*Y(Cl35)*state.rho - screened_rates(k_Cl35_He4_to_p_Ar38_reaclib)*Y(Cl35)*state.rho + screened_rates(k_P31_He4_to_Cl35_reaclib)*Y(P31)*state.rho + screened_rates(k_P32_He4_to_n_Cl35_derived)*Y(P32)*state.rho + screened_rates(k_S32_He4_to_p_Cl35_derived)*Y(S32)*state.rho; jac.set(Cl35, He4, scratch); jac.set(Cl35, Li6, 0.0); @@ -28964,46 +26773,46 @@ void jac_nuc(const burn_t& state, jac.set(Cl35, P30, 0.0); - scratch = screened_rates(k_He4_P31_to_Cl35_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_P31_He4_to_Cl35_reaclib)*Y(He4)*state.rho; jac.set(Cl35, P31, scratch); - scratch = screened_rates(k_He4_P32_to_n_Cl35_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_P32_He4_to_n_Cl35_derived)*Y(He4)*state.rho; jac.set(Cl35, P32, scratch); jac.set(Cl35, P33, 0.0); - scratch = screened_rates(k_He4_S32_to_p_Cl35_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_S32_He4_to_p_Cl35_derived)*Y(He4)*state.rho; jac.set(Cl35, S32, scratch); jac.set(Cl35, S33, 0.0); - scratch = screened_rates(k_p_S34_to_Cl35_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_S34_p_to_Cl35_reaclib)*Y(H1)*state.rho; jac.set(Cl35, S34, scratch); - scratch = screened_rates(k_S35_to_Cl35_weaktab) + screened_rates(k_p_S35_to_n_Cl35_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_S35_p_to_n_Cl35_derived)*Y(H1)*state.rho + screened_rates(k_S35_to_Cl35_beta_neg_weaktab); jac.set(Cl35, S35, scratch); jac.set(Cl35, S36, 0.0); jac.set(Cl35, Cl33, 0.0); - scratch = screened_rates(k_n_Cl34_to_Cl35_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cl34_n_to_Cl35_reaclib)*Y(N)*state.rho; jac.set(Cl35, Cl34, scratch); - scratch = -screened_rates(k_Cl35_to_He4_P31_reaclib) - screened_rates(k_Cl35_to_S35_weaktab) - screened_rates(k_Cl35_to_n_Cl34_reaclib) - screened_rates(k_Cl35_to_p_S34_reaclib) - screened_rates(k_He4_Cl35_to_K39_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cl35_to_n_K38_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cl35_to_p_Ar38_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cl35_to_Cl36_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cl35_to_He4_P32_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cl35_to_p_S35_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cl35_to_Ar36_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cl35_to_He4_S32_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cl35_He4_to_K39_reaclib)*Y(He4)*state.rho - screened_rates(k_Cl35_He4_to_n_K38_derived)*Y(He4)*state.rho - screened_rates(k_Cl35_He4_to_p_Ar38_reaclib)*Y(He4)*state.rho - screened_rates(k_Cl35_n_to_Cl36_reaclib)*Y(N)*state.rho - screened_rates(k_Cl35_n_to_He4_P32_reaclib)*Y(N)*state.rho - screened_rates(k_Cl35_n_to_p_S35_reaclib)*Y(N)*state.rho - screened_rates(k_Cl35_p_to_Ar36_reaclib)*Y(H1)*state.rho - screened_rates(k_Cl35_p_to_He4_S32_reaclib)*Y(H1)*state.rho - screened_rates(k_Cl35_to_He4_P31_derived) - screened_rates(k_Cl35_to_S35_electron_capture_weaktab) - screened_rates(k_Cl35_to_n_Cl34_derived) - screened_rates(k_Cl35_to_p_S34_derived); jac.set(Cl35, Cl35, scratch); - scratch = screened_rates(k_Cl36_to_n_Cl35_reaclib); + scratch = screened_rates(k_Cl36_to_n_Cl35_derived); jac.set(Cl35, Cl36, scratch); jac.set(Cl35, Cl37, 0.0); - scratch = screened_rates(k_Ar36_to_p_Cl35_reaclib); + scratch = screened_rates(k_Ar36_to_p_Cl35_derived); jac.set(Cl35, Ar36, scratch); jac.set(Cl35, Ar37, 0.0); - scratch = screened_rates(k_p_Ar38_to_He4_Cl35_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ar38_p_to_He4_Cl35_derived)*Y(H1)*state.rho; jac.set(Cl35, Ar38, scratch); jac.set(Cl35, Ar39, 0.0); @@ -29012,10 +26821,10 @@ void jac_nuc(const burn_t& state, jac.set(Cl35, K37, 0.0); - scratch = screened_rates(k_n_K38_to_He4_Cl35_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_K38_n_to_He4_Cl35_reaclib)*Y(N)*state.rho; jac.set(Cl35, K38, scratch); - scratch = screened_rates(k_K39_to_He4_Cl35_reaclib); + scratch = screened_rates(k_K39_to_He4_Cl35_derived); jac.set(Cl35, K39, scratch); jac.set(Cl35, K40, 0.0); @@ -29200,17 +27009,17 @@ void jac_nuc(const burn_t& state, jac.set(Cl35, Ge64, 0.0); - scratch = screened_rates(k_n_Ar36_to_p_Cl36_reaclib)*Y(Ar36)*state.rho + screened_rates(k_n_Cl35_to_Cl36_reaclib)*Y(Cl35)*state.rho - screened_rates(k_n_Cl36_to_Cl37_reaclib)*Y(Cl36)*state.rho - screened_rates(k_n_Cl36_to_He4_P33_reaclib)*Y(Cl36)*state.rho - screened_rates(k_n_Cl36_to_p_S36_reaclib)*Y(Cl36)*state.rho + screened_rates(k_n_K39_to_He4_Cl36_reaclib)*Y(K39)*state.rho; + scratch = screened_rates(k_Ar36_n_to_p_Cl36_reaclib)*Y(Ar36)*state.rho + screened_rates(k_Cl35_n_to_Cl36_reaclib)*Y(Cl35)*state.rho - screened_rates(k_Cl36_n_to_Cl37_reaclib)*Y(Cl36)*state.rho - screened_rates(k_Cl36_n_to_He4_P33_reaclib)*Y(Cl36)*state.rho - screened_rates(k_Cl36_n_to_p_S36_reaclib)*Y(Cl36)*state.rho + screened_rates(k_K39_n_to_He4_Cl36_reaclib)*Y(K39)*state.rho; jac.set(Cl36, N, scratch); - scratch = screened_rates(k_p_Ar39_to_He4_Cl36_reaclib)*Y(Ar39)*state.rho - screened_rates(k_p_Cl36_to_Ar37_reaclib)*Y(Cl36)*state.rho - screened_rates(k_p_Cl36_to_He4_S33_reaclib)*Y(Cl36)*state.rho - screened_rates(k_p_Cl36_to_n_Ar36_reaclib)*Y(Cl36)*state.rho + screened_rates(k_p_S35_to_Cl36_reaclib)*Y(S35)*state.rho + screened_rates(k_p_S36_to_n_Cl36_reaclib)*Y(S36)*state.rho; + scratch = screened_rates(k_Ar39_p_to_He4_Cl36_reaclib)*Y(Ar39)*state.rho - screened_rates(k_Cl36_p_to_Ar37_reaclib)*Y(Cl36)*state.rho - screened_rates(k_Cl36_p_to_He4_S33_reaclib)*Y(Cl36)*state.rho - screened_rates(k_Cl36_p_to_n_Ar36_derived)*Y(Cl36)*state.rho + screened_rates(k_S35_p_to_Cl36_reaclib)*Y(S35)*state.rho + screened_rates(k_S36_p_to_n_Cl36_derived)*Y(S36)*state.rho; jac.set(Cl36, H1, scratch); jac.set(Cl36, H2, 0.0); jac.set(Cl36, He3, 0.0); - scratch = -screened_rates(k_He4_Cl36_to_K40_reaclib)*Y(Cl36)*state.rho - screened_rates(k_He4_Cl36_to_n_K39_reaclib)*Y(Cl36)*state.rho - screened_rates(k_He4_Cl36_to_p_Ar39_reaclib)*Y(Cl36)*state.rho + screened_rates(k_He4_P32_to_Cl36_reaclib)*Y(P32)*state.rho + screened_rates(k_He4_P33_to_n_Cl36_reaclib)*Y(P33)*state.rho + screened_rates(k_He4_S33_to_p_Cl36_reaclib)*Y(S33)*state.rho; + scratch = -screened_rates(k_Cl36_He4_to_K40_reaclib)*Y(Cl36)*state.rho - screened_rates(k_Cl36_He4_to_n_K39_derived)*Y(Cl36)*state.rho - screened_rates(k_Cl36_He4_to_p_Ar39_derived)*Y(Cl36)*state.rho + screened_rates(k_P32_He4_to_Cl36_reaclib)*Y(P32)*state.rho + screened_rates(k_P33_He4_to_n_Cl36_derived)*Y(P33)*state.rho + screened_rates(k_S33_He4_to_p_Cl36_derived)*Y(S33)*state.rho; jac.set(Cl36, He4, scratch); jac.set(Cl36, Li6, 0.0); @@ -29301,47 +27110,47 @@ void jac_nuc(const burn_t& state, jac.set(Cl36, P31, 0.0); - scratch = screened_rates(k_He4_P32_to_Cl36_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_P32_He4_to_Cl36_reaclib)*Y(He4)*state.rho; jac.set(Cl36, P32, scratch); - scratch = screened_rates(k_He4_P33_to_n_Cl36_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_P33_He4_to_n_Cl36_derived)*Y(He4)*state.rho; jac.set(Cl36, P33, scratch); jac.set(Cl36, S32, 0.0); - scratch = screened_rates(k_He4_S33_to_p_Cl36_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_S33_He4_to_p_Cl36_derived)*Y(He4)*state.rho; jac.set(Cl36, S33, scratch); jac.set(Cl36, S34, 0.0); - scratch = screened_rates(k_p_S35_to_Cl36_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_S35_p_to_Cl36_reaclib)*Y(H1)*state.rho; jac.set(Cl36, S35, scratch); - scratch = screened_rates(k_S36_to_Cl36_weaktab) + screened_rates(k_p_S36_to_n_Cl36_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_S36_p_to_n_Cl36_derived)*Y(H1)*state.rho + screened_rates(k_S36_to_Cl36_beta_neg_weaktab); jac.set(Cl36, S36, scratch); jac.set(Cl36, Cl33, 0.0); jac.set(Cl36, Cl34, 0.0); - scratch = screened_rates(k_n_Cl35_to_Cl36_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cl35_n_to_Cl36_reaclib)*Y(N)*state.rho; jac.set(Cl36, Cl35, scratch); - scratch = -screened_rates(k_Cl36_to_Ar36_weaktab) - screened_rates(k_Cl36_to_He4_P32_reaclib) - screened_rates(k_Cl36_to_S36_weaktab) - screened_rates(k_Cl36_to_n_Cl35_reaclib) - screened_rates(k_Cl36_to_p_S35_reaclib) - screened_rates(k_He4_Cl36_to_K40_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cl36_to_n_K39_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cl36_to_p_Ar39_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cl36_to_Cl37_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cl36_to_He4_P33_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cl36_to_p_S36_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cl36_to_Ar37_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cl36_to_He4_S33_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cl36_to_n_Ar36_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cl36_He4_to_K40_reaclib)*Y(He4)*state.rho - screened_rates(k_Cl36_He4_to_n_K39_derived)*Y(He4)*state.rho - screened_rates(k_Cl36_He4_to_p_Ar39_derived)*Y(He4)*state.rho - screened_rates(k_Cl36_n_to_Cl37_reaclib)*Y(N)*state.rho - screened_rates(k_Cl36_n_to_He4_P33_reaclib)*Y(N)*state.rho - screened_rates(k_Cl36_n_to_p_S36_reaclib)*Y(N)*state.rho - screened_rates(k_Cl36_p_to_Ar37_reaclib)*Y(H1)*state.rho - screened_rates(k_Cl36_p_to_He4_S33_reaclib)*Y(H1)*state.rho - screened_rates(k_Cl36_p_to_n_Ar36_derived)*Y(H1)*state.rho - screened_rates(k_Cl36_to_Ar36_beta_neg_weaktab) - screened_rates(k_Cl36_to_He4_P32_derived) - screened_rates(k_Cl36_to_S36_electron_capture_weaktab) - screened_rates(k_Cl36_to_n_Cl35_derived) - screened_rates(k_Cl36_to_p_S35_derived); jac.set(Cl36, Cl36, scratch); - scratch = screened_rates(k_Cl37_to_n_Cl36_reaclib); + scratch = screened_rates(k_Cl37_to_n_Cl36_derived); jac.set(Cl36, Cl37, scratch); - scratch = screened_rates(k_Ar36_to_Cl36_weaktab) + screened_rates(k_n_Ar36_to_p_Cl36_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ar36_n_to_p_Cl36_reaclib)*Y(N)*state.rho + screened_rates(k_Ar36_to_Cl36_electron_capture_weaktab); jac.set(Cl36, Ar36, scratch); - scratch = screened_rates(k_Ar37_to_p_Cl36_reaclib); + scratch = screened_rates(k_Ar37_to_p_Cl36_derived); jac.set(Cl36, Ar37, scratch); jac.set(Cl36, Ar38, 0.0); - scratch = screened_rates(k_p_Ar39_to_He4_Cl36_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ar39_p_to_He4_Cl36_reaclib)*Y(H1)*state.rho; jac.set(Cl36, Ar39, scratch); jac.set(Cl36, Ar40, 0.0); @@ -29350,10 +27159,10 @@ void jac_nuc(const burn_t& state, jac.set(Cl36, K38, 0.0); - scratch = screened_rates(k_n_K39_to_He4_Cl36_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_K39_n_to_He4_Cl36_reaclib)*Y(N)*state.rho; jac.set(Cl36, K39, scratch); - scratch = screened_rates(k_K40_to_He4_Cl36_reaclib); + scratch = screened_rates(k_K40_to_He4_Cl36_derived); jac.set(Cl36, K40, scratch); jac.set(Cl36, K41, 0.0); @@ -29536,17 +27345,17 @@ void jac_nuc(const burn_t& state, jac.set(Cl36, Ge64, 0.0); - scratch = screened_rates(k_n_Ar37_to_p_Cl37_reaclib)*Y(Ar37)*state.rho + screened_rates(k_n_Cl36_to_Cl37_reaclib)*Y(Cl36)*state.rho + screened_rates(k_n_K40_to_He4_Cl37_reaclib)*Y(K40)*state.rho; + scratch = screened_rates(k_Ar37_n_to_p_Cl37_reaclib)*Y(Ar37)*state.rho + screened_rates(k_Cl36_n_to_Cl37_reaclib)*Y(Cl36)*state.rho + screened_rates(k_K40_n_to_He4_Cl37_reaclib)*Y(K40)*state.rho; jac.set(Cl37, N, scratch); - scratch = screened_rates(k_p_Ar40_to_He4_Cl37_reaclib)*Y(Ar40)*state.rho - screened_rates(k_p_Cl37_to_Ar38_reaclib)*Y(Cl37)*state.rho - screened_rates(k_p_Cl37_to_He4_S34_reaclib)*Y(Cl37)*state.rho - screened_rates(k_p_Cl37_to_n_Ar37_reaclib)*Y(Cl37)*state.rho + screened_rates(k_p_S36_to_Cl37_reaclib)*Y(S36)*state.rho; + scratch = screened_rates(k_Ar40_p_to_He4_Cl37_reaclib)*Y(Ar40)*state.rho - screened_rates(k_Cl37_p_to_Ar38_reaclib)*Y(Cl37)*state.rho - screened_rates(k_Cl37_p_to_He4_S34_derived)*Y(Cl37)*state.rho - screened_rates(k_Cl37_p_to_n_Ar37_derived)*Y(Cl37)*state.rho + screened_rates(k_S36_p_to_Cl37_reaclib)*Y(S36)*state.rho; jac.set(Cl37, H1, scratch); jac.set(Cl37, H2, 0.0); jac.set(Cl37, He3, 0.0); - scratch = -screened_rates(k_He4_Cl37_to_K41_reaclib)*Y(Cl37)*state.rho - screened_rates(k_He4_Cl37_to_n_K40_reaclib)*Y(Cl37)*state.rho - screened_rates(k_He4_Cl37_to_p_Ar40_reaclib)*Y(Cl37)*state.rho + screened_rates(k_He4_P33_to_Cl37_reaclib)*Y(P33)*state.rho + screened_rates(k_He4_S34_to_p_Cl37_reaclib)*Y(S34)*state.rho; + scratch = -screened_rates(k_Cl37_He4_to_K41_reaclib)*Y(Cl37)*state.rho - screened_rates(k_Cl37_He4_to_n_K40_derived)*Y(Cl37)*state.rho - screened_rates(k_Cl37_He4_to_p_Ar40_derived)*Y(Cl37)*state.rho + screened_rates(k_P33_He4_to_Cl37_reaclib)*Y(P33)*state.rho + screened_rates(k_S34_He4_to_p_Cl37_reaclib)*Y(S34)*state.rho; jac.set(Cl37, He4, scratch); jac.set(Cl37, Li6, 0.0); @@ -29639,19 +27448,19 @@ void jac_nuc(const burn_t& state, jac.set(Cl37, P32, 0.0); - scratch = screened_rates(k_He4_P33_to_Cl37_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_P33_He4_to_Cl37_reaclib)*Y(He4)*state.rho; jac.set(Cl37, P33, scratch); jac.set(Cl37, S32, 0.0); jac.set(Cl37, S33, 0.0); - scratch = screened_rates(k_He4_S34_to_p_Cl37_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_S34_He4_to_p_Cl37_reaclib)*Y(He4)*state.rho; jac.set(Cl37, S34, scratch); jac.set(Cl37, S35, 0.0); - scratch = screened_rates(k_p_S36_to_Cl37_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_S36_p_to_Cl37_reaclib)*Y(H1)*state.rho; jac.set(Cl37, S36, scratch); jac.set(Cl37, Cl33, 0.0); @@ -29660,23 +27469,23 @@ void jac_nuc(const burn_t& state, jac.set(Cl37, Cl35, 0.0); - scratch = screened_rates(k_n_Cl36_to_Cl37_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cl36_n_to_Cl37_reaclib)*Y(N)*state.rho; jac.set(Cl37, Cl36, scratch); - scratch = -screened_rates(k_Cl37_to_Ar37_weaktab) - screened_rates(k_Cl37_to_He4_P33_reaclib) - screened_rates(k_Cl37_to_n_Cl36_reaclib) - screened_rates(k_Cl37_to_p_S36_reaclib) - screened_rates(k_He4_Cl37_to_K41_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cl37_to_n_K40_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cl37_to_p_Ar40_reaclib)*Y(He4)*state.rho - screened_rates(k_p_Cl37_to_Ar38_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cl37_to_He4_S34_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cl37_to_n_Ar37_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cl37_He4_to_K41_reaclib)*Y(He4)*state.rho - screened_rates(k_Cl37_He4_to_n_K40_derived)*Y(He4)*state.rho - screened_rates(k_Cl37_He4_to_p_Ar40_derived)*Y(He4)*state.rho - screened_rates(k_Cl37_p_to_Ar38_reaclib)*Y(H1)*state.rho - screened_rates(k_Cl37_p_to_He4_S34_derived)*Y(H1)*state.rho - screened_rates(k_Cl37_p_to_n_Ar37_derived)*Y(H1)*state.rho - screened_rates(k_Cl37_to_Ar37_beta_neg_weaktab) - screened_rates(k_Cl37_to_He4_P33_derived) - screened_rates(k_Cl37_to_n_Cl36_derived) - screened_rates(k_Cl37_to_p_S36_derived); jac.set(Cl37, Cl37, scratch); jac.set(Cl37, Ar36, 0.0); - scratch = screened_rates(k_Ar37_to_Cl37_weaktab) + screened_rates(k_n_Ar37_to_p_Cl37_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ar37_n_to_p_Cl37_reaclib)*Y(N)*state.rho + screened_rates(k_Ar37_to_Cl37_electron_capture_weaktab); jac.set(Cl37, Ar37, scratch); - scratch = screened_rates(k_Ar38_to_p_Cl37_reaclib); + scratch = screened_rates(k_Ar38_to_p_Cl37_derived); jac.set(Cl37, Ar38, scratch); jac.set(Cl37, Ar39, 0.0); - scratch = screened_rates(k_p_Ar40_to_He4_Cl37_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ar40_p_to_He4_Cl37_reaclib)*Y(H1)*state.rho; jac.set(Cl37, Ar40, scratch); jac.set(Cl37, K37, 0.0); @@ -29685,10 +27494,10 @@ void jac_nuc(const burn_t& state, jac.set(Cl37, K39, 0.0); - scratch = screened_rates(k_n_K40_to_He4_Cl37_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_K40_n_to_He4_Cl37_reaclib)*Y(N)*state.rho; jac.set(Cl37, K40, scratch); - scratch = screened_rates(k_K41_to_He4_Cl37_reaclib); + scratch = screened_rates(k_K41_to_He4_Cl37_derived); jac.set(Cl37, K41, scratch); jac.set(Cl37, Ca40, 0.0); @@ -29869,17 +27678,17 @@ void jac_nuc(const burn_t& state, jac.set(Cl37, Ge64, 0.0); - scratch = -screened_rates(k_n_Ar36_to_Ar37_reaclib)*Y(Ar36)*state.rho - screened_rates(k_n_Ar36_to_He4_S33_reaclib)*Y(Ar36)*state.rho - screened_rates(k_n_Ar36_to_p_Cl36_reaclib)*Y(Ar36)*state.rho; + scratch = -screened_rates(k_Ar36_n_to_Ar37_reaclib)*Y(Ar36)*state.rho - screened_rates(k_Ar36_n_to_He4_S33_reaclib)*Y(Ar36)*state.rho - screened_rates(k_Ar36_n_to_p_Cl36_reaclib)*Y(Ar36)*state.rho; jac.set(Ar36, N, scratch); - scratch = -screened_rates(k_p_Ar36_to_He4_Cl33_reaclib)*Y(Ar36)*state.rho - screened_rates(k_p_Ar36_to_K37_reaclib)*Y(Ar36)*state.rho + screened_rates(k_p_Cl35_to_Ar36_reaclib)*Y(Cl35)*state.rho + screened_rates(k_p_Cl36_to_n_Ar36_reaclib)*Y(Cl36)*state.rho + screened_rates(k_p_K39_to_He4_Ar36_reaclib)*Y(K39)*state.rho; + scratch = -screened_rates(k_Ar36_p_to_He4_Cl33_derived)*Y(Ar36)*state.rho - screened_rates(k_Ar36_p_to_K37_reaclib)*Y(Ar36)*state.rho + screened_rates(k_Cl35_p_to_Ar36_reaclib)*Y(Cl35)*state.rho + screened_rates(k_Cl36_p_to_n_Ar36_derived)*Y(Cl36)*state.rho + screened_rates(k_K39_p_to_He4_Ar36_reaclib)*Y(K39)*state.rho; jac.set(Ar36, H1, scratch); jac.set(Ar36, H2, 0.0); jac.set(Ar36, He3, 0.0); - scratch = -screened_rates(k_He4_Ar36_to_Ca40_reaclib)*Y(Ar36)*state.rho - screened_rates(k_He4_Ar36_to_p_K39_reaclib)*Y(Ar36)*state.rho + screened_rates(k_He4_Cl33_to_p_Ar36_reaclib)*Y(Cl33)*state.rho + screened_rates(k_He4_S32_to_Ar36_reaclib)*Y(S32)*state.rho + screened_rates(k_He4_S33_to_n_Ar36_reaclib)*Y(S33)*state.rho; + scratch = -screened_rates(k_Ar36_He4_to_Ca40_reaclib)*Y(Ar36)*state.rho - screened_rates(k_Ar36_He4_to_p_K39_derived)*Y(Ar36)*state.rho + screened_rates(k_Cl33_He4_to_p_Ar36_reaclib)*Y(Cl33)*state.rho + screened_rates(k_S32_He4_to_Ar36_reaclib)*Y(S32)*state.rho + screened_rates(k_S33_He4_to_n_Ar36_derived)*Y(S33)*state.rho; jac.set(Ar36, He4, scratch); jac.set(Ar36, Li6, 0.0); @@ -29974,10 +27783,10 @@ void jac_nuc(const burn_t& state, jac.set(Ar36, P33, 0.0); - scratch = screened_rates(k_He4_S32_to_Ar36_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_S32_He4_to_Ar36_reaclib)*Y(He4)*state.rho; jac.set(Ar36, S32, scratch); - scratch = screened_rates(k_He4_S33_to_n_Ar36_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_S33_He4_to_n_Ar36_derived)*Y(He4)*state.rho; jac.set(Ar36, S33, scratch); jac.set(Ar36, S34, 0.0); @@ -29986,23 +27795,23 @@ void jac_nuc(const burn_t& state, jac.set(Ar36, S36, 0.0); - scratch = screened_rates(k_He4_Cl33_to_p_Ar36_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cl33_He4_to_p_Ar36_reaclib)*Y(He4)*state.rho; jac.set(Ar36, Cl33, scratch); jac.set(Ar36, Cl34, 0.0); - scratch = screened_rates(k_p_Cl35_to_Ar36_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cl35_p_to_Ar36_reaclib)*Y(H1)*state.rho; jac.set(Ar36, Cl35, scratch); - scratch = screened_rates(k_Cl36_to_Ar36_weaktab) + screened_rates(k_p_Cl36_to_n_Ar36_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cl36_p_to_n_Ar36_derived)*Y(H1)*state.rho + screened_rates(k_Cl36_to_Ar36_beta_neg_weaktab); jac.set(Ar36, Cl36, scratch); jac.set(Ar36, Cl37, 0.0); - scratch = -screened_rates(k_Ar36_to_Cl36_weaktab) - screened_rates(k_Ar36_to_He4_S32_reaclib) - screened_rates(k_Ar36_to_p_Cl35_reaclib) - screened_rates(k_He4_Ar36_to_Ca40_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ar36_to_p_K39_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Ar36_to_Ar37_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ar36_to_He4_S33_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ar36_to_p_Cl36_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ar36_to_He4_Cl33_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ar36_to_K37_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ar36_He4_to_Ca40_reaclib)*Y(He4)*state.rho - screened_rates(k_Ar36_He4_to_p_K39_derived)*Y(He4)*state.rho - screened_rates(k_Ar36_n_to_Ar37_reaclib)*Y(N)*state.rho - screened_rates(k_Ar36_n_to_He4_S33_reaclib)*Y(N)*state.rho - screened_rates(k_Ar36_n_to_p_Cl36_reaclib)*Y(N)*state.rho - screened_rates(k_Ar36_p_to_He4_Cl33_derived)*Y(H1)*state.rho - screened_rates(k_Ar36_p_to_K37_reaclib)*Y(H1)*state.rho - screened_rates(k_Ar36_to_Cl36_electron_capture_weaktab) - screened_rates(k_Ar36_to_He4_S32_derived) - screened_rates(k_Ar36_to_p_Cl35_derived); jac.set(Ar36, Ar36, scratch); - scratch = screened_rates(k_Ar37_to_n_Ar36_reaclib); + scratch = screened_rates(k_Ar37_to_n_Ar36_derived); jac.set(Ar36, Ar37, scratch); jac.set(Ar36, Ar38, 0.0); @@ -30011,19 +27820,19 @@ void jac_nuc(const burn_t& state, jac.set(Ar36, Ar40, 0.0); - scratch = screened_rates(k_K37_to_p_Ar36_reaclib); + scratch = screened_rates(k_K37_to_p_Ar36_derived); jac.set(Ar36, K37, scratch); jac.set(Ar36, K38, 0.0); - scratch = screened_rates(k_p_K39_to_He4_Ar36_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_K39_p_to_He4_Ar36_reaclib)*Y(H1)*state.rho; jac.set(Ar36, K39, scratch); jac.set(Ar36, K40, 0.0); jac.set(Ar36, K41, 0.0); - scratch = screened_rates(k_Ca40_to_He4_Ar36_reaclib); + scratch = screened_rates(k_Ca40_to_He4_Ar36_derived); jac.set(Ar36, Ca40, scratch); jac.set(Ar36, Ca41, 0.0); @@ -30202,17 +28011,17 @@ void jac_nuc(const burn_t& state, jac.set(Ar36, Ge64, 0.0); - scratch = screened_rates(k_n_Ar36_to_Ar37_reaclib)*Y(Ar36)*state.rho - screened_rates(k_n_Ar37_to_Ar38_reaclib)*Y(Ar37)*state.rho - screened_rates(k_n_Ar37_to_He4_S34_reaclib)*Y(Ar37)*state.rho - screened_rates(k_n_Ar37_to_p_Cl37_reaclib)*Y(Ar37)*state.rho + screened_rates(k_n_Ca40_to_He4_Ar37_reaclib)*Y(Ca40)*state.rho + screened_rates(k_n_K37_to_p_Ar37_reaclib)*Y(K37)*state.rho; + scratch = screened_rates(k_Ar36_n_to_Ar37_reaclib)*Y(Ar36)*state.rho - screened_rates(k_Ar37_n_to_Ar38_reaclib)*Y(Ar37)*state.rho - screened_rates(k_Ar37_n_to_He4_S34_derived)*Y(Ar37)*state.rho - screened_rates(k_Ar37_n_to_p_Cl37_reaclib)*Y(Ar37)*state.rho + screened_rates(k_Ca40_n_to_He4_Ar37_reaclib)*Y(Ca40)*state.rho + screened_rates(k_K37_n_to_p_Ar37_reaclib)*Y(K37)*state.rho; jac.set(Ar37, N, scratch); - scratch = -screened_rates(k_p_Ar37_to_He4_Cl34_reaclib)*Y(Ar37)*state.rho - screened_rates(k_p_Ar37_to_K38_reaclib)*Y(Ar37)*state.rho - screened_rates(k_p_Ar37_to_n_K37_reaclib)*Y(Ar37)*state.rho + screened_rates(k_p_Cl36_to_Ar37_reaclib)*Y(Cl36)*state.rho + screened_rates(k_p_Cl37_to_n_Ar37_reaclib)*Y(Cl37)*state.rho + screened_rates(k_p_K40_to_He4_Ar37_reaclib)*Y(K40)*state.rho; + scratch = -screened_rates(k_Ar37_p_to_He4_Cl34_derived)*Y(Ar37)*state.rho - screened_rates(k_Ar37_p_to_K38_reaclib)*Y(Ar37)*state.rho - screened_rates(k_Ar37_p_to_n_K37_derived)*Y(Ar37)*state.rho + screened_rates(k_Cl36_p_to_Ar37_reaclib)*Y(Cl36)*state.rho + screened_rates(k_Cl37_p_to_n_Ar37_derived)*Y(Cl37)*state.rho + screened_rates(k_K40_p_to_He4_Ar37_reaclib)*Y(K40)*state.rho; jac.set(Ar37, H1, scratch); jac.set(Ar37, H2, 0.0); jac.set(Ar37, He3, 0.0); - scratch = -screened_rates(k_He4_Ar37_to_Ca41_reaclib)*Y(Ar37)*state.rho - screened_rates(k_He4_Ar37_to_n_Ca40_reaclib)*Y(Ar37)*state.rho - screened_rates(k_He4_Ar37_to_p_K40_reaclib)*Y(Ar37)*state.rho + screened_rates(k_He4_Cl34_to_p_Ar37_reaclib)*Y(Cl34)*state.rho + screened_rates(k_He4_S33_to_Ar37_reaclib)*Y(S33)*state.rho + screened_rates(k_He4_S34_to_n_Ar37_reaclib)*Y(S34)*state.rho; + scratch = -screened_rates(k_Ar37_He4_to_Ca41_reaclib)*Y(Ar37)*state.rho - screened_rates(k_Ar37_He4_to_n_Ca40_derived)*Y(Ar37)*state.rho - screened_rates(k_Ar37_He4_to_p_K40_derived)*Y(Ar37)*state.rho + screened_rates(k_Cl34_He4_to_p_Ar37_reaclib)*Y(Cl34)*state.rho + screened_rates(k_S33_He4_to_Ar37_reaclib)*Y(S33)*state.rho + screened_rates(k_S34_He4_to_n_Ar37_reaclib)*Y(S34)*state.rho; jac.set(Ar37, He4, scratch); jac.set(Ar37, Li6, 0.0); @@ -30309,10 +28118,10 @@ void jac_nuc(const burn_t& state, jac.set(Ar37, S32, 0.0); - scratch = screened_rates(k_He4_S33_to_Ar37_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_S33_He4_to_Ar37_reaclib)*Y(He4)*state.rho; jac.set(Ar37, S33, scratch); - scratch = screened_rates(k_He4_S34_to_n_Ar37_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_S34_He4_to_n_Ar37_reaclib)*Y(He4)*state.rho; jac.set(Ar37, S34, scratch); jac.set(Ar37, S35, 0.0); @@ -30321,47 +28130,47 @@ void jac_nuc(const burn_t& state, jac.set(Ar37, Cl33, 0.0); - scratch = screened_rates(k_He4_Cl34_to_p_Ar37_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cl34_He4_to_p_Ar37_reaclib)*Y(He4)*state.rho; jac.set(Ar37, Cl34, scratch); jac.set(Ar37, Cl35, 0.0); - scratch = screened_rates(k_p_Cl36_to_Ar37_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cl36_p_to_Ar37_reaclib)*Y(H1)*state.rho; jac.set(Ar37, Cl36, scratch); - scratch = screened_rates(k_Cl37_to_Ar37_weaktab) + screened_rates(k_p_Cl37_to_n_Ar37_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cl37_p_to_n_Ar37_derived)*Y(H1)*state.rho + screened_rates(k_Cl37_to_Ar37_beta_neg_weaktab); jac.set(Ar37, Cl37, scratch); - scratch = screened_rates(k_n_Ar36_to_Ar37_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ar36_n_to_Ar37_reaclib)*Y(N)*state.rho; jac.set(Ar37, Ar36, scratch); - scratch = -screened_rates(k_Ar37_to_Cl37_weaktab) - screened_rates(k_Ar37_to_He4_S33_reaclib) - screened_rates(k_Ar37_to_K37_weaktab) - screened_rates(k_Ar37_to_n_Ar36_reaclib) - screened_rates(k_Ar37_to_p_Cl36_reaclib) - screened_rates(k_He4_Ar37_to_Ca41_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ar37_to_n_Ca40_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ar37_to_p_K40_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Ar37_to_Ar38_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ar37_to_He4_S34_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ar37_to_p_Cl37_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ar37_to_He4_Cl34_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ar37_to_K38_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ar37_to_n_K37_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ar37_He4_to_Ca41_reaclib)*Y(He4)*state.rho - screened_rates(k_Ar37_He4_to_n_Ca40_derived)*Y(He4)*state.rho - screened_rates(k_Ar37_He4_to_p_K40_derived)*Y(He4)*state.rho - screened_rates(k_Ar37_n_to_Ar38_reaclib)*Y(N)*state.rho - screened_rates(k_Ar37_n_to_He4_S34_derived)*Y(N)*state.rho - screened_rates(k_Ar37_n_to_p_Cl37_reaclib)*Y(N)*state.rho - screened_rates(k_Ar37_p_to_He4_Cl34_derived)*Y(H1)*state.rho - screened_rates(k_Ar37_p_to_K38_reaclib)*Y(H1)*state.rho - screened_rates(k_Ar37_p_to_n_K37_derived)*Y(H1)*state.rho - screened_rates(k_Ar37_to_Cl37_electron_capture_weaktab) - screened_rates(k_Ar37_to_He4_S33_derived) - screened_rates(k_Ar37_to_K37_beta_neg_weaktab) - screened_rates(k_Ar37_to_n_Ar36_derived) - screened_rates(k_Ar37_to_p_Cl36_derived); jac.set(Ar37, Ar37, scratch); - scratch = screened_rates(k_Ar38_to_n_Ar37_reaclib); + scratch = screened_rates(k_Ar38_to_n_Ar37_derived); jac.set(Ar37, Ar38, scratch); jac.set(Ar37, Ar39, 0.0); jac.set(Ar37, Ar40, 0.0); - scratch = screened_rates(k_K37_to_Ar37_weaktab) + screened_rates(k_n_K37_to_p_Ar37_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_K37_n_to_p_Ar37_reaclib)*Y(N)*state.rho + screened_rates(k_K37_to_Ar37_electron_capture_weaktab); jac.set(Ar37, K37, scratch); - scratch = screened_rates(k_K38_to_p_Ar37_reaclib); + scratch = screened_rates(k_K38_to_p_Ar37_derived); jac.set(Ar37, K38, scratch); jac.set(Ar37, K39, 0.0); - scratch = screened_rates(k_p_K40_to_He4_Ar37_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_K40_p_to_He4_Ar37_reaclib)*Y(H1)*state.rho; jac.set(Ar37, K40, scratch); jac.set(Ar37, K41, 0.0); - scratch = screened_rates(k_n_Ca40_to_He4_Ar37_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ca40_n_to_He4_Ar37_reaclib)*Y(N)*state.rho; jac.set(Ar37, Ca40, scratch); - scratch = screened_rates(k_Ca41_to_He4_Ar37_reaclib); + scratch = screened_rates(k_Ca41_to_He4_Ar37_derived); jac.set(Ar37, Ca41, scratch); jac.set(Ar37, Ca42, 0.0); @@ -30538,17 +28347,17 @@ void jac_nuc(const burn_t& state, jac.set(Ar37, Ge64, 0.0); - scratch = screened_rates(k_n_Ar37_to_Ar38_reaclib)*Y(Ar37)*state.rho - screened_rates(k_n_Ar38_to_Ar39_reaclib)*Y(Ar38)*state.rho - screened_rates(k_n_Ar38_to_He4_S35_reaclib)*Y(Ar38)*state.rho + screened_rates(k_n_Ca41_to_He4_Ar38_reaclib)*Y(Ca41)*state.rho + screened_rates(k_n_K38_to_p_Ar38_reaclib)*Y(K38)*state.rho; + scratch = screened_rates(k_Ar37_n_to_Ar38_reaclib)*Y(Ar37)*state.rho - screened_rates(k_Ar38_n_to_Ar39_reaclib)*Y(Ar38)*state.rho - screened_rates(k_Ar38_n_to_He4_S35_derived)*Y(Ar38)*state.rho + screened_rates(k_Ca41_n_to_He4_Ar38_reaclib)*Y(Ca41)*state.rho + screened_rates(k_K38_n_to_p_Ar38_reaclib)*Y(K38)*state.rho; jac.set(Ar38, N, scratch); - scratch = -screened_rates(k_p_Ar38_to_He4_Cl35_reaclib)*Y(Ar38)*state.rho - screened_rates(k_p_Ar38_to_K39_reaclib)*Y(Ar38)*state.rho - screened_rates(k_p_Ar38_to_n_K38_reaclib)*Y(Ar38)*state.rho + screened_rates(k_p_Cl37_to_Ar38_reaclib)*Y(Cl37)*state.rho + screened_rates(k_p_K41_to_He4_Ar38_reaclib)*Y(K41)*state.rho; + scratch = -screened_rates(k_Ar38_p_to_He4_Cl35_derived)*Y(Ar38)*state.rho - screened_rates(k_Ar38_p_to_K39_reaclib)*Y(Ar38)*state.rho - screened_rates(k_Ar38_p_to_n_K38_derived)*Y(Ar38)*state.rho + screened_rates(k_Cl37_p_to_Ar38_reaclib)*Y(Cl37)*state.rho + screened_rates(k_K41_p_to_He4_Ar38_reaclib)*Y(K41)*state.rho; jac.set(Ar38, H1, scratch); jac.set(Ar38, H2, 0.0); jac.set(Ar38, He3, 0.0); - scratch = -screened_rates(k_He4_Ar38_to_Ca42_reaclib)*Y(Ar38)*state.rho - screened_rates(k_He4_Ar38_to_n_Ca41_reaclib)*Y(Ar38)*state.rho - screened_rates(k_He4_Ar38_to_p_K41_reaclib)*Y(Ar38)*state.rho + screened_rates(k_He4_Cl35_to_p_Ar38_reaclib)*Y(Cl35)*state.rho + screened_rates(k_He4_S34_to_Ar38_reaclib)*Y(S34)*state.rho + screened_rates(k_He4_S35_to_n_Ar38_reaclib)*Y(S35)*state.rho; + scratch = -screened_rates(k_Ar38_He4_to_Ca42_reaclib)*Y(Ar38)*state.rho - screened_rates(k_Ar38_He4_to_n_Ca41_derived)*Y(Ar38)*state.rho - screened_rates(k_Ar38_He4_to_p_K41_derived)*Y(Ar38)*state.rho + screened_rates(k_Cl35_He4_to_p_Ar38_reaclib)*Y(Cl35)*state.rho + screened_rates(k_S34_He4_to_Ar38_reaclib)*Y(S34)*state.rho + screened_rates(k_S35_He4_to_n_Ar38_reaclib)*Y(S35)*state.rho; jac.set(Ar38, He4, scratch); jac.set(Ar38, Li6, 0.0); @@ -30647,10 +28456,10 @@ void jac_nuc(const burn_t& state, jac.set(Ar38, S33, 0.0); - scratch = screened_rates(k_He4_S34_to_Ar38_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_S34_He4_to_Ar38_reaclib)*Y(He4)*state.rho; jac.set(Ar38, S34, scratch); - scratch = screened_rates(k_He4_S35_to_n_Ar38_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_S35_He4_to_n_Ar38_reaclib)*Y(He4)*state.rho; jac.set(Ar38, S35, scratch); jac.set(Ar38, S36, 0.0); @@ -30659,46 +28468,46 @@ void jac_nuc(const burn_t& state, jac.set(Ar38, Cl34, 0.0); - scratch = screened_rates(k_He4_Cl35_to_p_Ar38_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cl35_He4_to_p_Ar38_reaclib)*Y(He4)*state.rho; jac.set(Ar38, Cl35, scratch); jac.set(Ar38, Cl36, 0.0); - scratch = screened_rates(k_p_Cl37_to_Ar38_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cl37_p_to_Ar38_reaclib)*Y(H1)*state.rho; jac.set(Ar38, Cl37, scratch); jac.set(Ar38, Ar36, 0.0); - scratch = screened_rates(k_n_Ar37_to_Ar38_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ar37_n_to_Ar38_reaclib)*Y(N)*state.rho; jac.set(Ar38, Ar37, scratch); - scratch = -screened_rates(k_Ar38_to_He4_S34_reaclib) - screened_rates(k_Ar38_to_K38_weaktab) - screened_rates(k_Ar38_to_n_Ar37_reaclib) - screened_rates(k_Ar38_to_p_Cl37_reaclib) - screened_rates(k_He4_Ar38_to_Ca42_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ar38_to_n_Ca41_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ar38_to_p_K41_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Ar38_to_Ar39_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ar38_to_He4_S35_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ar38_to_He4_Cl35_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ar38_to_K39_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ar38_to_n_K38_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ar38_He4_to_Ca42_reaclib)*Y(He4)*state.rho - screened_rates(k_Ar38_He4_to_n_Ca41_derived)*Y(He4)*state.rho - screened_rates(k_Ar38_He4_to_p_K41_derived)*Y(He4)*state.rho - screened_rates(k_Ar38_n_to_Ar39_reaclib)*Y(N)*state.rho - screened_rates(k_Ar38_n_to_He4_S35_derived)*Y(N)*state.rho - screened_rates(k_Ar38_p_to_He4_Cl35_derived)*Y(H1)*state.rho - screened_rates(k_Ar38_p_to_K39_reaclib)*Y(H1)*state.rho - screened_rates(k_Ar38_p_to_n_K38_derived)*Y(H1)*state.rho - screened_rates(k_Ar38_to_He4_S34_derived) - screened_rates(k_Ar38_to_K38_beta_neg_weaktab) - screened_rates(k_Ar38_to_n_Ar37_derived) - screened_rates(k_Ar38_to_p_Cl37_derived); jac.set(Ar38, Ar38, scratch); - scratch = screened_rates(k_Ar39_to_n_Ar38_reaclib); + scratch = screened_rates(k_Ar39_to_n_Ar38_derived); jac.set(Ar38, Ar39, scratch); jac.set(Ar38, Ar40, 0.0); jac.set(Ar38, K37, 0.0); - scratch = screened_rates(k_K38_to_Ar38_weaktab) + screened_rates(k_n_K38_to_p_Ar38_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_K38_n_to_p_Ar38_reaclib)*Y(N)*state.rho + screened_rates(k_K38_to_Ar38_electron_capture_weaktab); jac.set(Ar38, K38, scratch); - scratch = screened_rates(k_K39_to_p_Ar38_reaclib); + scratch = screened_rates(k_K39_to_p_Ar38_derived); jac.set(Ar38, K39, scratch); jac.set(Ar38, K40, 0.0); - scratch = screened_rates(k_p_K41_to_He4_Ar38_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_K41_p_to_He4_Ar38_reaclib)*Y(H1)*state.rho; jac.set(Ar38, K41, scratch); jac.set(Ar38, Ca40, 0.0); - scratch = screened_rates(k_n_Ca41_to_He4_Ar38_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ca41_n_to_He4_Ar38_reaclib)*Y(N)*state.rho; jac.set(Ar38, Ca41, scratch); - scratch = screened_rates(k_Ca42_to_He4_Ar38_reaclib); + scratch = screened_rates(k_Ca42_to_He4_Ar38_derived); jac.set(Ar38, Ca42, scratch); jac.set(Ar38, Ca43, 0.0); @@ -30873,17 +28682,17 @@ void jac_nuc(const burn_t& state, jac.set(Ar38, Ge64, 0.0); - scratch = screened_rates(k_n_Ar38_to_Ar39_reaclib)*Y(Ar38)*state.rho - screened_rates(k_n_Ar39_to_Ar40_reaclib)*Y(Ar39)*state.rho - screened_rates(k_n_Ar39_to_He4_S36_reaclib)*Y(Ar39)*state.rho + screened_rates(k_n_Ca42_to_He4_Ar39_reaclib)*Y(Ca42)*state.rho + screened_rates(k_n_K39_to_p_Ar39_reaclib)*Y(K39)*state.rho; + scratch = screened_rates(k_Ar38_n_to_Ar39_reaclib)*Y(Ar38)*state.rho - screened_rates(k_Ar39_n_to_Ar40_reaclib)*Y(Ar39)*state.rho - screened_rates(k_Ar39_n_to_He4_S36_reaclib)*Y(Ar39)*state.rho + screened_rates(k_Ca42_n_to_He4_Ar39_reaclib)*Y(Ca42)*state.rho + screened_rates(k_K39_n_to_p_Ar39_reaclib)*Y(K39)*state.rho; jac.set(Ar39, N, scratch); - scratch = -screened_rates(k_p_Ar39_to_He4_Cl36_reaclib)*Y(Ar39)*state.rho - screened_rates(k_p_Ar39_to_K40_reaclib)*Y(Ar39)*state.rho - screened_rates(k_p_Ar39_to_n_K39_reaclib)*Y(Ar39)*state.rho; + scratch = -screened_rates(k_Ar39_p_to_He4_Cl36_reaclib)*Y(Ar39)*state.rho - screened_rates(k_Ar39_p_to_K40_reaclib)*Y(Ar39)*state.rho - screened_rates(k_Ar39_p_to_n_K39_derived)*Y(Ar39)*state.rho; jac.set(Ar39, H1, scratch); jac.set(Ar39, H2, 0.0); jac.set(Ar39, He3, 0.0); - scratch = -screened_rates(k_He4_Ar39_to_Ca43_reaclib)*Y(Ar39)*state.rho - screened_rates(k_He4_Ar39_to_n_Ca42_reaclib)*Y(Ar39)*state.rho + screened_rates(k_He4_Cl36_to_p_Ar39_reaclib)*Y(Cl36)*state.rho + screened_rates(k_He4_S35_to_Ar39_reaclib)*Y(S35)*state.rho + screened_rates(k_He4_S36_to_n_Ar39_reaclib)*Y(S36)*state.rho; + scratch = -screened_rates(k_Ar39_He4_to_Ca43_reaclib)*Y(Ar39)*state.rho - screened_rates(k_Ar39_He4_to_n_Ca42_derived)*Y(Ar39)*state.rho + screened_rates(k_Cl36_He4_to_p_Ar39_derived)*Y(Cl36)*state.rho + screened_rates(k_S35_He4_to_Ar39_reaclib)*Y(S35)*state.rho + screened_rates(k_S36_He4_to_n_Ar39_derived)*Y(S36)*state.rho; jac.set(Ar39, He4, scratch); jac.set(Ar39, Li6, 0.0); @@ -30984,10 +28793,10 @@ void jac_nuc(const burn_t& state, jac.set(Ar39, S34, 0.0); - scratch = screened_rates(k_He4_S35_to_Ar39_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_S35_He4_to_Ar39_reaclib)*Y(He4)*state.rho; jac.set(Ar39, S35, scratch); - scratch = screened_rates(k_He4_S36_to_n_Ar39_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_S36_He4_to_n_Ar39_derived)*Y(He4)*state.rho; jac.set(Ar39, S36, scratch); jac.set(Ar39, Cl33, 0.0); @@ -30996,7 +28805,7 @@ void jac_nuc(const burn_t& state, jac.set(Ar39, Cl35, 0.0); - scratch = screened_rates(k_He4_Cl36_to_p_Ar39_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cl36_He4_to_p_Ar39_derived)*Y(He4)*state.rho; jac.set(Ar39, Cl36, scratch); jac.set(Ar39, Cl37, 0.0); @@ -31005,23 +28814,23 @@ void jac_nuc(const burn_t& state, jac.set(Ar39, Ar37, 0.0); - scratch = screened_rates(k_n_Ar38_to_Ar39_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ar38_n_to_Ar39_reaclib)*Y(N)*state.rho; jac.set(Ar39, Ar38, scratch); - scratch = -screened_rates(k_Ar39_to_He4_S35_reaclib) - screened_rates(k_Ar39_to_K39_weaktab) - screened_rates(k_Ar39_to_n_Ar38_reaclib) - screened_rates(k_He4_Ar39_to_Ca43_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ar39_to_n_Ca42_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Ar39_to_Ar40_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ar39_to_He4_S36_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ar39_to_He4_Cl36_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ar39_to_K40_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ar39_to_n_K39_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ar39_He4_to_Ca43_reaclib)*Y(He4)*state.rho - screened_rates(k_Ar39_He4_to_n_Ca42_derived)*Y(He4)*state.rho - screened_rates(k_Ar39_n_to_Ar40_reaclib)*Y(N)*state.rho - screened_rates(k_Ar39_n_to_He4_S36_reaclib)*Y(N)*state.rho - screened_rates(k_Ar39_p_to_He4_Cl36_reaclib)*Y(H1)*state.rho - screened_rates(k_Ar39_p_to_K40_reaclib)*Y(H1)*state.rho - screened_rates(k_Ar39_p_to_n_K39_derived)*Y(H1)*state.rho - screened_rates(k_Ar39_to_He4_S35_derived) - screened_rates(k_Ar39_to_K39_beta_neg_weaktab) - screened_rates(k_Ar39_to_n_Ar38_derived); jac.set(Ar39, Ar39, scratch); - scratch = screened_rates(k_Ar40_to_n_Ar39_reaclib); + scratch = screened_rates(k_Ar40_to_n_Ar39_derived); jac.set(Ar39, Ar40, scratch); jac.set(Ar39, K37, 0.0); jac.set(Ar39, K38, 0.0); - scratch = screened_rates(k_K39_to_Ar39_weaktab) + screened_rates(k_n_K39_to_p_Ar39_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_K39_n_to_p_Ar39_reaclib)*Y(N)*state.rho + screened_rates(k_K39_to_Ar39_electron_capture_weaktab); jac.set(Ar39, K39, scratch); - scratch = screened_rates(k_K40_to_p_Ar39_reaclib); + scratch = screened_rates(k_K40_to_p_Ar39_derived); jac.set(Ar39, K40, scratch); jac.set(Ar39, K41, 0.0); @@ -31030,10 +28839,10 @@ void jac_nuc(const burn_t& state, jac.set(Ar39, Ca41, 0.0); - scratch = screened_rates(k_n_Ca42_to_He4_Ar39_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ca42_n_to_He4_Ar39_reaclib)*Y(N)*state.rho; jac.set(Ar39, Ca42, scratch); - scratch = screened_rates(k_Ca43_to_He4_Ar39_reaclib); + scratch = screened_rates(k_Ca43_to_He4_Ar39_derived); jac.set(Ar39, Ca43, scratch); jac.set(Ar39, Ca44, 0.0); @@ -31206,17 +29015,17 @@ void jac_nuc(const burn_t& state, jac.set(Ar39, Ge64, 0.0); - scratch = screened_rates(k_n_Ar39_to_Ar40_reaclib)*Y(Ar39)*state.rho + screened_rates(k_n_Ca43_to_He4_Ar40_reaclib)*Y(Ca43)*state.rho + screened_rates(k_n_K40_to_p_Ar40_reaclib)*Y(K40)*state.rho; + scratch = screened_rates(k_Ar39_n_to_Ar40_reaclib)*Y(Ar39)*state.rho + screened_rates(k_Ca43_n_to_He4_Ar40_reaclib)*Y(Ca43)*state.rho + screened_rates(k_K40_n_to_p_Ar40_reaclib)*Y(K40)*state.rho; jac.set(Ar40, N, scratch); - scratch = -screened_rates(k_p_Ar40_to_He4_Cl37_reaclib)*Y(Ar40)*state.rho - screened_rates(k_p_Ar40_to_K41_reaclib)*Y(Ar40)*state.rho - screened_rates(k_p_Ar40_to_n_K40_reaclib)*Y(Ar40)*state.rho; + scratch = -screened_rates(k_Ar40_p_to_He4_Cl37_reaclib)*Y(Ar40)*state.rho - screened_rates(k_Ar40_p_to_K41_reaclib)*Y(Ar40)*state.rho - screened_rates(k_Ar40_p_to_n_K40_derived)*Y(Ar40)*state.rho; jac.set(Ar40, H1, scratch); jac.set(Ar40, H2, 0.0); jac.set(Ar40, He3, 0.0); - scratch = -screened_rates(k_He4_Ar40_to_Ca44_reaclib)*Y(Ar40)*state.rho - screened_rates(k_He4_Ar40_to_n_Ca43_reaclib)*Y(Ar40)*state.rho + screened_rates(k_He4_Cl37_to_p_Ar40_reaclib)*Y(Cl37)*state.rho + screened_rates(k_He4_S36_to_Ar40_reaclib)*Y(S36)*state.rho; + scratch = -screened_rates(k_Ar40_He4_to_Ca44_reaclib)*Y(Ar40)*state.rho - screened_rates(k_Ar40_He4_to_n_Ca43_derived)*Y(Ar40)*state.rho + screened_rates(k_Cl37_He4_to_p_Ar40_derived)*Y(Cl37)*state.rho + screened_rates(k_S36_He4_to_Ar40_reaclib)*Y(S36)*state.rho; jac.set(Ar40, He4, scratch); jac.set(Ar40, Li6, 0.0); @@ -31319,7 +29128,7 @@ void jac_nuc(const burn_t& state, jac.set(Ar40, S35, 0.0); - scratch = screened_rates(k_He4_S36_to_Ar40_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_S36_He4_to_Ar40_reaclib)*Y(He4)*state.rho; jac.set(Ar40, S36, scratch); jac.set(Ar40, Cl33, 0.0); @@ -31330,7 +29139,7 @@ void jac_nuc(const burn_t& state, jac.set(Ar40, Cl36, 0.0); - scratch = screened_rates(k_He4_Cl37_to_p_Ar40_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cl37_He4_to_p_Ar40_derived)*Y(He4)*state.rho; jac.set(Ar40, Cl37, scratch); jac.set(Ar40, Ar36, 0.0); @@ -31339,10 +29148,10 @@ void jac_nuc(const burn_t& state, jac.set(Ar40, Ar38, 0.0); - scratch = screened_rates(k_n_Ar39_to_Ar40_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ar39_n_to_Ar40_reaclib)*Y(N)*state.rho; jac.set(Ar40, Ar39, scratch); - scratch = -screened_rates(k_Ar40_to_He4_S36_reaclib) - screened_rates(k_Ar40_to_K40_weaktab) - screened_rates(k_Ar40_to_n_Ar39_reaclib) - screened_rates(k_He4_Ar40_to_Ca44_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ar40_to_n_Ca43_reaclib)*Y(He4)*state.rho - screened_rates(k_p_Ar40_to_He4_Cl37_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ar40_to_K41_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ar40_to_n_K40_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ar40_He4_to_Ca44_reaclib)*Y(He4)*state.rho - screened_rates(k_Ar40_He4_to_n_Ca43_derived)*Y(He4)*state.rho - screened_rates(k_Ar40_p_to_He4_Cl37_reaclib)*Y(H1)*state.rho - screened_rates(k_Ar40_p_to_K41_reaclib)*Y(H1)*state.rho - screened_rates(k_Ar40_p_to_n_K40_derived)*Y(H1)*state.rho - screened_rates(k_Ar40_to_He4_S36_derived) - screened_rates(k_Ar40_to_K40_beta_neg_weaktab) - screened_rates(k_Ar40_to_n_Ar39_derived); jac.set(Ar40, Ar40, scratch); jac.set(Ar40, K37, 0.0); @@ -31351,10 +29160,10 @@ void jac_nuc(const burn_t& state, jac.set(Ar40, K39, 0.0); - scratch = screened_rates(k_K40_to_Ar40_weaktab) + screened_rates(k_n_K40_to_p_Ar40_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_K40_n_to_p_Ar40_reaclib)*Y(N)*state.rho + screened_rates(k_K40_to_Ar40_electron_capture_weaktab); jac.set(Ar40, K40, scratch); - scratch = screened_rates(k_K41_to_p_Ar40_reaclib); + scratch = screened_rates(k_K41_to_p_Ar40_derived); jac.set(Ar40, K41, scratch); jac.set(Ar40, Ca40, 0.0); @@ -31363,10 +29172,10 @@ void jac_nuc(const burn_t& state, jac.set(Ar40, Ca42, 0.0); - scratch = screened_rates(k_n_Ca43_to_He4_Ar40_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ca43_n_to_He4_Ar40_reaclib)*Y(N)*state.rho; jac.set(Ar40, Ca43, scratch); - scratch = screened_rates(k_Ca44_to_He4_Ar40_reaclib); + scratch = screened_rates(k_Ca44_to_He4_Ar40_derived); jac.set(Ar40, Ca44, scratch); jac.set(Ar40, Ca45, 0.0); @@ -31537,17 +29346,17 @@ void jac_nuc(const burn_t& state, jac.set(Ar40, Ge64, 0.0); - scratch = -screened_rates(k_n_K37_to_He4_Cl34_reaclib)*Y(K37)*state.rho - screened_rates(k_n_K37_to_K38_reaclib)*Y(K37)*state.rho - screened_rates(k_n_K37_to_p_Ar37_reaclib)*Y(K37)*state.rho; + scratch = -screened_rates(k_K37_n_to_He4_Cl34_reaclib)*Y(K37)*state.rho - screened_rates(k_K37_n_to_K38_reaclib)*Y(K37)*state.rho - screened_rates(k_K37_n_to_p_Ar37_reaclib)*Y(K37)*state.rho; jac.set(K37, N, scratch); - scratch = screened_rates(k_p_Ar36_to_K37_reaclib)*Y(Ar36)*state.rho + screened_rates(k_p_Ar37_to_n_K37_reaclib)*Y(Ar37)*state.rho + screened_rates(k_p_Ca40_to_He4_K37_reaclib)*Y(Ca40)*state.rho; + scratch = screened_rates(k_Ar36_p_to_K37_reaclib)*Y(Ar36)*state.rho + screened_rates(k_Ar37_p_to_n_K37_derived)*Y(Ar37)*state.rho + screened_rates(k_Ca40_p_to_He4_K37_derived)*Y(Ca40)*state.rho; jac.set(K37, H1, scratch); jac.set(K37, H2, 0.0); jac.set(K37, He3, 0.0); - scratch = screened_rates(k_He4_Cl33_to_K37_reaclib)*Y(Cl33)*state.rho + screened_rates(k_He4_Cl34_to_n_K37_reaclib)*Y(Cl34)*state.rho - screened_rates(k_He4_K37_to_p_Ca40_reaclib)*Y(K37)*state.rho; + scratch = screened_rates(k_Cl33_He4_to_K37_reaclib)*Y(Cl33)*state.rho + screened_rates(k_Cl34_He4_to_n_K37_derived)*Y(Cl34)*state.rho - screened_rates(k_K37_He4_to_p_Ca40_reaclib)*Y(K37)*state.rho; jac.set(K37, He4, scratch); jac.set(K37, Li6, 0.0); @@ -31652,10 +29461,10 @@ void jac_nuc(const burn_t& state, jac.set(K37, S36, 0.0); - scratch = screened_rates(k_He4_Cl33_to_K37_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cl33_He4_to_K37_reaclib)*Y(He4)*state.rho; jac.set(K37, Cl33, scratch); - scratch = screened_rates(k_He4_Cl34_to_n_K37_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cl34_He4_to_n_K37_derived)*Y(He4)*state.rho; jac.set(K37, Cl34, scratch); jac.set(K37, Cl35, 0.0); @@ -31664,10 +29473,10 @@ void jac_nuc(const burn_t& state, jac.set(K37, Cl37, 0.0); - scratch = screened_rates(k_p_Ar36_to_K37_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ar36_p_to_K37_reaclib)*Y(H1)*state.rho; jac.set(K37, Ar36, scratch); - scratch = screened_rates(k_Ar37_to_K37_weaktab) + screened_rates(k_p_Ar37_to_n_K37_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ar37_p_to_n_K37_derived)*Y(H1)*state.rho + screened_rates(k_Ar37_to_K37_beta_neg_weaktab); jac.set(K37, Ar37, scratch); jac.set(K37, Ar38, 0.0); @@ -31676,10 +29485,10 @@ void jac_nuc(const burn_t& state, jac.set(K37, Ar40, 0.0); - scratch = -screened_rates(k_He4_K37_to_p_Ca40_reaclib)*Y(He4)*state.rho - screened_rates(k_K37_to_Ar37_weaktab) - screened_rates(k_K37_to_He4_Cl33_reaclib) - screened_rates(k_K37_to_p_Ar36_reaclib) - screened_rates(k_n_K37_to_He4_Cl34_reaclib)*Y(N)*state.rho - screened_rates(k_n_K37_to_K38_reaclib)*Y(N)*state.rho - screened_rates(k_n_K37_to_p_Ar37_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_K37_He4_to_p_Ca40_reaclib)*Y(He4)*state.rho - screened_rates(k_K37_n_to_He4_Cl34_reaclib)*Y(N)*state.rho - screened_rates(k_K37_n_to_K38_reaclib)*Y(N)*state.rho - screened_rates(k_K37_n_to_p_Ar37_reaclib)*Y(N)*state.rho - screened_rates(k_K37_to_Ar37_electron_capture_weaktab) - screened_rates(k_K37_to_He4_Cl33_derived) - screened_rates(k_K37_to_p_Ar36_derived); jac.set(K37, K37, scratch); - scratch = screened_rates(k_K38_to_n_K37_reaclib); + scratch = screened_rates(k_K38_to_n_K37_derived); jac.set(K37, K38, scratch); jac.set(K37, K39, 0.0); @@ -31688,7 +29497,7 @@ void jac_nuc(const burn_t& state, jac.set(K37, K41, 0.0); - scratch = screened_rates(k_p_Ca40_to_He4_K37_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca40_p_to_He4_K37_derived)*Y(H1)*state.rho; jac.set(K37, Ca40, scratch); jac.set(K37, Ca41, 0.0); @@ -31867,17 +29676,17 @@ void jac_nuc(const burn_t& state, jac.set(K37, Ge64, 0.0); - scratch = screened_rates(k_n_K37_to_K38_reaclib)*Y(K37)*state.rho - screened_rates(k_n_K38_to_He4_Cl35_reaclib)*Y(K38)*state.rho - screened_rates(k_n_K38_to_K39_reaclib)*Y(K38)*state.rho - screened_rates(k_n_K38_to_p_Ar38_reaclib)*Y(K38)*state.rho; + scratch = screened_rates(k_K37_n_to_K38_reaclib)*Y(K37)*state.rho - screened_rates(k_K38_n_to_He4_Cl35_reaclib)*Y(K38)*state.rho - screened_rates(k_K38_n_to_K39_reaclib)*Y(K38)*state.rho - screened_rates(k_K38_n_to_p_Ar38_reaclib)*Y(K38)*state.rho; jac.set(K38, N, scratch); - scratch = screened_rates(k_p_Ar37_to_K38_reaclib)*Y(Ar37)*state.rho + screened_rates(k_p_Ar38_to_n_K38_reaclib)*Y(Ar38)*state.rho + screened_rates(k_p_Ca41_to_He4_K38_reaclib)*Y(Ca41)*state.rho; + scratch = screened_rates(k_Ar37_p_to_K38_reaclib)*Y(Ar37)*state.rho + screened_rates(k_Ar38_p_to_n_K38_derived)*Y(Ar38)*state.rho + screened_rates(k_Ca41_p_to_He4_K38_derived)*Y(Ca41)*state.rho; jac.set(K38, H1, scratch); jac.set(K38, H2, 0.0); jac.set(K38, He3, 0.0); - scratch = screened_rates(k_He4_Cl34_to_K38_reaclib)*Y(Cl34)*state.rho + screened_rates(k_He4_Cl35_to_n_K38_reaclib)*Y(Cl35)*state.rho - screened_rates(k_He4_K38_to_p_Ca41_reaclib)*Y(K38)*state.rho; + scratch = screened_rates(k_Cl34_He4_to_K38_reaclib)*Y(Cl34)*state.rho + screened_rates(k_Cl35_He4_to_n_K38_derived)*Y(Cl35)*state.rho - screened_rates(k_K38_He4_to_p_Ca41_reaclib)*Y(K38)*state.rho; jac.set(K38, He4, scratch); jac.set(K38, Li6, 0.0); @@ -31984,10 +29793,10 @@ void jac_nuc(const burn_t& state, jac.set(K38, Cl33, 0.0); - scratch = screened_rates(k_He4_Cl34_to_K38_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cl34_He4_to_K38_reaclib)*Y(He4)*state.rho; jac.set(K38, Cl34, scratch); - scratch = screened_rates(k_He4_Cl35_to_n_K38_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cl35_He4_to_n_K38_derived)*Y(He4)*state.rho; jac.set(K38, Cl35, scratch); jac.set(K38, Cl36, 0.0); @@ -31996,23 +29805,23 @@ void jac_nuc(const burn_t& state, jac.set(K38, Ar36, 0.0); - scratch = screened_rates(k_p_Ar37_to_K38_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ar37_p_to_K38_reaclib)*Y(H1)*state.rho; jac.set(K38, Ar37, scratch); - scratch = screened_rates(k_Ar38_to_K38_weaktab) + screened_rates(k_p_Ar38_to_n_K38_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ar38_p_to_n_K38_derived)*Y(H1)*state.rho + screened_rates(k_Ar38_to_K38_beta_neg_weaktab); jac.set(K38, Ar38, scratch); jac.set(K38, Ar39, 0.0); jac.set(K38, Ar40, 0.0); - scratch = screened_rates(k_n_K37_to_K38_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_K37_n_to_K38_reaclib)*Y(N)*state.rho; jac.set(K38, K37, scratch); - scratch = -screened_rates(k_He4_K38_to_p_Ca41_reaclib)*Y(He4)*state.rho - screened_rates(k_K38_to_Ar38_weaktab) - screened_rates(k_K38_to_He4_Cl34_reaclib) - screened_rates(k_K38_to_n_K37_reaclib) - screened_rates(k_K38_to_p_Ar37_reaclib) - screened_rates(k_n_K38_to_He4_Cl35_reaclib)*Y(N)*state.rho - screened_rates(k_n_K38_to_K39_reaclib)*Y(N)*state.rho - screened_rates(k_n_K38_to_p_Ar38_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_K38_He4_to_p_Ca41_reaclib)*Y(He4)*state.rho - screened_rates(k_K38_n_to_He4_Cl35_reaclib)*Y(N)*state.rho - screened_rates(k_K38_n_to_K39_reaclib)*Y(N)*state.rho - screened_rates(k_K38_n_to_p_Ar38_reaclib)*Y(N)*state.rho - screened_rates(k_K38_to_Ar38_electron_capture_weaktab) - screened_rates(k_K38_to_He4_Cl34_derived) - screened_rates(k_K38_to_n_K37_derived) - screened_rates(k_K38_to_p_Ar37_derived); jac.set(K38, K38, scratch); - scratch = screened_rates(k_K39_to_n_K38_reaclib); + scratch = screened_rates(k_K39_to_n_K38_derived); jac.set(K38, K39, scratch); jac.set(K38, K40, 0.0); @@ -32021,7 +29830,7 @@ void jac_nuc(const burn_t& state, jac.set(K38, Ca40, 0.0); - scratch = screened_rates(k_p_Ca41_to_He4_K38_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca41_p_to_He4_K38_derived)*Y(H1)*state.rho; jac.set(K38, Ca41, scratch); jac.set(K38, Ca42, 0.0); @@ -32198,17 +30007,17 @@ void jac_nuc(const burn_t& state, jac.set(K38, Ge64, 0.0); - scratch = screened_rates(k_n_K38_to_K39_reaclib)*Y(K38)*state.rho - screened_rates(k_n_K39_to_He4_Cl36_reaclib)*Y(K39)*state.rho - screened_rates(k_n_K39_to_K40_reaclib)*Y(K39)*state.rho - screened_rates(k_n_K39_to_p_Ar39_reaclib)*Y(K39)*state.rho; + scratch = screened_rates(k_K38_n_to_K39_reaclib)*Y(K38)*state.rho - screened_rates(k_K39_n_to_He4_Cl36_reaclib)*Y(K39)*state.rho - screened_rates(k_K39_n_to_K40_reaclib)*Y(K39)*state.rho - screened_rates(k_K39_n_to_p_Ar39_reaclib)*Y(K39)*state.rho; jac.set(K39, N, scratch); - scratch = screened_rates(k_p_Ar38_to_K39_reaclib)*Y(Ar38)*state.rho + screened_rates(k_p_Ar39_to_n_K39_reaclib)*Y(Ar39)*state.rho + screened_rates(k_p_Ca42_to_He4_K39_reaclib)*Y(Ca42)*state.rho - screened_rates(k_p_K39_to_Ca40_reaclib)*Y(K39)*state.rho - screened_rates(k_p_K39_to_He4_Ar36_reaclib)*Y(K39)*state.rho; + scratch = screened_rates(k_Ar38_p_to_K39_reaclib)*Y(Ar38)*state.rho + screened_rates(k_Ar39_p_to_n_K39_derived)*Y(Ar39)*state.rho + screened_rates(k_Ca42_p_to_He4_K39_reaclib)*Y(Ca42)*state.rho - screened_rates(k_K39_p_to_Ca40_reaclib)*Y(K39)*state.rho - screened_rates(k_K39_p_to_He4_Ar36_reaclib)*Y(K39)*state.rho; jac.set(K39, H1, scratch); jac.set(K39, H2, 0.0); jac.set(K39, He3, 0.0); - scratch = screened_rates(k_He4_Ar36_to_p_K39_reaclib)*Y(Ar36)*state.rho + screened_rates(k_He4_Cl35_to_K39_reaclib)*Y(Cl35)*state.rho + screened_rates(k_He4_Cl36_to_n_K39_reaclib)*Y(Cl36)*state.rho - screened_rates(k_He4_K39_to_Sc43_reaclib)*Y(K39)*state.rho - screened_rates(k_He4_K39_to_p_Ca42_reaclib)*Y(K39)*state.rho; + scratch = screened_rates(k_Ar36_He4_to_p_K39_derived)*Y(Ar36)*state.rho + screened_rates(k_Cl35_He4_to_K39_reaclib)*Y(Cl35)*state.rho + screened_rates(k_Cl36_He4_to_n_K39_derived)*Y(Cl36)*state.rho - screened_rates(k_K39_He4_to_Sc43_reaclib)*Y(K39)*state.rho - screened_rates(k_K39_He4_to_p_Ca42_derived)*Y(K39)*state.rho; jac.set(K39, He4, scratch); jac.set(K39, Li6, 0.0); @@ -32317,46 +30126,46 @@ void jac_nuc(const burn_t& state, jac.set(K39, Cl34, 0.0); - scratch = screened_rates(k_He4_Cl35_to_K39_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cl35_He4_to_K39_reaclib)*Y(He4)*state.rho; jac.set(K39, Cl35, scratch); - scratch = screened_rates(k_He4_Cl36_to_n_K39_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cl36_He4_to_n_K39_derived)*Y(He4)*state.rho; jac.set(K39, Cl36, scratch); jac.set(K39, Cl37, 0.0); - scratch = screened_rates(k_He4_Ar36_to_p_K39_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ar36_He4_to_p_K39_derived)*Y(He4)*state.rho; jac.set(K39, Ar36, scratch); jac.set(K39, Ar37, 0.0); - scratch = screened_rates(k_p_Ar38_to_K39_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ar38_p_to_K39_reaclib)*Y(H1)*state.rho; jac.set(K39, Ar38, scratch); - scratch = screened_rates(k_Ar39_to_K39_weaktab) + screened_rates(k_p_Ar39_to_n_K39_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ar39_p_to_n_K39_derived)*Y(H1)*state.rho + screened_rates(k_Ar39_to_K39_beta_neg_weaktab); jac.set(K39, Ar39, scratch); jac.set(K39, Ar40, 0.0); jac.set(K39, K37, 0.0); - scratch = screened_rates(k_n_K38_to_K39_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_K38_n_to_K39_reaclib)*Y(N)*state.rho; jac.set(K39, K38, scratch); - scratch = -screened_rates(k_He4_K39_to_Sc43_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_K39_to_p_Ca42_reaclib)*Y(He4)*state.rho - screened_rates(k_K39_to_Ar39_weaktab) - screened_rates(k_K39_to_He4_Cl35_reaclib) - screened_rates(k_K39_to_n_K38_reaclib) - screened_rates(k_K39_to_p_Ar38_reaclib) - screened_rates(k_n_K39_to_He4_Cl36_reaclib)*Y(N)*state.rho - screened_rates(k_n_K39_to_K40_reaclib)*Y(N)*state.rho - screened_rates(k_n_K39_to_p_Ar39_reaclib)*Y(N)*state.rho - screened_rates(k_p_K39_to_Ca40_reaclib)*Y(H1)*state.rho - screened_rates(k_p_K39_to_He4_Ar36_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_K39_He4_to_Sc43_reaclib)*Y(He4)*state.rho - screened_rates(k_K39_He4_to_p_Ca42_derived)*Y(He4)*state.rho - screened_rates(k_K39_n_to_He4_Cl36_reaclib)*Y(N)*state.rho - screened_rates(k_K39_n_to_K40_reaclib)*Y(N)*state.rho - screened_rates(k_K39_n_to_p_Ar39_reaclib)*Y(N)*state.rho - screened_rates(k_K39_p_to_Ca40_reaclib)*Y(H1)*state.rho - screened_rates(k_K39_p_to_He4_Ar36_reaclib)*Y(H1)*state.rho - screened_rates(k_K39_to_Ar39_electron_capture_weaktab) - screened_rates(k_K39_to_He4_Cl35_derived) - screened_rates(k_K39_to_n_K38_derived) - screened_rates(k_K39_to_p_Ar38_derived); jac.set(K39, K39, scratch); - scratch = screened_rates(k_K40_to_n_K39_reaclib); + scratch = screened_rates(k_K40_to_n_K39_derived); jac.set(K39, K40, scratch); jac.set(K39, K41, 0.0); - scratch = screened_rates(k_Ca40_to_p_K39_reaclib); + scratch = screened_rates(k_Ca40_to_p_K39_derived); jac.set(K39, Ca40, scratch); jac.set(K39, Ca41, 0.0); - scratch = screened_rates(k_p_Ca42_to_He4_K39_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca42_p_to_He4_K39_reaclib)*Y(H1)*state.rho; jac.set(K39, Ca42, scratch); jac.set(K39, Ca43, 0.0); @@ -32371,7 +30180,7 @@ void jac_nuc(const burn_t& state, jac.set(K39, Ca48, 0.0); - scratch = screened_rates(k_Sc43_to_He4_K39_reaclib); + scratch = screened_rates(k_Sc43_to_He4_K39_derived); jac.set(K39, Sc43, scratch); jac.set(K39, Sc44, 0.0); @@ -32532,17 +30341,17 @@ void jac_nuc(const burn_t& state, jac.set(K39, Ge64, 0.0); - scratch = screened_rates(k_n_Ca40_to_p_K40_reaclib)*Y(Ca40)*state.rho + screened_rates(k_n_K39_to_K40_reaclib)*Y(K39)*state.rho - screened_rates(k_n_K40_to_He4_Cl37_reaclib)*Y(K40)*state.rho - screened_rates(k_n_K40_to_K41_reaclib)*Y(K40)*state.rho - screened_rates(k_n_K40_to_p_Ar40_reaclib)*Y(K40)*state.rho + screened_rates(k_n_Sc43_to_He4_K40_reaclib)*Y(Sc43)*state.rho; + scratch = screened_rates(k_Ca40_n_to_p_K40_derived)*Y(Ca40)*state.rho + screened_rates(k_K39_n_to_K40_reaclib)*Y(K39)*state.rho - screened_rates(k_K40_n_to_He4_Cl37_reaclib)*Y(K40)*state.rho - screened_rates(k_K40_n_to_K41_reaclib)*Y(K40)*state.rho - screened_rates(k_K40_n_to_p_Ar40_reaclib)*Y(K40)*state.rho + screened_rates(k_Sc43_n_to_He4_K40_reaclib)*Y(Sc43)*state.rho; jac.set(K40, N, scratch); - scratch = screened_rates(k_p_Ar39_to_K40_reaclib)*Y(Ar39)*state.rho + screened_rates(k_p_Ar40_to_n_K40_reaclib)*Y(Ar40)*state.rho + screened_rates(k_p_Ca43_to_He4_K40_reaclib)*Y(Ca43)*state.rho - screened_rates(k_p_K40_to_Ca41_reaclib)*Y(K40)*state.rho - screened_rates(k_p_K40_to_He4_Ar37_reaclib)*Y(K40)*state.rho - screened_rates(k_p_K40_to_n_Ca40_reaclib)*Y(K40)*state.rho; + scratch = screened_rates(k_Ar39_p_to_K40_reaclib)*Y(Ar39)*state.rho + screened_rates(k_Ar40_p_to_n_K40_derived)*Y(Ar40)*state.rho + screened_rates(k_Ca43_p_to_He4_K40_derived)*Y(Ca43)*state.rho - screened_rates(k_K40_p_to_Ca41_reaclib)*Y(K40)*state.rho - screened_rates(k_K40_p_to_He4_Ar37_reaclib)*Y(K40)*state.rho - screened_rates(k_K40_p_to_n_Ca40_reaclib)*Y(K40)*state.rho; jac.set(K40, H1, scratch); jac.set(K40, H2, 0.0); jac.set(K40, He3, 0.0); - scratch = screened_rates(k_He4_Ar37_to_p_K40_reaclib)*Y(Ar37)*state.rho + screened_rates(k_He4_Cl36_to_K40_reaclib)*Y(Cl36)*state.rho + screened_rates(k_He4_Cl37_to_n_K40_reaclib)*Y(Cl37)*state.rho - screened_rates(k_He4_K40_to_Sc44_reaclib)*Y(K40)*state.rho - screened_rates(k_He4_K40_to_n_Sc43_reaclib)*Y(K40)*state.rho - screened_rates(k_He4_K40_to_p_Ca43_reaclib)*Y(K40)*state.rho; + scratch = screened_rates(k_Ar37_He4_to_p_K40_derived)*Y(Ar37)*state.rho + screened_rates(k_Cl36_He4_to_K40_reaclib)*Y(Cl36)*state.rho + screened_rates(k_Cl37_He4_to_n_K40_derived)*Y(Cl37)*state.rho - screened_rates(k_K40_He4_to_Sc44_reaclib)*Y(K40)*state.rho - screened_rates(k_K40_He4_to_n_Sc43_derived)*Y(K40)*state.rho - screened_rates(k_K40_He4_to_p_Ca43_reaclib)*Y(K40)*state.rho; jac.set(K40, He4, scratch); jac.set(K40, Li6, 0.0); @@ -32653,47 +30462,47 @@ void jac_nuc(const burn_t& state, jac.set(K40, Cl35, 0.0); - scratch = screened_rates(k_He4_Cl36_to_K40_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cl36_He4_to_K40_reaclib)*Y(He4)*state.rho; jac.set(K40, Cl36, scratch); - scratch = screened_rates(k_He4_Cl37_to_n_K40_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cl37_He4_to_n_K40_derived)*Y(He4)*state.rho; jac.set(K40, Cl37, scratch); jac.set(K40, Ar36, 0.0); - scratch = screened_rates(k_He4_Ar37_to_p_K40_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ar37_He4_to_p_K40_derived)*Y(He4)*state.rho; jac.set(K40, Ar37, scratch); jac.set(K40, Ar38, 0.0); - scratch = screened_rates(k_p_Ar39_to_K40_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ar39_p_to_K40_reaclib)*Y(H1)*state.rho; jac.set(K40, Ar39, scratch); - scratch = screened_rates(k_Ar40_to_K40_weaktab) + screened_rates(k_p_Ar40_to_n_K40_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ar40_p_to_n_K40_derived)*Y(H1)*state.rho + screened_rates(k_Ar40_to_K40_beta_neg_weaktab); jac.set(K40, Ar40, scratch); jac.set(K40, K37, 0.0); jac.set(K40, K38, 0.0); - scratch = screened_rates(k_n_K39_to_K40_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_K39_n_to_K40_reaclib)*Y(N)*state.rho; jac.set(K40, K39, scratch); - scratch = -screened_rates(k_He4_K40_to_Sc44_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_K40_to_n_Sc43_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_K40_to_p_Ca43_reaclib)*Y(He4)*state.rho - screened_rates(k_K40_to_Ar40_weaktab) - screened_rates(k_K40_to_Ca40_weaktab) - screened_rates(k_K40_to_He4_Cl36_reaclib) - screened_rates(k_K40_to_n_K39_reaclib) - screened_rates(k_K40_to_p_Ar39_reaclib) - screened_rates(k_n_K40_to_He4_Cl37_reaclib)*Y(N)*state.rho - screened_rates(k_n_K40_to_K41_reaclib)*Y(N)*state.rho - screened_rates(k_n_K40_to_p_Ar40_reaclib)*Y(N)*state.rho - screened_rates(k_p_K40_to_Ca41_reaclib)*Y(H1)*state.rho - screened_rates(k_p_K40_to_He4_Ar37_reaclib)*Y(H1)*state.rho - screened_rates(k_p_K40_to_n_Ca40_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_K40_He4_to_Sc44_reaclib)*Y(He4)*state.rho - screened_rates(k_K40_He4_to_n_Sc43_derived)*Y(He4)*state.rho - screened_rates(k_K40_He4_to_p_Ca43_reaclib)*Y(He4)*state.rho - screened_rates(k_K40_n_to_He4_Cl37_reaclib)*Y(N)*state.rho - screened_rates(k_K40_n_to_K41_reaclib)*Y(N)*state.rho - screened_rates(k_K40_n_to_p_Ar40_reaclib)*Y(N)*state.rho - screened_rates(k_K40_p_to_Ca41_reaclib)*Y(H1)*state.rho - screened_rates(k_K40_p_to_He4_Ar37_reaclib)*Y(H1)*state.rho - screened_rates(k_K40_p_to_n_Ca40_reaclib)*Y(H1)*state.rho - screened_rates(k_K40_to_Ar40_electron_capture_weaktab) - screened_rates(k_K40_to_Ca40_beta_neg_weaktab) - screened_rates(k_K40_to_He4_Cl36_derived) - screened_rates(k_K40_to_n_K39_derived) - screened_rates(k_K40_to_p_Ar39_derived); jac.set(K40, K40, scratch); - scratch = screened_rates(k_K41_to_n_K40_reaclib); + scratch = screened_rates(k_K41_to_n_K40_derived); jac.set(K40, K41, scratch); - scratch = screened_rates(k_Ca40_to_K40_weaktab) + screened_rates(k_n_Ca40_to_p_K40_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ca40_n_to_p_K40_derived)*Y(N)*state.rho + screened_rates(k_Ca40_to_K40_electron_capture_weaktab); jac.set(K40, Ca40, scratch); - scratch = screened_rates(k_Ca41_to_p_K40_reaclib); + scratch = screened_rates(k_Ca41_to_p_K40_derived); jac.set(K40, Ca41, scratch); jac.set(K40, Ca42, 0.0); - scratch = screened_rates(k_p_Ca43_to_He4_K40_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca43_p_to_He4_K40_derived)*Y(H1)*state.rho; jac.set(K40, Ca43, scratch); jac.set(K40, Ca44, 0.0); @@ -32706,10 +30515,10 @@ void jac_nuc(const burn_t& state, jac.set(K40, Ca48, 0.0); - scratch = screened_rates(k_n_Sc43_to_He4_K40_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Sc43_n_to_He4_K40_reaclib)*Y(N)*state.rho; jac.set(K40, Sc43, scratch); - scratch = screened_rates(k_Sc44_to_He4_K40_reaclib); + scratch = screened_rates(k_Sc44_to_He4_K40_derived); jac.set(K40, Sc44, scratch); jac.set(K40, Sc45, 0.0); @@ -32868,17 +30677,17 @@ void jac_nuc(const burn_t& state, jac.set(K40, Ge64, 0.0); - scratch = screened_rates(k_n_Ca41_to_p_K41_reaclib)*Y(Ca41)*state.rho + screened_rates(k_n_K40_to_K41_reaclib)*Y(K40)*state.rho + screened_rates(k_n_Sc44_to_He4_K41_reaclib)*Y(Sc44)*state.rho; + scratch = screened_rates(k_Ca41_n_to_p_K41_derived)*Y(Ca41)*state.rho + screened_rates(k_K40_n_to_K41_reaclib)*Y(K40)*state.rho + screened_rates(k_Sc44_n_to_He4_K41_derived)*Y(Sc44)*state.rho; jac.set(K41, N, scratch); - scratch = screened_rates(k_p_Ar40_to_K41_reaclib)*Y(Ar40)*state.rho + screened_rates(k_p_Ca44_to_He4_K41_reaclib)*Y(Ca44)*state.rho - screened_rates(k_p_K41_to_Ca42_reaclib)*Y(K41)*state.rho - screened_rates(k_p_K41_to_He4_Ar38_reaclib)*Y(K41)*state.rho - screened_rates(k_p_K41_to_n_Ca41_reaclib)*Y(K41)*state.rho; + scratch = screened_rates(k_Ar40_p_to_K41_reaclib)*Y(Ar40)*state.rho + screened_rates(k_Ca44_p_to_He4_K41_derived)*Y(Ca44)*state.rho - screened_rates(k_K41_p_to_Ca42_reaclib)*Y(K41)*state.rho - screened_rates(k_K41_p_to_He4_Ar38_reaclib)*Y(K41)*state.rho - screened_rates(k_K41_p_to_n_Ca41_reaclib)*Y(K41)*state.rho; jac.set(K41, H1, scratch); jac.set(K41, H2, 0.0); jac.set(K41, He3, 0.0); - scratch = screened_rates(k_He4_Ar38_to_p_K41_reaclib)*Y(Ar38)*state.rho + screened_rates(k_He4_Cl37_to_K41_reaclib)*Y(Cl37)*state.rho - screened_rates(k_He4_K41_to_Sc45_reaclib)*Y(K41)*state.rho - screened_rates(k_He4_K41_to_n_Sc44_reaclib)*Y(K41)*state.rho - screened_rates(k_He4_K41_to_p_Ca44_reaclib)*Y(K41)*state.rho; + scratch = screened_rates(k_Ar38_He4_to_p_K41_derived)*Y(Ar38)*state.rho + screened_rates(k_Cl37_He4_to_K41_reaclib)*Y(Cl37)*state.rho - screened_rates(k_K41_He4_to_Sc45_reaclib)*Y(K41)*state.rho - screened_rates(k_K41_He4_to_n_Sc44_reaclib)*Y(K41)*state.rho - screened_rates(k_K41_He4_to_p_Ca44_reaclib)*Y(K41)*state.rho; jac.set(K41, He4, scratch); jac.set(K41, Li6, 0.0); @@ -32991,19 +30800,19 @@ void jac_nuc(const burn_t& state, jac.set(K41, Cl36, 0.0); - scratch = screened_rates(k_He4_Cl37_to_K41_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cl37_He4_to_K41_reaclib)*Y(He4)*state.rho; jac.set(K41, Cl37, scratch); jac.set(K41, Ar36, 0.0); jac.set(K41, Ar37, 0.0); - scratch = screened_rates(k_He4_Ar38_to_p_K41_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ar38_He4_to_p_K41_derived)*Y(He4)*state.rho; jac.set(K41, Ar38, scratch); jac.set(K41, Ar39, 0.0); - scratch = screened_rates(k_p_Ar40_to_K41_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ar40_p_to_K41_reaclib)*Y(H1)*state.rho; jac.set(K41, Ar40, scratch); jac.set(K41, K37, 0.0); @@ -33012,23 +30821,23 @@ void jac_nuc(const burn_t& state, jac.set(K41, K39, 0.0); - scratch = screened_rates(k_n_K40_to_K41_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_K40_n_to_K41_reaclib)*Y(N)*state.rho; jac.set(K41, K40, scratch); - scratch = -screened_rates(k_He4_K41_to_Sc45_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_K41_to_n_Sc44_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_K41_to_p_Ca44_reaclib)*Y(He4)*state.rho - screened_rates(k_K41_to_Ca41_weaktab) - screened_rates(k_K41_to_He4_Cl37_reaclib) - screened_rates(k_K41_to_n_K40_reaclib) - screened_rates(k_K41_to_p_Ar40_reaclib) - screened_rates(k_p_K41_to_Ca42_reaclib)*Y(H1)*state.rho - screened_rates(k_p_K41_to_He4_Ar38_reaclib)*Y(H1)*state.rho - screened_rates(k_p_K41_to_n_Ca41_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_K41_He4_to_Sc45_reaclib)*Y(He4)*state.rho - screened_rates(k_K41_He4_to_n_Sc44_reaclib)*Y(He4)*state.rho - screened_rates(k_K41_He4_to_p_Ca44_reaclib)*Y(He4)*state.rho - screened_rates(k_K41_p_to_Ca42_reaclib)*Y(H1)*state.rho - screened_rates(k_K41_p_to_He4_Ar38_reaclib)*Y(H1)*state.rho - screened_rates(k_K41_p_to_n_Ca41_reaclib)*Y(H1)*state.rho - screened_rates(k_K41_to_Ca41_beta_neg_weaktab) - screened_rates(k_K41_to_He4_Cl37_derived) - screened_rates(k_K41_to_n_K40_derived) - screened_rates(k_K41_to_p_Ar40_derived); jac.set(K41, K41, scratch); jac.set(K41, Ca40, 0.0); - scratch = screened_rates(k_Ca41_to_K41_weaktab) + screened_rates(k_n_Ca41_to_p_K41_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ca41_n_to_p_K41_derived)*Y(N)*state.rho + screened_rates(k_Ca41_to_K41_electron_capture_weaktab); jac.set(K41, Ca41, scratch); - scratch = screened_rates(k_Ca42_to_p_K41_reaclib); + scratch = screened_rates(k_Ca42_to_p_K41_derived); jac.set(K41, Ca42, scratch); jac.set(K41, Ca43, 0.0); - scratch = screened_rates(k_p_Ca44_to_He4_K41_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca44_p_to_He4_K41_derived)*Y(H1)*state.rho; jac.set(K41, Ca44, scratch); jac.set(K41, Ca45, 0.0); @@ -33041,10 +30850,10 @@ void jac_nuc(const burn_t& state, jac.set(K41, Sc43, 0.0); - scratch = screened_rates(k_n_Sc44_to_He4_K41_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Sc44_n_to_He4_K41_derived)*Y(N)*state.rho; jac.set(K41, Sc44, scratch); - scratch = screened_rates(k_Sc45_to_He4_K41_reaclib); + scratch = screened_rates(k_Sc45_to_He4_K41_derived); jac.set(K41, Sc45, scratch); jac.set(K41, Sc46, 0.0); @@ -33201,17 +31010,17 @@ void jac_nuc(const burn_t& state, jac.set(K41, Ge64, 0.0); - scratch = -screened_rates(k_n_Ca40_to_Ca41_reaclib)*Y(Ca40)*state.rho - screened_rates(k_n_Ca40_to_He4_Ar37_reaclib)*Y(Ca40)*state.rho - screened_rates(k_n_Ca40_to_p_K40_reaclib)*Y(Ca40)*state.rho; + scratch = -screened_rates(k_Ca40_n_to_Ca41_reaclib)*Y(Ca40)*state.rho - screened_rates(k_Ca40_n_to_He4_Ar37_reaclib)*Y(Ca40)*state.rho - screened_rates(k_Ca40_n_to_p_K40_derived)*Y(Ca40)*state.rho; jac.set(Ca40, N, scratch); - scratch = -screened_rates(k_p_Ca40_to_He4_K37_reaclib)*Y(Ca40)*state.rho + screened_rates(k_p_K39_to_Ca40_reaclib)*Y(K39)*state.rho + screened_rates(k_p_K40_to_n_Ca40_reaclib)*Y(K40)*state.rho + screened_rates(k_p_Sc43_to_He4_Ca40_reaclib)*Y(Sc43)*state.rho; + scratch = -screened_rates(k_Ca40_p_to_He4_K37_derived)*Y(Ca40)*state.rho + screened_rates(k_K39_p_to_Ca40_reaclib)*Y(K39)*state.rho + screened_rates(k_K40_p_to_n_Ca40_reaclib)*Y(K40)*state.rho + screened_rates(k_Sc43_p_to_He4_Ca40_reaclib)*Y(Sc43)*state.rho; jac.set(Ca40, H1, scratch); jac.set(Ca40, H2, 0.0); jac.set(Ca40, He3, 0.0); - scratch = screened_rates(k_He4_Ar36_to_Ca40_reaclib)*Y(Ar36)*state.rho + screened_rates(k_He4_Ar37_to_n_Ca40_reaclib)*Y(Ar37)*state.rho - screened_rates(k_He4_Ca40_to_Ti44_reaclib)*Y(Ca40)*state.rho - screened_rates(k_He4_Ca40_to_p_Sc43_reaclib)*Y(Ca40)*state.rho + screened_rates(k_He4_K37_to_p_Ca40_reaclib)*Y(K37)*state.rho; + scratch = screened_rates(k_Ar36_He4_to_Ca40_reaclib)*Y(Ar36)*state.rho + screened_rates(k_Ar37_He4_to_n_Ca40_derived)*Y(Ar37)*state.rho - screened_rates(k_Ca40_He4_to_Ti44_reaclib)*Y(Ca40)*state.rho - screened_rates(k_Ca40_He4_to_p_Sc43_derived)*Y(Ca40)*state.rho + screened_rates(k_K37_He4_to_p_Ca40_reaclib)*Y(K37)*state.rho; jac.set(Ca40, He4, scratch); jac.set(Ca40, Li6, 0.0); @@ -33326,10 +31135,10 @@ void jac_nuc(const burn_t& state, jac.set(Ca40, Cl37, 0.0); - scratch = screened_rates(k_He4_Ar36_to_Ca40_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ar36_He4_to_Ca40_reaclib)*Y(He4)*state.rho; jac.set(Ca40, Ar36, scratch); - scratch = screened_rates(k_He4_Ar37_to_n_Ca40_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ar37_He4_to_n_Ca40_derived)*Y(He4)*state.rho; jac.set(Ca40, Ar37, scratch); jac.set(Ca40, Ar38, 0.0); @@ -33338,23 +31147,23 @@ void jac_nuc(const burn_t& state, jac.set(Ca40, Ar40, 0.0); - scratch = screened_rates(k_He4_K37_to_p_Ca40_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_K37_He4_to_p_Ca40_reaclib)*Y(He4)*state.rho; jac.set(Ca40, K37, scratch); jac.set(Ca40, K38, 0.0); - scratch = screened_rates(k_p_K39_to_Ca40_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_K39_p_to_Ca40_reaclib)*Y(H1)*state.rho; jac.set(Ca40, K39, scratch); - scratch = screened_rates(k_K40_to_Ca40_weaktab) + screened_rates(k_p_K40_to_n_Ca40_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_K40_p_to_n_Ca40_reaclib)*Y(H1)*state.rho + screened_rates(k_K40_to_Ca40_beta_neg_weaktab); jac.set(Ca40, K40, scratch); jac.set(Ca40, K41, 0.0); - scratch = -screened_rates(k_Ca40_to_He4_Ar36_reaclib) - screened_rates(k_Ca40_to_K40_weaktab) - screened_rates(k_Ca40_to_p_K39_reaclib) - screened_rates(k_He4_Ca40_to_Ti44_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca40_to_p_Sc43_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Ca40_to_Ca41_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ca40_to_He4_Ar37_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ca40_to_p_K40_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ca40_to_He4_K37_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ca40_He4_to_Ti44_reaclib)*Y(He4)*state.rho - screened_rates(k_Ca40_He4_to_p_Sc43_derived)*Y(He4)*state.rho - screened_rates(k_Ca40_n_to_Ca41_reaclib)*Y(N)*state.rho - screened_rates(k_Ca40_n_to_He4_Ar37_reaclib)*Y(N)*state.rho - screened_rates(k_Ca40_n_to_p_K40_derived)*Y(N)*state.rho - screened_rates(k_Ca40_p_to_He4_K37_derived)*Y(H1)*state.rho - screened_rates(k_Ca40_to_He4_Ar36_derived) - screened_rates(k_Ca40_to_K40_electron_capture_weaktab) - screened_rates(k_Ca40_to_p_K39_derived); jac.set(Ca40, Ca40, scratch); - scratch = screened_rates(k_Ca41_to_n_Ca40_reaclib); + scratch = screened_rates(k_Ca41_to_n_Ca40_derived); jac.set(Ca40, Ca41, scratch); jac.set(Ca40, Ca42, 0.0); @@ -33371,7 +31180,7 @@ void jac_nuc(const burn_t& state, jac.set(Ca40, Ca48, 0.0); - scratch = screened_rates(k_p_Sc43_to_He4_Ca40_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc43_p_to_He4_Ca40_reaclib)*Y(H1)*state.rho; jac.set(Ca40, Sc43, scratch); jac.set(Ca40, Sc44, 0.0); @@ -33386,7 +31195,7 @@ void jac_nuc(const burn_t& state, jac.set(Ca40, Sc49, 0.0); - scratch = screened_rates(k_Ti44_to_He4_Ca40_reaclib); + scratch = screened_rates(k_Ti44_to_He4_Ca40_derived); jac.set(Ca40, Ti44, scratch); jac.set(Ca40, Ti45, 0.0); @@ -33533,17 +31342,17 @@ void jac_nuc(const burn_t& state, jac.set(Ca40, Ge64, 0.0); - scratch = screened_rates(k_n_Ca40_to_Ca41_reaclib)*Y(Ca40)*state.rho - screened_rates(k_n_Ca41_to_Ca42_reaclib)*Y(Ca41)*state.rho - screened_rates(k_n_Ca41_to_He4_Ar38_reaclib)*Y(Ca41)*state.rho - screened_rates(k_n_Ca41_to_p_K41_reaclib)*Y(Ca41)*state.rho + screened_rates(k_n_Ti44_to_He4_Ca41_reaclib)*Y(Ti44)*state.rho; + scratch = screened_rates(k_Ca40_n_to_Ca41_reaclib)*Y(Ca40)*state.rho - screened_rates(k_Ca41_n_to_Ca42_reaclib)*Y(Ca41)*state.rho - screened_rates(k_Ca41_n_to_He4_Ar38_reaclib)*Y(Ca41)*state.rho - screened_rates(k_Ca41_n_to_p_K41_derived)*Y(Ca41)*state.rho + screened_rates(k_Ti44_n_to_He4_Ca41_reaclib)*Y(Ti44)*state.rho; jac.set(Ca41, N, scratch); - scratch = -screened_rates(k_p_Ca41_to_He4_K38_reaclib)*Y(Ca41)*state.rho + screened_rates(k_p_K40_to_Ca41_reaclib)*Y(K40)*state.rho + screened_rates(k_p_K41_to_n_Ca41_reaclib)*Y(K41)*state.rho + screened_rates(k_p_Sc44_to_He4_Ca41_reaclib)*Y(Sc44)*state.rho; + scratch = -screened_rates(k_Ca41_p_to_He4_K38_derived)*Y(Ca41)*state.rho + screened_rates(k_K40_p_to_Ca41_reaclib)*Y(K40)*state.rho + screened_rates(k_K41_p_to_n_Ca41_reaclib)*Y(K41)*state.rho + screened_rates(k_Sc44_p_to_He4_Ca41_reaclib)*Y(Sc44)*state.rho; jac.set(Ca41, H1, scratch); jac.set(Ca41, H2, 0.0); jac.set(Ca41, He3, 0.0); - scratch = screened_rates(k_He4_Ar37_to_Ca41_reaclib)*Y(Ar37)*state.rho + screened_rates(k_He4_Ar38_to_n_Ca41_reaclib)*Y(Ar38)*state.rho - screened_rates(k_He4_Ca41_to_Ti45_reaclib)*Y(Ca41)*state.rho - screened_rates(k_He4_Ca41_to_n_Ti44_reaclib)*Y(Ca41)*state.rho - screened_rates(k_He4_Ca41_to_p_Sc44_reaclib)*Y(Ca41)*state.rho + screened_rates(k_He4_K38_to_p_Ca41_reaclib)*Y(K38)*state.rho; + scratch = screened_rates(k_Ar37_He4_to_Ca41_reaclib)*Y(Ar37)*state.rho + screened_rates(k_Ar38_He4_to_n_Ca41_derived)*Y(Ar38)*state.rho - screened_rates(k_Ca41_He4_to_Ti45_reaclib)*Y(Ca41)*state.rho - screened_rates(k_Ca41_He4_to_n_Ti44_derived)*Y(Ca41)*state.rho - screened_rates(k_Ca41_He4_to_p_Sc44_derived)*Y(Ca41)*state.rho + screened_rates(k_K38_He4_to_p_Ca41_reaclib)*Y(K38)*state.rho; jac.set(Ca41, He4, scratch); jac.set(Ca41, Li6, 0.0); @@ -33660,10 +31469,10 @@ void jac_nuc(const burn_t& state, jac.set(Ca41, Ar36, 0.0); - scratch = screened_rates(k_He4_Ar37_to_Ca41_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ar37_He4_to_Ca41_reaclib)*Y(He4)*state.rho; jac.set(Ca41, Ar37, scratch); - scratch = screened_rates(k_He4_Ar38_to_n_Ca41_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ar38_He4_to_n_Ca41_derived)*Y(He4)*state.rho; jac.set(Ca41, Ar38, scratch); jac.set(Ca41, Ar39, 0.0); @@ -33672,24 +31481,24 @@ void jac_nuc(const burn_t& state, jac.set(Ca41, K37, 0.0); - scratch = screened_rates(k_He4_K38_to_p_Ca41_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_K38_He4_to_p_Ca41_reaclib)*Y(He4)*state.rho; jac.set(Ca41, K38, scratch); jac.set(Ca41, K39, 0.0); - scratch = screened_rates(k_p_K40_to_Ca41_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_K40_p_to_Ca41_reaclib)*Y(H1)*state.rho; jac.set(Ca41, K40, scratch); - scratch = screened_rates(k_K41_to_Ca41_weaktab) + screened_rates(k_p_K41_to_n_Ca41_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_K41_p_to_n_Ca41_reaclib)*Y(H1)*state.rho + screened_rates(k_K41_to_Ca41_beta_neg_weaktab); jac.set(Ca41, K41, scratch); - scratch = screened_rates(k_n_Ca40_to_Ca41_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ca40_n_to_Ca41_reaclib)*Y(N)*state.rho; jac.set(Ca41, Ca40, scratch); - scratch = -screened_rates(k_Ca41_to_He4_Ar37_reaclib) - screened_rates(k_Ca41_to_K41_weaktab) - screened_rates(k_Ca41_to_n_Ca40_reaclib) - screened_rates(k_Ca41_to_p_K40_reaclib) - screened_rates(k_He4_Ca41_to_Ti45_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca41_to_n_Ti44_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca41_to_p_Sc44_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Ca41_to_Ca42_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ca41_to_He4_Ar38_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ca41_to_p_K41_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ca41_to_He4_K38_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ca41_He4_to_Ti45_reaclib)*Y(He4)*state.rho - screened_rates(k_Ca41_He4_to_n_Ti44_derived)*Y(He4)*state.rho - screened_rates(k_Ca41_He4_to_p_Sc44_derived)*Y(He4)*state.rho - screened_rates(k_Ca41_n_to_Ca42_reaclib)*Y(N)*state.rho - screened_rates(k_Ca41_n_to_He4_Ar38_reaclib)*Y(N)*state.rho - screened_rates(k_Ca41_n_to_p_K41_derived)*Y(N)*state.rho - screened_rates(k_Ca41_p_to_He4_K38_derived)*Y(H1)*state.rho - screened_rates(k_Ca41_to_He4_Ar37_derived) - screened_rates(k_Ca41_to_K41_electron_capture_weaktab) - screened_rates(k_Ca41_to_n_Ca40_derived) - screened_rates(k_Ca41_to_p_K40_derived); jac.set(Ca41, Ca41, scratch); - scratch = screened_rates(k_Ca42_to_n_Ca41_reaclib); + scratch = screened_rates(k_Ca42_to_n_Ca41_derived); jac.set(Ca41, Ca42, scratch); jac.set(Ca41, Ca43, 0.0); @@ -33706,7 +31515,7 @@ void jac_nuc(const burn_t& state, jac.set(Ca41, Sc43, 0.0); - scratch = screened_rates(k_p_Sc44_to_He4_Ca41_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc44_p_to_He4_Ca41_reaclib)*Y(H1)*state.rho; jac.set(Ca41, Sc44, scratch); jac.set(Ca41, Sc45, 0.0); @@ -33719,10 +31528,10 @@ void jac_nuc(const burn_t& state, jac.set(Ca41, Sc49, 0.0); - scratch = screened_rates(k_n_Ti44_to_He4_Ca41_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ti44_n_to_He4_Ca41_reaclib)*Y(N)*state.rho; jac.set(Ca41, Ti44, scratch); - scratch = screened_rates(k_Ti45_to_He4_Ca41_reaclib); + scratch = screened_rates(k_Ti45_to_He4_Ca41_derived); jac.set(Ca41, Ti45, scratch); jac.set(Ca41, Ti46, 0.0); @@ -33867,17 +31676,17 @@ void jac_nuc(const burn_t& state, jac.set(Ca41, Ge64, 0.0); - scratch = screened_rates(k_n_Ca41_to_Ca42_reaclib)*Y(Ca41)*state.rho - screened_rates(k_n_Ca42_to_Ca43_reaclib)*Y(Ca42)*state.rho - screened_rates(k_n_Ca42_to_He4_Ar39_reaclib)*Y(Ca42)*state.rho + screened_rates(k_n_Ti45_to_He4_Ca42_reaclib)*Y(Ti45)*state.rho; + scratch = screened_rates(k_Ca41_n_to_Ca42_reaclib)*Y(Ca41)*state.rho - screened_rates(k_Ca42_n_to_Ca43_reaclib)*Y(Ca42)*state.rho - screened_rates(k_Ca42_n_to_He4_Ar39_reaclib)*Y(Ca42)*state.rho + screened_rates(k_Ti45_n_to_He4_Ca42_reaclib)*Y(Ti45)*state.rho; jac.set(Ca42, N, scratch); - scratch = -screened_rates(k_p_Ca42_to_He4_K39_reaclib)*Y(Ca42)*state.rho - screened_rates(k_p_Ca42_to_Sc43_reaclib)*Y(Ca42)*state.rho + screened_rates(k_p_K41_to_Ca42_reaclib)*Y(K41)*state.rho + screened_rates(k_p_Sc45_to_He4_Ca42_reaclib)*Y(Sc45)*state.rho; + scratch = -screened_rates(k_Ca42_p_to_He4_K39_reaclib)*Y(Ca42)*state.rho - screened_rates(k_Ca42_p_to_Sc43_reaclib)*Y(Ca42)*state.rho + screened_rates(k_K41_p_to_Ca42_reaclib)*Y(K41)*state.rho + screened_rates(k_Sc45_p_to_He4_Ca42_reaclib)*Y(Sc45)*state.rho; jac.set(Ca42, H1, scratch); jac.set(Ca42, H2, 0.0); jac.set(Ca42, He3, 0.0); - scratch = screened_rates(k_He4_Ar38_to_Ca42_reaclib)*Y(Ar38)*state.rho + screened_rates(k_He4_Ar39_to_n_Ca42_reaclib)*Y(Ar39)*state.rho - screened_rates(k_He4_Ca42_to_Ti46_reaclib)*Y(Ca42)*state.rho - screened_rates(k_He4_Ca42_to_n_Ti45_reaclib)*Y(Ca42)*state.rho - screened_rates(k_He4_Ca42_to_p_Sc45_reaclib)*Y(Ca42)*state.rho + screened_rates(k_He4_K39_to_p_Ca42_reaclib)*Y(K39)*state.rho; + scratch = screened_rates(k_Ar38_He4_to_Ca42_reaclib)*Y(Ar38)*state.rho + screened_rates(k_Ar39_He4_to_n_Ca42_derived)*Y(Ar39)*state.rho - screened_rates(k_Ca42_He4_to_Ti46_reaclib)*Y(Ca42)*state.rho - screened_rates(k_Ca42_He4_to_n_Ti45_derived)*Y(Ca42)*state.rho - screened_rates(k_Ca42_He4_to_p_Sc45_derived)*Y(Ca42)*state.rho + screened_rates(k_K39_He4_to_p_Ca42_derived)*Y(K39)*state.rho; jac.set(Ca42, He4, scratch); jac.set(Ca42, Li6, 0.0); @@ -33996,10 +31805,10 @@ void jac_nuc(const burn_t& state, jac.set(Ca42, Ar37, 0.0); - scratch = screened_rates(k_He4_Ar38_to_Ca42_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ar38_He4_to_Ca42_reaclib)*Y(He4)*state.rho; jac.set(Ca42, Ar38, scratch); - scratch = screened_rates(k_He4_Ar39_to_n_Ca42_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ar39_He4_to_n_Ca42_derived)*Y(He4)*state.rho; jac.set(Ca42, Ar39, scratch); jac.set(Ca42, Ar40, 0.0); @@ -34008,23 +31817,23 @@ void jac_nuc(const burn_t& state, jac.set(Ca42, K38, 0.0); - scratch = screened_rates(k_He4_K39_to_p_Ca42_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_K39_He4_to_p_Ca42_derived)*Y(He4)*state.rho; jac.set(Ca42, K39, scratch); jac.set(Ca42, K40, 0.0); - scratch = screened_rates(k_p_K41_to_Ca42_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_K41_p_to_Ca42_reaclib)*Y(H1)*state.rho; jac.set(Ca42, K41, scratch); jac.set(Ca42, Ca40, 0.0); - scratch = screened_rates(k_n_Ca41_to_Ca42_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ca41_n_to_Ca42_reaclib)*Y(N)*state.rho; jac.set(Ca42, Ca41, scratch); - scratch = -screened_rates(k_Ca42_to_He4_Ar38_reaclib) - screened_rates(k_Ca42_to_n_Ca41_reaclib) - screened_rates(k_Ca42_to_p_K41_reaclib) - screened_rates(k_He4_Ca42_to_Ti46_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca42_to_n_Ti45_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca42_to_p_Sc45_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Ca42_to_Ca43_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ca42_to_He4_Ar39_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ca42_to_He4_K39_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ca42_to_Sc43_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ca42_He4_to_Ti46_reaclib)*Y(He4)*state.rho - screened_rates(k_Ca42_He4_to_n_Ti45_derived)*Y(He4)*state.rho - screened_rates(k_Ca42_He4_to_p_Sc45_derived)*Y(He4)*state.rho - screened_rates(k_Ca42_n_to_Ca43_reaclib)*Y(N)*state.rho - screened_rates(k_Ca42_n_to_He4_Ar39_reaclib)*Y(N)*state.rho - screened_rates(k_Ca42_p_to_He4_K39_reaclib)*Y(H1)*state.rho - screened_rates(k_Ca42_p_to_Sc43_reaclib)*Y(H1)*state.rho - screened_rates(k_Ca42_to_He4_Ar38_derived) - screened_rates(k_Ca42_to_n_Ca41_derived) - screened_rates(k_Ca42_to_p_K41_derived); jac.set(Ca42, Ca42, scratch); - scratch = screened_rates(k_Ca43_to_n_Ca42_reaclib); + scratch = screened_rates(k_Ca43_to_n_Ca42_derived); jac.set(Ca42, Ca43, scratch); jac.set(Ca42, Ca44, 0.0); @@ -34037,12 +31846,12 @@ void jac_nuc(const burn_t& state, jac.set(Ca42, Ca48, 0.0); - scratch = screened_rates(k_Sc43_to_p_Ca42_reaclib); + scratch = screened_rates(k_Sc43_to_p_Ca42_derived); jac.set(Ca42, Sc43, scratch); jac.set(Ca42, Sc44, 0.0); - scratch = screened_rates(k_p_Sc45_to_He4_Ca42_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc45_p_to_He4_Ca42_reaclib)*Y(H1)*state.rho; jac.set(Ca42, Sc45, scratch); jac.set(Ca42, Sc46, 0.0); @@ -34055,10 +31864,10 @@ void jac_nuc(const burn_t& state, jac.set(Ca42, Ti44, 0.0); - scratch = screened_rates(k_n_Ti45_to_He4_Ca42_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ti45_n_to_He4_Ca42_reaclib)*Y(N)*state.rho; jac.set(Ca42, Ti45, scratch); - scratch = screened_rates(k_Ti46_to_He4_Ca42_reaclib); + scratch = screened_rates(k_Ti46_to_He4_Ca42_derived); jac.set(Ca42, Ti46, scratch); jac.set(Ca42, Ti47, 0.0); @@ -34201,17 +32010,17 @@ void jac_nuc(const burn_t& state, jac.set(Ca42, Ge64, 0.0); - scratch = screened_rates(k_n_Ca42_to_Ca43_reaclib)*Y(Ca42)*state.rho - screened_rates(k_n_Ca43_to_Ca44_reaclib)*Y(Ca43)*state.rho - screened_rates(k_n_Ca43_to_He4_Ar40_reaclib)*Y(Ca43)*state.rho + screened_rates(k_n_Sc43_to_p_Ca43_reaclib)*Y(Sc43)*state.rho + screened_rates(k_n_Ti46_to_He4_Ca43_reaclib)*Y(Ti46)*state.rho; + scratch = screened_rates(k_Ca42_n_to_Ca43_reaclib)*Y(Ca42)*state.rho - screened_rates(k_Ca43_n_to_Ca44_reaclib)*Y(Ca43)*state.rho - screened_rates(k_Ca43_n_to_He4_Ar40_reaclib)*Y(Ca43)*state.rho + screened_rates(k_Sc43_n_to_p_Ca43_reaclib)*Y(Sc43)*state.rho + screened_rates(k_Ti46_n_to_He4_Ca43_derived)*Y(Ti46)*state.rho; jac.set(Ca43, N, scratch); - scratch = -screened_rates(k_p_Ca43_to_He4_K40_reaclib)*Y(Ca43)*state.rho - screened_rates(k_p_Ca43_to_Sc44_reaclib)*Y(Ca43)*state.rho - screened_rates(k_p_Ca43_to_n_Sc43_reaclib)*Y(Ca43)*state.rho + screened_rates(k_p_Sc46_to_He4_Ca43_reaclib)*Y(Sc46)*state.rho; + scratch = -screened_rates(k_Ca43_p_to_He4_K40_derived)*Y(Ca43)*state.rho - screened_rates(k_Ca43_p_to_Sc44_reaclib)*Y(Ca43)*state.rho - screened_rates(k_Ca43_p_to_n_Sc43_derived)*Y(Ca43)*state.rho + screened_rates(k_Sc46_p_to_He4_Ca43_reaclib)*Y(Sc46)*state.rho; jac.set(Ca43, H1, scratch); jac.set(Ca43, H2, 0.0); jac.set(Ca43, He3, 0.0); - scratch = screened_rates(k_He4_Ar39_to_Ca43_reaclib)*Y(Ar39)*state.rho + screened_rates(k_He4_Ar40_to_n_Ca43_reaclib)*Y(Ar40)*state.rho - screened_rates(k_He4_Ca43_to_Ti47_reaclib)*Y(Ca43)*state.rho - screened_rates(k_He4_Ca43_to_n_Ti46_reaclib)*Y(Ca43)*state.rho - screened_rates(k_He4_Ca43_to_p_Sc46_reaclib)*Y(Ca43)*state.rho + screened_rates(k_He4_K40_to_p_Ca43_reaclib)*Y(K40)*state.rho; + scratch = screened_rates(k_Ar39_He4_to_Ca43_reaclib)*Y(Ar39)*state.rho + screened_rates(k_Ar40_He4_to_n_Ca43_derived)*Y(Ar40)*state.rho - screened_rates(k_Ca43_He4_to_Ti47_reaclib)*Y(Ca43)*state.rho - screened_rates(k_Ca43_He4_to_n_Ti46_reaclib)*Y(Ca43)*state.rho - screened_rates(k_Ca43_He4_to_p_Sc46_derived)*Y(Ca43)*state.rho + screened_rates(k_K40_He4_to_p_Ca43_reaclib)*Y(K40)*state.rho; jac.set(Ca43, He4, scratch); jac.set(Ca43, Li6, 0.0); @@ -34332,10 +32141,10 @@ void jac_nuc(const burn_t& state, jac.set(Ca43, Ar38, 0.0); - scratch = screened_rates(k_He4_Ar39_to_Ca43_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ar39_He4_to_Ca43_reaclib)*Y(He4)*state.rho; jac.set(Ca43, Ar39, scratch); - scratch = screened_rates(k_He4_Ar40_to_n_Ca43_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ar40_He4_to_n_Ca43_derived)*Y(He4)*state.rho; jac.set(Ca43, Ar40, scratch); jac.set(Ca43, K37, 0.0); @@ -34344,7 +32153,7 @@ void jac_nuc(const burn_t& state, jac.set(Ca43, K39, 0.0); - scratch = screened_rates(k_He4_K40_to_p_Ca43_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_K40_He4_to_p_Ca43_reaclib)*Y(He4)*state.rho; jac.set(Ca43, K40, scratch); jac.set(Ca43, K41, 0.0); @@ -34353,13 +32162,13 @@ void jac_nuc(const burn_t& state, jac.set(Ca43, Ca41, 0.0); - scratch = screened_rates(k_n_Ca42_to_Ca43_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ca42_n_to_Ca43_reaclib)*Y(N)*state.rho; jac.set(Ca43, Ca42, scratch); - scratch = -screened_rates(k_Ca43_to_He4_Ar39_reaclib) - screened_rates(k_Ca43_to_Sc43_weaktab) - screened_rates(k_Ca43_to_n_Ca42_reaclib) - screened_rates(k_He4_Ca43_to_Ti47_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca43_to_n_Ti46_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca43_to_p_Sc46_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Ca43_to_Ca44_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ca43_to_He4_Ar40_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ca43_to_He4_K40_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ca43_to_Sc44_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ca43_to_n_Sc43_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ca43_He4_to_Ti47_reaclib)*Y(He4)*state.rho - screened_rates(k_Ca43_He4_to_n_Ti46_reaclib)*Y(He4)*state.rho - screened_rates(k_Ca43_He4_to_p_Sc46_derived)*Y(He4)*state.rho - screened_rates(k_Ca43_n_to_Ca44_reaclib)*Y(N)*state.rho - screened_rates(k_Ca43_n_to_He4_Ar40_reaclib)*Y(N)*state.rho - screened_rates(k_Ca43_p_to_He4_K40_derived)*Y(H1)*state.rho - screened_rates(k_Ca43_p_to_Sc44_reaclib)*Y(H1)*state.rho - screened_rates(k_Ca43_p_to_n_Sc43_derived)*Y(H1)*state.rho - screened_rates(k_Ca43_to_He4_Ar39_derived) - screened_rates(k_Ca43_to_Sc43_beta_neg_weaktab) - screened_rates(k_Ca43_to_n_Ca42_derived); jac.set(Ca43, Ca43, scratch); - scratch = screened_rates(k_Ca44_to_n_Ca43_reaclib); + scratch = screened_rates(k_Ca44_to_n_Ca43_derived); jac.set(Ca43, Ca44, scratch); jac.set(Ca43, Ca45, 0.0); @@ -34370,15 +32179,15 @@ void jac_nuc(const burn_t& state, jac.set(Ca43, Ca48, 0.0); - scratch = screened_rates(k_Sc43_to_Ca43_weaktab) + screened_rates(k_n_Sc43_to_p_Ca43_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Sc43_n_to_p_Ca43_reaclib)*Y(N)*state.rho + screened_rates(k_Sc43_to_Ca43_electron_capture_weaktab); jac.set(Ca43, Sc43, scratch); - scratch = screened_rates(k_Sc44_to_p_Ca43_reaclib); + scratch = screened_rates(k_Sc44_to_p_Ca43_derived); jac.set(Ca43, Sc44, scratch); jac.set(Ca43, Sc45, 0.0); - scratch = screened_rates(k_p_Sc46_to_He4_Ca43_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc46_p_to_He4_Ca43_reaclib)*Y(H1)*state.rho; jac.set(Ca43, Sc46, scratch); jac.set(Ca43, Sc47, 0.0); @@ -34391,10 +32200,10 @@ void jac_nuc(const burn_t& state, jac.set(Ca43, Ti45, 0.0); - scratch = screened_rates(k_n_Ti46_to_He4_Ca43_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ti46_n_to_He4_Ca43_derived)*Y(N)*state.rho; jac.set(Ca43, Ti46, scratch); - scratch = screened_rates(k_Ti47_to_He4_Ca43_reaclib); + scratch = screened_rates(k_Ti47_to_He4_Ca43_derived); jac.set(Ca43, Ti47, scratch); jac.set(Ca43, Ti48, 0.0); @@ -34535,17 +32344,17 @@ void jac_nuc(const burn_t& state, jac.set(Ca43, Ge64, 0.0); - scratch = screened_rates(k_n_Ca43_to_Ca44_reaclib)*Y(Ca43)*state.rho - screened_rates(k_n_Ca44_to_Ca45_reaclib)*Y(Ca44)*state.rho + screened_rates(k_n_Sc44_to_p_Ca44_reaclib)*Y(Sc44)*state.rho + screened_rates(k_n_Ti47_to_He4_Ca44_reaclib)*Y(Ti47)*state.rho; + scratch = screened_rates(k_Ca43_n_to_Ca44_reaclib)*Y(Ca43)*state.rho - screened_rates(k_Ca44_n_to_Ca45_reaclib)*Y(Ca44)*state.rho + screened_rates(k_Sc44_n_to_p_Ca44_reaclib)*Y(Sc44)*state.rho + screened_rates(k_Ti47_n_to_He4_Ca44_reaclib)*Y(Ti47)*state.rho; jac.set(Ca44, N, scratch); - scratch = -screened_rates(k_p_Ca44_to_He4_K41_reaclib)*Y(Ca44)*state.rho - screened_rates(k_p_Ca44_to_Sc45_reaclib)*Y(Ca44)*state.rho - screened_rates(k_p_Ca44_to_n_Sc44_reaclib)*Y(Ca44)*state.rho + screened_rates(k_p_Sc47_to_He4_Ca44_reaclib)*Y(Sc47)*state.rho; + scratch = -screened_rates(k_Ca44_p_to_He4_K41_derived)*Y(Ca44)*state.rho - screened_rates(k_Ca44_p_to_Sc45_reaclib)*Y(Ca44)*state.rho - screened_rates(k_Ca44_p_to_n_Sc44_derived)*Y(Ca44)*state.rho + screened_rates(k_Sc47_p_to_He4_Ca44_reaclib)*Y(Sc47)*state.rho; jac.set(Ca44, H1, scratch); jac.set(Ca44, H2, 0.0); jac.set(Ca44, He3, 0.0); - scratch = screened_rates(k_He4_Ar40_to_Ca44_reaclib)*Y(Ar40)*state.rho - screened_rates(k_He4_Ca44_to_Ti48_reaclib)*Y(Ca44)*state.rho - screened_rates(k_He4_Ca44_to_n_Ti47_reaclib)*Y(Ca44)*state.rho - screened_rates(k_He4_Ca44_to_p_Sc47_reaclib)*Y(Ca44)*state.rho + screened_rates(k_He4_K41_to_p_Ca44_reaclib)*Y(K41)*state.rho; + scratch = screened_rates(k_Ar40_He4_to_Ca44_reaclib)*Y(Ar40)*state.rho - screened_rates(k_Ca44_He4_to_Ti48_reaclib)*Y(Ca44)*state.rho - screened_rates(k_Ca44_He4_to_n_Ti47_derived)*Y(Ca44)*state.rho - screened_rates(k_Ca44_He4_to_p_Sc47_derived)*Y(Ca44)*state.rho + screened_rates(k_K41_He4_to_p_Ca44_reaclib)*Y(K41)*state.rho; jac.set(Ca44, He4, scratch); jac.set(Ca44, Li6, 0.0); @@ -34668,7 +32477,7 @@ void jac_nuc(const burn_t& state, jac.set(Ca44, Ar39, 0.0); - scratch = screened_rates(k_He4_Ar40_to_Ca44_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ar40_He4_to_Ca44_reaclib)*Y(He4)*state.rho; jac.set(Ca44, Ar40, scratch); jac.set(Ca44, K37, 0.0); @@ -34679,7 +32488,7 @@ void jac_nuc(const burn_t& state, jac.set(Ca44, K40, 0.0); - scratch = screened_rates(k_He4_K41_to_p_Ca44_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_K41_He4_to_p_Ca44_reaclib)*Y(He4)*state.rho; jac.set(Ca44, K41, scratch); jac.set(Ca44, Ca40, 0.0); @@ -34688,13 +32497,13 @@ void jac_nuc(const burn_t& state, jac.set(Ca44, Ca42, 0.0); - scratch = screened_rates(k_n_Ca43_to_Ca44_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ca43_n_to_Ca44_reaclib)*Y(N)*state.rho; jac.set(Ca44, Ca43, scratch); - scratch = -screened_rates(k_Ca44_to_He4_Ar40_reaclib) - screened_rates(k_Ca44_to_Sc44_weaktab) - screened_rates(k_Ca44_to_n_Ca43_reaclib) - screened_rates(k_He4_Ca44_to_Ti48_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca44_to_n_Ti47_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca44_to_p_Sc47_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Ca44_to_Ca45_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ca44_to_He4_K41_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ca44_to_Sc45_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ca44_to_n_Sc44_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ca44_He4_to_Ti48_reaclib)*Y(He4)*state.rho - screened_rates(k_Ca44_He4_to_n_Ti47_derived)*Y(He4)*state.rho - screened_rates(k_Ca44_He4_to_p_Sc47_derived)*Y(He4)*state.rho - screened_rates(k_Ca44_n_to_Ca45_reaclib)*Y(N)*state.rho - screened_rates(k_Ca44_p_to_He4_K41_derived)*Y(H1)*state.rho - screened_rates(k_Ca44_p_to_Sc45_reaclib)*Y(H1)*state.rho - screened_rates(k_Ca44_p_to_n_Sc44_derived)*Y(H1)*state.rho - screened_rates(k_Ca44_to_He4_Ar40_derived) - screened_rates(k_Ca44_to_Sc44_beta_neg_weaktab) - screened_rates(k_Ca44_to_n_Ca43_derived); jac.set(Ca44, Ca44, scratch); - scratch = screened_rates(k_Ca45_to_n_Ca44_reaclib); + scratch = screened_rates(k_Ca45_to_n_Ca44_derived); jac.set(Ca44, Ca45, scratch); jac.set(Ca44, Ca46, 0.0); @@ -34705,15 +32514,15 @@ void jac_nuc(const burn_t& state, jac.set(Ca44, Sc43, 0.0); - scratch = screened_rates(k_Sc44_to_Ca44_weaktab) + screened_rates(k_n_Sc44_to_p_Ca44_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Sc44_n_to_p_Ca44_reaclib)*Y(N)*state.rho + screened_rates(k_Sc44_to_Ca44_electron_capture_weaktab); jac.set(Ca44, Sc44, scratch); - scratch = screened_rates(k_Sc45_to_p_Ca44_reaclib); + scratch = screened_rates(k_Sc45_to_p_Ca44_derived); jac.set(Ca44, Sc45, scratch); jac.set(Ca44, Sc46, 0.0); - scratch = screened_rates(k_p_Sc47_to_He4_Ca44_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc47_p_to_He4_Ca44_reaclib)*Y(H1)*state.rho; jac.set(Ca44, Sc47, scratch); jac.set(Ca44, Sc48, 0.0); @@ -34726,10 +32535,10 @@ void jac_nuc(const burn_t& state, jac.set(Ca44, Ti46, 0.0); - scratch = screened_rates(k_n_Ti47_to_He4_Ca44_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ti47_n_to_He4_Ca44_reaclib)*Y(N)*state.rho; jac.set(Ca44, Ti47, scratch); - scratch = screened_rates(k_Ti48_to_He4_Ca44_reaclib); + scratch = screened_rates(k_Ti48_to_He4_Ca44_derived); jac.set(Ca44, Ti48, scratch); jac.set(Ca44, Ti49, 0.0); @@ -34868,17 +32677,17 @@ void jac_nuc(const burn_t& state, jac.set(Ca44, Ge64, 0.0); - scratch = screened_rates(k_n_Ca44_to_Ca45_reaclib)*Y(Ca44)*state.rho - screened_rates(k_n_Ca45_to_Ca46_reaclib)*Y(Ca45)*state.rho + screened_rates(k_n_Sc45_to_p_Ca45_reaclib)*Y(Sc45)*state.rho + screened_rates(k_n_Ti48_to_He4_Ca45_reaclib)*Y(Ti48)*state.rho; + scratch = screened_rates(k_Ca44_n_to_Ca45_reaclib)*Y(Ca44)*state.rho - screened_rates(k_Ca45_n_to_Ca46_reaclib)*Y(Ca45)*state.rho + screened_rates(k_Sc45_n_to_p_Ca45_reaclib)*Y(Sc45)*state.rho + screened_rates(k_Ti48_n_to_He4_Ca45_derived)*Y(Ti48)*state.rho; jac.set(Ca45, N, scratch); - scratch = -screened_rates(k_p_Ca45_to_Sc46_reaclib)*Y(Ca45)*state.rho - screened_rates(k_p_Ca45_to_n_Sc45_reaclib)*Y(Ca45)*state.rho + screened_rates(k_p_Sc48_to_He4_Ca45_reaclib)*Y(Sc48)*state.rho; + scratch = -screened_rates(k_Ca45_p_to_Sc46_reaclib)*Y(Ca45)*state.rho - screened_rates(k_Ca45_p_to_n_Sc45_derived)*Y(Ca45)*state.rho + screened_rates(k_Sc48_p_to_He4_Ca45_reaclib)*Y(Sc48)*state.rho; jac.set(Ca45, H1, scratch); jac.set(Ca45, H2, 0.0); jac.set(Ca45, He3, 0.0); - scratch = -screened_rates(k_He4_Ca45_to_Ti49_reaclib)*Y(Ca45)*state.rho - screened_rates(k_He4_Ca45_to_n_Ti48_reaclib)*Y(Ca45)*state.rho - screened_rates(k_He4_Ca45_to_p_Sc48_reaclib)*Y(Ca45)*state.rho; + scratch = -screened_rates(k_Ca45_He4_to_Ti49_reaclib)*Y(Ca45)*state.rho - screened_rates(k_Ca45_He4_to_n_Ti48_reaclib)*Y(Ca45)*state.rho - screened_rates(k_Ca45_He4_to_p_Sc48_derived)*Y(Ca45)*state.rho; jac.set(Ca45, He4, scratch); jac.set(Ca45, Li6, 0.0); @@ -35021,13 +32830,13 @@ void jac_nuc(const burn_t& state, jac.set(Ca45, Ca43, 0.0); - scratch = screened_rates(k_n_Ca44_to_Ca45_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ca44_n_to_Ca45_reaclib)*Y(N)*state.rho; jac.set(Ca45, Ca44, scratch); - scratch = -screened_rates(k_Ca45_to_Sc45_weaktab) - screened_rates(k_Ca45_to_n_Ca44_reaclib) - screened_rates(k_He4_Ca45_to_Ti49_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca45_to_n_Ti48_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca45_to_p_Sc48_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Ca45_to_Ca46_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ca45_to_Sc46_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ca45_to_n_Sc45_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ca45_He4_to_Ti49_reaclib)*Y(He4)*state.rho - screened_rates(k_Ca45_He4_to_n_Ti48_reaclib)*Y(He4)*state.rho - screened_rates(k_Ca45_He4_to_p_Sc48_derived)*Y(He4)*state.rho - screened_rates(k_Ca45_n_to_Ca46_reaclib)*Y(N)*state.rho - screened_rates(k_Ca45_p_to_Sc46_reaclib)*Y(H1)*state.rho - screened_rates(k_Ca45_p_to_n_Sc45_derived)*Y(H1)*state.rho - screened_rates(k_Ca45_to_Sc45_beta_neg_weaktab) - screened_rates(k_Ca45_to_n_Ca44_derived); jac.set(Ca45, Ca45, scratch); - scratch = screened_rates(k_Ca46_to_n_Ca45_reaclib); + scratch = screened_rates(k_Ca46_to_n_Ca45_derived); jac.set(Ca45, Ca46, scratch); jac.set(Ca45, Ca47, 0.0); @@ -35038,15 +32847,15 @@ void jac_nuc(const burn_t& state, jac.set(Ca45, Sc44, 0.0); - scratch = screened_rates(k_Sc45_to_Ca45_weaktab) + screened_rates(k_n_Sc45_to_p_Ca45_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Sc45_n_to_p_Ca45_reaclib)*Y(N)*state.rho + screened_rates(k_Sc45_to_Ca45_electron_capture_weaktab); jac.set(Ca45, Sc45, scratch); - scratch = screened_rates(k_Sc46_to_p_Ca45_reaclib); + scratch = screened_rates(k_Sc46_to_p_Ca45_derived); jac.set(Ca45, Sc46, scratch); jac.set(Ca45, Sc47, 0.0); - scratch = screened_rates(k_p_Sc48_to_He4_Ca45_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc48_p_to_He4_Ca45_reaclib)*Y(H1)*state.rho; jac.set(Ca45, Sc48, scratch); jac.set(Ca45, Sc49, 0.0); @@ -35059,10 +32868,10 @@ void jac_nuc(const burn_t& state, jac.set(Ca45, Ti47, 0.0); - scratch = screened_rates(k_n_Ti48_to_He4_Ca45_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ti48_n_to_He4_Ca45_derived)*Y(N)*state.rho; jac.set(Ca45, Ti48, scratch); - scratch = screened_rates(k_Ti49_to_He4_Ca45_reaclib); + scratch = screened_rates(k_Ti49_to_He4_Ca45_derived); jac.set(Ca45, Ti49, scratch); jac.set(Ca45, Ti50, 0.0); @@ -35199,17 +33008,17 @@ void jac_nuc(const burn_t& state, jac.set(Ca45, Ge64, 0.0); - scratch = screened_rates(k_n_Ca45_to_Ca46_reaclib)*Y(Ca45)*state.rho - screened_rates(k_n_Ca46_to_Ca47_reaclib)*Y(Ca46)*state.rho + screened_rates(k_n_Sc46_to_p_Ca46_reaclib)*Y(Sc46)*state.rho + screened_rates(k_n_Ti49_to_He4_Ca46_reaclib)*Y(Ti49)*state.rho; + scratch = screened_rates(k_Ca45_n_to_Ca46_reaclib)*Y(Ca45)*state.rho - screened_rates(k_Ca46_n_to_Ca47_reaclib)*Y(Ca46)*state.rho + screened_rates(k_Sc46_n_to_p_Ca46_reaclib)*Y(Sc46)*state.rho + screened_rates(k_Ti49_n_to_He4_Ca46_reaclib)*Y(Ti49)*state.rho; jac.set(Ca46, N, scratch); - scratch = -screened_rates(k_p_Ca46_to_Sc47_reaclib)*Y(Ca46)*state.rho - screened_rates(k_p_Ca46_to_n_Sc46_reaclib)*Y(Ca46)*state.rho + screened_rates(k_p_Sc49_to_He4_Ca46_reaclib)*Y(Sc49)*state.rho; + scratch = -screened_rates(k_Ca46_p_to_Sc47_reaclib)*Y(Ca46)*state.rho - screened_rates(k_Ca46_p_to_n_Sc46_derived)*Y(Ca46)*state.rho + screened_rates(k_Sc49_p_to_He4_Ca46_reaclib)*Y(Sc49)*state.rho; jac.set(Ca46, H1, scratch); jac.set(Ca46, H2, 0.0); jac.set(Ca46, He3, 0.0); - scratch = -screened_rates(k_He4_Ca46_to_Ti50_reaclib)*Y(Ca46)*state.rho - screened_rates(k_He4_Ca46_to_n_Ti49_reaclib)*Y(Ca46)*state.rho - screened_rates(k_He4_Ca46_to_p_Sc49_reaclib)*Y(Ca46)*state.rho; + scratch = -screened_rates(k_Ca46_He4_to_Ti50_reaclib)*Y(Ca46)*state.rho - screened_rates(k_Ca46_He4_to_n_Ti49_derived)*Y(Ca46)*state.rho - screened_rates(k_Ca46_He4_to_p_Sc49_derived)*Y(Ca46)*state.rho; jac.set(Ca46, He4, scratch); jac.set(Ca46, Li6, 0.0); @@ -35354,13 +33163,13 @@ void jac_nuc(const burn_t& state, jac.set(Ca46, Ca44, 0.0); - scratch = screened_rates(k_n_Ca45_to_Ca46_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ca45_n_to_Ca46_reaclib)*Y(N)*state.rho; jac.set(Ca46, Ca45, scratch); - scratch = -screened_rates(k_Ca46_to_Sc46_weaktab) - screened_rates(k_Ca46_to_n_Ca45_reaclib) - screened_rates(k_He4_Ca46_to_Ti50_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca46_to_n_Ti49_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca46_to_p_Sc49_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Ca46_to_Ca47_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ca46_to_Sc47_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ca46_to_n_Sc46_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ca46_He4_to_Ti50_reaclib)*Y(He4)*state.rho - screened_rates(k_Ca46_He4_to_n_Ti49_derived)*Y(He4)*state.rho - screened_rates(k_Ca46_He4_to_p_Sc49_derived)*Y(He4)*state.rho - screened_rates(k_Ca46_n_to_Ca47_reaclib)*Y(N)*state.rho - screened_rates(k_Ca46_p_to_Sc47_reaclib)*Y(H1)*state.rho - screened_rates(k_Ca46_p_to_n_Sc46_derived)*Y(H1)*state.rho - screened_rates(k_Ca46_to_Sc46_beta_neg_weaktab) - screened_rates(k_Ca46_to_n_Ca45_derived); jac.set(Ca46, Ca46, scratch); - scratch = screened_rates(k_Ca47_to_n_Ca46_reaclib); + scratch = screened_rates(k_Ca47_to_n_Ca46_derived); jac.set(Ca46, Ca47, scratch); jac.set(Ca46, Ca48, 0.0); @@ -35371,15 +33180,15 @@ void jac_nuc(const burn_t& state, jac.set(Ca46, Sc45, 0.0); - scratch = screened_rates(k_Sc46_to_Ca46_weaktab) + screened_rates(k_n_Sc46_to_p_Ca46_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Sc46_n_to_p_Ca46_reaclib)*Y(N)*state.rho + screened_rates(k_Sc46_to_Ca46_electron_capture_weaktab); jac.set(Ca46, Sc46, scratch); - scratch = screened_rates(k_Sc47_to_p_Ca46_reaclib); + scratch = screened_rates(k_Sc47_to_p_Ca46_derived); jac.set(Ca46, Sc47, scratch); jac.set(Ca46, Sc48, 0.0); - scratch = screened_rates(k_p_Sc49_to_He4_Ca46_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc49_p_to_He4_Ca46_reaclib)*Y(H1)*state.rho; jac.set(Ca46, Sc49, scratch); jac.set(Ca46, Ti44, 0.0); @@ -35392,10 +33201,10 @@ void jac_nuc(const burn_t& state, jac.set(Ca46, Ti48, 0.0); - scratch = screened_rates(k_n_Ti49_to_He4_Ca46_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ti49_n_to_He4_Ca46_reaclib)*Y(N)*state.rho; jac.set(Ca46, Ti49, scratch); - scratch = screened_rates(k_Ti50_to_He4_Ca46_reaclib); + scratch = screened_rates(k_Ti50_to_He4_Ca46_derived); jac.set(Ca46, Ti50, scratch); jac.set(Ca46, Ti51, 0.0); @@ -35530,17 +33339,17 @@ void jac_nuc(const burn_t& state, jac.set(Ca46, Ge64, 0.0); - scratch = screened_rates(k_n_Ca46_to_Ca47_reaclib)*Y(Ca46)*state.rho - screened_rates(k_n_Ca47_to_Ca48_reaclib)*Y(Ca47)*state.rho + screened_rates(k_n_Sc47_to_p_Ca47_reaclib)*Y(Sc47)*state.rho + screened_rates(k_n_Ti50_to_He4_Ca47_reaclib)*Y(Ti50)*state.rho; + scratch = screened_rates(k_Ca46_n_to_Ca47_reaclib)*Y(Ca46)*state.rho - screened_rates(k_Ca47_n_to_Ca48_reaclib)*Y(Ca47)*state.rho + screened_rates(k_Sc47_n_to_p_Ca47_derived)*Y(Sc47)*state.rho + screened_rates(k_Ti50_n_to_He4_Ca47_derived)*Y(Ti50)*state.rho; jac.set(Ca47, N, scratch); - scratch = -screened_rates(k_p_Ca47_to_Sc48_reaclib)*Y(Ca47)*state.rho - screened_rates(k_p_Ca47_to_n_Sc47_reaclib)*Y(Ca47)*state.rho; + scratch = -screened_rates(k_Ca47_p_to_Sc48_reaclib)*Y(Ca47)*state.rho - screened_rates(k_Ca47_p_to_n_Sc47_reaclib)*Y(Ca47)*state.rho; jac.set(Ca47, H1, scratch); jac.set(Ca47, H2, 0.0); jac.set(Ca47, He3, 0.0); - scratch = -screened_rates(k_He4_Ca47_to_Ti51_reaclib)*Y(Ca47)*state.rho - screened_rates(k_He4_Ca47_to_n_Ti50_reaclib)*Y(Ca47)*state.rho; + scratch = -screened_rates(k_Ca47_He4_to_Ti51_reaclib)*Y(Ca47)*state.rho - screened_rates(k_Ca47_He4_to_n_Ti50_reaclib)*Y(Ca47)*state.rho; jac.set(Ca47, He4, scratch); jac.set(Ca47, Li6, 0.0); @@ -35687,13 +33496,13 @@ void jac_nuc(const burn_t& state, jac.set(Ca47, Ca45, 0.0); - scratch = screened_rates(k_n_Ca46_to_Ca47_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ca46_n_to_Ca47_reaclib)*Y(N)*state.rho; jac.set(Ca47, Ca46, scratch); - scratch = -screened_rates(k_Ca47_to_Sc47_weaktab) - screened_rates(k_Ca47_to_n_Ca46_reaclib) - screened_rates(k_He4_Ca47_to_Ti51_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ca47_to_n_Ti50_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Ca47_to_Ca48_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ca47_to_Sc48_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ca47_to_n_Sc47_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ca47_He4_to_Ti51_reaclib)*Y(He4)*state.rho - screened_rates(k_Ca47_He4_to_n_Ti50_reaclib)*Y(He4)*state.rho - screened_rates(k_Ca47_n_to_Ca48_reaclib)*Y(N)*state.rho - screened_rates(k_Ca47_p_to_Sc48_reaclib)*Y(H1)*state.rho - screened_rates(k_Ca47_p_to_n_Sc47_reaclib)*Y(H1)*state.rho - screened_rates(k_Ca47_to_Sc47_beta_neg_weaktab) - screened_rates(k_Ca47_to_n_Ca46_derived); jac.set(Ca47, Ca47, scratch); - scratch = screened_rates(k_Ca48_to_n_Ca47_reaclib); + scratch = screened_rates(k_Ca48_to_n_Ca47_derived); jac.set(Ca47, Ca48, scratch); jac.set(Ca47, Sc43, 0.0); @@ -35704,10 +33513,10 @@ void jac_nuc(const burn_t& state, jac.set(Ca47, Sc46, 0.0); - scratch = screened_rates(k_Sc47_to_Ca47_weaktab) + screened_rates(k_n_Sc47_to_p_Ca47_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Sc47_n_to_p_Ca47_derived)*Y(N)*state.rho + screened_rates(k_Sc47_to_Ca47_electron_capture_weaktab); jac.set(Ca47, Sc47, scratch); - scratch = screened_rates(k_Sc48_to_p_Ca47_reaclib); + scratch = screened_rates(k_Sc48_to_p_Ca47_derived); jac.set(Ca47, Sc48, scratch); jac.set(Ca47, Sc49, 0.0); @@ -35724,10 +33533,10 @@ void jac_nuc(const burn_t& state, jac.set(Ca47, Ti49, 0.0); - scratch = screened_rates(k_n_Ti50_to_He4_Ca47_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ti50_n_to_He4_Ca47_derived)*Y(N)*state.rho; jac.set(Ca47, Ti50, scratch); - scratch = screened_rates(k_Ti51_to_He4_Ca47_reaclib); + scratch = screened_rates(k_Ti51_to_He4_Ca47_derived); jac.set(Ca47, Ti51, scratch); jac.set(Ca47, V46, 0.0); @@ -35860,17 +33669,17 @@ void jac_nuc(const burn_t& state, jac.set(Ca47, Ge64, 0.0); - scratch = screened_rates(k_n_Ca47_to_Ca48_reaclib)*Y(Ca47)*state.rho + screened_rates(k_n_Sc48_to_p_Ca48_reaclib)*Y(Sc48)*state.rho + screened_rates(k_n_Ti51_to_He4_Ca48_reaclib)*Y(Ti51)*state.rho; + scratch = screened_rates(k_Ca47_n_to_Ca48_reaclib)*Y(Ca47)*state.rho + screened_rates(k_Sc48_n_to_p_Ca48_reaclib)*Y(Sc48)*state.rho + screened_rates(k_Ti51_n_to_He4_Ca48_reaclib)*Y(Ti51)*state.rho; jac.set(Ca48, N, scratch); - scratch = -screened_rates(k_p_Ca48_to_Sc49_reaclib)*Y(Ca48)*state.rho - screened_rates(k_p_Ca48_to_n_Sc48_reaclib)*Y(Ca48)*state.rho; + scratch = -screened_rates(k_Ca48_p_to_Sc49_reaclib)*Y(Ca48)*state.rho - screened_rates(k_Ca48_p_to_n_Sc48_derived)*Y(Ca48)*state.rho; jac.set(Ca48, H1, scratch); jac.set(Ca48, H2, 0.0); jac.set(Ca48, He3, 0.0); - scratch = -screened_rates(k_He4_Ca48_to_n_Ti51_reaclib)*Y(Ca48)*state.rho; + scratch = -screened_rates(k_Ca48_He4_to_n_Ti51_derived)*Y(Ca48)*state.rho; jac.set(Ca48, He4, scratch); jac.set(Ca48, Li6, 0.0); @@ -36019,10 +33828,10 @@ void jac_nuc(const burn_t& state, jac.set(Ca48, Ca46, 0.0); - scratch = screened_rates(k_n_Ca47_to_Ca48_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ca47_n_to_Ca48_reaclib)*Y(N)*state.rho; jac.set(Ca48, Ca47, scratch); - scratch = -screened_rates(k_Ca48_to_Sc48_weaktab) - screened_rates(k_Ca48_to_n_Ca47_reaclib) - screened_rates(k_He4_Ca48_to_n_Ti51_reaclib)*Y(He4)*state.rho - screened_rates(k_p_Ca48_to_Sc49_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ca48_to_n_Sc48_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ca48_He4_to_n_Ti51_derived)*Y(He4)*state.rho - screened_rates(k_Ca48_p_to_Sc49_reaclib)*Y(H1)*state.rho - screened_rates(k_Ca48_p_to_n_Sc48_derived)*Y(H1)*state.rho - screened_rates(k_Ca48_to_Sc48_beta_neg_weaktab) - screened_rates(k_Ca48_to_n_Ca47_derived); jac.set(Ca48, Ca48, scratch); jac.set(Ca48, Sc43, 0.0); @@ -36035,10 +33844,10 @@ void jac_nuc(const burn_t& state, jac.set(Ca48, Sc47, 0.0); - scratch = screened_rates(k_Sc48_to_Ca48_weaktab) + screened_rates(k_n_Sc48_to_p_Ca48_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Sc48_n_to_p_Ca48_reaclib)*Y(N)*state.rho + screened_rates(k_Sc48_to_Ca48_electron_capture_weaktab); jac.set(Ca48, Sc48, scratch); - scratch = screened_rates(k_Sc49_to_p_Ca48_reaclib); + scratch = screened_rates(k_Sc49_to_p_Ca48_derived); jac.set(Ca48, Sc49, scratch); jac.set(Ca48, Ti44, 0.0); @@ -36055,7 +33864,7 @@ void jac_nuc(const burn_t& state, jac.set(Ca48, Ti50, 0.0); - scratch = screened_rates(k_n_Ti51_to_He4_Ca48_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ti51_n_to_He4_Ca48_reaclib)*Y(N)*state.rho; jac.set(Ca48, Ti51, scratch); jac.set(Ca48, V46, 0.0); @@ -36188,17 +33997,17 @@ void jac_nuc(const burn_t& state, jac.set(Ca48, Ge64, 0.0); - scratch = -screened_rates(k_n_Sc43_to_He4_K40_reaclib)*Y(Sc43)*state.rho - screened_rates(k_n_Sc43_to_Sc44_reaclib)*Y(Sc43)*state.rho - screened_rates(k_n_Sc43_to_p_Ca43_reaclib)*Y(Sc43)*state.rho + screened_rates(k_n_V46_to_He4_Sc43_reaclib)*Y(V46)*state.rho; + scratch = -screened_rates(k_Sc43_n_to_He4_K40_reaclib)*Y(Sc43)*state.rho - screened_rates(k_Sc43_n_to_Sc44_reaclib)*Y(Sc43)*state.rho - screened_rates(k_Sc43_n_to_p_Ca43_reaclib)*Y(Sc43)*state.rho + screened_rates(k_V46_n_to_He4_Sc43_reaclib)*Y(V46)*state.rho; jac.set(Sc43, N, scratch); - scratch = screened_rates(k_p_Ca42_to_Sc43_reaclib)*Y(Ca42)*state.rho + screened_rates(k_p_Ca43_to_n_Sc43_reaclib)*Y(Ca43)*state.rho - screened_rates(k_p_Sc43_to_He4_Ca40_reaclib)*Y(Sc43)*state.rho - screened_rates(k_p_Sc43_to_Ti44_reaclib)*Y(Sc43)*state.rho + screened_rates(k_p_Ti46_to_He4_Sc43_reaclib)*Y(Ti46)*state.rho; + scratch = screened_rates(k_Ca42_p_to_Sc43_reaclib)*Y(Ca42)*state.rho + screened_rates(k_Ca43_p_to_n_Sc43_derived)*Y(Ca43)*state.rho - screened_rates(k_Sc43_p_to_He4_Ca40_reaclib)*Y(Sc43)*state.rho - screened_rates(k_Sc43_p_to_Ti44_reaclib)*Y(Sc43)*state.rho + screened_rates(k_Ti46_p_to_He4_Sc43_derived)*Y(Ti46)*state.rho; jac.set(Sc43, H1, scratch); jac.set(Sc43, H2, 0.0); jac.set(Sc43, He3, 0.0); - scratch = screened_rates(k_He4_Ca40_to_p_Sc43_reaclib)*Y(Ca40)*state.rho + screened_rates(k_He4_K39_to_Sc43_reaclib)*Y(K39)*state.rho + screened_rates(k_He4_K40_to_n_Sc43_reaclib)*Y(K40)*state.rho - screened_rates(k_He4_Sc43_to_V47_reaclib)*Y(Sc43)*state.rho - screened_rates(k_He4_Sc43_to_n_V46_reaclib)*Y(Sc43)*state.rho - screened_rates(k_He4_Sc43_to_p_Ti46_reaclib)*Y(Sc43)*state.rho; + scratch = screened_rates(k_Ca40_He4_to_p_Sc43_derived)*Y(Ca40)*state.rho + screened_rates(k_K39_He4_to_Sc43_reaclib)*Y(K39)*state.rho + screened_rates(k_K40_He4_to_n_Sc43_derived)*Y(K40)*state.rho - screened_rates(k_Sc43_He4_to_V47_reaclib)*Y(Sc43)*state.rho - screened_rates(k_Sc43_He4_to_n_V46_derived)*Y(Sc43)*state.rho - screened_rates(k_Sc43_He4_to_p_Ti46_reaclib)*Y(Sc43)*state.rho; jac.set(Sc43, He4, scratch); jac.set(Sc43, Li6, 0.0); @@ -36327,23 +34136,23 @@ void jac_nuc(const burn_t& state, jac.set(Sc43, K38, 0.0); - scratch = screened_rates(k_He4_K39_to_Sc43_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_K39_He4_to_Sc43_reaclib)*Y(He4)*state.rho; jac.set(Sc43, K39, scratch); - scratch = screened_rates(k_He4_K40_to_n_Sc43_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_K40_He4_to_n_Sc43_derived)*Y(He4)*state.rho; jac.set(Sc43, K40, scratch); jac.set(Sc43, K41, 0.0); - scratch = screened_rates(k_He4_Ca40_to_p_Sc43_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ca40_He4_to_p_Sc43_derived)*Y(He4)*state.rho; jac.set(Sc43, Ca40, scratch); jac.set(Sc43, Ca41, 0.0); - scratch = screened_rates(k_p_Ca42_to_Sc43_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca42_p_to_Sc43_reaclib)*Y(H1)*state.rho; jac.set(Sc43, Ca42, scratch); - scratch = screened_rates(k_Ca43_to_Sc43_weaktab) + screened_rates(k_p_Ca43_to_n_Sc43_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca43_p_to_n_Sc43_derived)*Y(H1)*state.rho + screened_rates(k_Ca43_to_Sc43_beta_neg_weaktab); jac.set(Sc43, Ca43, scratch); jac.set(Sc43, Ca44, 0.0); @@ -36356,10 +34165,10 @@ void jac_nuc(const burn_t& state, jac.set(Sc43, Ca48, 0.0); - scratch = -screened_rates(k_He4_Sc43_to_V47_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Sc43_to_n_V46_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Sc43_to_p_Ti46_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc43_to_Ca43_weaktab) - screened_rates(k_Sc43_to_He4_K39_reaclib) - screened_rates(k_Sc43_to_p_Ca42_reaclib) - screened_rates(k_n_Sc43_to_He4_K40_reaclib)*Y(N)*state.rho - screened_rates(k_n_Sc43_to_Sc44_reaclib)*Y(N)*state.rho - screened_rates(k_n_Sc43_to_p_Ca43_reaclib)*Y(N)*state.rho - screened_rates(k_p_Sc43_to_He4_Ca40_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc43_to_Ti44_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Sc43_He4_to_V47_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc43_He4_to_n_V46_derived)*Y(He4)*state.rho - screened_rates(k_Sc43_He4_to_p_Ti46_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc43_n_to_He4_K40_reaclib)*Y(N)*state.rho - screened_rates(k_Sc43_n_to_Sc44_reaclib)*Y(N)*state.rho - screened_rates(k_Sc43_n_to_p_Ca43_reaclib)*Y(N)*state.rho - screened_rates(k_Sc43_p_to_He4_Ca40_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc43_p_to_Ti44_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc43_to_Ca43_electron_capture_weaktab) - screened_rates(k_Sc43_to_He4_K39_derived) - screened_rates(k_Sc43_to_p_Ca42_derived); jac.set(Sc43, Sc43, scratch); - scratch = screened_rates(k_Sc44_to_n_Sc43_reaclib); + scratch = screened_rates(k_Sc44_to_n_Sc43_derived); jac.set(Sc43, Sc44, scratch); jac.set(Sc43, Sc45, 0.0); @@ -36372,12 +34181,12 @@ void jac_nuc(const burn_t& state, jac.set(Sc43, Sc49, 0.0); - scratch = screened_rates(k_Ti44_to_p_Sc43_reaclib); + scratch = screened_rates(k_Ti44_to_p_Sc43_derived); jac.set(Sc43, Ti44, scratch); jac.set(Sc43, Ti45, 0.0); - scratch = screened_rates(k_p_Ti46_to_He4_Sc43_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti46_p_to_He4_Sc43_derived)*Y(H1)*state.rho; jac.set(Sc43, Ti46, scratch); jac.set(Sc43, Ti47, 0.0); @@ -36390,10 +34199,10 @@ void jac_nuc(const burn_t& state, jac.set(Sc43, Ti51, 0.0); - scratch = screened_rates(k_n_V46_to_He4_Sc43_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_V46_n_to_He4_Sc43_reaclib)*Y(N)*state.rho; jac.set(Sc43, V46, scratch); - scratch = screened_rates(k_V47_to_He4_Sc43_reaclib); + scratch = screened_rates(k_V47_to_He4_Sc43_derived); jac.set(Sc43, V47, scratch); jac.set(Sc43, V48, 0.0); @@ -36522,17 +34331,17 @@ void jac_nuc(const burn_t& state, jac.set(Sc43, Ge64, 0.0); - scratch = screened_rates(k_n_Sc43_to_Sc44_reaclib)*Y(Sc43)*state.rho - screened_rates(k_n_Sc44_to_He4_K41_reaclib)*Y(Sc44)*state.rho - screened_rates(k_n_Sc44_to_Sc45_reaclib)*Y(Sc44)*state.rho - screened_rates(k_n_Sc44_to_p_Ca44_reaclib)*Y(Sc44)*state.rho + screened_rates(k_n_Ti44_to_p_Sc44_reaclib)*Y(Ti44)*state.rho + screened_rates(k_n_V47_to_He4_Sc44_reaclib)*Y(V47)*state.rho; + scratch = screened_rates(k_Sc43_n_to_Sc44_reaclib)*Y(Sc43)*state.rho - screened_rates(k_Sc44_n_to_He4_K41_derived)*Y(Sc44)*state.rho - screened_rates(k_Sc44_n_to_Sc45_reaclib)*Y(Sc44)*state.rho - screened_rates(k_Sc44_n_to_p_Ca44_reaclib)*Y(Sc44)*state.rho + screened_rates(k_Ti44_n_to_p_Sc44_reaclib)*Y(Ti44)*state.rho + screened_rates(k_V47_n_to_He4_Sc44_reaclib)*Y(V47)*state.rho; jac.set(Sc44, N, scratch); - scratch = screened_rates(k_p_Ca43_to_Sc44_reaclib)*Y(Ca43)*state.rho + screened_rates(k_p_Ca44_to_n_Sc44_reaclib)*Y(Ca44)*state.rho - screened_rates(k_p_Sc44_to_He4_Ca41_reaclib)*Y(Sc44)*state.rho - screened_rates(k_p_Sc44_to_Ti45_reaclib)*Y(Sc44)*state.rho - screened_rates(k_p_Sc44_to_n_Ti44_reaclib)*Y(Sc44)*state.rho + screened_rates(k_p_Ti47_to_He4_Sc44_reaclib)*Y(Ti47)*state.rho; + scratch = screened_rates(k_Ca43_p_to_Sc44_reaclib)*Y(Ca43)*state.rho + screened_rates(k_Ca44_p_to_n_Sc44_derived)*Y(Ca44)*state.rho - screened_rates(k_Sc44_p_to_He4_Ca41_reaclib)*Y(Sc44)*state.rho - screened_rates(k_Sc44_p_to_Ti45_reaclib)*Y(Sc44)*state.rho - screened_rates(k_Sc44_p_to_n_Ti44_derived)*Y(Sc44)*state.rho + screened_rates(k_Ti47_p_to_He4_Sc44_derived)*Y(Ti47)*state.rho; jac.set(Sc44, H1, scratch); jac.set(Sc44, H2, 0.0); jac.set(Sc44, He3, 0.0); - scratch = screened_rates(k_He4_Ca41_to_p_Sc44_reaclib)*Y(Ca41)*state.rho + screened_rates(k_He4_K40_to_Sc44_reaclib)*Y(K40)*state.rho + screened_rates(k_He4_K41_to_n_Sc44_reaclib)*Y(K41)*state.rho - screened_rates(k_He4_Sc44_to_V48_reaclib)*Y(Sc44)*state.rho - screened_rates(k_He4_Sc44_to_n_V47_reaclib)*Y(Sc44)*state.rho - screened_rates(k_He4_Sc44_to_p_Ti47_reaclib)*Y(Sc44)*state.rho; + scratch = screened_rates(k_Ca41_He4_to_p_Sc44_derived)*Y(Ca41)*state.rho + screened_rates(k_K40_He4_to_Sc44_reaclib)*Y(K40)*state.rho + screened_rates(k_K41_He4_to_n_Sc44_reaclib)*Y(K41)*state.rho - screened_rates(k_Sc44_He4_to_V48_reaclib)*Y(Sc44)*state.rho - screened_rates(k_Sc44_He4_to_n_V47_derived)*Y(Sc44)*state.rho - screened_rates(k_Sc44_He4_to_p_Ti47_reaclib)*Y(Sc44)*state.rho; jac.set(Sc44, He4, scratch); jac.set(Sc44, Li6, 0.0); @@ -36663,23 +34472,23 @@ void jac_nuc(const burn_t& state, jac.set(Sc44, K39, 0.0); - scratch = screened_rates(k_He4_K40_to_Sc44_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_K40_He4_to_Sc44_reaclib)*Y(He4)*state.rho; jac.set(Sc44, K40, scratch); - scratch = screened_rates(k_He4_K41_to_n_Sc44_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_K41_He4_to_n_Sc44_reaclib)*Y(He4)*state.rho; jac.set(Sc44, K41, scratch); jac.set(Sc44, Ca40, 0.0); - scratch = screened_rates(k_He4_Ca41_to_p_Sc44_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ca41_He4_to_p_Sc44_derived)*Y(He4)*state.rho; jac.set(Sc44, Ca41, scratch); jac.set(Sc44, Ca42, 0.0); - scratch = screened_rates(k_p_Ca43_to_Sc44_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca43_p_to_Sc44_reaclib)*Y(H1)*state.rho; jac.set(Sc44, Ca43, scratch); - scratch = screened_rates(k_Ca44_to_Sc44_weaktab) + screened_rates(k_p_Ca44_to_n_Sc44_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca44_p_to_n_Sc44_derived)*Y(H1)*state.rho + screened_rates(k_Ca44_to_Sc44_beta_neg_weaktab); jac.set(Sc44, Ca44, scratch); jac.set(Sc44, Ca45, 0.0); @@ -36690,13 +34499,13 @@ void jac_nuc(const burn_t& state, jac.set(Sc44, Ca48, 0.0); - scratch = screened_rates(k_n_Sc43_to_Sc44_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Sc43_n_to_Sc44_reaclib)*Y(N)*state.rho; jac.set(Sc44, Sc43, scratch); - scratch = -screened_rates(k_He4_Sc44_to_V48_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Sc44_to_n_V47_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Sc44_to_p_Ti47_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc44_to_Ca44_weaktab) - screened_rates(k_Sc44_to_He4_K40_reaclib) - screened_rates(k_Sc44_to_Ti44_weaktab) - screened_rates(k_Sc44_to_n_Sc43_reaclib) - screened_rates(k_Sc44_to_p_Ca43_reaclib) - screened_rates(k_n_Sc44_to_He4_K41_reaclib)*Y(N)*state.rho - screened_rates(k_n_Sc44_to_Sc45_reaclib)*Y(N)*state.rho - screened_rates(k_n_Sc44_to_p_Ca44_reaclib)*Y(N)*state.rho - screened_rates(k_p_Sc44_to_He4_Ca41_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc44_to_Ti45_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc44_to_n_Ti44_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Sc44_He4_to_V48_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc44_He4_to_n_V47_derived)*Y(He4)*state.rho - screened_rates(k_Sc44_He4_to_p_Ti47_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc44_n_to_He4_K41_derived)*Y(N)*state.rho - screened_rates(k_Sc44_n_to_Sc45_reaclib)*Y(N)*state.rho - screened_rates(k_Sc44_n_to_p_Ca44_reaclib)*Y(N)*state.rho - screened_rates(k_Sc44_p_to_He4_Ca41_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc44_p_to_Ti45_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc44_p_to_n_Ti44_derived)*Y(H1)*state.rho - screened_rates(k_Sc44_to_Ca44_electron_capture_weaktab) - screened_rates(k_Sc44_to_He4_K40_derived) - screened_rates(k_Sc44_to_Ti44_beta_neg_weaktab) - screened_rates(k_Sc44_to_n_Sc43_derived) - screened_rates(k_Sc44_to_p_Ca43_derived); jac.set(Sc44, Sc44, scratch); - scratch = screened_rates(k_Sc45_to_n_Sc44_reaclib); + scratch = screened_rates(k_Sc45_to_n_Sc44_derived); jac.set(Sc44, Sc45, scratch); jac.set(Sc44, Sc46, 0.0); @@ -36707,15 +34516,15 @@ void jac_nuc(const burn_t& state, jac.set(Sc44, Sc49, 0.0); - scratch = screened_rates(k_Ti44_to_Sc44_weaktab) + screened_rates(k_n_Ti44_to_p_Sc44_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ti44_n_to_p_Sc44_reaclib)*Y(N)*state.rho + screened_rates(k_Ti44_to_Sc44_electron_capture_weaktab); jac.set(Sc44, Ti44, scratch); - scratch = screened_rates(k_Ti45_to_p_Sc44_reaclib); + scratch = screened_rates(k_Ti45_to_p_Sc44_derived); jac.set(Sc44, Ti45, scratch); jac.set(Sc44, Ti46, 0.0); - scratch = screened_rates(k_p_Ti47_to_He4_Sc44_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti47_p_to_He4_Sc44_derived)*Y(H1)*state.rho; jac.set(Sc44, Ti47, scratch); jac.set(Sc44, Ti48, 0.0); @@ -36728,10 +34537,10 @@ void jac_nuc(const burn_t& state, jac.set(Sc44, V46, 0.0); - scratch = screened_rates(k_n_V47_to_He4_Sc44_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_V47_n_to_He4_Sc44_reaclib)*Y(N)*state.rho; jac.set(Sc44, V47, scratch); - scratch = screened_rates(k_V48_to_He4_Sc44_reaclib); + scratch = screened_rates(k_V48_to_He4_Sc44_derived); jac.set(Sc44, V48, scratch); jac.set(Sc44, V49, 0.0); @@ -36858,17 +34667,17 @@ void jac_nuc(const burn_t& state, jac.set(Sc44, Ge64, 0.0); - scratch = screened_rates(k_n_Sc44_to_Sc45_reaclib)*Y(Sc44)*state.rho - screened_rates(k_n_Sc45_to_Sc46_reaclib)*Y(Sc45)*state.rho - screened_rates(k_n_Sc45_to_p_Ca45_reaclib)*Y(Sc45)*state.rho + screened_rates(k_n_Ti45_to_p_Sc45_reaclib)*Y(Ti45)*state.rho + screened_rates(k_n_V48_to_He4_Sc45_reaclib)*Y(V48)*state.rho; + scratch = screened_rates(k_Sc44_n_to_Sc45_reaclib)*Y(Sc44)*state.rho - screened_rates(k_Sc45_n_to_Sc46_reaclib)*Y(Sc45)*state.rho - screened_rates(k_Sc45_n_to_p_Ca45_reaclib)*Y(Sc45)*state.rho + screened_rates(k_Ti45_n_to_p_Sc45_reaclib)*Y(Ti45)*state.rho + screened_rates(k_V48_n_to_He4_Sc45_reaclib)*Y(V48)*state.rho; jac.set(Sc45, N, scratch); - scratch = screened_rates(k_p_Ca44_to_Sc45_reaclib)*Y(Ca44)*state.rho + screened_rates(k_p_Ca45_to_n_Sc45_reaclib)*Y(Ca45)*state.rho - screened_rates(k_p_Sc45_to_He4_Ca42_reaclib)*Y(Sc45)*state.rho - screened_rates(k_p_Sc45_to_Ti46_reaclib)*Y(Sc45)*state.rho - screened_rates(k_p_Sc45_to_n_Ti45_reaclib)*Y(Sc45)*state.rho + screened_rates(k_p_Ti48_to_He4_Sc45_reaclib)*Y(Ti48)*state.rho; + scratch = screened_rates(k_Ca44_p_to_Sc45_reaclib)*Y(Ca44)*state.rho + screened_rates(k_Ca45_p_to_n_Sc45_derived)*Y(Ca45)*state.rho - screened_rates(k_Sc45_p_to_He4_Ca42_reaclib)*Y(Sc45)*state.rho - screened_rates(k_Sc45_p_to_Ti46_reaclib)*Y(Sc45)*state.rho - screened_rates(k_Sc45_p_to_n_Ti45_derived)*Y(Sc45)*state.rho + screened_rates(k_Ti48_p_to_He4_Sc45_derived)*Y(Ti48)*state.rho; jac.set(Sc45, H1, scratch); jac.set(Sc45, H2, 0.0); jac.set(Sc45, He3, 0.0); - scratch = screened_rates(k_He4_Ca42_to_p_Sc45_reaclib)*Y(Ca42)*state.rho + screened_rates(k_He4_K41_to_Sc45_reaclib)*Y(K41)*state.rho - screened_rates(k_He4_Sc45_to_V49_reaclib)*Y(Sc45)*state.rho - screened_rates(k_He4_Sc45_to_n_V48_reaclib)*Y(Sc45)*state.rho - screened_rates(k_He4_Sc45_to_p_Ti48_reaclib)*Y(Sc45)*state.rho; + scratch = screened_rates(k_Ca42_He4_to_p_Sc45_derived)*Y(Ca42)*state.rho + screened_rates(k_K41_He4_to_Sc45_reaclib)*Y(K41)*state.rho - screened_rates(k_Sc45_He4_to_V49_reaclib)*Y(Sc45)*state.rho - screened_rates(k_Sc45_He4_to_n_V48_derived)*Y(Sc45)*state.rho - screened_rates(k_Sc45_He4_to_p_Ti48_reaclib)*Y(Sc45)*state.rho; jac.set(Sc45, He4, scratch); jac.set(Sc45, Li6, 0.0); @@ -37001,22 +34810,22 @@ void jac_nuc(const burn_t& state, jac.set(Sc45, K40, 0.0); - scratch = screened_rates(k_He4_K41_to_Sc45_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_K41_He4_to_Sc45_reaclib)*Y(He4)*state.rho; jac.set(Sc45, K41, scratch); jac.set(Sc45, Ca40, 0.0); jac.set(Sc45, Ca41, 0.0); - scratch = screened_rates(k_He4_Ca42_to_p_Sc45_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ca42_He4_to_p_Sc45_derived)*Y(He4)*state.rho; jac.set(Sc45, Ca42, scratch); jac.set(Sc45, Ca43, 0.0); - scratch = screened_rates(k_p_Ca44_to_Sc45_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca44_p_to_Sc45_reaclib)*Y(H1)*state.rho; jac.set(Sc45, Ca44, scratch); - scratch = screened_rates(k_Ca45_to_Sc45_weaktab) + screened_rates(k_p_Ca45_to_n_Sc45_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca45_p_to_n_Sc45_derived)*Y(H1)*state.rho + screened_rates(k_Ca45_to_Sc45_beta_neg_weaktab); jac.set(Sc45, Ca45, scratch); jac.set(Sc45, Ca46, 0.0); @@ -37027,13 +34836,13 @@ void jac_nuc(const burn_t& state, jac.set(Sc45, Sc43, 0.0); - scratch = screened_rates(k_n_Sc44_to_Sc45_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Sc44_n_to_Sc45_reaclib)*Y(N)*state.rho; jac.set(Sc45, Sc44, scratch); - scratch = -screened_rates(k_He4_Sc45_to_V49_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Sc45_to_n_V48_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Sc45_to_p_Ti48_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc45_to_Ca45_weaktab) - screened_rates(k_Sc45_to_He4_K41_reaclib) - screened_rates(k_Sc45_to_Ti45_weaktab) - screened_rates(k_Sc45_to_n_Sc44_reaclib) - screened_rates(k_Sc45_to_p_Ca44_reaclib) - screened_rates(k_n_Sc45_to_Sc46_reaclib)*Y(N)*state.rho - screened_rates(k_n_Sc45_to_p_Ca45_reaclib)*Y(N)*state.rho - screened_rates(k_p_Sc45_to_He4_Ca42_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc45_to_Ti46_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc45_to_n_Ti45_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Sc45_He4_to_V49_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc45_He4_to_n_V48_derived)*Y(He4)*state.rho - screened_rates(k_Sc45_He4_to_p_Ti48_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc45_n_to_Sc46_reaclib)*Y(N)*state.rho - screened_rates(k_Sc45_n_to_p_Ca45_reaclib)*Y(N)*state.rho - screened_rates(k_Sc45_p_to_He4_Ca42_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc45_p_to_Ti46_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc45_p_to_n_Ti45_derived)*Y(H1)*state.rho - screened_rates(k_Sc45_to_Ca45_electron_capture_weaktab) - screened_rates(k_Sc45_to_He4_K41_derived) - screened_rates(k_Sc45_to_Ti45_beta_neg_weaktab) - screened_rates(k_Sc45_to_n_Sc44_derived) - screened_rates(k_Sc45_to_p_Ca44_derived); jac.set(Sc45, Sc45, scratch); - scratch = screened_rates(k_Sc46_to_n_Sc45_reaclib); + scratch = screened_rates(k_Sc46_to_n_Sc45_derived); jac.set(Sc45, Sc46, scratch); jac.set(Sc45, Sc47, 0.0); @@ -37044,15 +34853,15 @@ void jac_nuc(const burn_t& state, jac.set(Sc45, Ti44, 0.0); - scratch = screened_rates(k_Ti45_to_Sc45_weaktab) + screened_rates(k_n_Ti45_to_p_Sc45_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ti45_n_to_p_Sc45_reaclib)*Y(N)*state.rho + screened_rates(k_Ti45_to_Sc45_electron_capture_weaktab); jac.set(Sc45, Ti45, scratch); - scratch = screened_rates(k_Ti46_to_p_Sc45_reaclib); + scratch = screened_rates(k_Ti46_to_p_Sc45_derived); jac.set(Sc45, Ti46, scratch); jac.set(Sc45, Ti47, 0.0); - scratch = screened_rates(k_p_Ti48_to_He4_Sc45_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti48_p_to_He4_Sc45_derived)*Y(H1)*state.rho; jac.set(Sc45, Ti48, scratch); jac.set(Sc45, Ti49, 0.0); @@ -37065,10 +34874,10 @@ void jac_nuc(const burn_t& state, jac.set(Sc45, V47, 0.0); - scratch = screened_rates(k_n_V48_to_He4_Sc45_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_V48_n_to_He4_Sc45_reaclib)*Y(N)*state.rho; jac.set(Sc45, V48, scratch); - scratch = screened_rates(k_V49_to_He4_Sc45_reaclib); + scratch = screened_rates(k_V49_to_He4_Sc45_derived); jac.set(Sc45, V49, scratch); jac.set(Sc45, V50, 0.0); @@ -37193,17 +35002,17 @@ void jac_nuc(const burn_t& state, jac.set(Sc45, Ge64, 0.0); - scratch = screened_rates(k_n_Sc45_to_Sc46_reaclib)*Y(Sc45)*state.rho - screened_rates(k_n_Sc46_to_Sc47_reaclib)*Y(Sc46)*state.rho - screened_rates(k_n_Sc46_to_p_Ca46_reaclib)*Y(Sc46)*state.rho + screened_rates(k_n_Ti46_to_p_Sc46_reaclib)*Y(Ti46)*state.rho + screened_rates(k_n_V49_to_He4_Sc46_reaclib)*Y(V49)*state.rho; + scratch = screened_rates(k_Sc45_n_to_Sc46_reaclib)*Y(Sc45)*state.rho - screened_rates(k_Sc46_n_to_Sc47_reaclib)*Y(Sc46)*state.rho - screened_rates(k_Sc46_n_to_p_Ca46_reaclib)*Y(Sc46)*state.rho + screened_rates(k_Ti46_n_to_p_Sc46_derived)*Y(Ti46)*state.rho + screened_rates(k_V49_n_to_He4_Sc46_derived)*Y(V49)*state.rho; jac.set(Sc46, N, scratch); - scratch = screened_rates(k_p_Ca45_to_Sc46_reaclib)*Y(Ca45)*state.rho + screened_rates(k_p_Ca46_to_n_Sc46_reaclib)*Y(Ca46)*state.rho - screened_rates(k_p_Sc46_to_He4_Ca43_reaclib)*Y(Sc46)*state.rho - screened_rates(k_p_Sc46_to_Ti47_reaclib)*Y(Sc46)*state.rho - screened_rates(k_p_Sc46_to_n_Ti46_reaclib)*Y(Sc46)*state.rho + screened_rates(k_p_Ti49_to_He4_Sc46_reaclib)*Y(Ti49)*state.rho; + scratch = screened_rates(k_Ca45_p_to_Sc46_reaclib)*Y(Ca45)*state.rho + screened_rates(k_Ca46_p_to_n_Sc46_derived)*Y(Ca46)*state.rho - screened_rates(k_Sc46_p_to_He4_Ca43_reaclib)*Y(Sc46)*state.rho - screened_rates(k_Sc46_p_to_Ti47_reaclib)*Y(Sc46)*state.rho - screened_rates(k_Sc46_p_to_n_Ti46_reaclib)*Y(Sc46)*state.rho + screened_rates(k_Ti49_p_to_He4_Sc46_derived)*Y(Ti49)*state.rho; jac.set(Sc46, H1, scratch); jac.set(Sc46, H2, 0.0); jac.set(Sc46, He3, 0.0); - scratch = screened_rates(k_He4_Ca43_to_p_Sc46_reaclib)*Y(Ca43)*state.rho - screened_rates(k_He4_Sc46_to_V50_reaclib)*Y(Sc46)*state.rho - screened_rates(k_He4_Sc46_to_n_V49_reaclib)*Y(Sc46)*state.rho - screened_rates(k_He4_Sc46_to_p_Ti49_reaclib)*Y(Sc46)*state.rho; + scratch = screened_rates(k_Ca43_He4_to_p_Sc46_derived)*Y(Ca43)*state.rho - screened_rates(k_Sc46_He4_to_V50_reaclib)*Y(Sc46)*state.rho - screened_rates(k_Sc46_He4_to_n_V49_reaclib)*Y(Sc46)*state.rho - screened_rates(k_Sc46_He4_to_p_Ti49_reaclib)*Y(Sc46)*state.rho; jac.set(Sc46, He4, scratch); jac.set(Sc46, Li6, 0.0); @@ -37344,15 +35153,15 @@ void jac_nuc(const burn_t& state, jac.set(Sc46, Ca42, 0.0); - scratch = screened_rates(k_He4_Ca43_to_p_Sc46_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ca43_He4_to_p_Sc46_derived)*Y(He4)*state.rho; jac.set(Sc46, Ca43, scratch); jac.set(Sc46, Ca44, 0.0); - scratch = screened_rates(k_p_Ca45_to_Sc46_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca45_p_to_Sc46_reaclib)*Y(H1)*state.rho; jac.set(Sc46, Ca45, scratch); - scratch = screened_rates(k_Ca46_to_Sc46_weaktab) + screened_rates(k_p_Ca46_to_n_Sc46_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca46_p_to_n_Sc46_derived)*Y(H1)*state.rho + screened_rates(k_Ca46_to_Sc46_beta_neg_weaktab); jac.set(Sc46, Ca46, scratch); jac.set(Sc46, Ca47, 0.0); @@ -37363,13 +35172,13 @@ void jac_nuc(const burn_t& state, jac.set(Sc46, Sc44, 0.0); - scratch = screened_rates(k_n_Sc45_to_Sc46_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Sc45_n_to_Sc46_reaclib)*Y(N)*state.rho; jac.set(Sc46, Sc45, scratch); - scratch = -screened_rates(k_He4_Sc46_to_V50_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Sc46_to_n_V49_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Sc46_to_p_Ti49_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc46_to_Ca46_weaktab) - screened_rates(k_Sc46_to_Ti46_weaktab) - screened_rates(k_Sc46_to_n_Sc45_reaclib) - screened_rates(k_Sc46_to_p_Ca45_reaclib) - screened_rates(k_n_Sc46_to_Sc47_reaclib)*Y(N)*state.rho - screened_rates(k_n_Sc46_to_p_Ca46_reaclib)*Y(N)*state.rho - screened_rates(k_p_Sc46_to_He4_Ca43_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc46_to_Ti47_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc46_to_n_Ti46_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Sc46_He4_to_V50_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc46_He4_to_n_V49_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc46_He4_to_p_Ti49_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc46_n_to_Sc47_reaclib)*Y(N)*state.rho - screened_rates(k_Sc46_n_to_p_Ca46_reaclib)*Y(N)*state.rho - screened_rates(k_Sc46_p_to_He4_Ca43_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc46_p_to_Ti47_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc46_p_to_n_Ti46_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc46_to_Ca46_electron_capture_weaktab) - screened_rates(k_Sc46_to_Ti46_beta_neg_weaktab) - screened_rates(k_Sc46_to_n_Sc45_derived) - screened_rates(k_Sc46_to_p_Ca45_derived); jac.set(Sc46, Sc46, scratch); - scratch = screened_rates(k_Sc47_to_n_Sc46_reaclib); + scratch = screened_rates(k_Sc47_to_n_Sc46_derived); jac.set(Sc46, Sc47, scratch); jac.set(Sc46, Sc48, 0.0); @@ -37380,15 +35189,15 @@ void jac_nuc(const burn_t& state, jac.set(Sc46, Ti45, 0.0); - scratch = screened_rates(k_Ti46_to_Sc46_weaktab) + screened_rates(k_n_Ti46_to_p_Sc46_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ti46_n_to_p_Sc46_derived)*Y(N)*state.rho + screened_rates(k_Ti46_to_Sc46_electron_capture_weaktab); jac.set(Sc46, Ti46, scratch); - scratch = screened_rates(k_Ti47_to_p_Sc46_reaclib); + scratch = screened_rates(k_Ti47_to_p_Sc46_derived); jac.set(Sc46, Ti47, scratch); jac.set(Sc46, Ti48, 0.0); - scratch = screened_rates(k_p_Ti49_to_He4_Sc46_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti49_p_to_He4_Sc46_derived)*Y(H1)*state.rho; jac.set(Sc46, Ti49, scratch); jac.set(Sc46, Ti50, 0.0); @@ -37401,10 +35210,10 @@ void jac_nuc(const burn_t& state, jac.set(Sc46, V48, 0.0); - scratch = screened_rates(k_n_V49_to_He4_Sc46_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_V49_n_to_He4_Sc46_derived)*Y(N)*state.rho; jac.set(Sc46, V49, scratch); - scratch = screened_rates(k_V50_to_He4_Sc46_reaclib); + scratch = screened_rates(k_V50_to_He4_Sc46_derived); jac.set(Sc46, V50, scratch); jac.set(Sc46, V51, 0.0); @@ -37527,17 +35336,17 @@ void jac_nuc(const burn_t& state, jac.set(Sc46, Ge64, 0.0); - scratch = screened_rates(k_n_Sc46_to_Sc47_reaclib)*Y(Sc46)*state.rho - screened_rates(k_n_Sc47_to_Sc48_reaclib)*Y(Sc47)*state.rho - screened_rates(k_n_Sc47_to_p_Ca47_reaclib)*Y(Sc47)*state.rho + screened_rates(k_n_Ti47_to_p_Sc47_reaclib)*Y(Ti47)*state.rho + screened_rates(k_n_V50_to_He4_Sc47_reaclib)*Y(V50)*state.rho; + scratch = screened_rates(k_Sc46_n_to_Sc47_reaclib)*Y(Sc46)*state.rho - screened_rates(k_Sc47_n_to_Sc48_reaclib)*Y(Sc47)*state.rho - screened_rates(k_Sc47_n_to_p_Ca47_derived)*Y(Sc47)*state.rho + screened_rates(k_Ti47_n_to_p_Sc47_reaclib)*Y(Ti47)*state.rho + screened_rates(k_V50_n_to_He4_Sc47_reaclib)*Y(V50)*state.rho; jac.set(Sc47, N, scratch); - scratch = screened_rates(k_p_Ca46_to_Sc47_reaclib)*Y(Ca46)*state.rho + screened_rates(k_p_Ca47_to_n_Sc47_reaclib)*Y(Ca47)*state.rho - screened_rates(k_p_Sc47_to_He4_Ca44_reaclib)*Y(Sc47)*state.rho - screened_rates(k_p_Sc47_to_Ti48_reaclib)*Y(Sc47)*state.rho - screened_rates(k_p_Sc47_to_n_Ti47_reaclib)*Y(Sc47)*state.rho + screened_rates(k_p_Ti50_to_He4_Sc47_reaclib)*Y(Ti50)*state.rho; + scratch = screened_rates(k_Ca46_p_to_Sc47_reaclib)*Y(Ca46)*state.rho + screened_rates(k_Ca47_p_to_n_Sc47_reaclib)*Y(Ca47)*state.rho - screened_rates(k_Sc47_p_to_He4_Ca44_reaclib)*Y(Sc47)*state.rho - screened_rates(k_Sc47_p_to_Ti48_reaclib)*Y(Sc47)*state.rho - screened_rates(k_Sc47_p_to_n_Ti47_derived)*Y(Sc47)*state.rho + screened_rates(k_Ti50_p_to_He4_Sc47_derived)*Y(Ti50)*state.rho; jac.set(Sc47, H1, scratch); jac.set(Sc47, H2, 0.0); jac.set(Sc47, He3, 0.0); - scratch = screened_rates(k_He4_Ca44_to_p_Sc47_reaclib)*Y(Ca44)*state.rho - screened_rates(k_He4_Sc47_to_V51_reaclib)*Y(Sc47)*state.rho - screened_rates(k_He4_Sc47_to_n_V50_reaclib)*Y(Sc47)*state.rho - screened_rates(k_He4_Sc47_to_p_Ti50_reaclib)*Y(Sc47)*state.rho; + scratch = screened_rates(k_Ca44_He4_to_p_Sc47_derived)*Y(Ca44)*state.rho - screened_rates(k_Sc47_He4_to_V51_reaclib)*Y(Sc47)*state.rho - screened_rates(k_Sc47_He4_to_n_V50_derived)*Y(Sc47)*state.rho - screened_rates(k_Sc47_He4_to_p_Ti50_reaclib)*Y(Sc47)*state.rho; jac.set(Sc47, He4, scratch); jac.set(Sc47, Li6, 0.0); @@ -37680,15 +35489,15 @@ void jac_nuc(const burn_t& state, jac.set(Sc47, Ca43, 0.0); - scratch = screened_rates(k_He4_Ca44_to_p_Sc47_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ca44_He4_to_p_Sc47_derived)*Y(He4)*state.rho; jac.set(Sc47, Ca44, scratch); jac.set(Sc47, Ca45, 0.0); - scratch = screened_rates(k_p_Ca46_to_Sc47_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca46_p_to_Sc47_reaclib)*Y(H1)*state.rho; jac.set(Sc47, Ca46, scratch); - scratch = screened_rates(k_Ca47_to_Sc47_weaktab) + screened_rates(k_p_Ca47_to_n_Sc47_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca47_p_to_n_Sc47_reaclib)*Y(H1)*state.rho + screened_rates(k_Ca47_to_Sc47_beta_neg_weaktab); jac.set(Sc47, Ca47, scratch); jac.set(Sc47, Ca48, 0.0); @@ -37699,13 +35508,13 @@ void jac_nuc(const burn_t& state, jac.set(Sc47, Sc45, 0.0); - scratch = screened_rates(k_n_Sc46_to_Sc47_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Sc46_n_to_Sc47_reaclib)*Y(N)*state.rho; jac.set(Sc47, Sc46, scratch); - scratch = -screened_rates(k_He4_Sc47_to_V51_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Sc47_to_n_V50_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Sc47_to_p_Ti50_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc47_to_Ca47_weaktab) - screened_rates(k_Sc47_to_Ti47_weaktab) - screened_rates(k_Sc47_to_n_Sc46_reaclib) - screened_rates(k_Sc47_to_p_Ca46_reaclib) - screened_rates(k_n_Sc47_to_Sc48_reaclib)*Y(N)*state.rho - screened_rates(k_n_Sc47_to_p_Ca47_reaclib)*Y(N)*state.rho - screened_rates(k_p_Sc47_to_He4_Ca44_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc47_to_Ti48_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc47_to_n_Ti47_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Sc47_He4_to_V51_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc47_He4_to_n_V50_derived)*Y(He4)*state.rho - screened_rates(k_Sc47_He4_to_p_Ti50_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc47_n_to_Sc48_reaclib)*Y(N)*state.rho - screened_rates(k_Sc47_n_to_p_Ca47_derived)*Y(N)*state.rho - screened_rates(k_Sc47_p_to_He4_Ca44_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc47_p_to_Ti48_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc47_p_to_n_Ti47_derived)*Y(H1)*state.rho - screened_rates(k_Sc47_to_Ca47_electron_capture_weaktab) - screened_rates(k_Sc47_to_Ti47_beta_neg_weaktab) - screened_rates(k_Sc47_to_n_Sc46_derived) - screened_rates(k_Sc47_to_p_Ca46_derived); jac.set(Sc47, Sc47, scratch); - scratch = screened_rates(k_Sc48_to_n_Sc47_reaclib); + scratch = screened_rates(k_Sc48_to_n_Sc47_derived); jac.set(Sc47, Sc48, scratch); jac.set(Sc47, Sc49, 0.0); @@ -37716,15 +35525,15 @@ void jac_nuc(const burn_t& state, jac.set(Sc47, Ti46, 0.0); - scratch = screened_rates(k_Ti47_to_Sc47_weaktab) + screened_rates(k_n_Ti47_to_p_Sc47_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ti47_n_to_p_Sc47_reaclib)*Y(N)*state.rho + screened_rates(k_Ti47_to_Sc47_electron_capture_weaktab); jac.set(Sc47, Ti47, scratch); - scratch = screened_rates(k_Ti48_to_p_Sc47_reaclib); + scratch = screened_rates(k_Ti48_to_p_Sc47_derived); jac.set(Sc47, Ti48, scratch); jac.set(Sc47, Ti49, 0.0); - scratch = screened_rates(k_p_Ti50_to_He4_Sc47_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti50_p_to_He4_Sc47_derived)*Y(H1)*state.rho; jac.set(Sc47, Ti50, scratch); jac.set(Sc47, Ti51, 0.0); @@ -37737,10 +35546,10 @@ void jac_nuc(const burn_t& state, jac.set(Sc47, V49, 0.0); - scratch = screened_rates(k_n_V50_to_He4_Sc47_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_V50_n_to_He4_Sc47_reaclib)*Y(N)*state.rho; jac.set(Sc47, V50, scratch); - scratch = screened_rates(k_V51_to_He4_Sc47_reaclib); + scratch = screened_rates(k_V51_to_He4_Sc47_derived); jac.set(Sc47, V51, scratch); jac.set(Sc47, V52, 0.0); @@ -37861,17 +35670,17 @@ void jac_nuc(const burn_t& state, jac.set(Sc47, Ge64, 0.0); - scratch = screened_rates(k_n_Sc47_to_Sc48_reaclib)*Y(Sc47)*state.rho - screened_rates(k_n_Sc48_to_Sc49_reaclib)*Y(Sc48)*state.rho - screened_rates(k_n_Sc48_to_p_Ca48_reaclib)*Y(Sc48)*state.rho + screened_rates(k_n_Ti48_to_p_Sc48_reaclib)*Y(Ti48)*state.rho + screened_rates(k_n_V51_to_He4_Sc48_reaclib)*Y(V51)*state.rho; + scratch = screened_rates(k_Sc47_n_to_Sc48_reaclib)*Y(Sc47)*state.rho - screened_rates(k_Sc48_n_to_Sc49_reaclib)*Y(Sc48)*state.rho - screened_rates(k_Sc48_n_to_p_Ca48_reaclib)*Y(Sc48)*state.rho + screened_rates(k_Ti48_n_to_p_Sc48_derived)*Y(Ti48)*state.rho + screened_rates(k_V51_n_to_He4_Sc48_derived)*Y(V51)*state.rho; jac.set(Sc48, N, scratch); - scratch = screened_rates(k_p_Ca47_to_Sc48_reaclib)*Y(Ca47)*state.rho + screened_rates(k_p_Ca48_to_n_Sc48_reaclib)*Y(Ca48)*state.rho - screened_rates(k_p_Sc48_to_He4_Ca45_reaclib)*Y(Sc48)*state.rho - screened_rates(k_p_Sc48_to_Ti49_reaclib)*Y(Sc48)*state.rho - screened_rates(k_p_Sc48_to_n_Ti48_reaclib)*Y(Sc48)*state.rho + screened_rates(k_p_Ti51_to_He4_Sc48_reaclib)*Y(Ti51)*state.rho; + scratch = screened_rates(k_Ca47_p_to_Sc48_reaclib)*Y(Ca47)*state.rho + screened_rates(k_Ca48_p_to_n_Sc48_derived)*Y(Ca48)*state.rho - screened_rates(k_Sc48_p_to_He4_Ca45_reaclib)*Y(Sc48)*state.rho - screened_rates(k_Sc48_p_to_Ti49_reaclib)*Y(Sc48)*state.rho - screened_rates(k_Sc48_p_to_n_Ti48_reaclib)*Y(Sc48)*state.rho + screened_rates(k_Ti51_p_to_He4_Sc48_derived)*Y(Ti51)*state.rho; jac.set(Sc48, H1, scratch); jac.set(Sc48, H2, 0.0); jac.set(Sc48, He3, 0.0); - scratch = screened_rates(k_He4_Ca45_to_p_Sc48_reaclib)*Y(Ca45)*state.rho - screened_rates(k_He4_Sc48_to_V52_reaclib)*Y(Sc48)*state.rho - screened_rates(k_He4_Sc48_to_n_V51_reaclib)*Y(Sc48)*state.rho - screened_rates(k_He4_Sc48_to_p_Ti51_reaclib)*Y(Sc48)*state.rho; + scratch = screened_rates(k_Ca45_He4_to_p_Sc48_derived)*Y(Ca45)*state.rho - screened_rates(k_Sc48_He4_to_V52_reaclib)*Y(Sc48)*state.rho - screened_rates(k_Sc48_He4_to_n_V51_reaclib)*Y(Sc48)*state.rho - screened_rates(k_Sc48_He4_to_p_Ti51_reaclib)*Y(Sc48)*state.rho; jac.set(Sc48, He4, scratch); jac.set(Sc48, Li6, 0.0); @@ -38016,15 +35825,15 @@ void jac_nuc(const burn_t& state, jac.set(Sc48, Ca44, 0.0); - scratch = screened_rates(k_He4_Ca45_to_p_Sc48_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ca45_He4_to_p_Sc48_derived)*Y(He4)*state.rho; jac.set(Sc48, Ca45, scratch); jac.set(Sc48, Ca46, 0.0); - scratch = screened_rates(k_p_Ca47_to_Sc48_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca47_p_to_Sc48_reaclib)*Y(H1)*state.rho; jac.set(Sc48, Ca47, scratch); - scratch = screened_rates(k_Ca48_to_Sc48_weaktab) + screened_rates(k_p_Ca48_to_n_Sc48_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca48_p_to_n_Sc48_derived)*Y(H1)*state.rho + screened_rates(k_Ca48_to_Sc48_beta_neg_weaktab); jac.set(Sc48, Ca48, scratch); jac.set(Sc48, Sc43, 0.0); @@ -38035,13 +35844,13 @@ void jac_nuc(const burn_t& state, jac.set(Sc48, Sc46, 0.0); - scratch = screened_rates(k_n_Sc47_to_Sc48_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Sc47_n_to_Sc48_reaclib)*Y(N)*state.rho; jac.set(Sc48, Sc47, scratch); - scratch = -screened_rates(k_He4_Sc48_to_V52_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Sc48_to_n_V51_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Sc48_to_p_Ti51_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc48_to_Ca48_weaktab) - screened_rates(k_Sc48_to_Ti48_weaktab) - screened_rates(k_Sc48_to_n_Sc47_reaclib) - screened_rates(k_Sc48_to_p_Ca47_reaclib) - screened_rates(k_n_Sc48_to_Sc49_reaclib)*Y(N)*state.rho - screened_rates(k_n_Sc48_to_p_Ca48_reaclib)*Y(N)*state.rho - screened_rates(k_p_Sc48_to_He4_Ca45_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc48_to_Ti49_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc48_to_n_Ti48_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Sc48_He4_to_V52_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc48_He4_to_n_V51_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc48_He4_to_p_Ti51_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc48_n_to_Sc49_reaclib)*Y(N)*state.rho - screened_rates(k_Sc48_n_to_p_Ca48_reaclib)*Y(N)*state.rho - screened_rates(k_Sc48_p_to_He4_Ca45_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc48_p_to_Ti49_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc48_p_to_n_Ti48_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc48_to_Ca48_electron_capture_weaktab) - screened_rates(k_Sc48_to_Ti48_beta_neg_weaktab) - screened_rates(k_Sc48_to_n_Sc47_derived) - screened_rates(k_Sc48_to_p_Ca47_derived); jac.set(Sc48, Sc48, scratch); - scratch = screened_rates(k_Sc49_to_n_Sc48_reaclib); + scratch = screened_rates(k_Sc49_to_n_Sc48_derived); jac.set(Sc48, Sc49, scratch); jac.set(Sc48, Ti44, 0.0); @@ -38052,15 +35861,15 @@ void jac_nuc(const burn_t& state, jac.set(Sc48, Ti47, 0.0); - scratch = screened_rates(k_Ti48_to_Sc48_weaktab) + screened_rates(k_n_Ti48_to_p_Sc48_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ti48_n_to_p_Sc48_derived)*Y(N)*state.rho + screened_rates(k_Ti48_to_Sc48_electron_capture_weaktab); jac.set(Sc48, Ti48, scratch); - scratch = screened_rates(k_Ti49_to_p_Sc48_reaclib); + scratch = screened_rates(k_Ti49_to_p_Sc48_derived); jac.set(Sc48, Ti49, scratch); jac.set(Sc48, Ti50, 0.0); - scratch = screened_rates(k_p_Ti51_to_He4_Sc48_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti51_p_to_He4_Sc48_derived)*Y(H1)*state.rho; jac.set(Sc48, Ti51, scratch); jac.set(Sc48, V46, 0.0); @@ -38073,10 +35882,10 @@ void jac_nuc(const burn_t& state, jac.set(Sc48, V50, 0.0); - scratch = screened_rates(k_n_V51_to_He4_Sc48_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_V51_n_to_He4_Sc48_derived)*Y(N)*state.rho; jac.set(Sc48, V51, scratch); - scratch = screened_rates(k_V52_to_He4_Sc48_reaclib); + scratch = screened_rates(k_V52_to_He4_Sc48_derived); jac.set(Sc48, V52, scratch); jac.set(Sc48, Cr48, 0.0); @@ -38195,17 +36004,17 @@ void jac_nuc(const burn_t& state, jac.set(Sc48, Ge64, 0.0); - scratch = screened_rates(k_n_Sc48_to_Sc49_reaclib)*Y(Sc48)*state.rho + screened_rates(k_n_Ti49_to_p_Sc49_reaclib)*Y(Ti49)*state.rho + screened_rates(k_n_V52_to_He4_Sc49_reaclib)*Y(V52)*state.rho; + scratch = screened_rates(k_Sc48_n_to_Sc49_reaclib)*Y(Sc48)*state.rho + screened_rates(k_Ti49_n_to_p_Sc49_derived)*Y(Ti49)*state.rho + screened_rates(k_V52_n_to_He4_Sc49_reaclib)*Y(V52)*state.rho; jac.set(Sc49, N, scratch); - scratch = screened_rates(k_p_Ca48_to_Sc49_reaclib)*Y(Ca48)*state.rho - screened_rates(k_p_Sc49_to_He4_Ca46_reaclib)*Y(Sc49)*state.rho - screened_rates(k_p_Sc49_to_Ti50_reaclib)*Y(Sc49)*state.rho - screened_rates(k_p_Sc49_to_n_Ti49_reaclib)*Y(Sc49)*state.rho; + scratch = screened_rates(k_Ca48_p_to_Sc49_reaclib)*Y(Ca48)*state.rho - screened_rates(k_Sc49_p_to_He4_Ca46_reaclib)*Y(Sc49)*state.rho - screened_rates(k_Sc49_p_to_Ti50_reaclib)*Y(Sc49)*state.rho - screened_rates(k_Sc49_p_to_n_Ti49_reaclib)*Y(Sc49)*state.rho; jac.set(Sc49, H1, scratch); jac.set(Sc49, H2, 0.0); jac.set(Sc49, He3, 0.0); - scratch = screened_rates(k_He4_Ca46_to_p_Sc49_reaclib)*Y(Ca46)*state.rho - screened_rates(k_He4_Sc49_to_n_V52_reaclib)*Y(Sc49)*state.rho; + scratch = screened_rates(k_Ca46_He4_to_p_Sc49_derived)*Y(Ca46)*state.rho - screened_rates(k_Sc49_He4_to_n_V52_derived)*Y(Sc49)*state.rho; jac.set(Sc49, He4, scratch); jac.set(Sc49, Li6, 0.0); @@ -38352,12 +36161,12 @@ void jac_nuc(const burn_t& state, jac.set(Sc49, Ca45, 0.0); - scratch = screened_rates(k_He4_Ca46_to_p_Sc49_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ca46_He4_to_p_Sc49_derived)*Y(He4)*state.rho; jac.set(Sc49, Ca46, scratch); jac.set(Sc49, Ca47, 0.0); - scratch = screened_rates(k_p_Ca48_to_Sc49_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ca48_p_to_Sc49_reaclib)*Y(H1)*state.rho; jac.set(Sc49, Ca48, scratch); jac.set(Sc49, Sc43, 0.0); @@ -38370,10 +36179,10 @@ void jac_nuc(const burn_t& state, jac.set(Sc49, Sc47, 0.0); - scratch = screened_rates(k_n_Sc48_to_Sc49_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Sc48_n_to_Sc49_reaclib)*Y(N)*state.rho; jac.set(Sc49, Sc48, scratch); - scratch = -screened_rates(k_He4_Sc49_to_n_V52_reaclib)*Y(He4)*state.rho - screened_rates(k_Sc49_to_Ti49_weaktab) - screened_rates(k_Sc49_to_n_Sc48_reaclib) - screened_rates(k_Sc49_to_p_Ca48_reaclib) - screened_rates(k_p_Sc49_to_He4_Ca46_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc49_to_Ti50_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Sc49_to_n_Ti49_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Sc49_He4_to_n_V52_derived)*Y(He4)*state.rho - screened_rates(k_Sc49_p_to_He4_Ca46_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc49_p_to_Ti50_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc49_p_to_n_Ti49_reaclib)*Y(H1)*state.rho - screened_rates(k_Sc49_to_Ti49_beta_neg_weaktab) - screened_rates(k_Sc49_to_n_Sc48_derived) - screened_rates(k_Sc49_to_p_Ca48_derived); jac.set(Sc49, Sc49, scratch); jac.set(Sc49, Ti44, 0.0); @@ -38386,10 +36195,10 @@ void jac_nuc(const burn_t& state, jac.set(Sc49, Ti48, 0.0); - scratch = screened_rates(k_Ti49_to_Sc49_weaktab) + screened_rates(k_n_Ti49_to_p_Sc49_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ti49_n_to_p_Sc49_derived)*Y(N)*state.rho + screened_rates(k_Ti49_to_Sc49_electron_capture_weaktab); jac.set(Sc49, Ti49, scratch); - scratch = screened_rates(k_Ti50_to_p_Sc49_reaclib); + scratch = screened_rates(k_Ti50_to_p_Sc49_derived); jac.set(Sc49, Ti50, scratch); jac.set(Sc49, Ti51, 0.0); @@ -38406,7 +36215,7 @@ void jac_nuc(const burn_t& state, jac.set(Sc49, V51, 0.0); - scratch = screened_rates(k_n_V52_to_He4_Sc49_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_V52_n_to_He4_Sc49_reaclib)*Y(N)*state.rho; jac.set(Sc49, V52, scratch); jac.set(Sc49, Cr48, 0.0); @@ -38525,17 +36334,17 @@ void jac_nuc(const burn_t& state, jac.set(Sc49, Ge64, 0.0); - scratch = -screened_rates(k_n_Ti44_to_He4_Ca41_reaclib)*Y(Ti44)*state.rho - screened_rates(k_n_Ti44_to_Ti45_reaclib)*Y(Ti44)*state.rho - screened_rates(k_n_Ti44_to_p_Sc44_reaclib)*Y(Ti44)*state.rho; + scratch = -screened_rates(k_Ti44_n_to_He4_Ca41_reaclib)*Y(Ti44)*state.rho - screened_rates(k_Ti44_n_to_Ti45_reaclib)*Y(Ti44)*state.rho - screened_rates(k_Ti44_n_to_p_Sc44_reaclib)*Y(Ti44)*state.rho; jac.set(Ti44, N, scratch); - scratch = screened_rates(k_p_Sc43_to_Ti44_reaclib)*Y(Sc43)*state.rho + screened_rates(k_p_Sc44_to_n_Ti44_reaclib)*Y(Sc44)*state.rho + screened_rates(k_p_V47_to_He4_Ti44_reaclib)*Y(V47)*state.rho; + scratch = screened_rates(k_Sc43_p_to_Ti44_reaclib)*Y(Sc43)*state.rho + screened_rates(k_Sc44_p_to_n_Ti44_derived)*Y(Sc44)*state.rho + screened_rates(k_V47_p_to_He4_Ti44_derived)*Y(V47)*state.rho; jac.set(Ti44, H1, scratch); jac.set(Ti44, H2, 0.0); jac.set(Ti44, He3, 0.0); - scratch = screened_rates(k_He4_Ca40_to_Ti44_reaclib)*Y(Ca40)*state.rho + screened_rates(k_He4_Ca41_to_n_Ti44_reaclib)*Y(Ca41)*state.rho - screened_rates(k_He4_Ti44_to_Cr48_reaclib)*Y(Ti44)*state.rho - screened_rates(k_He4_Ti44_to_p_V47_reaclib)*Y(Ti44)*state.rho; + scratch = screened_rates(k_Ca40_He4_to_Ti44_reaclib)*Y(Ca40)*state.rho + screened_rates(k_Ca41_He4_to_n_Ti44_derived)*Y(Ca41)*state.rho - screened_rates(k_Ti44_He4_to_Cr48_reaclib)*Y(Ti44)*state.rho - screened_rates(k_Ti44_He4_to_p_V47_reaclib)*Y(Ti44)*state.rho; jac.set(Ti44, He4, scratch); jac.set(Ti44, Li6, 0.0); @@ -38670,10 +36479,10 @@ void jac_nuc(const burn_t& state, jac.set(Ti44, K41, 0.0); - scratch = screened_rates(k_He4_Ca40_to_Ti44_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ca40_He4_to_Ti44_reaclib)*Y(He4)*state.rho; jac.set(Ti44, Ca40, scratch); - scratch = screened_rates(k_He4_Ca41_to_n_Ti44_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ca41_He4_to_n_Ti44_derived)*Y(He4)*state.rho; jac.set(Ti44, Ca41, scratch); jac.set(Ti44, Ca42, 0.0); @@ -38690,10 +36499,10 @@ void jac_nuc(const burn_t& state, jac.set(Ti44, Ca48, 0.0); - scratch = screened_rates(k_p_Sc43_to_Ti44_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc43_p_to_Ti44_reaclib)*Y(H1)*state.rho; jac.set(Ti44, Sc43, scratch); - scratch = screened_rates(k_Sc44_to_Ti44_weaktab) + screened_rates(k_p_Sc44_to_n_Ti44_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc44_p_to_n_Ti44_derived)*Y(H1)*state.rho + screened_rates(k_Sc44_to_Ti44_beta_neg_weaktab); jac.set(Ti44, Sc44, scratch); jac.set(Ti44, Sc45, 0.0); @@ -38706,10 +36515,10 @@ void jac_nuc(const burn_t& state, jac.set(Ti44, Sc49, 0.0); - scratch = -screened_rates(k_He4_Ti44_to_Cr48_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ti44_to_p_V47_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti44_to_He4_Ca40_reaclib) - screened_rates(k_Ti44_to_Sc44_weaktab) - screened_rates(k_Ti44_to_p_Sc43_reaclib) - screened_rates(k_n_Ti44_to_He4_Ca41_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti44_to_Ti45_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti44_to_p_Sc44_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Ti44_He4_to_Cr48_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti44_He4_to_p_V47_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti44_n_to_He4_Ca41_reaclib)*Y(N)*state.rho - screened_rates(k_Ti44_n_to_Ti45_reaclib)*Y(N)*state.rho - screened_rates(k_Ti44_n_to_p_Sc44_reaclib)*Y(N)*state.rho - screened_rates(k_Ti44_to_He4_Ca40_derived) - screened_rates(k_Ti44_to_Sc44_electron_capture_weaktab) - screened_rates(k_Ti44_to_p_Sc43_derived); jac.set(Ti44, Ti44, scratch); - scratch = screened_rates(k_Ti45_to_n_Ti44_reaclib); + scratch = screened_rates(k_Ti45_to_n_Ti44_derived); jac.set(Ti44, Ti45, scratch); jac.set(Ti44, Ti46, 0.0); @@ -38726,7 +36535,7 @@ void jac_nuc(const burn_t& state, jac.set(Ti44, V46, 0.0); - scratch = screened_rates(k_p_V47_to_He4_Ti44_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V47_p_to_He4_Ti44_derived)*Y(H1)*state.rho; jac.set(Ti44, V47, scratch); jac.set(Ti44, V48, 0.0); @@ -38739,7 +36548,7 @@ void jac_nuc(const burn_t& state, jac.set(Ti44, V52, 0.0); - scratch = screened_rates(k_Cr48_to_He4_Ti44_reaclib); + scratch = screened_rates(k_Cr48_to_He4_Ti44_derived); jac.set(Ti44, Cr48, scratch); jac.set(Ti44, Cr49, 0.0); @@ -38856,17 +36665,17 @@ void jac_nuc(const burn_t& state, jac.set(Ti44, Ge64, 0.0); - scratch = screened_rates(k_n_Cr48_to_He4_Ti45_reaclib)*Y(Cr48)*state.rho + screened_rates(k_n_Ti44_to_Ti45_reaclib)*Y(Ti44)*state.rho - screened_rates(k_n_Ti45_to_He4_Ca42_reaclib)*Y(Ti45)*state.rho - screened_rates(k_n_Ti45_to_Ti46_reaclib)*Y(Ti45)*state.rho - screened_rates(k_n_Ti45_to_p_Sc45_reaclib)*Y(Ti45)*state.rho; + scratch = screened_rates(k_Cr48_n_to_He4_Ti45_reaclib)*Y(Cr48)*state.rho + screened_rates(k_Ti44_n_to_Ti45_reaclib)*Y(Ti44)*state.rho - screened_rates(k_Ti45_n_to_He4_Ca42_reaclib)*Y(Ti45)*state.rho - screened_rates(k_Ti45_n_to_Ti46_reaclib)*Y(Ti45)*state.rho - screened_rates(k_Ti45_n_to_p_Sc45_reaclib)*Y(Ti45)*state.rho; jac.set(Ti45, N, scratch); - scratch = screened_rates(k_p_Sc44_to_Ti45_reaclib)*Y(Sc44)*state.rho + screened_rates(k_p_Sc45_to_n_Ti45_reaclib)*Y(Sc45)*state.rho - screened_rates(k_p_Ti45_to_V46_reaclib)*Y(Ti45)*state.rho + screened_rates(k_p_V48_to_He4_Ti45_reaclib)*Y(V48)*state.rho; + scratch = screened_rates(k_Sc44_p_to_Ti45_reaclib)*Y(Sc44)*state.rho + screened_rates(k_Sc45_p_to_n_Ti45_derived)*Y(Sc45)*state.rho - screened_rates(k_Ti45_p_to_V46_reaclib)*Y(Ti45)*state.rho + screened_rates(k_V48_p_to_He4_Ti45_derived)*Y(V48)*state.rho; jac.set(Ti45, H1, scratch); jac.set(Ti45, H2, 0.0); jac.set(Ti45, He3, 0.0); - scratch = screened_rates(k_He4_Ca41_to_Ti45_reaclib)*Y(Ca41)*state.rho + screened_rates(k_He4_Ca42_to_n_Ti45_reaclib)*Y(Ca42)*state.rho - screened_rates(k_He4_Ti45_to_Cr49_reaclib)*Y(Ti45)*state.rho - screened_rates(k_He4_Ti45_to_n_Cr48_reaclib)*Y(Ti45)*state.rho - screened_rates(k_He4_Ti45_to_p_V48_reaclib)*Y(Ti45)*state.rho; + scratch = screened_rates(k_Ca41_He4_to_Ti45_reaclib)*Y(Ca41)*state.rho + screened_rates(k_Ca42_He4_to_n_Ti45_derived)*Y(Ca42)*state.rho - screened_rates(k_Ti45_He4_to_Cr49_reaclib)*Y(Ti45)*state.rho - screened_rates(k_Ti45_He4_to_n_Cr48_derived)*Y(Ti45)*state.rho - screened_rates(k_Ti45_He4_to_p_V48_reaclib)*Y(Ti45)*state.rho; jac.set(Ti45, He4, scratch); jac.set(Ti45, Li6, 0.0); @@ -39003,10 +36812,10 @@ void jac_nuc(const burn_t& state, jac.set(Ti45, Ca40, 0.0); - scratch = screened_rates(k_He4_Ca41_to_Ti45_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ca41_He4_to_Ti45_reaclib)*Y(He4)*state.rho; jac.set(Ti45, Ca41, scratch); - scratch = screened_rates(k_He4_Ca42_to_n_Ti45_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ca42_He4_to_n_Ti45_derived)*Y(He4)*state.rho; jac.set(Ti45, Ca42, scratch); jac.set(Ti45, Ca43, 0.0); @@ -39023,10 +36832,10 @@ void jac_nuc(const burn_t& state, jac.set(Ti45, Sc43, 0.0); - scratch = screened_rates(k_p_Sc44_to_Ti45_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc44_p_to_Ti45_reaclib)*Y(H1)*state.rho; jac.set(Ti45, Sc44, scratch); - scratch = screened_rates(k_Sc45_to_Ti45_weaktab) + screened_rates(k_p_Sc45_to_n_Ti45_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc45_p_to_n_Ti45_derived)*Y(H1)*state.rho + screened_rates(k_Sc45_to_Ti45_beta_neg_weaktab); jac.set(Ti45, Sc45, scratch); jac.set(Ti45, Sc46, 0.0); @@ -39037,13 +36846,13 @@ void jac_nuc(const burn_t& state, jac.set(Ti45, Sc49, 0.0); - scratch = screened_rates(k_n_Ti44_to_Ti45_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ti44_n_to_Ti45_reaclib)*Y(N)*state.rho; jac.set(Ti45, Ti44, scratch); - scratch = -screened_rates(k_He4_Ti45_to_Cr49_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ti45_to_n_Cr48_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ti45_to_p_V48_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti45_to_He4_Ca41_reaclib) - screened_rates(k_Ti45_to_Sc45_weaktab) - screened_rates(k_Ti45_to_n_Ti44_reaclib) - screened_rates(k_Ti45_to_p_Sc44_reaclib) - screened_rates(k_n_Ti45_to_He4_Ca42_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti45_to_Ti46_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti45_to_p_Sc45_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ti45_to_V46_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ti45_He4_to_Cr49_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti45_He4_to_n_Cr48_derived)*Y(He4)*state.rho - screened_rates(k_Ti45_He4_to_p_V48_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti45_n_to_He4_Ca42_reaclib)*Y(N)*state.rho - screened_rates(k_Ti45_n_to_Ti46_reaclib)*Y(N)*state.rho - screened_rates(k_Ti45_n_to_p_Sc45_reaclib)*Y(N)*state.rho - screened_rates(k_Ti45_p_to_V46_reaclib)*Y(H1)*state.rho - screened_rates(k_Ti45_to_He4_Ca41_derived) - screened_rates(k_Ti45_to_Sc45_electron_capture_weaktab) - screened_rates(k_Ti45_to_n_Ti44_derived) - screened_rates(k_Ti45_to_p_Sc44_derived); jac.set(Ti45, Ti45, scratch); - scratch = screened_rates(k_Ti46_to_n_Ti45_reaclib); + scratch = screened_rates(k_Ti46_to_n_Ti45_derived); jac.set(Ti45, Ti46, scratch); jac.set(Ti45, Ti47, 0.0); @@ -39056,12 +36865,12 @@ void jac_nuc(const burn_t& state, jac.set(Ti45, Ti51, 0.0); - scratch = screened_rates(k_V46_to_p_Ti45_reaclib); + scratch = screened_rates(k_V46_to_p_Ti45_derived); jac.set(Ti45, V46, scratch); jac.set(Ti45, V47, 0.0); - scratch = screened_rates(k_p_V48_to_He4_Ti45_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V48_p_to_He4_Ti45_derived)*Y(H1)*state.rho; jac.set(Ti45, V48, scratch); jac.set(Ti45, V49, 0.0); @@ -39072,10 +36881,10 @@ void jac_nuc(const burn_t& state, jac.set(Ti45, V52, 0.0); - scratch = screened_rates(k_n_Cr48_to_He4_Ti45_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cr48_n_to_He4_Ti45_reaclib)*Y(N)*state.rho; jac.set(Ti45, Cr48, scratch); - scratch = screened_rates(k_Cr49_to_He4_Ti45_reaclib); + scratch = screened_rates(k_Cr49_to_He4_Ti45_derived); jac.set(Ti45, Cr49, scratch); jac.set(Ti45, Cr50, 0.0); @@ -39190,17 +36999,17 @@ void jac_nuc(const burn_t& state, jac.set(Ti45, Ge64, 0.0); - scratch = screened_rates(k_n_Cr49_to_He4_Ti46_reaclib)*Y(Cr49)*state.rho + screened_rates(k_n_Ti45_to_Ti46_reaclib)*Y(Ti45)*state.rho - screened_rates(k_n_Ti46_to_He4_Ca43_reaclib)*Y(Ti46)*state.rho - screened_rates(k_n_Ti46_to_Ti47_reaclib)*Y(Ti46)*state.rho - screened_rates(k_n_Ti46_to_p_Sc46_reaclib)*Y(Ti46)*state.rho + screened_rates(k_n_V46_to_p_Ti46_reaclib)*Y(V46)*state.rho; + scratch = screened_rates(k_Cr49_n_to_He4_Ti46_reaclib)*Y(Cr49)*state.rho + screened_rates(k_Ti45_n_to_Ti46_reaclib)*Y(Ti45)*state.rho - screened_rates(k_Ti46_n_to_He4_Ca43_derived)*Y(Ti46)*state.rho - screened_rates(k_Ti46_n_to_Ti47_reaclib)*Y(Ti46)*state.rho - screened_rates(k_Ti46_n_to_p_Sc46_derived)*Y(Ti46)*state.rho + screened_rates(k_V46_n_to_p_Ti46_reaclib)*Y(V46)*state.rho; jac.set(Ti46, N, scratch); - scratch = screened_rates(k_p_Sc45_to_Ti46_reaclib)*Y(Sc45)*state.rho + screened_rates(k_p_Sc46_to_n_Ti46_reaclib)*Y(Sc46)*state.rho - screened_rates(k_p_Ti46_to_He4_Sc43_reaclib)*Y(Ti46)*state.rho - screened_rates(k_p_Ti46_to_V47_reaclib)*Y(Ti46)*state.rho - screened_rates(k_p_Ti46_to_n_V46_reaclib)*Y(Ti46)*state.rho + screened_rates(k_p_V49_to_He4_Ti46_reaclib)*Y(V49)*state.rho; + scratch = screened_rates(k_Sc45_p_to_Ti46_reaclib)*Y(Sc45)*state.rho + screened_rates(k_Sc46_p_to_n_Ti46_reaclib)*Y(Sc46)*state.rho - screened_rates(k_Ti46_p_to_He4_Sc43_derived)*Y(Ti46)*state.rho - screened_rates(k_Ti46_p_to_V47_reaclib)*Y(Ti46)*state.rho - screened_rates(k_Ti46_p_to_n_V46_derived)*Y(Ti46)*state.rho + screened_rates(k_V49_p_to_He4_Ti46_reaclib)*Y(V49)*state.rho; jac.set(Ti46, H1, scratch); jac.set(Ti46, H2, 0.0); jac.set(Ti46, He3, 0.0); - scratch = screened_rates(k_He4_Ca42_to_Ti46_reaclib)*Y(Ca42)*state.rho + screened_rates(k_He4_Ca43_to_n_Ti46_reaclib)*Y(Ca43)*state.rho + screened_rates(k_He4_Sc43_to_p_Ti46_reaclib)*Y(Sc43)*state.rho - screened_rates(k_He4_Ti46_to_Cr50_reaclib)*Y(Ti46)*state.rho - screened_rates(k_He4_Ti46_to_n_Cr49_reaclib)*Y(Ti46)*state.rho - screened_rates(k_He4_Ti46_to_p_V49_reaclib)*Y(Ti46)*state.rho; + scratch = screened_rates(k_Ca42_He4_to_Ti46_reaclib)*Y(Ca42)*state.rho + screened_rates(k_Ca43_He4_to_n_Ti46_reaclib)*Y(Ca43)*state.rho + screened_rates(k_Sc43_He4_to_p_Ti46_reaclib)*Y(Sc43)*state.rho - screened_rates(k_Ti46_He4_to_Cr50_reaclib)*Y(Ti46)*state.rho - screened_rates(k_Ti46_He4_to_n_Cr49_derived)*Y(Ti46)*state.rho - screened_rates(k_Ti46_He4_to_p_V49_derived)*Y(Ti46)*state.rho; jac.set(Ti46, He4, scratch); jac.set(Ti46, Li6, 0.0); @@ -39339,10 +37148,10 @@ void jac_nuc(const burn_t& state, jac.set(Ti46, Ca41, 0.0); - scratch = screened_rates(k_He4_Ca42_to_Ti46_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ca42_He4_to_Ti46_reaclib)*Y(He4)*state.rho; jac.set(Ti46, Ca42, scratch); - scratch = screened_rates(k_He4_Ca43_to_n_Ti46_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ca43_He4_to_n_Ti46_reaclib)*Y(He4)*state.rho; jac.set(Ti46, Ca43, scratch); jac.set(Ti46, Ca44, 0.0); @@ -39355,15 +37164,15 @@ void jac_nuc(const burn_t& state, jac.set(Ti46, Ca48, 0.0); - scratch = screened_rates(k_He4_Sc43_to_p_Ti46_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Sc43_He4_to_p_Ti46_reaclib)*Y(He4)*state.rho; jac.set(Ti46, Sc43, scratch); jac.set(Ti46, Sc44, 0.0); - scratch = screened_rates(k_p_Sc45_to_Ti46_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc45_p_to_Ti46_reaclib)*Y(H1)*state.rho; jac.set(Ti46, Sc45, scratch); - scratch = screened_rates(k_Sc46_to_Ti46_weaktab) + screened_rates(k_p_Sc46_to_n_Ti46_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc46_p_to_n_Ti46_reaclib)*Y(H1)*state.rho + screened_rates(k_Sc46_to_Ti46_beta_neg_weaktab); jac.set(Ti46, Sc46, scratch); jac.set(Ti46, Sc47, 0.0); @@ -39374,13 +37183,13 @@ void jac_nuc(const burn_t& state, jac.set(Ti46, Ti44, 0.0); - scratch = screened_rates(k_n_Ti45_to_Ti46_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ti45_n_to_Ti46_reaclib)*Y(N)*state.rho; jac.set(Ti46, Ti45, scratch); - scratch = -screened_rates(k_He4_Ti46_to_Cr50_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ti46_to_n_Cr49_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ti46_to_p_V49_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti46_to_He4_Ca42_reaclib) - screened_rates(k_Ti46_to_Sc46_weaktab) - screened_rates(k_Ti46_to_V46_weaktab) - screened_rates(k_Ti46_to_n_Ti45_reaclib) - screened_rates(k_Ti46_to_p_Sc45_reaclib) - screened_rates(k_n_Ti46_to_He4_Ca43_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti46_to_Ti47_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti46_to_p_Sc46_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ti46_to_He4_Sc43_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ti46_to_V47_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ti46_to_n_V46_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ti46_He4_to_Cr50_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti46_He4_to_n_Cr49_derived)*Y(He4)*state.rho - screened_rates(k_Ti46_He4_to_p_V49_derived)*Y(He4)*state.rho - screened_rates(k_Ti46_n_to_He4_Ca43_derived)*Y(N)*state.rho - screened_rates(k_Ti46_n_to_Ti47_reaclib)*Y(N)*state.rho - screened_rates(k_Ti46_n_to_p_Sc46_derived)*Y(N)*state.rho - screened_rates(k_Ti46_p_to_He4_Sc43_derived)*Y(H1)*state.rho - screened_rates(k_Ti46_p_to_V47_reaclib)*Y(H1)*state.rho - screened_rates(k_Ti46_p_to_n_V46_derived)*Y(H1)*state.rho - screened_rates(k_Ti46_to_He4_Ca42_derived) - screened_rates(k_Ti46_to_Sc46_electron_capture_weaktab) - screened_rates(k_Ti46_to_V46_beta_neg_weaktab) - screened_rates(k_Ti46_to_n_Ti45_derived) - screened_rates(k_Ti46_to_p_Sc45_derived); jac.set(Ti46, Ti46, scratch); - scratch = screened_rates(k_Ti47_to_n_Ti46_reaclib); + scratch = screened_rates(k_Ti47_to_n_Ti46_derived); jac.set(Ti46, Ti47, scratch); jac.set(Ti46, Ti48, 0.0); @@ -39391,15 +37200,15 @@ void jac_nuc(const burn_t& state, jac.set(Ti46, Ti51, 0.0); - scratch = screened_rates(k_V46_to_Ti46_weaktab) + screened_rates(k_n_V46_to_p_Ti46_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_V46_n_to_p_Ti46_reaclib)*Y(N)*state.rho + screened_rates(k_V46_to_Ti46_electron_capture_weaktab); jac.set(Ti46, V46, scratch); - scratch = screened_rates(k_V47_to_p_Ti46_reaclib); + scratch = screened_rates(k_V47_to_p_Ti46_derived); jac.set(Ti46, V47, scratch); jac.set(Ti46, V48, 0.0); - scratch = screened_rates(k_p_V49_to_He4_Ti46_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V49_p_to_He4_Ti46_reaclib)*Y(H1)*state.rho; jac.set(Ti46, V49, scratch); jac.set(Ti46, V50, 0.0); @@ -39410,10 +37219,10 @@ void jac_nuc(const burn_t& state, jac.set(Ti46, Cr48, 0.0); - scratch = screened_rates(k_n_Cr49_to_He4_Ti46_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cr49_n_to_He4_Ti46_reaclib)*Y(N)*state.rho; jac.set(Ti46, Cr49, scratch); - scratch = screened_rates(k_Cr50_to_He4_Ti46_reaclib); + scratch = screened_rates(k_Cr50_to_He4_Ti46_derived); jac.set(Ti46, Cr50, scratch); jac.set(Ti46, Cr51, 0.0); @@ -39526,17 +37335,17 @@ void jac_nuc(const burn_t& state, jac.set(Ti46, Ge64, 0.0); - scratch = screened_rates(k_n_Cr50_to_He4_Ti47_reaclib)*Y(Cr50)*state.rho + screened_rates(k_n_Ti46_to_Ti47_reaclib)*Y(Ti46)*state.rho - screened_rates(k_n_Ti47_to_He4_Ca44_reaclib)*Y(Ti47)*state.rho - screened_rates(k_n_Ti47_to_Ti48_reaclib)*Y(Ti47)*state.rho - screened_rates(k_n_Ti47_to_p_Sc47_reaclib)*Y(Ti47)*state.rho + screened_rates(k_n_V47_to_p_Ti47_reaclib)*Y(V47)*state.rho; + scratch = screened_rates(k_Cr50_n_to_He4_Ti47_reaclib)*Y(Cr50)*state.rho + screened_rates(k_Ti46_n_to_Ti47_reaclib)*Y(Ti46)*state.rho - screened_rates(k_Ti47_n_to_He4_Ca44_reaclib)*Y(Ti47)*state.rho - screened_rates(k_Ti47_n_to_Ti48_reaclib)*Y(Ti47)*state.rho - screened_rates(k_Ti47_n_to_p_Sc47_reaclib)*Y(Ti47)*state.rho + screened_rates(k_V47_n_to_p_Ti47_reaclib)*Y(V47)*state.rho; jac.set(Ti47, N, scratch); - scratch = screened_rates(k_p_Sc46_to_Ti47_reaclib)*Y(Sc46)*state.rho + screened_rates(k_p_Sc47_to_n_Ti47_reaclib)*Y(Sc47)*state.rho - screened_rates(k_p_Ti47_to_He4_Sc44_reaclib)*Y(Ti47)*state.rho - screened_rates(k_p_Ti47_to_V48_reaclib)*Y(Ti47)*state.rho - screened_rates(k_p_Ti47_to_n_V47_reaclib)*Y(Ti47)*state.rho + screened_rates(k_p_V50_to_He4_Ti47_reaclib)*Y(V50)*state.rho; + scratch = screened_rates(k_Sc46_p_to_Ti47_reaclib)*Y(Sc46)*state.rho + screened_rates(k_Sc47_p_to_n_Ti47_derived)*Y(Sc47)*state.rho - screened_rates(k_Ti47_p_to_He4_Sc44_derived)*Y(Ti47)*state.rho - screened_rates(k_Ti47_p_to_V48_reaclib)*Y(Ti47)*state.rho - screened_rates(k_Ti47_p_to_n_V47_derived)*Y(Ti47)*state.rho + screened_rates(k_V50_p_to_He4_Ti47_reaclib)*Y(V50)*state.rho; jac.set(Ti47, H1, scratch); jac.set(Ti47, H2, 0.0); jac.set(Ti47, He3, 0.0); - scratch = screened_rates(k_He4_Ca43_to_Ti47_reaclib)*Y(Ca43)*state.rho + screened_rates(k_He4_Ca44_to_n_Ti47_reaclib)*Y(Ca44)*state.rho + screened_rates(k_He4_Sc44_to_p_Ti47_reaclib)*Y(Sc44)*state.rho - screened_rates(k_He4_Ti47_to_Cr51_reaclib)*Y(Ti47)*state.rho - screened_rates(k_He4_Ti47_to_n_Cr50_reaclib)*Y(Ti47)*state.rho - screened_rates(k_He4_Ti47_to_p_V50_reaclib)*Y(Ti47)*state.rho; + scratch = screened_rates(k_Ca43_He4_to_Ti47_reaclib)*Y(Ca43)*state.rho + screened_rates(k_Ca44_He4_to_n_Ti47_derived)*Y(Ca44)*state.rho + screened_rates(k_Sc44_He4_to_p_Ti47_reaclib)*Y(Sc44)*state.rho - screened_rates(k_Ti47_He4_to_Cr51_reaclib)*Y(Ti47)*state.rho - screened_rates(k_Ti47_He4_to_n_Cr50_derived)*Y(Ti47)*state.rho - screened_rates(k_Ti47_He4_to_p_V50_derived)*Y(Ti47)*state.rho; jac.set(Ti47, He4, scratch); jac.set(Ti47, Li6, 0.0); @@ -39677,10 +37486,10 @@ void jac_nuc(const burn_t& state, jac.set(Ti47, Ca42, 0.0); - scratch = screened_rates(k_He4_Ca43_to_Ti47_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ca43_He4_to_Ti47_reaclib)*Y(He4)*state.rho; jac.set(Ti47, Ca43, scratch); - scratch = screened_rates(k_He4_Ca44_to_n_Ti47_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ca44_He4_to_n_Ti47_derived)*Y(He4)*state.rho; jac.set(Ti47, Ca44, scratch); jac.set(Ti47, Ca45, 0.0); @@ -39693,15 +37502,15 @@ void jac_nuc(const burn_t& state, jac.set(Ti47, Sc43, 0.0); - scratch = screened_rates(k_He4_Sc44_to_p_Ti47_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Sc44_He4_to_p_Ti47_reaclib)*Y(He4)*state.rho; jac.set(Ti47, Sc44, scratch); jac.set(Ti47, Sc45, 0.0); - scratch = screened_rates(k_p_Sc46_to_Ti47_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc46_p_to_Ti47_reaclib)*Y(H1)*state.rho; jac.set(Ti47, Sc46, scratch); - scratch = screened_rates(k_Sc47_to_Ti47_weaktab) + screened_rates(k_p_Sc47_to_n_Ti47_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc47_p_to_n_Ti47_derived)*Y(H1)*state.rho + screened_rates(k_Sc47_to_Ti47_beta_neg_weaktab); jac.set(Ti47, Sc47, scratch); jac.set(Ti47, Sc48, 0.0); @@ -39712,13 +37521,13 @@ void jac_nuc(const burn_t& state, jac.set(Ti47, Ti45, 0.0); - scratch = screened_rates(k_n_Ti46_to_Ti47_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ti46_n_to_Ti47_reaclib)*Y(N)*state.rho; jac.set(Ti47, Ti46, scratch); - scratch = -screened_rates(k_He4_Ti47_to_Cr51_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ti47_to_n_Cr50_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ti47_to_p_V50_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti47_to_He4_Ca43_reaclib) - screened_rates(k_Ti47_to_Sc47_weaktab) - screened_rates(k_Ti47_to_V47_weaktab) - screened_rates(k_Ti47_to_n_Ti46_reaclib) - screened_rates(k_Ti47_to_p_Sc46_reaclib) - screened_rates(k_n_Ti47_to_He4_Ca44_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti47_to_Ti48_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti47_to_p_Sc47_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ti47_to_He4_Sc44_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ti47_to_V48_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ti47_to_n_V47_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ti47_He4_to_Cr51_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti47_He4_to_n_Cr50_derived)*Y(He4)*state.rho - screened_rates(k_Ti47_He4_to_p_V50_derived)*Y(He4)*state.rho - screened_rates(k_Ti47_n_to_He4_Ca44_reaclib)*Y(N)*state.rho - screened_rates(k_Ti47_n_to_Ti48_reaclib)*Y(N)*state.rho - screened_rates(k_Ti47_n_to_p_Sc47_reaclib)*Y(N)*state.rho - screened_rates(k_Ti47_p_to_He4_Sc44_derived)*Y(H1)*state.rho - screened_rates(k_Ti47_p_to_V48_reaclib)*Y(H1)*state.rho - screened_rates(k_Ti47_p_to_n_V47_derived)*Y(H1)*state.rho - screened_rates(k_Ti47_to_He4_Ca43_derived) - screened_rates(k_Ti47_to_Sc47_electron_capture_weaktab) - screened_rates(k_Ti47_to_V47_beta_neg_weaktab) - screened_rates(k_Ti47_to_n_Ti46_derived) - screened_rates(k_Ti47_to_p_Sc46_derived); jac.set(Ti47, Ti47, scratch); - scratch = screened_rates(k_Ti48_to_n_Ti47_reaclib); + scratch = screened_rates(k_Ti48_to_n_Ti47_derived); jac.set(Ti47, Ti48, scratch); jac.set(Ti47, Ti49, 0.0); @@ -39729,15 +37538,15 @@ void jac_nuc(const burn_t& state, jac.set(Ti47, V46, 0.0); - scratch = screened_rates(k_V47_to_Ti47_weaktab) + screened_rates(k_n_V47_to_p_Ti47_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_V47_n_to_p_Ti47_reaclib)*Y(N)*state.rho + screened_rates(k_V47_to_Ti47_electron_capture_weaktab); jac.set(Ti47, V47, scratch); - scratch = screened_rates(k_V48_to_p_Ti47_reaclib); + scratch = screened_rates(k_V48_to_p_Ti47_derived); jac.set(Ti47, V48, scratch); jac.set(Ti47, V49, 0.0); - scratch = screened_rates(k_p_V50_to_He4_Ti47_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V50_p_to_He4_Ti47_reaclib)*Y(H1)*state.rho; jac.set(Ti47, V50, scratch); jac.set(Ti47, V51, 0.0); @@ -39748,10 +37557,10 @@ void jac_nuc(const burn_t& state, jac.set(Ti47, Cr49, 0.0); - scratch = screened_rates(k_n_Cr50_to_He4_Ti47_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cr50_n_to_He4_Ti47_reaclib)*Y(N)*state.rho; jac.set(Ti47, Cr50, scratch); - scratch = screened_rates(k_Cr51_to_He4_Ti47_reaclib); + scratch = screened_rates(k_Cr51_to_He4_Ti47_derived); jac.set(Ti47, Cr51, scratch); jac.set(Ti47, Cr52, 0.0); @@ -39862,17 +37671,17 @@ void jac_nuc(const burn_t& state, jac.set(Ti47, Ge64, 0.0); - scratch = screened_rates(k_n_Cr51_to_He4_Ti48_reaclib)*Y(Cr51)*state.rho + screened_rates(k_n_Ti47_to_Ti48_reaclib)*Y(Ti47)*state.rho - screened_rates(k_n_Ti48_to_He4_Ca45_reaclib)*Y(Ti48)*state.rho - screened_rates(k_n_Ti48_to_Ti49_reaclib)*Y(Ti48)*state.rho - screened_rates(k_n_Ti48_to_p_Sc48_reaclib)*Y(Ti48)*state.rho + screened_rates(k_n_V48_to_p_Ti48_reaclib)*Y(V48)*state.rho; + scratch = screened_rates(k_Cr51_n_to_He4_Ti48_reaclib)*Y(Cr51)*state.rho + screened_rates(k_Ti47_n_to_Ti48_reaclib)*Y(Ti47)*state.rho - screened_rates(k_Ti48_n_to_He4_Ca45_derived)*Y(Ti48)*state.rho - screened_rates(k_Ti48_n_to_Ti49_reaclib)*Y(Ti48)*state.rho - screened_rates(k_Ti48_n_to_p_Sc48_derived)*Y(Ti48)*state.rho + screened_rates(k_V48_n_to_p_Ti48_reaclib)*Y(V48)*state.rho; jac.set(Ti48, N, scratch); - scratch = screened_rates(k_p_Sc47_to_Ti48_reaclib)*Y(Sc47)*state.rho + screened_rates(k_p_Sc48_to_n_Ti48_reaclib)*Y(Sc48)*state.rho - screened_rates(k_p_Ti48_to_He4_Sc45_reaclib)*Y(Ti48)*state.rho - screened_rates(k_p_Ti48_to_V49_reaclib)*Y(Ti48)*state.rho - screened_rates(k_p_Ti48_to_n_V48_reaclib)*Y(Ti48)*state.rho + screened_rates(k_p_V51_to_He4_Ti48_reaclib)*Y(V51)*state.rho; + scratch = screened_rates(k_Sc47_p_to_Ti48_reaclib)*Y(Sc47)*state.rho + screened_rates(k_Sc48_p_to_n_Ti48_reaclib)*Y(Sc48)*state.rho - screened_rates(k_Ti48_p_to_He4_Sc45_derived)*Y(Ti48)*state.rho - screened_rates(k_Ti48_p_to_V49_reaclib)*Y(Ti48)*state.rho - screened_rates(k_Ti48_p_to_n_V48_derived)*Y(Ti48)*state.rho + screened_rates(k_V51_p_to_He4_Ti48_reaclib)*Y(V51)*state.rho; jac.set(Ti48, H1, scratch); jac.set(Ti48, H2, 0.0); jac.set(Ti48, He3, 0.0); - scratch = screened_rates(k_He4_Ca44_to_Ti48_reaclib)*Y(Ca44)*state.rho + screened_rates(k_He4_Ca45_to_n_Ti48_reaclib)*Y(Ca45)*state.rho + screened_rates(k_He4_Sc45_to_p_Ti48_reaclib)*Y(Sc45)*state.rho - screened_rates(k_He4_Ti48_to_Cr52_reaclib)*Y(Ti48)*state.rho - screened_rates(k_He4_Ti48_to_n_Cr51_reaclib)*Y(Ti48)*state.rho - screened_rates(k_He4_Ti48_to_p_V51_reaclib)*Y(Ti48)*state.rho; + scratch = screened_rates(k_Ca44_He4_to_Ti48_reaclib)*Y(Ca44)*state.rho + screened_rates(k_Ca45_He4_to_n_Ti48_reaclib)*Y(Ca45)*state.rho + screened_rates(k_Sc45_He4_to_p_Ti48_reaclib)*Y(Sc45)*state.rho - screened_rates(k_Ti48_He4_to_Cr52_reaclib)*Y(Ti48)*state.rho - screened_rates(k_Ti48_He4_to_n_Cr51_derived)*Y(Ti48)*state.rho - screened_rates(k_Ti48_He4_to_p_V51_derived)*Y(Ti48)*state.rho; jac.set(Ti48, He4, scratch); jac.set(Ti48, Li6, 0.0); @@ -40015,10 +37824,10 @@ void jac_nuc(const burn_t& state, jac.set(Ti48, Ca43, 0.0); - scratch = screened_rates(k_He4_Ca44_to_Ti48_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ca44_He4_to_Ti48_reaclib)*Y(He4)*state.rho; jac.set(Ti48, Ca44, scratch); - scratch = screened_rates(k_He4_Ca45_to_n_Ti48_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ca45_He4_to_n_Ti48_reaclib)*Y(He4)*state.rho; jac.set(Ti48, Ca45, scratch); jac.set(Ti48, Ca46, 0.0); @@ -40031,15 +37840,15 @@ void jac_nuc(const burn_t& state, jac.set(Ti48, Sc44, 0.0); - scratch = screened_rates(k_He4_Sc45_to_p_Ti48_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Sc45_He4_to_p_Ti48_reaclib)*Y(He4)*state.rho; jac.set(Ti48, Sc45, scratch); jac.set(Ti48, Sc46, 0.0); - scratch = screened_rates(k_p_Sc47_to_Ti48_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc47_p_to_Ti48_reaclib)*Y(H1)*state.rho; jac.set(Ti48, Sc47, scratch); - scratch = screened_rates(k_Sc48_to_Ti48_weaktab) + screened_rates(k_p_Sc48_to_n_Ti48_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc48_p_to_n_Ti48_reaclib)*Y(H1)*state.rho + screened_rates(k_Sc48_to_Ti48_beta_neg_weaktab); jac.set(Ti48, Sc48, scratch); jac.set(Ti48, Sc49, 0.0); @@ -40050,13 +37859,13 @@ void jac_nuc(const burn_t& state, jac.set(Ti48, Ti46, 0.0); - scratch = screened_rates(k_n_Ti47_to_Ti48_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ti47_n_to_Ti48_reaclib)*Y(N)*state.rho; jac.set(Ti48, Ti47, scratch); - scratch = -screened_rates(k_He4_Ti48_to_Cr52_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ti48_to_n_Cr51_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ti48_to_p_V51_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti48_to_He4_Ca44_reaclib) - screened_rates(k_Ti48_to_Sc48_weaktab) - screened_rates(k_Ti48_to_V48_weaktab) - screened_rates(k_Ti48_to_n_Ti47_reaclib) - screened_rates(k_Ti48_to_p_Sc47_reaclib) - screened_rates(k_n_Ti48_to_He4_Ca45_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti48_to_Ti49_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti48_to_p_Sc48_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ti48_to_He4_Sc45_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ti48_to_V49_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ti48_to_n_V48_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ti48_He4_to_Cr52_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti48_He4_to_n_Cr51_derived)*Y(He4)*state.rho - screened_rates(k_Ti48_He4_to_p_V51_derived)*Y(He4)*state.rho - screened_rates(k_Ti48_n_to_He4_Ca45_derived)*Y(N)*state.rho - screened_rates(k_Ti48_n_to_Ti49_reaclib)*Y(N)*state.rho - screened_rates(k_Ti48_n_to_p_Sc48_derived)*Y(N)*state.rho - screened_rates(k_Ti48_p_to_He4_Sc45_derived)*Y(H1)*state.rho - screened_rates(k_Ti48_p_to_V49_reaclib)*Y(H1)*state.rho - screened_rates(k_Ti48_p_to_n_V48_derived)*Y(H1)*state.rho - screened_rates(k_Ti48_to_He4_Ca44_derived) - screened_rates(k_Ti48_to_Sc48_electron_capture_weaktab) - screened_rates(k_Ti48_to_V48_beta_neg_weaktab) - screened_rates(k_Ti48_to_n_Ti47_derived) - screened_rates(k_Ti48_to_p_Sc47_derived); jac.set(Ti48, Ti48, scratch); - scratch = screened_rates(k_Ti49_to_n_Ti48_reaclib); + scratch = screened_rates(k_Ti49_to_n_Ti48_derived); jac.set(Ti48, Ti49, scratch); jac.set(Ti48, Ti50, 0.0); @@ -40067,15 +37876,15 @@ void jac_nuc(const burn_t& state, jac.set(Ti48, V47, 0.0); - scratch = screened_rates(k_V48_to_Ti48_weaktab) + screened_rates(k_n_V48_to_p_Ti48_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_V48_n_to_p_Ti48_reaclib)*Y(N)*state.rho + screened_rates(k_V48_to_Ti48_electron_capture_weaktab); jac.set(Ti48, V48, scratch); - scratch = screened_rates(k_V49_to_p_Ti48_reaclib); + scratch = screened_rates(k_V49_to_p_Ti48_derived); jac.set(Ti48, V49, scratch); jac.set(Ti48, V50, 0.0); - scratch = screened_rates(k_p_V51_to_He4_Ti48_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V51_p_to_He4_Ti48_reaclib)*Y(H1)*state.rho; jac.set(Ti48, V51, scratch); jac.set(Ti48, V52, 0.0); @@ -40086,10 +37895,10 @@ void jac_nuc(const burn_t& state, jac.set(Ti48, Cr50, 0.0); - scratch = screened_rates(k_n_Cr51_to_He4_Ti48_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cr51_n_to_He4_Ti48_reaclib)*Y(N)*state.rho; jac.set(Ti48, Cr51, scratch); - scratch = screened_rates(k_Cr52_to_He4_Ti48_reaclib); + scratch = screened_rates(k_Cr52_to_He4_Ti48_derived); jac.set(Ti48, Cr52, scratch); jac.set(Ti48, Cr53, 0.0); @@ -40198,17 +38007,17 @@ void jac_nuc(const burn_t& state, jac.set(Ti48, Ge64, 0.0); - scratch = screened_rates(k_n_Cr52_to_He4_Ti49_reaclib)*Y(Cr52)*state.rho + screened_rates(k_n_Ti48_to_Ti49_reaclib)*Y(Ti48)*state.rho - screened_rates(k_n_Ti49_to_He4_Ca46_reaclib)*Y(Ti49)*state.rho - screened_rates(k_n_Ti49_to_Ti50_reaclib)*Y(Ti49)*state.rho - screened_rates(k_n_Ti49_to_p_Sc49_reaclib)*Y(Ti49)*state.rho + screened_rates(k_n_V49_to_p_Ti49_reaclib)*Y(V49)*state.rho; + scratch = screened_rates(k_Cr52_n_to_He4_Ti49_derived)*Y(Cr52)*state.rho + screened_rates(k_Ti48_n_to_Ti49_reaclib)*Y(Ti48)*state.rho - screened_rates(k_Ti49_n_to_He4_Ca46_reaclib)*Y(Ti49)*state.rho - screened_rates(k_Ti49_n_to_Ti50_reaclib)*Y(Ti49)*state.rho - screened_rates(k_Ti49_n_to_p_Sc49_derived)*Y(Ti49)*state.rho + screened_rates(k_V49_n_to_p_Ti49_reaclib)*Y(V49)*state.rho; jac.set(Ti49, N, scratch); - scratch = screened_rates(k_p_Sc48_to_Ti49_reaclib)*Y(Sc48)*state.rho + screened_rates(k_p_Sc49_to_n_Ti49_reaclib)*Y(Sc49)*state.rho - screened_rates(k_p_Ti49_to_He4_Sc46_reaclib)*Y(Ti49)*state.rho - screened_rates(k_p_Ti49_to_V50_reaclib)*Y(Ti49)*state.rho - screened_rates(k_p_Ti49_to_n_V49_reaclib)*Y(Ti49)*state.rho + screened_rates(k_p_V52_to_He4_Ti49_reaclib)*Y(V52)*state.rho; + scratch = screened_rates(k_Sc48_p_to_Ti49_reaclib)*Y(Sc48)*state.rho + screened_rates(k_Sc49_p_to_n_Ti49_reaclib)*Y(Sc49)*state.rho - screened_rates(k_Ti49_p_to_He4_Sc46_derived)*Y(Ti49)*state.rho - screened_rates(k_Ti49_p_to_V50_reaclib)*Y(Ti49)*state.rho - screened_rates(k_Ti49_p_to_n_V49_derived)*Y(Ti49)*state.rho + screened_rates(k_V52_p_to_He4_Ti49_reaclib)*Y(V52)*state.rho; jac.set(Ti49, H1, scratch); jac.set(Ti49, H2, 0.0); jac.set(Ti49, He3, 0.0); - scratch = screened_rates(k_He4_Ca45_to_Ti49_reaclib)*Y(Ca45)*state.rho + screened_rates(k_He4_Ca46_to_n_Ti49_reaclib)*Y(Ca46)*state.rho + screened_rates(k_He4_Sc46_to_p_Ti49_reaclib)*Y(Sc46)*state.rho - screened_rates(k_He4_Ti49_to_Cr53_reaclib)*Y(Ti49)*state.rho - screened_rates(k_He4_Ti49_to_n_Cr52_reaclib)*Y(Ti49)*state.rho - screened_rates(k_He4_Ti49_to_p_V52_reaclib)*Y(Ti49)*state.rho; + scratch = screened_rates(k_Ca45_He4_to_Ti49_reaclib)*Y(Ca45)*state.rho + screened_rates(k_Ca46_He4_to_n_Ti49_derived)*Y(Ca46)*state.rho + screened_rates(k_Sc46_He4_to_p_Ti49_reaclib)*Y(Sc46)*state.rho - screened_rates(k_Ti49_He4_to_Cr53_reaclib)*Y(Ti49)*state.rho - screened_rates(k_Ti49_He4_to_n_Cr52_reaclib)*Y(Ti49)*state.rho - screened_rates(k_Ti49_He4_to_p_V52_derived)*Y(Ti49)*state.rho; jac.set(Ti49, He4, scratch); jac.set(Ti49, Li6, 0.0); @@ -40353,10 +38162,10 @@ void jac_nuc(const burn_t& state, jac.set(Ti49, Ca44, 0.0); - scratch = screened_rates(k_He4_Ca45_to_Ti49_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ca45_He4_to_Ti49_reaclib)*Y(He4)*state.rho; jac.set(Ti49, Ca45, scratch); - scratch = screened_rates(k_He4_Ca46_to_n_Ti49_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ca46_He4_to_n_Ti49_derived)*Y(He4)*state.rho; jac.set(Ti49, Ca46, scratch); jac.set(Ti49, Ca47, 0.0); @@ -40369,15 +38178,15 @@ void jac_nuc(const burn_t& state, jac.set(Ti49, Sc45, 0.0); - scratch = screened_rates(k_He4_Sc46_to_p_Ti49_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Sc46_He4_to_p_Ti49_reaclib)*Y(He4)*state.rho; jac.set(Ti49, Sc46, scratch); jac.set(Ti49, Sc47, 0.0); - scratch = screened_rates(k_p_Sc48_to_Ti49_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc48_p_to_Ti49_reaclib)*Y(H1)*state.rho; jac.set(Ti49, Sc48, scratch); - scratch = screened_rates(k_Sc49_to_Ti49_weaktab) + screened_rates(k_p_Sc49_to_n_Ti49_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc49_p_to_n_Ti49_reaclib)*Y(H1)*state.rho + screened_rates(k_Sc49_to_Ti49_beta_neg_weaktab); jac.set(Ti49, Sc49, scratch); jac.set(Ti49, Ti44, 0.0); @@ -40388,13 +38197,13 @@ void jac_nuc(const burn_t& state, jac.set(Ti49, Ti47, 0.0); - scratch = screened_rates(k_n_Ti48_to_Ti49_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ti48_n_to_Ti49_reaclib)*Y(N)*state.rho; jac.set(Ti49, Ti48, scratch); - scratch = -screened_rates(k_He4_Ti49_to_Cr53_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ti49_to_n_Cr52_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ti49_to_p_V52_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti49_to_He4_Ca45_reaclib) - screened_rates(k_Ti49_to_Sc49_weaktab) - screened_rates(k_Ti49_to_V49_weaktab) - screened_rates(k_Ti49_to_n_Ti48_reaclib) - screened_rates(k_Ti49_to_p_Sc48_reaclib) - screened_rates(k_n_Ti49_to_He4_Ca46_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti49_to_Ti50_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti49_to_p_Sc49_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ti49_to_He4_Sc46_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ti49_to_V50_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ti49_to_n_V49_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ti49_He4_to_Cr53_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti49_He4_to_n_Cr52_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti49_He4_to_p_V52_derived)*Y(He4)*state.rho - screened_rates(k_Ti49_n_to_He4_Ca46_reaclib)*Y(N)*state.rho - screened_rates(k_Ti49_n_to_Ti50_reaclib)*Y(N)*state.rho - screened_rates(k_Ti49_n_to_p_Sc49_derived)*Y(N)*state.rho - screened_rates(k_Ti49_p_to_He4_Sc46_derived)*Y(H1)*state.rho - screened_rates(k_Ti49_p_to_V50_reaclib)*Y(H1)*state.rho - screened_rates(k_Ti49_p_to_n_V49_derived)*Y(H1)*state.rho - screened_rates(k_Ti49_to_He4_Ca45_derived) - screened_rates(k_Ti49_to_Sc49_electron_capture_weaktab) - screened_rates(k_Ti49_to_V49_beta_neg_weaktab) - screened_rates(k_Ti49_to_n_Ti48_derived) - screened_rates(k_Ti49_to_p_Sc48_derived); jac.set(Ti49, Ti49, scratch); - scratch = screened_rates(k_Ti50_to_n_Ti49_reaclib); + scratch = screened_rates(k_Ti50_to_n_Ti49_derived); jac.set(Ti49, Ti50, scratch); jac.set(Ti49, Ti51, 0.0); @@ -40405,15 +38214,15 @@ void jac_nuc(const burn_t& state, jac.set(Ti49, V48, 0.0); - scratch = screened_rates(k_V49_to_Ti49_weaktab) + screened_rates(k_n_V49_to_p_Ti49_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_V49_n_to_p_Ti49_reaclib)*Y(N)*state.rho + screened_rates(k_V49_to_Ti49_electron_capture_weaktab); jac.set(Ti49, V49, scratch); - scratch = screened_rates(k_V50_to_p_Ti49_reaclib); + scratch = screened_rates(k_V50_to_p_Ti49_derived); jac.set(Ti49, V50, scratch); jac.set(Ti49, V51, 0.0); - scratch = screened_rates(k_p_V52_to_He4_Ti49_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V52_p_to_He4_Ti49_reaclib)*Y(H1)*state.rho; jac.set(Ti49, V52, scratch); jac.set(Ti49, Cr48, 0.0); @@ -40424,10 +38233,10 @@ void jac_nuc(const burn_t& state, jac.set(Ti49, Cr51, 0.0); - scratch = screened_rates(k_n_Cr52_to_He4_Ti49_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cr52_n_to_He4_Ti49_derived)*Y(N)*state.rho; jac.set(Ti49, Cr52, scratch); - scratch = screened_rates(k_Cr53_to_He4_Ti49_reaclib); + scratch = screened_rates(k_Cr53_to_He4_Ti49_derived); jac.set(Ti49, Cr53, scratch); jac.set(Ti49, Cr54, 0.0); @@ -40534,17 +38343,17 @@ void jac_nuc(const burn_t& state, jac.set(Ti49, Ge64, 0.0); - scratch = screened_rates(k_n_Cr53_to_He4_Ti50_reaclib)*Y(Cr53)*state.rho + screened_rates(k_n_Ti49_to_Ti50_reaclib)*Y(Ti49)*state.rho - screened_rates(k_n_Ti50_to_He4_Ca47_reaclib)*Y(Ti50)*state.rho - screened_rates(k_n_Ti50_to_Ti51_reaclib)*Y(Ti50)*state.rho + screened_rates(k_n_V50_to_p_Ti50_reaclib)*Y(V50)*state.rho; + scratch = screened_rates(k_Cr53_n_to_He4_Ti50_reaclib)*Y(Cr53)*state.rho + screened_rates(k_Ti49_n_to_Ti50_reaclib)*Y(Ti49)*state.rho - screened_rates(k_Ti50_n_to_He4_Ca47_derived)*Y(Ti50)*state.rho - screened_rates(k_Ti50_n_to_Ti51_reaclib)*Y(Ti50)*state.rho + screened_rates(k_V50_n_to_p_Ti50_reaclib)*Y(V50)*state.rho; jac.set(Ti50, N, scratch); - scratch = screened_rates(k_p_Sc49_to_Ti50_reaclib)*Y(Sc49)*state.rho - screened_rates(k_p_Ti50_to_He4_Sc47_reaclib)*Y(Ti50)*state.rho - screened_rates(k_p_Ti50_to_V51_reaclib)*Y(Ti50)*state.rho - screened_rates(k_p_Ti50_to_n_V50_reaclib)*Y(Ti50)*state.rho; + scratch = screened_rates(k_Sc49_p_to_Ti50_reaclib)*Y(Sc49)*state.rho - screened_rates(k_Ti50_p_to_He4_Sc47_derived)*Y(Ti50)*state.rho - screened_rates(k_Ti50_p_to_V51_reaclib)*Y(Ti50)*state.rho - screened_rates(k_Ti50_p_to_n_V50_derived)*Y(Ti50)*state.rho; jac.set(Ti50, H1, scratch); jac.set(Ti50, H2, 0.0); jac.set(Ti50, He3, 0.0); - scratch = screened_rates(k_He4_Ca46_to_Ti50_reaclib)*Y(Ca46)*state.rho + screened_rates(k_He4_Ca47_to_n_Ti50_reaclib)*Y(Ca47)*state.rho + screened_rates(k_He4_Sc47_to_p_Ti50_reaclib)*Y(Sc47)*state.rho - screened_rates(k_He4_Ti50_to_Cr54_reaclib)*Y(Ti50)*state.rho - screened_rates(k_He4_Ti50_to_n_Cr53_reaclib)*Y(Ti50)*state.rho; + scratch = screened_rates(k_Ca46_He4_to_Ti50_reaclib)*Y(Ca46)*state.rho + screened_rates(k_Ca47_He4_to_n_Ti50_reaclib)*Y(Ca47)*state.rho + screened_rates(k_Sc47_He4_to_p_Ti50_reaclib)*Y(Sc47)*state.rho - screened_rates(k_Ti50_He4_to_Cr54_reaclib)*Y(Ti50)*state.rho - screened_rates(k_Ti50_He4_to_n_Cr53_derived)*Y(Ti50)*state.rho; jac.set(Ti50, He4, scratch); jac.set(Ti50, Li6, 0.0); @@ -40691,10 +38500,10 @@ void jac_nuc(const burn_t& state, jac.set(Ti50, Ca45, 0.0); - scratch = screened_rates(k_He4_Ca46_to_Ti50_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ca46_He4_to_Ti50_reaclib)*Y(He4)*state.rho; jac.set(Ti50, Ca46, scratch); - scratch = screened_rates(k_He4_Ca47_to_n_Ti50_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ca47_He4_to_n_Ti50_reaclib)*Y(He4)*state.rho; jac.set(Ti50, Ca47, scratch); jac.set(Ti50, Ca48, 0.0); @@ -40707,12 +38516,12 @@ void jac_nuc(const burn_t& state, jac.set(Ti50, Sc46, 0.0); - scratch = screened_rates(k_He4_Sc47_to_p_Ti50_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Sc47_He4_to_p_Ti50_reaclib)*Y(He4)*state.rho; jac.set(Ti50, Sc47, scratch); jac.set(Ti50, Sc48, 0.0); - scratch = screened_rates(k_p_Sc49_to_Ti50_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Sc49_p_to_Ti50_reaclib)*Y(H1)*state.rho; jac.set(Ti50, Sc49, scratch); jac.set(Ti50, Ti44, 0.0); @@ -40725,13 +38534,13 @@ void jac_nuc(const burn_t& state, jac.set(Ti50, Ti48, 0.0); - scratch = screened_rates(k_n_Ti49_to_Ti50_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ti49_n_to_Ti50_reaclib)*Y(N)*state.rho; jac.set(Ti50, Ti49, scratch); - scratch = -screened_rates(k_He4_Ti50_to_Cr54_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ti50_to_n_Cr53_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti50_to_He4_Ca46_reaclib) - screened_rates(k_Ti50_to_V50_weaktab) - screened_rates(k_Ti50_to_n_Ti49_reaclib) - screened_rates(k_Ti50_to_p_Sc49_reaclib) - screened_rates(k_n_Ti50_to_He4_Ca47_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ti50_to_Ti51_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ti50_to_He4_Sc47_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ti50_to_V51_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ti50_to_n_V50_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ti50_He4_to_Cr54_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti50_He4_to_n_Cr53_derived)*Y(He4)*state.rho - screened_rates(k_Ti50_n_to_He4_Ca47_derived)*Y(N)*state.rho - screened_rates(k_Ti50_n_to_Ti51_reaclib)*Y(N)*state.rho - screened_rates(k_Ti50_p_to_He4_Sc47_derived)*Y(H1)*state.rho - screened_rates(k_Ti50_p_to_V51_reaclib)*Y(H1)*state.rho - screened_rates(k_Ti50_p_to_n_V50_derived)*Y(H1)*state.rho - screened_rates(k_Ti50_to_He4_Ca46_derived) - screened_rates(k_Ti50_to_V50_beta_neg_weaktab) - screened_rates(k_Ti50_to_n_Ti49_derived) - screened_rates(k_Ti50_to_p_Sc49_derived); jac.set(Ti50, Ti50, scratch); - scratch = screened_rates(k_Ti51_to_n_Ti50_reaclib); + scratch = screened_rates(k_Ti51_to_n_Ti50_derived); jac.set(Ti50, Ti51, scratch); jac.set(Ti50, V46, 0.0); @@ -40742,10 +38551,10 @@ void jac_nuc(const burn_t& state, jac.set(Ti50, V49, 0.0); - scratch = screened_rates(k_V50_to_Ti50_weaktab) + screened_rates(k_n_V50_to_p_Ti50_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_V50_n_to_p_Ti50_reaclib)*Y(N)*state.rho + screened_rates(k_V50_to_Ti50_electron_capture_weaktab); jac.set(Ti50, V50, scratch); - scratch = screened_rates(k_V51_to_p_Ti50_reaclib); + scratch = screened_rates(k_V51_to_p_Ti50_derived); jac.set(Ti50, V51, scratch); jac.set(Ti50, V52, 0.0); @@ -40760,10 +38569,10 @@ void jac_nuc(const burn_t& state, jac.set(Ti50, Cr52, 0.0); - scratch = screened_rates(k_n_Cr53_to_He4_Ti50_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cr53_n_to_He4_Ti50_reaclib)*Y(N)*state.rho; jac.set(Ti50, Cr53, scratch); - scratch = screened_rates(k_Cr54_to_He4_Ti50_reaclib); + scratch = screened_rates(k_Cr54_to_He4_Ti50_derived); jac.set(Ti50, Cr54, scratch); jac.set(Ti50, Mn50, 0.0); @@ -40868,17 +38677,17 @@ void jac_nuc(const burn_t& state, jac.set(Ti50, Ge64, 0.0); - scratch = screened_rates(k_n_Cr54_to_He4_Ti51_reaclib)*Y(Cr54)*state.rho + screened_rates(k_n_Ti50_to_Ti51_reaclib)*Y(Ti50)*state.rho - screened_rates(k_n_Ti51_to_He4_Ca48_reaclib)*Y(Ti51)*state.rho + screened_rates(k_n_V51_to_p_Ti51_reaclib)*Y(V51)*state.rho; + scratch = screened_rates(k_Cr54_n_to_He4_Ti51_derived)*Y(Cr54)*state.rho + screened_rates(k_Ti50_n_to_Ti51_reaclib)*Y(Ti50)*state.rho - screened_rates(k_Ti51_n_to_He4_Ca48_reaclib)*Y(Ti51)*state.rho + screened_rates(k_V51_n_to_p_Ti51_derived)*Y(V51)*state.rho; jac.set(Ti51, N, scratch); - scratch = -screened_rates(k_p_Ti51_to_He4_Sc48_reaclib)*Y(Ti51)*state.rho - screened_rates(k_p_Ti51_to_V52_reaclib)*Y(Ti51)*state.rho - screened_rates(k_p_Ti51_to_n_V51_reaclib)*Y(Ti51)*state.rho; + scratch = -screened_rates(k_Ti51_p_to_He4_Sc48_derived)*Y(Ti51)*state.rho - screened_rates(k_Ti51_p_to_V52_reaclib)*Y(Ti51)*state.rho - screened_rates(k_Ti51_p_to_n_V51_reaclib)*Y(Ti51)*state.rho; jac.set(Ti51, H1, scratch); jac.set(Ti51, H2, 0.0); jac.set(Ti51, He3, 0.0); - scratch = screened_rates(k_He4_Ca47_to_Ti51_reaclib)*Y(Ca47)*state.rho + screened_rates(k_He4_Ca48_to_n_Ti51_reaclib)*Y(Ca48)*state.rho + screened_rates(k_He4_Sc48_to_p_Ti51_reaclib)*Y(Sc48)*state.rho - screened_rates(k_He4_Ti51_to_n_Cr54_reaclib)*Y(Ti51)*state.rho; + scratch = screened_rates(k_Ca47_He4_to_Ti51_reaclib)*Y(Ca47)*state.rho + screened_rates(k_Ca48_He4_to_n_Ti51_derived)*Y(Ca48)*state.rho + screened_rates(k_Sc48_He4_to_p_Ti51_reaclib)*Y(Sc48)*state.rho - screened_rates(k_Ti51_He4_to_n_Cr54_reaclib)*Y(Ti51)*state.rho; jac.set(Ti51, He4, scratch); jac.set(Ti51, Li6, 0.0); @@ -41027,10 +38836,10 @@ void jac_nuc(const burn_t& state, jac.set(Ti51, Ca46, 0.0); - scratch = screened_rates(k_He4_Ca47_to_Ti51_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ca47_He4_to_Ti51_reaclib)*Y(He4)*state.rho; jac.set(Ti51, Ca47, scratch); - scratch = screened_rates(k_He4_Ca48_to_n_Ti51_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ca48_He4_to_n_Ti51_derived)*Y(He4)*state.rho; jac.set(Ti51, Ca48, scratch); jac.set(Ti51, Sc43, 0.0); @@ -41043,7 +38852,7 @@ void jac_nuc(const burn_t& state, jac.set(Ti51, Sc47, 0.0); - scratch = screened_rates(k_He4_Sc48_to_p_Ti51_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Sc48_He4_to_p_Ti51_reaclib)*Y(He4)*state.rho; jac.set(Ti51, Sc48, scratch); jac.set(Ti51, Sc49, 0.0); @@ -41060,10 +38869,10 @@ void jac_nuc(const burn_t& state, jac.set(Ti51, Ti49, 0.0); - scratch = screened_rates(k_n_Ti50_to_Ti51_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ti50_n_to_Ti51_reaclib)*Y(N)*state.rho; jac.set(Ti51, Ti50, scratch); - scratch = -screened_rates(k_He4_Ti51_to_n_Cr54_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti51_to_He4_Ca47_reaclib) - screened_rates(k_Ti51_to_V51_weaktab) - screened_rates(k_Ti51_to_n_Ti50_reaclib) - screened_rates(k_n_Ti51_to_He4_Ca48_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ti51_to_He4_Sc48_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ti51_to_V52_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ti51_to_n_V51_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ti51_He4_to_n_Cr54_reaclib)*Y(He4)*state.rho - screened_rates(k_Ti51_n_to_He4_Ca48_reaclib)*Y(N)*state.rho - screened_rates(k_Ti51_p_to_He4_Sc48_derived)*Y(H1)*state.rho - screened_rates(k_Ti51_p_to_V52_reaclib)*Y(H1)*state.rho - screened_rates(k_Ti51_p_to_n_V51_reaclib)*Y(H1)*state.rho - screened_rates(k_Ti51_to_He4_Ca47_derived) - screened_rates(k_Ti51_to_V51_beta_neg_weaktab) - screened_rates(k_Ti51_to_n_Ti50_derived); jac.set(Ti51, Ti51, scratch); jac.set(Ti51, V46, 0.0); @@ -41076,10 +38885,10 @@ void jac_nuc(const burn_t& state, jac.set(Ti51, V50, 0.0); - scratch = screened_rates(k_V51_to_Ti51_weaktab) + screened_rates(k_n_V51_to_p_Ti51_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_V51_n_to_p_Ti51_derived)*Y(N)*state.rho + screened_rates(k_V51_to_Ti51_electron_capture_weaktab); jac.set(Ti51, V51, scratch); - scratch = screened_rates(k_V52_to_p_Ti51_reaclib); + scratch = screened_rates(k_V52_to_p_Ti51_derived); jac.set(Ti51, V52, scratch); jac.set(Ti51, Cr48, 0.0); @@ -41094,7 +38903,7 @@ void jac_nuc(const burn_t& state, jac.set(Ti51, Cr53, 0.0); - scratch = screened_rates(k_n_Cr54_to_He4_Ti51_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cr54_n_to_He4_Ti51_derived)*Y(N)*state.rho; jac.set(Ti51, Cr54, scratch); jac.set(Ti51, Mn50, 0.0); @@ -41199,17 +39008,17 @@ void jac_nuc(const burn_t& state, jac.set(Ti51, Ge64, 0.0); - scratch = -screened_rates(k_n_V46_to_He4_Sc43_reaclib)*Y(V46)*state.rho - screened_rates(k_n_V46_to_V47_reaclib)*Y(V46)*state.rho - screened_rates(k_n_V46_to_p_Ti46_reaclib)*Y(V46)*state.rho; + scratch = -screened_rates(k_V46_n_to_He4_Sc43_reaclib)*Y(V46)*state.rho - screened_rates(k_V46_n_to_V47_reaclib)*Y(V46)*state.rho - screened_rates(k_V46_n_to_p_Ti46_reaclib)*Y(V46)*state.rho; jac.set(V46, N, scratch); - scratch = screened_rates(k_p_Cr49_to_He4_V46_reaclib)*Y(Cr49)*state.rho + screened_rates(k_p_Ti45_to_V46_reaclib)*Y(Ti45)*state.rho + screened_rates(k_p_Ti46_to_n_V46_reaclib)*Y(Ti46)*state.rho; + scratch = screened_rates(k_Cr49_p_to_He4_V46_derived)*Y(Cr49)*state.rho + screened_rates(k_Ti45_p_to_V46_reaclib)*Y(Ti45)*state.rho + screened_rates(k_Ti46_p_to_n_V46_derived)*Y(Ti46)*state.rho; jac.set(V46, H1, scratch); jac.set(V46, H2, 0.0); jac.set(V46, He3, 0.0); - scratch = screened_rates(k_He4_Sc43_to_n_V46_reaclib)*Y(Sc43)*state.rho - screened_rates(k_He4_V46_to_Mn50_reaclib)*Y(V46)*state.rho - screened_rates(k_He4_V46_to_p_Cr49_reaclib)*Y(V46)*state.rho; + scratch = screened_rates(k_Sc43_He4_to_n_V46_derived)*Y(Sc43)*state.rho - screened_rates(k_V46_He4_to_Mn50_reaclib)*Y(V46)*state.rho - screened_rates(k_V46_He4_to_p_Cr49_reaclib)*Y(V46)*state.rho; jac.set(V46, He4, scratch); jac.set(V46, Li6, 0.0); @@ -41362,7 +39171,7 @@ void jac_nuc(const burn_t& state, jac.set(V46, Ca48, 0.0); - scratch = screened_rates(k_He4_Sc43_to_n_V46_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Sc43_He4_to_n_V46_derived)*Y(He4)*state.rho; jac.set(V46, Sc43, scratch); jac.set(V46, Sc44, 0.0); @@ -41379,10 +39188,10 @@ void jac_nuc(const burn_t& state, jac.set(V46, Ti44, 0.0); - scratch = screened_rates(k_p_Ti45_to_V46_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti45_p_to_V46_reaclib)*Y(H1)*state.rho; jac.set(V46, Ti45, scratch); - scratch = screened_rates(k_Ti46_to_V46_weaktab) + screened_rates(k_p_Ti46_to_n_V46_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti46_p_to_n_V46_derived)*Y(H1)*state.rho + screened_rates(k_Ti46_to_V46_beta_neg_weaktab); jac.set(V46, Ti46, scratch); jac.set(V46, Ti47, 0.0); @@ -41395,10 +39204,10 @@ void jac_nuc(const burn_t& state, jac.set(V46, Ti51, 0.0); - scratch = -screened_rates(k_He4_V46_to_Mn50_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_V46_to_p_Cr49_reaclib)*Y(He4)*state.rho - screened_rates(k_V46_to_Ti46_weaktab) - screened_rates(k_V46_to_p_Ti45_reaclib) - screened_rates(k_n_V46_to_He4_Sc43_reaclib)*Y(N)*state.rho - screened_rates(k_n_V46_to_V47_reaclib)*Y(N)*state.rho - screened_rates(k_n_V46_to_p_Ti46_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_V46_He4_to_Mn50_reaclib)*Y(He4)*state.rho - screened_rates(k_V46_He4_to_p_Cr49_reaclib)*Y(He4)*state.rho - screened_rates(k_V46_n_to_He4_Sc43_reaclib)*Y(N)*state.rho - screened_rates(k_V46_n_to_V47_reaclib)*Y(N)*state.rho - screened_rates(k_V46_n_to_p_Ti46_reaclib)*Y(N)*state.rho - screened_rates(k_V46_to_Ti46_electron_capture_weaktab) - screened_rates(k_V46_to_p_Ti45_derived); jac.set(V46, V46, scratch); - scratch = screened_rates(k_V47_to_n_V46_reaclib); + scratch = screened_rates(k_V47_to_n_V46_derived); jac.set(V46, V47, scratch); jac.set(V46, V48, 0.0); @@ -41413,7 +39222,7 @@ void jac_nuc(const burn_t& state, jac.set(V46, Cr48, 0.0); - scratch = screened_rates(k_p_Cr49_to_He4_V46_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr49_p_to_He4_V46_derived)*Y(H1)*state.rho; jac.set(V46, Cr49, scratch); jac.set(V46, Cr50, 0.0); @@ -41426,7 +39235,7 @@ void jac_nuc(const burn_t& state, jac.set(V46, Cr54, 0.0); - scratch = screened_rates(k_Mn50_to_He4_V46_reaclib); + scratch = screened_rates(k_Mn50_to_He4_V46_derived); jac.set(V46, Mn50, scratch); jac.set(V46, Mn51, 0.0); @@ -41529,17 +39338,17 @@ void jac_nuc(const burn_t& state, jac.set(V46, Ge64, 0.0); - scratch = screened_rates(k_n_Mn50_to_He4_V47_reaclib)*Y(Mn50)*state.rho + screened_rates(k_n_V46_to_V47_reaclib)*Y(V46)*state.rho - screened_rates(k_n_V47_to_He4_Sc44_reaclib)*Y(V47)*state.rho - screened_rates(k_n_V47_to_V48_reaclib)*Y(V47)*state.rho - screened_rates(k_n_V47_to_p_Ti47_reaclib)*Y(V47)*state.rho; + scratch = screened_rates(k_Mn50_n_to_He4_V47_reaclib)*Y(Mn50)*state.rho + screened_rates(k_V46_n_to_V47_reaclib)*Y(V46)*state.rho - screened_rates(k_V47_n_to_He4_Sc44_reaclib)*Y(V47)*state.rho - screened_rates(k_V47_n_to_V48_reaclib)*Y(V47)*state.rho - screened_rates(k_V47_n_to_p_Ti47_reaclib)*Y(V47)*state.rho; jac.set(V47, N, scratch); - scratch = screened_rates(k_p_Cr50_to_He4_V47_reaclib)*Y(Cr50)*state.rho + screened_rates(k_p_Ti46_to_V47_reaclib)*Y(Ti46)*state.rho + screened_rates(k_p_Ti47_to_n_V47_reaclib)*Y(Ti47)*state.rho - screened_rates(k_p_V47_to_Cr48_reaclib)*Y(V47)*state.rho - screened_rates(k_p_V47_to_He4_Ti44_reaclib)*Y(V47)*state.rho; + scratch = screened_rates(k_Cr50_p_to_He4_V47_derived)*Y(Cr50)*state.rho + screened_rates(k_Ti46_p_to_V47_reaclib)*Y(Ti46)*state.rho + screened_rates(k_Ti47_p_to_n_V47_derived)*Y(Ti47)*state.rho - screened_rates(k_V47_p_to_Cr48_reaclib)*Y(V47)*state.rho - screened_rates(k_V47_p_to_He4_Ti44_derived)*Y(V47)*state.rho; jac.set(V47, H1, scratch); jac.set(V47, H2, 0.0); jac.set(V47, He3, 0.0); - scratch = screened_rates(k_He4_Sc43_to_V47_reaclib)*Y(Sc43)*state.rho + screened_rates(k_He4_Sc44_to_n_V47_reaclib)*Y(Sc44)*state.rho + screened_rates(k_He4_Ti44_to_p_V47_reaclib)*Y(Ti44)*state.rho - screened_rates(k_He4_V47_to_Mn51_reaclib)*Y(V47)*state.rho - screened_rates(k_He4_V47_to_n_Mn50_reaclib)*Y(V47)*state.rho - screened_rates(k_He4_V47_to_p_Cr50_reaclib)*Y(V47)*state.rho; + scratch = screened_rates(k_Sc43_He4_to_V47_reaclib)*Y(Sc43)*state.rho + screened_rates(k_Sc44_He4_to_n_V47_derived)*Y(Sc44)*state.rho + screened_rates(k_Ti44_He4_to_p_V47_reaclib)*Y(Ti44)*state.rho - screened_rates(k_V47_He4_to_Mn51_reaclib)*Y(V47)*state.rho - screened_rates(k_V47_He4_to_n_Mn50_derived)*Y(V47)*state.rho - screened_rates(k_V47_He4_to_p_Cr50_reaclib)*Y(V47)*state.rho; jac.set(V47, He4, scratch); jac.set(V47, Li6, 0.0); @@ -41692,10 +39501,10 @@ void jac_nuc(const burn_t& state, jac.set(V47, Ca48, 0.0); - scratch = screened_rates(k_He4_Sc43_to_V47_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Sc43_He4_to_V47_reaclib)*Y(He4)*state.rho; jac.set(V47, Sc43, scratch); - scratch = screened_rates(k_He4_Sc44_to_n_V47_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Sc44_He4_to_n_V47_derived)*Y(He4)*state.rho; jac.set(V47, Sc44, scratch); jac.set(V47, Sc45, 0.0); @@ -41708,15 +39517,15 @@ void jac_nuc(const burn_t& state, jac.set(V47, Sc49, 0.0); - scratch = screened_rates(k_He4_Ti44_to_p_V47_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ti44_He4_to_p_V47_reaclib)*Y(He4)*state.rho; jac.set(V47, Ti44, scratch); jac.set(V47, Ti45, 0.0); - scratch = screened_rates(k_p_Ti46_to_V47_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti46_p_to_V47_reaclib)*Y(H1)*state.rho; jac.set(V47, Ti46, scratch); - scratch = screened_rates(k_Ti47_to_V47_weaktab) + screened_rates(k_p_Ti47_to_n_V47_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti47_p_to_n_V47_derived)*Y(H1)*state.rho + screened_rates(k_Ti47_to_V47_beta_neg_weaktab); jac.set(V47, Ti47, scratch); jac.set(V47, Ti48, 0.0); @@ -41727,13 +39536,13 @@ void jac_nuc(const burn_t& state, jac.set(V47, Ti51, 0.0); - scratch = screened_rates(k_n_V46_to_V47_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_V46_n_to_V47_reaclib)*Y(N)*state.rho; jac.set(V47, V46, scratch); - scratch = -screened_rates(k_He4_V47_to_Mn51_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_V47_to_n_Mn50_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_V47_to_p_Cr50_reaclib)*Y(He4)*state.rho - screened_rates(k_V47_to_He4_Sc43_reaclib) - screened_rates(k_V47_to_Ti47_weaktab) - screened_rates(k_V47_to_n_V46_reaclib) - screened_rates(k_V47_to_p_Ti46_reaclib) - screened_rates(k_n_V47_to_He4_Sc44_reaclib)*Y(N)*state.rho - screened_rates(k_n_V47_to_V48_reaclib)*Y(N)*state.rho - screened_rates(k_n_V47_to_p_Ti47_reaclib)*Y(N)*state.rho - screened_rates(k_p_V47_to_Cr48_reaclib)*Y(H1)*state.rho - screened_rates(k_p_V47_to_He4_Ti44_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_V47_He4_to_Mn51_reaclib)*Y(He4)*state.rho - screened_rates(k_V47_He4_to_n_Mn50_derived)*Y(He4)*state.rho - screened_rates(k_V47_He4_to_p_Cr50_reaclib)*Y(He4)*state.rho - screened_rates(k_V47_n_to_He4_Sc44_reaclib)*Y(N)*state.rho - screened_rates(k_V47_n_to_V48_reaclib)*Y(N)*state.rho - screened_rates(k_V47_n_to_p_Ti47_reaclib)*Y(N)*state.rho - screened_rates(k_V47_p_to_Cr48_reaclib)*Y(H1)*state.rho - screened_rates(k_V47_p_to_He4_Ti44_derived)*Y(H1)*state.rho - screened_rates(k_V47_to_He4_Sc43_derived) - screened_rates(k_V47_to_Ti47_electron_capture_weaktab) - screened_rates(k_V47_to_n_V46_derived) - screened_rates(k_V47_to_p_Ti46_derived); jac.set(V47, V47, scratch); - scratch = screened_rates(k_V48_to_n_V47_reaclib); + scratch = screened_rates(k_V48_to_n_V47_derived); jac.set(V47, V48, scratch); jac.set(V47, V49, 0.0); @@ -41744,12 +39553,12 @@ void jac_nuc(const burn_t& state, jac.set(V47, V52, 0.0); - scratch = screened_rates(k_Cr48_to_p_V47_reaclib); + scratch = screened_rates(k_Cr48_to_p_V47_derived); jac.set(V47, Cr48, scratch); jac.set(V47, Cr49, 0.0); - scratch = screened_rates(k_p_Cr50_to_He4_V47_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr50_p_to_He4_V47_derived)*Y(H1)*state.rho; jac.set(V47, Cr50, scratch); jac.set(V47, Cr51, 0.0); @@ -41760,10 +39569,10 @@ void jac_nuc(const burn_t& state, jac.set(V47, Cr54, 0.0); - scratch = screened_rates(k_n_Mn50_to_He4_V47_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mn50_n_to_He4_V47_reaclib)*Y(N)*state.rho; jac.set(V47, Mn50, scratch); - scratch = screened_rates(k_Mn51_to_He4_V47_reaclib); + scratch = screened_rates(k_Mn51_to_He4_V47_derived); jac.set(V47, Mn51, scratch); jac.set(V47, Mn52, 0.0); @@ -41864,17 +39673,17 @@ void jac_nuc(const burn_t& state, jac.set(V47, Ge64, 0.0); - scratch = screened_rates(k_n_Cr48_to_p_V48_reaclib)*Y(Cr48)*state.rho + screened_rates(k_n_Mn51_to_He4_V48_reaclib)*Y(Mn51)*state.rho + screened_rates(k_n_V47_to_V48_reaclib)*Y(V47)*state.rho - screened_rates(k_n_V48_to_He4_Sc45_reaclib)*Y(V48)*state.rho - screened_rates(k_n_V48_to_V49_reaclib)*Y(V48)*state.rho - screened_rates(k_n_V48_to_p_Ti48_reaclib)*Y(V48)*state.rho; + scratch = screened_rates(k_Cr48_n_to_p_V48_reaclib)*Y(Cr48)*state.rho + screened_rates(k_Mn51_n_to_He4_V48_reaclib)*Y(Mn51)*state.rho + screened_rates(k_V47_n_to_V48_reaclib)*Y(V47)*state.rho - screened_rates(k_V48_n_to_He4_Sc45_reaclib)*Y(V48)*state.rho - screened_rates(k_V48_n_to_V49_reaclib)*Y(V48)*state.rho - screened_rates(k_V48_n_to_p_Ti48_reaclib)*Y(V48)*state.rho; jac.set(V48, N, scratch); - scratch = screened_rates(k_p_Cr51_to_He4_V48_reaclib)*Y(Cr51)*state.rho + screened_rates(k_p_Ti47_to_V48_reaclib)*Y(Ti47)*state.rho + screened_rates(k_p_Ti48_to_n_V48_reaclib)*Y(Ti48)*state.rho - screened_rates(k_p_V48_to_Cr49_reaclib)*Y(V48)*state.rho - screened_rates(k_p_V48_to_He4_Ti45_reaclib)*Y(V48)*state.rho - screened_rates(k_p_V48_to_n_Cr48_reaclib)*Y(V48)*state.rho; + scratch = screened_rates(k_Cr51_p_to_He4_V48_derived)*Y(Cr51)*state.rho + screened_rates(k_Ti47_p_to_V48_reaclib)*Y(Ti47)*state.rho + screened_rates(k_Ti48_p_to_n_V48_derived)*Y(Ti48)*state.rho - screened_rates(k_V48_p_to_Cr49_reaclib)*Y(V48)*state.rho - screened_rates(k_V48_p_to_He4_Ti45_derived)*Y(V48)*state.rho - screened_rates(k_V48_p_to_n_Cr48_derived)*Y(V48)*state.rho; jac.set(V48, H1, scratch); jac.set(V48, H2, 0.0); jac.set(V48, He3, 0.0); - scratch = screened_rates(k_He4_Sc44_to_V48_reaclib)*Y(Sc44)*state.rho + screened_rates(k_He4_Sc45_to_n_V48_reaclib)*Y(Sc45)*state.rho + screened_rates(k_He4_Ti45_to_p_V48_reaclib)*Y(Ti45)*state.rho - screened_rates(k_He4_V48_to_Mn52_reaclib)*Y(V48)*state.rho - screened_rates(k_He4_V48_to_n_Mn51_reaclib)*Y(V48)*state.rho - screened_rates(k_He4_V48_to_p_Cr51_reaclib)*Y(V48)*state.rho; + scratch = screened_rates(k_Sc44_He4_to_V48_reaclib)*Y(Sc44)*state.rho + screened_rates(k_Sc45_He4_to_n_V48_derived)*Y(Sc45)*state.rho + screened_rates(k_Ti45_He4_to_p_V48_reaclib)*Y(Ti45)*state.rho - screened_rates(k_V48_He4_to_Mn52_reaclib)*Y(V48)*state.rho - screened_rates(k_V48_He4_to_n_Mn51_derived)*Y(V48)*state.rho - screened_rates(k_V48_He4_to_p_Cr51_reaclib)*Y(V48)*state.rho; jac.set(V48, He4, scratch); jac.set(V48, Li6, 0.0); @@ -42029,10 +39838,10 @@ void jac_nuc(const burn_t& state, jac.set(V48, Sc43, 0.0); - scratch = screened_rates(k_He4_Sc44_to_V48_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Sc44_He4_to_V48_reaclib)*Y(He4)*state.rho; jac.set(V48, Sc44, scratch); - scratch = screened_rates(k_He4_Sc45_to_n_V48_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Sc45_He4_to_n_V48_derived)*Y(He4)*state.rho; jac.set(V48, Sc45, scratch); jac.set(V48, Sc46, 0.0); @@ -42045,15 +39854,15 @@ void jac_nuc(const burn_t& state, jac.set(V48, Ti44, 0.0); - scratch = screened_rates(k_He4_Ti45_to_p_V48_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ti45_He4_to_p_V48_reaclib)*Y(He4)*state.rho; jac.set(V48, Ti45, scratch); jac.set(V48, Ti46, 0.0); - scratch = screened_rates(k_p_Ti47_to_V48_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti47_p_to_V48_reaclib)*Y(H1)*state.rho; jac.set(V48, Ti47, scratch); - scratch = screened_rates(k_Ti48_to_V48_weaktab) + screened_rates(k_p_Ti48_to_n_V48_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti48_p_to_n_V48_derived)*Y(H1)*state.rho + screened_rates(k_Ti48_to_V48_beta_neg_weaktab); jac.set(V48, Ti48, scratch); jac.set(V48, Ti49, 0.0); @@ -42064,13 +39873,13 @@ void jac_nuc(const burn_t& state, jac.set(V48, V46, 0.0); - scratch = screened_rates(k_n_V47_to_V48_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_V47_n_to_V48_reaclib)*Y(N)*state.rho; jac.set(V48, V47, scratch); - scratch = -screened_rates(k_He4_V48_to_Mn52_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_V48_to_n_Mn51_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_V48_to_p_Cr51_reaclib)*Y(He4)*state.rho - screened_rates(k_V48_to_Cr48_weaktab) - screened_rates(k_V48_to_He4_Sc44_reaclib) - screened_rates(k_V48_to_Ti48_weaktab) - screened_rates(k_V48_to_n_V47_reaclib) - screened_rates(k_V48_to_p_Ti47_reaclib) - screened_rates(k_n_V48_to_He4_Sc45_reaclib)*Y(N)*state.rho - screened_rates(k_n_V48_to_V49_reaclib)*Y(N)*state.rho - screened_rates(k_n_V48_to_p_Ti48_reaclib)*Y(N)*state.rho - screened_rates(k_p_V48_to_Cr49_reaclib)*Y(H1)*state.rho - screened_rates(k_p_V48_to_He4_Ti45_reaclib)*Y(H1)*state.rho - screened_rates(k_p_V48_to_n_Cr48_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_V48_He4_to_Mn52_reaclib)*Y(He4)*state.rho - screened_rates(k_V48_He4_to_n_Mn51_derived)*Y(He4)*state.rho - screened_rates(k_V48_He4_to_p_Cr51_reaclib)*Y(He4)*state.rho - screened_rates(k_V48_n_to_He4_Sc45_reaclib)*Y(N)*state.rho - screened_rates(k_V48_n_to_V49_reaclib)*Y(N)*state.rho - screened_rates(k_V48_n_to_p_Ti48_reaclib)*Y(N)*state.rho - screened_rates(k_V48_p_to_Cr49_reaclib)*Y(H1)*state.rho - screened_rates(k_V48_p_to_He4_Ti45_derived)*Y(H1)*state.rho - screened_rates(k_V48_p_to_n_Cr48_derived)*Y(H1)*state.rho - screened_rates(k_V48_to_Cr48_beta_neg_weaktab) - screened_rates(k_V48_to_He4_Sc44_derived) - screened_rates(k_V48_to_Ti48_electron_capture_weaktab) - screened_rates(k_V48_to_n_V47_derived) - screened_rates(k_V48_to_p_Ti47_derived); jac.set(V48, V48, scratch); - scratch = screened_rates(k_V49_to_n_V48_reaclib); + scratch = screened_rates(k_V49_to_n_V48_derived); jac.set(V48, V49, scratch); jac.set(V48, V50, 0.0); @@ -42079,15 +39888,15 @@ void jac_nuc(const burn_t& state, jac.set(V48, V52, 0.0); - scratch = screened_rates(k_Cr48_to_V48_weaktab) + screened_rates(k_n_Cr48_to_p_V48_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cr48_n_to_p_V48_reaclib)*Y(N)*state.rho + screened_rates(k_Cr48_to_V48_electron_capture_weaktab); jac.set(V48, Cr48, scratch); - scratch = screened_rates(k_Cr49_to_p_V48_reaclib); + scratch = screened_rates(k_Cr49_to_p_V48_derived); jac.set(V48, Cr49, scratch); jac.set(V48, Cr50, 0.0); - scratch = screened_rates(k_p_Cr51_to_He4_V48_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr51_p_to_He4_V48_derived)*Y(H1)*state.rho; jac.set(V48, Cr51, scratch); jac.set(V48, Cr52, 0.0); @@ -42098,10 +39907,10 @@ void jac_nuc(const burn_t& state, jac.set(V48, Mn50, 0.0); - scratch = screened_rates(k_n_Mn51_to_He4_V48_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mn51_n_to_He4_V48_reaclib)*Y(N)*state.rho; jac.set(V48, Mn51, scratch); - scratch = screened_rates(k_Mn52_to_He4_V48_reaclib); + scratch = screened_rates(k_Mn52_to_He4_V48_derived); jac.set(V48, Mn52, scratch); jac.set(V48, Mn53, 0.0); @@ -42200,17 +40009,17 @@ void jac_nuc(const burn_t& state, jac.set(V48, Ge64, 0.0); - scratch = screened_rates(k_n_Cr49_to_p_V49_reaclib)*Y(Cr49)*state.rho + screened_rates(k_n_Mn52_to_He4_V49_reaclib)*Y(Mn52)*state.rho + screened_rates(k_n_V48_to_V49_reaclib)*Y(V48)*state.rho - screened_rates(k_n_V49_to_He4_Sc46_reaclib)*Y(V49)*state.rho - screened_rates(k_n_V49_to_V50_reaclib)*Y(V49)*state.rho - screened_rates(k_n_V49_to_p_Ti49_reaclib)*Y(V49)*state.rho; + scratch = screened_rates(k_Cr49_n_to_p_V49_reaclib)*Y(Cr49)*state.rho + screened_rates(k_Mn52_n_to_He4_V49_reaclib)*Y(Mn52)*state.rho + screened_rates(k_V48_n_to_V49_reaclib)*Y(V48)*state.rho - screened_rates(k_V49_n_to_He4_Sc46_derived)*Y(V49)*state.rho - screened_rates(k_V49_n_to_V50_reaclib)*Y(V49)*state.rho - screened_rates(k_V49_n_to_p_Ti49_reaclib)*Y(V49)*state.rho; jac.set(V49, N, scratch); - scratch = screened_rates(k_p_Cr52_to_He4_V49_reaclib)*Y(Cr52)*state.rho + screened_rates(k_p_Ti48_to_V49_reaclib)*Y(Ti48)*state.rho + screened_rates(k_p_Ti49_to_n_V49_reaclib)*Y(Ti49)*state.rho - screened_rates(k_p_V49_to_Cr50_reaclib)*Y(V49)*state.rho - screened_rates(k_p_V49_to_He4_Ti46_reaclib)*Y(V49)*state.rho - screened_rates(k_p_V49_to_n_Cr49_reaclib)*Y(V49)*state.rho; + scratch = screened_rates(k_Cr52_p_to_He4_V49_derived)*Y(Cr52)*state.rho + screened_rates(k_Ti48_p_to_V49_reaclib)*Y(Ti48)*state.rho + screened_rates(k_Ti49_p_to_n_V49_derived)*Y(Ti49)*state.rho - screened_rates(k_V49_p_to_Cr50_reaclib)*Y(V49)*state.rho - screened_rates(k_V49_p_to_He4_Ti46_reaclib)*Y(V49)*state.rho - screened_rates(k_V49_p_to_n_Cr49_derived)*Y(V49)*state.rho; jac.set(V49, H1, scratch); jac.set(V49, H2, 0.0); jac.set(V49, He3, 0.0); - scratch = screened_rates(k_He4_Sc45_to_V49_reaclib)*Y(Sc45)*state.rho + screened_rates(k_He4_Sc46_to_n_V49_reaclib)*Y(Sc46)*state.rho + screened_rates(k_He4_Ti46_to_p_V49_reaclib)*Y(Ti46)*state.rho - screened_rates(k_He4_V49_to_Mn53_reaclib)*Y(V49)*state.rho - screened_rates(k_He4_V49_to_n_Mn52_reaclib)*Y(V49)*state.rho - screened_rates(k_He4_V49_to_p_Cr52_reaclib)*Y(V49)*state.rho; + scratch = screened_rates(k_Sc45_He4_to_V49_reaclib)*Y(Sc45)*state.rho + screened_rates(k_Sc46_He4_to_n_V49_reaclib)*Y(Sc46)*state.rho + screened_rates(k_Ti46_He4_to_p_V49_derived)*Y(Ti46)*state.rho - screened_rates(k_V49_He4_to_Mn53_reaclib)*Y(V49)*state.rho - screened_rates(k_V49_He4_to_n_Mn52_derived)*Y(V49)*state.rho - screened_rates(k_V49_He4_to_p_Cr52_reaclib)*Y(V49)*state.rho; jac.set(V49, He4, scratch); jac.set(V49, Li6, 0.0); @@ -42367,10 +40176,10 @@ void jac_nuc(const burn_t& state, jac.set(V49, Sc44, 0.0); - scratch = screened_rates(k_He4_Sc45_to_V49_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Sc45_He4_to_V49_reaclib)*Y(He4)*state.rho; jac.set(V49, Sc45, scratch); - scratch = screened_rates(k_He4_Sc46_to_n_V49_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Sc46_He4_to_n_V49_reaclib)*Y(He4)*state.rho; jac.set(V49, Sc46, scratch); jac.set(V49, Sc47, 0.0); @@ -42383,15 +40192,15 @@ void jac_nuc(const burn_t& state, jac.set(V49, Ti45, 0.0); - scratch = screened_rates(k_He4_Ti46_to_p_V49_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ti46_He4_to_p_V49_derived)*Y(He4)*state.rho; jac.set(V49, Ti46, scratch); jac.set(V49, Ti47, 0.0); - scratch = screened_rates(k_p_Ti48_to_V49_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti48_p_to_V49_reaclib)*Y(H1)*state.rho; jac.set(V49, Ti48, scratch); - scratch = screened_rates(k_Ti49_to_V49_weaktab) + screened_rates(k_p_Ti49_to_n_V49_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti49_p_to_n_V49_derived)*Y(H1)*state.rho + screened_rates(k_Ti49_to_V49_beta_neg_weaktab); jac.set(V49, Ti49, scratch); jac.set(V49, Ti50, 0.0); @@ -42402,13 +40211,13 @@ void jac_nuc(const burn_t& state, jac.set(V49, V47, 0.0); - scratch = screened_rates(k_n_V48_to_V49_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_V48_n_to_V49_reaclib)*Y(N)*state.rho; jac.set(V49, V48, scratch); - scratch = -screened_rates(k_He4_V49_to_Mn53_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_V49_to_n_Mn52_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_V49_to_p_Cr52_reaclib)*Y(He4)*state.rho - screened_rates(k_V49_to_Cr49_weaktab) - screened_rates(k_V49_to_He4_Sc45_reaclib) - screened_rates(k_V49_to_Ti49_weaktab) - screened_rates(k_V49_to_n_V48_reaclib) - screened_rates(k_V49_to_p_Ti48_reaclib) - screened_rates(k_n_V49_to_He4_Sc46_reaclib)*Y(N)*state.rho - screened_rates(k_n_V49_to_V50_reaclib)*Y(N)*state.rho - screened_rates(k_n_V49_to_p_Ti49_reaclib)*Y(N)*state.rho - screened_rates(k_p_V49_to_Cr50_reaclib)*Y(H1)*state.rho - screened_rates(k_p_V49_to_He4_Ti46_reaclib)*Y(H1)*state.rho - screened_rates(k_p_V49_to_n_Cr49_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_V49_He4_to_Mn53_reaclib)*Y(He4)*state.rho - screened_rates(k_V49_He4_to_n_Mn52_derived)*Y(He4)*state.rho - screened_rates(k_V49_He4_to_p_Cr52_reaclib)*Y(He4)*state.rho - screened_rates(k_V49_n_to_He4_Sc46_derived)*Y(N)*state.rho - screened_rates(k_V49_n_to_V50_reaclib)*Y(N)*state.rho - screened_rates(k_V49_n_to_p_Ti49_reaclib)*Y(N)*state.rho - screened_rates(k_V49_p_to_Cr50_reaclib)*Y(H1)*state.rho - screened_rates(k_V49_p_to_He4_Ti46_reaclib)*Y(H1)*state.rho - screened_rates(k_V49_p_to_n_Cr49_derived)*Y(H1)*state.rho - screened_rates(k_V49_to_Cr49_beta_neg_weaktab) - screened_rates(k_V49_to_He4_Sc45_derived) - screened_rates(k_V49_to_Ti49_electron_capture_weaktab) - screened_rates(k_V49_to_n_V48_derived) - screened_rates(k_V49_to_p_Ti48_derived); jac.set(V49, V49, scratch); - scratch = screened_rates(k_V50_to_n_V49_reaclib); + scratch = screened_rates(k_V50_to_n_V49_derived); jac.set(V49, V50, scratch); jac.set(V49, V51, 0.0); @@ -42417,15 +40226,15 @@ void jac_nuc(const burn_t& state, jac.set(V49, Cr48, 0.0); - scratch = screened_rates(k_Cr49_to_V49_weaktab) + screened_rates(k_n_Cr49_to_p_V49_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cr49_n_to_p_V49_reaclib)*Y(N)*state.rho + screened_rates(k_Cr49_to_V49_electron_capture_weaktab); jac.set(V49, Cr49, scratch); - scratch = screened_rates(k_Cr50_to_p_V49_reaclib); + scratch = screened_rates(k_Cr50_to_p_V49_derived); jac.set(V49, Cr50, scratch); jac.set(V49, Cr51, 0.0); - scratch = screened_rates(k_p_Cr52_to_He4_V49_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr52_p_to_He4_V49_derived)*Y(H1)*state.rho; jac.set(V49, Cr52, scratch); jac.set(V49, Cr53, 0.0); @@ -42436,10 +40245,10 @@ void jac_nuc(const burn_t& state, jac.set(V49, Mn51, 0.0); - scratch = screened_rates(k_n_Mn52_to_He4_V49_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mn52_n_to_He4_V49_reaclib)*Y(N)*state.rho; jac.set(V49, Mn52, scratch); - scratch = screened_rates(k_Mn53_to_He4_V49_reaclib); + scratch = screened_rates(k_Mn53_to_He4_V49_derived); jac.set(V49, Mn53, scratch); jac.set(V49, Mn54, 0.0); @@ -42536,17 +40345,17 @@ void jac_nuc(const burn_t& state, jac.set(V49, Ge64, 0.0); - scratch = screened_rates(k_n_Cr50_to_p_V50_reaclib)*Y(Cr50)*state.rho + screened_rates(k_n_Mn53_to_He4_V50_reaclib)*Y(Mn53)*state.rho + screened_rates(k_n_V49_to_V50_reaclib)*Y(V49)*state.rho - screened_rates(k_n_V50_to_He4_Sc47_reaclib)*Y(V50)*state.rho - screened_rates(k_n_V50_to_V51_reaclib)*Y(V50)*state.rho - screened_rates(k_n_V50_to_p_Ti50_reaclib)*Y(V50)*state.rho; + scratch = screened_rates(k_Cr50_n_to_p_V50_derived)*Y(Cr50)*state.rho + screened_rates(k_Mn53_n_to_He4_V50_reaclib)*Y(Mn53)*state.rho + screened_rates(k_V49_n_to_V50_reaclib)*Y(V49)*state.rho - screened_rates(k_V50_n_to_He4_Sc47_reaclib)*Y(V50)*state.rho - screened_rates(k_V50_n_to_V51_reaclib)*Y(V50)*state.rho - screened_rates(k_V50_n_to_p_Ti50_reaclib)*Y(V50)*state.rho; jac.set(V50, N, scratch); - scratch = screened_rates(k_p_Cr53_to_He4_V50_reaclib)*Y(Cr53)*state.rho + screened_rates(k_p_Ti49_to_V50_reaclib)*Y(Ti49)*state.rho + screened_rates(k_p_Ti50_to_n_V50_reaclib)*Y(Ti50)*state.rho - screened_rates(k_p_V50_to_Cr51_reaclib)*Y(V50)*state.rho - screened_rates(k_p_V50_to_He4_Ti47_reaclib)*Y(V50)*state.rho - screened_rates(k_p_V50_to_n_Cr50_reaclib)*Y(V50)*state.rho; + scratch = screened_rates(k_Cr53_p_to_He4_V50_derived)*Y(Cr53)*state.rho + screened_rates(k_Ti49_p_to_V50_reaclib)*Y(Ti49)*state.rho + screened_rates(k_Ti50_p_to_n_V50_derived)*Y(Ti50)*state.rho - screened_rates(k_V50_p_to_Cr51_reaclib)*Y(V50)*state.rho - screened_rates(k_V50_p_to_He4_Ti47_reaclib)*Y(V50)*state.rho - screened_rates(k_V50_p_to_n_Cr50_reaclib)*Y(V50)*state.rho; jac.set(V50, H1, scratch); jac.set(V50, H2, 0.0); jac.set(V50, He3, 0.0); - scratch = screened_rates(k_He4_Sc46_to_V50_reaclib)*Y(Sc46)*state.rho + screened_rates(k_He4_Sc47_to_n_V50_reaclib)*Y(Sc47)*state.rho + screened_rates(k_He4_Ti47_to_p_V50_reaclib)*Y(Ti47)*state.rho - screened_rates(k_He4_V50_to_Mn54_reaclib)*Y(V50)*state.rho - screened_rates(k_He4_V50_to_n_Mn53_reaclib)*Y(V50)*state.rho - screened_rates(k_He4_V50_to_p_Cr53_reaclib)*Y(V50)*state.rho; + scratch = screened_rates(k_Sc46_He4_to_V50_reaclib)*Y(Sc46)*state.rho + screened_rates(k_Sc47_He4_to_n_V50_derived)*Y(Sc47)*state.rho + screened_rates(k_Ti47_He4_to_p_V50_derived)*Y(Ti47)*state.rho - screened_rates(k_V50_He4_to_Mn54_reaclib)*Y(V50)*state.rho - screened_rates(k_V50_He4_to_n_Mn53_derived)*Y(V50)*state.rho - screened_rates(k_V50_He4_to_p_Cr53_reaclib)*Y(V50)*state.rho; jac.set(V50, He4, scratch); jac.set(V50, Li6, 0.0); @@ -42705,10 +40514,10 @@ void jac_nuc(const burn_t& state, jac.set(V50, Sc45, 0.0); - scratch = screened_rates(k_He4_Sc46_to_V50_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Sc46_He4_to_V50_reaclib)*Y(He4)*state.rho; jac.set(V50, Sc46, scratch); - scratch = screened_rates(k_He4_Sc47_to_n_V50_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Sc47_He4_to_n_V50_derived)*Y(He4)*state.rho; jac.set(V50, Sc47, scratch); jac.set(V50, Sc48, 0.0); @@ -42721,15 +40530,15 @@ void jac_nuc(const burn_t& state, jac.set(V50, Ti46, 0.0); - scratch = screened_rates(k_He4_Ti47_to_p_V50_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ti47_He4_to_p_V50_derived)*Y(He4)*state.rho; jac.set(V50, Ti47, scratch); jac.set(V50, Ti48, 0.0); - scratch = screened_rates(k_p_Ti49_to_V50_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti49_p_to_V50_reaclib)*Y(H1)*state.rho; jac.set(V50, Ti49, scratch); - scratch = screened_rates(k_Ti50_to_V50_weaktab) + screened_rates(k_p_Ti50_to_n_V50_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti50_p_to_n_V50_derived)*Y(H1)*state.rho + screened_rates(k_Ti50_to_V50_beta_neg_weaktab); jac.set(V50, Ti50, scratch); jac.set(V50, Ti51, 0.0); @@ -42740,13 +40549,13 @@ void jac_nuc(const burn_t& state, jac.set(V50, V48, 0.0); - scratch = screened_rates(k_n_V49_to_V50_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_V49_n_to_V50_reaclib)*Y(N)*state.rho; jac.set(V50, V49, scratch); - scratch = -screened_rates(k_He4_V50_to_Mn54_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_V50_to_n_Mn53_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_V50_to_p_Cr53_reaclib)*Y(He4)*state.rho - screened_rates(k_V50_to_Cr50_weaktab) - screened_rates(k_V50_to_He4_Sc46_reaclib) - screened_rates(k_V50_to_Ti50_weaktab) - screened_rates(k_V50_to_n_V49_reaclib) - screened_rates(k_V50_to_p_Ti49_reaclib) - screened_rates(k_n_V50_to_He4_Sc47_reaclib)*Y(N)*state.rho - screened_rates(k_n_V50_to_V51_reaclib)*Y(N)*state.rho - screened_rates(k_n_V50_to_p_Ti50_reaclib)*Y(N)*state.rho - screened_rates(k_p_V50_to_Cr51_reaclib)*Y(H1)*state.rho - screened_rates(k_p_V50_to_He4_Ti47_reaclib)*Y(H1)*state.rho - screened_rates(k_p_V50_to_n_Cr50_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_V50_He4_to_Mn54_reaclib)*Y(He4)*state.rho - screened_rates(k_V50_He4_to_n_Mn53_derived)*Y(He4)*state.rho - screened_rates(k_V50_He4_to_p_Cr53_reaclib)*Y(He4)*state.rho - screened_rates(k_V50_n_to_He4_Sc47_reaclib)*Y(N)*state.rho - screened_rates(k_V50_n_to_V51_reaclib)*Y(N)*state.rho - screened_rates(k_V50_n_to_p_Ti50_reaclib)*Y(N)*state.rho - screened_rates(k_V50_p_to_Cr51_reaclib)*Y(H1)*state.rho - screened_rates(k_V50_p_to_He4_Ti47_reaclib)*Y(H1)*state.rho - screened_rates(k_V50_p_to_n_Cr50_reaclib)*Y(H1)*state.rho - screened_rates(k_V50_to_Cr50_beta_neg_weaktab) - screened_rates(k_V50_to_He4_Sc46_derived) - screened_rates(k_V50_to_Ti50_electron_capture_weaktab) - screened_rates(k_V50_to_n_V49_derived) - screened_rates(k_V50_to_p_Ti49_derived); jac.set(V50, V50, scratch); - scratch = screened_rates(k_V51_to_n_V50_reaclib); + scratch = screened_rates(k_V51_to_n_V50_derived); jac.set(V50, V51, scratch); jac.set(V50, V52, 0.0); @@ -42755,15 +40564,15 @@ void jac_nuc(const burn_t& state, jac.set(V50, Cr49, 0.0); - scratch = screened_rates(k_Cr50_to_V50_weaktab) + screened_rates(k_n_Cr50_to_p_V50_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cr50_n_to_p_V50_derived)*Y(N)*state.rho + screened_rates(k_Cr50_to_V50_electron_capture_weaktab); jac.set(V50, Cr50, scratch); - scratch = screened_rates(k_Cr51_to_p_V50_reaclib); + scratch = screened_rates(k_Cr51_to_p_V50_derived); jac.set(V50, Cr51, scratch); jac.set(V50, Cr52, 0.0); - scratch = screened_rates(k_p_Cr53_to_He4_V50_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr53_p_to_He4_V50_derived)*Y(H1)*state.rho; jac.set(V50, Cr53, scratch); jac.set(V50, Cr54, 0.0); @@ -42774,10 +40583,10 @@ void jac_nuc(const burn_t& state, jac.set(V50, Mn52, 0.0); - scratch = screened_rates(k_n_Mn53_to_He4_V50_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mn53_n_to_He4_V50_reaclib)*Y(N)*state.rho; jac.set(V50, Mn53, scratch); - scratch = screened_rates(k_Mn54_to_He4_V50_reaclib); + scratch = screened_rates(k_Mn54_to_He4_V50_derived); jac.set(V50, Mn54, scratch); jac.set(V50, Mn55, 0.0); @@ -42872,17 +40681,17 @@ void jac_nuc(const burn_t& state, jac.set(V50, Ge64, 0.0); - scratch = screened_rates(k_n_Cr51_to_p_V51_reaclib)*Y(Cr51)*state.rho + screened_rates(k_n_Mn54_to_He4_V51_reaclib)*Y(Mn54)*state.rho + screened_rates(k_n_V50_to_V51_reaclib)*Y(V50)*state.rho - screened_rates(k_n_V51_to_He4_Sc48_reaclib)*Y(V51)*state.rho - screened_rates(k_n_V51_to_V52_reaclib)*Y(V51)*state.rho - screened_rates(k_n_V51_to_p_Ti51_reaclib)*Y(V51)*state.rho; + scratch = screened_rates(k_Cr51_n_to_p_V51_reaclib)*Y(Cr51)*state.rho + screened_rates(k_Mn54_n_to_He4_V51_reaclib)*Y(Mn54)*state.rho + screened_rates(k_V50_n_to_V51_reaclib)*Y(V50)*state.rho - screened_rates(k_V51_n_to_He4_Sc48_derived)*Y(V51)*state.rho - screened_rates(k_V51_n_to_V52_reaclib)*Y(V51)*state.rho - screened_rates(k_V51_n_to_p_Ti51_derived)*Y(V51)*state.rho; jac.set(V51, N, scratch); - scratch = screened_rates(k_p_Cr54_to_He4_V51_reaclib)*Y(Cr54)*state.rho + screened_rates(k_p_Ti50_to_V51_reaclib)*Y(Ti50)*state.rho + screened_rates(k_p_Ti51_to_n_V51_reaclib)*Y(Ti51)*state.rho - screened_rates(k_p_V51_to_Cr52_reaclib)*Y(V51)*state.rho - screened_rates(k_p_V51_to_He4_Ti48_reaclib)*Y(V51)*state.rho - screened_rates(k_p_V51_to_n_Cr51_reaclib)*Y(V51)*state.rho; + scratch = screened_rates(k_Cr54_p_to_He4_V51_reaclib)*Y(Cr54)*state.rho + screened_rates(k_Ti50_p_to_V51_reaclib)*Y(Ti50)*state.rho + screened_rates(k_Ti51_p_to_n_V51_reaclib)*Y(Ti51)*state.rho - screened_rates(k_V51_p_to_Cr52_reaclib)*Y(V51)*state.rho - screened_rates(k_V51_p_to_He4_Ti48_reaclib)*Y(V51)*state.rho - screened_rates(k_V51_p_to_n_Cr51_derived)*Y(V51)*state.rho; jac.set(V51, H1, scratch); jac.set(V51, H2, 0.0); jac.set(V51, He3, 0.0); - scratch = screened_rates(k_He4_Sc47_to_V51_reaclib)*Y(Sc47)*state.rho + screened_rates(k_He4_Sc48_to_n_V51_reaclib)*Y(Sc48)*state.rho + screened_rates(k_He4_Ti48_to_p_V51_reaclib)*Y(Ti48)*state.rho - screened_rates(k_He4_V51_to_Mn55_reaclib)*Y(V51)*state.rho - screened_rates(k_He4_V51_to_n_Mn54_reaclib)*Y(V51)*state.rho - screened_rates(k_He4_V51_to_p_Cr54_reaclib)*Y(V51)*state.rho; + scratch = screened_rates(k_Sc47_He4_to_V51_reaclib)*Y(Sc47)*state.rho + screened_rates(k_Sc48_He4_to_n_V51_reaclib)*Y(Sc48)*state.rho + screened_rates(k_Ti48_He4_to_p_V51_derived)*Y(Ti48)*state.rho - screened_rates(k_V51_He4_to_Mn55_reaclib)*Y(V51)*state.rho - screened_rates(k_V51_He4_to_n_Mn54_derived)*Y(V51)*state.rho - screened_rates(k_V51_He4_to_p_Cr54_derived)*Y(V51)*state.rho; jac.set(V51, He4, scratch); jac.set(V51, Li6, 0.0); @@ -43043,10 +40852,10 @@ void jac_nuc(const burn_t& state, jac.set(V51, Sc46, 0.0); - scratch = screened_rates(k_He4_Sc47_to_V51_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Sc47_He4_to_V51_reaclib)*Y(He4)*state.rho; jac.set(V51, Sc47, scratch); - scratch = screened_rates(k_He4_Sc48_to_n_V51_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Sc48_He4_to_n_V51_reaclib)*Y(He4)*state.rho; jac.set(V51, Sc48, scratch); jac.set(V51, Sc49, 0.0); @@ -43059,15 +40868,15 @@ void jac_nuc(const burn_t& state, jac.set(V51, Ti47, 0.0); - scratch = screened_rates(k_He4_Ti48_to_p_V51_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ti48_He4_to_p_V51_derived)*Y(He4)*state.rho; jac.set(V51, Ti48, scratch); jac.set(V51, Ti49, 0.0); - scratch = screened_rates(k_p_Ti50_to_V51_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti50_p_to_V51_reaclib)*Y(H1)*state.rho; jac.set(V51, Ti50, scratch); - scratch = screened_rates(k_Ti51_to_V51_weaktab) + screened_rates(k_p_Ti51_to_n_V51_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti51_p_to_n_V51_reaclib)*Y(H1)*state.rho + screened_rates(k_Ti51_to_V51_beta_neg_weaktab); jac.set(V51, Ti51, scratch); jac.set(V51, V46, 0.0); @@ -43078,13 +40887,13 @@ void jac_nuc(const burn_t& state, jac.set(V51, V49, 0.0); - scratch = screened_rates(k_n_V50_to_V51_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_V50_n_to_V51_reaclib)*Y(N)*state.rho; jac.set(V51, V50, scratch); - scratch = -screened_rates(k_He4_V51_to_Mn55_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_V51_to_n_Mn54_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_V51_to_p_Cr54_reaclib)*Y(He4)*state.rho - screened_rates(k_V51_to_Cr51_weaktab) - screened_rates(k_V51_to_He4_Sc47_reaclib) - screened_rates(k_V51_to_Ti51_weaktab) - screened_rates(k_V51_to_n_V50_reaclib) - screened_rates(k_V51_to_p_Ti50_reaclib) - screened_rates(k_n_V51_to_He4_Sc48_reaclib)*Y(N)*state.rho - screened_rates(k_n_V51_to_V52_reaclib)*Y(N)*state.rho - screened_rates(k_n_V51_to_p_Ti51_reaclib)*Y(N)*state.rho - screened_rates(k_p_V51_to_Cr52_reaclib)*Y(H1)*state.rho - screened_rates(k_p_V51_to_He4_Ti48_reaclib)*Y(H1)*state.rho - screened_rates(k_p_V51_to_n_Cr51_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_V51_He4_to_Mn55_reaclib)*Y(He4)*state.rho - screened_rates(k_V51_He4_to_n_Mn54_derived)*Y(He4)*state.rho - screened_rates(k_V51_He4_to_p_Cr54_derived)*Y(He4)*state.rho - screened_rates(k_V51_n_to_He4_Sc48_derived)*Y(N)*state.rho - screened_rates(k_V51_n_to_V52_reaclib)*Y(N)*state.rho - screened_rates(k_V51_n_to_p_Ti51_derived)*Y(N)*state.rho - screened_rates(k_V51_p_to_Cr52_reaclib)*Y(H1)*state.rho - screened_rates(k_V51_p_to_He4_Ti48_reaclib)*Y(H1)*state.rho - screened_rates(k_V51_p_to_n_Cr51_derived)*Y(H1)*state.rho - screened_rates(k_V51_to_Cr51_beta_neg_weaktab) - screened_rates(k_V51_to_He4_Sc47_derived) - screened_rates(k_V51_to_Ti51_electron_capture_weaktab) - screened_rates(k_V51_to_n_V50_derived) - screened_rates(k_V51_to_p_Ti50_derived); jac.set(V51, V51, scratch); - scratch = screened_rates(k_V52_to_n_V51_reaclib); + scratch = screened_rates(k_V52_to_n_V51_derived); jac.set(V51, V52, scratch); jac.set(V51, Cr48, 0.0); @@ -43093,15 +40902,15 @@ void jac_nuc(const burn_t& state, jac.set(V51, Cr50, 0.0); - scratch = screened_rates(k_Cr51_to_V51_weaktab) + screened_rates(k_n_Cr51_to_p_V51_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cr51_n_to_p_V51_reaclib)*Y(N)*state.rho + screened_rates(k_Cr51_to_V51_electron_capture_weaktab); jac.set(V51, Cr51, scratch); - scratch = screened_rates(k_Cr52_to_p_V51_reaclib); + scratch = screened_rates(k_Cr52_to_p_V51_derived); jac.set(V51, Cr52, scratch); jac.set(V51, Cr53, 0.0); - scratch = screened_rates(k_p_Cr54_to_He4_V51_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr54_p_to_He4_V51_reaclib)*Y(H1)*state.rho; jac.set(V51, Cr54, scratch); jac.set(V51, Mn50, 0.0); @@ -43112,10 +40921,10 @@ void jac_nuc(const burn_t& state, jac.set(V51, Mn53, 0.0); - scratch = screened_rates(k_n_Mn54_to_He4_V51_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mn54_n_to_He4_V51_reaclib)*Y(N)*state.rho; jac.set(V51, Mn54, scratch); - scratch = screened_rates(k_Mn55_to_He4_V51_reaclib); + scratch = screened_rates(k_Mn55_to_He4_V51_derived); jac.set(V51, Mn55, scratch); jac.set(V51, Fe52, 0.0); @@ -43208,17 +41017,17 @@ void jac_nuc(const burn_t& state, jac.set(V51, Ge64, 0.0); - scratch = screened_rates(k_n_Cr52_to_p_V52_reaclib)*Y(Cr52)*state.rho + screened_rates(k_n_Mn55_to_He4_V52_reaclib)*Y(Mn55)*state.rho + screened_rates(k_n_V51_to_V52_reaclib)*Y(V51)*state.rho - screened_rates(k_n_V52_to_He4_Sc49_reaclib)*Y(V52)*state.rho; + scratch = screened_rates(k_Cr52_n_to_p_V52_derived)*Y(Cr52)*state.rho + screened_rates(k_Mn55_n_to_He4_V52_derived)*Y(Mn55)*state.rho + screened_rates(k_V51_n_to_V52_reaclib)*Y(V51)*state.rho - screened_rates(k_V52_n_to_He4_Sc49_reaclib)*Y(V52)*state.rho; jac.set(V52, N, scratch); - scratch = screened_rates(k_p_Ti51_to_V52_reaclib)*Y(Ti51)*state.rho - screened_rates(k_p_V52_to_Cr53_reaclib)*Y(V52)*state.rho - screened_rates(k_p_V52_to_He4_Ti49_reaclib)*Y(V52)*state.rho - screened_rates(k_p_V52_to_n_Cr52_reaclib)*Y(V52)*state.rho; + scratch = screened_rates(k_Ti51_p_to_V52_reaclib)*Y(Ti51)*state.rho - screened_rates(k_V52_p_to_Cr53_reaclib)*Y(V52)*state.rho - screened_rates(k_V52_p_to_He4_Ti49_reaclib)*Y(V52)*state.rho - screened_rates(k_V52_p_to_n_Cr52_reaclib)*Y(V52)*state.rho; jac.set(V52, H1, scratch); jac.set(V52, H2, 0.0); jac.set(V52, He3, 0.0); - scratch = screened_rates(k_He4_Sc48_to_V52_reaclib)*Y(Sc48)*state.rho + screened_rates(k_He4_Sc49_to_n_V52_reaclib)*Y(Sc49)*state.rho + screened_rates(k_He4_Ti49_to_p_V52_reaclib)*Y(Ti49)*state.rho - screened_rates(k_He4_V52_to_n_Mn55_reaclib)*Y(V52)*state.rho; + scratch = screened_rates(k_Sc48_He4_to_V52_reaclib)*Y(Sc48)*state.rho + screened_rates(k_Sc49_He4_to_n_V52_derived)*Y(Sc49)*state.rho + screened_rates(k_Ti49_He4_to_p_V52_derived)*Y(Ti49)*state.rho - screened_rates(k_V52_He4_to_n_Mn55_reaclib)*Y(V52)*state.rho; jac.set(V52, He4, scratch); jac.set(V52, Li6, 0.0); @@ -43381,10 +41190,10 @@ void jac_nuc(const burn_t& state, jac.set(V52, Sc47, 0.0); - scratch = screened_rates(k_He4_Sc48_to_V52_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Sc48_He4_to_V52_reaclib)*Y(He4)*state.rho; jac.set(V52, Sc48, scratch); - scratch = screened_rates(k_He4_Sc49_to_n_V52_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Sc49_He4_to_n_V52_derived)*Y(He4)*state.rho; jac.set(V52, Sc49, scratch); jac.set(V52, Ti44, 0.0); @@ -43397,12 +41206,12 @@ void jac_nuc(const burn_t& state, jac.set(V52, Ti48, 0.0); - scratch = screened_rates(k_He4_Ti49_to_p_V52_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ti49_He4_to_p_V52_derived)*Y(He4)*state.rho; jac.set(V52, Ti49, scratch); jac.set(V52, Ti50, 0.0); - scratch = screened_rates(k_p_Ti51_to_V52_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ti51_p_to_V52_reaclib)*Y(H1)*state.rho; jac.set(V52, Ti51, scratch); jac.set(V52, V46, 0.0); @@ -43415,10 +41224,10 @@ void jac_nuc(const burn_t& state, jac.set(V52, V50, 0.0); - scratch = screened_rates(k_n_V51_to_V52_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_V51_n_to_V52_reaclib)*Y(N)*state.rho; jac.set(V52, V51, scratch); - scratch = -screened_rates(k_He4_V52_to_n_Mn55_reaclib)*Y(He4)*state.rho - screened_rates(k_V52_to_Cr52_weaktab) - screened_rates(k_V52_to_He4_Sc48_reaclib) - screened_rates(k_V52_to_n_V51_reaclib) - screened_rates(k_V52_to_p_Ti51_reaclib) - screened_rates(k_n_V52_to_He4_Sc49_reaclib)*Y(N)*state.rho - screened_rates(k_p_V52_to_Cr53_reaclib)*Y(H1)*state.rho - screened_rates(k_p_V52_to_He4_Ti49_reaclib)*Y(H1)*state.rho - screened_rates(k_p_V52_to_n_Cr52_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_V52_He4_to_n_Mn55_reaclib)*Y(He4)*state.rho - screened_rates(k_V52_n_to_He4_Sc49_reaclib)*Y(N)*state.rho - screened_rates(k_V52_p_to_Cr53_reaclib)*Y(H1)*state.rho - screened_rates(k_V52_p_to_He4_Ti49_reaclib)*Y(H1)*state.rho - screened_rates(k_V52_p_to_n_Cr52_reaclib)*Y(H1)*state.rho - screened_rates(k_V52_to_Cr52_beta_neg_weaktab) - screened_rates(k_V52_to_He4_Sc48_derived) - screened_rates(k_V52_to_n_V51_derived) - screened_rates(k_V52_to_p_Ti51_derived); jac.set(V52, V52, scratch); jac.set(V52, Cr48, 0.0); @@ -43429,10 +41238,10 @@ void jac_nuc(const burn_t& state, jac.set(V52, Cr51, 0.0); - scratch = screened_rates(k_Cr52_to_V52_weaktab) + screened_rates(k_n_Cr52_to_p_V52_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cr52_n_to_p_V52_derived)*Y(N)*state.rho + screened_rates(k_Cr52_to_V52_electron_capture_weaktab); jac.set(V52, Cr52, scratch); - scratch = screened_rates(k_Cr53_to_p_V52_reaclib); + scratch = screened_rates(k_Cr53_to_p_V52_derived); jac.set(V52, Cr53, scratch); jac.set(V52, Cr54, 0.0); @@ -43447,7 +41256,7 @@ void jac_nuc(const burn_t& state, jac.set(V52, Mn54, 0.0); - scratch = screened_rates(k_n_Mn55_to_He4_V52_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mn55_n_to_He4_V52_derived)*Y(N)*state.rho; jac.set(V52, Mn55, scratch); jac.set(V52, Fe52, 0.0); @@ -43540,17 +41349,17 @@ void jac_nuc(const burn_t& state, jac.set(V52, Ge64, 0.0); - scratch = -screened_rates(k_n_Cr48_to_Cr49_reaclib)*Y(Cr48)*state.rho - screened_rates(k_n_Cr48_to_He4_Ti45_reaclib)*Y(Cr48)*state.rho - screened_rates(k_n_Cr48_to_p_V48_reaclib)*Y(Cr48)*state.rho; + scratch = -screened_rates(k_Cr48_n_to_Cr49_reaclib)*Y(Cr48)*state.rho - screened_rates(k_Cr48_n_to_He4_Ti45_reaclib)*Y(Cr48)*state.rho - screened_rates(k_Cr48_n_to_p_V48_reaclib)*Y(Cr48)*state.rho; jac.set(Cr48, N, scratch); - scratch = screened_rates(k_p_Mn51_to_He4_Cr48_reaclib)*Y(Mn51)*state.rho + screened_rates(k_p_V47_to_Cr48_reaclib)*Y(V47)*state.rho + screened_rates(k_p_V48_to_n_Cr48_reaclib)*Y(V48)*state.rho; + scratch = screened_rates(k_Mn51_p_to_He4_Cr48_derived)*Y(Mn51)*state.rho + screened_rates(k_V47_p_to_Cr48_reaclib)*Y(V47)*state.rho + screened_rates(k_V48_p_to_n_Cr48_derived)*Y(V48)*state.rho; jac.set(Cr48, H1, scratch); jac.set(Cr48, H2, 0.0); jac.set(Cr48, He3, 0.0); - scratch = -screened_rates(k_He4_Cr48_to_Fe52_reaclib)*Y(Cr48)*state.rho - screened_rates(k_He4_Cr48_to_p_Mn51_reaclib)*Y(Cr48)*state.rho + screened_rates(k_He4_Ti44_to_Cr48_reaclib)*Y(Ti44)*state.rho + screened_rates(k_He4_Ti45_to_n_Cr48_reaclib)*Y(Ti45)*state.rho; + scratch = -screened_rates(k_Cr48_He4_to_Fe52_reaclib)*Y(Cr48)*state.rho - screened_rates(k_Cr48_He4_to_p_Mn51_reaclib)*Y(Cr48)*state.rho + screened_rates(k_Ti44_He4_to_Cr48_reaclib)*Y(Ti44)*state.rho + screened_rates(k_Ti45_He4_to_n_Cr48_derived)*Y(Ti45)*state.rho; jac.set(Cr48, He4, scratch); jac.set(Cr48, Li6, 0.0); @@ -43717,10 +41526,10 @@ void jac_nuc(const burn_t& state, jac.set(Cr48, Sc49, 0.0); - scratch = screened_rates(k_He4_Ti44_to_Cr48_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ti44_He4_to_Cr48_reaclib)*Y(He4)*state.rho; jac.set(Cr48, Ti44, scratch); - scratch = screened_rates(k_He4_Ti45_to_n_Cr48_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ti45_He4_to_n_Cr48_derived)*Y(He4)*state.rho; jac.set(Cr48, Ti45, scratch); jac.set(Cr48, Ti46, 0.0); @@ -43737,10 +41546,10 @@ void jac_nuc(const burn_t& state, jac.set(Cr48, V46, 0.0); - scratch = screened_rates(k_p_V47_to_Cr48_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V47_p_to_Cr48_reaclib)*Y(H1)*state.rho; jac.set(Cr48, V47, scratch); - scratch = screened_rates(k_V48_to_Cr48_weaktab) + screened_rates(k_p_V48_to_n_Cr48_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V48_p_to_n_Cr48_derived)*Y(H1)*state.rho + screened_rates(k_V48_to_Cr48_beta_neg_weaktab); jac.set(Cr48, V48, scratch); jac.set(Cr48, V49, 0.0); @@ -43751,10 +41560,10 @@ void jac_nuc(const burn_t& state, jac.set(Cr48, V52, 0.0); - scratch = -screened_rates(k_Cr48_to_He4_Ti44_reaclib) - screened_rates(k_Cr48_to_V48_weaktab) - screened_rates(k_Cr48_to_p_V47_reaclib) - screened_rates(k_He4_Cr48_to_Fe52_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cr48_to_p_Mn51_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cr48_to_Cr49_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cr48_to_He4_Ti45_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cr48_to_p_V48_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Cr48_He4_to_Fe52_reaclib)*Y(He4)*state.rho - screened_rates(k_Cr48_He4_to_p_Mn51_reaclib)*Y(He4)*state.rho - screened_rates(k_Cr48_n_to_Cr49_reaclib)*Y(N)*state.rho - screened_rates(k_Cr48_n_to_He4_Ti45_reaclib)*Y(N)*state.rho - screened_rates(k_Cr48_n_to_p_V48_reaclib)*Y(N)*state.rho - screened_rates(k_Cr48_to_He4_Ti44_derived) - screened_rates(k_Cr48_to_V48_electron_capture_weaktab) - screened_rates(k_Cr48_to_p_V47_derived); jac.set(Cr48, Cr48, scratch); - scratch = screened_rates(k_Cr49_to_n_Cr48_reaclib); + scratch = screened_rates(k_Cr49_to_n_Cr48_derived); jac.set(Cr48, Cr49, scratch); jac.set(Cr48, Cr50, 0.0); @@ -43769,7 +41578,7 @@ void jac_nuc(const burn_t& state, jac.set(Cr48, Mn50, 0.0); - scratch = screened_rates(k_p_Mn51_to_He4_Cr48_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mn51_p_to_He4_Cr48_derived)*Y(H1)*state.rho; jac.set(Cr48, Mn51, scratch); jac.set(Cr48, Mn52, 0.0); @@ -43780,7 +41589,7 @@ void jac_nuc(const burn_t& state, jac.set(Cr48, Mn55, 0.0); - scratch = screened_rates(k_Fe52_to_He4_Cr48_reaclib); + scratch = screened_rates(k_Fe52_to_He4_Cr48_derived); jac.set(Cr48, Fe52, scratch); jac.set(Cr48, Fe53, 0.0); @@ -43871,17 +41680,17 @@ void jac_nuc(const burn_t& state, jac.set(Cr48, Ge64, 0.0); - scratch = screened_rates(k_n_Cr48_to_Cr49_reaclib)*Y(Cr48)*state.rho - screened_rates(k_n_Cr49_to_Cr50_reaclib)*Y(Cr49)*state.rho - screened_rates(k_n_Cr49_to_He4_Ti46_reaclib)*Y(Cr49)*state.rho - screened_rates(k_n_Cr49_to_p_V49_reaclib)*Y(Cr49)*state.rho + screened_rates(k_n_Fe52_to_He4_Cr49_reaclib)*Y(Fe52)*state.rho; + scratch = screened_rates(k_Cr48_n_to_Cr49_reaclib)*Y(Cr48)*state.rho - screened_rates(k_Cr49_n_to_Cr50_reaclib)*Y(Cr49)*state.rho - screened_rates(k_Cr49_n_to_He4_Ti46_reaclib)*Y(Cr49)*state.rho - screened_rates(k_Cr49_n_to_p_V49_reaclib)*Y(Cr49)*state.rho + screened_rates(k_Fe52_n_to_He4_Cr49_reaclib)*Y(Fe52)*state.rho; jac.set(Cr49, N, scratch); - scratch = -screened_rates(k_p_Cr49_to_He4_V46_reaclib)*Y(Cr49)*state.rho - screened_rates(k_p_Cr49_to_Mn50_reaclib)*Y(Cr49)*state.rho + screened_rates(k_p_Mn52_to_He4_Cr49_reaclib)*Y(Mn52)*state.rho + screened_rates(k_p_V48_to_Cr49_reaclib)*Y(V48)*state.rho + screened_rates(k_p_V49_to_n_Cr49_reaclib)*Y(V49)*state.rho; + scratch = -screened_rates(k_Cr49_p_to_He4_V46_derived)*Y(Cr49)*state.rho - screened_rates(k_Cr49_p_to_Mn50_reaclib)*Y(Cr49)*state.rho + screened_rates(k_Mn52_p_to_He4_Cr49_derived)*Y(Mn52)*state.rho + screened_rates(k_V48_p_to_Cr49_reaclib)*Y(V48)*state.rho + screened_rates(k_V49_p_to_n_Cr49_derived)*Y(V49)*state.rho; jac.set(Cr49, H1, scratch); jac.set(Cr49, H2, 0.0); jac.set(Cr49, He3, 0.0); - scratch = -screened_rates(k_He4_Cr49_to_Fe53_reaclib)*Y(Cr49)*state.rho - screened_rates(k_He4_Cr49_to_n_Fe52_reaclib)*Y(Cr49)*state.rho - screened_rates(k_He4_Cr49_to_p_Mn52_reaclib)*Y(Cr49)*state.rho + screened_rates(k_He4_Ti45_to_Cr49_reaclib)*Y(Ti45)*state.rho + screened_rates(k_He4_Ti46_to_n_Cr49_reaclib)*Y(Ti46)*state.rho + screened_rates(k_He4_V46_to_p_Cr49_reaclib)*Y(V46)*state.rho; + scratch = -screened_rates(k_Cr49_He4_to_Fe53_reaclib)*Y(Cr49)*state.rho - screened_rates(k_Cr49_He4_to_n_Fe52_derived)*Y(Cr49)*state.rho - screened_rates(k_Cr49_He4_to_p_Mn52_reaclib)*Y(Cr49)*state.rho + screened_rates(k_Ti45_He4_to_Cr49_reaclib)*Y(Ti45)*state.rho + screened_rates(k_Ti46_He4_to_n_Cr49_derived)*Y(Ti46)*state.rho + screened_rates(k_V46_He4_to_p_Cr49_reaclib)*Y(V46)*state.rho; jac.set(Cr49, He4, scratch); jac.set(Cr49, Li6, 0.0); @@ -44050,10 +41859,10 @@ void jac_nuc(const burn_t& state, jac.set(Cr49, Ti44, 0.0); - scratch = screened_rates(k_He4_Ti45_to_Cr49_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ti45_He4_to_Cr49_reaclib)*Y(He4)*state.rho; jac.set(Cr49, Ti45, scratch); - scratch = screened_rates(k_He4_Ti46_to_n_Cr49_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ti46_He4_to_n_Cr49_derived)*Y(He4)*state.rho; jac.set(Cr49, Ti46, scratch); jac.set(Cr49, Ti47, 0.0); @@ -44066,15 +41875,15 @@ void jac_nuc(const burn_t& state, jac.set(Cr49, Ti51, 0.0); - scratch = screened_rates(k_He4_V46_to_p_Cr49_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_V46_He4_to_p_Cr49_reaclib)*Y(He4)*state.rho; jac.set(Cr49, V46, scratch); jac.set(Cr49, V47, 0.0); - scratch = screened_rates(k_p_V48_to_Cr49_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V48_p_to_Cr49_reaclib)*Y(H1)*state.rho; jac.set(Cr49, V48, scratch); - scratch = screened_rates(k_V49_to_Cr49_weaktab) + screened_rates(k_p_V49_to_n_Cr49_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V49_p_to_n_Cr49_derived)*Y(H1)*state.rho + screened_rates(k_V49_to_Cr49_beta_neg_weaktab); jac.set(Cr49, V49, scratch); jac.set(Cr49, V50, 0.0); @@ -44083,13 +41892,13 @@ void jac_nuc(const burn_t& state, jac.set(Cr49, V52, 0.0); - scratch = screened_rates(k_n_Cr48_to_Cr49_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cr48_n_to_Cr49_reaclib)*Y(N)*state.rho; jac.set(Cr49, Cr48, scratch); - scratch = -screened_rates(k_Cr49_to_He4_Ti45_reaclib) - screened_rates(k_Cr49_to_V49_weaktab) - screened_rates(k_Cr49_to_n_Cr48_reaclib) - screened_rates(k_Cr49_to_p_V48_reaclib) - screened_rates(k_He4_Cr49_to_Fe53_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cr49_to_n_Fe52_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cr49_to_p_Mn52_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cr49_to_Cr50_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cr49_to_He4_Ti46_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cr49_to_p_V49_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cr49_to_He4_V46_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cr49_to_Mn50_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cr49_He4_to_Fe53_reaclib)*Y(He4)*state.rho - screened_rates(k_Cr49_He4_to_n_Fe52_derived)*Y(He4)*state.rho - screened_rates(k_Cr49_He4_to_p_Mn52_reaclib)*Y(He4)*state.rho - screened_rates(k_Cr49_n_to_Cr50_reaclib)*Y(N)*state.rho - screened_rates(k_Cr49_n_to_He4_Ti46_reaclib)*Y(N)*state.rho - screened_rates(k_Cr49_n_to_p_V49_reaclib)*Y(N)*state.rho - screened_rates(k_Cr49_p_to_He4_V46_derived)*Y(H1)*state.rho - screened_rates(k_Cr49_p_to_Mn50_reaclib)*Y(H1)*state.rho - screened_rates(k_Cr49_to_He4_Ti45_derived) - screened_rates(k_Cr49_to_V49_electron_capture_weaktab) - screened_rates(k_Cr49_to_n_Cr48_derived) - screened_rates(k_Cr49_to_p_V48_derived); jac.set(Cr49, Cr49, scratch); - scratch = screened_rates(k_Cr50_to_n_Cr49_reaclib); + scratch = screened_rates(k_Cr50_to_n_Cr49_derived); jac.set(Cr49, Cr50, scratch); jac.set(Cr49, Cr51, 0.0); @@ -44100,12 +41909,12 @@ void jac_nuc(const burn_t& state, jac.set(Cr49, Cr54, 0.0); - scratch = screened_rates(k_Mn50_to_p_Cr49_reaclib); + scratch = screened_rates(k_Mn50_to_p_Cr49_derived); jac.set(Cr49, Mn50, scratch); jac.set(Cr49, Mn51, 0.0); - scratch = screened_rates(k_p_Mn52_to_He4_Cr49_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mn52_p_to_He4_Cr49_derived)*Y(H1)*state.rho; jac.set(Cr49, Mn52, scratch); jac.set(Cr49, Mn53, 0.0); @@ -44114,10 +41923,10 @@ void jac_nuc(const burn_t& state, jac.set(Cr49, Mn55, 0.0); - scratch = screened_rates(k_n_Fe52_to_He4_Cr49_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Fe52_n_to_He4_Cr49_reaclib)*Y(N)*state.rho; jac.set(Cr49, Fe52, scratch); - scratch = screened_rates(k_Fe53_to_He4_Cr49_reaclib); + scratch = screened_rates(k_Fe53_to_He4_Cr49_derived); jac.set(Cr49, Fe53, scratch); jac.set(Cr49, Fe54, 0.0); @@ -44206,17 +42015,17 @@ void jac_nuc(const burn_t& state, jac.set(Cr49, Ge64, 0.0); - scratch = screened_rates(k_n_Cr49_to_Cr50_reaclib)*Y(Cr49)*state.rho - screened_rates(k_n_Cr50_to_Cr51_reaclib)*Y(Cr50)*state.rho - screened_rates(k_n_Cr50_to_He4_Ti47_reaclib)*Y(Cr50)*state.rho - screened_rates(k_n_Cr50_to_p_V50_reaclib)*Y(Cr50)*state.rho + screened_rates(k_n_Fe53_to_He4_Cr50_reaclib)*Y(Fe53)*state.rho + screened_rates(k_n_Mn50_to_p_Cr50_reaclib)*Y(Mn50)*state.rho; + scratch = screened_rates(k_Cr49_n_to_Cr50_reaclib)*Y(Cr49)*state.rho - screened_rates(k_Cr50_n_to_Cr51_reaclib)*Y(Cr50)*state.rho - screened_rates(k_Cr50_n_to_He4_Ti47_reaclib)*Y(Cr50)*state.rho - screened_rates(k_Cr50_n_to_p_V50_derived)*Y(Cr50)*state.rho + screened_rates(k_Fe53_n_to_He4_Cr50_reaclib)*Y(Fe53)*state.rho + screened_rates(k_Mn50_n_to_p_Cr50_reaclib)*Y(Mn50)*state.rho; jac.set(Cr50, N, scratch); - scratch = -screened_rates(k_p_Cr50_to_He4_V47_reaclib)*Y(Cr50)*state.rho - screened_rates(k_p_Cr50_to_Mn51_reaclib)*Y(Cr50)*state.rho - screened_rates(k_p_Cr50_to_n_Mn50_reaclib)*Y(Cr50)*state.rho + screened_rates(k_p_Mn53_to_He4_Cr50_reaclib)*Y(Mn53)*state.rho + screened_rates(k_p_V49_to_Cr50_reaclib)*Y(V49)*state.rho + screened_rates(k_p_V50_to_n_Cr50_reaclib)*Y(V50)*state.rho; + scratch = -screened_rates(k_Cr50_p_to_He4_V47_derived)*Y(Cr50)*state.rho - screened_rates(k_Cr50_p_to_Mn51_reaclib)*Y(Cr50)*state.rho - screened_rates(k_Cr50_p_to_n_Mn50_derived)*Y(Cr50)*state.rho + screened_rates(k_Mn53_p_to_He4_Cr50_reaclib)*Y(Mn53)*state.rho + screened_rates(k_V49_p_to_Cr50_reaclib)*Y(V49)*state.rho + screened_rates(k_V50_p_to_n_Cr50_reaclib)*Y(V50)*state.rho; jac.set(Cr50, H1, scratch); jac.set(Cr50, H2, 0.0); jac.set(Cr50, He3, 0.0); - scratch = -screened_rates(k_He4_Cr50_to_Fe54_reaclib)*Y(Cr50)*state.rho - screened_rates(k_He4_Cr50_to_n_Fe53_reaclib)*Y(Cr50)*state.rho - screened_rates(k_He4_Cr50_to_p_Mn53_reaclib)*Y(Cr50)*state.rho + screened_rates(k_He4_Ti46_to_Cr50_reaclib)*Y(Ti46)*state.rho + screened_rates(k_He4_Ti47_to_n_Cr50_reaclib)*Y(Ti47)*state.rho + screened_rates(k_He4_V47_to_p_Cr50_reaclib)*Y(V47)*state.rho; + scratch = -screened_rates(k_Cr50_He4_to_Fe54_reaclib)*Y(Cr50)*state.rho - screened_rates(k_Cr50_He4_to_n_Fe53_derived)*Y(Cr50)*state.rho - screened_rates(k_Cr50_He4_to_p_Mn53_derived)*Y(Cr50)*state.rho + screened_rates(k_Ti46_He4_to_Cr50_reaclib)*Y(Ti46)*state.rho + screened_rates(k_Ti47_He4_to_n_Cr50_derived)*Y(Ti47)*state.rho + screened_rates(k_V47_He4_to_p_Cr50_reaclib)*Y(V47)*state.rho; jac.set(Cr50, He4, scratch); jac.set(Cr50, Li6, 0.0); @@ -44387,10 +42196,10 @@ void jac_nuc(const burn_t& state, jac.set(Cr50, Ti45, 0.0); - scratch = screened_rates(k_He4_Ti46_to_Cr50_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ti46_He4_to_Cr50_reaclib)*Y(He4)*state.rho; jac.set(Cr50, Ti46, scratch); - scratch = screened_rates(k_He4_Ti47_to_n_Cr50_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ti47_He4_to_n_Cr50_derived)*Y(He4)*state.rho; jac.set(Cr50, Ti47, scratch); jac.set(Cr50, Ti48, 0.0); @@ -44403,15 +42212,15 @@ void jac_nuc(const burn_t& state, jac.set(Cr50, V46, 0.0); - scratch = screened_rates(k_He4_V47_to_p_Cr50_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_V47_He4_to_p_Cr50_reaclib)*Y(He4)*state.rho; jac.set(Cr50, V47, scratch); jac.set(Cr50, V48, 0.0); - scratch = screened_rates(k_p_V49_to_Cr50_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V49_p_to_Cr50_reaclib)*Y(H1)*state.rho; jac.set(Cr50, V49, scratch); - scratch = screened_rates(k_V50_to_Cr50_weaktab) + screened_rates(k_p_V50_to_n_Cr50_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V50_p_to_n_Cr50_reaclib)*Y(H1)*state.rho + screened_rates(k_V50_to_Cr50_beta_neg_weaktab); jac.set(Cr50, V50, scratch); jac.set(Cr50, V51, 0.0); @@ -44420,13 +42229,13 @@ void jac_nuc(const burn_t& state, jac.set(Cr50, Cr48, 0.0); - scratch = screened_rates(k_n_Cr49_to_Cr50_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cr49_n_to_Cr50_reaclib)*Y(N)*state.rho; jac.set(Cr50, Cr49, scratch); - scratch = -screened_rates(k_Cr50_to_He4_Ti46_reaclib) - screened_rates(k_Cr50_to_Mn50_weaktab) - screened_rates(k_Cr50_to_V50_weaktab) - screened_rates(k_Cr50_to_n_Cr49_reaclib) - screened_rates(k_Cr50_to_p_V49_reaclib) - screened_rates(k_He4_Cr50_to_Fe54_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cr50_to_n_Fe53_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cr50_to_p_Mn53_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cr50_to_Cr51_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cr50_to_He4_Ti47_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cr50_to_p_V50_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cr50_to_He4_V47_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cr50_to_Mn51_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cr50_to_n_Mn50_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cr50_He4_to_Fe54_reaclib)*Y(He4)*state.rho - screened_rates(k_Cr50_He4_to_n_Fe53_derived)*Y(He4)*state.rho - screened_rates(k_Cr50_He4_to_p_Mn53_derived)*Y(He4)*state.rho - screened_rates(k_Cr50_n_to_Cr51_reaclib)*Y(N)*state.rho - screened_rates(k_Cr50_n_to_He4_Ti47_reaclib)*Y(N)*state.rho - screened_rates(k_Cr50_n_to_p_V50_derived)*Y(N)*state.rho - screened_rates(k_Cr50_p_to_He4_V47_derived)*Y(H1)*state.rho - screened_rates(k_Cr50_p_to_Mn51_reaclib)*Y(H1)*state.rho - screened_rates(k_Cr50_p_to_n_Mn50_derived)*Y(H1)*state.rho - screened_rates(k_Cr50_to_He4_Ti46_derived) - screened_rates(k_Cr50_to_Mn50_beta_neg_weaktab) - screened_rates(k_Cr50_to_V50_electron_capture_weaktab) - screened_rates(k_Cr50_to_n_Cr49_derived) - screened_rates(k_Cr50_to_p_V49_derived); jac.set(Cr50, Cr50, scratch); - scratch = screened_rates(k_Cr51_to_n_Cr50_reaclib); + scratch = screened_rates(k_Cr51_to_n_Cr50_derived); jac.set(Cr50, Cr51, scratch); jac.set(Cr50, Cr52, 0.0); @@ -44435,15 +42244,15 @@ void jac_nuc(const burn_t& state, jac.set(Cr50, Cr54, 0.0); - scratch = screened_rates(k_Mn50_to_Cr50_weaktab) + screened_rates(k_n_Mn50_to_p_Cr50_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mn50_n_to_p_Cr50_reaclib)*Y(N)*state.rho + screened_rates(k_Mn50_to_Cr50_electron_capture_weaktab); jac.set(Cr50, Mn50, scratch); - scratch = screened_rates(k_Mn51_to_p_Cr50_reaclib); + scratch = screened_rates(k_Mn51_to_p_Cr50_derived); jac.set(Cr50, Mn51, scratch); jac.set(Cr50, Mn52, 0.0); - scratch = screened_rates(k_p_Mn53_to_He4_Cr50_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mn53_p_to_He4_Cr50_reaclib)*Y(H1)*state.rho; jac.set(Cr50, Mn53, scratch); jac.set(Cr50, Mn54, 0.0); @@ -44452,10 +42261,10 @@ void jac_nuc(const burn_t& state, jac.set(Cr50, Fe52, 0.0); - scratch = screened_rates(k_n_Fe53_to_He4_Cr50_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Fe53_n_to_He4_Cr50_reaclib)*Y(N)*state.rho; jac.set(Cr50, Fe53, scratch); - scratch = screened_rates(k_Fe54_to_He4_Cr50_reaclib); + scratch = screened_rates(k_Fe54_to_He4_Cr50_derived); jac.set(Cr50, Fe54, scratch); jac.set(Cr50, Fe55, 0.0); @@ -44542,17 +42351,17 @@ void jac_nuc(const burn_t& state, jac.set(Cr50, Ge64, 0.0); - scratch = screened_rates(k_n_Cr50_to_Cr51_reaclib)*Y(Cr50)*state.rho - screened_rates(k_n_Cr51_to_Cr52_reaclib)*Y(Cr51)*state.rho - screened_rates(k_n_Cr51_to_He4_Ti48_reaclib)*Y(Cr51)*state.rho - screened_rates(k_n_Cr51_to_p_V51_reaclib)*Y(Cr51)*state.rho + screened_rates(k_n_Fe54_to_He4_Cr51_reaclib)*Y(Fe54)*state.rho + screened_rates(k_n_Mn51_to_p_Cr51_reaclib)*Y(Mn51)*state.rho; + scratch = screened_rates(k_Cr50_n_to_Cr51_reaclib)*Y(Cr50)*state.rho - screened_rates(k_Cr51_n_to_Cr52_reaclib)*Y(Cr51)*state.rho - screened_rates(k_Cr51_n_to_He4_Ti48_reaclib)*Y(Cr51)*state.rho - screened_rates(k_Cr51_n_to_p_V51_reaclib)*Y(Cr51)*state.rho + screened_rates(k_Fe54_n_to_He4_Cr51_reaclib)*Y(Fe54)*state.rho + screened_rates(k_Mn51_n_to_p_Cr51_reaclib)*Y(Mn51)*state.rho; jac.set(Cr51, N, scratch); - scratch = -screened_rates(k_p_Cr51_to_He4_V48_reaclib)*Y(Cr51)*state.rho - screened_rates(k_p_Cr51_to_Mn52_reaclib)*Y(Cr51)*state.rho - screened_rates(k_p_Cr51_to_n_Mn51_reaclib)*Y(Cr51)*state.rho + screened_rates(k_p_Mn54_to_He4_Cr51_reaclib)*Y(Mn54)*state.rho + screened_rates(k_p_V50_to_Cr51_reaclib)*Y(V50)*state.rho + screened_rates(k_p_V51_to_n_Cr51_reaclib)*Y(V51)*state.rho; + scratch = -screened_rates(k_Cr51_p_to_He4_V48_derived)*Y(Cr51)*state.rho - screened_rates(k_Cr51_p_to_Mn52_reaclib)*Y(Cr51)*state.rho - screened_rates(k_Cr51_p_to_n_Mn51_derived)*Y(Cr51)*state.rho + screened_rates(k_Mn54_p_to_He4_Cr51_reaclib)*Y(Mn54)*state.rho + screened_rates(k_V50_p_to_Cr51_reaclib)*Y(V50)*state.rho + screened_rates(k_V51_p_to_n_Cr51_derived)*Y(V51)*state.rho; jac.set(Cr51, H1, scratch); jac.set(Cr51, H2, 0.0); jac.set(Cr51, He3, 0.0); - scratch = -screened_rates(k_He4_Cr51_to_Fe55_reaclib)*Y(Cr51)*state.rho - screened_rates(k_He4_Cr51_to_n_Fe54_reaclib)*Y(Cr51)*state.rho - screened_rates(k_He4_Cr51_to_p_Mn54_reaclib)*Y(Cr51)*state.rho + screened_rates(k_He4_Ti47_to_Cr51_reaclib)*Y(Ti47)*state.rho + screened_rates(k_He4_Ti48_to_n_Cr51_reaclib)*Y(Ti48)*state.rho + screened_rates(k_He4_V48_to_p_Cr51_reaclib)*Y(V48)*state.rho; + scratch = -screened_rates(k_Cr51_He4_to_Fe55_reaclib)*Y(Cr51)*state.rho - screened_rates(k_Cr51_He4_to_n_Fe54_derived)*Y(Cr51)*state.rho - screened_rates(k_Cr51_He4_to_p_Mn54_derived)*Y(Cr51)*state.rho + screened_rates(k_Ti47_He4_to_Cr51_reaclib)*Y(Ti47)*state.rho + screened_rates(k_Ti48_He4_to_n_Cr51_derived)*Y(Ti48)*state.rho + screened_rates(k_V48_He4_to_p_Cr51_reaclib)*Y(V48)*state.rho; jac.set(Cr51, He4, scratch); jac.set(Cr51, Li6, 0.0); @@ -44725,10 +42534,10 @@ void jac_nuc(const burn_t& state, jac.set(Cr51, Ti46, 0.0); - scratch = screened_rates(k_He4_Ti47_to_Cr51_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ti47_He4_to_Cr51_reaclib)*Y(He4)*state.rho; jac.set(Cr51, Ti47, scratch); - scratch = screened_rates(k_He4_Ti48_to_n_Cr51_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ti48_He4_to_n_Cr51_derived)*Y(He4)*state.rho; jac.set(Cr51, Ti48, scratch); jac.set(Cr51, Ti49, 0.0); @@ -44741,15 +42550,15 @@ void jac_nuc(const burn_t& state, jac.set(Cr51, V47, 0.0); - scratch = screened_rates(k_He4_V48_to_p_Cr51_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_V48_He4_to_p_Cr51_reaclib)*Y(He4)*state.rho; jac.set(Cr51, V48, scratch); jac.set(Cr51, V49, 0.0); - scratch = screened_rates(k_p_V50_to_Cr51_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V50_p_to_Cr51_reaclib)*Y(H1)*state.rho; jac.set(Cr51, V50, scratch); - scratch = screened_rates(k_V51_to_Cr51_weaktab) + screened_rates(k_p_V51_to_n_Cr51_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V51_p_to_n_Cr51_derived)*Y(H1)*state.rho + screened_rates(k_V51_to_Cr51_beta_neg_weaktab); jac.set(Cr51, V51, scratch); jac.set(Cr51, V52, 0.0); @@ -44758,13 +42567,13 @@ void jac_nuc(const burn_t& state, jac.set(Cr51, Cr49, 0.0); - scratch = screened_rates(k_n_Cr50_to_Cr51_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cr50_n_to_Cr51_reaclib)*Y(N)*state.rho; jac.set(Cr51, Cr50, scratch); - scratch = -screened_rates(k_Cr51_to_He4_Ti47_reaclib) - screened_rates(k_Cr51_to_Mn51_weaktab) - screened_rates(k_Cr51_to_V51_weaktab) - screened_rates(k_Cr51_to_n_Cr50_reaclib) - screened_rates(k_Cr51_to_p_V50_reaclib) - screened_rates(k_He4_Cr51_to_Fe55_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cr51_to_n_Fe54_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cr51_to_p_Mn54_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cr51_to_Cr52_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cr51_to_He4_Ti48_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cr51_to_p_V51_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cr51_to_He4_V48_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cr51_to_Mn52_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cr51_to_n_Mn51_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cr51_He4_to_Fe55_reaclib)*Y(He4)*state.rho - screened_rates(k_Cr51_He4_to_n_Fe54_derived)*Y(He4)*state.rho - screened_rates(k_Cr51_He4_to_p_Mn54_derived)*Y(He4)*state.rho - screened_rates(k_Cr51_n_to_Cr52_reaclib)*Y(N)*state.rho - screened_rates(k_Cr51_n_to_He4_Ti48_reaclib)*Y(N)*state.rho - screened_rates(k_Cr51_n_to_p_V51_reaclib)*Y(N)*state.rho - screened_rates(k_Cr51_p_to_He4_V48_derived)*Y(H1)*state.rho - screened_rates(k_Cr51_p_to_Mn52_reaclib)*Y(H1)*state.rho - screened_rates(k_Cr51_p_to_n_Mn51_derived)*Y(H1)*state.rho - screened_rates(k_Cr51_to_He4_Ti47_derived) - screened_rates(k_Cr51_to_Mn51_beta_neg_weaktab) - screened_rates(k_Cr51_to_V51_electron_capture_weaktab) - screened_rates(k_Cr51_to_n_Cr50_derived) - screened_rates(k_Cr51_to_p_V50_derived); jac.set(Cr51, Cr51, scratch); - scratch = screened_rates(k_Cr52_to_n_Cr51_reaclib); + scratch = screened_rates(k_Cr52_to_n_Cr51_derived); jac.set(Cr51, Cr52, scratch); jac.set(Cr51, Cr53, 0.0); @@ -44773,15 +42582,15 @@ void jac_nuc(const burn_t& state, jac.set(Cr51, Mn50, 0.0); - scratch = screened_rates(k_Mn51_to_Cr51_weaktab) + screened_rates(k_n_Mn51_to_p_Cr51_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mn51_n_to_p_Cr51_reaclib)*Y(N)*state.rho + screened_rates(k_Mn51_to_Cr51_electron_capture_weaktab); jac.set(Cr51, Mn51, scratch); - scratch = screened_rates(k_Mn52_to_p_Cr51_reaclib); + scratch = screened_rates(k_Mn52_to_p_Cr51_derived); jac.set(Cr51, Mn52, scratch); jac.set(Cr51, Mn53, 0.0); - scratch = screened_rates(k_p_Mn54_to_He4_Cr51_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mn54_p_to_He4_Cr51_reaclib)*Y(H1)*state.rho; jac.set(Cr51, Mn54, scratch); jac.set(Cr51, Mn55, 0.0); @@ -44790,10 +42599,10 @@ void jac_nuc(const burn_t& state, jac.set(Cr51, Fe53, 0.0); - scratch = screened_rates(k_n_Fe54_to_He4_Cr51_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Fe54_n_to_He4_Cr51_reaclib)*Y(N)*state.rho; jac.set(Cr51, Fe54, scratch); - scratch = screened_rates(k_Fe55_to_He4_Cr51_reaclib); + scratch = screened_rates(k_Fe55_to_He4_Cr51_derived); jac.set(Cr51, Fe55, scratch); jac.set(Cr51, Fe56, 0.0); @@ -44878,17 +42687,17 @@ void jac_nuc(const burn_t& state, jac.set(Cr51, Ge64, 0.0); - scratch = screened_rates(k_n_Cr51_to_Cr52_reaclib)*Y(Cr51)*state.rho - screened_rates(k_n_Cr52_to_Cr53_reaclib)*Y(Cr52)*state.rho - screened_rates(k_n_Cr52_to_He4_Ti49_reaclib)*Y(Cr52)*state.rho - screened_rates(k_n_Cr52_to_p_V52_reaclib)*Y(Cr52)*state.rho + screened_rates(k_n_Fe55_to_He4_Cr52_reaclib)*Y(Fe55)*state.rho + screened_rates(k_n_Mn52_to_p_Cr52_reaclib)*Y(Mn52)*state.rho; + scratch = screened_rates(k_Cr51_n_to_Cr52_reaclib)*Y(Cr51)*state.rho - screened_rates(k_Cr52_n_to_Cr53_reaclib)*Y(Cr52)*state.rho - screened_rates(k_Cr52_n_to_He4_Ti49_derived)*Y(Cr52)*state.rho - screened_rates(k_Cr52_n_to_p_V52_derived)*Y(Cr52)*state.rho + screened_rates(k_Fe55_n_to_He4_Cr52_reaclib)*Y(Fe55)*state.rho + screened_rates(k_Mn52_n_to_p_Cr52_reaclib)*Y(Mn52)*state.rho; jac.set(Cr52, N, scratch); - scratch = -screened_rates(k_p_Cr52_to_He4_V49_reaclib)*Y(Cr52)*state.rho - screened_rates(k_p_Cr52_to_Mn53_reaclib)*Y(Cr52)*state.rho - screened_rates(k_p_Cr52_to_n_Mn52_reaclib)*Y(Cr52)*state.rho + screened_rates(k_p_Mn55_to_He4_Cr52_reaclib)*Y(Mn55)*state.rho + screened_rates(k_p_V51_to_Cr52_reaclib)*Y(V51)*state.rho + screened_rates(k_p_V52_to_n_Cr52_reaclib)*Y(V52)*state.rho; + scratch = -screened_rates(k_Cr52_p_to_He4_V49_derived)*Y(Cr52)*state.rho - screened_rates(k_Cr52_p_to_Mn53_reaclib)*Y(Cr52)*state.rho - screened_rates(k_Cr52_p_to_n_Mn52_derived)*Y(Cr52)*state.rho + screened_rates(k_Mn55_p_to_He4_Cr52_reaclib)*Y(Mn55)*state.rho + screened_rates(k_V51_p_to_Cr52_reaclib)*Y(V51)*state.rho + screened_rates(k_V52_p_to_n_Cr52_reaclib)*Y(V52)*state.rho; jac.set(Cr52, H1, scratch); jac.set(Cr52, H2, 0.0); jac.set(Cr52, He3, 0.0); - scratch = -screened_rates(k_He4_Cr52_to_Fe56_reaclib)*Y(Cr52)*state.rho - screened_rates(k_He4_Cr52_to_n_Fe55_reaclib)*Y(Cr52)*state.rho - screened_rates(k_He4_Cr52_to_p_Mn55_reaclib)*Y(Cr52)*state.rho + screened_rates(k_He4_Ti48_to_Cr52_reaclib)*Y(Ti48)*state.rho + screened_rates(k_He4_Ti49_to_n_Cr52_reaclib)*Y(Ti49)*state.rho + screened_rates(k_He4_V49_to_p_Cr52_reaclib)*Y(V49)*state.rho; + scratch = -screened_rates(k_Cr52_He4_to_Fe56_reaclib)*Y(Cr52)*state.rho - screened_rates(k_Cr52_He4_to_n_Fe55_derived)*Y(Cr52)*state.rho - screened_rates(k_Cr52_He4_to_p_Mn55_derived)*Y(Cr52)*state.rho + screened_rates(k_Ti48_He4_to_Cr52_reaclib)*Y(Ti48)*state.rho + screened_rates(k_Ti49_He4_to_n_Cr52_reaclib)*Y(Ti49)*state.rho + screened_rates(k_V49_He4_to_p_Cr52_reaclib)*Y(V49)*state.rho; jac.set(Cr52, He4, scratch); jac.set(Cr52, Li6, 0.0); @@ -45063,10 +42872,10 @@ void jac_nuc(const burn_t& state, jac.set(Cr52, Ti47, 0.0); - scratch = screened_rates(k_He4_Ti48_to_Cr52_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ti48_He4_to_Cr52_reaclib)*Y(He4)*state.rho; jac.set(Cr52, Ti48, scratch); - scratch = screened_rates(k_He4_Ti49_to_n_Cr52_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ti49_He4_to_n_Cr52_reaclib)*Y(He4)*state.rho; jac.set(Cr52, Ti49, scratch); jac.set(Cr52, Ti50, 0.0); @@ -45079,15 +42888,15 @@ void jac_nuc(const burn_t& state, jac.set(Cr52, V48, 0.0); - scratch = screened_rates(k_He4_V49_to_p_Cr52_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_V49_He4_to_p_Cr52_reaclib)*Y(He4)*state.rho; jac.set(Cr52, V49, scratch); jac.set(Cr52, V50, 0.0); - scratch = screened_rates(k_p_V51_to_Cr52_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V51_p_to_Cr52_reaclib)*Y(H1)*state.rho; jac.set(Cr52, V51, scratch); - scratch = screened_rates(k_V52_to_Cr52_weaktab) + screened_rates(k_p_V52_to_n_Cr52_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V52_p_to_n_Cr52_reaclib)*Y(H1)*state.rho + screened_rates(k_V52_to_Cr52_beta_neg_weaktab); jac.set(Cr52, V52, scratch); jac.set(Cr52, Cr48, 0.0); @@ -45096,13 +42905,13 @@ void jac_nuc(const burn_t& state, jac.set(Cr52, Cr50, 0.0); - scratch = screened_rates(k_n_Cr51_to_Cr52_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cr51_n_to_Cr52_reaclib)*Y(N)*state.rho; jac.set(Cr52, Cr51, scratch); - scratch = -screened_rates(k_Cr52_to_He4_Ti48_reaclib) - screened_rates(k_Cr52_to_Mn52_weaktab) - screened_rates(k_Cr52_to_V52_weaktab) - screened_rates(k_Cr52_to_n_Cr51_reaclib) - screened_rates(k_Cr52_to_p_V51_reaclib) - screened_rates(k_He4_Cr52_to_Fe56_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cr52_to_n_Fe55_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cr52_to_p_Mn55_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cr52_to_Cr53_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cr52_to_He4_Ti49_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cr52_to_p_V52_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cr52_to_He4_V49_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cr52_to_Mn53_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cr52_to_n_Mn52_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cr52_He4_to_Fe56_reaclib)*Y(He4)*state.rho - screened_rates(k_Cr52_He4_to_n_Fe55_derived)*Y(He4)*state.rho - screened_rates(k_Cr52_He4_to_p_Mn55_derived)*Y(He4)*state.rho - screened_rates(k_Cr52_n_to_Cr53_reaclib)*Y(N)*state.rho - screened_rates(k_Cr52_n_to_He4_Ti49_derived)*Y(N)*state.rho - screened_rates(k_Cr52_n_to_p_V52_derived)*Y(N)*state.rho - screened_rates(k_Cr52_p_to_He4_V49_derived)*Y(H1)*state.rho - screened_rates(k_Cr52_p_to_Mn53_reaclib)*Y(H1)*state.rho - screened_rates(k_Cr52_p_to_n_Mn52_derived)*Y(H1)*state.rho - screened_rates(k_Cr52_to_He4_Ti48_derived) - screened_rates(k_Cr52_to_Mn52_beta_neg_weaktab) - screened_rates(k_Cr52_to_V52_electron_capture_weaktab) - screened_rates(k_Cr52_to_n_Cr51_derived) - screened_rates(k_Cr52_to_p_V51_derived); jac.set(Cr52, Cr52, scratch); - scratch = screened_rates(k_Cr53_to_n_Cr52_reaclib); + scratch = screened_rates(k_Cr53_to_n_Cr52_derived); jac.set(Cr52, Cr53, scratch); jac.set(Cr52, Cr54, 0.0); @@ -45111,15 +42920,15 @@ void jac_nuc(const burn_t& state, jac.set(Cr52, Mn51, 0.0); - scratch = screened_rates(k_Mn52_to_Cr52_weaktab) + screened_rates(k_n_Mn52_to_p_Cr52_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mn52_n_to_p_Cr52_reaclib)*Y(N)*state.rho + screened_rates(k_Mn52_to_Cr52_electron_capture_weaktab); jac.set(Cr52, Mn52, scratch); - scratch = screened_rates(k_Mn53_to_p_Cr52_reaclib); + scratch = screened_rates(k_Mn53_to_p_Cr52_derived); jac.set(Cr52, Mn53, scratch); jac.set(Cr52, Mn54, 0.0); - scratch = screened_rates(k_p_Mn55_to_He4_Cr52_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mn55_p_to_He4_Cr52_reaclib)*Y(H1)*state.rho; jac.set(Cr52, Mn55, scratch); jac.set(Cr52, Fe52, 0.0); @@ -45128,10 +42937,10 @@ void jac_nuc(const burn_t& state, jac.set(Cr52, Fe54, 0.0); - scratch = screened_rates(k_n_Fe55_to_He4_Cr52_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Fe55_n_to_He4_Cr52_reaclib)*Y(N)*state.rho; jac.set(Cr52, Fe55, scratch); - scratch = screened_rates(k_Fe56_to_He4_Cr52_reaclib); + scratch = screened_rates(k_Fe56_to_He4_Cr52_derived); jac.set(Cr52, Fe56, scratch); jac.set(Cr52, Fe57, 0.0); @@ -45214,17 +43023,17 @@ void jac_nuc(const burn_t& state, jac.set(Cr52, Ge64, 0.0); - scratch = screened_rates(k_n_Cr52_to_Cr53_reaclib)*Y(Cr52)*state.rho - screened_rates(k_n_Cr53_to_Cr54_reaclib)*Y(Cr53)*state.rho - screened_rates(k_n_Cr53_to_He4_Ti50_reaclib)*Y(Cr53)*state.rho + screened_rates(k_n_Fe56_to_He4_Cr53_reaclib)*Y(Fe56)*state.rho + screened_rates(k_n_Mn53_to_p_Cr53_reaclib)*Y(Mn53)*state.rho; + scratch = screened_rates(k_Cr52_n_to_Cr53_reaclib)*Y(Cr52)*state.rho - screened_rates(k_Cr53_n_to_Cr54_reaclib)*Y(Cr53)*state.rho - screened_rates(k_Cr53_n_to_He4_Ti50_reaclib)*Y(Cr53)*state.rho + screened_rates(k_Fe56_n_to_He4_Cr53_reaclib)*Y(Fe56)*state.rho + screened_rates(k_Mn53_n_to_p_Cr53_reaclib)*Y(Mn53)*state.rho; jac.set(Cr53, N, scratch); - scratch = -screened_rates(k_p_Cr53_to_He4_V50_reaclib)*Y(Cr53)*state.rho - screened_rates(k_p_Cr53_to_Mn54_reaclib)*Y(Cr53)*state.rho - screened_rates(k_p_Cr53_to_n_Mn53_reaclib)*Y(Cr53)*state.rho + screened_rates(k_p_V52_to_Cr53_reaclib)*Y(V52)*state.rho; + scratch = -screened_rates(k_Cr53_p_to_He4_V50_derived)*Y(Cr53)*state.rho - screened_rates(k_Cr53_p_to_Mn54_reaclib)*Y(Cr53)*state.rho - screened_rates(k_Cr53_p_to_n_Mn53_derived)*Y(Cr53)*state.rho + screened_rates(k_V52_p_to_Cr53_reaclib)*Y(V52)*state.rho; jac.set(Cr53, H1, scratch); jac.set(Cr53, H2, 0.0); jac.set(Cr53, He3, 0.0); - scratch = -screened_rates(k_He4_Cr53_to_Fe57_reaclib)*Y(Cr53)*state.rho - screened_rates(k_He4_Cr53_to_n_Fe56_reaclib)*Y(Cr53)*state.rho + screened_rates(k_He4_Ti49_to_Cr53_reaclib)*Y(Ti49)*state.rho + screened_rates(k_He4_Ti50_to_n_Cr53_reaclib)*Y(Ti50)*state.rho + screened_rates(k_He4_V50_to_p_Cr53_reaclib)*Y(V50)*state.rho; + scratch = -screened_rates(k_Cr53_He4_to_Fe57_reaclib)*Y(Cr53)*state.rho - screened_rates(k_Cr53_He4_to_n_Fe56_derived)*Y(Cr53)*state.rho + screened_rates(k_Ti49_He4_to_Cr53_reaclib)*Y(Ti49)*state.rho + screened_rates(k_Ti50_He4_to_n_Cr53_derived)*Y(Ti50)*state.rho + screened_rates(k_V50_He4_to_p_Cr53_reaclib)*Y(V50)*state.rho; jac.set(Cr53, He4, scratch); jac.set(Cr53, Li6, 0.0); @@ -45401,10 +43210,10 @@ void jac_nuc(const burn_t& state, jac.set(Cr53, Ti48, 0.0); - scratch = screened_rates(k_He4_Ti49_to_Cr53_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ti49_He4_to_Cr53_reaclib)*Y(He4)*state.rho; jac.set(Cr53, Ti49, scratch); - scratch = screened_rates(k_He4_Ti50_to_n_Cr53_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ti50_He4_to_n_Cr53_derived)*Y(He4)*state.rho; jac.set(Cr53, Ti50, scratch); jac.set(Cr53, Ti51, 0.0); @@ -45417,12 +43226,12 @@ void jac_nuc(const burn_t& state, jac.set(Cr53, V49, 0.0); - scratch = screened_rates(k_He4_V50_to_p_Cr53_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_V50_He4_to_p_Cr53_reaclib)*Y(He4)*state.rho; jac.set(Cr53, V50, scratch); jac.set(Cr53, V51, 0.0); - scratch = screened_rates(k_p_V52_to_Cr53_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_V52_p_to_Cr53_reaclib)*Y(H1)*state.rho; jac.set(Cr53, V52, scratch); jac.set(Cr53, Cr48, 0.0); @@ -45433,13 +43242,13 @@ void jac_nuc(const burn_t& state, jac.set(Cr53, Cr51, 0.0); - scratch = screened_rates(k_n_Cr52_to_Cr53_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cr52_n_to_Cr53_reaclib)*Y(N)*state.rho; jac.set(Cr53, Cr52, scratch); - scratch = -screened_rates(k_Cr53_to_He4_Ti49_reaclib) - screened_rates(k_Cr53_to_Mn53_weaktab) - screened_rates(k_Cr53_to_n_Cr52_reaclib) - screened_rates(k_Cr53_to_p_V52_reaclib) - screened_rates(k_He4_Cr53_to_Fe57_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cr53_to_n_Fe56_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cr53_to_Cr54_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cr53_to_He4_Ti50_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cr53_to_He4_V50_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cr53_to_Mn54_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cr53_to_n_Mn53_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cr53_He4_to_Fe57_reaclib)*Y(He4)*state.rho - screened_rates(k_Cr53_He4_to_n_Fe56_derived)*Y(He4)*state.rho - screened_rates(k_Cr53_n_to_Cr54_reaclib)*Y(N)*state.rho - screened_rates(k_Cr53_n_to_He4_Ti50_reaclib)*Y(N)*state.rho - screened_rates(k_Cr53_p_to_He4_V50_derived)*Y(H1)*state.rho - screened_rates(k_Cr53_p_to_Mn54_reaclib)*Y(H1)*state.rho - screened_rates(k_Cr53_p_to_n_Mn53_derived)*Y(H1)*state.rho - screened_rates(k_Cr53_to_He4_Ti49_derived) - screened_rates(k_Cr53_to_Mn53_beta_neg_weaktab) - screened_rates(k_Cr53_to_n_Cr52_derived) - screened_rates(k_Cr53_to_p_V52_derived); jac.set(Cr53, Cr53, scratch); - scratch = screened_rates(k_Cr54_to_n_Cr53_reaclib); + scratch = screened_rates(k_Cr54_to_n_Cr53_derived); jac.set(Cr53, Cr54, scratch); jac.set(Cr53, Mn50, 0.0); @@ -45448,10 +43257,10 @@ void jac_nuc(const burn_t& state, jac.set(Cr53, Mn52, 0.0); - scratch = screened_rates(k_Mn53_to_Cr53_weaktab) + screened_rates(k_n_Mn53_to_p_Cr53_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mn53_n_to_p_Cr53_reaclib)*Y(N)*state.rho + screened_rates(k_Mn53_to_Cr53_electron_capture_weaktab); jac.set(Cr53, Mn53, scratch); - scratch = screened_rates(k_Mn54_to_p_Cr53_reaclib); + scratch = screened_rates(k_Mn54_to_p_Cr53_derived); jac.set(Cr53, Mn54, scratch); jac.set(Cr53, Mn55, 0.0); @@ -45464,10 +43273,10 @@ void jac_nuc(const burn_t& state, jac.set(Cr53, Fe55, 0.0); - scratch = screened_rates(k_n_Fe56_to_He4_Cr53_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Fe56_n_to_He4_Cr53_reaclib)*Y(N)*state.rho; jac.set(Cr53, Fe56, scratch); - scratch = screened_rates(k_Fe57_to_He4_Cr53_reaclib); + scratch = screened_rates(k_Fe57_to_He4_Cr53_derived); jac.set(Cr53, Fe57, scratch); jac.set(Cr53, Fe58, 0.0); @@ -45548,17 +43357,17 @@ void jac_nuc(const burn_t& state, jac.set(Cr53, Ge64, 0.0); - scratch = screened_rates(k_n_Cr53_to_Cr54_reaclib)*Y(Cr53)*state.rho - screened_rates(k_n_Cr54_to_He4_Ti51_reaclib)*Y(Cr54)*state.rho + screened_rates(k_n_Fe57_to_He4_Cr54_reaclib)*Y(Fe57)*state.rho + screened_rates(k_n_Mn54_to_p_Cr54_reaclib)*Y(Mn54)*state.rho; + scratch = screened_rates(k_Cr53_n_to_Cr54_reaclib)*Y(Cr53)*state.rho - screened_rates(k_Cr54_n_to_He4_Ti51_derived)*Y(Cr54)*state.rho + screened_rates(k_Fe57_n_to_He4_Cr54_reaclib)*Y(Fe57)*state.rho + screened_rates(k_Mn54_n_to_p_Cr54_reaclib)*Y(Mn54)*state.rho; jac.set(Cr54, N, scratch); - scratch = -screened_rates(k_p_Cr54_to_He4_V51_reaclib)*Y(Cr54)*state.rho - screened_rates(k_p_Cr54_to_Mn55_reaclib)*Y(Cr54)*state.rho - screened_rates(k_p_Cr54_to_n_Mn54_reaclib)*Y(Cr54)*state.rho; + scratch = -screened_rates(k_Cr54_p_to_He4_V51_reaclib)*Y(Cr54)*state.rho - screened_rates(k_Cr54_p_to_Mn55_reaclib)*Y(Cr54)*state.rho - screened_rates(k_Cr54_p_to_n_Mn54_derived)*Y(Cr54)*state.rho; jac.set(Cr54, H1, scratch); jac.set(Cr54, H2, 0.0); jac.set(Cr54, He3, 0.0); - scratch = -screened_rates(k_He4_Cr54_to_Fe58_reaclib)*Y(Cr54)*state.rho - screened_rates(k_He4_Cr54_to_n_Fe57_reaclib)*Y(Cr54)*state.rho + screened_rates(k_He4_Ti50_to_Cr54_reaclib)*Y(Ti50)*state.rho + screened_rates(k_He4_Ti51_to_n_Cr54_reaclib)*Y(Ti51)*state.rho + screened_rates(k_He4_V51_to_p_Cr54_reaclib)*Y(V51)*state.rho; + scratch = -screened_rates(k_Cr54_He4_to_Fe58_reaclib)*Y(Cr54)*state.rho - screened_rates(k_Cr54_He4_to_n_Fe57_derived)*Y(Cr54)*state.rho + screened_rates(k_Ti50_He4_to_Cr54_reaclib)*Y(Ti50)*state.rho + screened_rates(k_Ti51_He4_to_n_Cr54_reaclib)*Y(Ti51)*state.rho + screened_rates(k_V51_He4_to_p_Cr54_derived)*Y(V51)*state.rho; jac.set(Cr54, He4, scratch); jac.set(Cr54, Li6, 0.0); @@ -45737,10 +43546,10 @@ void jac_nuc(const burn_t& state, jac.set(Cr54, Ti49, 0.0); - scratch = screened_rates(k_He4_Ti50_to_Cr54_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ti50_He4_to_Cr54_reaclib)*Y(He4)*state.rho; jac.set(Cr54, Ti50, scratch); - scratch = screened_rates(k_He4_Ti51_to_n_Cr54_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ti51_He4_to_n_Cr54_reaclib)*Y(He4)*state.rho; jac.set(Cr54, Ti51, scratch); jac.set(Cr54, V46, 0.0); @@ -45753,7 +43562,7 @@ void jac_nuc(const burn_t& state, jac.set(Cr54, V50, 0.0); - scratch = screened_rates(k_He4_V51_to_p_Cr54_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_V51_He4_to_p_Cr54_derived)*Y(He4)*state.rho; jac.set(Cr54, V51, scratch); jac.set(Cr54, V52, 0.0); @@ -45768,10 +43577,10 @@ void jac_nuc(const burn_t& state, jac.set(Cr54, Cr52, 0.0); - scratch = screened_rates(k_n_Cr53_to_Cr54_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cr53_n_to_Cr54_reaclib)*Y(N)*state.rho; jac.set(Cr54, Cr53, scratch); - scratch = -screened_rates(k_Cr54_to_He4_Ti50_reaclib) - screened_rates(k_Cr54_to_Mn54_weaktab) - screened_rates(k_Cr54_to_n_Cr53_reaclib) - screened_rates(k_He4_Cr54_to_Fe58_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cr54_to_n_Fe57_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cr54_to_He4_Ti51_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cr54_to_He4_V51_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cr54_to_Mn55_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cr54_to_n_Mn54_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cr54_He4_to_Fe58_reaclib)*Y(He4)*state.rho - screened_rates(k_Cr54_He4_to_n_Fe57_derived)*Y(He4)*state.rho - screened_rates(k_Cr54_n_to_He4_Ti51_derived)*Y(N)*state.rho - screened_rates(k_Cr54_p_to_He4_V51_reaclib)*Y(H1)*state.rho - screened_rates(k_Cr54_p_to_Mn55_reaclib)*Y(H1)*state.rho - screened_rates(k_Cr54_p_to_n_Mn54_derived)*Y(H1)*state.rho - screened_rates(k_Cr54_to_He4_Ti50_derived) - screened_rates(k_Cr54_to_Mn54_beta_neg_weaktab) - screened_rates(k_Cr54_to_n_Cr53_derived); jac.set(Cr54, Cr54, scratch); jac.set(Cr54, Mn50, 0.0); @@ -45782,10 +43591,10 @@ void jac_nuc(const burn_t& state, jac.set(Cr54, Mn53, 0.0); - scratch = screened_rates(k_Mn54_to_Cr54_weaktab) + screened_rates(k_n_Mn54_to_p_Cr54_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mn54_n_to_p_Cr54_reaclib)*Y(N)*state.rho + screened_rates(k_Mn54_to_Cr54_electron_capture_weaktab); jac.set(Cr54, Mn54, scratch); - scratch = screened_rates(k_Mn55_to_p_Cr54_reaclib); + scratch = screened_rates(k_Mn55_to_p_Cr54_derived); jac.set(Cr54, Mn55, scratch); jac.set(Cr54, Fe52, 0.0); @@ -45798,10 +43607,10 @@ void jac_nuc(const burn_t& state, jac.set(Cr54, Fe56, 0.0); - scratch = screened_rates(k_n_Fe57_to_He4_Cr54_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Fe57_n_to_He4_Cr54_reaclib)*Y(N)*state.rho; jac.set(Cr54, Fe57, scratch); - scratch = screened_rates(k_Fe58_to_He4_Cr54_reaclib); + scratch = screened_rates(k_Fe58_to_He4_Cr54_derived); jac.set(Cr54, Fe58, scratch); jac.set(Cr54, Co53, 0.0); @@ -45880,17 +43689,17 @@ void jac_nuc(const burn_t& state, jac.set(Cr54, Ge64, 0.0); - scratch = screened_rates(k_n_Co53_to_He4_Mn50_reaclib)*Y(Co53)*state.rho - screened_rates(k_n_Mn50_to_He4_V47_reaclib)*Y(Mn50)*state.rho - screened_rates(k_n_Mn50_to_Mn51_reaclib)*Y(Mn50)*state.rho - screened_rates(k_n_Mn50_to_p_Cr50_reaclib)*Y(Mn50)*state.rho; + scratch = screened_rates(k_Co53_n_to_He4_Mn50_reaclib)*Y(Co53)*state.rho - screened_rates(k_Mn50_n_to_He4_V47_reaclib)*Y(Mn50)*state.rho - screened_rates(k_Mn50_n_to_Mn51_reaclib)*Y(Mn50)*state.rho - screened_rates(k_Mn50_n_to_p_Cr50_reaclib)*Y(Mn50)*state.rho; jac.set(Mn50, N, scratch); - scratch = screened_rates(k_p_Cr49_to_Mn50_reaclib)*Y(Cr49)*state.rho + screened_rates(k_p_Cr50_to_n_Mn50_reaclib)*Y(Cr50)*state.rho + screened_rates(k_p_Fe53_to_He4_Mn50_reaclib)*Y(Fe53)*state.rho; + scratch = screened_rates(k_Cr49_p_to_Mn50_reaclib)*Y(Cr49)*state.rho + screened_rates(k_Cr50_p_to_n_Mn50_derived)*Y(Cr50)*state.rho + screened_rates(k_Fe53_p_to_He4_Mn50_derived)*Y(Fe53)*state.rho; jac.set(Mn50, H1, scratch); jac.set(Mn50, H2, 0.0); jac.set(Mn50, He3, 0.0); - scratch = -screened_rates(k_He4_Mn50_to_Co54_reaclib)*Y(Mn50)*state.rho - screened_rates(k_He4_Mn50_to_n_Co53_reaclib)*Y(Mn50)*state.rho - screened_rates(k_He4_Mn50_to_p_Fe53_reaclib)*Y(Mn50)*state.rho + screened_rates(k_He4_V46_to_Mn50_reaclib)*Y(V46)*state.rho + screened_rates(k_He4_V47_to_n_Mn50_reaclib)*Y(V47)*state.rho; + scratch = -screened_rates(k_Mn50_He4_to_Co54_reaclib)*Y(Mn50)*state.rho - screened_rates(k_Mn50_He4_to_n_Co53_derived)*Y(Mn50)*state.rho - screened_rates(k_Mn50_He4_to_p_Fe53_reaclib)*Y(Mn50)*state.rho + screened_rates(k_V46_He4_to_Mn50_reaclib)*Y(V46)*state.rho + screened_rates(k_V47_He4_to_n_Mn50_derived)*Y(V47)*state.rho; jac.set(Mn50, He4, scratch); jac.set(Mn50, Li6, 0.0); @@ -46073,10 +43882,10 @@ void jac_nuc(const burn_t& state, jac.set(Mn50, Ti51, 0.0); - scratch = screened_rates(k_He4_V46_to_Mn50_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_V46_He4_to_Mn50_reaclib)*Y(He4)*state.rho; jac.set(Mn50, V46, scratch); - scratch = screened_rates(k_He4_V47_to_n_Mn50_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_V47_He4_to_n_Mn50_derived)*Y(He4)*state.rho; jac.set(Mn50, V47, scratch); jac.set(Mn50, V48, 0.0); @@ -46091,10 +43900,10 @@ void jac_nuc(const burn_t& state, jac.set(Mn50, Cr48, 0.0); - scratch = screened_rates(k_p_Cr49_to_Mn50_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr49_p_to_Mn50_reaclib)*Y(H1)*state.rho; jac.set(Mn50, Cr49, scratch); - scratch = screened_rates(k_Cr50_to_Mn50_weaktab) + screened_rates(k_p_Cr50_to_n_Mn50_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr50_p_to_n_Mn50_derived)*Y(H1)*state.rho + screened_rates(k_Cr50_to_Mn50_beta_neg_weaktab); jac.set(Mn50, Cr50, scratch); jac.set(Mn50, Cr51, 0.0); @@ -46105,10 +43914,10 @@ void jac_nuc(const burn_t& state, jac.set(Mn50, Cr54, 0.0); - scratch = -screened_rates(k_He4_Mn50_to_Co54_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mn50_to_n_Co53_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mn50_to_p_Fe53_reaclib)*Y(He4)*state.rho - screened_rates(k_Mn50_to_Cr50_weaktab) - screened_rates(k_Mn50_to_He4_V46_reaclib) - screened_rates(k_Mn50_to_p_Cr49_reaclib) - screened_rates(k_n_Mn50_to_He4_V47_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mn50_to_Mn51_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mn50_to_p_Cr50_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Mn50_He4_to_Co54_reaclib)*Y(He4)*state.rho - screened_rates(k_Mn50_He4_to_n_Co53_derived)*Y(He4)*state.rho - screened_rates(k_Mn50_He4_to_p_Fe53_reaclib)*Y(He4)*state.rho - screened_rates(k_Mn50_n_to_He4_V47_reaclib)*Y(N)*state.rho - screened_rates(k_Mn50_n_to_Mn51_reaclib)*Y(N)*state.rho - screened_rates(k_Mn50_n_to_p_Cr50_reaclib)*Y(N)*state.rho - screened_rates(k_Mn50_to_Cr50_electron_capture_weaktab) - screened_rates(k_Mn50_to_He4_V46_derived) - screened_rates(k_Mn50_to_p_Cr49_derived); jac.set(Mn50, Mn50, scratch); - scratch = screened_rates(k_Mn51_to_n_Mn50_reaclib); + scratch = screened_rates(k_Mn51_to_n_Mn50_derived); jac.set(Mn50, Mn51, scratch); jac.set(Mn50, Mn52, 0.0); @@ -46121,7 +43930,7 @@ void jac_nuc(const burn_t& state, jac.set(Mn50, Fe52, 0.0); - scratch = screened_rates(k_p_Fe53_to_He4_Mn50_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe53_p_to_He4_Mn50_derived)*Y(H1)*state.rho; jac.set(Mn50, Fe53, scratch); jac.set(Mn50, Fe54, 0.0); @@ -46134,10 +43943,10 @@ void jac_nuc(const burn_t& state, jac.set(Mn50, Fe58, 0.0); - scratch = screened_rates(k_n_Co53_to_He4_Mn50_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Co53_n_to_He4_Mn50_reaclib)*Y(N)*state.rho; jac.set(Mn50, Co53, scratch); - scratch = screened_rates(k_Co54_to_He4_Mn50_reaclib); + scratch = screened_rates(k_Co54_to_He4_Mn50_derived); jac.set(Mn50, Co54, scratch); jac.set(Mn50, Co55, 0.0); @@ -46212,17 +44021,17 @@ void jac_nuc(const burn_t& state, jac.set(Mn50, Ge64, 0.0); - scratch = screened_rates(k_n_Co54_to_He4_Mn51_reaclib)*Y(Co54)*state.rho + screened_rates(k_n_Mn50_to_Mn51_reaclib)*Y(Mn50)*state.rho - screened_rates(k_n_Mn51_to_He4_V48_reaclib)*Y(Mn51)*state.rho - screened_rates(k_n_Mn51_to_Mn52_reaclib)*Y(Mn51)*state.rho - screened_rates(k_n_Mn51_to_p_Cr51_reaclib)*Y(Mn51)*state.rho; + scratch = screened_rates(k_Co54_n_to_He4_Mn51_reaclib)*Y(Co54)*state.rho + screened_rates(k_Mn50_n_to_Mn51_reaclib)*Y(Mn50)*state.rho - screened_rates(k_Mn51_n_to_He4_V48_reaclib)*Y(Mn51)*state.rho - screened_rates(k_Mn51_n_to_Mn52_reaclib)*Y(Mn51)*state.rho - screened_rates(k_Mn51_n_to_p_Cr51_reaclib)*Y(Mn51)*state.rho; jac.set(Mn51, N, scratch); - scratch = screened_rates(k_p_Cr50_to_Mn51_reaclib)*Y(Cr50)*state.rho + screened_rates(k_p_Cr51_to_n_Mn51_reaclib)*Y(Cr51)*state.rho + screened_rates(k_p_Fe54_to_He4_Mn51_reaclib)*Y(Fe54)*state.rho - screened_rates(k_p_Mn51_to_Fe52_reaclib)*Y(Mn51)*state.rho - screened_rates(k_p_Mn51_to_He4_Cr48_reaclib)*Y(Mn51)*state.rho; + scratch = screened_rates(k_Cr50_p_to_Mn51_reaclib)*Y(Cr50)*state.rho + screened_rates(k_Cr51_p_to_n_Mn51_derived)*Y(Cr51)*state.rho + screened_rates(k_Fe54_p_to_He4_Mn51_derived)*Y(Fe54)*state.rho - screened_rates(k_Mn51_p_to_Fe52_reaclib)*Y(Mn51)*state.rho - screened_rates(k_Mn51_p_to_He4_Cr48_derived)*Y(Mn51)*state.rho; jac.set(Mn51, H1, scratch); jac.set(Mn51, H2, 0.0); jac.set(Mn51, He3, 0.0); - scratch = screened_rates(k_He4_Cr48_to_p_Mn51_reaclib)*Y(Cr48)*state.rho - screened_rates(k_He4_Mn51_to_Co55_reaclib)*Y(Mn51)*state.rho - screened_rates(k_He4_Mn51_to_n_Co54_reaclib)*Y(Mn51)*state.rho - screened_rates(k_He4_Mn51_to_p_Fe54_reaclib)*Y(Mn51)*state.rho + screened_rates(k_He4_V47_to_Mn51_reaclib)*Y(V47)*state.rho + screened_rates(k_He4_V48_to_n_Mn51_reaclib)*Y(V48)*state.rho; + scratch = screened_rates(k_Cr48_He4_to_p_Mn51_reaclib)*Y(Cr48)*state.rho - screened_rates(k_Mn51_He4_to_Co55_reaclib)*Y(Mn51)*state.rho - screened_rates(k_Mn51_He4_to_n_Co54_derived)*Y(Mn51)*state.rho - screened_rates(k_Mn51_He4_to_p_Fe54_reaclib)*Y(Mn51)*state.rho + screened_rates(k_V47_He4_to_Mn51_reaclib)*Y(V47)*state.rho + screened_rates(k_V48_He4_to_n_Mn51_derived)*Y(V48)*state.rho; jac.set(Mn51, He4, scratch); jac.set(Mn51, Li6, 0.0); @@ -46407,10 +44216,10 @@ void jac_nuc(const burn_t& state, jac.set(Mn51, V46, 0.0); - scratch = screened_rates(k_He4_V47_to_Mn51_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_V47_He4_to_Mn51_reaclib)*Y(He4)*state.rho; jac.set(Mn51, V47, scratch); - scratch = screened_rates(k_He4_V48_to_n_Mn51_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_V48_He4_to_n_Mn51_derived)*Y(He4)*state.rho; jac.set(Mn51, V48, scratch); jac.set(Mn51, V49, 0.0); @@ -46421,15 +44230,15 @@ void jac_nuc(const burn_t& state, jac.set(Mn51, V52, 0.0); - scratch = screened_rates(k_He4_Cr48_to_p_Mn51_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cr48_He4_to_p_Mn51_reaclib)*Y(He4)*state.rho; jac.set(Mn51, Cr48, scratch); jac.set(Mn51, Cr49, 0.0); - scratch = screened_rates(k_p_Cr50_to_Mn51_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr50_p_to_Mn51_reaclib)*Y(H1)*state.rho; jac.set(Mn51, Cr50, scratch); - scratch = screened_rates(k_Cr51_to_Mn51_weaktab) + screened_rates(k_p_Cr51_to_n_Mn51_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr51_p_to_n_Mn51_derived)*Y(H1)*state.rho + screened_rates(k_Cr51_to_Mn51_beta_neg_weaktab); jac.set(Mn51, Cr51, scratch); jac.set(Mn51, Cr52, 0.0); @@ -46438,13 +44247,13 @@ void jac_nuc(const burn_t& state, jac.set(Mn51, Cr54, 0.0); - scratch = screened_rates(k_n_Mn50_to_Mn51_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mn50_n_to_Mn51_reaclib)*Y(N)*state.rho; jac.set(Mn51, Mn50, scratch); - scratch = -screened_rates(k_He4_Mn51_to_Co55_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mn51_to_n_Co54_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mn51_to_p_Fe54_reaclib)*Y(He4)*state.rho - screened_rates(k_Mn51_to_Cr51_weaktab) - screened_rates(k_Mn51_to_He4_V47_reaclib) - screened_rates(k_Mn51_to_n_Mn50_reaclib) - screened_rates(k_Mn51_to_p_Cr50_reaclib) - screened_rates(k_n_Mn51_to_He4_V48_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mn51_to_Mn52_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mn51_to_p_Cr51_reaclib)*Y(N)*state.rho - screened_rates(k_p_Mn51_to_Fe52_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mn51_to_He4_Cr48_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Mn51_He4_to_Co55_reaclib)*Y(He4)*state.rho - screened_rates(k_Mn51_He4_to_n_Co54_derived)*Y(He4)*state.rho - screened_rates(k_Mn51_He4_to_p_Fe54_reaclib)*Y(He4)*state.rho - screened_rates(k_Mn51_n_to_He4_V48_reaclib)*Y(N)*state.rho - screened_rates(k_Mn51_n_to_Mn52_reaclib)*Y(N)*state.rho - screened_rates(k_Mn51_n_to_p_Cr51_reaclib)*Y(N)*state.rho - screened_rates(k_Mn51_p_to_Fe52_reaclib)*Y(H1)*state.rho - screened_rates(k_Mn51_p_to_He4_Cr48_derived)*Y(H1)*state.rho - screened_rates(k_Mn51_to_Cr51_electron_capture_weaktab) - screened_rates(k_Mn51_to_He4_V47_derived) - screened_rates(k_Mn51_to_n_Mn50_derived) - screened_rates(k_Mn51_to_p_Cr50_derived); jac.set(Mn51, Mn51, scratch); - scratch = screened_rates(k_Mn52_to_n_Mn51_reaclib); + scratch = screened_rates(k_Mn52_to_n_Mn51_derived); jac.set(Mn51, Mn52, scratch); jac.set(Mn51, Mn53, 0.0); @@ -46453,12 +44262,12 @@ void jac_nuc(const burn_t& state, jac.set(Mn51, Mn55, 0.0); - scratch = screened_rates(k_Fe52_to_p_Mn51_reaclib); + scratch = screened_rates(k_Fe52_to_p_Mn51_derived); jac.set(Mn51, Fe52, scratch); jac.set(Mn51, Fe53, 0.0); - scratch = screened_rates(k_p_Fe54_to_He4_Mn51_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe54_p_to_He4_Mn51_derived)*Y(H1)*state.rho; jac.set(Mn51, Fe54, scratch); jac.set(Mn51, Fe55, 0.0); @@ -46471,10 +44280,10 @@ void jac_nuc(const burn_t& state, jac.set(Mn51, Co53, 0.0); - scratch = screened_rates(k_n_Co54_to_He4_Mn51_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Co54_n_to_He4_Mn51_reaclib)*Y(N)*state.rho; jac.set(Mn51, Co54, scratch); - scratch = screened_rates(k_Co55_to_He4_Mn51_reaclib); + scratch = screened_rates(k_Co55_to_He4_Mn51_derived); jac.set(Mn51, Co55, scratch); jac.set(Mn51, Co56, 0.0); @@ -46547,17 +44356,17 @@ void jac_nuc(const burn_t& state, jac.set(Mn51, Ge64, 0.0); - scratch = screened_rates(k_n_Co55_to_He4_Mn52_reaclib)*Y(Co55)*state.rho + screened_rates(k_n_Fe52_to_p_Mn52_reaclib)*Y(Fe52)*state.rho + screened_rates(k_n_Mn51_to_Mn52_reaclib)*Y(Mn51)*state.rho - screened_rates(k_n_Mn52_to_He4_V49_reaclib)*Y(Mn52)*state.rho - screened_rates(k_n_Mn52_to_Mn53_reaclib)*Y(Mn52)*state.rho - screened_rates(k_n_Mn52_to_p_Cr52_reaclib)*Y(Mn52)*state.rho; + scratch = screened_rates(k_Co55_n_to_He4_Mn52_reaclib)*Y(Co55)*state.rho + screened_rates(k_Fe52_n_to_p_Mn52_reaclib)*Y(Fe52)*state.rho + screened_rates(k_Mn51_n_to_Mn52_reaclib)*Y(Mn51)*state.rho - screened_rates(k_Mn52_n_to_He4_V49_reaclib)*Y(Mn52)*state.rho - screened_rates(k_Mn52_n_to_Mn53_reaclib)*Y(Mn52)*state.rho - screened_rates(k_Mn52_n_to_p_Cr52_reaclib)*Y(Mn52)*state.rho; jac.set(Mn52, N, scratch); - scratch = screened_rates(k_p_Cr51_to_Mn52_reaclib)*Y(Cr51)*state.rho + screened_rates(k_p_Cr52_to_n_Mn52_reaclib)*Y(Cr52)*state.rho + screened_rates(k_p_Fe55_to_He4_Mn52_reaclib)*Y(Fe55)*state.rho - screened_rates(k_p_Mn52_to_Fe53_reaclib)*Y(Mn52)*state.rho - screened_rates(k_p_Mn52_to_He4_Cr49_reaclib)*Y(Mn52)*state.rho - screened_rates(k_p_Mn52_to_n_Fe52_reaclib)*Y(Mn52)*state.rho; + scratch = screened_rates(k_Cr51_p_to_Mn52_reaclib)*Y(Cr51)*state.rho + screened_rates(k_Cr52_p_to_n_Mn52_derived)*Y(Cr52)*state.rho + screened_rates(k_Fe55_p_to_He4_Mn52_derived)*Y(Fe55)*state.rho - screened_rates(k_Mn52_p_to_Fe53_reaclib)*Y(Mn52)*state.rho - screened_rates(k_Mn52_p_to_He4_Cr49_derived)*Y(Mn52)*state.rho - screened_rates(k_Mn52_p_to_n_Fe52_derived)*Y(Mn52)*state.rho; jac.set(Mn52, H1, scratch); jac.set(Mn52, H2, 0.0); jac.set(Mn52, He3, 0.0); - scratch = screened_rates(k_He4_Cr49_to_p_Mn52_reaclib)*Y(Cr49)*state.rho - screened_rates(k_He4_Mn52_to_Co56_reaclib)*Y(Mn52)*state.rho - screened_rates(k_He4_Mn52_to_n_Co55_reaclib)*Y(Mn52)*state.rho - screened_rates(k_He4_Mn52_to_p_Fe55_reaclib)*Y(Mn52)*state.rho + screened_rates(k_He4_V48_to_Mn52_reaclib)*Y(V48)*state.rho + screened_rates(k_He4_V49_to_n_Mn52_reaclib)*Y(V49)*state.rho; + scratch = screened_rates(k_Cr49_He4_to_p_Mn52_reaclib)*Y(Cr49)*state.rho - screened_rates(k_Mn52_He4_to_Co56_reaclib)*Y(Mn52)*state.rho - screened_rates(k_Mn52_He4_to_n_Co55_derived)*Y(Mn52)*state.rho - screened_rates(k_Mn52_He4_to_p_Fe55_reaclib)*Y(Mn52)*state.rho + screened_rates(k_V48_He4_to_Mn52_reaclib)*Y(V48)*state.rho + screened_rates(k_V49_He4_to_n_Mn52_derived)*Y(V49)*state.rho; jac.set(Mn52, He4, scratch); jac.set(Mn52, Li6, 0.0); @@ -46744,10 +44553,10 @@ void jac_nuc(const burn_t& state, jac.set(Mn52, V47, 0.0); - scratch = screened_rates(k_He4_V48_to_Mn52_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_V48_He4_to_Mn52_reaclib)*Y(He4)*state.rho; jac.set(Mn52, V48, scratch); - scratch = screened_rates(k_He4_V49_to_n_Mn52_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_V49_He4_to_n_Mn52_derived)*Y(He4)*state.rho; jac.set(Mn52, V49, scratch); jac.set(Mn52, V50, 0.0); @@ -46758,15 +44567,15 @@ void jac_nuc(const burn_t& state, jac.set(Mn52, Cr48, 0.0); - scratch = screened_rates(k_He4_Cr49_to_p_Mn52_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cr49_He4_to_p_Mn52_reaclib)*Y(He4)*state.rho; jac.set(Mn52, Cr49, scratch); jac.set(Mn52, Cr50, 0.0); - scratch = screened_rates(k_p_Cr51_to_Mn52_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr51_p_to_Mn52_reaclib)*Y(H1)*state.rho; jac.set(Mn52, Cr51, scratch); - scratch = screened_rates(k_Cr52_to_Mn52_weaktab) + screened_rates(k_p_Cr52_to_n_Mn52_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr52_p_to_n_Mn52_derived)*Y(H1)*state.rho + screened_rates(k_Cr52_to_Mn52_beta_neg_weaktab); jac.set(Mn52, Cr52, scratch); jac.set(Mn52, Cr53, 0.0); @@ -46775,28 +44584,28 @@ void jac_nuc(const burn_t& state, jac.set(Mn52, Mn50, 0.0); - scratch = screened_rates(k_n_Mn51_to_Mn52_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mn51_n_to_Mn52_reaclib)*Y(N)*state.rho; jac.set(Mn52, Mn51, scratch); - scratch = -screened_rates(k_He4_Mn52_to_Co56_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mn52_to_n_Co55_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mn52_to_p_Fe55_reaclib)*Y(He4)*state.rho - screened_rates(k_Mn52_to_Cr52_weaktab) - screened_rates(k_Mn52_to_Fe52_weaktab) - screened_rates(k_Mn52_to_He4_V48_reaclib) - screened_rates(k_Mn52_to_n_Mn51_reaclib) - screened_rates(k_Mn52_to_p_Cr51_reaclib) - screened_rates(k_n_Mn52_to_He4_V49_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mn52_to_Mn53_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mn52_to_p_Cr52_reaclib)*Y(N)*state.rho - screened_rates(k_p_Mn52_to_Fe53_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mn52_to_He4_Cr49_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mn52_to_n_Fe52_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Mn52_He4_to_Co56_reaclib)*Y(He4)*state.rho - screened_rates(k_Mn52_He4_to_n_Co55_derived)*Y(He4)*state.rho - screened_rates(k_Mn52_He4_to_p_Fe55_reaclib)*Y(He4)*state.rho - screened_rates(k_Mn52_n_to_He4_V49_reaclib)*Y(N)*state.rho - screened_rates(k_Mn52_n_to_Mn53_reaclib)*Y(N)*state.rho - screened_rates(k_Mn52_n_to_p_Cr52_reaclib)*Y(N)*state.rho - screened_rates(k_Mn52_p_to_Fe53_reaclib)*Y(H1)*state.rho - screened_rates(k_Mn52_p_to_He4_Cr49_derived)*Y(H1)*state.rho - screened_rates(k_Mn52_p_to_n_Fe52_derived)*Y(H1)*state.rho - screened_rates(k_Mn52_to_Cr52_electron_capture_weaktab) - screened_rates(k_Mn52_to_Fe52_beta_neg_weaktab) - screened_rates(k_Mn52_to_He4_V48_derived) - screened_rates(k_Mn52_to_n_Mn51_derived) - screened_rates(k_Mn52_to_p_Cr51_derived); jac.set(Mn52, Mn52, scratch); - scratch = screened_rates(k_Mn53_to_n_Mn52_reaclib); + scratch = screened_rates(k_Mn53_to_n_Mn52_derived); jac.set(Mn52, Mn53, scratch); jac.set(Mn52, Mn54, 0.0); jac.set(Mn52, Mn55, 0.0); - scratch = screened_rates(k_Fe52_to_Mn52_weaktab) + screened_rates(k_n_Fe52_to_p_Mn52_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Fe52_n_to_p_Mn52_reaclib)*Y(N)*state.rho + screened_rates(k_Fe52_to_Mn52_electron_capture_weaktab); jac.set(Mn52, Fe52, scratch); - scratch = screened_rates(k_Fe53_to_p_Mn52_reaclib); + scratch = screened_rates(k_Fe53_to_p_Mn52_derived); jac.set(Mn52, Fe53, scratch); jac.set(Mn52, Fe54, 0.0); - scratch = screened_rates(k_p_Fe55_to_He4_Mn52_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe55_p_to_He4_Mn52_derived)*Y(H1)*state.rho; jac.set(Mn52, Fe55, scratch); jac.set(Mn52, Fe56, 0.0); @@ -46809,10 +44618,10 @@ void jac_nuc(const burn_t& state, jac.set(Mn52, Co54, 0.0); - scratch = screened_rates(k_n_Co55_to_He4_Mn52_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Co55_n_to_He4_Mn52_reaclib)*Y(N)*state.rho; jac.set(Mn52, Co55, scratch); - scratch = screened_rates(k_Co56_to_He4_Mn52_reaclib); + scratch = screened_rates(k_Co56_to_He4_Mn52_derived); jac.set(Mn52, Co56, scratch); jac.set(Mn52, Co57, 0.0); @@ -46883,17 +44692,17 @@ void jac_nuc(const burn_t& state, jac.set(Mn52, Ge64, 0.0); - scratch = screened_rates(k_n_Co56_to_He4_Mn53_reaclib)*Y(Co56)*state.rho + screened_rates(k_n_Fe53_to_p_Mn53_reaclib)*Y(Fe53)*state.rho + screened_rates(k_n_Mn52_to_Mn53_reaclib)*Y(Mn52)*state.rho - screened_rates(k_n_Mn53_to_He4_V50_reaclib)*Y(Mn53)*state.rho - screened_rates(k_n_Mn53_to_Mn54_reaclib)*Y(Mn53)*state.rho - screened_rates(k_n_Mn53_to_p_Cr53_reaclib)*Y(Mn53)*state.rho; + scratch = screened_rates(k_Co56_n_to_He4_Mn53_reaclib)*Y(Co56)*state.rho + screened_rates(k_Fe53_n_to_p_Mn53_reaclib)*Y(Fe53)*state.rho + screened_rates(k_Mn52_n_to_Mn53_reaclib)*Y(Mn52)*state.rho - screened_rates(k_Mn53_n_to_He4_V50_reaclib)*Y(Mn53)*state.rho - screened_rates(k_Mn53_n_to_Mn54_reaclib)*Y(Mn53)*state.rho - screened_rates(k_Mn53_n_to_p_Cr53_reaclib)*Y(Mn53)*state.rho; jac.set(Mn53, N, scratch); - scratch = screened_rates(k_p_Cr52_to_Mn53_reaclib)*Y(Cr52)*state.rho + screened_rates(k_p_Cr53_to_n_Mn53_reaclib)*Y(Cr53)*state.rho + screened_rates(k_p_Fe56_to_He4_Mn53_reaclib)*Y(Fe56)*state.rho - screened_rates(k_p_Mn53_to_Fe54_reaclib)*Y(Mn53)*state.rho - screened_rates(k_p_Mn53_to_He4_Cr50_reaclib)*Y(Mn53)*state.rho - screened_rates(k_p_Mn53_to_n_Fe53_reaclib)*Y(Mn53)*state.rho; + scratch = screened_rates(k_Cr52_p_to_Mn53_reaclib)*Y(Cr52)*state.rho + screened_rates(k_Cr53_p_to_n_Mn53_derived)*Y(Cr53)*state.rho + screened_rates(k_Fe56_p_to_He4_Mn53_derived)*Y(Fe56)*state.rho - screened_rates(k_Mn53_p_to_Fe54_reaclib)*Y(Mn53)*state.rho - screened_rates(k_Mn53_p_to_He4_Cr50_reaclib)*Y(Mn53)*state.rho - screened_rates(k_Mn53_p_to_n_Fe53_derived)*Y(Mn53)*state.rho; jac.set(Mn53, H1, scratch); jac.set(Mn53, H2, 0.0); jac.set(Mn53, He3, 0.0); - scratch = screened_rates(k_He4_Cr50_to_p_Mn53_reaclib)*Y(Cr50)*state.rho - screened_rates(k_He4_Mn53_to_Co57_reaclib)*Y(Mn53)*state.rho - screened_rates(k_He4_Mn53_to_n_Co56_reaclib)*Y(Mn53)*state.rho - screened_rates(k_He4_Mn53_to_p_Fe56_reaclib)*Y(Mn53)*state.rho + screened_rates(k_He4_V49_to_Mn53_reaclib)*Y(V49)*state.rho + screened_rates(k_He4_V50_to_n_Mn53_reaclib)*Y(V50)*state.rho; + scratch = screened_rates(k_Cr50_He4_to_p_Mn53_derived)*Y(Cr50)*state.rho - screened_rates(k_Mn53_He4_to_Co57_reaclib)*Y(Mn53)*state.rho - screened_rates(k_Mn53_He4_to_n_Co56_derived)*Y(Mn53)*state.rho - screened_rates(k_Mn53_He4_to_p_Fe56_reaclib)*Y(Mn53)*state.rho + screened_rates(k_V49_He4_to_Mn53_reaclib)*Y(V49)*state.rho + screened_rates(k_V50_He4_to_n_Mn53_derived)*Y(V50)*state.rho; jac.set(Mn53, He4, scratch); jac.set(Mn53, Li6, 0.0); @@ -47082,10 +44891,10 @@ void jac_nuc(const burn_t& state, jac.set(Mn53, V48, 0.0); - scratch = screened_rates(k_He4_V49_to_Mn53_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_V49_He4_to_Mn53_reaclib)*Y(He4)*state.rho; jac.set(Mn53, V49, scratch); - scratch = screened_rates(k_He4_V50_to_n_Mn53_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_V50_He4_to_n_Mn53_derived)*Y(He4)*state.rho; jac.set(Mn53, V50, scratch); jac.set(Mn53, V51, 0.0); @@ -47096,15 +44905,15 @@ void jac_nuc(const burn_t& state, jac.set(Mn53, Cr49, 0.0); - scratch = screened_rates(k_He4_Cr50_to_p_Mn53_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cr50_He4_to_p_Mn53_derived)*Y(He4)*state.rho; jac.set(Mn53, Cr50, scratch); jac.set(Mn53, Cr51, 0.0); - scratch = screened_rates(k_p_Cr52_to_Mn53_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr52_p_to_Mn53_reaclib)*Y(H1)*state.rho; jac.set(Mn53, Cr52, scratch); - scratch = screened_rates(k_Cr53_to_Mn53_weaktab) + screened_rates(k_p_Cr53_to_n_Mn53_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr53_p_to_n_Mn53_derived)*Y(H1)*state.rho + screened_rates(k_Cr53_to_Mn53_beta_neg_weaktab); jac.set(Mn53, Cr53, scratch); jac.set(Mn53, Cr54, 0.0); @@ -47113,28 +44922,28 @@ void jac_nuc(const burn_t& state, jac.set(Mn53, Mn51, 0.0); - scratch = screened_rates(k_n_Mn52_to_Mn53_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mn52_n_to_Mn53_reaclib)*Y(N)*state.rho; jac.set(Mn53, Mn52, scratch); - scratch = -screened_rates(k_He4_Mn53_to_Co57_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mn53_to_n_Co56_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mn53_to_p_Fe56_reaclib)*Y(He4)*state.rho - screened_rates(k_Mn53_to_Cr53_weaktab) - screened_rates(k_Mn53_to_Fe53_weaktab) - screened_rates(k_Mn53_to_He4_V49_reaclib) - screened_rates(k_Mn53_to_n_Mn52_reaclib) - screened_rates(k_Mn53_to_p_Cr52_reaclib) - screened_rates(k_n_Mn53_to_He4_V50_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mn53_to_Mn54_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mn53_to_p_Cr53_reaclib)*Y(N)*state.rho - screened_rates(k_p_Mn53_to_Fe54_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mn53_to_He4_Cr50_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mn53_to_n_Fe53_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Mn53_He4_to_Co57_reaclib)*Y(He4)*state.rho - screened_rates(k_Mn53_He4_to_n_Co56_derived)*Y(He4)*state.rho - screened_rates(k_Mn53_He4_to_p_Fe56_reaclib)*Y(He4)*state.rho - screened_rates(k_Mn53_n_to_He4_V50_reaclib)*Y(N)*state.rho - screened_rates(k_Mn53_n_to_Mn54_reaclib)*Y(N)*state.rho - screened_rates(k_Mn53_n_to_p_Cr53_reaclib)*Y(N)*state.rho - screened_rates(k_Mn53_p_to_Fe54_reaclib)*Y(H1)*state.rho - screened_rates(k_Mn53_p_to_He4_Cr50_reaclib)*Y(H1)*state.rho - screened_rates(k_Mn53_p_to_n_Fe53_derived)*Y(H1)*state.rho - screened_rates(k_Mn53_to_Cr53_electron_capture_weaktab) - screened_rates(k_Mn53_to_Fe53_beta_neg_weaktab) - screened_rates(k_Mn53_to_He4_V49_derived) - screened_rates(k_Mn53_to_n_Mn52_derived) - screened_rates(k_Mn53_to_p_Cr52_derived); jac.set(Mn53, Mn53, scratch); - scratch = screened_rates(k_Mn54_to_n_Mn53_reaclib); + scratch = screened_rates(k_Mn54_to_n_Mn53_derived); jac.set(Mn53, Mn54, scratch); jac.set(Mn53, Mn55, 0.0); jac.set(Mn53, Fe52, 0.0); - scratch = screened_rates(k_Fe53_to_Mn53_weaktab) + screened_rates(k_n_Fe53_to_p_Mn53_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Fe53_n_to_p_Mn53_reaclib)*Y(N)*state.rho + screened_rates(k_Fe53_to_Mn53_electron_capture_weaktab); jac.set(Mn53, Fe53, scratch); - scratch = screened_rates(k_Fe54_to_p_Mn53_reaclib); + scratch = screened_rates(k_Fe54_to_p_Mn53_derived); jac.set(Mn53, Fe54, scratch); jac.set(Mn53, Fe55, 0.0); - scratch = screened_rates(k_p_Fe56_to_He4_Mn53_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe56_p_to_He4_Mn53_derived)*Y(H1)*state.rho; jac.set(Mn53, Fe56, scratch); jac.set(Mn53, Fe57, 0.0); @@ -47147,10 +44956,10 @@ void jac_nuc(const burn_t& state, jac.set(Mn53, Co55, 0.0); - scratch = screened_rates(k_n_Co56_to_He4_Mn53_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Co56_n_to_He4_Mn53_reaclib)*Y(N)*state.rho; jac.set(Mn53, Co56, scratch); - scratch = screened_rates(k_Co57_to_He4_Mn53_reaclib); + scratch = screened_rates(k_Co57_to_He4_Mn53_derived); jac.set(Mn53, Co57, scratch); jac.set(Mn53, Co58, 0.0); @@ -47219,17 +45028,17 @@ void jac_nuc(const burn_t& state, jac.set(Mn53, Ge64, 0.0); - scratch = screened_rates(k_n_Co57_to_He4_Mn54_reaclib)*Y(Co57)*state.rho + screened_rates(k_n_Fe54_to_p_Mn54_reaclib)*Y(Fe54)*state.rho + screened_rates(k_n_Mn53_to_Mn54_reaclib)*Y(Mn53)*state.rho - screened_rates(k_n_Mn54_to_He4_V51_reaclib)*Y(Mn54)*state.rho - screened_rates(k_n_Mn54_to_Mn55_reaclib)*Y(Mn54)*state.rho - screened_rates(k_n_Mn54_to_p_Cr54_reaclib)*Y(Mn54)*state.rho; + scratch = screened_rates(k_Co57_n_to_He4_Mn54_reaclib)*Y(Co57)*state.rho + screened_rates(k_Fe54_n_to_p_Mn54_reaclib)*Y(Fe54)*state.rho + screened_rates(k_Mn53_n_to_Mn54_reaclib)*Y(Mn53)*state.rho - screened_rates(k_Mn54_n_to_He4_V51_reaclib)*Y(Mn54)*state.rho - screened_rates(k_Mn54_n_to_Mn55_reaclib)*Y(Mn54)*state.rho - screened_rates(k_Mn54_n_to_p_Cr54_reaclib)*Y(Mn54)*state.rho; jac.set(Mn54, N, scratch); - scratch = screened_rates(k_p_Cr53_to_Mn54_reaclib)*Y(Cr53)*state.rho + screened_rates(k_p_Cr54_to_n_Mn54_reaclib)*Y(Cr54)*state.rho + screened_rates(k_p_Fe57_to_He4_Mn54_reaclib)*Y(Fe57)*state.rho - screened_rates(k_p_Mn54_to_Fe55_reaclib)*Y(Mn54)*state.rho - screened_rates(k_p_Mn54_to_He4_Cr51_reaclib)*Y(Mn54)*state.rho - screened_rates(k_p_Mn54_to_n_Fe54_reaclib)*Y(Mn54)*state.rho; + scratch = screened_rates(k_Cr53_p_to_Mn54_reaclib)*Y(Cr53)*state.rho + screened_rates(k_Cr54_p_to_n_Mn54_derived)*Y(Cr54)*state.rho + screened_rates(k_Fe57_p_to_He4_Mn54_reaclib)*Y(Fe57)*state.rho - screened_rates(k_Mn54_p_to_Fe55_reaclib)*Y(Mn54)*state.rho - screened_rates(k_Mn54_p_to_He4_Cr51_reaclib)*Y(Mn54)*state.rho - screened_rates(k_Mn54_p_to_n_Fe54_derived)*Y(Mn54)*state.rho; jac.set(Mn54, H1, scratch); jac.set(Mn54, H2, 0.0); jac.set(Mn54, He3, 0.0); - scratch = screened_rates(k_He4_Cr51_to_p_Mn54_reaclib)*Y(Cr51)*state.rho - screened_rates(k_He4_Mn54_to_Co58_reaclib)*Y(Mn54)*state.rho - screened_rates(k_He4_Mn54_to_n_Co57_reaclib)*Y(Mn54)*state.rho - screened_rates(k_He4_Mn54_to_p_Fe57_reaclib)*Y(Mn54)*state.rho + screened_rates(k_He4_V50_to_Mn54_reaclib)*Y(V50)*state.rho + screened_rates(k_He4_V51_to_n_Mn54_reaclib)*Y(V51)*state.rho; + scratch = screened_rates(k_Cr51_He4_to_p_Mn54_derived)*Y(Cr51)*state.rho - screened_rates(k_Mn54_He4_to_Co58_reaclib)*Y(Mn54)*state.rho - screened_rates(k_Mn54_He4_to_n_Co57_derived)*Y(Mn54)*state.rho - screened_rates(k_Mn54_He4_to_p_Fe57_derived)*Y(Mn54)*state.rho + screened_rates(k_V50_He4_to_Mn54_reaclib)*Y(V50)*state.rho + screened_rates(k_V51_He4_to_n_Mn54_derived)*Y(V51)*state.rho; jac.set(Mn54, He4, scratch); jac.set(Mn54, Li6, 0.0); @@ -47420,10 +45229,10 @@ void jac_nuc(const burn_t& state, jac.set(Mn54, V49, 0.0); - scratch = screened_rates(k_He4_V50_to_Mn54_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_V50_He4_to_Mn54_reaclib)*Y(He4)*state.rho; jac.set(Mn54, V50, scratch); - scratch = screened_rates(k_He4_V51_to_n_Mn54_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_V51_He4_to_n_Mn54_derived)*Y(He4)*state.rho; jac.set(Mn54, V51, scratch); jac.set(Mn54, V52, 0.0); @@ -47434,15 +45243,15 @@ void jac_nuc(const burn_t& state, jac.set(Mn54, Cr50, 0.0); - scratch = screened_rates(k_He4_Cr51_to_p_Mn54_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cr51_He4_to_p_Mn54_derived)*Y(He4)*state.rho; jac.set(Mn54, Cr51, scratch); jac.set(Mn54, Cr52, 0.0); - scratch = screened_rates(k_p_Cr53_to_Mn54_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr53_p_to_Mn54_reaclib)*Y(H1)*state.rho; jac.set(Mn54, Cr53, scratch); - scratch = screened_rates(k_Cr54_to_Mn54_weaktab) + screened_rates(k_p_Cr54_to_n_Mn54_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr54_p_to_n_Mn54_derived)*Y(H1)*state.rho + screened_rates(k_Cr54_to_Mn54_beta_neg_weaktab); jac.set(Mn54, Cr54, scratch); jac.set(Mn54, Mn50, 0.0); @@ -47451,28 +45260,28 @@ void jac_nuc(const burn_t& state, jac.set(Mn54, Mn52, 0.0); - scratch = screened_rates(k_n_Mn53_to_Mn54_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mn53_n_to_Mn54_reaclib)*Y(N)*state.rho; jac.set(Mn54, Mn53, scratch); - scratch = -screened_rates(k_He4_Mn54_to_Co58_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mn54_to_n_Co57_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mn54_to_p_Fe57_reaclib)*Y(He4)*state.rho - screened_rates(k_Mn54_to_Cr54_weaktab) - screened_rates(k_Mn54_to_Fe54_weaktab) - screened_rates(k_Mn54_to_He4_V50_reaclib) - screened_rates(k_Mn54_to_n_Mn53_reaclib) - screened_rates(k_Mn54_to_p_Cr53_reaclib) - screened_rates(k_n_Mn54_to_He4_V51_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mn54_to_Mn55_reaclib)*Y(N)*state.rho - screened_rates(k_n_Mn54_to_p_Cr54_reaclib)*Y(N)*state.rho - screened_rates(k_p_Mn54_to_Fe55_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mn54_to_He4_Cr51_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mn54_to_n_Fe54_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Mn54_He4_to_Co58_reaclib)*Y(He4)*state.rho - screened_rates(k_Mn54_He4_to_n_Co57_derived)*Y(He4)*state.rho - screened_rates(k_Mn54_He4_to_p_Fe57_derived)*Y(He4)*state.rho - screened_rates(k_Mn54_n_to_He4_V51_reaclib)*Y(N)*state.rho - screened_rates(k_Mn54_n_to_Mn55_reaclib)*Y(N)*state.rho - screened_rates(k_Mn54_n_to_p_Cr54_reaclib)*Y(N)*state.rho - screened_rates(k_Mn54_p_to_Fe55_reaclib)*Y(H1)*state.rho - screened_rates(k_Mn54_p_to_He4_Cr51_reaclib)*Y(H1)*state.rho - screened_rates(k_Mn54_p_to_n_Fe54_derived)*Y(H1)*state.rho - screened_rates(k_Mn54_to_Cr54_electron_capture_weaktab) - screened_rates(k_Mn54_to_Fe54_beta_neg_weaktab) - screened_rates(k_Mn54_to_He4_V50_derived) - screened_rates(k_Mn54_to_n_Mn53_derived) - screened_rates(k_Mn54_to_p_Cr53_derived); jac.set(Mn54, Mn54, scratch); - scratch = screened_rates(k_Mn55_to_n_Mn54_reaclib); + scratch = screened_rates(k_Mn55_to_n_Mn54_derived); jac.set(Mn54, Mn55, scratch); jac.set(Mn54, Fe52, 0.0); jac.set(Mn54, Fe53, 0.0); - scratch = screened_rates(k_Fe54_to_Mn54_weaktab) + screened_rates(k_n_Fe54_to_p_Mn54_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Fe54_n_to_p_Mn54_reaclib)*Y(N)*state.rho + screened_rates(k_Fe54_to_Mn54_electron_capture_weaktab); jac.set(Mn54, Fe54, scratch); - scratch = screened_rates(k_Fe55_to_p_Mn54_reaclib); + scratch = screened_rates(k_Fe55_to_p_Mn54_derived); jac.set(Mn54, Fe55, scratch); jac.set(Mn54, Fe56, 0.0); - scratch = screened_rates(k_p_Fe57_to_He4_Mn54_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe57_p_to_He4_Mn54_reaclib)*Y(H1)*state.rho; jac.set(Mn54, Fe57, scratch); jac.set(Mn54, Fe58, 0.0); @@ -47485,10 +45294,10 @@ void jac_nuc(const burn_t& state, jac.set(Mn54, Co56, 0.0); - scratch = screened_rates(k_n_Co57_to_He4_Mn54_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Co57_n_to_He4_Mn54_reaclib)*Y(N)*state.rho; jac.set(Mn54, Co57, scratch); - scratch = screened_rates(k_Co58_to_He4_Mn54_reaclib); + scratch = screened_rates(k_Co58_to_He4_Mn54_derived); jac.set(Mn54, Co58, scratch); jac.set(Mn54, Co59, 0.0); @@ -47555,17 +45364,17 @@ void jac_nuc(const burn_t& state, jac.set(Mn54, Ge64, 0.0); - scratch = screened_rates(k_n_Co58_to_He4_Mn55_reaclib)*Y(Co58)*state.rho + screened_rates(k_n_Fe55_to_p_Mn55_reaclib)*Y(Fe55)*state.rho + screened_rates(k_n_Mn54_to_Mn55_reaclib)*Y(Mn54)*state.rho - screened_rates(k_n_Mn55_to_He4_V52_reaclib)*Y(Mn55)*state.rho; + scratch = screened_rates(k_Co58_n_to_He4_Mn55_reaclib)*Y(Co58)*state.rho + screened_rates(k_Fe55_n_to_p_Mn55_reaclib)*Y(Fe55)*state.rho + screened_rates(k_Mn54_n_to_Mn55_reaclib)*Y(Mn54)*state.rho - screened_rates(k_Mn55_n_to_He4_V52_derived)*Y(Mn55)*state.rho; jac.set(Mn55, N, scratch); - scratch = screened_rates(k_p_Cr54_to_Mn55_reaclib)*Y(Cr54)*state.rho + screened_rates(k_p_Fe58_to_He4_Mn55_reaclib)*Y(Fe58)*state.rho - screened_rates(k_p_Mn55_to_Fe56_reaclib)*Y(Mn55)*state.rho - screened_rates(k_p_Mn55_to_He4_Cr52_reaclib)*Y(Mn55)*state.rho - screened_rates(k_p_Mn55_to_n_Fe55_reaclib)*Y(Mn55)*state.rho; + scratch = screened_rates(k_Cr54_p_to_Mn55_reaclib)*Y(Cr54)*state.rho + screened_rates(k_Fe58_p_to_He4_Mn55_reaclib)*Y(Fe58)*state.rho - screened_rates(k_Mn55_p_to_Fe56_reaclib)*Y(Mn55)*state.rho - screened_rates(k_Mn55_p_to_He4_Cr52_reaclib)*Y(Mn55)*state.rho - screened_rates(k_Mn55_p_to_n_Fe55_derived)*Y(Mn55)*state.rho; jac.set(Mn55, H1, scratch); jac.set(Mn55, H2, 0.0); jac.set(Mn55, He3, 0.0); - scratch = screened_rates(k_He4_Cr52_to_p_Mn55_reaclib)*Y(Cr52)*state.rho - screened_rates(k_He4_Mn55_to_Co59_reaclib)*Y(Mn55)*state.rho - screened_rates(k_He4_Mn55_to_n_Co58_reaclib)*Y(Mn55)*state.rho - screened_rates(k_He4_Mn55_to_p_Fe58_reaclib)*Y(Mn55)*state.rho + screened_rates(k_He4_V51_to_Mn55_reaclib)*Y(V51)*state.rho + screened_rates(k_He4_V52_to_n_Mn55_reaclib)*Y(V52)*state.rho; + scratch = screened_rates(k_Cr52_He4_to_p_Mn55_derived)*Y(Cr52)*state.rho - screened_rates(k_Mn55_He4_to_Co59_reaclib)*Y(Mn55)*state.rho - screened_rates(k_Mn55_He4_to_n_Co58_derived)*Y(Mn55)*state.rho - screened_rates(k_Mn55_He4_to_p_Fe58_derived)*Y(Mn55)*state.rho + screened_rates(k_V51_He4_to_Mn55_reaclib)*Y(V51)*state.rho + screened_rates(k_V52_He4_to_n_Mn55_reaclib)*Y(V52)*state.rho; jac.set(Mn55, He4, scratch); jac.set(Mn55, Li6, 0.0); @@ -47758,10 +45567,10 @@ void jac_nuc(const burn_t& state, jac.set(Mn55, V50, 0.0); - scratch = screened_rates(k_He4_V51_to_Mn55_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_V51_He4_to_Mn55_reaclib)*Y(He4)*state.rho; jac.set(Mn55, V51, scratch); - scratch = screened_rates(k_He4_V52_to_n_Mn55_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_V52_He4_to_n_Mn55_reaclib)*Y(He4)*state.rho; jac.set(Mn55, V52, scratch); jac.set(Mn55, Cr48, 0.0); @@ -47772,12 +45581,12 @@ void jac_nuc(const burn_t& state, jac.set(Mn55, Cr51, 0.0); - scratch = screened_rates(k_He4_Cr52_to_p_Mn55_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cr52_He4_to_p_Mn55_derived)*Y(He4)*state.rho; jac.set(Mn55, Cr52, scratch); jac.set(Mn55, Cr53, 0.0); - scratch = screened_rates(k_p_Cr54_to_Mn55_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cr54_p_to_Mn55_reaclib)*Y(H1)*state.rho; jac.set(Mn55, Cr54, scratch); jac.set(Mn55, Mn50, 0.0); @@ -47788,10 +45597,10 @@ void jac_nuc(const burn_t& state, jac.set(Mn55, Mn53, 0.0); - scratch = screened_rates(k_n_Mn54_to_Mn55_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Mn54_n_to_Mn55_reaclib)*Y(N)*state.rho; jac.set(Mn55, Mn54, scratch); - scratch = -screened_rates(k_He4_Mn55_to_Co59_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mn55_to_n_Co58_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Mn55_to_p_Fe58_reaclib)*Y(He4)*state.rho - screened_rates(k_Mn55_to_Fe55_weaktab) - screened_rates(k_Mn55_to_He4_V51_reaclib) - screened_rates(k_Mn55_to_n_Mn54_reaclib) - screened_rates(k_Mn55_to_p_Cr54_reaclib) - screened_rates(k_n_Mn55_to_He4_V52_reaclib)*Y(N)*state.rho - screened_rates(k_p_Mn55_to_Fe56_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mn55_to_He4_Cr52_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Mn55_to_n_Fe55_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Mn55_He4_to_Co59_reaclib)*Y(He4)*state.rho - screened_rates(k_Mn55_He4_to_n_Co58_derived)*Y(He4)*state.rho - screened_rates(k_Mn55_He4_to_p_Fe58_derived)*Y(He4)*state.rho - screened_rates(k_Mn55_n_to_He4_V52_derived)*Y(N)*state.rho - screened_rates(k_Mn55_p_to_Fe56_reaclib)*Y(H1)*state.rho - screened_rates(k_Mn55_p_to_He4_Cr52_reaclib)*Y(H1)*state.rho - screened_rates(k_Mn55_p_to_n_Fe55_derived)*Y(H1)*state.rho - screened_rates(k_Mn55_to_Fe55_beta_neg_weaktab) - screened_rates(k_Mn55_to_He4_V51_derived) - screened_rates(k_Mn55_to_n_Mn54_derived) - screened_rates(k_Mn55_to_p_Cr54_derived); jac.set(Mn55, Mn55, scratch); jac.set(Mn55, Fe52, 0.0); @@ -47800,15 +45609,15 @@ void jac_nuc(const burn_t& state, jac.set(Mn55, Fe54, 0.0); - scratch = screened_rates(k_Fe55_to_Mn55_weaktab) + screened_rates(k_n_Fe55_to_p_Mn55_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Fe55_n_to_p_Mn55_reaclib)*Y(N)*state.rho + screened_rates(k_Fe55_to_Mn55_electron_capture_weaktab); jac.set(Mn55, Fe55, scratch); - scratch = screened_rates(k_Fe56_to_p_Mn55_reaclib); + scratch = screened_rates(k_Fe56_to_p_Mn55_derived); jac.set(Mn55, Fe56, scratch); jac.set(Mn55, Fe57, 0.0); - scratch = screened_rates(k_p_Fe58_to_He4_Mn55_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe58_p_to_He4_Mn55_reaclib)*Y(H1)*state.rho; jac.set(Mn55, Fe58, scratch); jac.set(Mn55, Co53, 0.0); @@ -47821,10 +45630,10 @@ void jac_nuc(const burn_t& state, jac.set(Mn55, Co57, 0.0); - scratch = screened_rates(k_n_Co58_to_He4_Mn55_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Co58_n_to_He4_Mn55_reaclib)*Y(N)*state.rho; jac.set(Mn55, Co58, scratch); - scratch = screened_rates(k_Co59_to_He4_Mn55_reaclib); + scratch = screened_rates(k_Co59_to_He4_Mn55_derived); jac.set(Mn55, Co59, scratch); jac.set(Mn55, Ni56, 0.0); @@ -47889,17 +45698,17 @@ void jac_nuc(const burn_t& state, jac.set(Mn55, Ge64, 0.0); - scratch = -screened_rates(k_n_Fe52_to_Fe53_reaclib)*Y(Fe52)*state.rho - screened_rates(k_n_Fe52_to_He4_Cr49_reaclib)*Y(Fe52)*state.rho - screened_rates(k_n_Fe52_to_p_Mn52_reaclib)*Y(Fe52)*state.rho; + scratch = -screened_rates(k_Fe52_n_to_Fe53_reaclib)*Y(Fe52)*state.rho - screened_rates(k_Fe52_n_to_He4_Cr49_reaclib)*Y(Fe52)*state.rho - screened_rates(k_Fe52_n_to_p_Mn52_reaclib)*Y(Fe52)*state.rho; jac.set(Fe52, N, scratch); - scratch = screened_rates(k_p_Co55_to_He4_Fe52_reaclib)*Y(Co55)*state.rho - screened_rates(k_p_Fe52_to_Co53_reaclib)*Y(Fe52)*state.rho + screened_rates(k_p_Mn51_to_Fe52_reaclib)*Y(Mn51)*state.rho + screened_rates(k_p_Mn52_to_n_Fe52_reaclib)*Y(Mn52)*state.rho; + scratch = screened_rates(k_Co55_p_to_He4_Fe52_derived)*Y(Co55)*state.rho - screened_rates(k_Fe52_p_to_Co53_reaclib)*Y(Fe52)*state.rho + screened_rates(k_Mn51_p_to_Fe52_reaclib)*Y(Mn51)*state.rho + screened_rates(k_Mn52_p_to_n_Fe52_derived)*Y(Mn52)*state.rho; jac.set(Fe52, H1, scratch); jac.set(Fe52, H2, 0.0); jac.set(Fe52, He3, 0.0); - scratch = screened_rates(k_He4_Cr48_to_Fe52_reaclib)*Y(Cr48)*state.rho + screened_rates(k_He4_Cr49_to_n_Fe52_reaclib)*Y(Cr49)*state.rho - screened_rates(k_He4_Fe52_to_Ni56_reaclib)*Y(Fe52)*state.rho - screened_rates(k_He4_Fe52_to_p_Co55_reaclib)*Y(Fe52)*state.rho; + scratch = screened_rates(k_Cr48_He4_to_Fe52_reaclib)*Y(Cr48)*state.rho + screened_rates(k_Cr49_He4_to_n_Fe52_derived)*Y(Cr49)*state.rho - screened_rates(k_Fe52_He4_to_Ni56_reaclib)*Y(Fe52)*state.rho - screened_rates(k_Fe52_He4_to_p_Co55_reaclib)*Y(Fe52)*state.rho; jac.set(Fe52, He4, scratch); jac.set(Fe52, Li6, 0.0); @@ -48096,10 +45905,10 @@ void jac_nuc(const burn_t& state, jac.set(Fe52, V52, 0.0); - scratch = screened_rates(k_He4_Cr48_to_Fe52_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cr48_He4_to_Fe52_reaclib)*Y(He4)*state.rho; jac.set(Fe52, Cr48, scratch); - scratch = screened_rates(k_He4_Cr49_to_n_Fe52_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cr49_He4_to_n_Fe52_derived)*Y(He4)*state.rho; jac.set(Fe52, Cr49, scratch); jac.set(Fe52, Cr50, 0.0); @@ -48114,10 +45923,10 @@ void jac_nuc(const burn_t& state, jac.set(Fe52, Mn50, 0.0); - scratch = screened_rates(k_p_Mn51_to_Fe52_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mn51_p_to_Fe52_reaclib)*Y(H1)*state.rho; jac.set(Fe52, Mn51, scratch); - scratch = screened_rates(k_Mn52_to_Fe52_weaktab) + screened_rates(k_p_Mn52_to_n_Fe52_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mn52_p_to_n_Fe52_derived)*Y(H1)*state.rho + screened_rates(k_Mn52_to_Fe52_beta_neg_weaktab); jac.set(Fe52, Mn52, scratch); jac.set(Fe52, Mn53, 0.0); @@ -48126,10 +45935,10 @@ void jac_nuc(const burn_t& state, jac.set(Fe52, Mn55, 0.0); - scratch = -screened_rates(k_Fe52_to_He4_Cr48_reaclib) - screened_rates(k_Fe52_to_Mn52_weaktab) - screened_rates(k_Fe52_to_p_Mn51_reaclib) - screened_rates(k_He4_Fe52_to_Ni56_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Fe52_to_p_Co55_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Fe52_to_Fe53_reaclib)*Y(N)*state.rho - screened_rates(k_n_Fe52_to_He4_Cr49_reaclib)*Y(N)*state.rho - screened_rates(k_n_Fe52_to_p_Mn52_reaclib)*Y(N)*state.rho - screened_rates(k_p_Fe52_to_Co53_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Fe52_He4_to_Ni56_reaclib)*Y(He4)*state.rho - screened_rates(k_Fe52_He4_to_p_Co55_reaclib)*Y(He4)*state.rho - screened_rates(k_Fe52_n_to_Fe53_reaclib)*Y(N)*state.rho - screened_rates(k_Fe52_n_to_He4_Cr49_reaclib)*Y(N)*state.rho - screened_rates(k_Fe52_n_to_p_Mn52_reaclib)*Y(N)*state.rho - screened_rates(k_Fe52_p_to_Co53_reaclib)*Y(H1)*state.rho - screened_rates(k_Fe52_to_He4_Cr48_derived) - screened_rates(k_Fe52_to_Mn52_electron_capture_weaktab) - screened_rates(k_Fe52_to_p_Mn51_derived); jac.set(Fe52, Fe52, scratch); - scratch = screened_rates(k_Fe53_to_n_Fe52_reaclib); + scratch = screened_rates(k_Fe53_to_n_Fe52_derived); jac.set(Fe52, Fe53, scratch); jac.set(Fe52, Fe54, 0.0); @@ -48142,12 +45951,12 @@ void jac_nuc(const burn_t& state, jac.set(Fe52, Fe58, 0.0); - scratch = screened_rates(k_Co53_to_p_Fe52_reaclib); + scratch = screened_rates(k_Co53_to_p_Fe52_derived); jac.set(Fe52, Co53, scratch); jac.set(Fe52, Co54, 0.0); - scratch = screened_rates(k_p_Co55_to_He4_Fe52_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Co55_p_to_He4_Fe52_derived)*Y(H1)*state.rho; jac.set(Fe52, Co55, scratch); jac.set(Fe52, Co56, 0.0); @@ -48158,7 +45967,7 @@ void jac_nuc(const burn_t& state, jac.set(Fe52, Co59, 0.0); - scratch = screened_rates(k_Ni56_to_He4_Fe52_reaclib); + scratch = screened_rates(k_Ni56_to_He4_Fe52_derived); jac.set(Fe52, Ni56, scratch); jac.set(Fe52, Ni57, 0.0); @@ -48221,17 +46030,17 @@ void jac_nuc(const burn_t& state, jac.set(Fe52, Ge64, 0.0); - scratch = screened_rates(k_n_Co53_to_p_Fe53_reaclib)*Y(Co53)*state.rho + screened_rates(k_n_Fe52_to_Fe53_reaclib)*Y(Fe52)*state.rho - screened_rates(k_n_Fe53_to_Fe54_reaclib)*Y(Fe53)*state.rho - screened_rates(k_n_Fe53_to_He4_Cr50_reaclib)*Y(Fe53)*state.rho - screened_rates(k_n_Fe53_to_p_Mn53_reaclib)*Y(Fe53)*state.rho + screened_rates(k_n_Ni56_to_He4_Fe53_reaclib)*Y(Ni56)*state.rho; + scratch = screened_rates(k_Co53_n_to_p_Fe53_reaclib)*Y(Co53)*state.rho + screened_rates(k_Fe52_n_to_Fe53_reaclib)*Y(Fe52)*state.rho - screened_rates(k_Fe53_n_to_Fe54_reaclib)*Y(Fe53)*state.rho - screened_rates(k_Fe53_n_to_He4_Cr50_reaclib)*Y(Fe53)*state.rho - screened_rates(k_Fe53_n_to_p_Mn53_reaclib)*Y(Fe53)*state.rho + screened_rates(k_Ni56_n_to_He4_Fe53_reaclib)*Y(Ni56)*state.rho; jac.set(Fe53, N, scratch); - scratch = screened_rates(k_p_Co56_to_He4_Fe53_reaclib)*Y(Co56)*state.rho - screened_rates(k_p_Fe53_to_Co54_reaclib)*Y(Fe53)*state.rho - screened_rates(k_p_Fe53_to_He4_Mn50_reaclib)*Y(Fe53)*state.rho - screened_rates(k_p_Fe53_to_n_Co53_reaclib)*Y(Fe53)*state.rho + screened_rates(k_p_Mn52_to_Fe53_reaclib)*Y(Mn52)*state.rho + screened_rates(k_p_Mn53_to_n_Fe53_reaclib)*Y(Mn53)*state.rho; + scratch = screened_rates(k_Co56_p_to_He4_Fe53_derived)*Y(Co56)*state.rho - screened_rates(k_Fe53_p_to_Co54_reaclib)*Y(Fe53)*state.rho - screened_rates(k_Fe53_p_to_He4_Mn50_derived)*Y(Fe53)*state.rho - screened_rates(k_Fe53_p_to_n_Co53_derived)*Y(Fe53)*state.rho + screened_rates(k_Mn52_p_to_Fe53_reaclib)*Y(Mn52)*state.rho + screened_rates(k_Mn53_p_to_n_Fe53_derived)*Y(Mn53)*state.rho; jac.set(Fe53, H1, scratch); jac.set(Fe53, H2, 0.0); jac.set(Fe53, He3, 0.0); - scratch = screened_rates(k_He4_Cr49_to_Fe53_reaclib)*Y(Cr49)*state.rho + screened_rates(k_He4_Cr50_to_n_Fe53_reaclib)*Y(Cr50)*state.rho - screened_rates(k_He4_Fe53_to_Ni57_reaclib)*Y(Fe53)*state.rho - screened_rates(k_He4_Fe53_to_n_Ni56_reaclib)*Y(Fe53)*state.rho - screened_rates(k_He4_Fe53_to_p_Co56_reaclib)*Y(Fe53)*state.rho + screened_rates(k_He4_Mn50_to_p_Fe53_reaclib)*Y(Mn50)*state.rho; + scratch = screened_rates(k_Cr49_He4_to_Fe53_reaclib)*Y(Cr49)*state.rho + screened_rates(k_Cr50_He4_to_n_Fe53_derived)*Y(Cr50)*state.rho - screened_rates(k_Fe53_He4_to_Ni57_reaclib)*Y(Fe53)*state.rho - screened_rates(k_Fe53_He4_to_n_Ni56_derived)*Y(Fe53)*state.rho - screened_rates(k_Fe53_He4_to_p_Co56_reaclib)*Y(Fe53)*state.rho + screened_rates(k_Mn50_He4_to_p_Fe53_reaclib)*Y(Mn50)*state.rho; jac.set(Fe53, He4, scratch); jac.set(Fe53, Li6, 0.0); @@ -48430,10 +46239,10 @@ void jac_nuc(const burn_t& state, jac.set(Fe53, Cr48, 0.0); - scratch = screened_rates(k_He4_Cr49_to_Fe53_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cr49_He4_to_Fe53_reaclib)*Y(He4)*state.rho; jac.set(Fe53, Cr49, scratch); - scratch = screened_rates(k_He4_Cr50_to_n_Fe53_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cr50_He4_to_n_Fe53_derived)*Y(He4)*state.rho; jac.set(Fe53, Cr50, scratch); jac.set(Fe53, Cr51, 0.0); @@ -48444,28 +46253,28 @@ void jac_nuc(const burn_t& state, jac.set(Fe53, Cr54, 0.0); - scratch = screened_rates(k_He4_Mn50_to_p_Fe53_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mn50_He4_to_p_Fe53_reaclib)*Y(He4)*state.rho; jac.set(Fe53, Mn50, scratch); jac.set(Fe53, Mn51, 0.0); - scratch = screened_rates(k_p_Mn52_to_Fe53_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mn52_p_to_Fe53_reaclib)*Y(H1)*state.rho; jac.set(Fe53, Mn52, scratch); - scratch = screened_rates(k_Mn53_to_Fe53_weaktab) + screened_rates(k_p_Mn53_to_n_Fe53_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mn53_p_to_n_Fe53_derived)*Y(H1)*state.rho + screened_rates(k_Mn53_to_Fe53_beta_neg_weaktab); jac.set(Fe53, Mn53, scratch); jac.set(Fe53, Mn54, 0.0); jac.set(Fe53, Mn55, 0.0); - scratch = screened_rates(k_n_Fe52_to_Fe53_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Fe52_n_to_Fe53_reaclib)*Y(N)*state.rho; jac.set(Fe53, Fe52, scratch); - scratch = -screened_rates(k_Fe53_to_Co53_weaktab) - screened_rates(k_Fe53_to_He4_Cr49_reaclib) - screened_rates(k_Fe53_to_Mn53_weaktab) - screened_rates(k_Fe53_to_n_Fe52_reaclib) - screened_rates(k_Fe53_to_p_Mn52_reaclib) - screened_rates(k_He4_Fe53_to_Ni57_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Fe53_to_n_Ni56_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Fe53_to_p_Co56_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Fe53_to_Fe54_reaclib)*Y(N)*state.rho - screened_rates(k_n_Fe53_to_He4_Cr50_reaclib)*Y(N)*state.rho - screened_rates(k_n_Fe53_to_p_Mn53_reaclib)*Y(N)*state.rho - screened_rates(k_p_Fe53_to_Co54_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Fe53_to_He4_Mn50_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Fe53_to_n_Co53_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Fe53_He4_to_Ni57_reaclib)*Y(He4)*state.rho - screened_rates(k_Fe53_He4_to_n_Ni56_derived)*Y(He4)*state.rho - screened_rates(k_Fe53_He4_to_p_Co56_reaclib)*Y(He4)*state.rho - screened_rates(k_Fe53_n_to_Fe54_reaclib)*Y(N)*state.rho - screened_rates(k_Fe53_n_to_He4_Cr50_reaclib)*Y(N)*state.rho - screened_rates(k_Fe53_n_to_p_Mn53_reaclib)*Y(N)*state.rho - screened_rates(k_Fe53_p_to_Co54_reaclib)*Y(H1)*state.rho - screened_rates(k_Fe53_p_to_He4_Mn50_derived)*Y(H1)*state.rho - screened_rates(k_Fe53_p_to_n_Co53_derived)*Y(H1)*state.rho - screened_rates(k_Fe53_to_Co53_beta_neg_weaktab) - screened_rates(k_Fe53_to_He4_Cr49_derived) - screened_rates(k_Fe53_to_Mn53_electron_capture_weaktab) - screened_rates(k_Fe53_to_n_Fe52_derived) - screened_rates(k_Fe53_to_p_Mn52_derived); jac.set(Fe53, Fe53, scratch); - scratch = screened_rates(k_Fe54_to_n_Fe53_reaclib); + scratch = screened_rates(k_Fe54_to_n_Fe53_derived); jac.set(Fe53, Fe54, scratch); jac.set(Fe53, Fe55, 0.0); @@ -48476,15 +46285,15 @@ void jac_nuc(const burn_t& state, jac.set(Fe53, Fe58, 0.0); - scratch = screened_rates(k_Co53_to_Fe53_weaktab) + screened_rates(k_n_Co53_to_p_Fe53_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Co53_n_to_p_Fe53_reaclib)*Y(N)*state.rho + screened_rates(k_Co53_to_Fe53_electron_capture_weaktab); jac.set(Fe53, Co53, scratch); - scratch = screened_rates(k_Co54_to_p_Fe53_reaclib); + scratch = screened_rates(k_Co54_to_p_Fe53_derived); jac.set(Fe53, Co54, scratch); jac.set(Fe53, Co55, 0.0); - scratch = screened_rates(k_p_Co56_to_He4_Fe53_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Co56_p_to_He4_Fe53_derived)*Y(H1)*state.rho; jac.set(Fe53, Co56, scratch); jac.set(Fe53, Co57, 0.0); @@ -48493,10 +46302,10 @@ void jac_nuc(const burn_t& state, jac.set(Fe53, Co59, 0.0); - scratch = screened_rates(k_n_Ni56_to_He4_Fe53_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ni56_n_to_He4_Fe53_reaclib)*Y(N)*state.rho; jac.set(Fe53, Ni56, scratch); - scratch = screened_rates(k_Ni57_to_He4_Fe53_reaclib); + scratch = screened_rates(k_Ni57_to_He4_Fe53_derived); jac.set(Fe53, Ni57, scratch); jac.set(Fe53, Ni58, 0.0); @@ -48557,17 +46366,17 @@ void jac_nuc(const burn_t& state, jac.set(Fe53, Ge64, 0.0); - scratch = screened_rates(k_n_Co54_to_p_Fe54_reaclib)*Y(Co54)*state.rho + screened_rates(k_n_Fe53_to_Fe54_reaclib)*Y(Fe53)*state.rho - screened_rates(k_n_Fe54_to_Fe55_reaclib)*Y(Fe54)*state.rho - screened_rates(k_n_Fe54_to_He4_Cr51_reaclib)*Y(Fe54)*state.rho - screened_rates(k_n_Fe54_to_p_Mn54_reaclib)*Y(Fe54)*state.rho + screened_rates(k_n_Ni57_to_He4_Fe54_reaclib)*Y(Ni57)*state.rho; + scratch = screened_rates(k_Co54_n_to_p_Fe54_reaclib)*Y(Co54)*state.rho + screened_rates(k_Fe53_n_to_Fe54_reaclib)*Y(Fe53)*state.rho - screened_rates(k_Fe54_n_to_Fe55_reaclib)*Y(Fe54)*state.rho - screened_rates(k_Fe54_n_to_He4_Cr51_reaclib)*Y(Fe54)*state.rho - screened_rates(k_Fe54_n_to_p_Mn54_reaclib)*Y(Fe54)*state.rho + screened_rates(k_Ni57_n_to_He4_Fe54_reaclib)*Y(Ni57)*state.rho; jac.set(Fe54, N, scratch); - scratch = screened_rates(k_p_Co57_to_He4_Fe54_reaclib)*Y(Co57)*state.rho - screened_rates(k_p_Fe54_to_Co55_reaclib)*Y(Fe54)*state.rho - screened_rates(k_p_Fe54_to_He4_Mn51_reaclib)*Y(Fe54)*state.rho - screened_rates(k_p_Fe54_to_n_Co54_reaclib)*Y(Fe54)*state.rho + screened_rates(k_p_Mn53_to_Fe54_reaclib)*Y(Mn53)*state.rho + screened_rates(k_p_Mn54_to_n_Fe54_reaclib)*Y(Mn54)*state.rho; + scratch = screened_rates(k_Co57_p_to_He4_Fe54_reaclib)*Y(Co57)*state.rho - screened_rates(k_Fe54_p_to_Co55_reaclib)*Y(Fe54)*state.rho - screened_rates(k_Fe54_p_to_He4_Mn51_derived)*Y(Fe54)*state.rho - screened_rates(k_Fe54_p_to_n_Co54_derived)*Y(Fe54)*state.rho + screened_rates(k_Mn53_p_to_Fe54_reaclib)*Y(Mn53)*state.rho + screened_rates(k_Mn54_p_to_n_Fe54_derived)*Y(Mn54)*state.rho; jac.set(Fe54, H1, scratch); jac.set(Fe54, H2, 0.0); jac.set(Fe54, He3, 0.0); - scratch = screened_rates(k_He4_Cr50_to_Fe54_reaclib)*Y(Cr50)*state.rho + screened_rates(k_He4_Cr51_to_n_Fe54_reaclib)*Y(Cr51)*state.rho - screened_rates(k_He4_Fe54_to_Ni58_reaclib)*Y(Fe54)*state.rho - screened_rates(k_He4_Fe54_to_n_Ni57_reaclib)*Y(Fe54)*state.rho - screened_rates(k_He4_Fe54_to_p_Co57_reaclib)*Y(Fe54)*state.rho + screened_rates(k_He4_Mn51_to_p_Fe54_reaclib)*Y(Mn51)*state.rho; + scratch = screened_rates(k_Cr50_He4_to_Fe54_reaclib)*Y(Cr50)*state.rho + screened_rates(k_Cr51_He4_to_n_Fe54_derived)*Y(Cr51)*state.rho - screened_rates(k_Fe54_He4_to_Ni58_reaclib)*Y(Fe54)*state.rho - screened_rates(k_Fe54_He4_to_n_Ni57_derived)*Y(Fe54)*state.rho - screened_rates(k_Fe54_He4_to_p_Co57_derived)*Y(Fe54)*state.rho + screened_rates(k_Mn51_He4_to_p_Fe54_reaclib)*Y(Mn51)*state.rho; jac.set(Fe54, He4, scratch); jac.set(Fe54, Li6, 0.0); @@ -48768,10 +46577,10 @@ void jac_nuc(const burn_t& state, jac.set(Fe54, Cr49, 0.0); - scratch = screened_rates(k_He4_Cr50_to_Fe54_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cr50_He4_to_Fe54_reaclib)*Y(He4)*state.rho; jac.set(Fe54, Cr50, scratch); - scratch = screened_rates(k_He4_Cr51_to_n_Fe54_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cr51_He4_to_n_Fe54_derived)*Y(He4)*state.rho; jac.set(Fe54, Cr51, scratch); jac.set(Fe54, Cr52, 0.0); @@ -48782,28 +46591,28 @@ void jac_nuc(const burn_t& state, jac.set(Fe54, Mn50, 0.0); - scratch = screened_rates(k_He4_Mn51_to_p_Fe54_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mn51_He4_to_p_Fe54_reaclib)*Y(He4)*state.rho; jac.set(Fe54, Mn51, scratch); jac.set(Fe54, Mn52, 0.0); - scratch = screened_rates(k_p_Mn53_to_Fe54_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mn53_p_to_Fe54_reaclib)*Y(H1)*state.rho; jac.set(Fe54, Mn53, scratch); - scratch = screened_rates(k_Mn54_to_Fe54_weaktab) + screened_rates(k_p_Mn54_to_n_Fe54_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mn54_p_to_n_Fe54_derived)*Y(H1)*state.rho + screened_rates(k_Mn54_to_Fe54_beta_neg_weaktab); jac.set(Fe54, Mn54, scratch); jac.set(Fe54, Mn55, 0.0); jac.set(Fe54, Fe52, 0.0); - scratch = screened_rates(k_n_Fe53_to_Fe54_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Fe53_n_to_Fe54_reaclib)*Y(N)*state.rho; jac.set(Fe54, Fe53, scratch); - scratch = -screened_rates(k_Fe54_to_Co54_weaktab) - screened_rates(k_Fe54_to_He4_Cr50_reaclib) - screened_rates(k_Fe54_to_Mn54_weaktab) - screened_rates(k_Fe54_to_n_Fe53_reaclib) - screened_rates(k_Fe54_to_p_Mn53_reaclib) - screened_rates(k_He4_Fe54_to_Ni58_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Fe54_to_n_Ni57_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Fe54_to_p_Co57_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Fe54_to_Fe55_reaclib)*Y(N)*state.rho - screened_rates(k_n_Fe54_to_He4_Cr51_reaclib)*Y(N)*state.rho - screened_rates(k_n_Fe54_to_p_Mn54_reaclib)*Y(N)*state.rho - screened_rates(k_p_Fe54_to_Co55_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Fe54_to_He4_Mn51_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Fe54_to_n_Co54_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Fe54_He4_to_Ni58_reaclib)*Y(He4)*state.rho - screened_rates(k_Fe54_He4_to_n_Ni57_derived)*Y(He4)*state.rho - screened_rates(k_Fe54_He4_to_p_Co57_derived)*Y(He4)*state.rho - screened_rates(k_Fe54_n_to_Fe55_reaclib)*Y(N)*state.rho - screened_rates(k_Fe54_n_to_He4_Cr51_reaclib)*Y(N)*state.rho - screened_rates(k_Fe54_n_to_p_Mn54_reaclib)*Y(N)*state.rho - screened_rates(k_Fe54_p_to_Co55_reaclib)*Y(H1)*state.rho - screened_rates(k_Fe54_p_to_He4_Mn51_derived)*Y(H1)*state.rho - screened_rates(k_Fe54_p_to_n_Co54_derived)*Y(H1)*state.rho - screened_rates(k_Fe54_to_Co54_beta_neg_weaktab) - screened_rates(k_Fe54_to_He4_Cr50_derived) - screened_rates(k_Fe54_to_Mn54_electron_capture_weaktab) - screened_rates(k_Fe54_to_n_Fe53_derived) - screened_rates(k_Fe54_to_p_Mn53_derived); jac.set(Fe54, Fe54, scratch); - scratch = screened_rates(k_Fe55_to_n_Fe54_reaclib); + scratch = screened_rates(k_Fe55_to_n_Fe54_derived); jac.set(Fe54, Fe55, scratch); jac.set(Fe54, Fe56, 0.0); @@ -48814,15 +46623,15 @@ void jac_nuc(const burn_t& state, jac.set(Fe54, Co53, 0.0); - scratch = screened_rates(k_Co54_to_Fe54_weaktab) + screened_rates(k_n_Co54_to_p_Fe54_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Co54_n_to_p_Fe54_reaclib)*Y(N)*state.rho + screened_rates(k_Co54_to_Fe54_electron_capture_weaktab); jac.set(Fe54, Co54, scratch); - scratch = screened_rates(k_Co55_to_p_Fe54_reaclib); + scratch = screened_rates(k_Co55_to_p_Fe54_derived); jac.set(Fe54, Co55, scratch); jac.set(Fe54, Co56, 0.0); - scratch = screened_rates(k_p_Co57_to_He4_Fe54_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Co57_p_to_He4_Fe54_reaclib)*Y(H1)*state.rho; jac.set(Fe54, Co57, scratch); jac.set(Fe54, Co58, 0.0); @@ -48831,10 +46640,10 @@ void jac_nuc(const burn_t& state, jac.set(Fe54, Ni56, 0.0); - scratch = screened_rates(k_n_Ni57_to_He4_Fe54_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ni57_n_to_He4_Fe54_reaclib)*Y(N)*state.rho; jac.set(Fe54, Ni57, scratch); - scratch = screened_rates(k_Ni58_to_He4_Fe54_reaclib); + scratch = screened_rates(k_Ni58_to_He4_Fe54_derived); jac.set(Fe54, Ni58, scratch); jac.set(Fe54, Ni59, 0.0); @@ -48893,17 +46702,17 @@ void jac_nuc(const burn_t& state, jac.set(Fe54, Ge64, 0.0); - scratch = screened_rates(k_n_Co55_to_p_Fe55_reaclib)*Y(Co55)*state.rho + screened_rates(k_n_Fe54_to_Fe55_reaclib)*Y(Fe54)*state.rho - screened_rates(k_n_Fe55_to_Fe56_reaclib)*Y(Fe55)*state.rho - screened_rates(k_n_Fe55_to_He4_Cr52_reaclib)*Y(Fe55)*state.rho - screened_rates(k_n_Fe55_to_p_Mn55_reaclib)*Y(Fe55)*state.rho + screened_rates(k_n_Ni58_to_He4_Fe55_reaclib)*Y(Ni58)*state.rho; + scratch = screened_rates(k_Co55_n_to_p_Fe55_reaclib)*Y(Co55)*state.rho + screened_rates(k_Fe54_n_to_Fe55_reaclib)*Y(Fe54)*state.rho - screened_rates(k_Fe55_n_to_Fe56_reaclib)*Y(Fe55)*state.rho - screened_rates(k_Fe55_n_to_He4_Cr52_reaclib)*Y(Fe55)*state.rho - screened_rates(k_Fe55_n_to_p_Mn55_reaclib)*Y(Fe55)*state.rho + screened_rates(k_Ni58_n_to_He4_Fe55_reaclib)*Y(Ni58)*state.rho; jac.set(Fe55, N, scratch); - scratch = screened_rates(k_p_Co58_to_He4_Fe55_reaclib)*Y(Co58)*state.rho - screened_rates(k_p_Fe55_to_Co56_reaclib)*Y(Fe55)*state.rho - screened_rates(k_p_Fe55_to_He4_Mn52_reaclib)*Y(Fe55)*state.rho - screened_rates(k_p_Fe55_to_n_Co55_reaclib)*Y(Fe55)*state.rho + screened_rates(k_p_Mn54_to_Fe55_reaclib)*Y(Mn54)*state.rho + screened_rates(k_p_Mn55_to_n_Fe55_reaclib)*Y(Mn55)*state.rho; + scratch = screened_rates(k_Co58_p_to_He4_Fe55_reaclib)*Y(Co58)*state.rho - screened_rates(k_Fe55_p_to_Co56_reaclib)*Y(Fe55)*state.rho - screened_rates(k_Fe55_p_to_He4_Mn52_derived)*Y(Fe55)*state.rho - screened_rates(k_Fe55_p_to_n_Co55_derived)*Y(Fe55)*state.rho + screened_rates(k_Mn54_p_to_Fe55_reaclib)*Y(Mn54)*state.rho + screened_rates(k_Mn55_p_to_n_Fe55_derived)*Y(Mn55)*state.rho; jac.set(Fe55, H1, scratch); jac.set(Fe55, H2, 0.0); jac.set(Fe55, He3, 0.0); - scratch = screened_rates(k_He4_Cr51_to_Fe55_reaclib)*Y(Cr51)*state.rho + screened_rates(k_He4_Cr52_to_n_Fe55_reaclib)*Y(Cr52)*state.rho - screened_rates(k_He4_Fe55_to_Ni59_reaclib)*Y(Fe55)*state.rho - screened_rates(k_He4_Fe55_to_n_Ni58_reaclib)*Y(Fe55)*state.rho - screened_rates(k_He4_Fe55_to_p_Co58_reaclib)*Y(Fe55)*state.rho + screened_rates(k_He4_Mn52_to_p_Fe55_reaclib)*Y(Mn52)*state.rho; + scratch = screened_rates(k_Cr51_He4_to_Fe55_reaclib)*Y(Cr51)*state.rho + screened_rates(k_Cr52_He4_to_n_Fe55_derived)*Y(Cr52)*state.rho - screened_rates(k_Fe55_He4_to_Ni59_reaclib)*Y(Fe55)*state.rho - screened_rates(k_Fe55_He4_to_n_Ni58_derived)*Y(Fe55)*state.rho - screened_rates(k_Fe55_He4_to_p_Co58_derived)*Y(Fe55)*state.rho + screened_rates(k_Mn52_He4_to_p_Fe55_reaclib)*Y(Mn52)*state.rho; jac.set(Fe55, He4, scratch); jac.set(Fe55, Li6, 0.0); @@ -49106,10 +46915,10 @@ void jac_nuc(const burn_t& state, jac.set(Fe55, Cr50, 0.0); - scratch = screened_rates(k_He4_Cr51_to_Fe55_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cr51_He4_to_Fe55_reaclib)*Y(He4)*state.rho; jac.set(Fe55, Cr51, scratch); - scratch = screened_rates(k_He4_Cr52_to_n_Fe55_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cr52_He4_to_n_Fe55_derived)*Y(He4)*state.rho; jac.set(Fe55, Cr52, scratch); jac.set(Fe55, Cr53, 0.0); @@ -49120,28 +46929,28 @@ void jac_nuc(const burn_t& state, jac.set(Fe55, Mn51, 0.0); - scratch = screened_rates(k_He4_Mn52_to_p_Fe55_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mn52_He4_to_p_Fe55_reaclib)*Y(He4)*state.rho; jac.set(Fe55, Mn52, scratch); jac.set(Fe55, Mn53, 0.0); - scratch = screened_rates(k_p_Mn54_to_Fe55_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mn54_p_to_Fe55_reaclib)*Y(H1)*state.rho; jac.set(Fe55, Mn54, scratch); - scratch = screened_rates(k_Mn55_to_Fe55_weaktab) + screened_rates(k_p_Mn55_to_n_Fe55_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mn55_p_to_n_Fe55_derived)*Y(H1)*state.rho + screened_rates(k_Mn55_to_Fe55_beta_neg_weaktab); jac.set(Fe55, Mn55, scratch); jac.set(Fe55, Fe52, 0.0); jac.set(Fe55, Fe53, 0.0); - scratch = screened_rates(k_n_Fe54_to_Fe55_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Fe54_n_to_Fe55_reaclib)*Y(N)*state.rho; jac.set(Fe55, Fe54, scratch); - scratch = -screened_rates(k_Fe55_to_Co55_weaktab) - screened_rates(k_Fe55_to_He4_Cr51_reaclib) - screened_rates(k_Fe55_to_Mn55_weaktab) - screened_rates(k_Fe55_to_n_Fe54_reaclib) - screened_rates(k_Fe55_to_p_Mn54_reaclib) - screened_rates(k_He4_Fe55_to_Ni59_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Fe55_to_n_Ni58_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Fe55_to_p_Co58_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Fe55_to_Fe56_reaclib)*Y(N)*state.rho - screened_rates(k_n_Fe55_to_He4_Cr52_reaclib)*Y(N)*state.rho - screened_rates(k_n_Fe55_to_p_Mn55_reaclib)*Y(N)*state.rho - screened_rates(k_p_Fe55_to_Co56_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Fe55_to_He4_Mn52_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Fe55_to_n_Co55_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Fe55_He4_to_Ni59_reaclib)*Y(He4)*state.rho - screened_rates(k_Fe55_He4_to_n_Ni58_derived)*Y(He4)*state.rho - screened_rates(k_Fe55_He4_to_p_Co58_derived)*Y(He4)*state.rho - screened_rates(k_Fe55_n_to_Fe56_reaclib)*Y(N)*state.rho - screened_rates(k_Fe55_n_to_He4_Cr52_reaclib)*Y(N)*state.rho - screened_rates(k_Fe55_n_to_p_Mn55_reaclib)*Y(N)*state.rho - screened_rates(k_Fe55_p_to_Co56_reaclib)*Y(H1)*state.rho - screened_rates(k_Fe55_p_to_He4_Mn52_derived)*Y(H1)*state.rho - screened_rates(k_Fe55_p_to_n_Co55_derived)*Y(H1)*state.rho - screened_rates(k_Fe55_to_Co55_beta_neg_weaktab) - screened_rates(k_Fe55_to_He4_Cr51_derived) - screened_rates(k_Fe55_to_Mn55_electron_capture_weaktab) - screened_rates(k_Fe55_to_n_Fe54_derived) - screened_rates(k_Fe55_to_p_Mn54_derived); jac.set(Fe55, Fe55, scratch); - scratch = screened_rates(k_Fe56_to_n_Fe55_reaclib); + scratch = screened_rates(k_Fe56_to_n_Fe55_derived); jac.set(Fe55, Fe56, scratch); jac.set(Fe55, Fe57, 0.0); @@ -49152,15 +46961,15 @@ void jac_nuc(const burn_t& state, jac.set(Fe55, Co54, 0.0); - scratch = screened_rates(k_Co55_to_Fe55_weaktab) + screened_rates(k_n_Co55_to_p_Fe55_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Co55_n_to_p_Fe55_reaclib)*Y(N)*state.rho + screened_rates(k_Co55_to_Fe55_electron_capture_weaktab); jac.set(Fe55, Co55, scratch); - scratch = screened_rates(k_Co56_to_p_Fe55_reaclib); + scratch = screened_rates(k_Co56_to_p_Fe55_derived); jac.set(Fe55, Co56, scratch); jac.set(Fe55, Co57, 0.0); - scratch = screened_rates(k_p_Co58_to_He4_Fe55_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Co58_p_to_He4_Fe55_reaclib)*Y(H1)*state.rho; jac.set(Fe55, Co58, scratch); jac.set(Fe55, Co59, 0.0); @@ -49169,10 +46978,10 @@ void jac_nuc(const burn_t& state, jac.set(Fe55, Ni57, 0.0); - scratch = screened_rates(k_n_Ni58_to_He4_Fe55_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ni58_n_to_He4_Fe55_reaclib)*Y(N)*state.rho; jac.set(Fe55, Ni58, scratch); - scratch = screened_rates(k_Ni59_to_He4_Fe55_reaclib); + scratch = screened_rates(k_Ni59_to_He4_Fe55_derived); jac.set(Fe55, Ni59, scratch); jac.set(Fe55, Ni60, 0.0); @@ -49229,17 +47038,17 @@ void jac_nuc(const burn_t& state, jac.set(Fe55, Ge64, 0.0); - scratch = screened_rates(k_n_Co56_to_p_Fe56_reaclib)*Y(Co56)*state.rho + screened_rates(k_n_Fe55_to_Fe56_reaclib)*Y(Fe55)*state.rho - screened_rates(k_n_Fe56_to_Fe57_reaclib)*Y(Fe56)*state.rho - screened_rates(k_n_Fe56_to_He4_Cr53_reaclib)*Y(Fe56)*state.rho + screened_rates(k_n_Ni59_to_He4_Fe56_reaclib)*Y(Ni59)*state.rho; + scratch = screened_rates(k_Co56_n_to_p_Fe56_reaclib)*Y(Co56)*state.rho + screened_rates(k_Fe55_n_to_Fe56_reaclib)*Y(Fe55)*state.rho - screened_rates(k_Fe56_n_to_Fe57_reaclib)*Y(Fe56)*state.rho - screened_rates(k_Fe56_n_to_He4_Cr53_reaclib)*Y(Fe56)*state.rho + screened_rates(k_Ni59_n_to_He4_Fe56_reaclib)*Y(Ni59)*state.rho; jac.set(Fe56, N, scratch); - scratch = screened_rates(k_p_Co59_to_He4_Fe56_reaclib)*Y(Co59)*state.rho - screened_rates(k_p_Fe56_to_Co57_reaclib)*Y(Fe56)*state.rho - screened_rates(k_p_Fe56_to_He4_Mn53_reaclib)*Y(Fe56)*state.rho - screened_rates(k_p_Fe56_to_n_Co56_reaclib)*Y(Fe56)*state.rho + screened_rates(k_p_Mn55_to_Fe56_reaclib)*Y(Mn55)*state.rho; + scratch = screened_rates(k_Co59_p_to_He4_Fe56_reaclib)*Y(Co59)*state.rho - screened_rates(k_Fe56_p_to_Co57_reaclib)*Y(Fe56)*state.rho - screened_rates(k_Fe56_p_to_He4_Mn53_derived)*Y(Fe56)*state.rho - screened_rates(k_Fe56_p_to_n_Co56_derived)*Y(Fe56)*state.rho + screened_rates(k_Mn55_p_to_Fe56_reaclib)*Y(Mn55)*state.rho; jac.set(Fe56, H1, scratch); jac.set(Fe56, H2, 0.0); jac.set(Fe56, He3, 0.0); - scratch = screened_rates(k_He4_Cr52_to_Fe56_reaclib)*Y(Cr52)*state.rho + screened_rates(k_He4_Cr53_to_n_Fe56_reaclib)*Y(Cr53)*state.rho - screened_rates(k_He4_Fe56_to_Ni60_reaclib)*Y(Fe56)*state.rho - screened_rates(k_He4_Fe56_to_n_Ni59_reaclib)*Y(Fe56)*state.rho - screened_rates(k_He4_Fe56_to_p_Co59_reaclib)*Y(Fe56)*state.rho + screened_rates(k_He4_Mn53_to_p_Fe56_reaclib)*Y(Mn53)*state.rho; + scratch = screened_rates(k_Cr52_He4_to_Fe56_reaclib)*Y(Cr52)*state.rho + screened_rates(k_Cr53_He4_to_n_Fe56_derived)*Y(Cr53)*state.rho - screened_rates(k_Fe56_He4_to_Ni60_reaclib)*Y(Fe56)*state.rho - screened_rates(k_Fe56_He4_to_n_Ni59_derived)*Y(Fe56)*state.rho - screened_rates(k_Fe56_He4_to_p_Co59_derived)*Y(Fe56)*state.rho + screened_rates(k_Mn53_He4_to_p_Fe56_reaclib)*Y(Mn53)*state.rho; jac.set(Fe56, He4, scratch); jac.set(Fe56, Li6, 0.0); @@ -49444,10 +47253,10 @@ void jac_nuc(const burn_t& state, jac.set(Fe56, Cr51, 0.0); - scratch = screened_rates(k_He4_Cr52_to_Fe56_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cr52_He4_to_Fe56_reaclib)*Y(He4)*state.rho; jac.set(Fe56, Cr52, scratch); - scratch = screened_rates(k_He4_Cr53_to_n_Fe56_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cr53_He4_to_n_Fe56_derived)*Y(He4)*state.rho; jac.set(Fe56, Cr53, scratch); jac.set(Fe56, Cr54, 0.0); @@ -49458,12 +47267,12 @@ void jac_nuc(const burn_t& state, jac.set(Fe56, Mn52, 0.0); - scratch = screened_rates(k_He4_Mn53_to_p_Fe56_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mn53_He4_to_p_Fe56_reaclib)*Y(He4)*state.rho; jac.set(Fe56, Mn53, scratch); jac.set(Fe56, Mn54, 0.0); - scratch = screened_rates(k_p_Mn55_to_Fe56_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Mn55_p_to_Fe56_reaclib)*Y(H1)*state.rho; jac.set(Fe56, Mn55, scratch); jac.set(Fe56, Fe52, 0.0); @@ -49472,13 +47281,13 @@ void jac_nuc(const burn_t& state, jac.set(Fe56, Fe54, 0.0); - scratch = screened_rates(k_n_Fe55_to_Fe56_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Fe55_n_to_Fe56_reaclib)*Y(N)*state.rho; jac.set(Fe56, Fe55, scratch); - scratch = -screened_rates(k_Fe56_to_Co56_weaktab) - screened_rates(k_Fe56_to_He4_Cr52_reaclib) - screened_rates(k_Fe56_to_n_Fe55_reaclib) - screened_rates(k_Fe56_to_p_Mn55_reaclib) - screened_rates(k_He4_Fe56_to_Ni60_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Fe56_to_n_Ni59_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Fe56_to_p_Co59_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Fe56_to_Fe57_reaclib)*Y(N)*state.rho - screened_rates(k_n_Fe56_to_He4_Cr53_reaclib)*Y(N)*state.rho - screened_rates(k_p_Fe56_to_Co57_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Fe56_to_He4_Mn53_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Fe56_to_n_Co56_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Fe56_He4_to_Ni60_reaclib)*Y(He4)*state.rho - screened_rates(k_Fe56_He4_to_n_Ni59_derived)*Y(He4)*state.rho - screened_rates(k_Fe56_He4_to_p_Co59_derived)*Y(He4)*state.rho - screened_rates(k_Fe56_n_to_Fe57_reaclib)*Y(N)*state.rho - screened_rates(k_Fe56_n_to_He4_Cr53_reaclib)*Y(N)*state.rho - screened_rates(k_Fe56_p_to_Co57_reaclib)*Y(H1)*state.rho - screened_rates(k_Fe56_p_to_He4_Mn53_derived)*Y(H1)*state.rho - screened_rates(k_Fe56_p_to_n_Co56_derived)*Y(H1)*state.rho - screened_rates(k_Fe56_to_Co56_beta_neg_weaktab) - screened_rates(k_Fe56_to_He4_Cr52_derived) - screened_rates(k_Fe56_to_n_Fe55_derived) - screened_rates(k_Fe56_to_p_Mn55_derived); jac.set(Fe56, Fe56, scratch); - scratch = screened_rates(k_Fe57_to_n_Fe56_reaclib); + scratch = screened_rates(k_Fe57_to_n_Fe56_derived); jac.set(Fe56, Fe57, scratch); jac.set(Fe56, Fe58, 0.0); @@ -49489,15 +47298,15 @@ void jac_nuc(const burn_t& state, jac.set(Fe56, Co55, 0.0); - scratch = screened_rates(k_Co56_to_Fe56_weaktab) + screened_rates(k_n_Co56_to_p_Fe56_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Co56_n_to_p_Fe56_reaclib)*Y(N)*state.rho + screened_rates(k_Co56_to_Fe56_electron_capture_weaktab); jac.set(Fe56, Co56, scratch); - scratch = screened_rates(k_Co57_to_p_Fe56_reaclib); + scratch = screened_rates(k_Co57_to_p_Fe56_derived); jac.set(Fe56, Co57, scratch); jac.set(Fe56, Co58, 0.0); - scratch = screened_rates(k_p_Co59_to_He4_Fe56_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Co59_p_to_He4_Fe56_reaclib)*Y(H1)*state.rho; jac.set(Fe56, Co59, scratch); jac.set(Fe56, Ni56, 0.0); @@ -49506,10 +47315,10 @@ void jac_nuc(const burn_t& state, jac.set(Fe56, Ni58, 0.0); - scratch = screened_rates(k_n_Ni59_to_He4_Fe56_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ni59_n_to_He4_Fe56_reaclib)*Y(N)*state.rho; jac.set(Fe56, Ni59, scratch); - scratch = screened_rates(k_Ni60_to_He4_Fe56_reaclib); + scratch = screened_rates(k_Ni60_to_He4_Fe56_derived); jac.set(Fe56, Ni60, scratch); jac.set(Fe56, Ni61, 0.0); @@ -49564,17 +47373,17 @@ void jac_nuc(const burn_t& state, jac.set(Fe56, Ge64, 0.0); - scratch = screened_rates(k_n_Co57_to_p_Fe57_reaclib)*Y(Co57)*state.rho + screened_rates(k_n_Fe56_to_Fe57_reaclib)*Y(Fe56)*state.rho - screened_rates(k_n_Fe57_to_Fe58_reaclib)*Y(Fe57)*state.rho - screened_rates(k_n_Fe57_to_He4_Cr54_reaclib)*Y(Fe57)*state.rho + screened_rates(k_n_Ni60_to_He4_Fe57_reaclib)*Y(Ni60)*state.rho; + scratch = screened_rates(k_Co57_n_to_p_Fe57_reaclib)*Y(Co57)*state.rho + screened_rates(k_Fe56_n_to_Fe57_reaclib)*Y(Fe56)*state.rho - screened_rates(k_Fe57_n_to_Fe58_reaclib)*Y(Fe57)*state.rho - screened_rates(k_Fe57_n_to_He4_Cr54_reaclib)*Y(Fe57)*state.rho + screened_rates(k_Ni60_n_to_He4_Fe57_reaclib)*Y(Ni60)*state.rho; jac.set(Fe57, N, scratch); - scratch = -screened_rates(k_p_Fe57_to_Co58_reaclib)*Y(Fe57)*state.rho - screened_rates(k_p_Fe57_to_He4_Mn54_reaclib)*Y(Fe57)*state.rho - screened_rates(k_p_Fe57_to_n_Co57_reaclib)*Y(Fe57)*state.rho; + scratch = -screened_rates(k_Fe57_p_to_Co58_reaclib)*Y(Fe57)*state.rho - screened_rates(k_Fe57_p_to_He4_Mn54_reaclib)*Y(Fe57)*state.rho - screened_rates(k_Fe57_p_to_n_Co57_derived)*Y(Fe57)*state.rho; jac.set(Fe57, H1, scratch); jac.set(Fe57, H2, 0.0); jac.set(Fe57, He3, 0.0); - scratch = screened_rates(k_He4_Cr53_to_Fe57_reaclib)*Y(Cr53)*state.rho + screened_rates(k_He4_Cr54_to_n_Fe57_reaclib)*Y(Cr54)*state.rho - screened_rates(k_He4_Fe57_to_Ni61_reaclib)*Y(Fe57)*state.rho - screened_rates(k_He4_Fe57_to_n_Ni60_reaclib)*Y(Fe57)*state.rho + screened_rates(k_He4_Mn54_to_p_Fe57_reaclib)*Y(Mn54)*state.rho; + scratch = screened_rates(k_Cr53_He4_to_Fe57_reaclib)*Y(Cr53)*state.rho + screened_rates(k_Cr54_He4_to_n_Fe57_derived)*Y(Cr54)*state.rho - screened_rates(k_Fe57_He4_to_Ni61_reaclib)*Y(Fe57)*state.rho - screened_rates(k_Fe57_He4_to_n_Ni60_derived)*Y(Fe57)*state.rho + screened_rates(k_Mn54_He4_to_p_Fe57_derived)*Y(Mn54)*state.rho; jac.set(Fe57, He4, scratch); jac.set(Fe57, Li6, 0.0); @@ -49781,10 +47590,10 @@ void jac_nuc(const burn_t& state, jac.set(Fe57, Cr52, 0.0); - scratch = screened_rates(k_He4_Cr53_to_Fe57_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cr53_He4_to_Fe57_reaclib)*Y(He4)*state.rho; jac.set(Fe57, Cr53, scratch); - scratch = screened_rates(k_He4_Cr54_to_n_Fe57_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cr54_He4_to_n_Fe57_derived)*Y(He4)*state.rho; jac.set(Fe57, Cr54, scratch); jac.set(Fe57, Mn50, 0.0); @@ -49795,7 +47604,7 @@ void jac_nuc(const burn_t& state, jac.set(Fe57, Mn53, 0.0); - scratch = screened_rates(k_He4_Mn54_to_p_Fe57_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mn54_He4_to_p_Fe57_derived)*Y(He4)*state.rho; jac.set(Fe57, Mn54, scratch); jac.set(Fe57, Mn55, 0.0); @@ -49808,13 +47617,13 @@ void jac_nuc(const burn_t& state, jac.set(Fe57, Fe55, 0.0); - scratch = screened_rates(k_n_Fe56_to_Fe57_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Fe56_n_to_Fe57_reaclib)*Y(N)*state.rho; jac.set(Fe57, Fe56, scratch); - scratch = -screened_rates(k_Fe57_to_Co57_weaktab) - screened_rates(k_Fe57_to_He4_Cr53_reaclib) - screened_rates(k_Fe57_to_n_Fe56_reaclib) - screened_rates(k_He4_Fe57_to_Ni61_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Fe57_to_n_Ni60_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Fe57_to_Fe58_reaclib)*Y(N)*state.rho - screened_rates(k_n_Fe57_to_He4_Cr54_reaclib)*Y(N)*state.rho - screened_rates(k_p_Fe57_to_Co58_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Fe57_to_He4_Mn54_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Fe57_to_n_Co57_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Fe57_He4_to_Ni61_reaclib)*Y(He4)*state.rho - screened_rates(k_Fe57_He4_to_n_Ni60_derived)*Y(He4)*state.rho - screened_rates(k_Fe57_n_to_Fe58_reaclib)*Y(N)*state.rho - screened_rates(k_Fe57_n_to_He4_Cr54_reaclib)*Y(N)*state.rho - screened_rates(k_Fe57_p_to_Co58_reaclib)*Y(H1)*state.rho - screened_rates(k_Fe57_p_to_He4_Mn54_reaclib)*Y(H1)*state.rho - screened_rates(k_Fe57_p_to_n_Co57_derived)*Y(H1)*state.rho - screened_rates(k_Fe57_to_Co57_beta_neg_weaktab) - screened_rates(k_Fe57_to_He4_Cr53_derived) - screened_rates(k_Fe57_to_n_Fe56_derived); jac.set(Fe57, Fe57, scratch); - scratch = screened_rates(k_Fe58_to_n_Fe57_reaclib); + scratch = screened_rates(k_Fe58_to_n_Fe57_derived); jac.set(Fe57, Fe58, scratch); jac.set(Fe57, Co53, 0.0); @@ -49825,10 +47634,10 @@ void jac_nuc(const burn_t& state, jac.set(Fe57, Co56, 0.0); - scratch = screened_rates(k_Co57_to_Fe57_weaktab) + screened_rates(k_n_Co57_to_p_Fe57_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Co57_n_to_p_Fe57_reaclib)*Y(N)*state.rho + screened_rates(k_Co57_to_Fe57_electron_capture_weaktab); jac.set(Fe57, Co57, scratch); - scratch = screened_rates(k_Co58_to_p_Fe57_reaclib); + scratch = screened_rates(k_Co58_to_p_Fe57_derived); jac.set(Fe57, Co58, scratch); jac.set(Fe57, Co59, 0.0); @@ -49841,10 +47650,10 @@ void jac_nuc(const burn_t& state, jac.set(Fe57, Ni59, 0.0); - scratch = screened_rates(k_n_Ni60_to_He4_Fe57_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ni60_n_to_He4_Fe57_reaclib)*Y(N)*state.rho; jac.set(Fe57, Ni60, scratch); - scratch = screened_rates(k_Ni61_to_He4_Fe57_reaclib); + scratch = screened_rates(k_Ni61_to_He4_Fe57_derived); jac.set(Fe57, Ni61, scratch); jac.set(Fe57, Ni62, 0.0); @@ -49897,17 +47706,17 @@ void jac_nuc(const burn_t& state, jac.set(Fe57, Ge64, 0.0); - scratch = screened_rates(k_n_Co58_to_p_Fe58_reaclib)*Y(Co58)*state.rho + screened_rates(k_n_Fe57_to_Fe58_reaclib)*Y(Fe57)*state.rho + screened_rates(k_n_Ni61_to_He4_Fe58_reaclib)*Y(Ni61)*state.rho; + scratch = screened_rates(k_Co58_n_to_p_Fe58_reaclib)*Y(Co58)*state.rho + screened_rates(k_Fe57_n_to_Fe58_reaclib)*Y(Fe57)*state.rho + screened_rates(k_Ni61_n_to_He4_Fe58_reaclib)*Y(Ni61)*state.rho; jac.set(Fe58, N, scratch); - scratch = -screened_rates(k_p_Fe58_to_Co59_reaclib)*Y(Fe58)*state.rho - screened_rates(k_p_Fe58_to_He4_Mn55_reaclib)*Y(Fe58)*state.rho - screened_rates(k_p_Fe58_to_n_Co58_reaclib)*Y(Fe58)*state.rho; + scratch = -screened_rates(k_Fe58_p_to_Co59_reaclib)*Y(Fe58)*state.rho - screened_rates(k_Fe58_p_to_He4_Mn55_reaclib)*Y(Fe58)*state.rho - screened_rates(k_Fe58_p_to_n_Co58_derived)*Y(Fe58)*state.rho; jac.set(Fe58, H1, scratch); jac.set(Fe58, H2, 0.0); jac.set(Fe58, He3, 0.0); - scratch = screened_rates(k_He4_Cr54_to_Fe58_reaclib)*Y(Cr54)*state.rho - screened_rates(k_He4_Fe58_to_Ni62_reaclib)*Y(Fe58)*state.rho - screened_rates(k_He4_Fe58_to_n_Ni61_reaclib)*Y(Fe58)*state.rho + screened_rates(k_He4_Mn55_to_p_Fe58_reaclib)*Y(Mn55)*state.rho; + scratch = screened_rates(k_Cr54_He4_to_Fe58_reaclib)*Y(Cr54)*state.rho - screened_rates(k_Fe58_He4_to_Ni62_reaclib)*Y(Fe58)*state.rho - screened_rates(k_Fe58_He4_to_n_Ni61_derived)*Y(Fe58)*state.rho + screened_rates(k_Mn55_He4_to_p_Fe58_derived)*Y(Mn55)*state.rho; jac.set(Fe58, He4, scratch); jac.set(Fe58, Li6, 0.0); @@ -50116,7 +47925,7 @@ void jac_nuc(const burn_t& state, jac.set(Fe58, Cr53, 0.0); - scratch = screened_rates(k_He4_Cr54_to_Fe58_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cr54_He4_to_Fe58_reaclib)*Y(He4)*state.rho; jac.set(Fe58, Cr54, scratch); jac.set(Fe58, Mn50, 0.0); @@ -50129,7 +47938,7 @@ void jac_nuc(const burn_t& state, jac.set(Fe58, Mn54, 0.0); - scratch = screened_rates(k_He4_Mn55_to_p_Fe58_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mn55_He4_to_p_Fe58_derived)*Y(He4)*state.rho; jac.set(Fe58, Mn55, scratch); jac.set(Fe58, Fe52, 0.0); @@ -50142,10 +47951,10 @@ void jac_nuc(const burn_t& state, jac.set(Fe58, Fe56, 0.0); - scratch = screened_rates(k_n_Fe57_to_Fe58_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Fe57_n_to_Fe58_reaclib)*Y(N)*state.rho; jac.set(Fe58, Fe57, scratch); - scratch = -screened_rates(k_Fe58_to_Co58_weaktab) - screened_rates(k_Fe58_to_He4_Cr54_reaclib) - screened_rates(k_Fe58_to_n_Fe57_reaclib) - screened_rates(k_He4_Fe58_to_Ni62_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Fe58_to_n_Ni61_reaclib)*Y(He4)*state.rho - screened_rates(k_p_Fe58_to_Co59_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Fe58_to_He4_Mn55_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Fe58_to_n_Co58_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Fe58_He4_to_Ni62_reaclib)*Y(He4)*state.rho - screened_rates(k_Fe58_He4_to_n_Ni61_derived)*Y(He4)*state.rho - screened_rates(k_Fe58_p_to_Co59_reaclib)*Y(H1)*state.rho - screened_rates(k_Fe58_p_to_He4_Mn55_reaclib)*Y(H1)*state.rho - screened_rates(k_Fe58_p_to_n_Co58_derived)*Y(H1)*state.rho - screened_rates(k_Fe58_to_Co58_beta_neg_weaktab) - screened_rates(k_Fe58_to_He4_Cr54_derived) - screened_rates(k_Fe58_to_n_Fe57_derived); jac.set(Fe58, Fe58, scratch); jac.set(Fe58, Co53, 0.0); @@ -50158,10 +47967,10 @@ void jac_nuc(const burn_t& state, jac.set(Fe58, Co57, 0.0); - scratch = screened_rates(k_Co58_to_Fe58_weaktab) + screened_rates(k_n_Co58_to_p_Fe58_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Co58_n_to_p_Fe58_reaclib)*Y(N)*state.rho + screened_rates(k_Co58_to_Fe58_electron_capture_weaktab); jac.set(Fe58, Co58, scratch); - scratch = screened_rates(k_Co59_to_p_Fe58_reaclib); + scratch = screened_rates(k_Co59_to_p_Fe58_derived); jac.set(Fe58, Co59, scratch); jac.set(Fe58, Ni56, 0.0); @@ -50174,10 +47983,10 @@ void jac_nuc(const burn_t& state, jac.set(Fe58, Ni60, 0.0); - scratch = screened_rates(k_n_Ni61_to_He4_Fe58_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ni61_n_to_He4_Fe58_reaclib)*Y(N)*state.rho; jac.set(Fe58, Ni61, scratch); - scratch = screened_rates(k_Ni62_to_He4_Fe58_reaclib); + scratch = screened_rates(k_Ni62_to_He4_Fe58_derived); jac.set(Fe58, Ni62, scratch); jac.set(Fe58, Ni63, 0.0); @@ -50228,17 +48037,17 @@ void jac_nuc(const burn_t& state, jac.set(Fe58, Ge64, 0.0); - scratch = -screened_rates(k_n_Co53_to_Co54_reaclib)*Y(Co53)*state.rho - screened_rates(k_n_Co53_to_He4_Mn50_reaclib)*Y(Co53)*state.rho - screened_rates(k_n_Co53_to_p_Fe53_reaclib)*Y(Co53)*state.rho; + scratch = -screened_rates(k_Co53_n_to_Co54_reaclib)*Y(Co53)*state.rho - screened_rates(k_Co53_n_to_He4_Mn50_reaclib)*Y(Co53)*state.rho - screened_rates(k_Co53_n_to_p_Fe53_reaclib)*Y(Co53)*state.rho; jac.set(Co53, N, scratch); - scratch = screened_rates(k_p_Fe52_to_Co53_reaclib)*Y(Fe52)*state.rho + screened_rates(k_p_Fe53_to_n_Co53_reaclib)*Y(Fe53)*state.rho + screened_rates(k_p_Ni56_to_He4_Co53_reaclib)*Y(Ni56)*state.rho; + scratch = screened_rates(k_Fe52_p_to_Co53_reaclib)*Y(Fe52)*state.rho + screened_rates(k_Fe53_p_to_n_Co53_derived)*Y(Fe53)*state.rho + screened_rates(k_Ni56_p_to_He4_Co53_derived)*Y(Ni56)*state.rho; jac.set(Co53, H1, scratch); jac.set(Co53, H2, 0.0); jac.set(Co53, He3, 0.0); - scratch = -screened_rates(k_He4_Co53_to_Cu57_reaclib)*Y(Co53)*state.rho - screened_rates(k_He4_Co53_to_p_Ni56_reaclib)*Y(Co53)*state.rho + screened_rates(k_He4_Mn50_to_n_Co53_reaclib)*Y(Mn50)*state.rho; + scratch = -screened_rates(k_Co53_He4_to_Cu57_reaclib)*Y(Co53)*state.rho - screened_rates(k_Co53_He4_to_p_Ni56_reaclib)*Y(Co53)*state.rho + screened_rates(k_Mn50_He4_to_n_Co53_derived)*Y(Mn50)*state.rho; jac.set(Co53, He4, scratch); jac.set(Co53, Li6, 0.0); @@ -50449,7 +48258,7 @@ void jac_nuc(const burn_t& state, jac.set(Co53, Cr54, 0.0); - scratch = screened_rates(k_He4_Mn50_to_n_Co53_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mn50_He4_to_n_Co53_derived)*Y(He4)*state.rho; jac.set(Co53, Mn50, scratch); jac.set(Co53, Mn51, 0.0); @@ -50462,10 +48271,10 @@ void jac_nuc(const burn_t& state, jac.set(Co53, Mn55, 0.0); - scratch = screened_rates(k_p_Fe52_to_Co53_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe52_p_to_Co53_reaclib)*Y(H1)*state.rho; jac.set(Co53, Fe52, scratch); - scratch = screened_rates(k_Fe53_to_Co53_weaktab) + screened_rates(k_p_Fe53_to_n_Co53_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe53_p_to_n_Co53_derived)*Y(H1)*state.rho + screened_rates(k_Fe53_to_Co53_beta_neg_weaktab); jac.set(Co53, Fe53, scratch); jac.set(Co53, Fe54, 0.0); @@ -50478,10 +48287,10 @@ void jac_nuc(const burn_t& state, jac.set(Co53, Fe58, 0.0); - scratch = -screened_rates(k_Co53_to_Fe53_weaktab) - screened_rates(k_Co53_to_p_Fe52_reaclib) - screened_rates(k_He4_Co53_to_Cu57_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co53_to_p_Ni56_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Co53_to_Co54_reaclib)*Y(N)*state.rho - screened_rates(k_n_Co53_to_He4_Mn50_reaclib)*Y(N)*state.rho - screened_rates(k_n_Co53_to_p_Fe53_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Co53_He4_to_Cu57_reaclib)*Y(He4)*state.rho - screened_rates(k_Co53_He4_to_p_Ni56_reaclib)*Y(He4)*state.rho - screened_rates(k_Co53_n_to_Co54_reaclib)*Y(N)*state.rho - screened_rates(k_Co53_n_to_He4_Mn50_reaclib)*Y(N)*state.rho - screened_rates(k_Co53_n_to_p_Fe53_reaclib)*Y(N)*state.rho - screened_rates(k_Co53_to_Fe53_electron_capture_weaktab) - screened_rates(k_Co53_to_p_Fe52_derived); jac.set(Co53, Co53, scratch); - scratch = screened_rates(k_Co54_to_n_Co53_reaclib); + scratch = screened_rates(k_Co54_to_n_Co53_derived); jac.set(Co53, Co54, scratch); jac.set(Co53, Co55, 0.0); @@ -50494,7 +48303,7 @@ void jac_nuc(const burn_t& state, jac.set(Co53, Co59, 0.0); - scratch = screened_rates(k_p_Ni56_to_He4_Co53_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni56_p_to_He4_Co53_derived)*Y(H1)*state.rho; jac.set(Co53, Ni56, scratch); jac.set(Co53, Ni57, 0.0); @@ -50513,7 +48322,7 @@ void jac_nuc(const burn_t& state, jac.set(Co53, Ni64, 0.0); - scratch = screened_rates(k_Cu57_to_He4_Co53_reaclib); + scratch = screened_rates(k_Cu57_to_He4_Co53_derived); jac.set(Co53, Cu57, scratch); jac.set(Co53, Cu58, 0.0); @@ -50558,17 +48367,17 @@ void jac_nuc(const burn_t& state, jac.set(Co53, Ge64, 0.0); - scratch = screened_rates(k_n_Co53_to_Co54_reaclib)*Y(Co53)*state.rho - screened_rates(k_n_Co54_to_Co55_reaclib)*Y(Co54)*state.rho - screened_rates(k_n_Co54_to_He4_Mn51_reaclib)*Y(Co54)*state.rho - screened_rates(k_n_Co54_to_p_Fe54_reaclib)*Y(Co54)*state.rho + screened_rates(k_n_Cu57_to_He4_Co54_reaclib)*Y(Cu57)*state.rho; + scratch = screened_rates(k_Co53_n_to_Co54_reaclib)*Y(Co53)*state.rho - screened_rates(k_Co54_n_to_Co55_reaclib)*Y(Co54)*state.rho - screened_rates(k_Co54_n_to_He4_Mn51_reaclib)*Y(Co54)*state.rho - screened_rates(k_Co54_n_to_p_Fe54_reaclib)*Y(Co54)*state.rho + screened_rates(k_Cu57_n_to_He4_Co54_reaclib)*Y(Cu57)*state.rho; jac.set(Co54, N, scratch); - scratch = screened_rates(k_p_Fe53_to_Co54_reaclib)*Y(Fe53)*state.rho + screened_rates(k_p_Fe54_to_n_Co54_reaclib)*Y(Fe54)*state.rho + screened_rates(k_p_Ni57_to_He4_Co54_reaclib)*Y(Ni57)*state.rho; + scratch = screened_rates(k_Fe53_p_to_Co54_reaclib)*Y(Fe53)*state.rho + screened_rates(k_Fe54_p_to_n_Co54_derived)*Y(Fe54)*state.rho + screened_rates(k_Ni57_p_to_He4_Co54_derived)*Y(Ni57)*state.rho; jac.set(Co54, H1, scratch); jac.set(Co54, H2, 0.0); jac.set(Co54, He3, 0.0); - scratch = -screened_rates(k_He4_Co54_to_Cu58_reaclib)*Y(Co54)*state.rho - screened_rates(k_He4_Co54_to_n_Cu57_reaclib)*Y(Co54)*state.rho - screened_rates(k_He4_Co54_to_p_Ni57_reaclib)*Y(Co54)*state.rho + screened_rates(k_He4_Mn50_to_Co54_reaclib)*Y(Mn50)*state.rho + screened_rates(k_He4_Mn51_to_n_Co54_reaclib)*Y(Mn51)*state.rho; + scratch = -screened_rates(k_Co54_He4_to_Cu58_reaclib)*Y(Co54)*state.rho - screened_rates(k_Co54_He4_to_n_Cu57_derived)*Y(Co54)*state.rho - screened_rates(k_Co54_He4_to_p_Ni57_reaclib)*Y(Co54)*state.rho + screened_rates(k_Mn50_He4_to_Co54_reaclib)*Y(Mn50)*state.rho + screened_rates(k_Mn51_He4_to_n_Co54_derived)*Y(Mn51)*state.rho; jac.set(Co54, He4, scratch); jac.set(Co54, Li6, 0.0); @@ -50779,10 +48588,10 @@ void jac_nuc(const burn_t& state, jac.set(Co54, Cr54, 0.0); - scratch = screened_rates(k_He4_Mn50_to_Co54_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mn50_He4_to_Co54_reaclib)*Y(He4)*state.rho; jac.set(Co54, Mn50, scratch); - scratch = screened_rates(k_He4_Mn51_to_n_Co54_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mn51_He4_to_n_Co54_derived)*Y(He4)*state.rho; jac.set(Co54, Mn51, scratch); jac.set(Co54, Mn52, 0.0); @@ -50795,10 +48604,10 @@ void jac_nuc(const burn_t& state, jac.set(Co54, Fe52, 0.0); - scratch = screened_rates(k_p_Fe53_to_Co54_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe53_p_to_Co54_reaclib)*Y(H1)*state.rho; jac.set(Co54, Fe53, scratch); - scratch = screened_rates(k_Fe54_to_Co54_weaktab) + screened_rates(k_p_Fe54_to_n_Co54_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe54_p_to_n_Co54_derived)*Y(H1)*state.rho + screened_rates(k_Fe54_to_Co54_beta_neg_weaktab); jac.set(Co54, Fe54, scratch); jac.set(Co54, Fe55, 0.0); @@ -50809,13 +48618,13 @@ void jac_nuc(const burn_t& state, jac.set(Co54, Fe58, 0.0); - scratch = screened_rates(k_n_Co53_to_Co54_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Co53_n_to_Co54_reaclib)*Y(N)*state.rho; jac.set(Co54, Co53, scratch); - scratch = -screened_rates(k_Co54_to_Fe54_weaktab) - screened_rates(k_Co54_to_He4_Mn50_reaclib) - screened_rates(k_Co54_to_n_Co53_reaclib) - screened_rates(k_Co54_to_p_Fe53_reaclib) - screened_rates(k_He4_Co54_to_Cu58_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co54_to_n_Cu57_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co54_to_p_Ni57_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Co54_to_Co55_reaclib)*Y(N)*state.rho - screened_rates(k_n_Co54_to_He4_Mn51_reaclib)*Y(N)*state.rho - screened_rates(k_n_Co54_to_p_Fe54_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Co54_He4_to_Cu58_reaclib)*Y(He4)*state.rho - screened_rates(k_Co54_He4_to_n_Cu57_derived)*Y(He4)*state.rho - screened_rates(k_Co54_He4_to_p_Ni57_reaclib)*Y(He4)*state.rho - screened_rates(k_Co54_n_to_Co55_reaclib)*Y(N)*state.rho - screened_rates(k_Co54_n_to_He4_Mn51_reaclib)*Y(N)*state.rho - screened_rates(k_Co54_n_to_p_Fe54_reaclib)*Y(N)*state.rho - screened_rates(k_Co54_to_Fe54_electron_capture_weaktab) - screened_rates(k_Co54_to_He4_Mn50_derived) - screened_rates(k_Co54_to_n_Co53_derived) - screened_rates(k_Co54_to_p_Fe53_derived); jac.set(Co54, Co54, scratch); - scratch = screened_rates(k_Co55_to_n_Co54_reaclib); + scratch = screened_rates(k_Co55_to_n_Co54_derived); jac.set(Co54, Co55, scratch); jac.set(Co54, Co56, 0.0); @@ -50828,7 +48637,7 @@ void jac_nuc(const burn_t& state, jac.set(Co54, Ni56, 0.0); - scratch = screened_rates(k_p_Ni57_to_He4_Co54_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni57_p_to_He4_Co54_derived)*Y(H1)*state.rho; jac.set(Co54, Ni57, scratch); jac.set(Co54, Ni58, 0.0); @@ -50845,10 +48654,10 @@ void jac_nuc(const burn_t& state, jac.set(Co54, Ni64, 0.0); - scratch = screened_rates(k_n_Cu57_to_He4_Co54_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cu57_n_to_He4_Co54_reaclib)*Y(N)*state.rho; jac.set(Co54, Cu57, scratch); - scratch = screened_rates(k_Cu58_to_He4_Co54_reaclib); + scratch = screened_rates(k_Cu58_to_He4_Co54_derived); jac.set(Co54, Cu58, scratch); jac.set(Co54, Cu59, 0.0); @@ -50891,17 +48700,17 @@ void jac_nuc(const burn_t& state, jac.set(Co54, Ge64, 0.0); - scratch = screened_rates(k_n_Co54_to_Co55_reaclib)*Y(Co54)*state.rho - screened_rates(k_n_Co55_to_Co56_reaclib)*Y(Co55)*state.rho - screened_rates(k_n_Co55_to_He4_Mn52_reaclib)*Y(Co55)*state.rho - screened_rates(k_n_Co55_to_p_Fe55_reaclib)*Y(Co55)*state.rho + screened_rates(k_n_Cu58_to_He4_Co55_reaclib)*Y(Cu58)*state.rho; + scratch = screened_rates(k_Co54_n_to_Co55_reaclib)*Y(Co54)*state.rho - screened_rates(k_Co55_n_to_Co56_reaclib)*Y(Co55)*state.rho - screened_rates(k_Co55_n_to_He4_Mn52_reaclib)*Y(Co55)*state.rho - screened_rates(k_Co55_n_to_p_Fe55_reaclib)*Y(Co55)*state.rho + screened_rates(k_Cu58_n_to_He4_Co55_reaclib)*Y(Cu58)*state.rho; jac.set(Co55, N, scratch); - scratch = -screened_rates(k_p_Co55_to_He4_Fe52_reaclib)*Y(Co55)*state.rho - screened_rates(k_p_Co55_to_Ni56_reaclib)*Y(Co55)*state.rho + screened_rates(k_p_Fe54_to_Co55_reaclib)*Y(Fe54)*state.rho + screened_rates(k_p_Fe55_to_n_Co55_reaclib)*Y(Fe55)*state.rho + screened_rates(k_p_Ni58_to_He4_Co55_reaclib)*Y(Ni58)*state.rho; + scratch = -screened_rates(k_Co55_p_to_He4_Fe52_derived)*Y(Co55)*state.rho - screened_rates(k_Co55_p_to_Ni56_reaclib)*Y(Co55)*state.rho + screened_rates(k_Fe54_p_to_Co55_reaclib)*Y(Fe54)*state.rho + screened_rates(k_Fe55_p_to_n_Co55_derived)*Y(Fe55)*state.rho + screened_rates(k_Ni58_p_to_He4_Co55_derived)*Y(Ni58)*state.rho; jac.set(Co55, H1, scratch); jac.set(Co55, H2, 0.0); jac.set(Co55, He3, 0.0); - scratch = -screened_rates(k_He4_Co55_to_Cu59_reaclib)*Y(Co55)*state.rho - screened_rates(k_He4_Co55_to_n_Cu58_reaclib)*Y(Co55)*state.rho - screened_rates(k_He4_Co55_to_p_Ni58_reaclib)*Y(Co55)*state.rho + screened_rates(k_He4_Fe52_to_p_Co55_reaclib)*Y(Fe52)*state.rho + screened_rates(k_He4_Mn51_to_Co55_reaclib)*Y(Mn51)*state.rho + screened_rates(k_He4_Mn52_to_n_Co55_reaclib)*Y(Mn52)*state.rho; + scratch = -screened_rates(k_Co55_He4_to_Cu59_reaclib)*Y(Co55)*state.rho - screened_rates(k_Co55_He4_to_n_Cu58_derived)*Y(Co55)*state.rho - screened_rates(k_Co55_He4_to_p_Ni58_reaclib)*Y(Co55)*state.rho + screened_rates(k_Fe52_He4_to_p_Co55_reaclib)*Y(Fe52)*state.rho + screened_rates(k_Mn51_He4_to_Co55_reaclib)*Y(Mn51)*state.rho + screened_rates(k_Mn52_He4_to_n_Co55_derived)*Y(Mn52)*state.rho; jac.set(Co55, He4, scratch); jac.set(Co55, Li6, 0.0); @@ -51114,10 +48923,10 @@ void jac_nuc(const burn_t& state, jac.set(Co55, Mn50, 0.0); - scratch = screened_rates(k_He4_Mn51_to_Co55_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mn51_He4_to_Co55_reaclib)*Y(He4)*state.rho; jac.set(Co55, Mn51, scratch); - scratch = screened_rates(k_He4_Mn52_to_n_Co55_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mn52_He4_to_n_Co55_derived)*Y(He4)*state.rho; jac.set(Co55, Mn52, scratch); jac.set(Co55, Mn53, 0.0); @@ -51126,15 +48935,15 @@ void jac_nuc(const burn_t& state, jac.set(Co55, Mn55, 0.0); - scratch = screened_rates(k_He4_Fe52_to_p_Co55_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Fe52_He4_to_p_Co55_reaclib)*Y(He4)*state.rho; jac.set(Co55, Fe52, scratch); jac.set(Co55, Fe53, 0.0); - scratch = screened_rates(k_p_Fe54_to_Co55_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe54_p_to_Co55_reaclib)*Y(H1)*state.rho; jac.set(Co55, Fe54, scratch); - scratch = screened_rates(k_Fe55_to_Co55_weaktab) + screened_rates(k_p_Fe55_to_n_Co55_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe55_p_to_n_Co55_derived)*Y(H1)*state.rho + screened_rates(k_Fe55_to_Co55_beta_neg_weaktab); jac.set(Co55, Fe55, scratch); jac.set(Co55, Fe56, 0.0); @@ -51145,13 +48954,13 @@ void jac_nuc(const burn_t& state, jac.set(Co55, Co53, 0.0); - scratch = screened_rates(k_n_Co54_to_Co55_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Co54_n_to_Co55_reaclib)*Y(N)*state.rho; jac.set(Co55, Co54, scratch); - scratch = -screened_rates(k_Co55_to_Fe55_weaktab) - screened_rates(k_Co55_to_He4_Mn51_reaclib) - screened_rates(k_Co55_to_n_Co54_reaclib) - screened_rates(k_Co55_to_p_Fe54_reaclib) - screened_rates(k_He4_Co55_to_Cu59_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co55_to_n_Cu58_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co55_to_p_Ni58_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Co55_to_Co56_reaclib)*Y(N)*state.rho - screened_rates(k_n_Co55_to_He4_Mn52_reaclib)*Y(N)*state.rho - screened_rates(k_n_Co55_to_p_Fe55_reaclib)*Y(N)*state.rho - screened_rates(k_p_Co55_to_He4_Fe52_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Co55_to_Ni56_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Co55_He4_to_Cu59_reaclib)*Y(He4)*state.rho - screened_rates(k_Co55_He4_to_n_Cu58_derived)*Y(He4)*state.rho - screened_rates(k_Co55_He4_to_p_Ni58_reaclib)*Y(He4)*state.rho - screened_rates(k_Co55_n_to_Co56_reaclib)*Y(N)*state.rho - screened_rates(k_Co55_n_to_He4_Mn52_reaclib)*Y(N)*state.rho - screened_rates(k_Co55_n_to_p_Fe55_reaclib)*Y(N)*state.rho - screened_rates(k_Co55_p_to_He4_Fe52_derived)*Y(H1)*state.rho - screened_rates(k_Co55_p_to_Ni56_reaclib)*Y(H1)*state.rho - screened_rates(k_Co55_to_Fe55_electron_capture_weaktab) - screened_rates(k_Co55_to_He4_Mn51_derived) - screened_rates(k_Co55_to_n_Co54_derived) - screened_rates(k_Co55_to_p_Fe54_derived); jac.set(Co55, Co55, scratch); - scratch = screened_rates(k_Co56_to_n_Co55_reaclib); + scratch = screened_rates(k_Co56_to_n_Co55_derived); jac.set(Co55, Co56, scratch); jac.set(Co55, Co57, 0.0); @@ -51160,12 +48969,12 @@ void jac_nuc(const burn_t& state, jac.set(Co55, Co59, 0.0); - scratch = screened_rates(k_Ni56_to_p_Co55_reaclib); + scratch = screened_rates(k_Ni56_to_p_Co55_derived); jac.set(Co55, Ni56, scratch); jac.set(Co55, Ni57, 0.0); - scratch = screened_rates(k_p_Ni58_to_He4_Co55_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni58_p_to_He4_Co55_derived)*Y(H1)*state.rho; jac.set(Co55, Ni58, scratch); jac.set(Co55, Ni59, 0.0); @@ -51182,10 +48991,10 @@ void jac_nuc(const burn_t& state, jac.set(Co55, Cu57, 0.0); - scratch = screened_rates(k_n_Cu58_to_He4_Co55_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cu58_n_to_He4_Co55_reaclib)*Y(N)*state.rho; jac.set(Co55, Cu58, scratch); - scratch = screened_rates(k_Cu59_to_He4_Co55_reaclib); + scratch = screened_rates(k_Cu59_to_He4_Co55_derived); jac.set(Co55, Cu59, scratch); jac.set(Co55, Cu60, 0.0); @@ -51226,17 +49035,17 @@ void jac_nuc(const burn_t& state, jac.set(Co55, Ge64, 0.0); - scratch = screened_rates(k_n_Co55_to_Co56_reaclib)*Y(Co55)*state.rho - screened_rates(k_n_Co56_to_Co57_reaclib)*Y(Co56)*state.rho - screened_rates(k_n_Co56_to_He4_Mn53_reaclib)*Y(Co56)*state.rho - screened_rates(k_n_Co56_to_p_Fe56_reaclib)*Y(Co56)*state.rho + screened_rates(k_n_Cu59_to_He4_Co56_reaclib)*Y(Cu59)*state.rho + screened_rates(k_n_Ni56_to_p_Co56_reaclib)*Y(Ni56)*state.rho; + scratch = screened_rates(k_Co55_n_to_Co56_reaclib)*Y(Co55)*state.rho - screened_rates(k_Co56_n_to_Co57_reaclib)*Y(Co56)*state.rho - screened_rates(k_Co56_n_to_He4_Mn53_reaclib)*Y(Co56)*state.rho - screened_rates(k_Co56_n_to_p_Fe56_reaclib)*Y(Co56)*state.rho + screened_rates(k_Cu59_n_to_He4_Co56_reaclib)*Y(Cu59)*state.rho + screened_rates(k_Ni56_n_to_p_Co56_reaclib)*Y(Ni56)*state.rho; jac.set(Co56, N, scratch); - scratch = -screened_rates(k_p_Co56_to_He4_Fe53_reaclib)*Y(Co56)*state.rho - screened_rates(k_p_Co56_to_Ni57_reaclib)*Y(Co56)*state.rho - screened_rates(k_p_Co56_to_n_Ni56_reaclib)*Y(Co56)*state.rho + screened_rates(k_p_Fe55_to_Co56_reaclib)*Y(Fe55)*state.rho + screened_rates(k_p_Fe56_to_n_Co56_reaclib)*Y(Fe56)*state.rho + screened_rates(k_p_Ni59_to_He4_Co56_reaclib)*Y(Ni59)*state.rho; + scratch = -screened_rates(k_Co56_p_to_He4_Fe53_derived)*Y(Co56)*state.rho - screened_rates(k_Co56_p_to_Ni57_reaclib)*Y(Co56)*state.rho - screened_rates(k_Co56_p_to_n_Ni56_derived)*Y(Co56)*state.rho + screened_rates(k_Fe55_p_to_Co56_reaclib)*Y(Fe55)*state.rho + screened_rates(k_Fe56_p_to_n_Co56_derived)*Y(Fe56)*state.rho + screened_rates(k_Ni59_p_to_He4_Co56_derived)*Y(Ni59)*state.rho; jac.set(Co56, H1, scratch); jac.set(Co56, H2, 0.0); jac.set(Co56, He3, 0.0); - scratch = -screened_rates(k_He4_Co56_to_Cu60_reaclib)*Y(Co56)*state.rho - screened_rates(k_He4_Co56_to_n_Cu59_reaclib)*Y(Co56)*state.rho - screened_rates(k_He4_Co56_to_p_Ni59_reaclib)*Y(Co56)*state.rho + screened_rates(k_He4_Fe53_to_p_Co56_reaclib)*Y(Fe53)*state.rho + screened_rates(k_He4_Mn52_to_Co56_reaclib)*Y(Mn52)*state.rho + screened_rates(k_He4_Mn53_to_n_Co56_reaclib)*Y(Mn53)*state.rho; + scratch = -screened_rates(k_Co56_He4_to_Cu60_reaclib)*Y(Co56)*state.rho - screened_rates(k_Co56_He4_to_n_Cu59_derived)*Y(Co56)*state.rho - screened_rates(k_Co56_He4_to_p_Ni59_reaclib)*Y(Co56)*state.rho + screened_rates(k_Fe53_He4_to_p_Co56_reaclib)*Y(Fe53)*state.rho + screened_rates(k_Mn52_He4_to_Co56_reaclib)*Y(Mn52)*state.rho + screened_rates(k_Mn53_He4_to_n_Co56_derived)*Y(Mn53)*state.rho; jac.set(Co56, He4, scratch); jac.set(Co56, Li6, 0.0); @@ -51451,10 +49260,10 @@ void jac_nuc(const burn_t& state, jac.set(Co56, Mn51, 0.0); - scratch = screened_rates(k_He4_Mn52_to_Co56_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mn52_He4_to_Co56_reaclib)*Y(He4)*state.rho; jac.set(Co56, Mn52, scratch); - scratch = screened_rates(k_He4_Mn53_to_n_Co56_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mn53_He4_to_n_Co56_derived)*Y(He4)*state.rho; jac.set(Co56, Mn53, scratch); jac.set(Co56, Mn54, 0.0); @@ -51463,15 +49272,15 @@ void jac_nuc(const burn_t& state, jac.set(Co56, Fe52, 0.0); - scratch = screened_rates(k_He4_Fe53_to_p_Co56_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Fe53_He4_to_p_Co56_reaclib)*Y(He4)*state.rho; jac.set(Co56, Fe53, scratch); jac.set(Co56, Fe54, 0.0); - scratch = screened_rates(k_p_Fe55_to_Co56_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe55_p_to_Co56_reaclib)*Y(H1)*state.rho; jac.set(Co56, Fe55, scratch); - scratch = screened_rates(k_Fe56_to_Co56_weaktab) + screened_rates(k_p_Fe56_to_n_Co56_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe56_p_to_n_Co56_derived)*Y(H1)*state.rho + screened_rates(k_Fe56_to_Co56_beta_neg_weaktab); jac.set(Co56, Fe56, scratch); jac.set(Co56, Fe57, 0.0); @@ -51482,28 +49291,28 @@ void jac_nuc(const burn_t& state, jac.set(Co56, Co54, 0.0); - scratch = screened_rates(k_n_Co55_to_Co56_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Co55_n_to_Co56_reaclib)*Y(N)*state.rho; jac.set(Co56, Co55, scratch); - scratch = -screened_rates(k_Co56_to_Fe56_weaktab) - screened_rates(k_Co56_to_He4_Mn52_reaclib) - screened_rates(k_Co56_to_Ni56_weaktab) - screened_rates(k_Co56_to_n_Co55_reaclib) - screened_rates(k_Co56_to_p_Fe55_reaclib) - screened_rates(k_He4_Co56_to_Cu60_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co56_to_n_Cu59_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co56_to_p_Ni59_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Co56_to_Co57_reaclib)*Y(N)*state.rho - screened_rates(k_n_Co56_to_He4_Mn53_reaclib)*Y(N)*state.rho - screened_rates(k_n_Co56_to_p_Fe56_reaclib)*Y(N)*state.rho - screened_rates(k_p_Co56_to_He4_Fe53_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Co56_to_Ni57_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Co56_to_n_Ni56_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Co56_He4_to_Cu60_reaclib)*Y(He4)*state.rho - screened_rates(k_Co56_He4_to_n_Cu59_derived)*Y(He4)*state.rho - screened_rates(k_Co56_He4_to_p_Ni59_reaclib)*Y(He4)*state.rho - screened_rates(k_Co56_n_to_Co57_reaclib)*Y(N)*state.rho - screened_rates(k_Co56_n_to_He4_Mn53_reaclib)*Y(N)*state.rho - screened_rates(k_Co56_n_to_p_Fe56_reaclib)*Y(N)*state.rho - screened_rates(k_Co56_p_to_He4_Fe53_derived)*Y(H1)*state.rho - screened_rates(k_Co56_p_to_Ni57_reaclib)*Y(H1)*state.rho - screened_rates(k_Co56_p_to_n_Ni56_derived)*Y(H1)*state.rho - screened_rates(k_Co56_to_Fe56_electron_capture_weaktab) - screened_rates(k_Co56_to_He4_Mn52_derived) - screened_rates(k_Co56_to_Ni56_beta_neg_weaktab) - screened_rates(k_Co56_to_n_Co55_derived) - screened_rates(k_Co56_to_p_Fe55_derived); jac.set(Co56, Co56, scratch); - scratch = screened_rates(k_Co57_to_n_Co56_reaclib); + scratch = screened_rates(k_Co57_to_n_Co56_derived); jac.set(Co56, Co57, scratch); jac.set(Co56, Co58, 0.0); jac.set(Co56, Co59, 0.0); - scratch = screened_rates(k_Ni56_to_Co56_weaktab) + screened_rates(k_n_Ni56_to_p_Co56_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ni56_n_to_p_Co56_reaclib)*Y(N)*state.rho + screened_rates(k_Ni56_to_Co56_electron_capture_weaktab); jac.set(Co56, Ni56, scratch); - scratch = screened_rates(k_Ni57_to_p_Co56_reaclib); + scratch = screened_rates(k_Ni57_to_p_Co56_derived); jac.set(Co56, Ni57, scratch); jac.set(Co56, Ni58, 0.0); - scratch = screened_rates(k_p_Ni59_to_He4_Co56_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni59_p_to_He4_Co56_derived)*Y(H1)*state.rho; jac.set(Co56, Ni59, scratch); jac.set(Co56, Ni60, 0.0); @@ -51520,10 +49329,10 @@ void jac_nuc(const burn_t& state, jac.set(Co56, Cu58, 0.0); - scratch = screened_rates(k_n_Cu59_to_He4_Co56_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cu59_n_to_He4_Co56_reaclib)*Y(N)*state.rho; jac.set(Co56, Cu59, scratch); - scratch = screened_rates(k_Cu60_to_He4_Co56_reaclib); + scratch = screened_rates(k_Cu60_to_He4_Co56_derived); jac.set(Co56, Cu60, scratch); jac.set(Co56, Cu61, 0.0); @@ -51562,17 +49371,17 @@ void jac_nuc(const burn_t& state, jac.set(Co56, Ge64, 0.0); - scratch = screened_rates(k_n_Co56_to_Co57_reaclib)*Y(Co56)*state.rho - screened_rates(k_n_Co57_to_Co58_reaclib)*Y(Co57)*state.rho - screened_rates(k_n_Co57_to_He4_Mn54_reaclib)*Y(Co57)*state.rho - screened_rates(k_n_Co57_to_p_Fe57_reaclib)*Y(Co57)*state.rho + screened_rates(k_n_Cu60_to_He4_Co57_reaclib)*Y(Cu60)*state.rho + screened_rates(k_n_Ni57_to_p_Co57_reaclib)*Y(Ni57)*state.rho; + scratch = screened_rates(k_Co56_n_to_Co57_reaclib)*Y(Co56)*state.rho - screened_rates(k_Co57_n_to_Co58_reaclib)*Y(Co57)*state.rho - screened_rates(k_Co57_n_to_He4_Mn54_reaclib)*Y(Co57)*state.rho - screened_rates(k_Co57_n_to_p_Fe57_reaclib)*Y(Co57)*state.rho + screened_rates(k_Cu60_n_to_He4_Co57_reaclib)*Y(Cu60)*state.rho + screened_rates(k_Ni57_n_to_p_Co57_reaclib)*Y(Ni57)*state.rho; jac.set(Co57, N, scratch); - scratch = -screened_rates(k_p_Co57_to_He4_Fe54_reaclib)*Y(Co57)*state.rho - screened_rates(k_p_Co57_to_Ni58_reaclib)*Y(Co57)*state.rho - screened_rates(k_p_Co57_to_n_Ni57_reaclib)*Y(Co57)*state.rho + screened_rates(k_p_Fe56_to_Co57_reaclib)*Y(Fe56)*state.rho + screened_rates(k_p_Fe57_to_n_Co57_reaclib)*Y(Fe57)*state.rho + screened_rates(k_p_Ni60_to_He4_Co57_reaclib)*Y(Ni60)*state.rho; + scratch = -screened_rates(k_Co57_p_to_He4_Fe54_reaclib)*Y(Co57)*state.rho - screened_rates(k_Co57_p_to_Ni58_reaclib)*Y(Co57)*state.rho - screened_rates(k_Co57_p_to_n_Ni57_derived)*Y(Co57)*state.rho + screened_rates(k_Fe56_p_to_Co57_reaclib)*Y(Fe56)*state.rho + screened_rates(k_Fe57_p_to_n_Co57_derived)*Y(Fe57)*state.rho + screened_rates(k_Ni60_p_to_He4_Co57_derived)*Y(Ni60)*state.rho; jac.set(Co57, H1, scratch); jac.set(Co57, H2, 0.0); jac.set(Co57, He3, 0.0); - scratch = -screened_rates(k_He4_Co57_to_Cu61_reaclib)*Y(Co57)*state.rho - screened_rates(k_He4_Co57_to_n_Cu60_reaclib)*Y(Co57)*state.rho - screened_rates(k_He4_Co57_to_p_Ni60_reaclib)*Y(Co57)*state.rho + screened_rates(k_He4_Fe54_to_p_Co57_reaclib)*Y(Fe54)*state.rho + screened_rates(k_He4_Mn53_to_Co57_reaclib)*Y(Mn53)*state.rho + screened_rates(k_He4_Mn54_to_n_Co57_reaclib)*Y(Mn54)*state.rho; + scratch = -screened_rates(k_Co57_He4_to_Cu61_reaclib)*Y(Co57)*state.rho - screened_rates(k_Co57_He4_to_n_Cu60_derived)*Y(Co57)*state.rho - screened_rates(k_Co57_He4_to_p_Ni60_reaclib)*Y(Co57)*state.rho + screened_rates(k_Fe54_He4_to_p_Co57_derived)*Y(Fe54)*state.rho + screened_rates(k_Mn53_He4_to_Co57_reaclib)*Y(Mn53)*state.rho + screened_rates(k_Mn54_He4_to_n_Co57_derived)*Y(Mn54)*state.rho; jac.set(Co57, He4, scratch); jac.set(Co57, Li6, 0.0); @@ -51789,10 +49598,10 @@ void jac_nuc(const burn_t& state, jac.set(Co57, Mn52, 0.0); - scratch = screened_rates(k_He4_Mn53_to_Co57_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mn53_He4_to_Co57_reaclib)*Y(He4)*state.rho; jac.set(Co57, Mn53, scratch); - scratch = screened_rates(k_He4_Mn54_to_n_Co57_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mn54_He4_to_n_Co57_derived)*Y(He4)*state.rho; jac.set(Co57, Mn54, scratch); jac.set(Co57, Mn55, 0.0); @@ -51801,15 +49610,15 @@ void jac_nuc(const burn_t& state, jac.set(Co57, Fe53, 0.0); - scratch = screened_rates(k_He4_Fe54_to_p_Co57_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Fe54_He4_to_p_Co57_derived)*Y(He4)*state.rho; jac.set(Co57, Fe54, scratch); jac.set(Co57, Fe55, 0.0); - scratch = screened_rates(k_p_Fe56_to_Co57_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe56_p_to_Co57_reaclib)*Y(H1)*state.rho; jac.set(Co57, Fe56, scratch); - scratch = screened_rates(k_Fe57_to_Co57_weaktab) + screened_rates(k_p_Fe57_to_n_Co57_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe57_p_to_n_Co57_derived)*Y(H1)*state.rho + screened_rates(k_Fe57_to_Co57_beta_neg_weaktab); jac.set(Co57, Fe57, scratch); jac.set(Co57, Fe58, 0.0); @@ -51820,28 +49629,28 @@ void jac_nuc(const burn_t& state, jac.set(Co57, Co55, 0.0); - scratch = screened_rates(k_n_Co56_to_Co57_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Co56_n_to_Co57_reaclib)*Y(N)*state.rho; jac.set(Co57, Co56, scratch); - scratch = -screened_rates(k_Co57_to_Fe57_weaktab) - screened_rates(k_Co57_to_He4_Mn53_reaclib) - screened_rates(k_Co57_to_Ni57_weaktab) - screened_rates(k_Co57_to_n_Co56_reaclib) - screened_rates(k_Co57_to_p_Fe56_reaclib) - screened_rates(k_He4_Co57_to_Cu61_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co57_to_n_Cu60_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co57_to_p_Ni60_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Co57_to_Co58_reaclib)*Y(N)*state.rho - screened_rates(k_n_Co57_to_He4_Mn54_reaclib)*Y(N)*state.rho - screened_rates(k_n_Co57_to_p_Fe57_reaclib)*Y(N)*state.rho - screened_rates(k_p_Co57_to_He4_Fe54_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Co57_to_Ni58_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Co57_to_n_Ni57_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Co57_He4_to_Cu61_reaclib)*Y(He4)*state.rho - screened_rates(k_Co57_He4_to_n_Cu60_derived)*Y(He4)*state.rho - screened_rates(k_Co57_He4_to_p_Ni60_reaclib)*Y(He4)*state.rho - screened_rates(k_Co57_n_to_Co58_reaclib)*Y(N)*state.rho - screened_rates(k_Co57_n_to_He4_Mn54_reaclib)*Y(N)*state.rho - screened_rates(k_Co57_n_to_p_Fe57_reaclib)*Y(N)*state.rho - screened_rates(k_Co57_p_to_He4_Fe54_reaclib)*Y(H1)*state.rho - screened_rates(k_Co57_p_to_Ni58_reaclib)*Y(H1)*state.rho - screened_rates(k_Co57_p_to_n_Ni57_derived)*Y(H1)*state.rho - screened_rates(k_Co57_to_Fe57_electron_capture_weaktab) - screened_rates(k_Co57_to_He4_Mn53_derived) - screened_rates(k_Co57_to_Ni57_beta_neg_weaktab) - screened_rates(k_Co57_to_n_Co56_derived) - screened_rates(k_Co57_to_p_Fe56_derived); jac.set(Co57, Co57, scratch); - scratch = screened_rates(k_Co58_to_n_Co57_reaclib); + scratch = screened_rates(k_Co58_to_n_Co57_derived); jac.set(Co57, Co58, scratch); jac.set(Co57, Co59, 0.0); jac.set(Co57, Ni56, 0.0); - scratch = screened_rates(k_Ni57_to_Co57_weaktab) + screened_rates(k_n_Ni57_to_p_Co57_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ni57_n_to_p_Co57_reaclib)*Y(N)*state.rho + screened_rates(k_Ni57_to_Co57_electron_capture_weaktab); jac.set(Co57, Ni57, scratch); - scratch = screened_rates(k_Ni58_to_p_Co57_reaclib); + scratch = screened_rates(k_Ni58_to_p_Co57_derived); jac.set(Co57, Ni58, scratch); jac.set(Co57, Ni59, 0.0); - scratch = screened_rates(k_p_Ni60_to_He4_Co57_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni60_p_to_He4_Co57_derived)*Y(H1)*state.rho; jac.set(Co57, Ni60, scratch); jac.set(Co57, Ni61, 0.0); @@ -51858,10 +49667,10 @@ void jac_nuc(const burn_t& state, jac.set(Co57, Cu59, 0.0); - scratch = screened_rates(k_n_Cu60_to_He4_Co57_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cu60_n_to_He4_Co57_reaclib)*Y(N)*state.rho; jac.set(Co57, Cu60, scratch); - scratch = screened_rates(k_Cu61_to_He4_Co57_reaclib); + scratch = screened_rates(k_Cu61_to_He4_Co57_derived); jac.set(Co57, Cu61, scratch); jac.set(Co57, Cu62, 0.0); @@ -51898,17 +49707,17 @@ void jac_nuc(const burn_t& state, jac.set(Co57, Ge64, 0.0); - scratch = screened_rates(k_n_Co57_to_Co58_reaclib)*Y(Co57)*state.rho - screened_rates(k_n_Co58_to_Co59_reaclib)*Y(Co58)*state.rho - screened_rates(k_n_Co58_to_He4_Mn55_reaclib)*Y(Co58)*state.rho - screened_rates(k_n_Co58_to_p_Fe58_reaclib)*Y(Co58)*state.rho + screened_rates(k_n_Cu61_to_He4_Co58_reaclib)*Y(Cu61)*state.rho + screened_rates(k_n_Ni58_to_p_Co58_reaclib)*Y(Ni58)*state.rho; + scratch = screened_rates(k_Co57_n_to_Co58_reaclib)*Y(Co57)*state.rho - screened_rates(k_Co58_n_to_Co59_reaclib)*Y(Co58)*state.rho - screened_rates(k_Co58_n_to_He4_Mn55_reaclib)*Y(Co58)*state.rho - screened_rates(k_Co58_n_to_p_Fe58_reaclib)*Y(Co58)*state.rho + screened_rates(k_Cu61_n_to_He4_Co58_reaclib)*Y(Cu61)*state.rho + screened_rates(k_Ni58_n_to_p_Co58_reaclib)*Y(Ni58)*state.rho; jac.set(Co58, N, scratch); - scratch = -screened_rates(k_p_Co58_to_He4_Fe55_reaclib)*Y(Co58)*state.rho - screened_rates(k_p_Co58_to_Ni59_reaclib)*Y(Co58)*state.rho - screened_rates(k_p_Co58_to_n_Ni58_reaclib)*Y(Co58)*state.rho + screened_rates(k_p_Fe57_to_Co58_reaclib)*Y(Fe57)*state.rho + screened_rates(k_p_Fe58_to_n_Co58_reaclib)*Y(Fe58)*state.rho + screened_rates(k_p_Ni61_to_He4_Co58_reaclib)*Y(Ni61)*state.rho; + scratch = -screened_rates(k_Co58_p_to_He4_Fe55_reaclib)*Y(Co58)*state.rho - screened_rates(k_Co58_p_to_Ni59_reaclib)*Y(Co58)*state.rho - screened_rates(k_Co58_p_to_n_Ni58_derived)*Y(Co58)*state.rho + screened_rates(k_Fe57_p_to_Co58_reaclib)*Y(Fe57)*state.rho + screened_rates(k_Fe58_p_to_n_Co58_derived)*Y(Fe58)*state.rho + screened_rates(k_Ni61_p_to_He4_Co58_reaclib)*Y(Ni61)*state.rho; jac.set(Co58, H1, scratch); jac.set(Co58, H2, 0.0); jac.set(Co58, He3, 0.0); - scratch = -screened_rates(k_He4_Co58_to_Cu62_reaclib)*Y(Co58)*state.rho - screened_rates(k_He4_Co58_to_n_Cu61_reaclib)*Y(Co58)*state.rho - screened_rates(k_He4_Co58_to_p_Ni61_reaclib)*Y(Co58)*state.rho + screened_rates(k_He4_Fe55_to_p_Co58_reaclib)*Y(Fe55)*state.rho + screened_rates(k_He4_Mn54_to_Co58_reaclib)*Y(Mn54)*state.rho + screened_rates(k_He4_Mn55_to_n_Co58_reaclib)*Y(Mn55)*state.rho; + scratch = -screened_rates(k_Co58_He4_to_Cu62_reaclib)*Y(Co58)*state.rho - screened_rates(k_Co58_He4_to_n_Cu61_derived)*Y(Co58)*state.rho - screened_rates(k_Co58_He4_to_p_Ni61_derived)*Y(Co58)*state.rho + screened_rates(k_Fe55_He4_to_p_Co58_derived)*Y(Fe55)*state.rho + screened_rates(k_Mn54_He4_to_Co58_reaclib)*Y(Mn54)*state.rho + screened_rates(k_Mn55_He4_to_n_Co58_derived)*Y(Mn55)*state.rho; jac.set(Co58, He4, scratch); jac.set(Co58, Li6, 0.0); @@ -52127,10 +49936,10 @@ void jac_nuc(const burn_t& state, jac.set(Co58, Mn53, 0.0); - scratch = screened_rates(k_He4_Mn54_to_Co58_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mn54_He4_to_Co58_reaclib)*Y(He4)*state.rho; jac.set(Co58, Mn54, scratch); - scratch = screened_rates(k_He4_Mn55_to_n_Co58_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mn55_He4_to_n_Co58_derived)*Y(He4)*state.rho; jac.set(Co58, Mn55, scratch); jac.set(Co58, Fe52, 0.0); @@ -52139,15 +49948,15 @@ void jac_nuc(const burn_t& state, jac.set(Co58, Fe54, 0.0); - scratch = screened_rates(k_He4_Fe55_to_p_Co58_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Fe55_He4_to_p_Co58_derived)*Y(He4)*state.rho; jac.set(Co58, Fe55, scratch); jac.set(Co58, Fe56, 0.0); - scratch = screened_rates(k_p_Fe57_to_Co58_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe57_p_to_Co58_reaclib)*Y(H1)*state.rho; jac.set(Co58, Fe57, scratch); - scratch = screened_rates(k_Fe58_to_Co58_weaktab) + screened_rates(k_p_Fe58_to_n_Co58_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe58_p_to_n_Co58_derived)*Y(H1)*state.rho + screened_rates(k_Fe58_to_Co58_beta_neg_weaktab); jac.set(Co58, Fe58, scratch); jac.set(Co58, Co53, 0.0); @@ -52158,28 +49967,28 @@ void jac_nuc(const burn_t& state, jac.set(Co58, Co56, 0.0); - scratch = screened_rates(k_n_Co57_to_Co58_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Co57_n_to_Co58_reaclib)*Y(N)*state.rho; jac.set(Co58, Co57, scratch); - scratch = -screened_rates(k_Co58_to_Fe58_weaktab) - screened_rates(k_Co58_to_He4_Mn54_reaclib) - screened_rates(k_Co58_to_Ni58_weaktab) - screened_rates(k_Co58_to_n_Co57_reaclib) - screened_rates(k_Co58_to_p_Fe57_reaclib) - screened_rates(k_He4_Co58_to_Cu62_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co58_to_n_Cu61_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co58_to_p_Ni61_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Co58_to_Co59_reaclib)*Y(N)*state.rho - screened_rates(k_n_Co58_to_He4_Mn55_reaclib)*Y(N)*state.rho - screened_rates(k_n_Co58_to_p_Fe58_reaclib)*Y(N)*state.rho - screened_rates(k_p_Co58_to_He4_Fe55_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Co58_to_Ni59_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Co58_to_n_Ni58_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Co58_He4_to_Cu62_reaclib)*Y(He4)*state.rho - screened_rates(k_Co58_He4_to_n_Cu61_derived)*Y(He4)*state.rho - screened_rates(k_Co58_He4_to_p_Ni61_derived)*Y(He4)*state.rho - screened_rates(k_Co58_n_to_Co59_reaclib)*Y(N)*state.rho - screened_rates(k_Co58_n_to_He4_Mn55_reaclib)*Y(N)*state.rho - screened_rates(k_Co58_n_to_p_Fe58_reaclib)*Y(N)*state.rho - screened_rates(k_Co58_p_to_He4_Fe55_reaclib)*Y(H1)*state.rho - screened_rates(k_Co58_p_to_Ni59_reaclib)*Y(H1)*state.rho - screened_rates(k_Co58_p_to_n_Ni58_derived)*Y(H1)*state.rho - screened_rates(k_Co58_to_Fe58_electron_capture_weaktab) - screened_rates(k_Co58_to_He4_Mn54_derived) - screened_rates(k_Co58_to_Ni58_beta_neg_weaktab) - screened_rates(k_Co58_to_n_Co57_derived) - screened_rates(k_Co58_to_p_Fe57_derived); jac.set(Co58, Co58, scratch); - scratch = screened_rates(k_Co59_to_n_Co58_reaclib); + scratch = screened_rates(k_Co59_to_n_Co58_derived); jac.set(Co58, Co59, scratch); jac.set(Co58, Ni56, 0.0); jac.set(Co58, Ni57, 0.0); - scratch = screened_rates(k_Ni58_to_Co58_weaktab) + screened_rates(k_n_Ni58_to_p_Co58_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ni58_n_to_p_Co58_reaclib)*Y(N)*state.rho + screened_rates(k_Ni58_to_Co58_electron_capture_weaktab); jac.set(Co58, Ni58, scratch); - scratch = screened_rates(k_Ni59_to_p_Co58_reaclib); + scratch = screened_rates(k_Ni59_to_p_Co58_derived); jac.set(Co58, Ni59, scratch); jac.set(Co58, Ni60, 0.0); - scratch = screened_rates(k_p_Ni61_to_He4_Co58_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni61_p_to_He4_Co58_reaclib)*Y(H1)*state.rho; jac.set(Co58, Ni61, scratch); jac.set(Co58, Ni62, 0.0); @@ -52196,10 +50005,10 @@ void jac_nuc(const burn_t& state, jac.set(Co58, Cu60, 0.0); - scratch = screened_rates(k_n_Cu61_to_He4_Co58_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cu61_n_to_He4_Co58_reaclib)*Y(N)*state.rho; jac.set(Co58, Cu61, scratch); - scratch = screened_rates(k_Cu62_to_He4_Co58_reaclib); + scratch = screened_rates(k_Cu62_to_He4_Co58_derived); jac.set(Co58, Cu62, scratch); jac.set(Co58, Cu63, 0.0); @@ -52234,17 +50043,17 @@ void jac_nuc(const burn_t& state, jac.set(Co58, Ge64, 0.0); - scratch = screened_rates(k_n_Co58_to_Co59_reaclib)*Y(Co58)*state.rho + screened_rates(k_n_Cu62_to_He4_Co59_reaclib)*Y(Cu62)*state.rho + screened_rates(k_n_Ni59_to_p_Co59_reaclib)*Y(Ni59)*state.rho; + scratch = screened_rates(k_Co58_n_to_Co59_reaclib)*Y(Co58)*state.rho + screened_rates(k_Cu62_n_to_He4_Co59_reaclib)*Y(Cu62)*state.rho + screened_rates(k_Ni59_n_to_p_Co59_reaclib)*Y(Ni59)*state.rho; jac.set(Co59, N, scratch); - scratch = -screened_rates(k_p_Co59_to_He4_Fe56_reaclib)*Y(Co59)*state.rho - screened_rates(k_p_Co59_to_Ni60_reaclib)*Y(Co59)*state.rho - screened_rates(k_p_Co59_to_n_Ni59_reaclib)*Y(Co59)*state.rho + screened_rates(k_p_Fe58_to_Co59_reaclib)*Y(Fe58)*state.rho + screened_rates(k_p_Ni62_to_He4_Co59_reaclib)*Y(Ni62)*state.rho; + scratch = -screened_rates(k_Co59_p_to_He4_Fe56_reaclib)*Y(Co59)*state.rho - screened_rates(k_Co59_p_to_Ni60_reaclib)*Y(Co59)*state.rho - screened_rates(k_Co59_p_to_n_Ni59_derived)*Y(Co59)*state.rho + screened_rates(k_Fe58_p_to_Co59_reaclib)*Y(Fe58)*state.rho + screened_rates(k_Ni62_p_to_He4_Co59_reaclib)*Y(Ni62)*state.rho; jac.set(Co59, H1, scratch); jac.set(Co59, H2, 0.0); jac.set(Co59, He3, 0.0); - scratch = -screened_rates(k_He4_Co59_to_Cu63_reaclib)*Y(Co59)*state.rho - screened_rates(k_He4_Co59_to_n_Cu62_reaclib)*Y(Co59)*state.rho - screened_rates(k_He4_Co59_to_p_Ni62_reaclib)*Y(Co59)*state.rho + screened_rates(k_He4_Fe56_to_p_Co59_reaclib)*Y(Fe56)*state.rho + screened_rates(k_He4_Mn55_to_Co59_reaclib)*Y(Mn55)*state.rho; + scratch = -screened_rates(k_Co59_He4_to_Cu63_reaclib)*Y(Co59)*state.rho - screened_rates(k_Co59_He4_to_n_Cu62_derived)*Y(Co59)*state.rho - screened_rates(k_Co59_He4_to_p_Ni62_derived)*Y(Co59)*state.rho + screened_rates(k_Fe56_He4_to_p_Co59_derived)*Y(Fe56)*state.rho + screened_rates(k_Mn55_He4_to_Co59_reaclib)*Y(Mn55)*state.rho; jac.set(Co59, He4, scratch); jac.set(Co59, Li6, 0.0); @@ -52465,7 +50274,7 @@ void jac_nuc(const burn_t& state, jac.set(Co59, Mn54, 0.0); - scratch = screened_rates(k_He4_Mn55_to_Co59_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Mn55_He4_to_Co59_reaclib)*Y(He4)*state.rho; jac.set(Co59, Mn55, scratch); jac.set(Co59, Fe52, 0.0); @@ -52476,12 +50285,12 @@ void jac_nuc(const burn_t& state, jac.set(Co59, Fe55, 0.0); - scratch = screened_rates(k_He4_Fe56_to_p_Co59_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Fe56_He4_to_p_Co59_derived)*Y(He4)*state.rho; jac.set(Co59, Fe56, scratch); jac.set(Co59, Fe57, 0.0); - scratch = screened_rates(k_p_Fe58_to_Co59_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Fe58_p_to_Co59_reaclib)*Y(H1)*state.rho; jac.set(Co59, Fe58, scratch); jac.set(Co59, Co53, 0.0); @@ -52494,10 +50303,10 @@ void jac_nuc(const burn_t& state, jac.set(Co59, Co57, 0.0); - scratch = screened_rates(k_n_Co58_to_Co59_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Co58_n_to_Co59_reaclib)*Y(N)*state.rho; jac.set(Co59, Co58, scratch); - scratch = -screened_rates(k_Co59_to_He4_Mn55_reaclib) - screened_rates(k_Co59_to_Ni59_weaktab) - screened_rates(k_Co59_to_n_Co58_reaclib) - screened_rates(k_Co59_to_p_Fe58_reaclib) - screened_rates(k_He4_Co59_to_Cu63_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co59_to_n_Cu62_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Co59_to_p_Ni62_reaclib)*Y(He4)*state.rho - screened_rates(k_p_Co59_to_He4_Fe56_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Co59_to_Ni60_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Co59_to_n_Ni59_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Co59_He4_to_Cu63_reaclib)*Y(He4)*state.rho - screened_rates(k_Co59_He4_to_n_Cu62_derived)*Y(He4)*state.rho - screened_rates(k_Co59_He4_to_p_Ni62_derived)*Y(He4)*state.rho - screened_rates(k_Co59_p_to_He4_Fe56_reaclib)*Y(H1)*state.rho - screened_rates(k_Co59_p_to_Ni60_reaclib)*Y(H1)*state.rho - screened_rates(k_Co59_p_to_n_Ni59_derived)*Y(H1)*state.rho - screened_rates(k_Co59_to_He4_Mn55_derived) - screened_rates(k_Co59_to_Ni59_beta_neg_weaktab) - screened_rates(k_Co59_to_n_Co58_derived) - screened_rates(k_Co59_to_p_Fe58_derived); jac.set(Co59, Co59, scratch); jac.set(Co59, Ni56, 0.0); @@ -52506,15 +50315,15 @@ void jac_nuc(const burn_t& state, jac.set(Co59, Ni58, 0.0); - scratch = screened_rates(k_Ni59_to_Co59_weaktab) + screened_rates(k_n_Ni59_to_p_Co59_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ni59_n_to_p_Co59_reaclib)*Y(N)*state.rho + screened_rates(k_Ni59_to_Co59_electron_capture_weaktab); jac.set(Co59, Ni59, scratch); - scratch = screened_rates(k_Ni60_to_p_Co59_reaclib); + scratch = screened_rates(k_Ni60_to_p_Co59_derived); jac.set(Co59, Ni60, scratch); jac.set(Co59, Ni61, 0.0); - scratch = screened_rates(k_p_Ni62_to_He4_Co59_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni62_p_to_He4_Co59_reaclib)*Y(H1)*state.rho; jac.set(Co59, Ni62, scratch); jac.set(Co59, Ni63, 0.0); @@ -52531,10 +50340,10 @@ void jac_nuc(const burn_t& state, jac.set(Co59, Cu61, 0.0); - scratch = screened_rates(k_n_Cu62_to_He4_Co59_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cu62_n_to_He4_Co59_reaclib)*Y(N)*state.rho; jac.set(Co59, Cu62, scratch); - scratch = screened_rates(k_Cu63_to_He4_Co59_reaclib); + scratch = screened_rates(k_Cu63_to_He4_Co59_derived); jac.set(Co59, Cu63, scratch); jac.set(Co59, Cu64, 0.0); @@ -52567,17 +50376,17 @@ void jac_nuc(const burn_t& state, jac.set(Co59, Ge64, 0.0); - scratch = -screened_rates(k_n_Ni56_to_He4_Fe53_reaclib)*Y(Ni56)*state.rho - screened_rates(k_n_Ni56_to_Ni57_reaclib)*Y(Ni56)*state.rho - screened_rates(k_n_Ni56_to_p_Co56_reaclib)*Y(Ni56)*state.rho + screened_rates(k_n_Zn59_to_He4_Ni56_reaclib)*Y(Zn59)*state.rho; + scratch = -screened_rates(k_Ni56_n_to_He4_Fe53_reaclib)*Y(Ni56)*state.rho - screened_rates(k_Ni56_n_to_Ni57_reaclib)*Y(Ni56)*state.rho - screened_rates(k_Ni56_n_to_p_Co56_reaclib)*Y(Ni56)*state.rho + screened_rates(k_Zn59_n_to_He4_Ni56_reaclib)*Y(Zn59)*state.rho; jac.set(Ni56, N, scratch); - scratch = screened_rates(k_p_Co55_to_Ni56_reaclib)*Y(Co55)*state.rho + screened_rates(k_p_Co56_to_n_Ni56_reaclib)*Y(Co56)*state.rho + screened_rates(k_p_Cu59_to_He4_Ni56_reaclib)*Y(Cu59)*state.rho - screened_rates(k_p_Ni56_to_Cu57_reaclib)*Y(Ni56)*state.rho - screened_rates(k_p_Ni56_to_He4_Co53_reaclib)*Y(Ni56)*state.rho; + scratch = screened_rates(k_Co55_p_to_Ni56_reaclib)*Y(Co55)*state.rho + screened_rates(k_Co56_p_to_n_Ni56_derived)*Y(Co56)*state.rho + screened_rates(k_Cu59_p_to_He4_Ni56_reaclib)*Y(Cu59)*state.rho - screened_rates(k_Ni56_p_to_Cu57_reaclib)*Y(Ni56)*state.rho - screened_rates(k_Ni56_p_to_He4_Co53_derived)*Y(Ni56)*state.rho; jac.set(Ni56, H1, scratch); jac.set(Ni56, H2, 0.0); jac.set(Ni56, He3, 0.0); - scratch = screened_rates(k_He4_Co53_to_p_Ni56_reaclib)*Y(Co53)*state.rho + screened_rates(k_He4_Fe52_to_Ni56_reaclib)*Y(Fe52)*state.rho + screened_rates(k_He4_Fe53_to_n_Ni56_reaclib)*Y(Fe53)*state.rho - screened_rates(k_He4_Ni56_to_Zn60_reaclib)*Y(Ni56)*state.rho - screened_rates(k_He4_Ni56_to_n_Zn59_reaclib)*Y(Ni56)*state.rho - screened_rates(k_He4_Ni56_to_p_Cu59_reaclib)*Y(Ni56)*state.rho; + scratch = screened_rates(k_Co53_He4_to_p_Ni56_reaclib)*Y(Co53)*state.rho + screened_rates(k_Fe52_He4_to_Ni56_reaclib)*Y(Fe52)*state.rho + screened_rates(k_Fe53_He4_to_n_Ni56_derived)*Y(Fe53)*state.rho - screened_rates(k_Ni56_He4_to_Zn60_reaclib)*Y(Ni56)*state.rho - screened_rates(k_Ni56_He4_to_n_Zn59_derived)*Y(Ni56)*state.rho - screened_rates(k_Ni56_He4_to_p_Cu59_derived)*Y(Ni56)*state.rho; jac.set(Ni56, He4, scratch); jac.set(Ni56, Li6, 0.0); @@ -52800,10 +50609,10 @@ void jac_nuc(const burn_t& state, jac.set(Ni56, Mn55, 0.0); - scratch = screened_rates(k_He4_Fe52_to_Ni56_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Fe52_He4_to_Ni56_reaclib)*Y(He4)*state.rho; jac.set(Ni56, Fe52, scratch); - scratch = screened_rates(k_He4_Fe53_to_n_Ni56_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Fe53_He4_to_n_Ni56_derived)*Y(He4)*state.rho; jac.set(Ni56, Fe53, scratch); jac.set(Ni56, Fe54, 0.0); @@ -52816,15 +50625,15 @@ void jac_nuc(const burn_t& state, jac.set(Ni56, Fe58, 0.0); - scratch = screened_rates(k_He4_Co53_to_p_Ni56_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Co53_He4_to_p_Ni56_reaclib)*Y(He4)*state.rho; jac.set(Ni56, Co53, scratch); jac.set(Ni56, Co54, 0.0); - scratch = screened_rates(k_p_Co55_to_Ni56_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Co55_p_to_Ni56_reaclib)*Y(H1)*state.rho; jac.set(Ni56, Co55, scratch); - scratch = screened_rates(k_Co56_to_Ni56_weaktab) + screened_rates(k_p_Co56_to_n_Ni56_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Co56_p_to_n_Ni56_derived)*Y(H1)*state.rho + screened_rates(k_Co56_to_Ni56_beta_neg_weaktab); jac.set(Ni56, Co56, scratch); jac.set(Ni56, Co57, 0.0); @@ -52833,10 +50642,10 @@ void jac_nuc(const burn_t& state, jac.set(Ni56, Co59, 0.0); - scratch = -screened_rates(k_He4_Ni56_to_Zn60_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni56_to_n_Zn59_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni56_to_p_Cu59_reaclib)*Y(He4)*state.rho - screened_rates(k_Ni56_to_Co56_weaktab) - screened_rates(k_Ni56_to_He4_Fe52_reaclib) - screened_rates(k_Ni56_to_p_Co55_reaclib) - screened_rates(k_n_Ni56_to_He4_Fe53_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ni56_to_Ni57_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ni56_to_p_Co56_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ni56_to_Cu57_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni56_to_He4_Co53_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ni56_He4_to_Zn60_reaclib)*Y(He4)*state.rho - screened_rates(k_Ni56_He4_to_n_Zn59_derived)*Y(He4)*state.rho - screened_rates(k_Ni56_He4_to_p_Cu59_derived)*Y(He4)*state.rho - screened_rates(k_Ni56_n_to_He4_Fe53_reaclib)*Y(N)*state.rho - screened_rates(k_Ni56_n_to_Ni57_reaclib)*Y(N)*state.rho - screened_rates(k_Ni56_n_to_p_Co56_reaclib)*Y(N)*state.rho - screened_rates(k_Ni56_p_to_Cu57_reaclib)*Y(H1)*state.rho - screened_rates(k_Ni56_p_to_He4_Co53_derived)*Y(H1)*state.rho - screened_rates(k_Ni56_to_Co56_electron_capture_weaktab) - screened_rates(k_Ni56_to_He4_Fe52_derived) - screened_rates(k_Ni56_to_p_Co55_derived); jac.set(Ni56, Ni56, scratch); - scratch = screened_rates(k_Ni57_to_n_Ni56_reaclib); + scratch = screened_rates(k_Ni57_to_n_Ni56_derived); jac.set(Ni56, Ni57, scratch); jac.set(Ni56, Ni58, 0.0); @@ -52853,12 +50662,12 @@ void jac_nuc(const burn_t& state, jac.set(Ni56, Ni64, 0.0); - scratch = screened_rates(k_Cu57_to_p_Ni56_reaclib); + scratch = screened_rates(k_Cu57_to_p_Ni56_derived); jac.set(Ni56, Cu57, scratch); jac.set(Ni56, Cu58, 0.0); - scratch = screened_rates(k_p_Cu59_to_He4_Ni56_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu59_p_to_He4_Ni56_reaclib)*Y(H1)*state.rho; jac.set(Ni56, Cu59, scratch); jac.set(Ni56, Cu60, 0.0); @@ -52873,10 +50682,10 @@ void jac_nuc(const burn_t& state, jac.set(Ni56, Cu65, 0.0); - scratch = screened_rates(k_n_Zn59_to_He4_Ni56_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Zn59_n_to_He4_Ni56_reaclib)*Y(N)*state.rho; jac.set(Ni56, Zn59, scratch); - scratch = screened_rates(k_Zn60_to_He4_Ni56_reaclib); + scratch = screened_rates(k_Zn60_to_He4_Ni56_derived); jac.set(Ni56, Zn60, scratch); jac.set(Ni56, Zn61, 0.0); @@ -52901,17 +50710,17 @@ void jac_nuc(const burn_t& state, jac.set(Ni56, Ge64, 0.0); - scratch = screened_rates(k_n_Cu57_to_p_Ni57_reaclib)*Y(Cu57)*state.rho + screened_rates(k_n_Ni56_to_Ni57_reaclib)*Y(Ni56)*state.rho - screened_rates(k_n_Ni57_to_He4_Fe54_reaclib)*Y(Ni57)*state.rho - screened_rates(k_n_Ni57_to_Ni58_reaclib)*Y(Ni57)*state.rho - screened_rates(k_n_Ni57_to_p_Co57_reaclib)*Y(Ni57)*state.rho + screened_rates(k_n_Zn60_to_He4_Ni57_reaclib)*Y(Zn60)*state.rho; + scratch = screened_rates(k_Cu57_n_to_p_Ni57_reaclib)*Y(Cu57)*state.rho + screened_rates(k_Ni56_n_to_Ni57_reaclib)*Y(Ni56)*state.rho - screened_rates(k_Ni57_n_to_He4_Fe54_reaclib)*Y(Ni57)*state.rho - screened_rates(k_Ni57_n_to_Ni58_reaclib)*Y(Ni57)*state.rho - screened_rates(k_Ni57_n_to_p_Co57_reaclib)*Y(Ni57)*state.rho + screened_rates(k_Zn60_n_to_He4_Ni57_reaclib)*Y(Zn60)*state.rho; jac.set(Ni57, N, scratch); - scratch = screened_rates(k_p_Co56_to_Ni57_reaclib)*Y(Co56)*state.rho + screened_rates(k_p_Co57_to_n_Ni57_reaclib)*Y(Co57)*state.rho + screened_rates(k_p_Cu60_to_He4_Ni57_reaclib)*Y(Cu60)*state.rho - screened_rates(k_p_Ni57_to_Cu58_reaclib)*Y(Ni57)*state.rho - screened_rates(k_p_Ni57_to_He4_Co54_reaclib)*Y(Ni57)*state.rho - screened_rates(k_p_Ni57_to_n_Cu57_reaclib)*Y(Ni57)*state.rho; + scratch = screened_rates(k_Co56_p_to_Ni57_reaclib)*Y(Co56)*state.rho + screened_rates(k_Co57_p_to_n_Ni57_derived)*Y(Co57)*state.rho + screened_rates(k_Cu60_p_to_He4_Ni57_reaclib)*Y(Cu60)*state.rho - screened_rates(k_Ni57_p_to_Cu58_reaclib)*Y(Ni57)*state.rho - screened_rates(k_Ni57_p_to_He4_Co54_derived)*Y(Ni57)*state.rho - screened_rates(k_Ni57_p_to_n_Cu57_derived)*Y(Ni57)*state.rho; jac.set(Ni57, H1, scratch); jac.set(Ni57, H2, 0.0); jac.set(Ni57, He3, 0.0); - scratch = screened_rates(k_He4_Co54_to_p_Ni57_reaclib)*Y(Co54)*state.rho + screened_rates(k_He4_Fe53_to_Ni57_reaclib)*Y(Fe53)*state.rho + screened_rates(k_He4_Fe54_to_n_Ni57_reaclib)*Y(Fe54)*state.rho - screened_rates(k_He4_Ni57_to_Zn61_reaclib)*Y(Ni57)*state.rho - screened_rates(k_He4_Ni57_to_n_Zn60_reaclib)*Y(Ni57)*state.rho - screened_rates(k_He4_Ni57_to_p_Cu60_reaclib)*Y(Ni57)*state.rho; + scratch = screened_rates(k_Co54_He4_to_p_Ni57_reaclib)*Y(Co54)*state.rho + screened_rates(k_Fe53_He4_to_Ni57_reaclib)*Y(Fe53)*state.rho + screened_rates(k_Fe54_He4_to_n_Ni57_derived)*Y(Fe54)*state.rho - screened_rates(k_Ni57_He4_to_Zn61_reaclib)*Y(Ni57)*state.rho - screened_rates(k_Ni57_He4_to_n_Zn60_derived)*Y(Ni57)*state.rho - screened_rates(k_Ni57_He4_to_p_Cu60_derived)*Y(Ni57)*state.rho; jac.set(Ni57, He4, scratch); jac.set(Ni57, Li6, 0.0); @@ -53136,10 +50945,10 @@ void jac_nuc(const burn_t& state, jac.set(Ni57, Fe52, 0.0); - scratch = screened_rates(k_He4_Fe53_to_Ni57_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Fe53_He4_to_Ni57_reaclib)*Y(He4)*state.rho; jac.set(Ni57, Fe53, scratch); - scratch = screened_rates(k_He4_Fe54_to_n_Ni57_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Fe54_He4_to_n_Ni57_derived)*Y(He4)*state.rho; jac.set(Ni57, Fe54, scratch); jac.set(Ni57, Fe55, 0.0); @@ -53152,28 +50961,28 @@ void jac_nuc(const burn_t& state, jac.set(Ni57, Co53, 0.0); - scratch = screened_rates(k_He4_Co54_to_p_Ni57_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Co54_He4_to_p_Ni57_reaclib)*Y(He4)*state.rho; jac.set(Ni57, Co54, scratch); jac.set(Ni57, Co55, 0.0); - scratch = screened_rates(k_p_Co56_to_Ni57_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Co56_p_to_Ni57_reaclib)*Y(H1)*state.rho; jac.set(Ni57, Co56, scratch); - scratch = screened_rates(k_Co57_to_Ni57_weaktab) + screened_rates(k_p_Co57_to_n_Ni57_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Co57_p_to_n_Ni57_derived)*Y(H1)*state.rho + screened_rates(k_Co57_to_Ni57_beta_neg_weaktab); jac.set(Ni57, Co57, scratch); jac.set(Ni57, Co58, 0.0); jac.set(Ni57, Co59, 0.0); - scratch = screened_rates(k_n_Ni56_to_Ni57_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ni56_n_to_Ni57_reaclib)*Y(N)*state.rho; jac.set(Ni57, Ni56, scratch); - scratch = -screened_rates(k_He4_Ni57_to_Zn61_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni57_to_n_Zn60_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni57_to_p_Cu60_reaclib)*Y(He4)*state.rho - screened_rates(k_Ni57_to_Co57_weaktab) - screened_rates(k_Ni57_to_Cu57_weaktab) - screened_rates(k_Ni57_to_He4_Fe53_reaclib) - screened_rates(k_Ni57_to_n_Ni56_reaclib) - screened_rates(k_Ni57_to_p_Co56_reaclib) - screened_rates(k_n_Ni57_to_He4_Fe54_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ni57_to_Ni58_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ni57_to_p_Co57_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ni57_to_Cu58_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni57_to_He4_Co54_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni57_to_n_Cu57_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ni57_He4_to_Zn61_reaclib)*Y(He4)*state.rho - screened_rates(k_Ni57_He4_to_n_Zn60_derived)*Y(He4)*state.rho - screened_rates(k_Ni57_He4_to_p_Cu60_derived)*Y(He4)*state.rho - screened_rates(k_Ni57_n_to_He4_Fe54_reaclib)*Y(N)*state.rho - screened_rates(k_Ni57_n_to_Ni58_reaclib)*Y(N)*state.rho - screened_rates(k_Ni57_n_to_p_Co57_reaclib)*Y(N)*state.rho - screened_rates(k_Ni57_p_to_Cu58_reaclib)*Y(H1)*state.rho - screened_rates(k_Ni57_p_to_He4_Co54_derived)*Y(H1)*state.rho - screened_rates(k_Ni57_p_to_n_Cu57_derived)*Y(H1)*state.rho - screened_rates(k_Ni57_to_Co57_electron_capture_weaktab) - screened_rates(k_Ni57_to_Cu57_beta_neg_weaktab) - screened_rates(k_Ni57_to_He4_Fe53_derived) - screened_rates(k_Ni57_to_n_Ni56_derived) - screened_rates(k_Ni57_to_p_Co56_derived); jac.set(Ni57, Ni57, scratch); - scratch = screened_rates(k_Ni58_to_n_Ni57_reaclib); + scratch = screened_rates(k_Ni58_to_n_Ni57_derived); jac.set(Ni57, Ni58, scratch); jac.set(Ni57, Ni59, 0.0); @@ -53188,15 +50997,15 @@ void jac_nuc(const burn_t& state, jac.set(Ni57, Ni64, 0.0); - scratch = screened_rates(k_Cu57_to_Ni57_weaktab) + screened_rates(k_n_Cu57_to_p_Ni57_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cu57_n_to_p_Ni57_reaclib)*Y(N)*state.rho + screened_rates(k_Cu57_to_Ni57_electron_capture_weaktab); jac.set(Ni57, Cu57, scratch); - scratch = screened_rates(k_Cu58_to_p_Ni57_reaclib); + scratch = screened_rates(k_Cu58_to_p_Ni57_derived); jac.set(Ni57, Cu58, scratch); jac.set(Ni57, Cu59, 0.0); - scratch = screened_rates(k_p_Cu60_to_He4_Ni57_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu60_p_to_He4_Ni57_reaclib)*Y(H1)*state.rho; jac.set(Ni57, Cu60, scratch); jac.set(Ni57, Cu61, 0.0); @@ -53211,10 +51020,10 @@ void jac_nuc(const burn_t& state, jac.set(Ni57, Zn59, 0.0); - scratch = screened_rates(k_n_Zn60_to_He4_Ni57_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Zn60_n_to_He4_Ni57_reaclib)*Y(N)*state.rho; jac.set(Ni57, Zn60, scratch); - scratch = screened_rates(k_Zn61_to_He4_Ni57_reaclib); + scratch = screened_rates(k_Zn61_to_He4_Ni57_derived); jac.set(Ni57, Zn61, scratch); jac.set(Ni57, Zn62, 0.0); @@ -53237,17 +51046,17 @@ void jac_nuc(const burn_t& state, jac.set(Ni57, Ge64, 0.0); - scratch = screened_rates(k_n_Cu58_to_p_Ni58_reaclib)*Y(Cu58)*state.rho + screened_rates(k_n_Ni57_to_Ni58_reaclib)*Y(Ni57)*state.rho - screened_rates(k_n_Ni58_to_He4_Fe55_reaclib)*Y(Ni58)*state.rho - screened_rates(k_n_Ni58_to_Ni59_reaclib)*Y(Ni58)*state.rho - screened_rates(k_n_Ni58_to_p_Co58_reaclib)*Y(Ni58)*state.rho + screened_rates(k_n_Zn61_to_He4_Ni58_reaclib)*Y(Zn61)*state.rho; + scratch = screened_rates(k_Cu58_n_to_p_Ni58_reaclib)*Y(Cu58)*state.rho + screened_rates(k_Ni57_n_to_Ni58_reaclib)*Y(Ni57)*state.rho - screened_rates(k_Ni58_n_to_He4_Fe55_reaclib)*Y(Ni58)*state.rho - screened_rates(k_Ni58_n_to_Ni59_reaclib)*Y(Ni58)*state.rho - screened_rates(k_Ni58_n_to_p_Co58_reaclib)*Y(Ni58)*state.rho + screened_rates(k_Zn61_n_to_He4_Ni58_reaclib)*Y(Zn61)*state.rho; jac.set(Ni58, N, scratch); - scratch = screened_rates(k_p_Co57_to_Ni58_reaclib)*Y(Co57)*state.rho + screened_rates(k_p_Co58_to_n_Ni58_reaclib)*Y(Co58)*state.rho + screened_rates(k_p_Cu61_to_He4_Ni58_reaclib)*Y(Cu61)*state.rho - screened_rates(k_p_Ni58_to_Cu59_reaclib)*Y(Ni58)*state.rho - screened_rates(k_p_Ni58_to_He4_Co55_reaclib)*Y(Ni58)*state.rho - screened_rates(k_p_Ni58_to_n_Cu58_reaclib)*Y(Ni58)*state.rho; + scratch = screened_rates(k_Co57_p_to_Ni58_reaclib)*Y(Co57)*state.rho + screened_rates(k_Co58_p_to_n_Ni58_derived)*Y(Co58)*state.rho + screened_rates(k_Cu61_p_to_He4_Ni58_reaclib)*Y(Cu61)*state.rho - screened_rates(k_Ni58_p_to_Cu59_reaclib)*Y(Ni58)*state.rho - screened_rates(k_Ni58_p_to_He4_Co55_derived)*Y(Ni58)*state.rho - screened_rates(k_Ni58_p_to_n_Cu58_derived)*Y(Ni58)*state.rho; jac.set(Ni58, H1, scratch); jac.set(Ni58, H2, 0.0); jac.set(Ni58, He3, 0.0); - scratch = screened_rates(k_He4_Co55_to_p_Ni58_reaclib)*Y(Co55)*state.rho + screened_rates(k_He4_Fe54_to_Ni58_reaclib)*Y(Fe54)*state.rho + screened_rates(k_He4_Fe55_to_n_Ni58_reaclib)*Y(Fe55)*state.rho - screened_rates(k_He4_Ni58_to_Zn62_reaclib)*Y(Ni58)*state.rho - screened_rates(k_He4_Ni58_to_n_Zn61_reaclib)*Y(Ni58)*state.rho - screened_rates(k_He4_Ni58_to_p_Cu61_reaclib)*Y(Ni58)*state.rho; + scratch = screened_rates(k_Co55_He4_to_p_Ni58_reaclib)*Y(Co55)*state.rho + screened_rates(k_Fe54_He4_to_Ni58_reaclib)*Y(Fe54)*state.rho + screened_rates(k_Fe55_He4_to_n_Ni58_derived)*Y(Fe55)*state.rho - screened_rates(k_Ni58_He4_to_Zn62_reaclib)*Y(Ni58)*state.rho - screened_rates(k_Ni58_He4_to_n_Zn61_derived)*Y(Ni58)*state.rho - screened_rates(k_Ni58_He4_to_p_Cu61_derived)*Y(Ni58)*state.rho; jac.set(Ni58, He4, scratch); jac.set(Ni58, Li6, 0.0); @@ -53474,10 +51283,10 @@ void jac_nuc(const burn_t& state, jac.set(Ni58, Fe53, 0.0); - scratch = screened_rates(k_He4_Fe54_to_Ni58_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Fe54_He4_to_Ni58_reaclib)*Y(He4)*state.rho; jac.set(Ni58, Fe54, scratch); - scratch = screened_rates(k_He4_Fe55_to_n_Ni58_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Fe55_He4_to_n_Ni58_derived)*Y(He4)*state.rho; jac.set(Ni58, Fe55, scratch); jac.set(Ni58, Fe56, 0.0); @@ -53490,28 +51299,28 @@ void jac_nuc(const burn_t& state, jac.set(Ni58, Co54, 0.0); - scratch = screened_rates(k_He4_Co55_to_p_Ni58_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Co55_He4_to_p_Ni58_reaclib)*Y(He4)*state.rho; jac.set(Ni58, Co55, scratch); jac.set(Ni58, Co56, 0.0); - scratch = screened_rates(k_p_Co57_to_Ni58_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Co57_p_to_Ni58_reaclib)*Y(H1)*state.rho; jac.set(Ni58, Co57, scratch); - scratch = screened_rates(k_Co58_to_Ni58_weaktab) + screened_rates(k_p_Co58_to_n_Ni58_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Co58_p_to_n_Ni58_derived)*Y(H1)*state.rho + screened_rates(k_Co58_to_Ni58_beta_neg_weaktab); jac.set(Ni58, Co58, scratch); jac.set(Ni58, Co59, 0.0); jac.set(Ni58, Ni56, 0.0); - scratch = screened_rates(k_n_Ni57_to_Ni58_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ni57_n_to_Ni58_reaclib)*Y(N)*state.rho; jac.set(Ni58, Ni57, scratch); - scratch = -screened_rates(k_He4_Ni58_to_Zn62_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni58_to_n_Zn61_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni58_to_p_Cu61_reaclib)*Y(He4)*state.rho - screened_rates(k_Ni58_to_Co58_weaktab) - screened_rates(k_Ni58_to_Cu58_weaktab) - screened_rates(k_Ni58_to_He4_Fe54_reaclib) - screened_rates(k_Ni58_to_n_Ni57_reaclib) - screened_rates(k_Ni58_to_p_Co57_reaclib) - screened_rates(k_n_Ni58_to_He4_Fe55_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ni58_to_Ni59_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ni58_to_p_Co58_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ni58_to_Cu59_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni58_to_He4_Co55_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni58_to_n_Cu58_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ni58_He4_to_Zn62_reaclib)*Y(He4)*state.rho - screened_rates(k_Ni58_He4_to_n_Zn61_derived)*Y(He4)*state.rho - screened_rates(k_Ni58_He4_to_p_Cu61_derived)*Y(He4)*state.rho - screened_rates(k_Ni58_n_to_He4_Fe55_reaclib)*Y(N)*state.rho - screened_rates(k_Ni58_n_to_Ni59_reaclib)*Y(N)*state.rho - screened_rates(k_Ni58_n_to_p_Co58_reaclib)*Y(N)*state.rho - screened_rates(k_Ni58_p_to_Cu59_reaclib)*Y(H1)*state.rho - screened_rates(k_Ni58_p_to_He4_Co55_derived)*Y(H1)*state.rho - screened_rates(k_Ni58_p_to_n_Cu58_derived)*Y(H1)*state.rho - screened_rates(k_Ni58_to_Co58_electron_capture_weaktab) - screened_rates(k_Ni58_to_Cu58_beta_neg_weaktab) - screened_rates(k_Ni58_to_He4_Fe54_derived) - screened_rates(k_Ni58_to_n_Ni57_derived) - screened_rates(k_Ni58_to_p_Co57_derived); jac.set(Ni58, Ni58, scratch); - scratch = screened_rates(k_Ni59_to_n_Ni58_reaclib); + scratch = screened_rates(k_Ni59_to_n_Ni58_derived); jac.set(Ni58, Ni59, scratch); jac.set(Ni58, Ni60, 0.0); @@ -53526,15 +51335,15 @@ void jac_nuc(const burn_t& state, jac.set(Ni58, Cu57, 0.0); - scratch = screened_rates(k_Cu58_to_Ni58_weaktab) + screened_rates(k_n_Cu58_to_p_Ni58_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cu58_n_to_p_Ni58_reaclib)*Y(N)*state.rho + screened_rates(k_Cu58_to_Ni58_electron_capture_weaktab); jac.set(Ni58, Cu58, scratch); - scratch = screened_rates(k_Cu59_to_p_Ni58_reaclib); + scratch = screened_rates(k_Cu59_to_p_Ni58_derived); jac.set(Ni58, Cu59, scratch); jac.set(Ni58, Cu60, 0.0); - scratch = screened_rates(k_p_Cu61_to_He4_Ni58_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu61_p_to_He4_Ni58_reaclib)*Y(H1)*state.rho; jac.set(Ni58, Cu61, scratch); jac.set(Ni58, Cu62, 0.0); @@ -53545,15 +51354,15 @@ void jac_nuc(const burn_t& state, jac.set(Ni58, Cu65, 0.0); - scratch = screened_rates(k_Zn59_to_p_Ni58_reaclib); + scratch = screened_rates(k_Zn59_to_p_Ni58_beta_pos_reaclib); jac.set(Ni58, Zn59, scratch); jac.set(Ni58, Zn60, 0.0); - scratch = screened_rates(k_n_Zn61_to_He4_Ni58_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Zn61_n_to_He4_Ni58_reaclib)*Y(N)*state.rho; jac.set(Ni58, Zn61, scratch); - scratch = screened_rates(k_Zn62_to_He4_Ni58_reaclib); + scratch = screened_rates(k_Zn62_to_He4_Ni58_derived); jac.set(Ni58, Zn62, scratch); jac.set(Ni58, Zn63, 0.0); @@ -53574,17 +51383,17 @@ void jac_nuc(const burn_t& state, jac.set(Ni58, Ge64, 0.0); - scratch = screened_rates(k_n_Cu59_to_p_Ni59_reaclib)*Y(Cu59)*state.rho + screened_rates(k_n_Ni58_to_Ni59_reaclib)*Y(Ni58)*state.rho - screened_rates(k_n_Ni59_to_He4_Fe56_reaclib)*Y(Ni59)*state.rho - screened_rates(k_n_Ni59_to_Ni60_reaclib)*Y(Ni59)*state.rho - screened_rates(k_n_Ni59_to_p_Co59_reaclib)*Y(Ni59)*state.rho + screened_rates(k_n_Zn62_to_He4_Ni59_reaclib)*Y(Zn62)*state.rho; + scratch = screened_rates(k_Cu59_n_to_p_Ni59_reaclib)*Y(Cu59)*state.rho + screened_rates(k_Ni58_n_to_Ni59_reaclib)*Y(Ni58)*state.rho - screened_rates(k_Ni59_n_to_He4_Fe56_reaclib)*Y(Ni59)*state.rho - screened_rates(k_Ni59_n_to_Ni60_reaclib)*Y(Ni59)*state.rho - screened_rates(k_Ni59_n_to_p_Co59_reaclib)*Y(Ni59)*state.rho + screened_rates(k_Zn62_n_to_He4_Ni59_reaclib)*Y(Zn62)*state.rho; jac.set(Ni59, N, scratch); - scratch = screened_rates(k_p_Co58_to_Ni59_reaclib)*Y(Co58)*state.rho + screened_rates(k_p_Co59_to_n_Ni59_reaclib)*Y(Co59)*state.rho + screened_rates(k_p_Cu62_to_He4_Ni59_reaclib)*Y(Cu62)*state.rho - screened_rates(k_p_Ni59_to_Cu60_reaclib)*Y(Ni59)*state.rho - screened_rates(k_p_Ni59_to_He4_Co56_reaclib)*Y(Ni59)*state.rho - screened_rates(k_p_Ni59_to_n_Cu59_reaclib)*Y(Ni59)*state.rho; + scratch = screened_rates(k_Co58_p_to_Ni59_reaclib)*Y(Co58)*state.rho + screened_rates(k_Co59_p_to_n_Ni59_derived)*Y(Co59)*state.rho + screened_rates(k_Cu62_p_to_He4_Ni59_reaclib)*Y(Cu62)*state.rho - screened_rates(k_Ni59_p_to_Cu60_reaclib)*Y(Ni59)*state.rho - screened_rates(k_Ni59_p_to_He4_Co56_derived)*Y(Ni59)*state.rho - screened_rates(k_Ni59_p_to_n_Cu59_derived)*Y(Ni59)*state.rho; jac.set(Ni59, H1, scratch); jac.set(Ni59, H2, 0.0); jac.set(Ni59, He3, 0.0); - scratch = screened_rates(k_He4_Co56_to_p_Ni59_reaclib)*Y(Co56)*state.rho + screened_rates(k_He4_Fe55_to_Ni59_reaclib)*Y(Fe55)*state.rho + screened_rates(k_He4_Fe56_to_n_Ni59_reaclib)*Y(Fe56)*state.rho - screened_rates(k_He4_Ni59_to_Zn63_reaclib)*Y(Ni59)*state.rho - screened_rates(k_He4_Ni59_to_n_Zn62_reaclib)*Y(Ni59)*state.rho - screened_rates(k_He4_Ni59_to_p_Cu62_reaclib)*Y(Ni59)*state.rho; + scratch = screened_rates(k_Co56_He4_to_p_Ni59_reaclib)*Y(Co56)*state.rho + screened_rates(k_Fe55_He4_to_Ni59_reaclib)*Y(Fe55)*state.rho + screened_rates(k_Fe56_He4_to_n_Ni59_derived)*Y(Fe56)*state.rho - screened_rates(k_Ni59_He4_to_Zn63_reaclib)*Y(Ni59)*state.rho - screened_rates(k_Ni59_He4_to_n_Zn62_derived)*Y(Ni59)*state.rho - screened_rates(k_Ni59_He4_to_p_Cu62_derived)*Y(Ni59)*state.rho; jac.set(Ni59, He4, scratch); jac.set(Ni59, Li6, 0.0); @@ -53813,10 +51622,10 @@ void jac_nuc(const burn_t& state, jac.set(Ni59, Fe54, 0.0); - scratch = screened_rates(k_He4_Fe55_to_Ni59_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Fe55_He4_to_Ni59_reaclib)*Y(He4)*state.rho; jac.set(Ni59, Fe55, scratch); - scratch = screened_rates(k_He4_Fe56_to_n_Ni59_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Fe56_He4_to_n_Ni59_derived)*Y(He4)*state.rho; jac.set(Ni59, Fe56, scratch); jac.set(Ni59, Fe57, 0.0); @@ -53829,28 +51638,28 @@ void jac_nuc(const burn_t& state, jac.set(Ni59, Co55, 0.0); - scratch = screened_rates(k_He4_Co56_to_p_Ni59_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Co56_He4_to_p_Ni59_reaclib)*Y(He4)*state.rho; jac.set(Ni59, Co56, scratch); jac.set(Ni59, Co57, 0.0); - scratch = screened_rates(k_p_Co58_to_Ni59_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Co58_p_to_Ni59_reaclib)*Y(H1)*state.rho; jac.set(Ni59, Co58, scratch); - scratch = screened_rates(k_Co59_to_Ni59_weaktab) + screened_rates(k_p_Co59_to_n_Ni59_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Co59_p_to_n_Ni59_derived)*Y(H1)*state.rho + screened_rates(k_Co59_to_Ni59_beta_neg_weaktab); jac.set(Ni59, Co59, scratch); jac.set(Ni59, Ni56, 0.0); jac.set(Ni59, Ni57, 0.0); - scratch = screened_rates(k_n_Ni58_to_Ni59_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ni58_n_to_Ni59_reaclib)*Y(N)*state.rho; jac.set(Ni59, Ni58, scratch); - scratch = -screened_rates(k_He4_Ni59_to_Zn63_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni59_to_n_Zn62_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni59_to_p_Cu62_reaclib)*Y(He4)*state.rho - screened_rates(k_Ni59_to_Co59_weaktab) - screened_rates(k_Ni59_to_Cu59_weaktab) - screened_rates(k_Ni59_to_He4_Fe55_reaclib) - screened_rates(k_Ni59_to_n_Ni58_reaclib) - screened_rates(k_Ni59_to_p_Co58_reaclib) - screened_rates(k_n_Ni59_to_He4_Fe56_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ni59_to_Ni60_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ni59_to_p_Co59_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ni59_to_Cu60_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni59_to_He4_Co56_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni59_to_n_Cu59_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ni59_He4_to_Zn63_reaclib)*Y(He4)*state.rho - screened_rates(k_Ni59_He4_to_n_Zn62_derived)*Y(He4)*state.rho - screened_rates(k_Ni59_He4_to_p_Cu62_derived)*Y(He4)*state.rho - screened_rates(k_Ni59_n_to_He4_Fe56_reaclib)*Y(N)*state.rho - screened_rates(k_Ni59_n_to_Ni60_reaclib)*Y(N)*state.rho - screened_rates(k_Ni59_n_to_p_Co59_reaclib)*Y(N)*state.rho - screened_rates(k_Ni59_p_to_Cu60_reaclib)*Y(H1)*state.rho - screened_rates(k_Ni59_p_to_He4_Co56_derived)*Y(H1)*state.rho - screened_rates(k_Ni59_p_to_n_Cu59_derived)*Y(H1)*state.rho - screened_rates(k_Ni59_to_Co59_electron_capture_weaktab) - screened_rates(k_Ni59_to_Cu59_beta_neg_weaktab) - screened_rates(k_Ni59_to_He4_Fe55_derived) - screened_rates(k_Ni59_to_n_Ni58_derived) - screened_rates(k_Ni59_to_p_Co58_derived); jac.set(Ni59, Ni59, scratch); - scratch = screened_rates(k_Ni60_to_n_Ni59_reaclib); + scratch = screened_rates(k_Ni60_to_n_Ni59_derived); jac.set(Ni59, Ni60, scratch); jac.set(Ni59, Ni61, 0.0); @@ -53865,15 +51674,15 @@ void jac_nuc(const burn_t& state, jac.set(Ni59, Cu58, 0.0); - scratch = screened_rates(k_Cu59_to_Ni59_weaktab) + screened_rates(k_n_Cu59_to_p_Ni59_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cu59_n_to_p_Ni59_reaclib)*Y(N)*state.rho + screened_rates(k_Cu59_to_Ni59_electron_capture_weaktab); jac.set(Ni59, Cu59, scratch); - scratch = screened_rates(k_Cu60_to_p_Ni59_reaclib); + scratch = screened_rates(k_Cu60_to_p_Ni59_derived); jac.set(Ni59, Cu60, scratch); jac.set(Ni59, Cu61, 0.0); - scratch = screened_rates(k_p_Cu62_to_He4_Ni59_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu62_p_to_He4_Ni59_reaclib)*Y(H1)*state.rho; jac.set(Ni59, Cu62, scratch); jac.set(Ni59, Cu63, 0.0); @@ -53888,10 +51697,10 @@ void jac_nuc(const burn_t& state, jac.set(Ni59, Zn61, 0.0); - scratch = screened_rates(k_n_Zn62_to_He4_Ni59_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Zn62_n_to_He4_Ni59_reaclib)*Y(N)*state.rho; jac.set(Ni59, Zn62, scratch); - scratch = screened_rates(k_Zn63_to_He4_Ni59_reaclib); + scratch = screened_rates(k_Zn63_to_He4_Ni59_derived); jac.set(Ni59, Zn63, scratch); jac.set(Ni59, Zn64, 0.0); @@ -53910,17 +51719,17 @@ void jac_nuc(const burn_t& state, jac.set(Ni59, Ge64, 0.0); - scratch = screened_rates(k_n_Cu60_to_p_Ni60_reaclib)*Y(Cu60)*state.rho + screened_rates(k_n_Ni59_to_Ni60_reaclib)*Y(Ni59)*state.rho - screened_rates(k_n_Ni60_to_He4_Fe57_reaclib)*Y(Ni60)*state.rho - screened_rates(k_n_Ni60_to_Ni61_reaclib)*Y(Ni60)*state.rho + screened_rates(k_n_Zn63_to_He4_Ni60_reaclib)*Y(Zn63)*state.rho; + scratch = screened_rates(k_Cu60_n_to_p_Ni60_reaclib)*Y(Cu60)*state.rho + screened_rates(k_Ni59_n_to_Ni60_reaclib)*Y(Ni59)*state.rho - screened_rates(k_Ni60_n_to_He4_Fe57_reaclib)*Y(Ni60)*state.rho - screened_rates(k_Ni60_n_to_Ni61_reaclib)*Y(Ni60)*state.rho + screened_rates(k_Zn63_n_to_He4_Ni60_reaclib)*Y(Zn63)*state.rho; jac.set(Ni60, N, scratch); - scratch = screened_rates(k_p_Co59_to_Ni60_reaclib)*Y(Co59)*state.rho + screened_rates(k_p_Cu63_to_He4_Ni60_reaclib)*Y(Cu63)*state.rho - screened_rates(k_p_Ni60_to_Cu61_reaclib)*Y(Ni60)*state.rho - screened_rates(k_p_Ni60_to_He4_Co57_reaclib)*Y(Ni60)*state.rho - screened_rates(k_p_Ni60_to_n_Cu60_reaclib)*Y(Ni60)*state.rho; + scratch = screened_rates(k_Co59_p_to_Ni60_reaclib)*Y(Co59)*state.rho + screened_rates(k_Cu63_p_to_He4_Ni60_reaclib)*Y(Cu63)*state.rho - screened_rates(k_Ni60_p_to_Cu61_reaclib)*Y(Ni60)*state.rho - screened_rates(k_Ni60_p_to_He4_Co57_derived)*Y(Ni60)*state.rho - screened_rates(k_Ni60_p_to_n_Cu60_derived)*Y(Ni60)*state.rho; jac.set(Ni60, H1, scratch); jac.set(Ni60, H2, 0.0); jac.set(Ni60, He3, 0.0); - scratch = screened_rates(k_He4_Co57_to_p_Ni60_reaclib)*Y(Co57)*state.rho + screened_rates(k_He4_Fe56_to_Ni60_reaclib)*Y(Fe56)*state.rho + screened_rates(k_He4_Fe57_to_n_Ni60_reaclib)*Y(Fe57)*state.rho - screened_rates(k_He4_Ni60_to_Zn64_reaclib)*Y(Ni60)*state.rho - screened_rates(k_He4_Ni60_to_n_Zn63_reaclib)*Y(Ni60)*state.rho - screened_rates(k_He4_Ni60_to_p_Cu63_reaclib)*Y(Ni60)*state.rho; + scratch = screened_rates(k_Co57_He4_to_p_Ni60_reaclib)*Y(Co57)*state.rho + screened_rates(k_Fe56_He4_to_Ni60_reaclib)*Y(Fe56)*state.rho + screened_rates(k_Fe57_He4_to_n_Ni60_derived)*Y(Fe57)*state.rho - screened_rates(k_Ni60_He4_to_Zn64_reaclib)*Y(Ni60)*state.rho - screened_rates(k_Ni60_He4_to_n_Zn63_derived)*Y(Ni60)*state.rho - screened_rates(k_Ni60_He4_to_p_Cu63_derived)*Y(Ni60)*state.rho; jac.set(Ni60, He4, scratch); jac.set(Ni60, Li6, 0.0); @@ -54151,10 +51960,10 @@ void jac_nuc(const burn_t& state, jac.set(Ni60, Fe55, 0.0); - scratch = screened_rates(k_He4_Fe56_to_Ni60_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Fe56_He4_to_Ni60_reaclib)*Y(He4)*state.rho; jac.set(Ni60, Fe56, scratch); - scratch = screened_rates(k_He4_Fe57_to_n_Ni60_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Fe57_He4_to_n_Ni60_derived)*Y(He4)*state.rho; jac.set(Ni60, Fe57, scratch); jac.set(Ni60, Fe58, 0.0); @@ -54167,12 +51976,12 @@ void jac_nuc(const burn_t& state, jac.set(Ni60, Co56, 0.0); - scratch = screened_rates(k_He4_Co57_to_p_Ni60_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Co57_He4_to_p_Ni60_reaclib)*Y(He4)*state.rho; jac.set(Ni60, Co57, scratch); jac.set(Ni60, Co58, 0.0); - scratch = screened_rates(k_p_Co59_to_Ni60_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Co59_p_to_Ni60_reaclib)*Y(H1)*state.rho; jac.set(Ni60, Co59, scratch); jac.set(Ni60, Ni56, 0.0); @@ -54181,13 +51990,13 @@ void jac_nuc(const burn_t& state, jac.set(Ni60, Ni58, 0.0); - scratch = screened_rates(k_n_Ni59_to_Ni60_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ni59_n_to_Ni60_reaclib)*Y(N)*state.rho; jac.set(Ni60, Ni59, scratch); - scratch = -screened_rates(k_He4_Ni60_to_Zn64_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni60_to_n_Zn63_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni60_to_p_Cu63_reaclib)*Y(He4)*state.rho - screened_rates(k_Ni60_to_Cu60_weaktab) - screened_rates(k_Ni60_to_He4_Fe56_reaclib) - screened_rates(k_Ni60_to_n_Ni59_reaclib) - screened_rates(k_Ni60_to_p_Co59_reaclib) - screened_rates(k_n_Ni60_to_He4_Fe57_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ni60_to_Ni61_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ni60_to_Cu61_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni60_to_He4_Co57_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni60_to_n_Cu60_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ni60_He4_to_Zn64_reaclib)*Y(He4)*state.rho - screened_rates(k_Ni60_He4_to_n_Zn63_derived)*Y(He4)*state.rho - screened_rates(k_Ni60_He4_to_p_Cu63_derived)*Y(He4)*state.rho - screened_rates(k_Ni60_n_to_He4_Fe57_reaclib)*Y(N)*state.rho - screened_rates(k_Ni60_n_to_Ni61_reaclib)*Y(N)*state.rho - screened_rates(k_Ni60_p_to_Cu61_reaclib)*Y(H1)*state.rho - screened_rates(k_Ni60_p_to_He4_Co57_derived)*Y(H1)*state.rho - screened_rates(k_Ni60_p_to_n_Cu60_derived)*Y(H1)*state.rho - screened_rates(k_Ni60_to_Cu60_beta_neg_weaktab) - screened_rates(k_Ni60_to_He4_Fe56_derived) - screened_rates(k_Ni60_to_n_Ni59_derived) - screened_rates(k_Ni60_to_p_Co59_derived); jac.set(Ni60, Ni60, scratch); - scratch = screened_rates(k_Ni61_to_n_Ni60_reaclib); + scratch = screened_rates(k_Ni61_to_n_Ni60_derived); jac.set(Ni60, Ni61, scratch); jac.set(Ni60, Ni62, 0.0); @@ -54202,15 +52011,15 @@ void jac_nuc(const burn_t& state, jac.set(Ni60, Cu59, 0.0); - scratch = screened_rates(k_Cu60_to_Ni60_weaktab) + screened_rates(k_n_Cu60_to_p_Ni60_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cu60_n_to_p_Ni60_reaclib)*Y(N)*state.rho + screened_rates(k_Cu60_to_Ni60_electron_capture_weaktab); jac.set(Ni60, Cu60, scratch); - scratch = screened_rates(k_Cu61_to_p_Ni60_reaclib); + scratch = screened_rates(k_Cu61_to_p_Ni60_derived); jac.set(Ni60, Cu61, scratch); jac.set(Ni60, Cu62, 0.0); - scratch = screened_rates(k_p_Cu63_to_He4_Ni60_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu63_p_to_He4_Ni60_reaclib)*Y(H1)*state.rho; jac.set(Ni60, Cu63, scratch); jac.set(Ni60, Cu64, 0.0); @@ -54225,10 +52034,10 @@ void jac_nuc(const burn_t& state, jac.set(Ni60, Zn62, 0.0); - scratch = screened_rates(k_n_Zn63_to_He4_Ni60_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Zn63_n_to_He4_Ni60_reaclib)*Y(N)*state.rho; jac.set(Ni60, Zn63, scratch); - scratch = screened_rates(k_Zn64_to_He4_Ni60_reaclib); + scratch = screened_rates(k_Zn64_to_He4_Ni60_derived); jac.set(Ni60, Zn64, scratch); jac.set(Ni60, Zn65, 0.0); @@ -54245,17 +52054,17 @@ void jac_nuc(const burn_t& state, jac.set(Ni60, Ge64, 0.0); - scratch = screened_rates(k_n_Cu61_to_p_Ni61_reaclib)*Y(Cu61)*state.rho + screened_rates(k_n_Ni60_to_Ni61_reaclib)*Y(Ni60)*state.rho - screened_rates(k_n_Ni61_to_He4_Fe58_reaclib)*Y(Ni61)*state.rho - screened_rates(k_n_Ni61_to_Ni62_reaclib)*Y(Ni61)*state.rho + screened_rates(k_n_Zn64_to_He4_Ni61_reaclib)*Y(Zn64)*state.rho; + scratch = screened_rates(k_Cu61_n_to_p_Ni61_reaclib)*Y(Cu61)*state.rho + screened_rates(k_Ni60_n_to_Ni61_reaclib)*Y(Ni60)*state.rho - screened_rates(k_Ni61_n_to_He4_Fe58_reaclib)*Y(Ni61)*state.rho - screened_rates(k_Ni61_n_to_Ni62_reaclib)*Y(Ni61)*state.rho + screened_rates(k_Zn64_n_to_He4_Ni61_reaclib)*Y(Zn64)*state.rho; jac.set(Ni61, N, scratch); - scratch = screened_rates(k_p_Cu64_to_He4_Ni61_reaclib)*Y(Cu64)*state.rho - screened_rates(k_p_Ni61_to_Cu62_reaclib)*Y(Ni61)*state.rho - screened_rates(k_p_Ni61_to_He4_Co58_reaclib)*Y(Ni61)*state.rho - screened_rates(k_p_Ni61_to_n_Cu61_reaclib)*Y(Ni61)*state.rho; + scratch = screened_rates(k_Cu64_p_to_He4_Ni61_reaclib)*Y(Cu64)*state.rho - screened_rates(k_Ni61_p_to_Cu62_reaclib)*Y(Ni61)*state.rho - screened_rates(k_Ni61_p_to_He4_Co58_reaclib)*Y(Ni61)*state.rho - screened_rates(k_Ni61_p_to_n_Cu61_derived)*Y(Ni61)*state.rho; jac.set(Ni61, H1, scratch); jac.set(Ni61, H2, 0.0); jac.set(Ni61, He3, 0.0); - scratch = screened_rates(k_He4_Co58_to_p_Ni61_reaclib)*Y(Co58)*state.rho + screened_rates(k_He4_Fe57_to_Ni61_reaclib)*Y(Fe57)*state.rho + screened_rates(k_He4_Fe58_to_n_Ni61_reaclib)*Y(Fe58)*state.rho - screened_rates(k_He4_Ni61_to_Zn65_reaclib)*Y(Ni61)*state.rho - screened_rates(k_He4_Ni61_to_n_Zn64_reaclib)*Y(Ni61)*state.rho - screened_rates(k_He4_Ni61_to_p_Cu64_reaclib)*Y(Ni61)*state.rho; + scratch = screened_rates(k_Co58_He4_to_p_Ni61_derived)*Y(Co58)*state.rho + screened_rates(k_Fe57_He4_to_Ni61_reaclib)*Y(Fe57)*state.rho + screened_rates(k_Fe58_He4_to_n_Ni61_derived)*Y(Fe58)*state.rho - screened_rates(k_Ni61_He4_to_Zn65_reaclib)*Y(Ni61)*state.rho - screened_rates(k_Ni61_He4_to_n_Zn64_derived)*Y(Ni61)*state.rho - screened_rates(k_Ni61_He4_to_p_Cu64_derived)*Y(Ni61)*state.rho; jac.set(Ni61, He4, scratch); jac.set(Ni61, Li6, 0.0); @@ -54488,10 +52297,10 @@ void jac_nuc(const burn_t& state, jac.set(Ni61, Fe56, 0.0); - scratch = screened_rates(k_He4_Fe57_to_Ni61_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Fe57_He4_to_Ni61_reaclib)*Y(He4)*state.rho; jac.set(Ni61, Fe57, scratch); - scratch = screened_rates(k_He4_Fe58_to_n_Ni61_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Fe58_He4_to_n_Ni61_derived)*Y(He4)*state.rho; jac.set(Ni61, Fe58, scratch); jac.set(Ni61, Co53, 0.0); @@ -54504,7 +52313,7 @@ void jac_nuc(const burn_t& state, jac.set(Ni61, Co57, 0.0); - scratch = screened_rates(k_He4_Co58_to_p_Ni61_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Co58_He4_to_p_Ni61_derived)*Y(He4)*state.rho; jac.set(Ni61, Co58, scratch); jac.set(Ni61, Co59, 0.0); @@ -54517,13 +52326,13 @@ void jac_nuc(const burn_t& state, jac.set(Ni61, Ni59, 0.0); - scratch = screened_rates(k_n_Ni60_to_Ni61_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ni60_n_to_Ni61_reaclib)*Y(N)*state.rho; jac.set(Ni61, Ni60, scratch); - scratch = -screened_rates(k_He4_Ni61_to_Zn65_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni61_to_n_Zn64_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni61_to_p_Cu64_reaclib)*Y(He4)*state.rho - screened_rates(k_Ni61_to_Cu61_weaktab) - screened_rates(k_Ni61_to_He4_Fe57_reaclib) - screened_rates(k_Ni61_to_n_Ni60_reaclib) - screened_rates(k_n_Ni61_to_He4_Fe58_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ni61_to_Ni62_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ni61_to_Cu62_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni61_to_He4_Co58_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni61_to_n_Cu61_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ni61_He4_to_Zn65_reaclib)*Y(He4)*state.rho - screened_rates(k_Ni61_He4_to_n_Zn64_derived)*Y(He4)*state.rho - screened_rates(k_Ni61_He4_to_p_Cu64_derived)*Y(He4)*state.rho - screened_rates(k_Ni61_n_to_He4_Fe58_reaclib)*Y(N)*state.rho - screened_rates(k_Ni61_n_to_Ni62_reaclib)*Y(N)*state.rho - screened_rates(k_Ni61_p_to_Cu62_reaclib)*Y(H1)*state.rho - screened_rates(k_Ni61_p_to_He4_Co58_reaclib)*Y(H1)*state.rho - screened_rates(k_Ni61_p_to_n_Cu61_derived)*Y(H1)*state.rho - screened_rates(k_Ni61_to_Cu61_beta_neg_weaktab) - screened_rates(k_Ni61_to_He4_Fe57_derived) - screened_rates(k_Ni61_to_n_Ni60_derived); jac.set(Ni61, Ni61, scratch); - scratch = screened_rates(k_Ni62_to_n_Ni61_reaclib); + scratch = screened_rates(k_Ni62_to_n_Ni61_derived); jac.set(Ni61, Ni62, scratch); jac.set(Ni61, Ni63, 0.0); @@ -54538,15 +52347,15 @@ void jac_nuc(const burn_t& state, jac.set(Ni61, Cu60, 0.0); - scratch = screened_rates(k_Cu61_to_Ni61_weaktab) + screened_rates(k_n_Cu61_to_p_Ni61_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cu61_n_to_p_Ni61_reaclib)*Y(N)*state.rho + screened_rates(k_Cu61_to_Ni61_electron_capture_weaktab); jac.set(Ni61, Cu61, scratch); - scratch = screened_rates(k_Cu62_to_p_Ni61_reaclib); + scratch = screened_rates(k_Cu62_to_p_Ni61_derived); jac.set(Ni61, Cu62, scratch); jac.set(Ni61, Cu63, 0.0); - scratch = screened_rates(k_p_Cu64_to_He4_Ni61_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu64_p_to_He4_Ni61_reaclib)*Y(H1)*state.rho; jac.set(Ni61, Cu64, scratch); jac.set(Ni61, Cu65, 0.0); @@ -54561,10 +52370,10 @@ void jac_nuc(const burn_t& state, jac.set(Ni61, Zn63, 0.0); - scratch = screened_rates(k_n_Zn64_to_He4_Ni61_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Zn64_n_to_He4_Ni61_reaclib)*Y(N)*state.rho; jac.set(Ni61, Zn64, scratch); - scratch = screened_rates(k_Zn65_to_He4_Ni61_reaclib); + scratch = screened_rates(k_Zn65_to_He4_Ni61_derived); jac.set(Ni61, Zn65, scratch); jac.set(Ni61, Zn66, 0.0); @@ -54579,17 +52388,17 @@ void jac_nuc(const burn_t& state, jac.set(Ni61, Ge64, 0.0); - scratch = screened_rates(k_n_Cu62_to_p_Ni62_reaclib)*Y(Cu62)*state.rho + screened_rates(k_n_Ni61_to_Ni62_reaclib)*Y(Ni61)*state.rho - screened_rates(k_n_Ni62_to_Ni63_reaclib)*Y(Ni62)*state.rho + screened_rates(k_n_Zn65_to_He4_Ni62_reaclib)*Y(Zn65)*state.rho; + scratch = screened_rates(k_Cu62_n_to_p_Ni62_reaclib)*Y(Cu62)*state.rho + screened_rates(k_Ni61_n_to_Ni62_reaclib)*Y(Ni61)*state.rho - screened_rates(k_Ni62_n_to_Ni63_reaclib)*Y(Ni62)*state.rho + screened_rates(k_Zn65_n_to_He4_Ni62_reaclib)*Y(Zn65)*state.rho; jac.set(Ni62, N, scratch); - scratch = screened_rates(k_p_Cu65_to_He4_Ni62_reaclib)*Y(Cu65)*state.rho - screened_rates(k_p_Ni62_to_Cu63_reaclib)*Y(Ni62)*state.rho - screened_rates(k_p_Ni62_to_He4_Co59_reaclib)*Y(Ni62)*state.rho - screened_rates(k_p_Ni62_to_n_Cu62_reaclib)*Y(Ni62)*state.rho; + scratch = screened_rates(k_Cu65_p_to_He4_Ni62_reaclib)*Y(Cu65)*state.rho - screened_rates(k_Ni62_p_to_Cu63_reaclib)*Y(Ni62)*state.rho - screened_rates(k_Ni62_p_to_He4_Co59_reaclib)*Y(Ni62)*state.rho - screened_rates(k_Ni62_p_to_n_Cu62_derived)*Y(Ni62)*state.rho; jac.set(Ni62, H1, scratch); jac.set(Ni62, H2, 0.0); jac.set(Ni62, He3, 0.0); - scratch = screened_rates(k_He4_Co59_to_p_Ni62_reaclib)*Y(Co59)*state.rho + screened_rates(k_He4_Fe58_to_Ni62_reaclib)*Y(Fe58)*state.rho - screened_rates(k_He4_Ni62_to_Zn66_reaclib)*Y(Ni62)*state.rho - screened_rates(k_He4_Ni62_to_n_Zn65_reaclib)*Y(Ni62)*state.rho - screened_rates(k_He4_Ni62_to_p_Cu65_reaclib)*Y(Ni62)*state.rho; + scratch = screened_rates(k_Co59_He4_to_p_Ni62_derived)*Y(Co59)*state.rho + screened_rates(k_Fe58_He4_to_Ni62_reaclib)*Y(Fe58)*state.rho - screened_rates(k_Ni62_He4_to_Zn66_reaclib)*Y(Ni62)*state.rho - screened_rates(k_Ni62_He4_to_n_Zn65_derived)*Y(Ni62)*state.rho - screened_rates(k_Ni62_He4_to_p_Cu65_derived)*Y(Ni62)*state.rho; jac.set(Ni62, He4, scratch); jac.set(Ni62, Li6, 0.0); @@ -54824,7 +52633,7 @@ void jac_nuc(const burn_t& state, jac.set(Ni62, Fe57, 0.0); - scratch = screened_rates(k_He4_Fe58_to_Ni62_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Fe58_He4_to_Ni62_reaclib)*Y(He4)*state.rho; jac.set(Ni62, Fe58, scratch); jac.set(Ni62, Co53, 0.0); @@ -54839,7 +52648,7 @@ void jac_nuc(const burn_t& state, jac.set(Ni62, Co58, 0.0); - scratch = screened_rates(k_He4_Co59_to_p_Ni62_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Co59_He4_to_p_Ni62_derived)*Y(He4)*state.rho; jac.set(Ni62, Co59, scratch); jac.set(Ni62, Ni56, 0.0); @@ -54852,13 +52661,13 @@ void jac_nuc(const burn_t& state, jac.set(Ni62, Ni60, 0.0); - scratch = screened_rates(k_n_Ni61_to_Ni62_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ni61_n_to_Ni62_reaclib)*Y(N)*state.rho; jac.set(Ni62, Ni61, scratch); - scratch = -screened_rates(k_He4_Ni62_to_Zn66_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni62_to_n_Zn65_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Ni62_to_p_Cu65_reaclib)*Y(He4)*state.rho - screened_rates(k_Ni62_to_Cu62_weaktab) - screened_rates(k_Ni62_to_He4_Fe58_reaclib) - screened_rates(k_Ni62_to_n_Ni61_reaclib) - screened_rates(k_n_Ni62_to_Ni63_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ni62_to_Cu63_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni62_to_He4_Co59_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni62_to_n_Cu62_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ni62_He4_to_Zn66_reaclib)*Y(He4)*state.rho - screened_rates(k_Ni62_He4_to_n_Zn65_derived)*Y(He4)*state.rho - screened_rates(k_Ni62_He4_to_p_Cu65_derived)*Y(He4)*state.rho - screened_rates(k_Ni62_n_to_Ni63_reaclib)*Y(N)*state.rho - screened_rates(k_Ni62_p_to_Cu63_reaclib)*Y(H1)*state.rho - screened_rates(k_Ni62_p_to_He4_Co59_reaclib)*Y(H1)*state.rho - screened_rates(k_Ni62_p_to_n_Cu62_derived)*Y(H1)*state.rho - screened_rates(k_Ni62_to_Cu62_beta_neg_weaktab) - screened_rates(k_Ni62_to_He4_Fe58_derived) - screened_rates(k_Ni62_to_n_Ni61_derived); jac.set(Ni62, Ni62, scratch); - scratch = screened_rates(k_Ni63_to_n_Ni62_reaclib); + scratch = screened_rates(k_Ni63_to_n_Ni62_derived); jac.set(Ni62, Ni63, scratch); jac.set(Ni62, Ni64, 0.0); @@ -54873,15 +52682,15 @@ void jac_nuc(const burn_t& state, jac.set(Ni62, Cu61, 0.0); - scratch = screened_rates(k_Cu62_to_Ni62_weaktab) + screened_rates(k_n_Cu62_to_p_Ni62_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cu62_n_to_p_Ni62_reaclib)*Y(N)*state.rho + screened_rates(k_Cu62_to_Ni62_electron_capture_weaktab); jac.set(Ni62, Cu62, scratch); - scratch = screened_rates(k_Cu63_to_p_Ni62_reaclib); + scratch = screened_rates(k_Cu63_to_p_Ni62_derived); jac.set(Ni62, Cu63, scratch); jac.set(Ni62, Cu64, 0.0); - scratch = screened_rates(k_p_Cu65_to_He4_Ni62_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu65_p_to_He4_Ni62_reaclib)*Y(H1)*state.rho; jac.set(Ni62, Cu65, scratch); jac.set(Ni62, Zn59, 0.0); @@ -54896,10 +52705,10 @@ void jac_nuc(const burn_t& state, jac.set(Ni62, Zn64, 0.0); - scratch = screened_rates(k_n_Zn65_to_He4_Ni62_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Zn65_n_to_He4_Ni62_reaclib)*Y(N)*state.rho; jac.set(Ni62, Zn65, scratch); - scratch = screened_rates(k_Zn66_to_He4_Ni62_reaclib); + scratch = screened_rates(k_Zn66_to_He4_Ni62_derived); jac.set(Ni62, Zn66, scratch); jac.set(Ni62, Ga62, 0.0); @@ -54912,17 +52721,17 @@ void jac_nuc(const burn_t& state, jac.set(Ni62, Ge64, 0.0); - scratch = screened_rates(k_n_Cu63_to_p_Ni63_reaclib)*Y(Cu63)*state.rho + screened_rates(k_n_Ni62_to_Ni63_reaclib)*Y(Ni62)*state.rho - screened_rates(k_n_Ni63_to_Ni64_reaclib)*Y(Ni63)*state.rho + screened_rates(k_n_Zn66_to_He4_Ni63_reaclib)*Y(Zn66)*state.rho; + scratch = screened_rates(k_Cu63_n_to_p_Ni63_reaclib)*Y(Cu63)*state.rho + screened_rates(k_Ni62_n_to_Ni63_reaclib)*Y(Ni62)*state.rho - screened_rates(k_Ni63_n_to_Ni64_reaclib)*Y(Ni63)*state.rho + screened_rates(k_Zn66_n_to_He4_Ni63_reaclib)*Y(Zn66)*state.rho; jac.set(Ni63, N, scratch); - scratch = -screened_rates(k_p_Ni63_to_Cu64_reaclib)*Y(Ni63)*state.rho - screened_rates(k_p_Ni63_to_n_Cu63_reaclib)*Y(Ni63)*state.rho; + scratch = -screened_rates(k_Ni63_p_to_Cu64_reaclib)*Y(Ni63)*state.rho - screened_rates(k_Ni63_p_to_n_Cu63_derived)*Y(Ni63)*state.rho; jac.set(Ni63, H1, scratch); jac.set(Ni63, H2, 0.0); jac.set(Ni63, He3, 0.0); - scratch = -screened_rates(k_He4_Ni63_to_n_Zn66_reaclib)*Y(Ni63)*state.rho; + scratch = -screened_rates(k_Ni63_He4_to_n_Zn66_derived)*Y(Ni63)*state.rho; jac.set(Ni63, He4, scratch); jac.set(Ni63, Li6, 0.0); @@ -55185,13 +52994,13 @@ void jac_nuc(const burn_t& state, jac.set(Ni63, Ni61, 0.0); - scratch = screened_rates(k_n_Ni62_to_Ni63_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ni62_n_to_Ni63_reaclib)*Y(N)*state.rho; jac.set(Ni63, Ni62, scratch); - scratch = -screened_rates(k_He4_Ni63_to_n_Zn66_reaclib)*Y(He4)*state.rho - screened_rates(k_Ni63_to_Cu63_weaktab) - screened_rates(k_Ni63_to_n_Ni62_reaclib) - screened_rates(k_n_Ni63_to_Ni64_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ni63_to_Cu64_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni63_to_n_Cu63_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ni63_He4_to_n_Zn66_derived)*Y(He4)*state.rho - screened_rates(k_Ni63_n_to_Ni64_reaclib)*Y(N)*state.rho - screened_rates(k_Ni63_p_to_Cu64_reaclib)*Y(H1)*state.rho - screened_rates(k_Ni63_p_to_n_Cu63_derived)*Y(H1)*state.rho - screened_rates(k_Ni63_to_Cu63_beta_neg_weaktab) - screened_rates(k_Ni63_to_n_Ni62_derived); jac.set(Ni63, Ni63, scratch); - scratch = screened_rates(k_Ni64_to_n_Ni63_reaclib); + scratch = screened_rates(k_Ni64_to_n_Ni63_derived); jac.set(Ni63, Ni64, scratch); jac.set(Ni63, Cu57, 0.0); @@ -55206,10 +53015,10 @@ void jac_nuc(const burn_t& state, jac.set(Ni63, Cu62, 0.0); - scratch = screened_rates(k_Cu63_to_Ni63_weaktab) + screened_rates(k_n_Cu63_to_p_Ni63_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cu63_n_to_p_Ni63_reaclib)*Y(N)*state.rho + screened_rates(k_Cu63_to_Ni63_electron_capture_weaktab); jac.set(Ni63, Cu63, scratch); - scratch = screened_rates(k_Cu64_to_p_Ni63_reaclib); + scratch = screened_rates(k_Cu64_to_p_Ni63_derived); jac.set(Ni63, Cu64, scratch); jac.set(Ni63, Cu65, 0.0); @@ -55228,7 +53037,7 @@ void jac_nuc(const burn_t& state, jac.set(Ni63, Zn65, 0.0); - scratch = screened_rates(k_n_Zn66_to_He4_Ni63_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Zn66_n_to_He4_Ni63_reaclib)*Y(N)*state.rho; jac.set(Ni63, Zn66, scratch); jac.set(Ni63, Ga62, 0.0); @@ -55241,10 +53050,10 @@ void jac_nuc(const burn_t& state, jac.set(Ni63, Ge64, 0.0); - scratch = screened_rates(k_n_Cu64_to_p_Ni64_reaclib)*Y(Cu64)*state.rho + screened_rates(k_n_Ni63_to_Ni64_reaclib)*Y(Ni63)*state.rho; + scratch = screened_rates(k_Cu64_n_to_p_Ni64_reaclib)*Y(Cu64)*state.rho + screened_rates(k_Ni63_n_to_Ni64_reaclib)*Y(Ni63)*state.rho; jac.set(Ni64, N, scratch); - scratch = -screened_rates(k_p_Ni64_to_Cu65_reaclib)*Y(Ni64)*state.rho - screened_rates(k_p_Ni64_to_n_Cu64_reaclib)*Y(Ni64)*state.rho; + scratch = -screened_rates(k_Ni64_p_to_Cu65_reaclib)*Y(Ni64)*state.rho - screened_rates(k_Ni64_p_to_n_Cu64_derived)*Y(Ni64)*state.rho; jac.set(Ni64, H1, scratch); jac.set(Ni64, H2, 0.0); @@ -55515,10 +53324,10 @@ void jac_nuc(const burn_t& state, jac.set(Ni64, Ni62, 0.0); - scratch = screened_rates(k_n_Ni63_to_Ni64_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ni63_n_to_Ni64_reaclib)*Y(N)*state.rho; jac.set(Ni64, Ni63, scratch); - scratch = -screened_rates(k_Ni64_to_Cu64_weaktab) - screened_rates(k_Ni64_to_n_Ni63_reaclib) - screened_rates(k_p_Ni64_to_Cu65_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ni64_to_n_Cu64_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ni64_p_to_Cu65_reaclib)*Y(H1)*state.rho - screened_rates(k_Ni64_p_to_n_Cu64_derived)*Y(H1)*state.rho - screened_rates(k_Ni64_to_Cu64_beta_neg_weaktab) - screened_rates(k_Ni64_to_n_Ni63_derived); jac.set(Ni64, Ni64, scratch); jac.set(Ni64, Cu57, 0.0); @@ -55535,10 +53344,10 @@ void jac_nuc(const burn_t& state, jac.set(Ni64, Cu63, 0.0); - scratch = screened_rates(k_Cu64_to_Ni64_weaktab) + screened_rates(k_n_Cu64_to_p_Ni64_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cu64_n_to_p_Ni64_reaclib)*Y(N)*state.rho + screened_rates(k_Cu64_to_Ni64_electron_capture_weaktab); jac.set(Ni64, Cu64, scratch); - scratch = screened_rates(k_Cu65_to_p_Ni64_reaclib); + scratch = screened_rates(k_Cu65_to_p_Ni64_derived); jac.set(Ni64, Cu65, scratch); jac.set(Ni64, Zn59, 0.0); @@ -55567,17 +53376,17 @@ void jac_nuc(const burn_t& state, jac.set(Ni64, Ge64, 0.0); - scratch = -screened_rates(k_n_Cu57_to_Cu58_reaclib)*Y(Cu57)*state.rho - screened_rates(k_n_Cu57_to_He4_Co54_reaclib)*Y(Cu57)*state.rho - screened_rates(k_n_Cu57_to_p_Ni57_reaclib)*Y(Cu57)*state.rho; + scratch = -screened_rates(k_Cu57_n_to_Cu58_reaclib)*Y(Cu57)*state.rho - screened_rates(k_Cu57_n_to_He4_Co54_reaclib)*Y(Cu57)*state.rho - screened_rates(k_Cu57_n_to_p_Ni57_reaclib)*Y(Cu57)*state.rho; jac.set(Cu57, N, scratch); - scratch = screened_rates(k_p_Ni56_to_Cu57_reaclib)*Y(Ni56)*state.rho + screened_rates(k_p_Ni57_to_n_Cu57_reaclib)*Y(Ni57)*state.rho + screened_rates(k_p_Zn60_to_He4_Cu57_reaclib)*Y(Zn60)*state.rho; + scratch = screened_rates(k_Ni56_p_to_Cu57_reaclib)*Y(Ni56)*state.rho + screened_rates(k_Ni57_p_to_n_Cu57_derived)*Y(Ni57)*state.rho + screened_rates(k_Zn60_p_to_He4_Cu57_derived)*Y(Zn60)*state.rho; jac.set(Cu57, H1, scratch); jac.set(Cu57, H2, 0.0); jac.set(Cu57, He3, 0.0); - scratch = screened_rates(k_He4_Co53_to_Cu57_reaclib)*Y(Co53)*state.rho + screened_rates(k_He4_Co54_to_n_Cu57_reaclib)*Y(Co54)*state.rho - screened_rates(k_He4_Cu57_to_p_Zn60_reaclib)*Y(Cu57)*state.rho; + scratch = screened_rates(k_Co53_He4_to_Cu57_reaclib)*Y(Co53)*state.rho + screened_rates(k_Co54_He4_to_n_Cu57_derived)*Y(Co54)*state.rho - screened_rates(k_Cu57_He4_to_p_Zn60_reaclib)*Y(Cu57)*state.rho; jac.set(Cu57, He4, scratch); jac.set(Cu57, Li6, 0.0); @@ -55814,10 +53623,10 @@ void jac_nuc(const burn_t& state, jac.set(Cu57, Fe58, 0.0); - scratch = screened_rates(k_He4_Co53_to_Cu57_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Co53_He4_to_Cu57_reaclib)*Y(He4)*state.rho; jac.set(Cu57, Co53, scratch); - scratch = screened_rates(k_He4_Co54_to_n_Cu57_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Co54_He4_to_n_Cu57_derived)*Y(He4)*state.rho; jac.set(Cu57, Co54, scratch); jac.set(Cu57, Co55, 0.0); @@ -55830,10 +53639,10 @@ void jac_nuc(const burn_t& state, jac.set(Cu57, Co59, 0.0); - scratch = screened_rates(k_p_Ni56_to_Cu57_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni56_p_to_Cu57_reaclib)*Y(H1)*state.rho; jac.set(Cu57, Ni56, scratch); - scratch = screened_rates(k_Ni57_to_Cu57_weaktab) + screened_rates(k_p_Ni57_to_n_Cu57_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni57_p_to_n_Cu57_derived)*Y(H1)*state.rho + screened_rates(k_Ni57_to_Cu57_beta_neg_weaktab); jac.set(Cu57, Ni57, scratch); jac.set(Cu57, Ni58, 0.0); @@ -55850,10 +53659,10 @@ void jac_nuc(const burn_t& state, jac.set(Cu57, Ni64, 0.0); - scratch = -screened_rates(k_Cu57_to_He4_Co53_reaclib) - screened_rates(k_Cu57_to_Ni57_weaktab) - screened_rates(k_Cu57_to_p_Ni56_reaclib) - screened_rates(k_He4_Cu57_to_p_Zn60_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cu57_to_Cu58_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu57_to_He4_Co54_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu57_to_p_Ni57_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Cu57_He4_to_p_Zn60_reaclib)*Y(He4)*state.rho - screened_rates(k_Cu57_n_to_Cu58_reaclib)*Y(N)*state.rho - screened_rates(k_Cu57_n_to_He4_Co54_reaclib)*Y(N)*state.rho - screened_rates(k_Cu57_n_to_p_Ni57_reaclib)*Y(N)*state.rho - screened_rates(k_Cu57_to_He4_Co53_derived) - screened_rates(k_Cu57_to_Ni57_electron_capture_weaktab) - screened_rates(k_Cu57_to_p_Ni56_derived); jac.set(Cu57, Cu57, scratch); - scratch = screened_rates(k_Cu58_to_n_Cu57_reaclib); + scratch = screened_rates(k_Cu58_to_n_Cu57_derived); jac.set(Cu57, Cu58, scratch); jac.set(Cu57, Cu59, 0.0); @@ -55872,7 +53681,7 @@ void jac_nuc(const burn_t& state, jac.set(Cu57, Zn59, 0.0); - scratch = screened_rates(k_p_Zn60_to_He4_Cu57_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Zn60_p_to_He4_Cu57_derived)*Y(H1)*state.rho; jac.set(Cu57, Zn60, scratch); jac.set(Cu57, Zn61, 0.0); @@ -55897,17 +53706,17 @@ void jac_nuc(const burn_t& state, jac.set(Cu57, Ge64, 0.0); - scratch = screened_rates(k_n_Cu57_to_Cu58_reaclib)*Y(Cu57)*state.rho - screened_rates(k_n_Cu58_to_Cu59_reaclib)*Y(Cu58)*state.rho - screened_rates(k_n_Cu58_to_He4_Co55_reaclib)*Y(Cu58)*state.rho - screened_rates(k_n_Cu58_to_p_Ni58_reaclib)*Y(Cu58)*state.rho; + scratch = screened_rates(k_Cu57_n_to_Cu58_reaclib)*Y(Cu57)*state.rho - screened_rates(k_Cu58_n_to_Cu59_reaclib)*Y(Cu58)*state.rho - screened_rates(k_Cu58_n_to_He4_Co55_reaclib)*Y(Cu58)*state.rho - screened_rates(k_Cu58_n_to_p_Ni58_reaclib)*Y(Cu58)*state.rho; jac.set(Cu58, N, scratch); - scratch = -screened_rates(k_p_Cu58_to_Zn59_reaclib)*Y(Cu58)*state.rho + screened_rates(k_p_Ni57_to_Cu58_reaclib)*Y(Ni57)*state.rho + screened_rates(k_p_Ni58_to_n_Cu58_reaclib)*Y(Ni58)*state.rho + screened_rates(k_p_Zn61_to_He4_Cu58_reaclib)*Y(Zn61)*state.rho; + scratch = -screened_rates(k_Cu58_p_to_Zn59_reaclib)*Y(Cu58)*state.rho + screened_rates(k_Ni57_p_to_Cu58_reaclib)*Y(Ni57)*state.rho + screened_rates(k_Ni58_p_to_n_Cu58_derived)*Y(Ni58)*state.rho + screened_rates(k_Zn61_p_to_He4_Cu58_reaclib)*Y(Zn61)*state.rho; jac.set(Cu58, H1, scratch); jac.set(Cu58, H2, 0.0); jac.set(Cu58, He3, 0.0); - scratch = screened_rates(k_He4_Co54_to_Cu58_reaclib)*Y(Co54)*state.rho + screened_rates(k_He4_Co55_to_n_Cu58_reaclib)*Y(Co55)*state.rho - screened_rates(k_He4_Cu58_to_Ga62_reaclib)*Y(Cu58)*state.rho - screened_rates(k_He4_Cu58_to_p_Zn61_reaclib)*Y(Cu58)*state.rho; + scratch = screened_rates(k_Co54_He4_to_Cu58_reaclib)*Y(Co54)*state.rho + screened_rates(k_Co55_He4_to_n_Cu58_derived)*Y(Co55)*state.rho - screened_rates(k_Cu58_He4_to_Ga62_reaclib)*Y(Cu58)*state.rho - screened_rates(k_Cu58_He4_to_p_Zn61_derived)*Y(Cu58)*state.rho; jac.set(Cu58, He4, scratch); jac.set(Cu58, Li6, 0.0); @@ -56146,10 +53955,10 @@ void jac_nuc(const burn_t& state, jac.set(Cu58, Co53, 0.0); - scratch = screened_rates(k_He4_Co54_to_Cu58_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Co54_He4_to_Cu58_reaclib)*Y(He4)*state.rho; jac.set(Cu58, Co54, scratch); - scratch = screened_rates(k_He4_Co55_to_n_Cu58_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Co55_He4_to_n_Cu58_derived)*Y(He4)*state.rho; jac.set(Cu58, Co55, scratch); jac.set(Cu58, Co56, 0.0); @@ -56162,10 +53971,10 @@ void jac_nuc(const burn_t& state, jac.set(Cu58, Ni56, 0.0); - scratch = screened_rates(k_p_Ni57_to_Cu58_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni57_p_to_Cu58_reaclib)*Y(H1)*state.rho; jac.set(Cu58, Ni57, scratch); - scratch = screened_rates(k_Ni58_to_Cu58_weaktab) + screened_rates(k_p_Ni58_to_n_Cu58_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni58_p_to_n_Cu58_derived)*Y(H1)*state.rho + screened_rates(k_Ni58_to_Cu58_beta_neg_weaktab); jac.set(Cu58, Ni58, scratch); jac.set(Cu58, Ni59, 0.0); @@ -56180,13 +53989,13 @@ void jac_nuc(const burn_t& state, jac.set(Cu58, Ni64, 0.0); - scratch = screened_rates(k_n_Cu57_to_Cu58_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cu57_n_to_Cu58_reaclib)*Y(N)*state.rho; jac.set(Cu58, Cu57, scratch); - scratch = -screened_rates(k_Cu58_to_He4_Co54_reaclib) - screened_rates(k_Cu58_to_Ni58_weaktab) - screened_rates(k_Cu58_to_n_Cu57_reaclib) - screened_rates(k_Cu58_to_p_Ni57_reaclib) - screened_rates(k_He4_Cu58_to_Ga62_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cu58_to_p_Zn61_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cu58_to_Cu59_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu58_to_He4_Co55_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu58_to_p_Ni58_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cu58_to_Zn59_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cu58_He4_to_Ga62_reaclib)*Y(He4)*state.rho - screened_rates(k_Cu58_He4_to_p_Zn61_derived)*Y(He4)*state.rho - screened_rates(k_Cu58_n_to_Cu59_reaclib)*Y(N)*state.rho - screened_rates(k_Cu58_n_to_He4_Co55_reaclib)*Y(N)*state.rho - screened_rates(k_Cu58_n_to_p_Ni58_reaclib)*Y(N)*state.rho - screened_rates(k_Cu58_p_to_Zn59_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu58_to_He4_Co54_derived) - screened_rates(k_Cu58_to_Ni58_electron_capture_weaktab) - screened_rates(k_Cu58_to_n_Cu57_derived) - screened_rates(k_Cu58_to_p_Ni57_derived); jac.set(Cu58, Cu58, scratch); - scratch = screened_rates(k_Cu59_to_n_Cu58_reaclib); + scratch = screened_rates(k_Cu59_to_n_Cu58_derived); jac.set(Cu58, Cu59, scratch); jac.set(Cu58, Cu60, 0.0); @@ -56201,12 +54010,12 @@ void jac_nuc(const burn_t& state, jac.set(Cu58, Cu65, 0.0); - scratch = screened_rates(k_Zn59_to_p_Cu58_reaclib); + scratch = screened_rates(k_Zn59_to_p_Cu58_derived); jac.set(Cu58, Zn59, scratch); jac.set(Cu58, Zn60, 0.0); - scratch = screened_rates(k_p_Zn61_to_He4_Cu58_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Zn61_p_to_He4_Cu58_reaclib)*Y(H1)*state.rho; jac.set(Cu58, Zn61, scratch); jac.set(Cu58, Zn62, 0.0); @@ -56219,7 +54028,7 @@ void jac_nuc(const burn_t& state, jac.set(Cu58, Zn66, 0.0); - scratch = screened_rates(k_Ga62_to_He4_Cu58_reaclib); + scratch = screened_rates(k_Ga62_to_He4_Cu58_derived); jac.set(Cu58, Ga62, scratch); jac.set(Cu58, Ga63, 0.0); @@ -56230,17 +54039,17 @@ void jac_nuc(const burn_t& state, jac.set(Cu58, Ge64, 0.0); - scratch = screened_rates(k_n_Cu58_to_Cu59_reaclib)*Y(Cu58)*state.rho - screened_rates(k_n_Cu59_to_Cu60_reaclib)*Y(Cu59)*state.rho - screened_rates(k_n_Cu59_to_He4_Co56_reaclib)*Y(Cu59)*state.rho - screened_rates(k_n_Cu59_to_p_Ni59_reaclib)*Y(Cu59)*state.rho + screened_rates(k_n_Ga62_to_He4_Cu59_reaclib)*Y(Ga62)*state.rho + screened_rates(k_n_Zn59_to_p_Cu59_reaclib)*Y(Zn59)*state.rho; + scratch = screened_rates(k_Cu58_n_to_Cu59_reaclib)*Y(Cu58)*state.rho - screened_rates(k_Cu59_n_to_Cu60_reaclib)*Y(Cu59)*state.rho - screened_rates(k_Cu59_n_to_He4_Co56_reaclib)*Y(Cu59)*state.rho - screened_rates(k_Cu59_n_to_p_Ni59_reaclib)*Y(Cu59)*state.rho + screened_rates(k_Ga62_n_to_He4_Cu59_reaclib)*Y(Ga62)*state.rho + screened_rates(k_Zn59_n_to_p_Cu59_reaclib)*Y(Zn59)*state.rho; jac.set(Cu59, N, scratch); - scratch = -screened_rates(k_p_Cu59_to_He4_Ni56_reaclib)*Y(Cu59)*state.rho - screened_rates(k_p_Cu59_to_Zn60_reaclib)*Y(Cu59)*state.rho - screened_rates(k_p_Cu59_to_n_Zn59_reaclib)*Y(Cu59)*state.rho + screened_rates(k_p_Ni58_to_Cu59_reaclib)*Y(Ni58)*state.rho + screened_rates(k_p_Ni59_to_n_Cu59_reaclib)*Y(Ni59)*state.rho + screened_rates(k_p_Zn62_to_He4_Cu59_reaclib)*Y(Zn62)*state.rho; + scratch = -screened_rates(k_Cu59_p_to_He4_Ni56_reaclib)*Y(Cu59)*state.rho - screened_rates(k_Cu59_p_to_Zn60_reaclib)*Y(Cu59)*state.rho - screened_rates(k_Cu59_p_to_n_Zn59_derived)*Y(Cu59)*state.rho + screened_rates(k_Ni58_p_to_Cu59_reaclib)*Y(Ni58)*state.rho + screened_rates(k_Ni59_p_to_n_Cu59_derived)*Y(Ni59)*state.rho + screened_rates(k_Zn62_p_to_He4_Cu59_reaclib)*Y(Zn62)*state.rho; jac.set(Cu59, H1, scratch); jac.set(Cu59, H2, 0.0); jac.set(Cu59, He3, 0.0); - scratch = screened_rates(k_He4_Co55_to_Cu59_reaclib)*Y(Co55)*state.rho + screened_rates(k_He4_Co56_to_n_Cu59_reaclib)*Y(Co56)*state.rho - screened_rates(k_He4_Cu59_to_Ga63_reaclib)*Y(Cu59)*state.rho - screened_rates(k_He4_Cu59_to_n_Ga62_reaclib)*Y(Cu59)*state.rho - screened_rates(k_He4_Cu59_to_p_Zn62_reaclib)*Y(Cu59)*state.rho + screened_rates(k_He4_Ni56_to_p_Cu59_reaclib)*Y(Ni56)*state.rho; + scratch = screened_rates(k_Co55_He4_to_Cu59_reaclib)*Y(Co55)*state.rho + screened_rates(k_Co56_He4_to_n_Cu59_derived)*Y(Co56)*state.rho - screened_rates(k_Cu59_He4_to_Ga63_reaclib)*Y(Cu59)*state.rho - screened_rates(k_Cu59_He4_to_n_Ga62_derived)*Y(Cu59)*state.rho - screened_rates(k_Cu59_He4_to_p_Zn62_derived)*Y(Cu59)*state.rho + screened_rates(k_Ni56_He4_to_p_Cu59_derived)*Y(Ni56)*state.rho; jac.set(Cu59, He4, scratch); jac.set(Cu59, Li6, 0.0); @@ -56481,10 +54290,10 @@ void jac_nuc(const burn_t& state, jac.set(Cu59, Co54, 0.0); - scratch = screened_rates(k_He4_Co55_to_Cu59_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Co55_He4_to_Cu59_reaclib)*Y(He4)*state.rho; jac.set(Cu59, Co55, scratch); - scratch = screened_rates(k_He4_Co56_to_n_Cu59_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Co56_He4_to_n_Cu59_derived)*Y(He4)*state.rho; jac.set(Cu59, Co56, scratch); jac.set(Cu59, Co57, 0.0); @@ -56493,15 +54302,15 @@ void jac_nuc(const burn_t& state, jac.set(Cu59, Co59, 0.0); - scratch = screened_rates(k_He4_Ni56_to_p_Cu59_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ni56_He4_to_p_Cu59_derived)*Y(He4)*state.rho; jac.set(Cu59, Ni56, scratch); jac.set(Cu59, Ni57, 0.0); - scratch = screened_rates(k_p_Ni58_to_Cu59_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni58_p_to_Cu59_reaclib)*Y(H1)*state.rho; jac.set(Cu59, Ni58, scratch); - scratch = screened_rates(k_Ni59_to_Cu59_weaktab) + screened_rates(k_p_Ni59_to_n_Cu59_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni59_p_to_n_Cu59_derived)*Y(H1)*state.rho + screened_rates(k_Ni59_to_Cu59_beta_neg_weaktab); jac.set(Cu59, Ni59, scratch); jac.set(Cu59, Ni60, 0.0); @@ -56516,13 +54325,13 @@ void jac_nuc(const burn_t& state, jac.set(Cu59, Cu57, 0.0); - scratch = screened_rates(k_n_Cu58_to_Cu59_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cu58_n_to_Cu59_reaclib)*Y(N)*state.rho; jac.set(Cu59, Cu58, scratch); - scratch = -screened_rates(k_Cu59_to_He4_Co55_reaclib) - screened_rates(k_Cu59_to_Ni59_weaktab) - screened_rates(k_Cu59_to_n_Cu58_reaclib) - screened_rates(k_Cu59_to_p_Ni58_reaclib) - screened_rates(k_He4_Cu59_to_Ga63_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cu59_to_n_Ga62_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cu59_to_p_Zn62_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cu59_to_Cu60_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu59_to_He4_Co56_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu59_to_p_Ni59_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cu59_to_He4_Ni56_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu59_to_Zn60_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu59_to_n_Zn59_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cu59_He4_to_Ga63_reaclib)*Y(He4)*state.rho - screened_rates(k_Cu59_He4_to_n_Ga62_derived)*Y(He4)*state.rho - screened_rates(k_Cu59_He4_to_p_Zn62_derived)*Y(He4)*state.rho - screened_rates(k_Cu59_n_to_Cu60_reaclib)*Y(N)*state.rho - screened_rates(k_Cu59_n_to_He4_Co56_reaclib)*Y(N)*state.rho - screened_rates(k_Cu59_n_to_p_Ni59_reaclib)*Y(N)*state.rho - screened_rates(k_Cu59_p_to_He4_Ni56_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu59_p_to_Zn60_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu59_p_to_n_Zn59_derived)*Y(H1)*state.rho - screened_rates(k_Cu59_to_He4_Co55_derived) - screened_rates(k_Cu59_to_Ni59_electron_capture_weaktab) - screened_rates(k_Cu59_to_n_Cu58_derived) - screened_rates(k_Cu59_to_p_Ni58_derived); jac.set(Cu59, Cu59, scratch); - scratch = screened_rates(k_Cu60_to_n_Cu59_reaclib); + scratch = screened_rates(k_Cu60_to_n_Cu59_derived); jac.set(Cu59, Cu60, scratch); jac.set(Cu59, Cu61, 0.0); @@ -56535,15 +54344,15 @@ void jac_nuc(const burn_t& state, jac.set(Cu59, Cu65, 0.0); - scratch = screened_rates(k_Zn59_to_Cu59_reaclib) + screened_rates(k_n_Zn59_to_p_Cu59_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Zn59_n_to_p_Cu59_reaclib)*Y(N)*state.rho + screened_rates(k_Zn59_to_Cu59_beta_pos_reaclib); jac.set(Cu59, Zn59, scratch); - scratch = screened_rates(k_Zn60_to_p_Cu59_reaclib); + scratch = screened_rates(k_Zn60_to_p_Cu59_derived); jac.set(Cu59, Zn60, scratch); jac.set(Cu59, Zn61, 0.0); - scratch = screened_rates(k_p_Zn62_to_He4_Cu59_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Zn62_p_to_He4_Cu59_reaclib)*Y(H1)*state.rho; jac.set(Cu59, Zn62, scratch); jac.set(Cu59, Zn63, 0.0); @@ -56554,10 +54363,10 @@ void jac_nuc(const burn_t& state, jac.set(Cu59, Zn66, 0.0); - scratch = screened_rates(k_n_Ga62_to_He4_Cu59_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ga62_n_to_He4_Cu59_reaclib)*Y(N)*state.rho; jac.set(Cu59, Ga62, scratch); - scratch = screened_rates(k_Ga63_to_He4_Cu59_reaclib); + scratch = screened_rates(k_Ga63_to_He4_Cu59_derived); jac.set(Cu59, Ga63, scratch); jac.set(Cu59, Ga64, 0.0); @@ -56566,17 +54375,17 @@ void jac_nuc(const burn_t& state, jac.set(Cu59, Ge64, 0.0); - scratch = screened_rates(k_n_Cu59_to_Cu60_reaclib)*Y(Cu59)*state.rho - screened_rates(k_n_Cu60_to_Cu61_reaclib)*Y(Cu60)*state.rho - screened_rates(k_n_Cu60_to_He4_Co57_reaclib)*Y(Cu60)*state.rho - screened_rates(k_n_Cu60_to_p_Ni60_reaclib)*Y(Cu60)*state.rho + screened_rates(k_n_Ga63_to_He4_Cu60_reaclib)*Y(Ga63)*state.rho + screened_rates(k_n_Zn60_to_p_Cu60_reaclib)*Y(Zn60)*state.rho; + scratch = screened_rates(k_Cu59_n_to_Cu60_reaclib)*Y(Cu59)*state.rho - screened_rates(k_Cu60_n_to_Cu61_reaclib)*Y(Cu60)*state.rho - screened_rates(k_Cu60_n_to_He4_Co57_reaclib)*Y(Cu60)*state.rho - screened_rates(k_Cu60_n_to_p_Ni60_reaclib)*Y(Cu60)*state.rho + screened_rates(k_Ga63_n_to_He4_Cu60_reaclib)*Y(Ga63)*state.rho + screened_rates(k_Zn60_n_to_p_Cu60_reaclib)*Y(Zn60)*state.rho; jac.set(Cu60, N, scratch); - scratch = -screened_rates(k_p_Cu60_to_He4_Ni57_reaclib)*Y(Cu60)*state.rho - screened_rates(k_p_Cu60_to_Zn61_reaclib)*Y(Cu60)*state.rho - screened_rates(k_p_Cu60_to_n_Zn60_reaclib)*Y(Cu60)*state.rho + screened_rates(k_p_Ni59_to_Cu60_reaclib)*Y(Ni59)*state.rho + screened_rates(k_p_Ni60_to_n_Cu60_reaclib)*Y(Ni60)*state.rho + screened_rates(k_p_Zn63_to_He4_Cu60_reaclib)*Y(Zn63)*state.rho; + scratch = -screened_rates(k_Cu60_p_to_He4_Ni57_reaclib)*Y(Cu60)*state.rho - screened_rates(k_Cu60_p_to_Zn61_reaclib)*Y(Cu60)*state.rho - screened_rates(k_Cu60_p_to_n_Zn60_derived)*Y(Cu60)*state.rho + screened_rates(k_Ni59_p_to_Cu60_reaclib)*Y(Ni59)*state.rho + screened_rates(k_Ni60_p_to_n_Cu60_derived)*Y(Ni60)*state.rho + screened_rates(k_Zn63_p_to_He4_Cu60_reaclib)*Y(Zn63)*state.rho; jac.set(Cu60, H1, scratch); jac.set(Cu60, H2, 0.0); jac.set(Cu60, He3, 0.0); - scratch = screened_rates(k_He4_Co56_to_Cu60_reaclib)*Y(Co56)*state.rho + screened_rates(k_He4_Co57_to_n_Cu60_reaclib)*Y(Co57)*state.rho - screened_rates(k_He4_Cu60_to_Ga64_reaclib)*Y(Cu60)*state.rho - screened_rates(k_He4_Cu60_to_n_Ga63_reaclib)*Y(Cu60)*state.rho - screened_rates(k_He4_Cu60_to_p_Zn63_reaclib)*Y(Cu60)*state.rho + screened_rates(k_He4_Ni57_to_p_Cu60_reaclib)*Y(Ni57)*state.rho; + scratch = screened_rates(k_Co56_He4_to_Cu60_reaclib)*Y(Co56)*state.rho + screened_rates(k_Co57_He4_to_n_Cu60_derived)*Y(Co57)*state.rho - screened_rates(k_Cu60_He4_to_Ga64_reaclib)*Y(Cu60)*state.rho - screened_rates(k_Cu60_He4_to_n_Ga63_derived)*Y(Cu60)*state.rho - screened_rates(k_Cu60_He4_to_p_Zn63_derived)*Y(Cu60)*state.rho + screened_rates(k_Ni57_He4_to_p_Cu60_derived)*Y(Ni57)*state.rho; jac.set(Cu60, He4, scratch); jac.set(Cu60, Li6, 0.0); @@ -56819,10 +54628,10 @@ void jac_nuc(const burn_t& state, jac.set(Cu60, Co55, 0.0); - scratch = screened_rates(k_He4_Co56_to_Cu60_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Co56_He4_to_Cu60_reaclib)*Y(He4)*state.rho; jac.set(Cu60, Co56, scratch); - scratch = screened_rates(k_He4_Co57_to_n_Cu60_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Co57_He4_to_n_Cu60_derived)*Y(He4)*state.rho; jac.set(Cu60, Co57, scratch); jac.set(Cu60, Co58, 0.0); @@ -56831,15 +54640,15 @@ void jac_nuc(const burn_t& state, jac.set(Cu60, Ni56, 0.0); - scratch = screened_rates(k_He4_Ni57_to_p_Cu60_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ni57_He4_to_p_Cu60_derived)*Y(He4)*state.rho; jac.set(Cu60, Ni57, scratch); jac.set(Cu60, Ni58, 0.0); - scratch = screened_rates(k_p_Ni59_to_Cu60_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni59_p_to_Cu60_reaclib)*Y(H1)*state.rho; jac.set(Cu60, Ni59, scratch); - scratch = screened_rates(k_Ni60_to_Cu60_weaktab) + screened_rates(k_p_Ni60_to_n_Cu60_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni60_p_to_n_Cu60_derived)*Y(H1)*state.rho + screened_rates(k_Ni60_to_Cu60_beta_neg_weaktab); jac.set(Cu60, Ni60, scratch); jac.set(Cu60, Ni61, 0.0); @@ -56854,13 +54663,13 @@ void jac_nuc(const burn_t& state, jac.set(Cu60, Cu58, 0.0); - scratch = screened_rates(k_n_Cu59_to_Cu60_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cu59_n_to_Cu60_reaclib)*Y(N)*state.rho; jac.set(Cu60, Cu59, scratch); - scratch = -screened_rates(k_Cu60_to_He4_Co56_reaclib) - screened_rates(k_Cu60_to_Ni60_weaktab) - screened_rates(k_Cu60_to_Zn60_weaktab) - screened_rates(k_Cu60_to_n_Cu59_reaclib) - screened_rates(k_Cu60_to_p_Ni59_reaclib) - screened_rates(k_He4_Cu60_to_Ga64_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cu60_to_n_Ga63_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cu60_to_p_Zn63_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cu60_to_Cu61_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu60_to_He4_Co57_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu60_to_p_Ni60_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cu60_to_He4_Ni57_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu60_to_Zn61_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu60_to_n_Zn60_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cu60_He4_to_Ga64_reaclib)*Y(He4)*state.rho - screened_rates(k_Cu60_He4_to_n_Ga63_derived)*Y(He4)*state.rho - screened_rates(k_Cu60_He4_to_p_Zn63_derived)*Y(He4)*state.rho - screened_rates(k_Cu60_n_to_Cu61_reaclib)*Y(N)*state.rho - screened_rates(k_Cu60_n_to_He4_Co57_reaclib)*Y(N)*state.rho - screened_rates(k_Cu60_n_to_p_Ni60_reaclib)*Y(N)*state.rho - screened_rates(k_Cu60_p_to_He4_Ni57_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu60_p_to_Zn61_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu60_p_to_n_Zn60_derived)*Y(H1)*state.rho - screened_rates(k_Cu60_to_He4_Co56_derived) - screened_rates(k_Cu60_to_Ni60_electron_capture_weaktab) - screened_rates(k_Cu60_to_Zn60_beta_neg_weaktab) - screened_rates(k_Cu60_to_n_Cu59_derived) - screened_rates(k_Cu60_to_p_Ni59_derived); jac.set(Cu60, Cu60, scratch); - scratch = screened_rates(k_Cu61_to_n_Cu60_reaclib); + scratch = screened_rates(k_Cu61_to_n_Cu60_derived); jac.set(Cu60, Cu61, scratch); jac.set(Cu60, Cu62, 0.0); @@ -56873,15 +54682,15 @@ void jac_nuc(const burn_t& state, jac.set(Cu60, Zn59, 0.0); - scratch = screened_rates(k_Zn60_to_Cu60_weaktab) + screened_rates(k_n_Zn60_to_p_Cu60_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Zn60_n_to_p_Cu60_reaclib)*Y(N)*state.rho + screened_rates(k_Zn60_to_Cu60_electron_capture_weaktab); jac.set(Cu60, Zn60, scratch); - scratch = screened_rates(k_Zn61_to_p_Cu60_reaclib); + scratch = screened_rates(k_Zn61_to_p_Cu60_derived); jac.set(Cu60, Zn61, scratch); jac.set(Cu60, Zn62, 0.0); - scratch = screened_rates(k_p_Zn63_to_He4_Cu60_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Zn63_p_to_He4_Cu60_reaclib)*Y(H1)*state.rho; jac.set(Cu60, Zn63, scratch); jac.set(Cu60, Zn64, 0.0); @@ -56892,27 +54701,27 @@ void jac_nuc(const burn_t& state, jac.set(Cu60, Ga62, 0.0); - scratch = screened_rates(k_n_Ga63_to_He4_Cu60_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ga63_n_to_He4_Cu60_reaclib)*Y(N)*state.rho; jac.set(Cu60, Ga63, scratch); - scratch = screened_rates(k_Ga64_to_He4_Cu60_reaclib); + scratch = screened_rates(k_Ga64_to_He4_Cu60_derived); jac.set(Cu60, Ga64, scratch); jac.set(Cu60, Ge63, 0.0); jac.set(Cu60, Ge64, 0.0); - scratch = screened_rates(k_n_Cu60_to_Cu61_reaclib)*Y(Cu60)*state.rho - screened_rates(k_n_Cu61_to_Cu62_reaclib)*Y(Cu61)*state.rho - screened_rates(k_n_Cu61_to_He4_Co58_reaclib)*Y(Cu61)*state.rho - screened_rates(k_n_Cu61_to_p_Ni61_reaclib)*Y(Cu61)*state.rho + screened_rates(k_n_Ga64_to_He4_Cu61_reaclib)*Y(Ga64)*state.rho + screened_rates(k_n_Zn61_to_p_Cu61_reaclib)*Y(Zn61)*state.rho; + scratch = screened_rates(k_Cu60_n_to_Cu61_reaclib)*Y(Cu60)*state.rho - screened_rates(k_Cu61_n_to_Cu62_reaclib)*Y(Cu61)*state.rho - screened_rates(k_Cu61_n_to_He4_Co58_reaclib)*Y(Cu61)*state.rho - screened_rates(k_Cu61_n_to_p_Ni61_reaclib)*Y(Cu61)*state.rho + screened_rates(k_Ga64_n_to_He4_Cu61_reaclib)*Y(Ga64)*state.rho + screened_rates(k_Zn61_n_to_p_Cu61_reaclib)*Y(Zn61)*state.rho; jac.set(Cu61, N, scratch); - scratch = -screened_rates(k_p_Cu61_to_He4_Ni58_reaclib)*Y(Cu61)*state.rho - screened_rates(k_p_Cu61_to_Zn62_reaclib)*Y(Cu61)*state.rho - screened_rates(k_p_Cu61_to_n_Zn61_reaclib)*Y(Cu61)*state.rho + screened_rates(k_p_Ni60_to_Cu61_reaclib)*Y(Ni60)*state.rho + screened_rates(k_p_Ni61_to_n_Cu61_reaclib)*Y(Ni61)*state.rho + screened_rates(k_p_Zn64_to_He4_Cu61_reaclib)*Y(Zn64)*state.rho; + scratch = -screened_rates(k_Cu61_p_to_He4_Ni58_reaclib)*Y(Cu61)*state.rho - screened_rates(k_Cu61_p_to_Zn62_reaclib)*Y(Cu61)*state.rho - screened_rates(k_Cu61_p_to_n_Zn61_derived)*Y(Cu61)*state.rho + screened_rates(k_Ni60_p_to_Cu61_reaclib)*Y(Ni60)*state.rho + screened_rates(k_Ni61_p_to_n_Cu61_derived)*Y(Ni61)*state.rho + screened_rates(k_Zn64_p_to_He4_Cu61_reaclib)*Y(Zn64)*state.rho; jac.set(Cu61, H1, scratch); jac.set(Cu61, H2, 0.0); jac.set(Cu61, He3, 0.0); - scratch = screened_rates(k_He4_Co57_to_Cu61_reaclib)*Y(Co57)*state.rho + screened_rates(k_He4_Co58_to_n_Cu61_reaclib)*Y(Co58)*state.rho - screened_rates(k_He4_Cu61_to_n_Ga64_reaclib)*Y(Cu61)*state.rho - screened_rates(k_He4_Cu61_to_p_Zn64_reaclib)*Y(Cu61)*state.rho + screened_rates(k_He4_Ni58_to_p_Cu61_reaclib)*Y(Ni58)*state.rho; + scratch = screened_rates(k_Co57_He4_to_Cu61_reaclib)*Y(Co57)*state.rho + screened_rates(k_Co58_He4_to_n_Cu61_derived)*Y(Co58)*state.rho - screened_rates(k_Cu61_He4_to_n_Ga64_derived)*Y(Cu61)*state.rho - screened_rates(k_Cu61_He4_to_p_Zn64_derived)*Y(Cu61)*state.rho + screened_rates(k_Ni58_He4_to_p_Cu61_derived)*Y(Ni58)*state.rho; jac.set(Cu61, He4, scratch); jac.set(Cu61, Li6, 0.0); @@ -57157,10 +54966,10 @@ void jac_nuc(const burn_t& state, jac.set(Cu61, Co56, 0.0); - scratch = screened_rates(k_He4_Co57_to_Cu61_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Co57_He4_to_Cu61_reaclib)*Y(He4)*state.rho; jac.set(Cu61, Co57, scratch); - scratch = screened_rates(k_He4_Co58_to_n_Cu61_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Co58_He4_to_n_Cu61_derived)*Y(He4)*state.rho; jac.set(Cu61, Co58, scratch); jac.set(Cu61, Co59, 0.0); @@ -57169,15 +54978,15 @@ void jac_nuc(const burn_t& state, jac.set(Cu61, Ni57, 0.0); - scratch = screened_rates(k_He4_Ni58_to_p_Cu61_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ni58_He4_to_p_Cu61_derived)*Y(He4)*state.rho; jac.set(Cu61, Ni58, scratch); jac.set(Cu61, Ni59, 0.0); - scratch = screened_rates(k_p_Ni60_to_Cu61_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni60_p_to_Cu61_reaclib)*Y(H1)*state.rho; jac.set(Cu61, Ni60, scratch); - scratch = screened_rates(k_Ni61_to_Cu61_weaktab) + screened_rates(k_p_Ni61_to_n_Cu61_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni61_p_to_n_Cu61_derived)*Y(H1)*state.rho + screened_rates(k_Ni61_to_Cu61_beta_neg_weaktab); jac.set(Cu61, Ni61, scratch); jac.set(Cu61, Ni62, 0.0); @@ -57192,13 +55001,13 @@ void jac_nuc(const burn_t& state, jac.set(Cu61, Cu59, 0.0); - scratch = screened_rates(k_n_Cu60_to_Cu61_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cu60_n_to_Cu61_reaclib)*Y(N)*state.rho; jac.set(Cu61, Cu60, scratch); - scratch = -screened_rates(k_Cu61_to_He4_Co57_reaclib) - screened_rates(k_Cu61_to_Ni61_weaktab) - screened_rates(k_Cu61_to_Zn61_weaktab) - screened_rates(k_Cu61_to_n_Cu60_reaclib) - screened_rates(k_Cu61_to_p_Ni60_reaclib) - screened_rates(k_He4_Cu61_to_n_Ga64_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Cu61_to_p_Zn64_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cu61_to_Cu62_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu61_to_He4_Co58_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu61_to_p_Ni61_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cu61_to_He4_Ni58_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu61_to_Zn62_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu61_to_n_Zn61_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cu61_He4_to_n_Ga64_derived)*Y(He4)*state.rho - screened_rates(k_Cu61_He4_to_p_Zn64_derived)*Y(He4)*state.rho - screened_rates(k_Cu61_n_to_Cu62_reaclib)*Y(N)*state.rho - screened_rates(k_Cu61_n_to_He4_Co58_reaclib)*Y(N)*state.rho - screened_rates(k_Cu61_n_to_p_Ni61_reaclib)*Y(N)*state.rho - screened_rates(k_Cu61_p_to_He4_Ni58_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu61_p_to_Zn62_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu61_p_to_n_Zn61_derived)*Y(H1)*state.rho - screened_rates(k_Cu61_to_He4_Co57_derived) - screened_rates(k_Cu61_to_Ni61_electron_capture_weaktab) - screened_rates(k_Cu61_to_Zn61_beta_neg_weaktab) - screened_rates(k_Cu61_to_n_Cu60_derived) - screened_rates(k_Cu61_to_p_Ni60_derived); jac.set(Cu61, Cu61, scratch); - scratch = screened_rates(k_Cu62_to_n_Cu61_reaclib); + scratch = screened_rates(k_Cu62_to_n_Cu61_derived); jac.set(Cu61, Cu62, scratch); jac.set(Cu61, Cu63, 0.0); @@ -57211,15 +55020,15 @@ void jac_nuc(const burn_t& state, jac.set(Cu61, Zn60, 0.0); - scratch = screened_rates(k_Zn61_to_Cu61_weaktab) + screened_rates(k_n_Zn61_to_p_Cu61_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Zn61_n_to_p_Cu61_reaclib)*Y(N)*state.rho + screened_rates(k_Zn61_to_Cu61_electron_capture_weaktab); jac.set(Cu61, Zn61, scratch); - scratch = screened_rates(k_Zn62_to_p_Cu61_reaclib); + scratch = screened_rates(k_Zn62_to_p_Cu61_derived); jac.set(Cu61, Zn62, scratch); jac.set(Cu61, Zn63, 0.0); - scratch = screened_rates(k_p_Zn64_to_He4_Cu61_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Zn64_p_to_He4_Cu61_reaclib)*Y(H1)*state.rho; jac.set(Cu61, Zn64, scratch); jac.set(Cu61, Zn65, 0.0); @@ -57230,24 +55039,24 @@ void jac_nuc(const burn_t& state, jac.set(Cu61, Ga63, 0.0); - scratch = screened_rates(k_n_Ga64_to_He4_Cu61_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ga64_n_to_He4_Cu61_reaclib)*Y(N)*state.rho; jac.set(Cu61, Ga64, scratch); jac.set(Cu61, Ge63, 0.0); jac.set(Cu61, Ge64, 0.0); - scratch = screened_rates(k_n_Cu61_to_Cu62_reaclib)*Y(Cu61)*state.rho - screened_rates(k_n_Cu62_to_Cu63_reaclib)*Y(Cu62)*state.rho - screened_rates(k_n_Cu62_to_He4_Co59_reaclib)*Y(Cu62)*state.rho - screened_rates(k_n_Cu62_to_p_Ni62_reaclib)*Y(Cu62)*state.rho + screened_rates(k_n_Zn62_to_p_Cu62_reaclib)*Y(Zn62)*state.rho; + scratch = screened_rates(k_Cu61_n_to_Cu62_reaclib)*Y(Cu61)*state.rho - screened_rates(k_Cu62_n_to_Cu63_reaclib)*Y(Cu62)*state.rho - screened_rates(k_Cu62_n_to_He4_Co59_reaclib)*Y(Cu62)*state.rho - screened_rates(k_Cu62_n_to_p_Ni62_reaclib)*Y(Cu62)*state.rho + screened_rates(k_Zn62_n_to_p_Cu62_reaclib)*Y(Zn62)*state.rho; jac.set(Cu62, N, scratch); - scratch = -screened_rates(k_p_Cu62_to_He4_Ni59_reaclib)*Y(Cu62)*state.rho - screened_rates(k_p_Cu62_to_Zn63_reaclib)*Y(Cu62)*state.rho - screened_rates(k_p_Cu62_to_n_Zn62_reaclib)*Y(Cu62)*state.rho + screened_rates(k_p_Ni61_to_Cu62_reaclib)*Y(Ni61)*state.rho + screened_rates(k_p_Ni62_to_n_Cu62_reaclib)*Y(Ni62)*state.rho + screened_rates(k_p_Zn65_to_He4_Cu62_reaclib)*Y(Zn65)*state.rho; + scratch = -screened_rates(k_Cu62_p_to_He4_Ni59_reaclib)*Y(Cu62)*state.rho - screened_rates(k_Cu62_p_to_Zn63_reaclib)*Y(Cu62)*state.rho - screened_rates(k_Cu62_p_to_n_Zn62_derived)*Y(Cu62)*state.rho + screened_rates(k_Ni61_p_to_Cu62_reaclib)*Y(Ni61)*state.rho + screened_rates(k_Ni62_p_to_n_Cu62_derived)*Y(Ni62)*state.rho + screened_rates(k_Zn65_p_to_He4_Cu62_reaclib)*Y(Zn65)*state.rho; jac.set(Cu62, H1, scratch); jac.set(Cu62, H2, 0.0); jac.set(Cu62, He3, 0.0); - scratch = screened_rates(k_He4_Co58_to_Cu62_reaclib)*Y(Co58)*state.rho + screened_rates(k_He4_Co59_to_n_Cu62_reaclib)*Y(Co59)*state.rho - screened_rates(k_He4_Cu62_to_p_Zn65_reaclib)*Y(Cu62)*state.rho + screened_rates(k_He4_Ni59_to_p_Cu62_reaclib)*Y(Ni59)*state.rho; + scratch = screened_rates(k_Co58_He4_to_Cu62_reaclib)*Y(Co58)*state.rho + screened_rates(k_Co59_He4_to_n_Cu62_derived)*Y(Co59)*state.rho - screened_rates(k_Cu62_He4_to_p_Zn65_derived)*Y(Cu62)*state.rho + screened_rates(k_Ni59_He4_to_p_Cu62_derived)*Y(Ni59)*state.rho; jac.set(Cu62, He4, scratch); jac.set(Cu62, Li6, 0.0); @@ -57494,10 +55303,10 @@ void jac_nuc(const burn_t& state, jac.set(Cu62, Co57, 0.0); - scratch = screened_rates(k_He4_Co58_to_Cu62_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Co58_He4_to_Cu62_reaclib)*Y(He4)*state.rho; jac.set(Cu62, Co58, scratch); - scratch = screened_rates(k_He4_Co59_to_n_Cu62_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Co59_He4_to_n_Cu62_derived)*Y(He4)*state.rho; jac.set(Cu62, Co59, scratch); jac.set(Cu62, Ni56, 0.0); @@ -57506,15 +55315,15 @@ void jac_nuc(const burn_t& state, jac.set(Cu62, Ni58, 0.0); - scratch = screened_rates(k_He4_Ni59_to_p_Cu62_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ni59_He4_to_p_Cu62_derived)*Y(He4)*state.rho; jac.set(Cu62, Ni59, scratch); jac.set(Cu62, Ni60, 0.0); - scratch = screened_rates(k_p_Ni61_to_Cu62_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni61_p_to_Cu62_reaclib)*Y(H1)*state.rho; jac.set(Cu62, Ni61, scratch); - scratch = screened_rates(k_Ni62_to_Cu62_weaktab) + screened_rates(k_p_Ni62_to_n_Cu62_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni62_p_to_n_Cu62_derived)*Y(H1)*state.rho + screened_rates(k_Ni62_to_Cu62_beta_neg_weaktab); jac.set(Cu62, Ni62, scratch); jac.set(Cu62, Ni63, 0.0); @@ -57529,13 +55338,13 @@ void jac_nuc(const burn_t& state, jac.set(Cu62, Cu60, 0.0); - scratch = screened_rates(k_n_Cu61_to_Cu62_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cu61_n_to_Cu62_reaclib)*Y(N)*state.rho; jac.set(Cu62, Cu61, scratch); - scratch = -screened_rates(k_Cu62_to_He4_Co58_reaclib) - screened_rates(k_Cu62_to_Ni62_weaktab) - screened_rates(k_Cu62_to_Zn62_weaktab) - screened_rates(k_Cu62_to_n_Cu61_reaclib) - screened_rates(k_Cu62_to_p_Ni61_reaclib) - screened_rates(k_He4_Cu62_to_p_Zn65_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cu62_to_Cu63_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu62_to_He4_Co59_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu62_to_p_Ni62_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cu62_to_He4_Ni59_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu62_to_Zn63_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu62_to_n_Zn62_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cu62_He4_to_p_Zn65_derived)*Y(He4)*state.rho - screened_rates(k_Cu62_n_to_Cu63_reaclib)*Y(N)*state.rho - screened_rates(k_Cu62_n_to_He4_Co59_reaclib)*Y(N)*state.rho - screened_rates(k_Cu62_n_to_p_Ni62_reaclib)*Y(N)*state.rho - screened_rates(k_Cu62_p_to_He4_Ni59_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu62_p_to_Zn63_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu62_p_to_n_Zn62_derived)*Y(H1)*state.rho - screened_rates(k_Cu62_to_He4_Co58_derived) - screened_rates(k_Cu62_to_Ni62_electron_capture_weaktab) - screened_rates(k_Cu62_to_Zn62_beta_neg_weaktab) - screened_rates(k_Cu62_to_n_Cu61_derived) - screened_rates(k_Cu62_to_p_Ni61_derived); jac.set(Cu62, Cu62, scratch); - scratch = screened_rates(k_Cu63_to_n_Cu62_reaclib); + scratch = screened_rates(k_Cu63_to_n_Cu62_derived); jac.set(Cu62, Cu63, scratch); jac.set(Cu62, Cu64, 0.0); @@ -57548,15 +55357,15 @@ void jac_nuc(const burn_t& state, jac.set(Cu62, Zn61, 0.0); - scratch = screened_rates(k_Zn62_to_Cu62_weaktab) + screened_rates(k_n_Zn62_to_p_Cu62_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Zn62_n_to_p_Cu62_reaclib)*Y(N)*state.rho + screened_rates(k_Zn62_to_Cu62_electron_capture_weaktab); jac.set(Cu62, Zn62, scratch); - scratch = screened_rates(k_Zn63_to_p_Cu62_reaclib); + scratch = screened_rates(k_Zn63_to_p_Cu62_derived); jac.set(Cu62, Zn63, scratch); jac.set(Cu62, Zn64, 0.0); - scratch = screened_rates(k_p_Zn65_to_He4_Cu62_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Zn65_p_to_He4_Cu62_reaclib)*Y(H1)*state.rho; jac.set(Cu62, Zn65, scratch); jac.set(Cu62, Zn66, 0.0); @@ -57571,17 +55380,17 @@ void jac_nuc(const burn_t& state, jac.set(Cu62, Ge64, 0.0); - scratch = screened_rates(k_n_Cu62_to_Cu63_reaclib)*Y(Cu62)*state.rho - screened_rates(k_n_Cu63_to_Cu64_reaclib)*Y(Cu63)*state.rho - screened_rates(k_n_Cu63_to_p_Ni63_reaclib)*Y(Cu63)*state.rho + screened_rates(k_n_Zn63_to_p_Cu63_reaclib)*Y(Zn63)*state.rho; + scratch = screened_rates(k_Cu62_n_to_Cu63_reaclib)*Y(Cu62)*state.rho - screened_rates(k_Cu63_n_to_Cu64_reaclib)*Y(Cu63)*state.rho - screened_rates(k_Cu63_n_to_p_Ni63_reaclib)*Y(Cu63)*state.rho + screened_rates(k_Zn63_n_to_p_Cu63_reaclib)*Y(Zn63)*state.rho; jac.set(Cu63, N, scratch); - scratch = -screened_rates(k_p_Cu63_to_He4_Ni60_reaclib)*Y(Cu63)*state.rho - screened_rates(k_p_Cu63_to_Zn64_reaclib)*Y(Cu63)*state.rho - screened_rates(k_p_Cu63_to_n_Zn63_reaclib)*Y(Cu63)*state.rho + screened_rates(k_p_Ni62_to_Cu63_reaclib)*Y(Ni62)*state.rho + screened_rates(k_p_Ni63_to_n_Cu63_reaclib)*Y(Ni63)*state.rho + screened_rates(k_p_Zn66_to_He4_Cu63_reaclib)*Y(Zn66)*state.rho; + scratch = -screened_rates(k_Cu63_p_to_He4_Ni60_reaclib)*Y(Cu63)*state.rho - screened_rates(k_Cu63_p_to_Zn64_reaclib)*Y(Cu63)*state.rho - screened_rates(k_Cu63_p_to_n_Zn63_derived)*Y(Cu63)*state.rho + screened_rates(k_Ni62_p_to_Cu63_reaclib)*Y(Ni62)*state.rho + screened_rates(k_Ni63_p_to_n_Cu63_derived)*Y(Ni63)*state.rho + screened_rates(k_Zn66_p_to_He4_Cu63_reaclib)*Y(Zn66)*state.rho; jac.set(Cu63, H1, scratch); jac.set(Cu63, H2, 0.0); jac.set(Cu63, He3, 0.0); - scratch = screened_rates(k_He4_Co59_to_Cu63_reaclib)*Y(Co59)*state.rho - screened_rates(k_He4_Cu63_to_p_Zn66_reaclib)*Y(Cu63)*state.rho + screened_rates(k_He4_Ni60_to_p_Cu63_reaclib)*Y(Ni60)*state.rho; + scratch = screened_rates(k_Co59_He4_to_Cu63_reaclib)*Y(Co59)*state.rho - screened_rates(k_Cu63_He4_to_p_Zn66_derived)*Y(Cu63)*state.rho + screened_rates(k_Ni60_He4_to_p_Cu63_derived)*Y(Ni60)*state.rho; jac.set(Cu63, He4, scratch); jac.set(Cu63, Li6, 0.0); @@ -57830,7 +55639,7 @@ void jac_nuc(const burn_t& state, jac.set(Cu63, Co58, 0.0); - scratch = screened_rates(k_He4_Co59_to_Cu63_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Co59_He4_to_Cu63_reaclib)*Y(He4)*state.rho; jac.set(Cu63, Co59, scratch); jac.set(Cu63, Ni56, 0.0); @@ -57841,15 +55650,15 @@ void jac_nuc(const burn_t& state, jac.set(Cu63, Ni59, 0.0); - scratch = screened_rates(k_He4_Ni60_to_p_Cu63_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ni60_He4_to_p_Cu63_derived)*Y(He4)*state.rho; jac.set(Cu63, Ni60, scratch); jac.set(Cu63, Ni61, 0.0); - scratch = screened_rates(k_p_Ni62_to_Cu63_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni62_p_to_Cu63_reaclib)*Y(H1)*state.rho; jac.set(Cu63, Ni62, scratch); - scratch = screened_rates(k_Ni63_to_Cu63_weaktab) + screened_rates(k_p_Ni63_to_n_Cu63_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni63_p_to_n_Cu63_derived)*Y(H1)*state.rho + screened_rates(k_Ni63_to_Cu63_beta_neg_weaktab); jac.set(Cu63, Ni63, scratch); jac.set(Cu63, Ni64, 0.0); @@ -57864,13 +55673,13 @@ void jac_nuc(const burn_t& state, jac.set(Cu63, Cu61, 0.0); - scratch = screened_rates(k_n_Cu62_to_Cu63_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cu62_n_to_Cu63_reaclib)*Y(N)*state.rho; jac.set(Cu63, Cu62, scratch); - scratch = -screened_rates(k_Cu63_to_He4_Co59_reaclib) - screened_rates(k_Cu63_to_Ni63_weaktab) - screened_rates(k_Cu63_to_Zn63_weaktab) - screened_rates(k_Cu63_to_n_Cu62_reaclib) - screened_rates(k_Cu63_to_p_Ni62_reaclib) - screened_rates(k_He4_Cu63_to_p_Zn66_reaclib)*Y(He4)*state.rho - screened_rates(k_n_Cu63_to_Cu64_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu63_to_p_Ni63_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cu63_to_He4_Ni60_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu63_to_Zn64_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu63_to_n_Zn63_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cu63_He4_to_p_Zn66_derived)*Y(He4)*state.rho - screened_rates(k_Cu63_n_to_Cu64_reaclib)*Y(N)*state.rho - screened_rates(k_Cu63_n_to_p_Ni63_reaclib)*Y(N)*state.rho - screened_rates(k_Cu63_p_to_He4_Ni60_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu63_p_to_Zn64_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu63_p_to_n_Zn63_derived)*Y(H1)*state.rho - screened_rates(k_Cu63_to_He4_Co59_derived) - screened_rates(k_Cu63_to_Ni63_electron_capture_weaktab) - screened_rates(k_Cu63_to_Zn63_beta_neg_weaktab) - screened_rates(k_Cu63_to_n_Cu62_derived) - screened_rates(k_Cu63_to_p_Ni62_derived); jac.set(Cu63, Cu63, scratch); - scratch = screened_rates(k_Cu64_to_n_Cu63_reaclib); + scratch = screened_rates(k_Cu64_to_n_Cu63_derived); jac.set(Cu63, Cu64, scratch); jac.set(Cu63, Cu65, 0.0); @@ -57883,15 +55692,15 @@ void jac_nuc(const burn_t& state, jac.set(Cu63, Zn62, 0.0); - scratch = screened_rates(k_Zn63_to_Cu63_weaktab) + screened_rates(k_n_Zn63_to_p_Cu63_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Zn63_n_to_p_Cu63_reaclib)*Y(N)*state.rho + screened_rates(k_Zn63_to_Cu63_electron_capture_weaktab); jac.set(Cu63, Zn63, scratch); - scratch = screened_rates(k_Zn64_to_p_Cu63_reaclib); + scratch = screened_rates(k_Zn64_to_p_Cu63_derived); jac.set(Cu63, Zn64, scratch); jac.set(Cu63, Zn65, 0.0); - scratch = screened_rates(k_p_Zn66_to_He4_Cu63_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Zn66_p_to_He4_Cu63_reaclib)*Y(H1)*state.rho; jac.set(Cu63, Zn66, scratch); jac.set(Cu63, Ga62, 0.0); @@ -57904,17 +55713,17 @@ void jac_nuc(const burn_t& state, jac.set(Cu63, Ge64, 0.0); - scratch = screened_rates(k_n_Cu63_to_Cu64_reaclib)*Y(Cu63)*state.rho - screened_rates(k_n_Cu64_to_Cu65_reaclib)*Y(Cu64)*state.rho - screened_rates(k_n_Cu64_to_p_Ni64_reaclib)*Y(Cu64)*state.rho + screened_rates(k_n_Zn64_to_p_Cu64_reaclib)*Y(Zn64)*state.rho; + scratch = screened_rates(k_Cu63_n_to_Cu64_reaclib)*Y(Cu63)*state.rho - screened_rates(k_Cu64_n_to_Cu65_reaclib)*Y(Cu64)*state.rho - screened_rates(k_Cu64_n_to_p_Ni64_reaclib)*Y(Cu64)*state.rho + screened_rates(k_Zn64_n_to_p_Cu64_reaclib)*Y(Zn64)*state.rho; jac.set(Cu64, N, scratch); - scratch = -screened_rates(k_p_Cu64_to_He4_Ni61_reaclib)*Y(Cu64)*state.rho - screened_rates(k_p_Cu64_to_Zn65_reaclib)*Y(Cu64)*state.rho - screened_rates(k_p_Cu64_to_n_Zn64_reaclib)*Y(Cu64)*state.rho + screened_rates(k_p_Ni63_to_Cu64_reaclib)*Y(Ni63)*state.rho + screened_rates(k_p_Ni64_to_n_Cu64_reaclib)*Y(Ni64)*state.rho; + scratch = -screened_rates(k_Cu64_p_to_He4_Ni61_reaclib)*Y(Cu64)*state.rho - screened_rates(k_Cu64_p_to_Zn65_reaclib)*Y(Cu64)*state.rho - screened_rates(k_Cu64_p_to_n_Zn64_derived)*Y(Cu64)*state.rho + screened_rates(k_Ni63_p_to_Cu64_reaclib)*Y(Ni63)*state.rho + screened_rates(k_Ni64_p_to_n_Cu64_derived)*Y(Ni64)*state.rho; jac.set(Cu64, H1, scratch); jac.set(Cu64, H2, 0.0); jac.set(Cu64, He3, 0.0); - scratch = screened_rates(k_He4_Ni61_to_p_Cu64_reaclib)*Y(Ni61)*state.rho; + scratch = screened_rates(k_Ni61_He4_to_p_Cu64_derived)*Y(Ni61)*state.rho; jac.set(Cu64, He4, scratch); jac.set(Cu64, Li6, 0.0); @@ -58175,15 +55984,15 @@ void jac_nuc(const burn_t& state, jac.set(Cu64, Ni60, 0.0); - scratch = screened_rates(k_He4_Ni61_to_p_Cu64_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ni61_He4_to_p_Cu64_derived)*Y(He4)*state.rho; jac.set(Cu64, Ni61, scratch); jac.set(Cu64, Ni62, 0.0); - scratch = screened_rates(k_p_Ni63_to_Cu64_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni63_p_to_Cu64_reaclib)*Y(H1)*state.rho; jac.set(Cu64, Ni63, scratch); - scratch = screened_rates(k_Ni64_to_Cu64_weaktab) + screened_rates(k_p_Ni64_to_n_Cu64_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni64_p_to_n_Cu64_derived)*Y(H1)*state.rho + screened_rates(k_Ni64_to_Cu64_beta_neg_weaktab); jac.set(Cu64, Ni64, scratch); jac.set(Cu64, Cu57, 0.0); @@ -58198,13 +56007,13 @@ void jac_nuc(const burn_t& state, jac.set(Cu64, Cu62, 0.0); - scratch = screened_rates(k_n_Cu63_to_Cu64_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cu63_n_to_Cu64_reaclib)*Y(N)*state.rho; jac.set(Cu64, Cu63, scratch); - scratch = -screened_rates(k_Cu64_to_Ni64_weaktab) - screened_rates(k_Cu64_to_Zn64_weaktab) - screened_rates(k_Cu64_to_n_Cu63_reaclib) - screened_rates(k_Cu64_to_p_Ni63_reaclib) - screened_rates(k_n_Cu64_to_Cu65_reaclib)*Y(N)*state.rho - screened_rates(k_n_Cu64_to_p_Ni64_reaclib)*Y(N)*state.rho - screened_rates(k_p_Cu64_to_He4_Ni61_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu64_to_Zn65_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu64_to_n_Zn64_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cu64_n_to_Cu65_reaclib)*Y(N)*state.rho - screened_rates(k_Cu64_n_to_p_Ni64_reaclib)*Y(N)*state.rho - screened_rates(k_Cu64_p_to_He4_Ni61_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu64_p_to_Zn65_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu64_p_to_n_Zn64_derived)*Y(H1)*state.rho - screened_rates(k_Cu64_to_Ni64_electron_capture_weaktab) - screened_rates(k_Cu64_to_Zn64_beta_neg_weaktab) - screened_rates(k_Cu64_to_n_Cu63_derived) - screened_rates(k_Cu64_to_p_Ni63_derived); jac.set(Cu64, Cu64, scratch); - scratch = screened_rates(k_Cu65_to_n_Cu64_reaclib); + scratch = screened_rates(k_Cu65_to_n_Cu64_derived); jac.set(Cu64, Cu65, scratch); jac.set(Cu64, Zn59, 0.0); @@ -58217,10 +56026,10 @@ void jac_nuc(const burn_t& state, jac.set(Cu64, Zn63, 0.0); - scratch = screened_rates(k_Zn64_to_Cu64_weaktab) + screened_rates(k_n_Zn64_to_p_Cu64_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Zn64_n_to_p_Cu64_reaclib)*Y(N)*state.rho + screened_rates(k_Zn64_to_Cu64_electron_capture_weaktab); jac.set(Cu64, Zn64, scratch); - scratch = screened_rates(k_Zn65_to_p_Cu64_reaclib); + scratch = screened_rates(k_Zn65_to_p_Cu64_derived); jac.set(Cu64, Zn65, scratch); jac.set(Cu64, Zn66, 0.0); @@ -58235,17 +56044,17 @@ void jac_nuc(const burn_t& state, jac.set(Cu64, Ge64, 0.0); - scratch = screened_rates(k_n_Cu64_to_Cu65_reaclib)*Y(Cu64)*state.rho + screened_rates(k_n_Zn65_to_p_Cu65_reaclib)*Y(Zn65)*state.rho; + scratch = screened_rates(k_Cu64_n_to_Cu65_reaclib)*Y(Cu64)*state.rho + screened_rates(k_Zn65_n_to_p_Cu65_reaclib)*Y(Zn65)*state.rho; jac.set(Cu65, N, scratch); - scratch = -screened_rates(k_p_Cu65_to_He4_Ni62_reaclib)*Y(Cu65)*state.rho - screened_rates(k_p_Cu65_to_Zn66_reaclib)*Y(Cu65)*state.rho - screened_rates(k_p_Cu65_to_n_Zn65_reaclib)*Y(Cu65)*state.rho + screened_rates(k_p_Ni64_to_Cu65_reaclib)*Y(Ni64)*state.rho; + scratch = -screened_rates(k_Cu65_p_to_He4_Ni62_reaclib)*Y(Cu65)*state.rho - screened_rates(k_Cu65_p_to_Zn66_reaclib)*Y(Cu65)*state.rho - screened_rates(k_Cu65_p_to_n_Zn65_derived)*Y(Cu65)*state.rho + screened_rates(k_Ni64_p_to_Cu65_reaclib)*Y(Ni64)*state.rho; jac.set(Cu65, H1, scratch); jac.set(Cu65, H2, 0.0); jac.set(Cu65, He3, 0.0); - scratch = screened_rates(k_He4_Ni62_to_p_Cu65_reaclib)*Y(Ni62)*state.rho; + scratch = screened_rates(k_Ni62_He4_to_p_Cu65_derived)*Y(Ni62)*state.rho; jac.set(Cu65, He4, scratch); jac.set(Cu65, Li6, 0.0); @@ -58508,12 +56317,12 @@ void jac_nuc(const burn_t& state, jac.set(Cu65, Ni61, 0.0); - scratch = screened_rates(k_He4_Ni62_to_p_Cu65_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ni62_He4_to_p_Cu65_derived)*Y(He4)*state.rho; jac.set(Cu65, Ni62, scratch); jac.set(Cu65, Ni63, 0.0); - scratch = screened_rates(k_p_Ni64_to_Cu65_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ni64_p_to_Cu65_reaclib)*Y(H1)*state.rho; jac.set(Cu65, Ni64, scratch); jac.set(Cu65, Cu57, 0.0); @@ -58530,10 +56339,10 @@ void jac_nuc(const burn_t& state, jac.set(Cu65, Cu63, 0.0); - scratch = screened_rates(k_n_Cu64_to_Cu65_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Cu64_n_to_Cu65_reaclib)*Y(N)*state.rho; jac.set(Cu65, Cu64, scratch); - scratch = -screened_rates(k_Cu65_to_Zn65_weaktab) - screened_rates(k_Cu65_to_n_Cu64_reaclib) - screened_rates(k_Cu65_to_p_Ni64_reaclib) - screened_rates(k_p_Cu65_to_He4_Ni62_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu65_to_Zn66_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Cu65_to_n_Zn65_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Cu65_p_to_He4_Ni62_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu65_p_to_Zn66_reaclib)*Y(H1)*state.rho - screened_rates(k_Cu65_p_to_n_Zn65_derived)*Y(H1)*state.rho - screened_rates(k_Cu65_to_Zn65_beta_neg_weaktab) - screened_rates(k_Cu65_to_n_Cu64_derived) - screened_rates(k_Cu65_to_p_Ni64_derived); jac.set(Cu65, Cu65, scratch); jac.set(Cu65, Zn59, 0.0); @@ -58548,10 +56357,10 @@ void jac_nuc(const burn_t& state, jac.set(Cu65, Zn64, 0.0); - scratch = screened_rates(k_Zn65_to_Cu65_weaktab) + screened_rates(k_n_Zn65_to_p_Cu65_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Zn65_n_to_p_Cu65_reaclib)*Y(N)*state.rho + screened_rates(k_Zn65_to_Cu65_electron_capture_weaktab); jac.set(Cu65, Zn65, scratch); - scratch = screened_rates(k_Zn66_to_p_Cu65_reaclib); + scratch = screened_rates(k_Zn66_to_p_Cu65_derived); jac.set(Cu65, Zn66, scratch); jac.set(Cu65, Ga62, 0.0); @@ -58564,17 +56373,17 @@ void jac_nuc(const burn_t& state, jac.set(Cu65, Ge64, 0.0); - scratch = -screened_rates(k_n_Zn59_to_He4_Ni56_reaclib)*Y(Zn59)*state.rho - screened_rates(k_n_Zn59_to_Zn60_reaclib)*Y(Zn59)*state.rho - screened_rates(k_n_Zn59_to_p_Cu59_reaclib)*Y(Zn59)*state.rho; + scratch = -screened_rates(k_Zn59_n_to_He4_Ni56_reaclib)*Y(Zn59)*state.rho - screened_rates(k_Zn59_n_to_Zn60_reaclib)*Y(Zn59)*state.rho - screened_rates(k_Zn59_n_to_p_Cu59_reaclib)*Y(Zn59)*state.rho; jac.set(Zn59, N, scratch); - scratch = screened_rates(k_p_Cu58_to_Zn59_reaclib)*Y(Cu58)*state.rho + screened_rates(k_p_Cu59_to_n_Zn59_reaclib)*Y(Cu59)*state.rho + screened_rates(k_p_Ga62_to_He4_Zn59_reaclib)*Y(Ga62)*state.rho; + scratch = screened_rates(k_Cu58_p_to_Zn59_reaclib)*Y(Cu58)*state.rho + screened_rates(k_Cu59_p_to_n_Zn59_derived)*Y(Cu59)*state.rho + screened_rates(k_Ga62_p_to_He4_Zn59_reaclib)*Y(Ga62)*state.rho; jac.set(Zn59, H1, scratch); jac.set(Zn59, H2, 0.0); jac.set(Zn59, He3, 0.0); - scratch = screened_rates(k_He4_Ni56_to_n_Zn59_reaclib)*Y(Ni56)*state.rho - screened_rates(k_He4_Zn59_to_Ge63_reaclib)*Y(Zn59)*state.rho - screened_rates(k_He4_Zn59_to_p_Ga62_reaclib)*Y(Zn59)*state.rho; + scratch = screened_rates(k_Ni56_He4_to_n_Zn59_derived)*Y(Ni56)*state.rho - screened_rates(k_Zn59_He4_to_Ge63_reaclib)*Y(Zn59)*state.rho - screened_rates(k_Zn59_He4_to_p_Ga62_derived)*Y(Zn59)*state.rho; jac.set(Zn59, He4, scratch); jac.set(Zn59, Li6, 0.0); @@ -58825,7 +56634,7 @@ void jac_nuc(const burn_t& state, jac.set(Zn59, Co59, 0.0); - scratch = screened_rates(k_He4_Ni56_to_n_Zn59_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ni56_He4_to_n_Zn59_derived)*Y(He4)*state.rho; jac.set(Zn59, Ni56, scratch); jac.set(Zn59, Ni57, 0.0); @@ -58846,10 +56655,10 @@ void jac_nuc(const burn_t& state, jac.set(Zn59, Cu57, 0.0); - scratch = screened_rates(k_p_Cu58_to_Zn59_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu58_p_to_Zn59_reaclib)*Y(H1)*state.rho; jac.set(Zn59, Cu58, scratch); - scratch = screened_rates(k_p_Cu59_to_n_Zn59_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu59_p_to_n_Zn59_derived)*Y(H1)*state.rho; jac.set(Zn59, Cu59, scratch); jac.set(Zn59, Cu60, 0.0); @@ -58864,10 +56673,10 @@ void jac_nuc(const burn_t& state, jac.set(Zn59, Cu65, 0.0); - scratch = -screened_rates(k_He4_Zn59_to_Ge63_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Zn59_to_p_Ga62_reaclib)*Y(He4)*state.rho - screened_rates(k_Zn59_to_Cu59_reaclib) - screened_rates(k_Zn59_to_p_Cu58_reaclib) - screened_rates(k_Zn59_to_p_Ni58_reaclib) - screened_rates(k_n_Zn59_to_He4_Ni56_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn59_to_Zn60_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn59_to_p_Cu59_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Zn59_He4_to_Ge63_reaclib)*Y(He4)*state.rho - screened_rates(k_Zn59_He4_to_p_Ga62_derived)*Y(He4)*state.rho - screened_rates(k_Zn59_n_to_He4_Ni56_reaclib)*Y(N)*state.rho - screened_rates(k_Zn59_n_to_Zn60_reaclib)*Y(N)*state.rho - screened_rates(k_Zn59_n_to_p_Cu59_reaclib)*Y(N)*state.rho - screened_rates(k_Zn59_to_Cu59_beta_pos_reaclib) - screened_rates(k_Zn59_to_p_Cu58_derived) - screened_rates(k_Zn59_to_p_Ni58_beta_pos_reaclib); jac.set(Zn59, Zn59, scratch); - scratch = screened_rates(k_Zn60_to_n_Zn59_reaclib); + scratch = screened_rates(k_Zn60_to_n_Zn59_derived); jac.set(Zn59, Zn60, scratch); jac.set(Zn59, Zn61, 0.0); @@ -58882,29 +56691,29 @@ void jac_nuc(const burn_t& state, jac.set(Zn59, Zn66, 0.0); - scratch = screened_rates(k_p_Ga62_to_He4_Zn59_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ga62_p_to_He4_Zn59_reaclib)*Y(H1)*state.rho; jac.set(Zn59, Ga62, scratch); jac.set(Zn59, Ga63, 0.0); jac.set(Zn59, Ga64, 0.0); - scratch = screened_rates(k_Ge63_to_He4_Zn59_reaclib); + scratch = screened_rates(k_Ge63_to_He4_Zn59_derived); jac.set(Zn59, Ge63, scratch); jac.set(Zn59, Ge64, 0.0); - scratch = screened_rates(k_n_Ge63_to_He4_Zn60_reaclib)*Y(Ge63)*state.rho + screened_rates(k_n_Zn59_to_Zn60_reaclib)*Y(Zn59)*state.rho - screened_rates(k_n_Zn60_to_He4_Ni57_reaclib)*Y(Zn60)*state.rho - screened_rates(k_n_Zn60_to_Zn61_reaclib)*Y(Zn60)*state.rho - screened_rates(k_n_Zn60_to_p_Cu60_reaclib)*Y(Zn60)*state.rho; + scratch = screened_rates(k_Ge63_n_to_He4_Zn60_reaclib)*Y(Ge63)*state.rho + screened_rates(k_Zn59_n_to_Zn60_reaclib)*Y(Zn59)*state.rho - screened_rates(k_Zn60_n_to_He4_Ni57_reaclib)*Y(Zn60)*state.rho - screened_rates(k_Zn60_n_to_Zn61_reaclib)*Y(Zn60)*state.rho - screened_rates(k_Zn60_n_to_p_Cu60_reaclib)*Y(Zn60)*state.rho; jac.set(Zn60, N, scratch); - scratch = screened_rates(k_p_Cu59_to_Zn60_reaclib)*Y(Cu59)*state.rho + screened_rates(k_p_Cu60_to_n_Zn60_reaclib)*Y(Cu60)*state.rho + screened_rates(k_p_Ga63_to_He4_Zn60_reaclib)*Y(Ga63)*state.rho - screened_rates(k_p_Zn60_to_He4_Cu57_reaclib)*Y(Zn60)*state.rho; + scratch = screened_rates(k_Cu59_p_to_Zn60_reaclib)*Y(Cu59)*state.rho + screened_rates(k_Cu60_p_to_n_Zn60_derived)*Y(Cu60)*state.rho + screened_rates(k_Ga63_p_to_He4_Zn60_reaclib)*Y(Ga63)*state.rho - screened_rates(k_Zn60_p_to_He4_Cu57_derived)*Y(Zn60)*state.rho; jac.set(Zn60, H1, scratch); jac.set(Zn60, H2, 0.0); jac.set(Zn60, He3, 0.0); - scratch = screened_rates(k_He4_Cu57_to_p_Zn60_reaclib)*Y(Cu57)*state.rho + screened_rates(k_He4_Ni56_to_Zn60_reaclib)*Y(Ni56)*state.rho + screened_rates(k_He4_Ni57_to_n_Zn60_reaclib)*Y(Ni57)*state.rho - screened_rates(k_He4_Zn60_to_Ge64_reaclib)*Y(Zn60)*state.rho - screened_rates(k_He4_Zn60_to_n_Ge63_reaclib)*Y(Zn60)*state.rho - screened_rates(k_He4_Zn60_to_p_Ga63_reaclib)*Y(Zn60)*state.rho; + scratch = screened_rates(k_Cu57_He4_to_p_Zn60_reaclib)*Y(Cu57)*state.rho + screened_rates(k_Ni56_He4_to_Zn60_reaclib)*Y(Ni56)*state.rho + screened_rates(k_Ni57_He4_to_n_Zn60_derived)*Y(Ni57)*state.rho - screened_rates(k_Zn60_He4_to_Ge64_reaclib)*Y(Zn60)*state.rho - screened_rates(k_Zn60_He4_to_n_Ge63_derived)*Y(Zn60)*state.rho - screened_rates(k_Zn60_He4_to_p_Ga63_derived)*Y(Zn60)*state.rho; jac.set(Zn60, He4, scratch); jac.set(Zn60, Li6, 0.0); @@ -59155,10 +56964,10 @@ void jac_nuc(const burn_t& state, jac.set(Zn60, Co59, 0.0); - scratch = screened_rates(k_He4_Ni56_to_Zn60_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ni56_He4_to_Zn60_reaclib)*Y(He4)*state.rho; jac.set(Zn60, Ni56, scratch); - scratch = screened_rates(k_He4_Ni57_to_n_Zn60_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ni57_He4_to_n_Zn60_derived)*Y(He4)*state.rho; jac.set(Zn60, Ni57, scratch); jac.set(Zn60, Ni58, 0.0); @@ -59175,15 +56984,15 @@ void jac_nuc(const burn_t& state, jac.set(Zn60, Ni64, 0.0); - scratch = screened_rates(k_He4_Cu57_to_p_Zn60_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cu57_He4_to_p_Zn60_reaclib)*Y(He4)*state.rho; jac.set(Zn60, Cu57, scratch); jac.set(Zn60, Cu58, 0.0); - scratch = screened_rates(k_p_Cu59_to_Zn60_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu59_p_to_Zn60_reaclib)*Y(H1)*state.rho; jac.set(Zn60, Cu59, scratch); - scratch = screened_rates(k_Cu60_to_Zn60_weaktab) + screened_rates(k_p_Cu60_to_n_Zn60_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu60_p_to_n_Zn60_derived)*Y(H1)*state.rho + screened_rates(k_Cu60_to_Zn60_beta_neg_weaktab); jac.set(Zn60, Cu60, scratch); jac.set(Zn60, Cu61, 0.0); @@ -59196,13 +57005,13 @@ void jac_nuc(const burn_t& state, jac.set(Zn60, Cu65, 0.0); - scratch = screened_rates(k_n_Zn59_to_Zn60_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Zn59_n_to_Zn60_reaclib)*Y(N)*state.rho; jac.set(Zn60, Zn59, scratch); - scratch = -screened_rates(k_He4_Zn60_to_Ge64_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Zn60_to_n_Ge63_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Zn60_to_p_Ga63_reaclib)*Y(He4)*state.rho - screened_rates(k_Zn60_to_Cu60_weaktab) - screened_rates(k_Zn60_to_He4_Ni56_reaclib) - screened_rates(k_Zn60_to_n_Zn59_reaclib) - screened_rates(k_Zn60_to_p_Cu59_reaclib) - screened_rates(k_n_Zn60_to_He4_Ni57_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn60_to_Zn61_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn60_to_p_Cu60_reaclib)*Y(N)*state.rho - screened_rates(k_p_Zn60_to_He4_Cu57_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Zn60_He4_to_Ge64_reaclib)*Y(He4)*state.rho - screened_rates(k_Zn60_He4_to_n_Ge63_derived)*Y(He4)*state.rho - screened_rates(k_Zn60_He4_to_p_Ga63_derived)*Y(He4)*state.rho - screened_rates(k_Zn60_n_to_He4_Ni57_reaclib)*Y(N)*state.rho - screened_rates(k_Zn60_n_to_Zn61_reaclib)*Y(N)*state.rho - screened_rates(k_Zn60_n_to_p_Cu60_reaclib)*Y(N)*state.rho - screened_rates(k_Zn60_p_to_He4_Cu57_derived)*Y(H1)*state.rho - screened_rates(k_Zn60_to_Cu60_electron_capture_weaktab) - screened_rates(k_Zn60_to_He4_Ni56_derived) - screened_rates(k_Zn60_to_n_Zn59_derived) - screened_rates(k_Zn60_to_p_Cu59_derived); jac.set(Zn60, Zn60, scratch); - scratch = screened_rates(k_Zn61_to_n_Zn60_reaclib); + scratch = screened_rates(k_Zn61_to_n_Zn60_derived); jac.set(Zn60, Zn61, scratch); jac.set(Zn60, Zn62, 0.0); @@ -59217,28 +57026,28 @@ void jac_nuc(const burn_t& state, jac.set(Zn60, Ga62, 0.0); - scratch = screened_rates(k_p_Ga63_to_He4_Zn60_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ga63_p_to_He4_Zn60_reaclib)*Y(H1)*state.rho; jac.set(Zn60, Ga63, scratch); jac.set(Zn60, Ga64, 0.0); - scratch = screened_rates(k_n_Ge63_to_He4_Zn60_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ge63_n_to_He4_Zn60_reaclib)*Y(N)*state.rho; jac.set(Zn60, Ge63, scratch); - scratch = screened_rates(k_Ge64_to_He4_Zn60_reaclib); + scratch = screened_rates(k_Ge64_to_He4_Zn60_derived); jac.set(Zn60, Ge64, scratch); - scratch = screened_rates(k_n_Ge64_to_He4_Zn61_reaclib)*Y(Ge64)*state.rho + screened_rates(k_n_Zn60_to_Zn61_reaclib)*Y(Zn60)*state.rho - screened_rates(k_n_Zn61_to_He4_Ni58_reaclib)*Y(Zn61)*state.rho - screened_rates(k_n_Zn61_to_Zn62_reaclib)*Y(Zn61)*state.rho - screened_rates(k_n_Zn61_to_p_Cu61_reaclib)*Y(Zn61)*state.rho; + scratch = screened_rates(k_Ge64_n_to_He4_Zn61_reaclib)*Y(Ge64)*state.rho + screened_rates(k_Zn60_n_to_Zn61_reaclib)*Y(Zn60)*state.rho - screened_rates(k_Zn61_n_to_He4_Ni58_reaclib)*Y(Zn61)*state.rho - screened_rates(k_Zn61_n_to_Zn62_reaclib)*Y(Zn61)*state.rho - screened_rates(k_Zn61_n_to_p_Cu61_reaclib)*Y(Zn61)*state.rho; jac.set(Zn61, N, scratch); - scratch = screened_rates(k_p_Cu60_to_Zn61_reaclib)*Y(Cu60)*state.rho + screened_rates(k_p_Cu61_to_n_Zn61_reaclib)*Y(Cu61)*state.rho + screened_rates(k_p_Ga64_to_He4_Zn61_reaclib)*Y(Ga64)*state.rho - screened_rates(k_p_Zn61_to_Ga62_reaclib)*Y(Zn61)*state.rho - screened_rates(k_p_Zn61_to_He4_Cu58_reaclib)*Y(Zn61)*state.rho; + scratch = screened_rates(k_Cu60_p_to_Zn61_reaclib)*Y(Cu60)*state.rho + screened_rates(k_Cu61_p_to_n_Zn61_derived)*Y(Cu61)*state.rho + screened_rates(k_Ga64_p_to_He4_Zn61_reaclib)*Y(Ga64)*state.rho - screened_rates(k_Zn61_p_to_Ga62_reaclib)*Y(Zn61)*state.rho - screened_rates(k_Zn61_p_to_He4_Cu58_reaclib)*Y(Zn61)*state.rho; jac.set(Zn61, H1, scratch); jac.set(Zn61, H2, 0.0); jac.set(Zn61, He3, 0.0); - scratch = screened_rates(k_He4_Cu58_to_p_Zn61_reaclib)*Y(Cu58)*state.rho + screened_rates(k_He4_Ni57_to_Zn61_reaclib)*Y(Ni57)*state.rho + screened_rates(k_He4_Ni58_to_n_Zn61_reaclib)*Y(Ni58)*state.rho - screened_rates(k_He4_Zn61_to_n_Ge64_reaclib)*Y(Zn61)*state.rho - screened_rates(k_He4_Zn61_to_p_Ga64_reaclib)*Y(Zn61)*state.rho; + scratch = screened_rates(k_Cu58_He4_to_p_Zn61_derived)*Y(Cu58)*state.rho + screened_rates(k_Ni57_He4_to_Zn61_reaclib)*Y(Ni57)*state.rho + screened_rates(k_Ni58_He4_to_n_Zn61_derived)*Y(Ni58)*state.rho - screened_rates(k_Zn61_He4_to_n_Ge64_derived)*Y(Zn61)*state.rho - screened_rates(k_Zn61_He4_to_p_Ga64_derived)*Y(Zn61)*state.rho; jac.set(Zn61, He4, scratch); jac.set(Zn61, Li6, 0.0); @@ -59491,10 +57300,10 @@ void jac_nuc(const burn_t& state, jac.set(Zn61, Ni56, 0.0); - scratch = screened_rates(k_He4_Ni57_to_Zn61_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ni57_He4_to_Zn61_reaclib)*Y(He4)*state.rho; jac.set(Zn61, Ni57, scratch); - scratch = screened_rates(k_He4_Ni58_to_n_Zn61_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ni58_He4_to_n_Zn61_derived)*Y(He4)*state.rho; jac.set(Zn61, Ni58, scratch); jac.set(Zn61, Ni59, 0.0); @@ -59511,15 +57320,15 @@ void jac_nuc(const burn_t& state, jac.set(Zn61, Cu57, 0.0); - scratch = screened_rates(k_He4_Cu58_to_p_Zn61_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cu58_He4_to_p_Zn61_derived)*Y(He4)*state.rho; jac.set(Zn61, Cu58, scratch); jac.set(Zn61, Cu59, 0.0); - scratch = screened_rates(k_p_Cu60_to_Zn61_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu60_p_to_Zn61_reaclib)*Y(H1)*state.rho; jac.set(Zn61, Cu60, scratch); - scratch = screened_rates(k_Cu61_to_Zn61_weaktab) + screened_rates(k_p_Cu61_to_n_Zn61_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu61_p_to_n_Zn61_derived)*Y(H1)*state.rho + screened_rates(k_Cu61_to_Zn61_beta_neg_weaktab); jac.set(Zn61, Cu61, scratch); jac.set(Zn61, Cu62, 0.0); @@ -59532,13 +57341,13 @@ void jac_nuc(const burn_t& state, jac.set(Zn61, Zn59, 0.0); - scratch = screened_rates(k_n_Zn60_to_Zn61_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Zn60_n_to_Zn61_reaclib)*Y(N)*state.rho; jac.set(Zn61, Zn60, scratch); - scratch = -screened_rates(k_He4_Zn61_to_n_Ge64_reaclib)*Y(He4)*state.rho - screened_rates(k_He4_Zn61_to_p_Ga64_reaclib)*Y(He4)*state.rho - screened_rates(k_Zn61_to_Cu61_weaktab) - screened_rates(k_Zn61_to_He4_Ni57_reaclib) - screened_rates(k_Zn61_to_n_Zn60_reaclib) - screened_rates(k_Zn61_to_p_Cu60_reaclib) - screened_rates(k_n_Zn61_to_He4_Ni58_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn61_to_Zn62_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn61_to_p_Cu61_reaclib)*Y(N)*state.rho - screened_rates(k_p_Zn61_to_Ga62_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Zn61_to_He4_Cu58_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Zn61_He4_to_n_Ge64_derived)*Y(He4)*state.rho - screened_rates(k_Zn61_He4_to_p_Ga64_derived)*Y(He4)*state.rho - screened_rates(k_Zn61_n_to_He4_Ni58_reaclib)*Y(N)*state.rho - screened_rates(k_Zn61_n_to_Zn62_reaclib)*Y(N)*state.rho - screened_rates(k_Zn61_n_to_p_Cu61_reaclib)*Y(N)*state.rho - screened_rates(k_Zn61_p_to_Ga62_reaclib)*Y(H1)*state.rho - screened_rates(k_Zn61_p_to_He4_Cu58_reaclib)*Y(H1)*state.rho - screened_rates(k_Zn61_to_Cu61_electron_capture_weaktab) - screened_rates(k_Zn61_to_He4_Ni57_derived) - screened_rates(k_Zn61_to_n_Zn60_derived) - screened_rates(k_Zn61_to_p_Cu60_derived); jac.set(Zn61, Zn61, scratch); - scratch = screened_rates(k_Zn62_to_n_Zn61_reaclib); + scratch = screened_rates(k_Zn62_to_n_Zn61_derived); jac.set(Zn61, Zn62, scratch); jac.set(Zn61, Zn63, 0.0); @@ -59549,30 +57358,30 @@ void jac_nuc(const burn_t& state, jac.set(Zn61, Zn66, 0.0); - scratch = screened_rates(k_Ga62_to_p_Zn61_reaclib); + scratch = screened_rates(k_Ga62_to_p_Zn61_derived); jac.set(Zn61, Ga62, scratch); jac.set(Zn61, Ga63, 0.0); - scratch = screened_rates(k_p_Ga64_to_He4_Zn61_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ga64_p_to_He4_Zn61_reaclib)*Y(H1)*state.rho; jac.set(Zn61, Ga64, scratch); jac.set(Zn61, Ge63, 0.0); - scratch = screened_rates(k_n_Ge64_to_He4_Zn61_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ge64_n_to_He4_Zn61_reaclib)*Y(N)*state.rho; jac.set(Zn61, Ge64, scratch); - scratch = screened_rates(k_n_Ga62_to_p_Zn62_reaclib)*Y(Ga62)*state.rho + screened_rates(k_n_Zn61_to_Zn62_reaclib)*Y(Zn61)*state.rho - screened_rates(k_n_Zn62_to_He4_Ni59_reaclib)*Y(Zn62)*state.rho - screened_rates(k_n_Zn62_to_Zn63_reaclib)*Y(Zn62)*state.rho - screened_rates(k_n_Zn62_to_p_Cu62_reaclib)*Y(Zn62)*state.rho; + scratch = screened_rates(k_Ga62_n_to_p_Zn62_reaclib)*Y(Ga62)*state.rho + screened_rates(k_Zn61_n_to_Zn62_reaclib)*Y(Zn61)*state.rho - screened_rates(k_Zn62_n_to_He4_Ni59_reaclib)*Y(Zn62)*state.rho - screened_rates(k_Zn62_n_to_Zn63_reaclib)*Y(Zn62)*state.rho - screened_rates(k_Zn62_n_to_p_Cu62_reaclib)*Y(Zn62)*state.rho; jac.set(Zn62, N, scratch); - scratch = screened_rates(k_p_Cu61_to_Zn62_reaclib)*Y(Cu61)*state.rho + screened_rates(k_p_Cu62_to_n_Zn62_reaclib)*Y(Cu62)*state.rho - screened_rates(k_p_Zn62_to_Ga63_reaclib)*Y(Zn62)*state.rho - screened_rates(k_p_Zn62_to_He4_Cu59_reaclib)*Y(Zn62)*state.rho - screened_rates(k_p_Zn62_to_n_Ga62_reaclib)*Y(Zn62)*state.rho; + scratch = screened_rates(k_Cu61_p_to_Zn62_reaclib)*Y(Cu61)*state.rho + screened_rates(k_Cu62_p_to_n_Zn62_derived)*Y(Cu62)*state.rho - screened_rates(k_Zn62_p_to_Ga63_reaclib)*Y(Zn62)*state.rho - screened_rates(k_Zn62_p_to_He4_Cu59_reaclib)*Y(Zn62)*state.rho - screened_rates(k_Zn62_p_to_n_Ga62_derived)*Y(Zn62)*state.rho; jac.set(Zn62, H1, scratch); jac.set(Zn62, H2, 0.0); jac.set(Zn62, He3, 0.0); - scratch = screened_rates(k_He4_Cu59_to_p_Zn62_reaclib)*Y(Cu59)*state.rho + screened_rates(k_He4_Ni58_to_Zn62_reaclib)*Y(Ni58)*state.rho + screened_rates(k_He4_Ni59_to_n_Zn62_reaclib)*Y(Ni59)*state.rho; + scratch = screened_rates(k_Cu59_He4_to_p_Zn62_derived)*Y(Cu59)*state.rho + screened_rates(k_Ni58_He4_to_Zn62_reaclib)*Y(Ni58)*state.rho + screened_rates(k_Ni59_He4_to_n_Zn62_derived)*Y(Ni59)*state.rho; jac.set(Zn62, He4, scratch); jac.set(Zn62, Li6, 0.0); @@ -59827,10 +57636,10 @@ void jac_nuc(const burn_t& state, jac.set(Zn62, Ni57, 0.0); - scratch = screened_rates(k_He4_Ni58_to_Zn62_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ni58_He4_to_Zn62_reaclib)*Y(He4)*state.rho; jac.set(Zn62, Ni58, scratch); - scratch = screened_rates(k_He4_Ni59_to_n_Zn62_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ni59_He4_to_n_Zn62_derived)*Y(He4)*state.rho; jac.set(Zn62, Ni59, scratch); jac.set(Zn62, Ni60, 0.0); @@ -59847,15 +57656,15 @@ void jac_nuc(const burn_t& state, jac.set(Zn62, Cu58, 0.0); - scratch = screened_rates(k_He4_Cu59_to_p_Zn62_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cu59_He4_to_p_Zn62_derived)*Y(He4)*state.rho; jac.set(Zn62, Cu59, scratch); jac.set(Zn62, Cu60, 0.0); - scratch = screened_rates(k_p_Cu61_to_Zn62_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu61_p_to_Zn62_reaclib)*Y(H1)*state.rho; jac.set(Zn62, Cu61, scratch); - scratch = screened_rates(k_Cu62_to_Zn62_weaktab) + screened_rates(k_p_Cu62_to_n_Zn62_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu62_p_to_n_Zn62_derived)*Y(H1)*state.rho + screened_rates(k_Cu62_to_Zn62_beta_neg_weaktab); jac.set(Zn62, Cu62, scratch); jac.set(Zn62, Cu63, 0.0); @@ -59868,13 +57677,13 @@ void jac_nuc(const burn_t& state, jac.set(Zn62, Zn60, 0.0); - scratch = screened_rates(k_n_Zn61_to_Zn62_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Zn61_n_to_Zn62_reaclib)*Y(N)*state.rho; jac.set(Zn62, Zn61, scratch); - scratch = -screened_rates(k_Zn62_to_Cu62_weaktab) - screened_rates(k_Zn62_to_Ga62_weaktab) - screened_rates(k_Zn62_to_He4_Ni58_reaclib) - screened_rates(k_Zn62_to_n_Zn61_reaclib) - screened_rates(k_Zn62_to_p_Cu61_reaclib) - screened_rates(k_n_Zn62_to_He4_Ni59_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn62_to_Zn63_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn62_to_p_Cu62_reaclib)*Y(N)*state.rho - screened_rates(k_p_Zn62_to_Ga63_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Zn62_to_He4_Cu59_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Zn62_to_n_Ga62_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Zn62_n_to_He4_Ni59_reaclib)*Y(N)*state.rho - screened_rates(k_Zn62_n_to_Zn63_reaclib)*Y(N)*state.rho - screened_rates(k_Zn62_n_to_p_Cu62_reaclib)*Y(N)*state.rho - screened_rates(k_Zn62_p_to_Ga63_reaclib)*Y(H1)*state.rho - screened_rates(k_Zn62_p_to_He4_Cu59_reaclib)*Y(H1)*state.rho - screened_rates(k_Zn62_p_to_n_Ga62_derived)*Y(H1)*state.rho - screened_rates(k_Zn62_to_Cu62_electron_capture_weaktab) - screened_rates(k_Zn62_to_Ga62_beta_neg_weaktab) - screened_rates(k_Zn62_to_He4_Ni58_derived) - screened_rates(k_Zn62_to_n_Zn61_derived) - screened_rates(k_Zn62_to_p_Cu61_derived); jac.set(Zn62, Zn62, scratch); - scratch = screened_rates(k_Zn63_to_n_Zn62_reaclib); + scratch = screened_rates(k_Zn63_to_n_Zn62_derived); jac.set(Zn62, Zn63, scratch); jac.set(Zn62, Zn64, 0.0); @@ -59883,10 +57692,10 @@ void jac_nuc(const burn_t& state, jac.set(Zn62, Zn66, 0.0); - scratch = screened_rates(k_Ga62_to_Zn62_weaktab) + screened_rates(k_n_Ga62_to_p_Zn62_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ga62_n_to_p_Zn62_reaclib)*Y(N)*state.rho + screened_rates(k_Ga62_to_Zn62_electron_capture_weaktab); jac.set(Zn62, Ga62, scratch); - scratch = screened_rates(k_Ga63_to_p_Zn62_reaclib); + scratch = screened_rates(k_Ga63_to_p_Zn62_derived); jac.set(Zn62, Ga63, scratch); jac.set(Zn62, Ga64, 0.0); @@ -59895,17 +57704,17 @@ void jac_nuc(const burn_t& state, jac.set(Zn62, Ge64, 0.0); - scratch = screened_rates(k_n_Ga63_to_p_Zn63_reaclib)*Y(Ga63)*state.rho + screened_rates(k_n_Zn62_to_Zn63_reaclib)*Y(Zn62)*state.rho - screened_rates(k_n_Zn63_to_He4_Ni60_reaclib)*Y(Zn63)*state.rho - screened_rates(k_n_Zn63_to_Zn64_reaclib)*Y(Zn63)*state.rho - screened_rates(k_n_Zn63_to_p_Cu63_reaclib)*Y(Zn63)*state.rho; + scratch = screened_rates(k_Ga63_n_to_p_Zn63_reaclib)*Y(Ga63)*state.rho + screened_rates(k_Zn62_n_to_Zn63_reaclib)*Y(Zn62)*state.rho - screened_rates(k_Zn63_n_to_He4_Ni60_reaclib)*Y(Zn63)*state.rho - screened_rates(k_Zn63_n_to_Zn64_reaclib)*Y(Zn63)*state.rho - screened_rates(k_Zn63_n_to_p_Cu63_reaclib)*Y(Zn63)*state.rho; jac.set(Zn63, N, scratch); - scratch = screened_rates(k_p_Cu62_to_Zn63_reaclib)*Y(Cu62)*state.rho + screened_rates(k_p_Cu63_to_n_Zn63_reaclib)*Y(Cu63)*state.rho - screened_rates(k_p_Zn63_to_Ga64_reaclib)*Y(Zn63)*state.rho - screened_rates(k_p_Zn63_to_He4_Cu60_reaclib)*Y(Zn63)*state.rho - screened_rates(k_p_Zn63_to_n_Ga63_reaclib)*Y(Zn63)*state.rho; + scratch = screened_rates(k_Cu62_p_to_Zn63_reaclib)*Y(Cu62)*state.rho + screened_rates(k_Cu63_p_to_n_Zn63_derived)*Y(Cu63)*state.rho - screened_rates(k_Zn63_p_to_Ga64_reaclib)*Y(Zn63)*state.rho - screened_rates(k_Zn63_p_to_He4_Cu60_reaclib)*Y(Zn63)*state.rho - screened_rates(k_Zn63_p_to_n_Ga63_derived)*Y(Zn63)*state.rho; jac.set(Zn63, H1, scratch); jac.set(Zn63, H2, 0.0); jac.set(Zn63, He3, 0.0); - scratch = screened_rates(k_He4_Cu60_to_p_Zn63_reaclib)*Y(Cu60)*state.rho + screened_rates(k_He4_Ni59_to_Zn63_reaclib)*Y(Ni59)*state.rho + screened_rates(k_He4_Ni60_to_n_Zn63_reaclib)*Y(Ni60)*state.rho; + scratch = screened_rates(k_Cu60_He4_to_p_Zn63_derived)*Y(Cu60)*state.rho + screened_rates(k_Ni59_He4_to_Zn63_reaclib)*Y(Ni59)*state.rho + screened_rates(k_Ni60_He4_to_n_Zn63_derived)*Y(Ni60)*state.rho; jac.set(Zn63, He4, scratch); jac.set(Zn63, Li6, 0.0); @@ -60162,10 +57971,10 @@ void jac_nuc(const burn_t& state, jac.set(Zn63, Ni58, 0.0); - scratch = screened_rates(k_He4_Ni59_to_Zn63_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ni59_He4_to_Zn63_reaclib)*Y(He4)*state.rho; jac.set(Zn63, Ni59, scratch); - scratch = screened_rates(k_He4_Ni60_to_n_Zn63_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ni60_He4_to_n_Zn63_derived)*Y(He4)*state.rho; jac.set(Zn63, Ni60, scratch); jac.set(Zn63, Ni61, 0.0); @@ -60182,15 +57991,15 @@ void jac_nuc(const burn_t& state, jac.set(Zn63, Cu59, 0.0); - scratch = screened_rates(k_He4_Cu60_to_p_Zn63_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cu60_He4_to_p_Zn63_derived)*Y(He4)*state.rho; jac.set(Zn63, Cu60, scratch); jac.set(Zn63, Cu61, 0.0); - scratch = screened_rates(k_p_Cu62_to_Zn63_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu62_p_to_Zn63_reaclib)*Y(H1)*state.rho; jac.set(Zn63, Cu62, scratch); - scratch = screened_rates(k_Cu63_to_Zn63_weaktab) + screened_rates(k_p_Cu63_to_n_Zn63_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu63_p_to_n_Zn63_derived)*Y(H1)*state.rho + screened_rates(k_Cu63_to_Zn63_beta_neg_weaktab); jac.set(Zn63, Cu63, scratch); jac.set(Zn63, Cu64, 0.0); @@ -60203,13 +58012,13 @@ void jac_nuc(const burn_t& state, jac.set(Zn63, Zn61, 0.0); - scratch = screened_rates(k_n_Zn62_to_Zn63_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Zn62_n_to_Zn63_reaclib)*Y(N)*state.rho; jac.set(Zn63, Zn62, scratch); - scratch = -screened_rates(k_Zn63_to_Cu63_weaktab) - screened_rates(k_Zn63_to_Ga63_weaktab) - screened_rates(k_Zn63_to_He4_Ni59_reaclib) - screened_rates(k_Zn63_to_n_Zn62_reaclib) - screened_rates(k_Zn63_to_p_Cu62_reaclib) - screened_rates(k_n_Zn63_to_He4_Ni60_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn63_to_Zn64_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn63_to_p_Cu63_reaclib)*Y(N)*state.rho - screened_rates(k_p_Zn63_to_Ga64_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Zn63_to_He4_Cu60_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Zn63_to_n_Ga63_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Zn63_n_to_He4_Ni60_reaclib)*Y(N)*state.rho - screened_rates(k_Zn63_n_to_Zn64_reaclib)*Y(N)*state.rho - screened_rates(k_Zn63_n_to_p_Cu63_reaclib)*Y(N)*state.rho - screened_rates(k_Zn63_p_to_Ga64_reaclib)*Y(H1)*state.rho - screened_rates(k_Zn63_p_to_He4_Cu60_reaclib)*Y(H1)*state.rho - screened_rates(k_Zn63_p_to_n_Ga63_derived)*Y(H1)*state.rho - screened_rates(k_Zn63_to_Cu63_electron_capture_weaktab) - screened_rates(k_Zn63_to_Ga63_beta_neg_weaktab) - screened_rates(k_Zn63_to_He4_Ni59_derived) - screened_rates(k_Zn63_to_n_Zn62_derived) - screened_rates(k_Zn63_to_p_Cu62_derived); jac.set(Zn63, Zn63, scratch); - scratch = screened_rates(k_Zn64_to_n_Zn63_reaclib); + scratch = screened_rates(k_Zn64_to_n_Zn63_derived); jac.set(Zn63, Zn64, scratch); jac.set(Zn63, Zn65, 0.0); @@ -60218,27 +58027,27 @@ void jac_nuc(const burn_t& state, jac.set(Zn63, Ga62, 0.0); - scratch = screened_rates(k_Ga63_to_Zn63_weaktab) + screened_rates(k_n_Ga63_to_p_Zn63_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ga63_n_to_p_Zn63_reaclib)*Y(N)*state.rho + screened_rates(k_Ga63_to_Zn63_electron_capture_weaktab); jac.set(Zn63, Ga63, scratch); - scratch = screened_rates(k_Ga64_to_p_Zn63_reaclib); + scratch = screened_rates(k_Ga64_to_p_Zn63_derived); jac.set(Zn63, Ga64, scratch); jac.set(Zn63, Ge63, 0.0); jac.set(Zn63, Ge64, 0.0); - scratch = screened_rates(k_n_Ga64_to_p_Zn64_reaclib)*Y(Ga64)*state.rho + screened_rates(k_n_Zn63_to_Zn64_reaclib)*Y(Zn63)*state.rho - screened_rates(k_n_Zn64_to_He4_Ni61_reaclib)*Y(Zn64)*state.rho - screened_rates(k_n_Zn64_to_Zn65_reaclib)*Y(Zn64)*state.rho - screened_rates(k_n_Zn64_to_p_Cu64_reaclib)*Y(Zn64)*state.rho; + scratch = screened_rates(k_Ga64_n_to_p_Zn64_reaclib)*Y(Ga64)*state.rho + screened_rates(k_Zn63_n_to_Zn64_reaclib)*Y(Zn63)*state.rho - screened_rates(k_Zn64_n_to_He4_Ni61_reaclib)*Y(Zn64)*state.rho - screened_rates(k_Zn64_n_to_Zn65_reaclib)*Y(Zn64)*state.rho - screened_rates(k_Zn64_n_to_p_Cu64_reaclib)*Y(Zn64)*state.rho; jac.set(Zn64, N, scratch); - scratch = screened_rates(k_p_Cu63_to_Zn64_reaclib)*Y(Cu63)*state.rho + screened_rates(k_p_Cu64_to_n_Zn64_reaclib)*Y(Cu64)*state.rho - screened_rates(k_p_Zn64_to_He4_Cu61_reaclib)*Y(Zn64)*state.rho - screened_rates(k_p_Zn64_to_n_Ga64_reaclib)*Y(Zn64)*state.rho; + scratch = screened_rates(k_Cu63_p_to_Zn64_reaclib)*Y(Cu63)*state.rho + screened_rates(k_Cu64_p_to_n_Zn64_derived)*Y(Cu64)*state.rho - screened_rates(k_Zn64_p_to_He4_Cu61_reaclib)*Y(Zn64)*state.rho - screened_rates(k_Zn64_p_to_n_Ga64_derived)*Y(Zn64)*state.rho; jac.set(Zn64, H1, scratch); jac.set(Zn64, H2, 0.0); jac.set(Zn64, He3, 0.0); - scratch = screened_rates(k_He4_Cu61_to_p_Zn64_reaclib)*Y(Cu61)*state.rho + screened_rates(k_He4_Ni60_to_Zn64_reaclib)*Y(Ni60)*state.rho + screened_rates(k_He4_Ni61_to_n_Zn64_reaclib)*Y(Ni61)*state.rho; + scratch = screened_rates(k_Cu61_He4_to_p_Zn64_derived)*Y(Cu61)*state.rho + screened_rates(k_Ni60_He4_to_Zn64_reaclib)*Y(Ni60)*state.rho + screened_rates(k_Ni61_He4_to_n_Zn64_derived)*Y(Ni61)*state.rho; jac.set(Zn64, He4, scratch); jac.set(Zn64, Li6, 0.0); @@ -60497,10 +58306,10 @@ void jac_nuc(const burn_t& state, jac.set(Zn64, Ni59, 0.0); - scratch = screened_rates(k_He4_Ni60_to_Zn64_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ni60_He4_to_Zn64_reaclib)*Y(He4)*state.rho; jac.set(Zn64, Ni60, scratch); - scratch = screened_rates(k_He4_Ni61_to_n_Zn64_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ni61_He4_to_n_Zn64_derived)*Y(He4)*state.rho; jac.set(Zn64, Ni61, scratch); jac.set(Zn64, Ni62, 0.0); @@ -60517,15 +58326,15 @@ void jac_nuc(const burn_t& state, jac.set(Zn64, Cu60, 0.0); - scratch = screened_rates(k_He4_Cu61_to_p_Zn64_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cu61_He4_to_p_Zn64_derived)*Y(He4)*state.rho; jac.set(Zn64, Cu61, scratch); jac.set(Zn64, Cu62, 0.0); - scratch = screened_rates(k_p_Cu63_to_Zn64_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu63_p_to_Zn64_reaclib)*Y(H1)*state.rho; jac.set(Zn64, Cu63, scratch); - scratch = screened_rates(k_Cu64_to_Zn64_weaktab) + screened_rates(k_p_Cu64_to_n_Zn64_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu64_p_to_n_Zn64_derived)*Y(H1)*state.rho + screened_rates(k_Cu64_to_Zn64_beta_neg_weaktab); jac.set(Zn64, Cu64, scratch); jac.set(Zn64, Cu65, 0.0); @@ -60538,13 +58347,13 @@ void jac_nuc(const burn_t& state, jac.set(Zn64, Zn62, 0.0); - scratch = screened_rates(k_n_Zn63_to_Zn64_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Zn63_n_to_Zn64_reaclib)*Y(N)*state.rho; jac.set(Zn64, Zn63, scratch); - scratch = -screened_rates(k_Zn64_to_Cu64_weaktab) - screened_rates(k_Zn64_to_Ga64_weaktab) - screened_rates(k_Zn64_to_He4_Ni60_reaclib) - screened_rates(k_Zn64_to_n_Zn63_reaclib) - screened_rates(k_Zn64_to_p_Cu63_reaclib) - screened_rates(k_n_Zn64_to_He4_Ni61_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn64_to_Zn65_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn64_to_p_Cu64_reaclib)*Y(N)*state.rho - screened_rates(k_p_Zn64_to_He4_Cu61_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Zn64_to_n_Ga64_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Zn64_n_to_He4_Ni61_reaclib)*Y(N)*state.rho - screened_rates(k_Zn64_n_to_Zn65_reaclib)*Y(N)*state.rho - screened_rates(k_Zn64_n_to_p_Cu64_reaclib)*Y(N)*state.rho - screened_rates(k_Zn64_p_to_He4_Cu61_reaclib)*Y(H1)*state.rho - screened_rates(k_Zn64_p_to_n_Ga64_derived)*Y(H1)*state.rho - screened_rates(k_Zn64_to_Cu64_electron_capture_weaktab) - screened_rates(k_Zn64_to_Ga64_beta_neg_weaktab) - screened_rates(k_Zn64_to_He4_Ni60_derived) - screened_rates(k_Zn64_to_n_Zn63_derived) - screened_rates(k_Zn64_to_p_Cu63_derived); jac.set(Zn64, Zn64, scratch); - scratch = screened_rates(k_Zn65_to_n_Zn64_reaclib); + scratch = screened_rates(k_Zn65_to_n_Zn64_derived); jac.set(Zn64, Zn65, scratch); jac.set(Zn64, Zn66, 0.0); @@ -60553,24 +58362,24 @@ void jac_nuc(const burn_t& state, jac.set(Zn64, Ga63, 0.0); - scratch = screened_rates(k_Ga64_to_Zn64_weaktab) + screened_rates(k_n_Ga64_to_p_Zn64_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ga64_n_to_p_Zn64_reaclib)*Y(N)*state.rho + screened_rates(k_Ga64_to_Zn64_electron_capture_weaktab); jac.set(Zn64, Ga64, scratch); jac.set(Zn64, Ge63, 0.0); jac.set(Zn64, Ge64, 0.0); - scratch = screened_rates(k_n_Zn64_to_Zn65_reaclib)*Y(Zn64)*state.rho - screened_rates(k_n_Zn65_to_He4_Ni62_reaclib)*Y(Zn65)*state.rho - screened_rates(k_n_Zn65_to_Zn66_reaclib)*Y(Zn65)*state.rho - screened_rates(k_n_Zn65_to_p_Cu65_reaclib)*Y(Zn65)*state.rho; + scratch = screened_rates(k_Zn64_n_to_Zn65_reaclib)*Y(Zn64)*state.rho - screened_rates(k_Zn65_n_to_He4_Ni62_reaclib)*Y(Zn65)*state.rho - screened_rates(k_Zn65_n_to_Zn66_reaclib)*Y(Zn65)*state.rho - screened_rates(k_Zn65_n_to_p_Cu65_reaclib)*Y(Zn65)*state.rho; jac.set(Zn65, N, scratch); - scratch = screened_rates(k_p_Cu64_to_Zn65_reaclib)*Y(Cu64)*state.rho + screened_rates(k_p_Cu65_to_n_Zn65_reaclib)*Y(Cu65)*state.rho - screened_rates(k_p_Zn65_to_He4_Cu62_reaclib)*Y(Zn65)*state.rho; + scratch = screened_rates(k_Cu64_p_to_Zn65_reaclib)*Y(Cu64)*state.rho + screened_rates(k_Cu65_p_to_n_Zn65_derived)*Y(Cu65)*state.rho - screened_rates(k_Zn65_p_to_He4_Cu62_reaclib)*Y(Zn65)*state.rho; jac.set(Zn65, H1, scratch); jac.set(Zn65, H2, 0.0); jac.set(Zn65, He3, 0.0); - scratch = screened_rates(k_He4_Cu62_to_p_Zn65_reaclib)*Y(Cu62)*state.rho + screened_rates(k_He4_Ni61_to_Zn65_reaclib)*Y(Ni61)*state.rho + screened_rates(k_He4_Ni62_to_n_Zn65_reaclib)*Y(Ni62)*state.rho; + scratch = screened_rates(k_Cu62_He4_to_p_Zn65_derived)*Y(Cu62)*state.rho + screened_rates(k_Ni61_He4_to_Zn65_reaclib)*Y(Ni61)*state.rho + screened_rates(k_Ni62_He4_to_n_Zn65_derived)*Y(Ni62)*state.rho; jac.set(Zn65, He4, scratch); jac.set(Zn65, Li6, 0.0); @@ -60831,10 +58640,10 @@ void jac_nuc(const burn_t& state, jac.set(Zn65, Ni60, 0.0); - scratch = screened_rates(k_He4_Ni61_to_Zn65_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ni61_He4_to_Zn65_reaclib)*Y(He4)*state.rho; jac.set(Zn65, Ni61, scratch); - scratch = screened_rates(k_He4_Ni62_to_n_Zn65_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ni62_He4_to_n_Zn65_derived)*Y(He4)*state.rho; jac.set(Zn65, Ni62, scratch); jac.set(Zn65, Ni63, 0.0); @@ -60851,15 +58660,15 @@ void jac_nuc(const burn_t& state, jac.set(Zn65, Cu61, 0.0); - scratch = screened_rates(k_He4_Cu62_to_p_Zn65_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cu62_He4_to_p_Zn65_derived)*Y(He4)*state.rho; jac.set(Zn65, Cu62, scratch); jac.set(Zn65, Cu63, 0.0); - scratch = screened_rates(k_p_Cu64_to_Zn65_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu64_p_to_Zn65_reaclib)*Y(H1)*state.rho; jac.set(Zn65, Cu64, scratch); - scratch = screened_rates(k_Cu65_to_Zn65_weaktab) + screened_rates(k_p_Cu65_to_n_Zn65_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu65_p_to_n_Zn65_derived)*Y(H1)*state.rho + screened_rates(k_Cu65_to_Zn65_beta_neg_weaktab); jac.set(Zn65, Cu65, scratch); jac.set(Zn65, Zn59, 0.0); @@ -60872,13 +58681,13 @@ void jac_nuc(const burn_t& state, jac.set(Zn65, Zn63, 0.0); - scratch = screened_rates(k_n_Zn64_to_Zn65_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Zn64_n_to_Zn65_reaclib)*Y(N)*state.rho; jac.set(Zn65, Zn64, scratch); - scratch = -screened_rates(k_Zn65_to_Cu65_weaktab) - screened_rates(k_Zn65_to_He4_Ni61_reaclib) - screened_rates(k_Zn65_to_n_Zn64_reaclib) - screened_rates(k_Zn65_to_p_Cu64_reaclib) - screened_rates(k_n_Zn65_to_He4_Ni62_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn65_to_Zn66_reaclib)*Y(N)*state.rho - screened_rates(k_n_Zn65_to_p_Cu65_reaclib)*Y(N)*state.rho - screened_rates(k_p_Zn65_to_He4_Cu62_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Zn65_n_to_He4_Ni62_reaclib)*Y(N)*state.rho - screened_rates(k_Zn65_n_to_Zn66_reaclib)*Y(N)*state.rho - screened_rates(k_Zn65_n_to_p_Cu65_reaclib)*Y(N)*state.rho - screened_rates(k_Zn65_p_to_He4_Cu62_reaclib)*Y(H1)*state.rho - screened_rates(k_Zn65_to_Cu65_electron_capture_weaktab) - screened_rates(k_Zn65_to_He4_Ni61_derived) - screened_rates(k_Zn65_to_n_Zn64_derived) - screened_rates(k_Zn65_to_p_Cu64_derived); jac.set(Zn65, Zn65, scratch); - scratch = screened_rates(k_Zn66_to_n_Zn65_reaclib); + scratch = screened_rates(k_Zn66_to_n_Zn65_derived); jac.set(Zn65, Zn66, scratch); jac.set(Zn65, Ga62, 0.0); @@ -60891,17 +58700,17 @@ void jac_nuc(const burn_t& state, jac.set(Zn65, Ge64, 0.0); - scratch = screened_rates(k_n_Zn65_to_Zn66_reaclib)*Y(Zn65)*state.rho - screened_rates(k_n_Zn66_to_He4_Ni63_reaclib)*Y(Zn66)*state.rho; + scratch = screened_rates(k_Zn65_n_to_Zn66_reaclib)*Y(Zn65)*state.rho - screened_rates(k_Zn66_n_to_He4_Ni63_reaclib)*Y(Zn66)*state.rho; jac.set(Zn66, N, scratch); - scratch = screened_rates(k_p_Cu65_to_Zn66_reaclib)*Y(Cu65)*state.rho - screened_rates(k_p_Zn66_to_He4_Cu63_reaclib)*Y(Zn66)*state.rho; + scratch = screened_rates(k_Cu65_p_to_Zn66_reaclib)*Y(Cu65)*state.rho - screened_rates(k_Zn66_p_to_He4_Cu63_reaclib)*Y(Zn66)*state.rho; jac.set(Zn66, H1, scratch); jac.set(Zn66, H2, 0.0); jac.set(Zn66, He3, 0.0); - scratch = screened_rates(k_He4_Cu63_to_p_Zn66_reaclib)*Y(Cu63)*state.rho + screened_rates(k_He4_Ni62_to_Zn66_reaclib)*Y(Ni62)*state.rho + screened_rates(k_He4_Ni63_to_n_Zn66_reaclib)*Y(Ni63)*state.rho; + scratch = screened_rates(k_Cu63_He4_to_p_Zn66_derived)*Y(Cu63)*state.rho + screened_rates(k_Ni62_He4_to_Zn66_reaclib)*Y(Ni62)*state.rho + screened_rates(k_Ni63_He4_to_n_Zn66_derived)*Y(Ni63)*state.rho; jac.set(Zn66, He4, scratch); jac.set(Zn66, Li6, 0.0); @@ -61164,10 +58973,10 @@ void jac_nuc(const burn_t& state, jac.set(Zn66, Ni61, 0.0); - scratch = screened_rates(k_He4_Ni62_to_Zn66_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ni62_He4_to_Zn66_reaclib)*Y(He4)*state.rho; jac.set(Zn66, Ni62, scratch); - scratch = screened_rates(k_He4_Ni63_to_n_Zn66_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Ni63_He4_to_n_Zn66_derived)*Y(He4)*state.rho; jac.set(Zn66, Ni63, scratch); jac.set(Zn66, Ni64, 0.0); @@ -61184,12 +58993,12 @@ void jac_nuc(const burn_t& state, jac.set(Zn66, Cu62, 0.0); - scratch = screened_rates(k_He4_Cu63_to_p_Zn66_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cu63_He4_to_p_Zn66_derived)*Y(He4)*state.rho; jac.set(Zn66, Cu63, scratch); jac.set(Zn66, Cu64, 0.0); - scratch = screened_rates(k_p_Cu65_to_Zn66_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Cu65_p_to_Zn66_reaclib)*Y(H1)*state.rho; jac.set(Zn66, Cu65, scratch); jac.set(Zn66, Zn59, 0.0); @@ -61204,10 +59013,10 @@ void jac_nuc(const burn_t& state, jac.set(Zn66, Zn64, 0.0); - scratch = screened_rates(k_n_Zn65_to_Zn66_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Zn65_n_to_Zn66_reaclib)*Y(N)*state.rho; jac.set(Zn66, Zn65, scratch); - scratch = -screened_rates(k_Zn66_to_He4_Ni62_reaclib) - screened_rates(k_Zn66_to_n_Zn65_reaclib) - screened_rates(k_Zn66_to_p_Cu65_reaclib) - screened_rates(k_n_Zn66_to_He4_Ni63_reaclib)*Y(N)*state.rho - screened_rates(k_p_Zn66_to_He4_Cu63_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Zn66_n_to_He4_Ni63_reaclib)*Y(N)*state.rho - screened_rates(k_Zn66_p_to_He4_Cu63_reaclib)*Y(H1)*state.rho - screened_rates(k_Zn66_to_He4_Ni62_derived) - screened_rates(k_Zn66_to_n_Zn65_derived) - screened_rates(k_Zn66_to_p_Cu65_derived); jac.set(Zn66, Zn66, scratch); jac.set(Zn66, Ga62, 0.0); @@ -61220,17 +59029,17 @@ void jac_nuc(const burn_t& state, jac.set(Zn66, Ge64, 0.0); - scratch = -screened_rates(k_n_Ga62_to_Ga63_reaclib)*Y(Ga62)*state.rho - screened_rates(k_n_Ga62_to_He4_Cu59_reaclib)*Y(Ga62)*state.rho - screened_rates(k_n_Ga62_to_p_Zn62_reaclib)*Y(Ga62)*state.rho; + scratch = -screened_rates(k_Ga62_n_to_Ga63_reaclib)*Y(Ga62)*state.rho - screened_rates(k_Ga62_n_to_He4_Cu59_reaclib)*Y(Ga62)*state.rho - screened_rates(k_Ga62_n_to_p_Zn62_reaclib)*Y(Ga62)*state.rho; jac.set(Ga62, N, scratch); - scratch = -screened_rates(k_p_Ga62_to_Ge63_reaclib)*Y(Ga62)*state.rho - screened_rates(k_p_Ga62_to_He4_Zn59_reaclib)*Y(Ga62)*state.rho + screened_rates(k_p_Zn61_to_Ga62_reaclib)*Y(Zn61)*state.rho + screened_rates(k_p_Zn62_to_n_Ga62_reaclib)*Y(Zn62)*state.rho; + scratch = -screened_rates(k_Ga62_p_to_Ge63_reaclib)*Y(Ga62)*state.rho - screened_rates(k_Ga62_p_to_He4_Zn59_reaclib)*Y(Ga62)*state.rho + screened_rates(k_Zn61_p_to_Ga62_reaclib)*Y(Zn61)*state.rho + screened_rates(k_Zn62_p_to_n_Ga62_derived)*Y(Zn62)*state.rho; jac.set(Ga62, H1, scratch); jac.set(Ga62, H2, 0.0); jac.set(Ga62, He3, 0.0); - scratch = screened_rates(k_He4_Cu58_to_Ga62_reaclib)*Y(Cu58)*state.rho + screened_rates(k_He4_Cu59_to_n_Ga62_reaclib)*Y(Cu59)*state.rho + screened_rates(k_He4_Zn59_to_p_Ga62_reaclib)*Y(Zn59)*state.rho; + scratch = screened_rates(k_Cu58_He4_to_Ga62_reaclib)*Y(Cu58)*state.rho + screened_rates(k_Cu59_He4_to_n_Ga62_derived)*Y(Cu59)*state.rho + screened_rates(k_Zn59_He4_to_p_Ga62_derived)*Y(Zn59)*state.rho; jac.set(Ga62, He4, scratch); jac.set(Ga62, Li6, 0.0); @@ -61501,10 +59310,10 @@ void jac_nuc(const burn_t& state, jac.set(Ga62, Cu57, 0.0); - scratch = screened_rates(k_He4_Cu58_to_Ga62_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cu58_He4_to_Ga62_reaclib)*Y(He4)*state.rho; jac.set(Ga62, Cu58, scratch); - scratch = screened_rates(k_He4_Cu59_to_n_Ga62_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cu59_He4_to_n_Ga62_derived)*Y(He4)*state.rho; jac.set(Ga62, Cu59, scratch); jac.set(Ga62, Cu60, 0.0); @@ -61519,15 +59328,15 @@ void jac_nuc(const burn_t& state, jac.set(Ga62, Cu65, 0.0); - scratch = screened_rates(k_He4_Zn59_to_p_Ga62_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Zn59_He4_to_p_Ga62_derived)*Y(He4)*state.rho; jac.set(Ga62, Zn59, scratch); jac.set(Ga62, Zn60, 0.0); - scratch = screened_rates(k_p_Zn61_to_Ga62_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Zn61_p_to_Ga62_reaclib)*Y(H1)*state.rho; jac.set(Ga62, Zn61, scratch); - scratch = screened_rates(k_Zn62_to_Ga62_weaktab) + screened_rates(k_p_Zn62_to_n_Ga62_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Zn62_p_to_n_Ga62_derived)*Y(H1)*state.rho + screened_rates(k_Zn62_to_Ga62_beta_neg_weaktab); jac.set(Ga62, Zn62, scratch); jac.set(Ga62, Zn63, 0.0); @@ -61538,30 +59347,30 @@ void jac_nuc(const burn_t& state, jac.set(Ga62, Zn66, 0.0); - scratch = -screened_rates(k_Ga62_to_He4_Cu58_reaclib) - screened_rates(k_Ga62_to_Zn62_weaktab) - screened_rates(k_Ga62_to_p_Zn61_reaclib) - screened_rates(k_n_Ga62_to_Ga63_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ga62_to_He4_Cu59_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ga62_to_p_Zn62_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ga62_to_Ge63_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ga62_to_He4_Zn59_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ga62_n_to_Ga63_reaclib)*Y(N)*state.rho - screened_rates(k_Ga62_n_to_He4_Cu59_reaclib)*Y(N)*state.rho - screened_rates(k_Ga62_n_to_p_Zn62_reaclib)*Y(N)*state.rho - screened_rates(k_Ga62_p_to_Ge63_reaclib)*Y(H1)*state.rho - screened_rates(k_Ga62_p_to_He4_Zn59_reaclib)*Y(H1)*state.rho - screened_rates(k_Ga62_to_He4_Cu58_derived) - screened_rates(k_Ga62_to_Zn62_electron_capture_weaktab) - screened_rates(k_Ga62_to_p_Zn61_derived); jac.set(Ga62, Ga62, scratch); - scratch = screened_rates(k_Ga63_to_n_Ga62_reaclib); + scratch = screened_rates(k_Ga63_to_n_Ga62_derived); jac.set(Ga62, Ga63, scratch); jac.set(Ga62, Ga64, 0.0); - scratch = screened_rates(k_Ge63_to_p_Ga62_reaclib); + scratch = screened_rates(k_Ge63_to_p_Ga62_derived); jac.set(Ga62, Ge63, scratch); jac.set(Ga62, Ge64, 0.0); - scratch = screened_rates(k_n_Ga62_to_Ga63_reaclib)*Y(Ga62)*state.rho - screened_rates(k_n_Ga63_to_Ga64_reaclib)*Y(Ga63)*state.rho - screened_rates(k_n_Ga63_to_He4_Cu60_reaclib)*Y(Ga63)*state.rho - screened_rates(k_n_Ga63_to_p_Zn63_reaclib)*Y(Ga63)*state.rho + screened_rates(k_n_Ge63_to_p_Ga63_reaclib)*Y(Ge63)*state.rho; + scratch = screened_rates(k_Ga62_n_to_Ga63_reaclib)*Y(Ga62)*state.rho - screened_rates(k_Ga63_n_to_Ga64_reaclib)*Y(Ga63)*state.rho - screened_rates(k_Ga63_n_to_He4_Cu60_reaclib)*Y(Ga63)*state.rho - screened_rates(k_Ga63_n_to_p_Zn63_reaclib)*Y(Ga63)*state.rho + screened_rates(k_Ge63_n_to_p_Ga63_reaclib)*Y(Ge63)*state.rho; jac.set(Ga63, N, scratch); - scratch = -screened_rates(k_p_Ga63_to_Ge64_reaclib)*Y(Ga63)*state.rho - screened_rates(k_p_Ga63_to_He4_Zn60_reaclib)*Y(Ga63)*state.rho - screened_rates(k_p_Ga63_to_n_Ge63_reaclib)*Y(Ga63)*state.rho + screened_rates(k_p_Zn62_to_Ga63_reaclib)*Y(Zn62)*state.rho + screened_rates(k_p_Zn63_to_n_Ga63_reaclib)*Y(Zn63)*state.rho; + scratch = -screened_rates(k_Ga63_p_to_Ge64_reaclib)*Y(Ga63)*state.rho - screened_rates(k_Ga63_p_to_He4_Zn60_reaclib)*Y(Ga63)*state.rho - screened_rates(k_Ga63_p_to_n_Ge63_derived)*Y(Ga63)*state.rho + screened_rates(k_Zn62_p_to_Ga63_reaclib)*Y(Zn62)*state.rho + screened_rates(k_Zn63_p_to_n_Ga63_derived)*Y(Zn63)*state.rho; jac.set(Ga63, H1, scratch); jac.set(Ga63, H2, 0.0); jac.set(Ga63, He3, 0.0); - scratch = screened_rates(k_He4_Cu59_to_Ga63_reaclib)*Y(Cu59)*state.rho + screened_rates(k_He4_Cu60_to_n_Ga63_reaclib)*Y(Cu60)*state.rho + screened_rates(k_He4_Zn60_to_p_Ga63_reaclib)*Y(Zn60)*state.rho; + scratch = screened_rates(k_Cu59_He4_to_Ga63_reaclib)*Y(Cu59)*state.rho + screened_rates(k_Cu60_He4_to_n_Ga63_derived)*Y(Cu60)*state.rho + screened_rates(k_Zn60_He4_to_p_Ga63_derived)*Y(Zn60)*state.rho; jac.set(Ga63, He4, scratch); jac.set(Ga63, Li6, 0.0); @@ -61834,10 +59643,10 @@ void jac_nuc(const burn_t& state, jac.set(Ga63, Cu58, 0.0); - scratch = screened_rates(k_He4_Cu59_to_Ga63_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cu59_He4_to_Ga63_reaclib)*Y(He4)*state.rho; jac.set(Ga63, Cu59, scratch); - scratch = screened_rates(k_He4_Cu60_to_n_Ga63_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cu60_He4_to_n_Ga63_derived)*Y(He4)*state.rho; jac.set(Ga63, Cu60, scratch); jac.set(Ga63, Cu61, 0.0); @@ -61852,15 +59661,15 @@ void jac_nuc(const burn_t& state, jac.set(Ga63, Zn59, 0.0); - scratch = screened_rates(k_He4_Zn60_to_p_Ga63_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Zn60_He4_to_p_Ga63_derived)*Y(He4)*state.rho; jac.set(Ga63, Zn60, scratch); jac.set(Ga63, Zn61, 0.0); - scratch = screened_rates(k_p_Zn62_to_Ga63_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Zn62_p_to_Ga63_reaclib)*Y(H1)*state.rho; jac.set(Ga63, Zn62, scratch); - scratch = screened_rates(k_Zn63_to_Ga63_weaktab) + screened_rates(k_p_Zn63_to_n_Ga63_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Zn63_p_to_n_Ga63_derived)*Y(H1)*state.rho + screened_rates(k_Zn63_to_Ga63_beta_neg_weaktab); jac.set(Ga63, Zn63, scratch); jac.set(Ga63, Zn64, 0.0); @@ -61869,32 +59678,32 @@ void jac_nuc(const burn_t& state, jac.set(Ga63, Zn66, 0.0); - scratch = screened_rates(k_n_Ga62_to_Ga63_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ga62_n_to_Ga63_reaclib)*Y(N)*state.rho; jac.set(Ga63, Ga62, scratch); - scratch = -screened_rates(k_Ga63_to_He4_Cu59_reaclib) - screened_rates(k_Ga63_to_Zn63_weaktab) - screened_rates(k_Ga63_to_n_Ga62_reaclib) - screened_rates(k_Ga63_to_p_Zn62_reaclib) - screened_rates(k_n_Ga63_to_Ga64_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ga63_to_He4_Cu60_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ga63_to_p_Zn63_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ga63_to_Ge64_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ga63_to_He4_Zn60_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ga63_to_n_Ge63_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ga63_n_to_Ga64_reaclib)*Y(N)*state.rho - screened_rates(k_Ga63_n_to_He4_Cu60_reaclib)*Y(N)*state.rho - screened_rates(k_Ga63_n_to_p_Zn63_reaclib)*Y(N)*state.rho - screened_rates(k_Ga63_p_to_Ge64_reaclib)*Y(H1)*state.rho - screened_rates(k_Ga63_p_to_He4_Zn60_reaclib)*Y(H1)*state.rho - screened_rates(k_Ga63_p_to_n_Ge63_derived)*Y(H1)*state.rho - screened_rates(k_Ga63_to_He4_Cu59_derived) - screened_rates(k_Ga63_to_Zn63_electron_capture_weaktab) - screened_rates(k_Ga63_to_n_Ga62_derived) - screened_rates(k_Ga63_to_p_Zn62_derived); jac.set(Ga63, Ga63, scratch); - scratch = screened_rates(k_Ga64_to_n_Ga63_reaclib); + scratch = screened_rates(k_Ga64_to_n_Ga63_derived); jac.set(Ga63, Ga64, scratch); - scratch = screened_rates(k_Ge63_to_Ga63_reaclib) + screened_rates(k_n_Ge63_to_p_Ga63_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ge63_n_to_p_Ga63_reaclib)*Y(N)*state.rho + screened_rates(k_Ge63_to_Ga63_beta_pos_reaclib); jac.set(Ga63, Ge63, scratch); - scratch = screened_rates(k_Ge64_to_p_Ga63_reaclib); + scratch = screened_rates(k_Ge64_to_p_Ga63_derived); jac.set(Ga63, Ge64, scratch); - scratch = screened_rates(k_n_Ga63_to_Ga64_reaclib)*Y(Ga63)*state.rho - screened_rates(k_n_Ga64_to_He4_Cu61_reaclib)*Y(Ga64)*state.rho - screened_rates(k_n_Ga64_to_p_Zn64_reaclib)*Y(Ga64)*state.rho + screened_rates(k_n_Ge64_to_p_Ga64_reaclib)*Y(Ge64)*state.rho; + scratch = screened_rates(k_Ga63_n_to_Ga64_reaclib)*Y(Ga63)*state.rho - screened_rates(k_Ga64_n_to_He4_Cu61_reaclib)*Y(Ga64)*state.rho - screened_rates(k_Ga64_n_to_p_Zn64_reaclib)*Y(Ga64)*state.rho + screened_rates(k_Ge64_n_to_p_Ga64_reaclib)*Y(Ge64)*state.rho; jac.set(Ga64, N, scratch); - scratch = -screened_rates(k_p_Ga64_to_He4_Zn61_reaclib)*Y(Ga64)*state.rho - screened_rates(k_p_Ga64_to_n_Ge64_reaclib)*Y(Ga64)*state.rho + screened_rates(k_p_Zn63_to_Ga64_reaclib)*Y(Zn63)*state.rho + screened_rates(k_p_Zn64_to_n_Ga64_reaclib)*Y(Zn64)*state.rho; + scratch = -screened_rates(k_Ga64_p_to_He4_Zn61_reaclib)*Y(Ga64)*state.rho - screened_rates(k_Ga64_p_to_n_Ge64_derived)*Y(Ga64)*state.rho + screened_rates(k_Zn63_p_to_Ga64_reaclib)*Y(Zn63)*state.rho + screened_rates(k_Zn64_p_to_n_Ga64_derived)*Y(Zn64)*state.rho; jac.set(Ga64, H1, scratch); jac.set(Ga64, H2, 0.0); jac.set(Ga64, He3, 0.0); - scratch = screened_rates(k_He4_Cu60_to_Ga64_reaclib)*Y(Cu60)*state.rho + screened_rates(k_He4_Cu61_to_n_Ga64_reaclib)*Y(Cu61)*state.rho + screened_rates(k_He4_Zn61_to_p_Ga64_reaclib)*Y(Zn61)*state.rho; + scratch = screened_rates(k_Cu60_He4_to_Ga64_reaclib)*Y(Cu60)*state.rho + screened_rates(k_Cu61_He4_to_n_Ga64_derived)*Y(Cu61)*state.rho + screened_rates(k_Zn61_He4_to_p_Ga64_derived)*Y(Zn61)*state.rho; jac.set(Ga64, He4, scratch); jac.set(Ga64, Li6, 0.0); @@ -62169,10 +59978,10 @@ void jac_nuc(const burn_t& state, jac.set(Ga64, Cu59, 0.0); - scratch = screened_rates(k_He4_Cu60_to_Ga64_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cu60_He4_to_Ga64_reaclib)*Y(He4)*state.rho; jac.set(Ga64, Cu60, scratch); - scratch = screened_rates(k_He4_Cu61_to_n_Ga64_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Cu61_He4_to_n_Ga64_derived)*Y(He4)*state.rho; jac.set(Ga64, Cu61, scratch); jac.set(Ga64, Cu62, 0.0); @@ -62187,15 +59996,15 @@ void jac_nuc(const burn_t& state, jac.set(Ga64, Zn60, 0.0); - scratch = screened_rates(k_He4_Zn61_to_p_Ga64_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Zn61_He4_to_p_Ga64_derived)*Y(He4)*state.rho; jac.set(Ga64, Zn61, scratch); jac.set(Ga64, Zn62, 0.0); - scratch = screened_rates(k_p_Zn63_to_Ga64_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Zn63_p_to_Ga64_reaclib)*Y(H1)*state.rho; jac.set(Ga64, Zn63, scratch); - scratch = screened_rates(k_Zn64_to_Ga64_weaktab) + screened_rates(k_p_Zn64_to_n_Ga64_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Zn64_p_to_n_Ga64_derived)*Y(H1)*state.rho + screened_rates(k_Zn64_to_Ga64_beta_neg_weaktab); jac.set(Ga64, Zn64, scratch); jac.set(Ga64, Zn65, 0.0); @@ -62204,28 +60013,28 @@ void jac_nuc(const burn_t& state, jac.set(Ga64, Ga62, 0.0); - scratch = screened_rates(k_n_Ga63_to_Ga64_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ga63_n_to_Ga64_reaclib)*Y(N)*state.rho; jac.set(Ga64, Ga63, scratch); - scratch = -screened_rates(k_Ga64_to_Ge64_weaktab) - screened_rates(k_Ga64_to_He4_Cu60_reaclib) - screened_rates(k_Ga64_to_Zn64_weaktab) - screened_rates(k_Ga64_to_n_Ga63_reaclib) - screened_rates(k_Ga64_to_p_Zn63_reaclib) - screened_rates(k_n_Ga64_to_He4_Cu61_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ga64_to_p_Zn64_reaclib)*Y(N)*state.rho - screened_rates(k_p_Ga64_to_He4_Zn61_reaclib)*Y(H1)*state.rho - screened_rates(k_p_Ga64_to_n_Ge64_reaclib)*Y(H1)*state.rho; + scratch = -screened_rates(k_Ga64_n_to_He4_Cu61_reaclib)*Y(N)*state.rho - screened_rates(k_Ga64_n_to_p_Zn64_reaclib)*Y(N)*state.rho - screened_rates(k_Ga64_p_to_He4_Zn61_reaclib)*Y(H1)*state.rho - screened_rates(k_Ga64_p_to_n_Ge64_derived)*Y(H1)*state.rho - screened_rates(k_Ga64_to_Ge64_beta_neg_weaktab) - screened_rates(k_Ga64_to_He4_Cu60_derived) - screened_rates(k_Ga64_to_Zn64_electron_capture_weaktab) - screened_rates(k_Ga64_to_n_Ga63_derived) - screened_rates(k_Ga64_to_p_Zn63_derived); jac.set(Ga64, Ga64, scratch); jac.set(Ga64, Ge63, 0.0); - scratch = screened_rates(k_Ge64_to_Ga64_weaktab) + screened_rates(k_n_Ge64_to_p_Ga64_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ge64_n_to_p_Ga64_reaclib)*Y(N)*state.rho + screened_rates(k_Ge64_to_Ga64_electron_capture_weaktab); jac.set(Ga64, Ge64, scratch); - scratch = -screened_rates(k_n_Ge63_to_Ge64_reaclib)*Y(Ge63)*state.rho - screened_rates(k_n_Ge63_to_He4_Zn60_reaclib)*Y(Ge63)*state.rho - screened_rates(k_n_Ge63_to_p_Ga63_reaclib)*Y(Ge63)*state.rho; + scratch = -screened_rates(k_Ge63_n_to_Ge64_reaclib)*Y(Ge63)*state.rho - screened_rates(k_Ge63_n_to_He4_Zn60_reaclib)*Y(Ge63)*state.rho - screened_rates(k_Ge63_n_to_p_Ga63_reaclib)*Y(Ge63)*state.rho; jac.set(Ge63, N, scratch); - scratch = screened_rates(k_p_Ga62_to_Ge63_reaclib)*Y(Ga62)*state.rho + screened_rates(k_p_Ga63_to_n_Ge63_reaclib)*Y(Ga63)*state.rho; + scratch = screened_rates(k_Ga62_p_to_Ge63_reaclib)*Y(Ga62)*state.rho + screened_rates(k_Ga63_p_to_n_Ge63_derived)*Y(Ga63)*state.rho; jac.set(Ge63, H1, scratch); jac.set(Ge63, H2, 0.0); jac.set(Ge63, He3, 0.0); - scratch = screened_rates(k_He4_Zn59_to_Ge63_reaclib)*Y(Zn59)*state.rho + screened_rates(k_He4_Zn60_to_n_Ge63_reaclib)*Y(Zn60)*state.rho; + scratch = screened_rates(k_Zn59_He4_to_Ge63_reaclib)*Y(Zn59)*state.rho + screened_rates(k_Zn60_He4_to_n_Ge63_derived)*Y(Zn60)*state.rho; jac.set(Ge63, He4, scratch); jac.set(Ge63, Li6, 0.0); @@ -62512,10 +60321,10 @@ void jac_nuc(const burn_t& state, jac.set(Ge63, Cu65, 0.0); - scratch = screened_rates(k_He4_Zn59_to_Ge63_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Zn59_He4_to_Ge63_reaclib)*Y(He4)*state.rho; jac.set(Ge63, Zn59, scratch); - scratch = screened_rates(k_He4_Zn60_to_n_Ge63_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Zn60_He4_to_n_Ge63_derived)*Y(He4)*state.rho; jac.set(Ge63, Zn60, scratch); jac.set(Ge63, Zn61, 0.0); @@ -62530,31 +60339,31 @@ void jac_nuc(const burn_t& state, jac.set(Ge63, Zn66, 0.0); - scratch = screened_rates(k_p_Ga62_to_Ge63_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ga62_p_to_Ge63_reaclib)*Y(H1)*state.rho; jac.set(Ge63, Ga62, scratch); - scratch = screened_rates(k_p_Ga63_to_n_Ge63_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ga63_p_to_n_Ge63_derived)*Y(H1)*state.rho; jac.set(Ge63, Ga63, scratch); jac.set(Ge63, Ga64, 0.0); - scratch = -screened_rates(k_Ge63_to_Ga63_reaclib) - screened_rates(k_Ge63_to_He4_Zn59_reaclib) - screened_rates(k_Ge63_to_p_Ga62_reaclib) - screened_rates(k_n_Ge63_to_Ge64_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ge63_to_He4_Zn60_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ge63_to_p_Ga63_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Ge63_n_to_Ge64_reaclib)*Y(N)*state.rho - screened_rates(k_Ge63_n_to_He4_Zn60_reaclib)*Y(N)*state.rho - screened_rates(k_Ge63_n_to_p_Ga63_reaclib)*Y(N)*state.rho - screened_rates(k_Ge63_to_Ga63_beta_pos_reaclib) - screened_rates(k_Ge63_to_He4_Zn59_derived) - screened_rates(k_Ge63_to_p_Ga62_derived); jac.set(Ge63, Ge63, scratch); - scratch = screened_rates(k_Ge64_to_n_Ge63_reaclib); + scratch = screened_rates(k_Ge64_to_n_Ge63_derived); jac.set(Ge63, Ge64, scratch); - scratch = screened_rates(k_n_Ge63_to_Ge64_reaclib)*Y(Ge63)*state.rho - screened_rates(k_n_Ge64_to_He4_Zn61_reaclib)*Y(Ge64)*state.rho - screened_rates(k_n_Ge64_to_p_Ga64_reaclib)*Y(Ge64)*state.rho; + scratch = screened_rates(k_Ge63_n_to_Ge64_reaclib)*Y(Ge63)*state.rho - screened_rates(k_Ge64_n_to_He4_Zn61_reaclib)*Y(Ge64)*state.rho - screened_rates(k_Ge64_n_to_p_Ga64_reaclib)*Y(Ge64)*state.rho; jac.set(Ge64, N, scratch); - scratch = screened_rates(k_p_Ga63_to_Ge64_reaclib)*Y(Ga63)*state.rho + screened_rates(k_p_Ga64_to_n_Ge64_reaclib)*Y(Ga64)*state.rho; + scratch = screened_rates(k_Ga63_p_to_Ge64_reaclib)*Y(Ga63)*state.rho + screened_rates(k_Ga64_p_to_n_Ge64_derived)*Y(Ga64)*state.rho; jac.set(Ge64, H1, scratch); jac.set(Ge64, H2, 0.0); jac.set(Ge64, He3, 0.0); - scratch = screened_rates(k_He4_Zn60_to_Ge64_reaclib)*Y(Zn60)*state.rho + screened_rates(k_He4_Zn61_to_n_Ge64_reaclib)*Y(Zn61)*state.rho; + scratch = screened_rates(k_Zn60_He4_to_Ge64_reaclib)*Y(Zn60)*state.rho + screened_rates(k_Zn61_He4_to_n_Ge64_derived)*Y(Zn61)*state.rho; jac.set(Ge64, He4, scratch); jac.set(Ge64, Li6, 0.0); @@ -62843,10 +60652,10 @@ void jac_nuc(const burn_t& state, jac.set(Ge64, Zn59, 0.0); - scratch = screened_rates(k_He4_Zn60_to_Ge64_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Zn60_He4_to_Ge64_reaclib)*Y(He4)*state.rho; jac.set(Ge64, Zn60, scratch); - scratch = screened_rates(k_He4_Zn61_to_n_Ge64_reaclib)*Y(He4)*state.rho; + scratch = screened_rates(k_Zn61_He4_to_n_Ge64_derived)*Y(He4)*state.rho; jac.set(Ge64, Zn61, scratch); jac.set(Ge64, Zn62, 0.0); @@ -62861,16 +60670,16 @@ void jac_nuc(const burn_t& state, jac.set(Ge64, Ga62, 0.0); - scratch = screened_rates(k_p_Ga63_to_Ge64_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ga63_p_to_Ge64_reaclib)*Y(H1)*state.rho; jac.set(Ge64, Ga63, scratch); - scratch = screened_rates(k_Ga64_to_Ge64_weaktab) + screened_rates(k_p_Ga64_to_n_Ge64_reaclib)*Y(H1)*state.rho; + scratch = screened_rates(k_Ga64_p_to_n_Ge64_derived)*Y(H1)*state.rho + screened_rates(k_Ga64_to_Ge64_beta_neg_weaktab); jac.set(Ge64, Ga64, scratch); - scratch = screened_rates(k_n_Ge63_to_Ge64_reaclib)*Y(N)*state.rho; + scratch = screened_rates(k_Ge63_n_to_Ge64_reaclib)*Y(N)*state.rho; jac.set(Ge64, Ge63, scratch); - scratch = -screened_rates(k_Ge64_to_Ga64_weaktab) - screened_rates(k_Ge64_to_He4_Zn60_reaclib) - screened_rates(k_Ge64_to_n_Ge63_reaclib) - screened_rates(k_Ge64_to_p_Ga63_reaclib) - screened_rates(k_n_Ge64_to_He4_Zn61_reaclib)*Y(N)*state.rho - screened_rates(k_n_Ge64_to_p_Ga64_reaclib)*Y(N)*state.rho; + scratch = -screened_rates(k_Ge64_n_to_He4_Zn61_reaclib)*Y(N)*state.rho - screened_rates(k_Ge64_n_to_p_Ga64_reaclib)*Y(N)*state.rho - screened_rates(k_Ge64_to_Ga64_electron_capture_weaktab) - screened_rates(k_Ge64_to_He4_Zn60_derived) - screened_rates(k_Ge64_to_n_Ge63_derived) - screened_rates(k_Ge64_to_p_Ga63_derived); jac.set(Ge64, Ge64, scratch); diff --git a/networks/sn160/approximate_rates.H b/networks/sn160/approximate_rates.H index 14d44a740..3c6d46e25 100644 --- a/networks/sn160/approximate_rates.H +++ b/networks/sn160/approximate_rates.H @@ -8,24 +8,26 @@ #include #include -using namespace Rates; -using namespace Species; +namespace approximate_rates { + using namespace Rates; + using namespace Species; -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void -fill_approx_rates([[maybe_unused]] const tf_t& tfactors, - [[maybe_unused]] const amrex::Real rho, - [[maybe_unused]] const amrex::Array1D& Y, - [[maybe_unused]] T& rate_eval) -{ - [[maybe_unused]] amrex::Real rate{}; - [[maybe_unused]] amrex::Real drate_dT{}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void + fill_rates([[maybe_unused]] const tf_t& tfactors, + [[maybe_unused]] const amrex::Real rho, + [[maybe_unused]] const amrex::Array1D& Y, + [[maybe_unused]] T& rate_eval) + { + [[maybe_unused]] amrex::Real rate{}; + [[maybe_unused]] amrex::Real drate_dT{}; -} + } +} #endif diff --git a/networks/sn160/branched_rates.H b/networks/sn160/branched_rates.H new file mode 100644 index 000000000..903382523 --- /dev/null +++ b/networks/sn160/branched_rates.H @@ -0,0 +1,33 @@ +#ifndef BRANCHED_RATES_H +#define BRANCHED_RATES_H + +#include +#include + +#include +#include +#include +#include +#include + +namespace branched_rates { + + using namespace Rates; + + using namespace temp_tabular; + + + template + AMREX_GPU_DEVICE AMREX_INLINE + void + fill_rates([[maybe_unused]] const tf_t& tfactors, + [[maybe_unused]] T& rate_eval) + { + + [[maybe_unused]] amrex::Real rate; + [[maybe_unused]] amrex::Real drate_dT; + + + } +} +#endif diff --git a/networks/sn160/derived_rates.H b/networks/sn160/derived_rates.H index 579d7dd3d..f18272058 100644 --- a/networks/sn160/derived_rates.H +++ b/networks/sn160/derived_rates.H @@ -7,21 +7,58284 @@ #include #include -using namespace Rates; +namespace derived_rates { + using namespace Rates; -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void -fill_derived_rates(const tf_t& tfactors, T& rate_eval) -{ + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_d_to_n_p_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { - amrex::ignore_unused(tfactors); - amrex::ignore_unused(rate_eval); + // d --> n + p - [[maybe_unused]] amrex::Real rate; - [[maybe_unused]] amrex::Real drate_dT; + rate = 0.0; + drate_dT = 0.0; + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real d_log_pf, dd_log_pf_dT9; + + // setting d log(partition function) to 0.0 by default, independent of T + d_log_pf = 0.0_rt; + dd_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + p_log_pf - d_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dp_log_pf_dT9 - dd_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from an06n + ln_set_rate = 34.65276099032698 + -25.815019581199707 * tfactors.T9i + -2.70618 * tfactors.T913 + + 0.11718 * tfactors.T9 + -0.00312788 * tfactors.T953 + 1.969127 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 25.815019581199707 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.70618 * tfactors.T923i + + 0.11718 + (5.0/3.0) * -0.00312788 * tfactors.T923 + 1.969127 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from an06n + ln_set_rate = 33.03886099032698 + -25.815019581199707 * tfactors.T9i + -2.30472 * tfactors.T913 + + -0.887862 * tfactors.T9 + 0.137663 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 25.815019581199707 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.30472 * tfactors.T923i + + -0.887862 + (5.0/3.0) * 0.137663 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from an06n + ln_set_rate = 31.130940990326984 + -25.815019581199707 * tfactors.T9i + -0.0102082 * tfactors.T913 + + -0.0893959 * tfactors.T9 + 0.00696704 * tfactors.T953 + 2.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 25.815019581199707 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.0102082 * tfactors.T923i + + -0.0893959 + (5.0/3.0) * 0.00696704 * tfactors.T923 + 2.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_He3_to_p_d_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // He3 --> p + d + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He3_log_pf, dHe3_log_pf_dT9; + + // setting He3 log(partition function) to 0.0 by default, independent of T + He3_log_pf = 0.0_rt; + dHe3_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real d_log_pf, dd_log_pf_dT9; + + // setting d log(partition function) to 0.0 by default, independent of T + d_log_pf = 0.0_rt; + dd_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + d_log_pf - He3_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dd_log_pf_dT9 - dHe3_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from de04 + ln_set_rate = 32.462003866933586 + -63.74913110454079 * tfactors.T9i + -3.7208 * tfactors.T913i + 0.198654 * tfactors.T913 + + 1.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 63.74913110454079 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -3.7208 * tfactors.T943i + (1.0/3.0) * 0.198654 * tfactors.T923i + + 1.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from de04n + ln_set_rate = 31.055733866933583 + -63.74913110454079 * tfactors.T9i + -3.7208 * tfactors.T913i + 0.871782 * tfactors.T913 + + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 63.74913110454079 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -3.7208 * tfactors.T943i + (1.0/3.0) * 0.871782 * tfactors.T923i + + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_He4_to_n_He3_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // He4 --> n + He3 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real He3_log_pf, dHe3_log_pf_dT9; + + // setting He3 log(partition function) to 0.0 by default, independent of T + He3_log_pf = 0.0_rt; + dHe3_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + He3_log_pf - He4_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dHe3_log_pf_dT9 - dHe4_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ka02n + ln_set_rate = 33.046365576763264 + -238.793377069385 * tfactors.T9i + -1.50147 * tfactors.T913 + + 2.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 238.793377069385 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.50147 * tfactors.T923i + + 2.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from ka02n + ln_set_rate = 29.51775557676326 + -238.793377069385 * tfactors.T9i + + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 238.793377069385 * tfactors.T9i * tfactors.T9i + + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_He4_to_d_d_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // He4 --> d + d + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real d_log_pf, dd_log_pf_dT9; + + // setting d log(partition function) to 0.0 by default, independent of T + d_log_pf = 0.0_rt; + dd_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = d_log_pf + d_log_pf - He4_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dd_log_pf_dT9 + dd_log_pf_dT9 - dHe4_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacrn + ln_set_rate = 28.331961272809913 + -276.72748859272605 * tfactors.T9i + -4.26166 * tfactors.T913i + -0.119233 * tfactors.T913 + + 0.778829 * tfactors.T9 + -0.0925203 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 276.72748859272605 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -4.26166 * tfactors.T943i + (1.0/3.0) * -0.119233 * tfactors.T923i + + 0.778829 + (5.0/3.0) * -0.0925203 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Li6_to_He4_d_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Li6 --> He4 + d + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real d_log_pf, dd_log_pf_dT9; + + // setting d log(partition function) to 0.0 by default, independent of T + d_log_pf = 0.0_rt; + dd_log_pf_dT9 = 0.0_rt; + + amrex::Real Li6_log_pf, dLi6_log_pf_dT9; + + // setting Li6 log(partition function) to 0.0 by default, independent of T + Li6_log_pf = 0.0_rt; + dLi6_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He4_log_pf + d_log_pf - Li6_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dd_log_pf_dT9 - dLi6_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from tu19r + ln_set_rate = 27.580161349491974 + -24.991255653425394 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 24.991255653425394 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from tu19n + ln_set_rate = 22.780546349491974 + -17.102191742425394 * tfactors.T9i + -7.55198 * tfactors.T913i + 5.77546 * tfactors.T913 + + -0.487854 * tfactors.T9 + 0.032833 * tfactors.T953 + 0.3769499999999999 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 17.102191742425394 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -7.55198 * tfactors.T943i + (1.0/3.0) * 5.77546 * tfactors.T923i + + -0.487854 + (5.0/3.0) * 0.032833 * tfactors.T923 + 0.3769499999999999 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Li7_to_n_Li6_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Li7 --> n + Li6 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Li7_log_pf, dLi7_log_pf_dT9; + + // setting Li7 log(partition function) to 0.0 by default, independent of T + Li7_log_pf = 0.0_rt; + dLi7_log_pf_dT9 = 0.0_rt; + + amrex::Real Li6_log_pf, dLi6_log_pf_dT9; + + // setting Li6 log(partition function) to 0.0 by default, independent of T + Li6_log_pf = 0.0_rt; + dLi6_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + Li6_log_pf - Li7_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dLi6_log_pf_dT9 - dLi7_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from jz10n + ln_set_rate = 32.256821994837516 + -84.14544592180752 * tfactors.T9i + + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 84.14544592180752 * tfactors.T9i * tfactors.T9i + + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Be7_to_p_Li6_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Be7 --> p + Li6 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Be7_log_pf, dBe7_log_pf_dT9; + + // setting Be7 log(partition function) to 0.0 by default, independent of T + Be7_log_pf = 0.0_rt; + dBe7_log_pf_dT9 = 0.0_rt; + + amrex::Real Li6_log_pf, dLi6_log_pf_dT9; + + // setting Li6 log(partition function) to 0.0 by default, independent of T + Li6_log_pf = 0.0_rt; + dLi6_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Li6_log_pf - Be7_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dLi6_log_pf_dT9 - dBe7_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacrn + ln_set_rate = 37.48578977263412 + -65.06480941882852 * tfactors.T9i + -8.4372 * tfactors.T913i + -0.515473 * tfactors.T913 + + 0.0285578 * tfactors.T9 + 0.00879731 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 65.06480941882852 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -8.4372 * tfactors.T943i + (1.0/3.0) * -0.515473 * tfactors.T923i + + 0.0285578 + (5.0/3.0) * 0.00879731 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Be7_to_He4_He3_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Be7 --> He4 + He3 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He3_log_pf, dHe3_log_pf_dT9; + + // setting He3 log(partition function) to 0.0 by default, independent of T + He3_log_pf = 0.0_rt; + dHe3_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Be7_log_pf, dBe7_log_pf_dT9; + + // setting Be7 log(partition function) to 0.0 by default, independent of T + Be7_log_pf = 0.0_rt; + dBe7_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He4_log_pf + He3_log_pf - Be7_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dHe3_log_pf_dT9 - dBe7_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cd08n + ln_set_rate = 40.84436725519251 + -18.41793396772273 * tfactors.T9i + -12.8271 * tfactors.T913i + -3.8126 * tfactors.T913 + + 0.0942285 * tfactors.T9 + -0.00301018 * tfactors.T953 + 2.83333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 18.41793396772273 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -12.8271 * tfactors.T943i + (1.0/3.0) * -3.8126 * tfactors.T923i + + 0.0942285 + (5.0/3.0) * -0.00301018 * tfactors.T923 + 2.83333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from cd08n + ln_set_rate = 38.74676725519251 + -18.41793396772273 * tfactors.T9i + -12.8271 * tfactors.T913i + -0.0308225 * tfactors.T913 + + -0.654685 * tfactors.T9 + 0.0896331 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 18.41793396772273 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -12.8271 * tfactors.T943i + (1.0/3.0) * -0.0308225 * tfactors.T923i + + -0.654685 + (5.0/3.0) * 0.0896331 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_B8_to_p_Be7_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // B8 --> p + Be7 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Be7_log_pf, dBe7_log_pf_dT9; + + // setting Be7 log(partition function) to 0.0 by default, independent of T + Be7_log_pf = 0.0_rt; + dBe7_log_pf_dT9 = 0.0_rt; + + amrex::Real B8_log_pf, dB8_log_pf_dT9; + + // setting B8 log(partition function) to 0.0 by default, independent of T + B8_log_pf = 0.0_rt; + dB8_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Be7_log_pf - B8_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dBe7_log_pf_dT9 - dB8_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacrr + ln_set_rate = 31.03415329791634 + -8.927520483432566 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 8.927520483432566 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacrn + ln_set_rate = 35.83166329791634 + -1.5825204834325672 * tfactors.T9i + -10.264 * tfactors.T913i + -0.203472 * tfactors.T913 + + 0.121083 * tfactors.T9 + -0.00700063 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 1.5825204834325672 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -10.264 * tfactors.T943i + (1.0/3.0) * -0.203472 * tfactors.T923i + + 0.121083 + (5.0/3.0) * -0.00700063 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_B10_to_p_Be9_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // B10 --> p + Be9 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Be9_log_pf, dBe9_log_pf_dT9; + + // setting Be9 log(partition function) to 0.0 by default, independent of T + Be9_log_pf = 0.0_rt; + dBe9_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real B10_log_pf, dB10_log_pf_dT9; + + // setting B10 log(partition function) to 0.0 by default, independent of T + B10_log_pf = 0.0_rt; + dB10_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Be9_log_pf - B10_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dBe9_log_pf_dT9 - dB10_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacrr + ln_set_rate = 30.69471646932856 + -79.03181675089644 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 79.03181675089644 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacrn + ln_set_rate = 39.29853646932856 + -76.43675675089644 * tfactors.T9i + -10.361 * tfactors.T913i + 0.695179 * tfactors.T913 + + 0.342365 * tfactors.T9 + -0.356569 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 76.43675675089644 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -10.361 * tfactors.T943i + (1.0/3.0) * 0.695179 * tfactors.T923i + + 0.342365 + (5.0/3.0) * -0.356569 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacrr + ln_set_rate = 37.97343646932856 + -87.97585675089644 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 87.97585675089644 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_B10_to_He4_Li6_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // B10 --> He4 + Li6 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real B10_log_pf, dB10_log_pf_dT9; + + // setting B10 log(partition function) to 0.0 by default, independent of T + B10_log_pf = 0.0_rt; + dB10_log_pf_dT9 = 0.0_rt; + + amrex::Real Li6_log_pf, dLi6_log_pf_dT9; + + // setting Li6 log(partition function) to 0.0 by default, independent of T + Li6_log_pf = 0.0_rt; + dLi6_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He4_log_pf + Li6_log_pf - B10_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dLi6_log_pf_dT9 - dB10_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88r + ln_set_rate = 24.525872542722656 + -55.48303530931782 * tfactors.T9i + 3.33334 * tfactors.T913i + 3.25335 * tfactors.T913 + + 0.374434 * tfactors.T9 + -0.0706244 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 55.48303530931782 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 3.33334 * tfactors.T943i + (1.0/3.0) * 3.25335 * tfactors.T923i + + 0.374434 + (5.0/3.0) * -0.0706244 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from cf88n + ln_set_rate = 38.699902542722654 + -51.76990530931782 * tfactors.T9i + -18.79 * tfactors.T913i + 0.234225 * tfactors.T913 + + 3.23344 * tfactors.T9 + -1.14529 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 51.76990530931782 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -18.79 * tfactors.T943i + (1.0/3.0) * 0.234225 * tfactors.T923i + + 3.23344 + (5.0/3.0) * -1.14529 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_B11_to_n_B10_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // B11 --> n + B10 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real B10_log_pf, dB10_log_pf_dT9; + + // setting B10 log(partition function) to 0.0 by default, independent of T + B10_log_pf = 0.0_rt; + dB10_log_pf_dT9 = 0.0_rt; + + amrex::Real B11_log_pf, dB11_log_pf_dT9; + + // setting B11 log(partition function) to 0.0 by default, independent of T + B11_log_pf = 0.0_rt; + dB11_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + B10_log_pf - B11_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dB10_log_pf_dT9 - dB11_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from wagn + ln_set_rate = 35.24549452750986 + -132.9207163231968 * tfactors.T9i + 2.65756e-10 * tfactors.T913i + -9.63588e-10 * tfactors.T913 + + 1.07466e-10 * tfactors.T9 + -9.87569e-12 * tfactors.T953 + 1.500000000312603 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 132.9207163231968 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.65756e-10 * tfactors.T943i + (1.0/3.0) * -9.63588e-10 * tfactors.T923i + + 1.07466e-10 + (5.0/3.0) * -9.87569e-12 * tfactors.T923 + 1.500000000312603 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_B11_to_He4_Li7_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // B11 --> He4 + Li7 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Li7_log_pf, dLi7_log_pf_dT9; + + // setting Li7 log(partition function) to 0.0 by default, independent of T + Li7_log_pf = 0.0_rt; + dLi7_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real B11_log_pf, dB11_log_pf_dT9; + + // setting B11 log(partition function) to 0.0 by default, independent of T + B11_log_pf = 0.0_rt; + dB11_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He4_log_pf + Li7_log_pf - B11_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dLi7_log_pf_dT9 - dB11_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacrr + ln_set_rate = 35.11299507539499 + -106.9872057106956 * tfactors.T9i + + 0.190698 * tfactors.T9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 106.9872057106956 * tfactors.T9i * tfactors.T9i + + 0.190698; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacrr + ln_set_rate = 30.23013507539499 + -103.5043257106956 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 103.5043257106956 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacrn + ln_set_rate = 42.847695075394995 + -100.5451757106956 * tfactors.T9i + -19.163 * tfactors.T913i + 0.0587651 * tfactors.T913 + + 0.773338 * tfactors.T9 + -0.201519 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 100.5451757106956 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -19.163 * tfactors.T943i + (1.0/3.0) * 0.0587651 * tfactors.T923i + + 0.773338 + (5.0/3.0) * -0.201519 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C12_to_p_B11_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // C12 --> p + B11 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real C12_log_pf, dC12_log_pf_dT9; + + // setting C12 log(partition function) to 0.0 by default, independent of T + C12_log_pf = 0.0_rt; + dC12_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real B11_log_pf, dB11_log_pf_dT9; + + // setting B11 log(partition function) to 0.0 by default, independent of T + B11_log_pf = 0.0_rt; + dB11_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + B11_log_pf - C12_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dB11_log_pf_dT9 - dC12_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nw00n + ln_set_rate = 50.54783447311338 + -185.16957135793865 * tfactors.T9i + -12.095 * tfactors.T913i + -6.68421 * tfactors.T913 + + -0.0148736 * tfactors.T9 + 0.0364288 * tfactors.T953 + 2.83333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 185.16957135793865 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -12.095 * tfactors.T943i + (1.0/3.0) * -6.68421 * tfactors.T923i + + -0.0148736 + (5.0/3.0) * 0.0364288 * tfactors.T923 + 2.83333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nw00n + ln_set_rate = 43.59963447311338 + -185.16957135793865 * tfactors.T9i + -12.095 * tfactors.T913i + -1.95046 * tfactors.T913 + + 9.56928 * tfactors.T9 + -10.0637 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 185.16957135793865 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -12.095 * tfactors.T943i + (1.0/3.0) * -1.95046 * tfactors.T923i + + 9.56928 + (5.0/3.0) * -10.0637 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nw00r + ln_set_rate = 33.65665447311338 + -186.88154135793866 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 186.88154135793866 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C13_to_n_C12_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // C13 --> n + C12 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real C13_log_pf, dC13_log_pf_dT9; + + // setting C13 log(partition function) to 0.0 by default, independent of T + C13_log_pf = 0.0_rt; + dC13_log_pf_dT9 = 0.0_rt; + + amrex::Real C12_log_pf, dC12_log_pf_dT9; + + // setting C12 log(partition function) to 0.0 by default, independent of T + C12_log_pf = 0.0_rt; + dC12_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + C12_log_pf - C13_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dC12_log_pf_dT9 - dC13_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 30.901679481099528 + -57.40789742438908 * tfactors.T9i + 1.49573 * tfactors.T913i + -0.841102 * tfactors.T913 + + 0.0340543 * tfactors.T9 + -0.0026392 * tfactors.T953 + 3.1662 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 57.40789742438908 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.49573 * tfactors.T943i + (1.0/3.0) * -0.841102 * tfactors.T923i + + 0.0340543 + (5.0/3.0) * -0.0026392 * tfactors.T923 + 3.1662 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C14_to_n_C13_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // C14 --> n + C13 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real C13_log_pf, dC13_log_pf_dT9; + + // setting C13 log(partition function) to 0.0 by default, independent of T + C13_log_pf = 0.0_rt; + dC13_log_pf_dT9 = 0.0_rt; + + amrex::Real C14_log_pf, dC14_log_pf_dT9; + + // setting C14 log(partition function) to 0.0 by default, independent of T + C14_log_pf = 0.0_rt; + dC14_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + C13_log_pf - C14_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dC13_log_pf_dT9 - dC14_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 59.61417724084069 + -95.01726816447072 * tfactors.T9i + 18.3578 * tfactors.T913i + -46.5786 * tfactors.T913 + + 2.58472 * tfactors.T9 + -0.118622 * tfactors.T953 + 21.4142 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 95.01726816447072 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 18.3578 * tfactors.T943i + (1.0/3.0) * -46.5786 * tfactors.T923i + + 2.58472 + (5.0/3.0) * -0.118622 * tfactors.T923 + 21.4142 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N13_to_p_C12_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // N13 --> p + C12 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real C12_log_pf, dC12_log_pf_dT9; + + // setting C12 log(partition function) to 0.0 by default, independent of T + C12_log_pf = 0.0_rt; + dC12_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real N13_log_pf, dN13_log_pf_dT9; + + // setting N13 log(partition function) to 0.0 by default, independent of T + N13_log_pf = 0.0_rt; + dN13_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + C12_log_pf - N13_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dC12_log_pf_dT9 - dN13_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ls09n + ln_set_rate = 40.059128683693466 + -22.553277271250543 * tfactors.T9i + -13.692 * tfactors.T913i + -0.230881 * tfactors.T913 + + 4.44362 * tfactors.T9 + -3.15898 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 22.553277271250543 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -13.692 * tfactors.T943i + (1.0/3.0) * -0.230881 * tfactors.T923i + + 4.44362 + (5.0/3.0) * -3.15898 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from ls09r + ln_set_rate = 40.45372868369347 + -26.331767271250545 * tfactors.T9i + -5.10735 * tfactors.T913i + -2.24111 * tfactors.T913 + + 0.148883 * tfactors.T9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 26.331767271250545 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -5.10735 * tfactors.T943i + (1.0/3.0) * -2.24111 * tfactors.T923i + + 0.148883; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N14_to_n_N13_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // N14 --> n + N13 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real N13_log_pf, dN13_log_pf_dT9; + + // setting N13 log(partition function) to 0.0 by default, independent of T + N13_log_pf = 0.0_rt; + dN13_log_pf_dT9 = 0.0_rt; + + amrex::Real N14_log_pf, dN14_log_pf_dT9; + + // setting N14 log(partition function) to 0.0 by default, independent of T + N14_log_pf = 0.0_rt; + dN14_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + N13_log_pf - N14_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dN13_log_pf_dT9 - dN14_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from wiesn + ln_set_rate = 37.14895320022305 + -122.4723697394892 * tfactors.T9i + 1.72241e-10 * tfactors.T913i + -5.62522e-10 * tfactors.T913 + + 5.59212e-11 * tfactors.T9 + -4.6549e-12 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 122.4723697394892 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.72241e-10 * tfactors.T943i + (1.0/3.0) * -5.62522e-10 * tfactors.T923i + + 5.59212e-11 + (5.0/3.0) * -4.6549e-12 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from wiesr + ln_set_rate = 19.58051320022305 + -125.46237453948919 * tfactors.T9i + 9.44873e-10 * tfactors.T913i + -2.33713e-09 * tfactors.T913 + + 1.97507e-10 * tfactors.T9 + -1.49747e-11 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 125.46237453948919 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 9.44873e-10 * tfactors.T943i + (1.0/3.0) * -2.33713e-09 * tfactors.T923i + + 1.97507e-10 + (5.0/3.0) * -1.49747e-11 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N14_to_p_C13_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // N14 --> p + C13 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real C13_log_pf, dC13_log_pf_dT9; + + // setting C13 log(partition function) to 0.0 by default, independent of T + C13_log_pf = 0.0_rt; + dC13_log_pf_dT9 = 0.0_rt; + + amrex::Real N14_log_pf, dN14_log_pf_dT9; + + // setting N14 log(partition function) to 0.0 by default, independent of T + N14_log_pf = 0.0_rt; + dN14_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + C13_log_pf - N14_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dC13_log_pf_dT9 - dN14_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacrn + ln_set_rate = 41.72421240281699 + -87.62065170634826 * tfactors.T9i + -13.72 * tfactors.T913i + -0.450018 * tfactors.T913 + + 3.70823 * tfactors.T9 + -1.70545 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 87.62065170634826 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -13.72 * tfactors.T943i + (1.0/3.0) * -0.450018 * tfactors.T923i + + 3.70823 + (5.0/3.0) * -1.70545 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacrr + ln_set_rate = 37.17241240281699 + -93.40212170634825 * tfactors.T9i + -0.196703 * tfactors.T913 + + 0.142126 * tfactors.T9 + -0.0238912 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 93.40212170634825 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.196703 * tfactors.T923i + + 0.142126 + (5.0/3.0) * -0.0238912 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacrr + ln_set_rate = 38.39121240281698 + -101.17495170634825 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 101.17495170634825 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N15_to_n_N14_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // N15 --> n + N14 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real N15_log_pf, dN15_log_pf_dT9; + + // setting N15 log(partition function) to 0.0 by default, independent of T + N15_log_pf = 0.0_rt; + dN15_log_pf_dT9 = 0.0_rt; + + amrex::Real N14_log_pf, dN14_log_pf_dT9; + + // setting N14 log(partition function) to 0.0 by default, independent of T + N14_log_pf = 0.0_rt; + dN14_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + N14_log_pf - N15_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dN14_log_pf_dT9 - dN15_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 34.19493232087307 + -125.72659683174413 * tfactors.T9i + 1.396 * tfactors.T913i + -3.47552 * tfactors.T913 + + 0.351773 * tfactors.T9 + -0.0229344 * tfactors.T953 + 2.52161 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 125.72659683174413 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.396 * tfactors.T943i + (1.0/3.0) * -3.47552 * tfactors.T923i + + 0.351773 + (5.0/3.0) * -0.0229344 * tfactors.T923 + 2.52161 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N15_to_p_C14_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // N15 --> p + C14 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real N15_log_pf, dN15_log_pf_dT9; + + // setting N15 log(partition function) to 0.0 by default, independent of T + N15_log_pf = 0.0_rt; + dN15_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real C14_log_pf, dC14_log_pf_dT9; + + // setting C14 log(partition function) to 0.0 by default, independent of T + C14_log_pf = 0.0_rt; + dC14_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + C14_log_pf - N15_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dC14_log_pf_dT9 - dN15_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10r + ln_set_rate = 40.031567482849354 + -119.97566957362164 * tfactors.T9i + -10.658 * tfactors.T913i + 1.73644 * tfactors.T913 + + -0.350498 * tfactors.T9 + 0.0279902 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 119.97566957362164 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -10.658 * tfactors.T943i + (1.0/3.0) * 1.73644 * tfactors.T923i + + -0.350498 + (5.0/3.0) * 0.0279902 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10n + ln_set_rate = 43.04816748284936 + -118.45225957362165 * tfactors.T9i + -13.9619 * tfactors.T913i + -4.34315 * tfactors.T913 + + 6.64922 * tfactors.T9 + -3.22592 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 118.45225957362165 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -13.9619 * tfactors.T943i + (1.0/3.0) * -4.34315 * tfactors.T923i + + 6.64922 + (5.0/3.0) * -3.22592 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O14_to_p_N13_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // O14 --> p + N13 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real O14_log_pf, dO14_log_pf_dT9; + + // interpolating O14 partition function + get_partition_function_cached(O14, tfactors.T9, pf_cache, O14_log_pf, dO14_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real N13_log_pf, dN13_log_pf_dT9; + + // setting N13 log(partition function) to 0.0 by default, independent of T + N13_log_pf = 0.0_rt; + dN13_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + N13_log_pf - O14_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dN13_log_pf_dT9 - dO14_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from lg06r + ln_set_rate = 35.3038971632548 + -59.81629660012578 * tfactors.T9i + 1.57122 * tfactors.T913i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 59.81629660012578 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.57122 * tfactors.T943i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from lg06n + ln_set_rate = 42.44239716325481 + -53.690276600125785 * tfactors.T9i + -15.1676 * tfactors.T913i + 0.0955166 * tfactors.T913 + + 3.0659 * tfactors.T9 + -0.507339 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 53.690276600125785 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -15.1676 * tfactors.T943i + (1.0/3.0) * 0.0955166 * tfactors.T923i + + 3.0659 + (5.0/3.0) * -0.507339 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O15_to_n_O14_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // O15 --> n + O14 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real O14_log_pf, dO14_log_pf_dT9; + + // interpolating O14 partition function + get_partition_function_cached(O14, tfactors.T9, pf_cache, O14_log_pf, dO14_log_pf_dT9); + + amrex::Real O15_log_pf, dO15_log_pf_dT9; + + // interpolating O15 partition function + get_partition_function_cached(O15, tfactors.T9, pf_cache, O15_log_pf, dO15_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + O14_log_pf - O15_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dO14_log_pf_dT9 - dO15_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rpsmr + ln_set_rate = 32.80367308451691 + -153.43628683626292 * tfactors.T9i + -1.38986 * tfactors.T913i + 1.74662 * tfactors.T913 + + -0.0276897 * tfactors.T9 + 0.00321014 * tfactors.T953 + 0.43877999999999995 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 153.43628683626292 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.38986 * tfactors.T943i + (1.0/3.0) * 1.74662 * tfactors.T923i + + -0.0276897 + (5.0/3.0) * 0.00321014 * tfactors.T923 + 0.43877999999999995 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O15_to_p_N14_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // O15 --> p + N14 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real O15_log_pf, dO15_log_pf_dT9; + + // interpolating O15 partition function + get_partition_function_cached(O15, tfactors.T9, pf_cache, O15_log_pf, dO15_log_pf_dT9); + + amrex::Real N14_log_pf, dN14_log_pf_dT9; + + // setting N14 log(partition function) to 0.0 by default, independent of T + N14_log_pf = 0.0_rt; + dN14_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + N14_log_pf - O15_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dN14_log_pf_dT9 - dO15_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from im05r + ln_set_rate = 30.76303704754867 + -89.56670699689953 * tfactors.T9i + + 1.5682 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 89.56670699689953 * tfactors.T9i * tfactors.T9i + + 1.5682 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from im05r + ln_set_rate = 31.68169704754867 + -87.67370699689953 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 87.67370699689953 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from im05n + ln_set_rate = 44.144157047548674 + -84.67570699689952 * tfactors.T9i + -15.193 * tfactors.T913i + -4.63975 * tfactors.T913 + + 9.73458 * tfactors.T9 + -9.55051 * tfactors.T953 + 1.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 84.67570699689952 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -15.193 * tfactors.T943i + (1.0/3.0) * -4.63975 * tfactors.T923i + + 9.73458 + (5.0/3.0) * -9.55051 * tfactors.T923 + 1.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from im05n + ln_set_rate = 41.03725704754867 + -84.67570699689952 * tfactors.T9i + -15.193 * tfactors.T913i + -0.161954 * tfactors.T913 + + -7.52123 * tfactors.T9 + -0.987565 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 84.67570699689952 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -15.193 * tfactors.T943i + (1.0/3.0) * -0.161954 * tfactors.T923i + + -7.52123 + (5.0/3.0) * -0.987565 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O16_to_n_O15_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // O16 --> n + O15 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real O15_log_pf, dO15_log_pf_dT9; + + // interpolating O15 partition function + get_partition_function_cached(O15, tfactors.T9, pf_cache, O15_log_pf, dO15_log_pf_dT9); + + amrex::Real O16_log_pf, dO16_log_pf_dT9; + + // interpolating O16 partition function + get_partition_function_cached(O16, tfactors.T9, pf_cache, O16_log_pf, dO16_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + O15_log_pf - O16_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dO15_log_pf_dT9 - dO16_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rpsmr + ln_set_rate = 32.409730799676666 + -181.75871121541505 * tfactors.T9i + -1.11761 * tfactors.T913i + 1.0167 * tfactors.T913 + + 0.0449976 * tfactors.T9 + -0.00204682 * tfactors.T953 + 0.710783 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 181.75871121541505 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.11761 * tfactors.T943i + (1.0/3.0) * 1.0167 * tfactors.T923i + + 0.0449976 + (5.0/3.0) * -0.00204682 * tfactors.T923 + 0.710783 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O16_to_p_N15_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // O16 --> p + N15 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real N15_log_pf, dN15_log_pf_dT9; + + // setting N15 log(partition function) to 0.0 by default, independent of T + N15_log_pf = 0.0_rt; + dN15_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real O16_log_pf, dO16_log_pf_dT9; + + // interpolating O16 partition function + get_partition_function_cached(O16, tfactors.T9, pf_cache, O16_log_pf, dO16_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + N15_log_pf - O16_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dN15_log_pf_dT9 - dO16_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from li10r + ln_set_rate = 38.86679552635226 + -150.96226378057287 * tfactors.T9i + + 0.0459037 * tfactors.T9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 150.96226378057287 * tfactors.T9i * tfactors.T9i + + 0.0459037; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from li10r + ln_set_rate = 30.912955526352267 + -143.65591378057286 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 143.65591378057286 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from li10n + ln_set_rate = 44.33999552635227 + -140.73276378057287 * tfactors.T9i + -15.24 * tfactors.T913i + 0.334926 * tfactors.T913 + + 4.59088 * tfactors.T9 + -4.78468 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 140.73276378057287 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -15.24 * tfactors.T943i + (1.0/3.0) * 0.334926 * tfactors.T923i + + 4.59088 + (5.0/3.0) * -4.78468 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O16_to_He4_C12_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // O16 --> He4 + C12 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real C12_log_pf, dC12_log_pf_dT9; + + // setting C12 log(partition function) to 0.0 by default, independent of T + C12_log_pf = 0.0_rt; + dC12_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real O16_log_pf, dO16_log_pf_dT9; + + // interpolating O16 partition function + get_partition_function_cached(O16, tfactors.T9, pf_cache, O16_log_pf, dO16_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + C12_log_pf - O16_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dC12_log_pf_dT9 - dO16_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nac2 + ln_set_rate = 279.29694929711803 + -84.95157686791683 * tfactors.T9i + 103.411 * tfactors.T913i + -420.567 * tfactors.T913 + + 64.0874 * tfactors.T9 + -12.4624 * tfactors.T953 + 138.803 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 84.95157686791683 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 103.411 * tfactors.T943i + (1.0/3.0) * -420.567 * tfactors.T923i + + 64.0874 + (5.0/3.0) * -12.4624 * tfactors.T923 + 138.803 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nac2 + ln_set_rate = 94.31554929711803 + -84.50314686791683 * tfactors.T9i + 58.9128 * tfactors.T913i + -148.273 * tfactors.T913 + + 9.08324 * tfactors.T9 + -0.541041 * tfactors.T953 + 71.8554 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 84.50314686791683 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 58.9128 * tfactors.T943i + (1.0/3.0) * -148.273 * tfactors.T923i + + 9.08324 + (5.0/3.0) * -0.541041 * tfactors.T923 + 71.8554 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O17_to_n_O16_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // O17 --> n + O16 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real O16_log_pf, dO16_log_pf_dT9; + + // interpolating O16 partition function + get_partition_function_cached(O16, tfactors.T9, pf_cache, O16_log_pf, dO16_log_pf_dT9); + + amrex::Real O17_log_pf, dO17_log_pf_dT9; + + // interpolating O17 partition function + get_partition_function_cached(O17, tfactors.T9, pf_cache, O17_log_pf, dO17_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + O16_log_pf - O17_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dO16_log_pf_dT9 - dO17_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 29.05942236779671 + -48.05494775995079 * tfactors.T9i + -2.11246 * tfactors.T913i + 4.87742 * tfactors.T913 + + -0.314426 * tfactors.T9 + 0.0169515 * tfactors.T953 + 0.515216 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 48.05494775995079 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.11246 * tfactors.T943i + (1.0/3.0) * 4.87742 * tfactors.T923i + + -0.314426 + (5.0/3.0) * 0.0169515 * tfactors.T923 + 0.515216 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O18_to_n_O17_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // O18 --> n + O17 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real O18_log_pf, dO18_log_pf_dT9; + + // interpolating O18 partition function + get_partition_function_cached(O18, tfactors.T9, pf_cache, O18_log_pf, dO18_log_pf_dT9); + + amrex::Real O17_log_pf, dO17_log_pf_dT9; + + // interpolating O17 partition function + get_partition_function_cached(O17, tfactors.T9, pf_cache, O17_log_pf, dO17_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + O17_log_pf - O18_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dO17_log_pf_dT9 - dO18_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from bb92n + ln_set_rate = 29.703596686089448 + -93.3626442804645 * tfactors.T9i + 7.48144e-11 * tfactors.T913i + -2.47239e-10 * tfactors.T913 + + 2.48052e-11 * tfactors.T9 + -2.07736e-12 * tfactors.T953 + 1.5000000000843048 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 93.3626442804645 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 7.48144e-11 * tfactors.T943i + (1.0/3.0) * -2.47239e-10 * tfactors.T923i + + 2.48052e-11 + (5.0/3.0) * -2.07736e-12 * tfactors.T923 + 1.5000000000843048 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from bb92r + ln_set_rate = 45.61313668608945 + -95.49225428046392 * tfactors.T9i + 16.8052 * tfactors.T913i + -30.138 * tfactors.T913 + + 1.14711 * tfactors.T9 + -0.0220312 * tfactors.T953 + 15.2452 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 95.49225428046392 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 16.8052 * tfactors.T943i + (1.0/3.0) * -30.138 * tfactors.T923i + + 1.14711 + (5.0/3.0) * -0.0220312 * tfactors.T923 + 15.2452 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O18_to_He4_C14_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // O18 --> He4 + C14 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real O18_log_pf, dO18_log_pf_dT9; + + // interpolating O18 partition function + get_partition_function_cached(O18, tfactors.T9, pf_cache, O18_log_pf, dO18_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real C14_log_pf, dC14_log_pf_dT9; + + // setting C14 log(partition function) to 0.0 by default, independent of T + C14_log_pf = 0.0_rt; + dC14_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He4_log_pf + C14_log_pf - O18_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dC14_log_pf_dT9 - dO18_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10r + ln_set_rate = 36.54830162906396 + -82.66688913950057 * tfactors.T9i + -3.83188 * tfactors.T913 + + 1.64358 * tfactors.T9 + -0.177785 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 82.66688913950057 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -3.83188 * tfactors.T923i + + 1.64358 + (5.0/3.0) * -0.177785 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 0.9124016290639609 + -74.33734913950056 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 74.33734913950056 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10n + ln_set_rate = 43.20510162906396 + -72.26858913950056 * tfactors.T9i + -31.7222 * tfactors.T913i + 11.3923 * tfactors.T913 + + -9.92249 * tfactors.T9 + -2.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 72.26858913950056 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.7222 * tfactors.T943i + (1.0/3.0) * 11.3923 * tfactors.T923i + + -9.92249 + (5.0/3.0) * -2.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F17_to_p_O16_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // F17 --> p + O16 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real F17_log_pf, dF17_log_pf_dT9; + + // interpolating F17 partition function + get_partition_function_cached(F17, tfactors.T9, pf_cache, F17_log_pf, dF17_log_pf_dT9); + + amrex::Real O16_log_pf, dO16_log_pf_dT9; + + // interpolating O16 partition function + get_partition_function_cached(O16, tfactors.T9, pf_cache, O16_log_pf, dO16_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + O16_log_pf - F17_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dO16_log_pf_dT9 - dF17_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ia08n + ln_set_rate = 40.93184403787935 + -6.965832070525503 * tfactors.T9i + -16.696 * tfactors.T913i + -1.16252 * tfactors.T913 + + 0.267703 * tfactors.T9 + -0.0338411 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 6.965832070525503 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -16.696 * tfactors.T943i + (1.0/3.0) * -1.16252 * tfactors.T923i + + 0.267703 + (5.0/3.0) * -0.0338411 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F18_to_n_F17_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // F18 --> n + F17 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real F17_log_pf, dF17_log_pf_dT9; + + // interpolating F17 partition function + get_partition_function_cached(F17, tfactors.T9, pf_cache, F17_log_pf, dF17_log_pf_dT9); + + amrex::Real F18_log_pf, dF18_log_pf_dT9; + + // interpolating F18 partition function + get_partition_function_cached(F18, tfactors.T9, pf_cache, F18_log_pf, dF18_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + F17_log_pf - F18_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dF17_log_pf_dT9 - dF18_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rpsmr + ln_set_rate = 27.762893285588007 + -106.1530105021388 * tfactors.T9i + -2.71353 * tfactors.T913i + 6.19871 * tfactors.T913 + + -0.26836 * tfactors.T9 + 0.0115489 * tfactors.T953 + -1.0200200000000001 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 106.1530105021388 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.71353 * tfactors.T943i + (1.0/3.0) * 6.19871 * tfactors.T923i + + -0.26836 + (5.0/3.0) * 0.0115489 * tfactors.T923 + -1.0200200000000001 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F18_to_p_O17_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // F18 --> p + O17 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real F18_log_pf, dF18_log_pf_dT9; + + // interpolating F18 partition function + get_partition_function_cached(F18, tfactors.T9, pf_cache, F18_log_pf, dF18_log_pf_dT9); + + amrex::Real O17_log_pf, dO17_log_pf_dT9; + + // interpolating O17 partition function + get_partition_function_cached(O17, tfactors.T9, pf_cache, O17_log_pf, dO17_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + O17_log_pf - F18_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dO17_log_pf_dT9 - dF18_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10r + ln_set_rate = 33.72287495567065 + -71.29605321275191 * tfactors.T9i + 2.31435 * tfactors.T913 + + -0.302835 * tfactors.T9 + 0.020133 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 71.29605321275191 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.31435 * tfactors.T923i + + -0.302835 + (5.0/3.0) * 0.020133 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 11.255394955670651 + -65.81406921275192 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 65.81406921275192 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10n + ln_set_rate = 40.22529495567065 + -65.06777321275192 * tfactors.T9i + -16.4035 * tfactors.T913i + 4.31885 * tfactors.T913 + + -0.709921 * tfactors.T9 + -2.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 65.06777321275192 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -16.4035 * tfactors.T943i + (1.0/3.0) * 4.31885 * tfactors.T923i + + -0.709921 + (5.0/3.0) * -2.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F18_to_He4_N14_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // F18 --> He4 + N14 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real F18_log_pf, dF18_log_pf_dT9; + + // interpolating F18 partition function + get_partition_function_cached(F18, tfactors.T9, pf_cache, F18_log_pf, dF18_log_pf_dT9); + + amrex::Real N14_log_pf, dN14_log_pf_dT9; + + // setting N14 log(partition function) to 0.0 by default, independent of T + N14_log_pf = 0.0_rt; + dN14_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He4_log_pf + N14_log_pf - F18_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dN14_log_pf_dT9 - dF18_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10r + ln_set_rate = 38.61662473666887 + -62.20224752987261 * tfactors.T9i + -5.6227 * tfactors.T913i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 62.20224752987261 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -5.6227 * tfactors.T943i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 24.91396273666887 + -56.396987529872604 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 56.396987529872604 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10n + ln_set_rate = 46.25102473666887 + -51.236647529872606 * tfactors.T9i + -36.2504 * tfactors.T913i + + -5.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 51.236647529872606 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.2504 * tfactors.T943i + + (5.0/3.0) * -5.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F19_to_n_F18_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // F19 --> n + F18 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real F18_log_pf, dF18_log_pf_dT9; + + // interpolating F18 partition function + get_partition_function_cached(F18, tfactors.T9, pf_cache, F18_log_pf, dF18_log_pf_dT9); + + amrex::Real F19_log_pf, dF19_log_pf_dT9; + + // interpolating F19 partition function + get_partition_function_cached(F19, tfactors.T9, pf_cache, F19_log_pf, dF19_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + F18_log_pf - F19_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dF18_log_pf_dT9 - dF19_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rpsmr + ln_set_rate = 24.866994374600793 + -120.99629724594853 * tfactors.T9i + -6.65988 * tfactors.T913i + 18.3243 * tfactors.T913 + + -1.47263 * tfactors.T9 + 0.0955082 * tfactors.T953 + -5.25505 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 120.99629724594853 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -6.65988 * tfactors.T943i + (1.0/3.0) * 18.3243 * tfactors.T923i + + -1.47263 + (5.0/3.0) * 0.0955082 * tfactors.T923 + -5.25505 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F19_to_p_O18_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // F19 --> p + O18 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real O18_log_pf, dO18_log_pf_dT9; + + // interpolating O18 partition function + get_partition_function_cached(O18, tfactors.T9, pf_cache, O18_log_pf, dO18_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real F19_log_pf, dF19_log_pf_dT9; + + // interpolating F19 partition function + get_partition_function_cached(F19, tfactors.T9, pf_cache, F19_log_pf, dF19_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + O18_log_pf - F19_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dO18_log_pf_dT9 - dF19_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10n + ln_set_rate = 42.868088644181995 + -92.7618744782197 * tfactors.T9i + -16.7246 * tfactors.T913i + + -3.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 92.7618744782197 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -16.7246 * tfactors.T943i + + (5.0/3.0) * -3.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 30.219848644181997 + -99.4871744782197 * tfactors.T9i + 3.99059 * tfactors.T913 + + -0.593127 * tfactors.T9 + 0.0877534 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 99.4871744782197 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 3.99059 * tfactors.T923i + + -0.593127 + (5.0/3.0) * 0.0877534 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 28.027568644181997 + -94.41868447821969 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 94.41868447821969 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = -12.056811355818002 + -93.0066174782197 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 93.0066174782197 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F19_to_He4_N15_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // F19 --> He4 + N15 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real N15_log_pf, dN15_log_pf_dT9; + + // setting N15 log(partition function) to 0.0 by default, independent of T + N15_log_pf = 0.0_rt; + dN15_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real F19_log_pf, dF19_log_pf_dT9; + + // interpolating F19 partition function + get_partition_function_cached(F19, tfactors.T9, pf_cache, F19_log_pf, dF19_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + N15_log_pf - F19_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dN15_log_pf_dT9 - dF19_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10r + ln_set_rate = -4.0595772096034 + -50.77806404408662 * tfactors.T9i + 35.4292 * tfactors.T913 + + -5.5767 * tfactors.T9 + 0.441293 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 50.77806404408662 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 35.4292 * tfactors.T923i + + -5.5767 + (5.0/3.0) * 0.441293 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 28.273522790396598 + -53.56282404408662 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 53.56282404408662 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 15.3204027903966 + -50.75615404408662 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 50.75615404408662 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10n + ln_set_rate = 50.130922790396596 + -46.57820404408662 * tfactors.T9i + -36.2324 * tfactors.T913i + + -2.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 46.57820404408662 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.2324 * tfactors.T943i + + (5.0/3.0) * -2.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne18_to_p_F17_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ne18 --> p + F17 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real F17_log_pf, dF17_log_pf_dT9; + + // interpolating F17 partition function + get_partition_function_cached(F17, tfactors.T9, pf_cache, F17_log_pf, dF17_log_pf_dT9); + + amrex::Real Ne18_log_pf, dNe18_log_pf_dT9; + + // interpolating Ne18 partition function + get_partition_function_cached(Ne18, tfactors.T9, pf_cache, Ne18_log_pf, dNe18_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + F17_log_pf - Ne18_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dF17_log_pf_dT9 - dNe18_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cb09 + ln_set_rate = 17.58370046698957 + -45.55769965436449 * tfactors.T9i + -14.2191 * tfactors.T913i + 34.0647 * tfactors.T913 + + -16.5698 * tfactors.T9 + 2.48116 * tfactors.T953 + -0.6337600000000001 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 45.55769965436449 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -14.2191 * tfactors.T943i + (1.0/3.0) * 34.0647 * tfactors.T923i + + -16.5698 + (5.0/3.0) * 2.48116 * tfactors.T923 + -0.6337600000000001 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from cb09 + ln_set_rate = 53.00858046698957 + -50.485039254364494 * tfactors.T9i + -21.3249 * tfactors.T913i + -0.230774 * tfactors.T913 + + 0.917931 * tfactors.T9 + -0.0440377 * tfactors.T953 + -5.86014 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 50.485039254364494 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -21.3249 * tfactors.T943i + (1.0/3.0) * -0.230774 * tfactors.T923i + + 0.917931 + (5.0/3.0) * -0.0440377 * tfactors.T923 + -5.86014 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne18_to_He4_O14_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ne18 --> He4 + O14 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real O14_log_pf, dO14_log_pf_dT9; + + // interpolating O14 partition function + get_partition_function_cached(O14, tfactors.T9, pf_cache, O14_log_pf, dO14_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ne18_log_pf, dNe18_log_pf_dT9; + + // interpolating Ne18 partition function + get_partition_function_cached(Ne18, tfactors.T9, pf_cache, Ne18_log_pf, dNe18_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + O14_log_pf - Ne18_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dO14_log_pf_dT9 - dNe18_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from wh87n + ln_set_rate = 51.160347955038674 + -59.35823432141371 * tfactors.T9i + -39.38 * tfactors.T913i + -0.0772187 * tfactors.T913 + + -0.635361 * tfactors.T9 + 0.106236 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 59.35823432141371 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.38 * tfactors.T943i + (1.0/3.0) * -0.0772187 * tfactors.T923i + + -0.635361 + (5.0/3.0) * 0.106236 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from wh87r + ln_set_rate = 20.01796795503867 + -71.51723432141371 * tfactors.T9i + + 6.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 71.51723432141371 * tfactors.T9i * tfactors.T9i + + 6.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from wh87r + ln_set_rate = 28.243807955038672 + -81.96823432141372 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 81.96823432141372 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from wh87r + ln_set_rate = 22.56327795503867 + -71.08823432141371 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 71.08823432141371 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne19_to_n_Ne18_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ne19 --> n + Ne18 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ne18_log_pf, dNe18_log_pf_dT9; + + // interpolating Ne18 partition function + get_partition_function_cached(Ne18, tfactors.T9, pf_cache, Ne18_log_pf, dNe18_log_pf_dT9); + + amrex::Real Ne19_log_pf, dNe19_log_pf_dT9; + + // interpolating Ne19 partition function + get_partition_function_cached(Ne19, tfactors.T9, pf_cache, Ne19_log_pf, dNe19_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ne18_log_pf - Ne19_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNe18_log_pf_dT9 - dNe19_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 32.20262305938555 + -135.04024674452072 * tfactors.T9i + 0.937162 * tfactors.T913 + + -0.0221952 * tfactors.T9 + -0.00101206 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 135.04024674452072 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.937162 * tfactors.T923i + + -0.0221952 + (5.0/3.0) * -0.00101206 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne19_to_p_F18_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ne19 --> p + F18 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real F18_log_pf, dF18_log_pf_dT9; + + // interpolating F18 partition function + get_partition_function_cached(F18, tfactors.T9, pf_cache, F18_log_pf, dF18_log_pf_dT9); + + amrex::Real Ne19_log_pf, dNe19_log_pf_dT9; + + // interpolating Ne19 partition function + get_partition_function_cached(Ne19, tfactors.T9, pf_cache, Ne19_log_pf, dNe19_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + F18_log_pf - Ne19_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dF18_log_pf_dT9 - dNe19_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10r + ln_set_rate = 18.192220240787112 + -77.27667559674641 * tfactors.T9i + 13.1683 * tfactors.T913 + + -1.92023 * tfactors.T9 + 0.16901 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 77.27667559674641 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 13.1683 * tfactors.T923i + + -1.92023 + (5.0/3.0) * 0.16901 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = -5.39950975921289 + -74.78415559674642 * tfactors.T9i + 22.4903 * tfactors.T913 + + 0.307872 * tfactors.T9 + -0.296226 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 74.78415559674642 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 22.4903 * tfactors.T923i + + 0.307872 + (5.0/3.0) * -0.296226 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10n + ln_set_rate = 81.45789024078711 + -74.38520559674642 * tfactors.T9i + -21.4023 * tfactors.T913i + -93.766 * tfactors.T913 + + 179.258 * tfactors.T9 + -202.561 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 74.38520559674642 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -21.4023 * tfactors.T943i + (1.0/3.0) * -93.766 * tfactors.T923i + + 179.258 + (5.0/3.0) * -202.561 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne19_to_He4_O15_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ne19 --> He4 + O15 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real O15_log_pf, dO15_log_pf_dT9; + + // interpolating O15 partition function + get_partition_function_cached(O15, tfactors.T9, pf_cache, O15_log_pf, dO15_log_pf_dT9); + + amrex::Real Ne19_log_pf, dNe19_log_pf_dT9; + + // interpolating Ne19 partition function + get_partition_function_cached(Ne19, tfactors.T9, pf_cache, Ne19_log_pf, dNe19_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + O15_log_pf - Ne19_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dO15_log_pf_dT9 - dNe19_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from dc11r + ln_set_rate = -7.510242070092687 + -45.15053612970033 * tfactors.T9i + -3.24609 * tfactors.T913i + 44.4647 * tfactors.T913 + + -9.79962 * tfactors.T9 + 0.841782 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 45.15053612970033 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -3.24609 * tfactors.T943i + (1.0/3.0) * 44.4647 * tfactors.T923i + + -9.79962 + (5.0/3.0) * 0.841782 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from dc11r + ln_set_rate = 24.694111429907313 + -46.83053612970032 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 46.83053612970032 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from dc11n + ln_set_rate = 51.03075792990731 + -40.946146129700324 * tfactors.T9i + -39.578 * tfactors.T913i + + -3.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 40.946146129700324 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.578 * tfactors.T943i + + (5.0/3.0) * -3.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne20_to_n_Ne19_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ne20 --> n + Ne19 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ne19_log_pf, dNe19_log_pf_dT9; + + // interpolating Ne19 partition function + get_partition_function_cached(Ne19, tfactors.T9, pf_cache, Ne19_log_pf, dNe19_log_pf_dT9); + + amrex::Real Ne20_log_pf, dNe20_log_pf_dT9; + + // interpolating Ne20 partition function + get_partition_function_cached(Ne20, tfactors.T9, pf_cache, Ne20_log_pf, dNe20_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ne19_log_pf - Ne20_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNe19_log_pf_dT9 - dNe20_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 30.751055671271477 + -195.7136829567074 * tfactors.T9i + 1.57592 * tfactors.T913 + + -0.11175 * tfactors.T9 + 0.00226473 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 195.7136829567074 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.57592 * tfactors.T923i + + -0.11175 + (5.0/3.0) * 0.00226473 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne20_to_p_F19_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ne20 --> p + F19 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real F19_log_pf, dF19_log_pf_dT9; + + // interpolating F19 partition function + get_partition_function_cached(F19, tfactors.T9, pf_cache, F19_log_pf, dF19_log_pf_dT9); + + amrex::Real Ne20_log_pf, dNe20_log_pf_dT9; + + // interpolating Ne20 partition function + get_partition_function_cached(Ne20, tfactors.T9, pf_cache, Ne20_log_pf, dNe20_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + F19_log_pf - Ne20_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dF19_log_pf_dT9 - dNe20_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacrr + ln_set_rate = 18.711255537457795 + -156.78628300750532 * tfactors.T9i + 31.6442 * tfactors.T913i + -58.6563 * tfactors.T913 + + 67.7365 * tfactors.T9 + -22.9721 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 156.78628300750532 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 31.6442 * tfactors.T943i + (1.0/3.0) * -58.6563 * tfactors.T923i + + 67.7365 + (5.0/3.0) * -22.9721 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacrr + ln_set_rate = 36.72378553745779 + -150.75597300750533 * tfactors.T9i + -11.3832 * tfactors.T913i + 5.47872 * tfactors.T913 + + -1.07203 * tfactors.T9 + 0.11196 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 150.75597300750533 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -11.3832 * tfactors.T943i + (1.0/3.0) * 5.47872 * tfactors.T923i + + -1.07203 + (5.0/3.0) * 0.11196 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacrn + ln_set_rate = 42.62288553745779 + -149.04214300750533 * tfactors.T9i + -18.116 * tfactors.T913i + -1.4622 * tfactors.T913 + + 6.95113 * tfactors.T9 + -2.90366 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 149.04214300750533 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -18.116 * tfactors.T943i + (1.0/3.0) * -1.4622 * tfactors.T923i + + 6.95113 + (5.0/3.0) * -2.90366 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne20_to_He4_O16_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ne20 --> He4 + O16 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real O16_log_pf, dO16_log_pf_dT9; + + // interpolating O16 partition function + get_partition_function_cached(O16, tfactors.T9, pf_cache, O16_log_pf, dO16_log_pf_dT9); + + amrex::Real Ne20_log_pf, dNe20_log_pf_dT9; + + // interpolating Ne20 partition function + get_partition_function_cached(Ne20, tfactors.T9, pf_cache, Ne20_log_pf, dNe20_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + O16_log_pf - Ne20_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dO16_log_pf_dT9 - dNe20_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from co10r + ln_set_rate = 28.644822801502126 + -65.24608327101186 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 65.24608327101186 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from co10n + ln_set_rate = 48.662112801502126 + -54.887583271011856 * tfactors.T9i + -39.7262 * tfactors.T913i + -0.210799 * tfactors.T913 + + 0.442879 * tfactors.T9 + -0.0797753 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 54.887583271011856 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.7262 * tfactors.T943i + (1.0/3.0) * -0.210799 * tfactors.T923i + + 0.442879 + (5.0/3.0) * -0.0797753 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from co10r + ln_set_rate = 34.267592801502126 + -67.65188327101185 * tfactors.T9i + -3.65925 * tfactors.T913 + + 0.714224 * tfactors.T9 + -0.00107508 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 67.65188327101185 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -3.65925 * tfactors.T923i + + 0.714224 + (5.0/3.0) * -0.00107508 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne21_to_n_Ne20_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ne21 --> n + Ne20 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ne21_log_pf, dNe21_log_pf_dT9; + + // interpolating Ne21 partition function + get_partition_function_cached(Ne21, tfactors.T9, pf_cache, Ne21_log_pf, dNe21_log_pf_dT9); + + amrex::Real Ne20_log_pf, dNe20_log_pf_dT9; + + // interpolating Ne20 partition function + get_partition_function_cached(Ne20, tfactors.T9, pf_cache, Ne20_log_pf, dNe20_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ne20_log_pf - Ne21_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNe20_log_pf_dT9 - dNe21_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ka02r + ln_set_rate = 35.00203368173308 + -80.16400220935503 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 80.16400220935503 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from ka02n + ln_set_rate = 30.844143681733087 + -78.46007220935503 * tfactors.T9i + + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 78.46007220935503 * tfactors.T9i * tfactors.T9i + + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne21_to_He4_O17_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ne21 --> He4 + O17 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ne21_log_pf, dNe21_log_pf_dT9; + + // interpolating Ne21 partition function + get_partition_function_cached(Ne21, tfactors.T9, pf_cache, Ne21_log_pf, dNe21_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real O17_log_pf, dO17_log_pf_dT9; + + // interpolating O17 partition function + get_partition_function_cached(O17, tfactors.T9, pf_cache, O17_log_pf, dO17_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + O17_log_pf - Ne21_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dO17_log_pf_dT9 - dNe21_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from be13r + ln_set_rate = 0.09298411543850094 + -90.7784662204353 * tfactors.T9i + 123.363 * tfactors.T913i + -87.4351 * tfactors.T913 + + -3.40974e-06 * tfactors.T9 + -57.0469 * tfactors.T953 + 83.7218 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 90.7784662204353 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 123.363 * tfactors.T943i + (1.0/3.0) * -87.4351 * tfactors.T923i + + -3.40974e-06 + (5.0/3.0) * -57.0469 * tfactors.T923 + 83.7218 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from be13r + ln_set_rate = -91.95121588456149 + -98.9451062204353 * tfactors.T9i + 3.31162e-08 * tfactors.T913i + 130.258 * tfactors.T913 + + -7.92551e-05 * tfactors.T9 + -4.13772 * tfactors.T953 + -41.2753 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 98.9451062204353 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 3.31162e-08 * tfactors.T943i + (1.0/3.0) * 130.258 * tfactors.T923i + + -7.92551e-05 + (5.0/3.0) * -4.13772 * tfactors.T923 + -41.2753 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from be13r + ln_set_rate = 27.322784115438502 + -91.26872622043531 * tfactors.T9i + 2.87641 * tfactors.T913i + -3.54489 * tfactors.T913 + + -2.11222e-08 * tfactors.T9 + -3.90649e-09 * tfactors.T953 + 6.25778 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 91.26872622043531 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.87641 * tfactors.T943i + (1.0/3.0) * -3.54489 * tfactors.T923i + + -2.11222e-08 + (5.0/3.0) * -3.90649e-09 * tfactors.T923 + 6.25778 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne22_to_n_Ne21_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ne22 --> n + Ne21 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ne21_log_pf, dNe21_log_pf_dT9; + + // interpolating Ne21 partition function + get_partition_function_cached(Ne21, tfactors.T9, pf_cache, Ne21_log_pf, dNe21_log_pf_dT9); + + amrex::Real Ne22_log_pf, dNe22_log_pf_dT9; + + // interpolating Ne22 partition function + get_partition_function_cached(Ne22, tfactors.T9, pf_cache, Ne22_log_pf, dNe22_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ne21_log_pf - Ne22_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNe21_log_pf_dT9 - dNe22_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 48.564586649070094 + -120.22397401977172 * tfactors.T9i + -0.238173 * tfactors.T913i + -12.2336 * tfactors.T913 + + 1.14968 * tfactors.T9 + -0.0768882 * tfactors.T953 + 4.13636 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 120.22397401977172 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.238173 * tfactors.T943i + (1.0/3.0) * -12.2336 * tfactors.T923i + + 1.14968 + (5.0/3.0) * -0.0768882 * tfactors.T923 + 4.13636 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne22_to_He4_O18_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ne22 --> He4 + O18 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real O18_log_pf, dO18_log_pf_dT9; + + // interpolating O18 partition function + get_partition_function_cached(O18, tfactors.T9, pf_cache, O18_log_pf, dO18_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ne22_log_pf, dNe22_log_pf_dT9; + + // interpolating Ne22 partition function + get_partition_function_cached(Ne22, tfactors.T9, pf_cache, Ne22_log_pf, dNe22_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + O18_log_pf - Ne22_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dO18_log_pf_dT9 - dNe22_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10r + ln_set_rate = -7.119065921580848 + -114.18179645973349 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 114.18179645973349 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = -56.510065921580846 + -112.85484845973349 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 112.85484845973349 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 39.76833407841915 + -143.2255364597335 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 143.2255364597335 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 106.99883407841915 + -113.76407645973349 * tfactors.T9i + -44.3823 * tfactors.T913i + -46.6617 * tfactors.T913 + + 7.88059 * tfactors.T9 + -0.590829 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 113.76407645973349 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -44.3823 * tfactors.T943i + (1.0/3.0) * -46.6617 * tfactors.T923i + + 7.88059 + (5.0/3.0) * -0.590829 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na21_to_p_Ne20_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Na21 --> p + Ne20 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Na21_log_pf, dNa21_log_pf_dT9; + + // interpolating Na21 partition function + get_partition_function_cached(Na21, tfactors.T9, pf_cache, Na21_log_pf, dNa21_log_pf_dT9); + + amrex::Real Ne20_log_pf, dNe20_log_pf_dT9; + + // interpolating Ne20 partition function + get_partition_function_cached(Ne20, tfactors.T9, pf_cache, Ne20_log_pf, dNe20_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ne20_log_pf - Na21_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dNe20_log_pf_dT9 - dNa21_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ly18 + ln_set_rate = 195319.2650977437 + -89.3610144370849 * tfactors.T9i + 21894.7 * tfactors.T913i + -319153.0 * tfactors.T913 + + 224369.0 * tfactors.T9 + -188049.0 * tfactors.T953 + 48704.9 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 89.3610144370849 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 21894.7 * tfactors.T943i + (1.0/3.0) * -319153.0 * tfactors.T923i + + 224369.0 + (5.0/3.0) * -188049.0 * tfactors.T923 + 48704.9 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from ly18 + ln_set_rate = 230.14209774368004 + -28.373725437084907 * tfactors.T9i + 15.325 * tfactors.T913i + -294.859 * tfactors.T913 + + 107.692 * tfactors.T9 + -46.2072 * tfactors.T953 + 59.3398 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 28.373725437084907 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 15.325 * tfactors.T943i + (1.0/3.0) * -294.859 * tfactors.T923i + + 107.692 + (5.0/3.0) * -46.2072 * tfactors.T923 + 59.3398 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from ly18 + ln_set_rate = 28.096127743680043 + -37.059014437084905 * tfactors.T9i + 20.5893 * tfactors.T913i + -17.5841 * tfactors.T913 + + 0.243226 * tfactors.T9 + -0.000231418 * tfactors.T953 + 14.3398 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 37.059014437084905 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 20.5893 * tfactors.T943i + (1.0/3.0) * -17.5841 * tfactors.T923i + + 0.243226 + (5.0/3.0) * -0.000231418 * tfactors.T923 + 14.3398 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from ly18 + ln_set_rate = 252.28409774368004 + -32.674594437084906 * tfactors.T9i + 258.57 * tfactors.T913i + -506.387 * tfactors.T913 + + 22.1576 * tfactors.T9 + -0.721182 * tfactors.T953 + 231.788 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 32.674594437084906 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 258.57 * tfactors.T943i + (1.0/3.0) * -506.387 * tfactors.T923i + + 22.1576 + (5.0/3.0) * -0.721182 * tfactors.T923 + 231.788 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na21_to_He4_F17_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Na21 --> He4 + F17 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real F17_log_pf, dF17_log_pf_dT9; + + // interpolating F17 partition function + get_partition_function_cached(F17, tfactors.T9, pf_cache, F17_log_pf, dF17_log_pf_dT9); + + amrex::Real Na21_log_pf, dNa21_log_pf_dT9; + + // interpolating Na21 partition function + get_partition_function_cached(Na21, tfactors.T9, pf_cache, Na21_log_pf, dNa21_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + F17_log_pf - Na21_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dF17_log_pf_dT9 - dNa21_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rpsmr + ln_set_rate = 66.33566650730282 + -77.87093563755207 * tfactors.T9i + 15.559 * tfactors.T913i + -68.3231 * tfactors.T913 + + 2.54275 * tfactors.T9 + -0.0989207 * tfactors.T953 + 38.3877 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 77.87093563755207 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 15.559 * tfactors.T943i + (1.0/3.0) * -68.3231 * tfactors.T923i + + 2.54275 + (5.0/3.0) * -0.0989207 * tfactors.T923 + 38.3877 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na22_to_n_Na21_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Na22 --> n + Na21 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Na21_log_pf, dNa21_log_pf_dT9; + + // interpolating Na21 partition function + get_partition_function_cached(Na21, tfactors.T9, pf_cache, Na21_log_pf, dNa21_log_pf_dT9); + + amrex::Real Na22_log_pf, dNa22_log_pf_dT9; + + // interpolating Na22 partition function + get_partition_function_cached(Na22, tfactors.T9, pf_cache, Na22_log_pf, dNa22_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Na21_log_pf - Na22_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNa21_log_pf_dT9 - dNa22_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 30.68149291880343 + -128.43704384300023 * tfactors.T9i + 1.31089 * tfactors.T913 + + -0.164931 * tfactors.T9 + 0.00903374 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 128.43704384300023 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.31089 * tfactors.T923i + + -0.164931 + (5.0/3.0) * 0.00903374 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na22_to_p_Ne21_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Na22 --> p + Ne21 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ne21_log_pf, dNe21_log_pf_dT9; + + // interpolating Ne21 partition function + get_partition_function_cached(Ne21, tfactors.T9, pf_cache, Ne21_log_pf, dNe21_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Na22_log_pf, dNa22_log_pf_dT9; + + // interpolating Na22 partition function + get_partition_function_cached(Na22, tfactors.T9, pf_cache, Na22_log_pf, dNa22_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ne21_log_pf - Na22_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dNe21_log_pf_dT9 - dNa22_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10n + ln_set_rate = 42.165346980750385 + -78.19798607071328 * tfactors.T9i + -19.2096 * tfactors.T913i + + -1.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 78.19798607071328 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -19.2096 * tfactors.T943i + + (5.0/3.0) * -1.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = -16.390453019249613 + -82.41183607071328 * tfactors.T9i + 21.1176 * tfactors.T913i + 34.0411 * tfactors.T913 + + -4.45593 * tfactors.T9 + 0.328613 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 82.41183607071328 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 21.1176 * tfactors.T943i + (1.0/3.0) * 34.0411 * tfactors.T923i + + -4.45593 + (5.0/3.0) * 0.328613 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 24.852786980750384 + -79.59755607071328 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 79.59755607071328 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = -24.559653019249616 + -78.39416607071328 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 78.39416607071328 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na22_to_He4_F18_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Na22 --> He4 + F18 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real F18_log_pf, dF18_log_pf_dT9; + + // interpolating F18 partition function + get_partition_function_cached(F18, tfactors.T9, pf_cache, F18_log_pf, dF18_log_pf_dT9); + + amrex::Real Na22_log_pf, dNa22_log_pf_dT9; + + // interpolating Na22 partition function + get_partition_function_cached(Na22, tfactors.T9, pf_cache, Na22_log_pf, dNa22_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + F18_log_pf - Na22_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dF18_log_pf_dT9 - dNa22_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rpsmr + ln_set_rate = 59.32473614051823 + -100.22898907841348 * tfactors.T9i + 18.8956 * tfactors.T913i + -65.6134 * tfactors.T913 + + 1.71114 * tfactors.T9 + -0.0260999 * tfactors.T953 + 39.3396 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 100.22898907841348 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 18.8956 * tfactors.T943i + (1.0/3.0) * -65.6134 * tfactors.T923i + + 1.71114 + (5.0/3.0) * -0.0260999 * tfactors.T923 + 39.3396 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na23_to_n_Na22_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Na23 --> n + Na22 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Na23_log_pf, dNa23_log_pf_dT9; + + // interpolating Na23 partition function + get_partition_function_cached(Na23, tfactors.T9, pf_cache, Na23_log_pf, dNa23_log_pf_dT9); + + amrex::Real Na22_log_pf, dNa22_log_pf_dT9; + + // interpolating Na22 partition function + get_partition_function_cached(Na22, tfactors.T9, pf_cache, Na22_log_pf, dNa22_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Na22_log_pf - Na23_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNa22_log_pf_dT9 - dNa23_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 37.088544050026705 + -144.12558064288453 * tfactors.T9i + 1.02148 * tfactors.T913 + + -0.334638 * tfactors.T9 + 0.0258708 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 144.12558064288453 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.02148 * tfactors.T923i + + -0.334638 + (5.0/3.0) * 0.0258708 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na23_to_p_Ne22_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Na23 --> p + Ne22 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Na23_log_pf, dNa23_log_pf_dT9; + + // interpolating Na23 partition function + get_partition_function_cached(Na23, tfactors.T9, pf_cache, Na23_log_pf, dNa23_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ne22_log_pf, dNe22_log_pf_dT9; + + // interpolating Ne22 partition function + get_partition_function_cached(Ne22, tfactors.T9, pf_cache, Ne22_log_pf, dNe22_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ne22_log_pf - Na23_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dNe22_log_pf_dT9 - dNa23_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ke17r + ln_set_rate = 21.673073381706992 + -103.77146219384292 * tfactors.T9i + + 1.189235 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 103.77146219384292 * tfactors.T9i * tfactors.T9i + + 1.189235 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from ke17r + ln_set_rate = 0.8379043817069913 + -102.46235419384291 * tfactors.T9i + + 0.009810000000000096 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 102.46235419384291 * tfactors.T9i * tfactors.T9i + + 0.009810000000000096 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from ke17r + ln_set_rate = 18.18205438170699 + -102.85114819384292 * tfactors.T9i + + 4.735580000000001 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 102.85114819384292 * tfactors.T9i * tfactors.T9i + + 4.735580000000001 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from ke17r + ln_set_rate = 36.30970438170699 + -110.77516219384292 * tfactors.T9i + + 0.732533 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 110.77516219384292 * tfactors.T9i * tfactors.T9i + + 0.732533 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from ke17r + ln_set_rate = 33.91320438170699 + -106.65075219384292 * tfactors.T9i + + 1.656226 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 106.65075219384292 * tfactors.T9i * tfactors.T9i + + 1.656226 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from ke17r + ln_set_rate = 18.266434381706993 + -104.66929219384292 * tfactors.T9i + + -2.79964 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 104.66929219384292 * tfactors.T9i * tfactors.T9i + + -2.79964 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na23_to_He4_F19_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Na23 --> He4 + F19 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Na23_log_pf, dNa23_log_pf_dT9; + + // interpolating Na23 partition function + get_partition_function_cached(Na23, tfactors.T9, pf_cache, Na23_log_pf, dNa23_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real F19_log_pf, dF19_log_pf_dT9; + + // interpolating F19 partition function + get_partition_function_cached(F19, tfactors.T9, pf_cache, F19_log_pf, dF19_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + F19_log_pf - Na23_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dF19_log_pf_dT9 - dNa23_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rpsmr + ln_set_rate = 76.90044981594414 + -123.58233417534949 * tfactors.T9i + 39.7219 * tfactors.T913i + -100.401 * tfactors.T913 + + 3.15808 * tfactors.T9 + -0.0629822 * tfactors.T953 + 55.9823 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 123.58233417534949 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 39.7219 * tfactors.T943i + (1.0/3.0) * -100.401 * tfactors.T923i + + 3.15808 + (5.0/3.0) * -0.0629822 * tfactors.T923 + 55.9823 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg23_to_p_Na22_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mg23 --> p + Na22 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Mg23_log_pf, dMg23_log_pf_dT9; + + // interpolating Mg23 partition function + get_partition_function_cached(Mg23, tfactors.T9, pf_cache, Mg23_log_pf, dMg23_log_pf_dT9); + + amrex::Real Na22_log_pf, dNa22_log_pf_dT9; + + // interpolating Na22 partition function + get_partition_function_cached(Na22, tfactors.T9, pf_cache, Na22_log_pf, dNa22_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Na22_log_pf - Mg23_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dNa22_log_pf_dT9 - dMg23_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10r + ln_set_rate = 12.945088030149961 + -90.40345535621152 * tfactors.T9i + 4.86658 * tfactors.T913i + 16.4592 * tfactors.T913 + + -1.95129 * tfactors.T9 + 0.132972 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 90.40345535621152 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 4.86658 * tfactors.T943i + (1.0/3.0) * 16.4592 * tfactors.T923i + + -1.95129 + (5.0/3.0) * 0.132972 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 7.97588803014996 + -88.75460635621153 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 88.75460635621153 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = -1.0557119698500408 + -88.47665335621153 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 88.47665335621153 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg23_to_He4_Ne19_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mg23 --> He4 + Ne19 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mg23_log_pf, dMg23_log_pf_dT9; + + // interpolating Mg23 partition function + get_partition_function_cached(Mg23, tfactors.T9, pf_cache, Mg23_log_pf, dMg23_log_pf_dT9); + + amrex::Real Ne19_log_pf, dNe19_log_pf_dT9; + + // interpolating Ne19 partition function + get_partition_function_cached(Ne19, tfactors.T9, pf_cache, Ne19_log_pf, dNe19_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ne19_log_pf - Mg23_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dNe19_log_pf_dT9 - dMg23_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 61.31463392988109 + -111.99097883787859 * tfactors.T9i + -46.6346 * tfactors.T913i + -1.1007 * tfactors.T913 + + -0.794097 * tfactors.T9 + 0.0813036 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 111.99097883787859 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -46.6346 * tfactors.T943i + (1.0/3.0) * -1.1007 * tfactors.T923i + + -0.794097 + (5.0/3.0) * 0.0813036 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg24_to_n_Mg23_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mg24 --> n + Mg23 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Mg23_log_pf, dMg23_log_pf_dT9; + + // interpolating Mg23 partition function + get_partition_function_cached(Mg23, tfactors.T9, pf_cache, Mg23_log_pf, dMg23_log_pf_dT9); + + amrex::Real Mg24_log_pf, dMg24_log_pf_dT9; + + // interpolating Mg24 partition function + get_partition_function_cached(Mg24, tfactors.T9, pf_cache, Mg24_log_pf, dMg24_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Mg23_log_pf - Mg24_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dMg23_log_pf_dT9 - dMg24_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 32.05683058133977 + -191.83691284889673 * tfactors.T9i + 2.66964 * tfactors.T913 + + -0.448904 * tfactors.T9 + 0.0326505 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 191.83691284889673 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.66964 * tfactors.T923i + + -0.448904 + (5.0/3.0) * 0.0326505 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg24_to_p_Na23_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mg24 --> p + Na23 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Na23_log_pf, dNa23_log_pf_dT9; + + // interpolating Na23 partition function + get_partition_function_cached(Na23, tfactors.T9, pf_cache, Na23_log_pf, dNa23_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Mg24_log_pf, dMg24_log_pf_dT9; + + // interpolating Mg24 partition function + get_partition_function_cached(Mg24, tfactors.T9, pf_cache, Mg24_log_pf, dMg24_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Na23_log_pf - Mg24_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dNa23_log_pf_dT9 - dMg24_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10r + ln_set_rate = 34.107544561463015 + -138.96838756220697 * tfactors.T9i + -0.360588 * tfactors.T913 + + 1.4187 * tfactors.T9 + -0.184061 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 138.96838756220697 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.360588 * tfactors.T923i + + 1.4187 + (5.0/3.0) * -0.184061 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 20.02229456146302 + -137.30028756220696 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 137.30028756220696 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10n + ln_set_rate = 43.95564456146302 + -135.68809756220696 * tfactors.T9i + -20.6428 * tfactors.T913i + 1.52954 * tfactors.T913 + + 2.7487 * tfactors.T9 + -1.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 135.68809756220696 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -20.6428 * tfactors.T943i + (1.0/3.0) * 1.52954 * tfactors.T923i + + 2.7487 + (5.0/3.0) * -1.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg24_to_He4_Ne20_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mg24 --> He4 + Ne20 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mg24_log_pf, dMg24_log_pf_dT9; + + // interpolating Mg24 partition function + get_partition_function_cached(Mg24, tfactors.T9, pf_cache, Mg24_log_pf, dMg24_log_pf_dT9); + + amrex::Real Ne20_log_pf, dNe20_log_pf_dT9; + + // interpolating Ne20 partition function + get_partition_function_cached(Ne20, tfactors.T9, pf_cache, Ne20_log_pf, dNe20_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ne20_log_pf - Mg24_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dNe20_log_pf_dT9 - dMg24_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10r + ln_set_rate = 16.022538839949377 + -120.89510873006793 * tfactors.T9i + 16.9229 * tfactors.T913 + + -2.57325 * tfactors.T9 + 0.208997 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 120.89510873006793 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 16.9229 * tfactors.T923i + + -2.57325 + (5.0/3.0) * 0.208997 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 26.803878839949377 + -117.33446873006793 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 117.33446873006793 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = -13.884691160050625 + -110.62025873006793 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 110.62025873006793 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10n + ln_set_rate = 49.32660883994937 + -108.11420873006793 * tfactors.T9i + -46.2525 * tfactors.T913i + 5.58901 * tfactors.T913 + + 7.61843 * tfactors.T9 + -3.683 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 108.11420873006793 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -46.2525 * tfactors.T943i + (1.0/3.0) * 5.58901 * tfactors.T923i + + 7.61843 + (5.0/3.0) * -3.683 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg25_to_n_Mg24_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mg25 --> n + Mg24 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Mg24_log_pf, dMg24_log_pf_dT9; + + // interpolating Mg24 partition function + get_partition_function_cached(Mg24, tfactors.T9, pf_cache, Mg24_log_pf, dMg24_log_pf_dT9); + + amrex::Real Mg25_log_pf, dMg25_log_pf_dT9; + + // interpolating Mg25 partition function + get_partition_function_cached(Mg25, tfactors.T9, pf_cache, Mg25_log_pf, dMg25_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Mg24_log_pf - Mg25_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dMg24_log_pf_dT9 - dMg25_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 86.49619140090023 + -84.90585734084098 * tfactors.T9i + -0.142939 * tfactors.T913i + -57.7499 * tfactors.T913 + + 7.01981 * tfactors.T9 + -0.582057 * tfactors.T953 + 14.3133 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 84.90585734084098 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.142939 * tfactors.T943i + (1.0/3.0) * -57.7499 * tfactors.T923i + + 7.01981 + (5.0/3.0) * -0.582057 * tfactors.T923 + 14.3133 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg25_to_He4_Ne21_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mg25 --> He4 + Ne21 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ne21_log_pf, dNe21_log_pf_dT9; + + // interpolating Ne21 partition function + get_partition_function_cached(Ne21, tfactors.T9, pf_cache, Ne21_log_pf, dNe21_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mg25_log_pf, dMg25_log_pf_dT9; + + // interpolating Mg25 partition function + get_partition_function_cached(Mg25, tfactors.T9, pf_cache, Mg25_log_pf, dMg25_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ne21_log_pf - Mg25_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dNe21_log_pf_dT9 - dMg25_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88r + ln_set_rate = 50.67026655911652 + -136.77028986154426 * tfactors.T9i + -29.4583 * tfactors.T913 + + 14.6328 * tfactors.T9 + -3.47392 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 136.77028986154426 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -29.4583 * tfactors.T923i + + 14.6328 + (5.0/3.0) * -3.47392 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from cf88n + ln_set_rate = 61.12006655911652 + -114.72128986154426 * tfactors.T9i + -46.89 * tfactors.T913i + -0.72642 * tfactors.T913 + + -0.76406 * tfactors.T9 + 0.0797483 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 114.72128986154426 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -46.89 * tfactors.T943i + (1.0/3.0) * -0.72642 * tfactors.T923i + + -0.76406 + (5.0/3.0) * 0.0797483 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg26_to_n_Mg25_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mg26 --> n + Mg25 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Mg25_log_pf, dMg25_log_pf_dT9; + + // interpolating Mg25 partition function + get_partition_function_cached(Mg25, tfactors.T9, pf_cache, Mg25_log_pf, dMg25_log_pf_dT9); + + amrex::Real Mg26_log_pf, dMg26_log_pf_dT9; + + // interpolating Mg26 partition function + get_partition_function_cached(Mg26, tfactors.T9, pf_cache, Mg26_log_pf, dMg26_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Mg25_log_pf - Mg26_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dMg25_log_pf_dT9 - dMg26_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 63.80051180886052 + -128.77563135326218 * tfactors.T9i + 9.392 * tfactors.T913i + -36.6784 * tfactors.T913 + + 3.09567 * tfactors.T9 + -0.223882 * tfactors.T953 + 13.8852 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 128.77563135326218 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 9.392 * tfactors.T943i + (1.0/3.0) * -36.6784 * tfactors.T923i + + 3.09567 + (5.0/3.0) * -0.223882 * tfactors.T923 + 13.8852 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg26_to_He4_Ne22_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mg26 --> He4 + Ne22 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ne22_log_pf, dNe22_log_pf_dT9; + + // interpolating Ne22 partition function + get_partition_function_cached(Ne22, tfactors.T9, pf_cache, Ne22_log_pf, dNe22_log_pf_dT9); + + amrex::Real Mg26_log_pf, dMg26_log_pf_dT9; + + // interpolating Mg26 partition function + get_partition_function_cached(Mg26, tfactors.T9, pf_cache, Mg26_log_pf, dMg26_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ne22_log_pf - Mg26_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dNe22_log_pf_dT9 - dMg26_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from li12r + ln_set_rate = -4.470808281093063 + -129.6267075950443 * tfactors.T9i + 43.2654 * tfactors.T913 + + -18.5982 * tfactors.T9 + 2.80101 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 129.6267075950443 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 43.2654 * tfactors.T923i + + -18.5982 + (5.0/3.0) * 2.80101 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from li12r + ln_set_rate = 1.0910917189069345 + -127.06115759504432 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 127.06115759504432 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from li12r + ln_set_rate = -18.020208281093062 + -125.40013759504431 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 125.40013759504431 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from li12r + ln_set_rate = -67.56390828109306 + -124.08946459504432 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 124.08946459504432 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from li12r + ln_set_rate = -9.881608281093065 + -129.54319759504432 * tfactors.T9i + 35.9878 * tfactors.T913 + + -4.10684 * tfactors.T9 + 0.259345 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 129.54319759504432 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 35.9878 * tfactors.T923i + + -4.10684 + (5.0/3.0) * 0.259345 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al25_to_p_Mg24_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Al25 --> p + Mg24 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Al25_log_pf, dAl25_log_pf_dT9; + + // interpolating Al25 partition function + get_partition_function_cached(Al25, tfactors.T9, pf_cache, Al25_log_pf, dAl25_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Mg24_log_pf, dMg24_log_pf_dT9; + + // interpolating Mg24 partition function + get_partition_function_cached(Mg24, tfactors.T9, pf_cache, Mg24_log_pf, dMg24_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Mg24_log_pf - Al25_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dMg24_log_pf_dT9 - dAl25_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10r + ln_set_rate = 30.11185950868004 + -28.842583836830414 * tfactors.T9i + -1.57811 * tfactors.T913 + + 1.52232 * tfactors.T9 + -0.183001 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 28.842583836830414 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.57811 * tfactors.T923i + + 1.52232 + (5.0/3.0) * -0.183001 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10n + ln_set_rate = 41.76824950868004 + -26.358073836830414 * tfactors.T9i + -22.0227 * tfactors.T913i + 0.361297 * tfactors.T913 + + 2.61292 * tfactors.T9 + -1.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 26.358073836830414 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -22.0227 * tfactors.T943i + (1.0/3.0) * 0.361297 * tfactors.T923i + + 2.61292 + (5.0/3.0) * -1.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al25_to_He4_Na21_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Al25 --> He4 + Na21 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Al25_log_pf, dAl25_log_pf_dT9; + + // interpolating Al25 partition function + get_partition_function_cached(Al25, tfactors.T9, pf_cache, Al25_log_pf, dAl25_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Na21_log_pf, dNa21_log_pf_dT9; + + // interpolating Na21 partition function + get_partition_function_cached(Na21, tfactors.T9, pf_cache, Na21_log_pf, dNa21_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Na21_log_pf - Al25_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dNa21_log_pf_dT9 - dAl25_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 59.72796060494938 + -106.25126812981343 * tfactors.T9i + -49.9709 * tfactors.T913i + 1.63835 * tfactors.T913 + + -1.18562 * tfactors.T9 + 0.101965 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 106.25126812981343 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -49.9709 * tfactors.T943i + (1.0/3.0) * 1.63835 * tfactors.T923i + + -1.18562 + (5.0/3.0) * 0.101965 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al26_to_n_Al25_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Al26 --> n + Al25 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Al26_log_pf, dAl26_log_pf_dT9; + + // interpolating Al26 partition function + get_partition_function_cached(Al26, tfactors.T9, pf_cache, Al26_log_pf, dAl26_log_pf_dT9); + + amrex::Real Al25_log_pf, dAl25_log_pf_dT9; + + // interpolating Al25 partition function + get_partition_function_cached(Al25, tfactors.T9, pf_cache, Al25_log_pf, dAl25_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Al25_log_pf - Al26_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dAl25_log_pf_dT9 - dAl26_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 30.988532289635117 + -131.89101261670643 * tfactors.T9i + 1.17141 * tfactors.T913 + + -0.162515 * tfactors.T9 + 0.0126275 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 131.89101261670643 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.17141 * tfactors.T923i + + -0.162515 + (5.0/3.0) * 0.0126275 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al26_to_p_Mg25_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Al26 --> p + Mg25 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Al26_log_pf, dAl26_log_pf_dT9; + + // interpolating Al26 partition function + get_partition_function_cached(Al26, tfactors.T9, pf_cache, Al26_log_pf, dAl26_log_pf_dT9); + + amrex::Real Mg25_log_pf, dMg25_log_pf_dT9; + + // interpolating Mg25 partition function + get_partition_function_cached(Mg25, tfactors.T9, pf_cache, Mg25_log_pf, dMg25_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Mg25_log_pf - Al26_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dMg25_log_pf_dT9 - dAl26_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10r + ln_set_rate = 27.27838039741493 + -73.90176311269589 * tfactors.T9i + -88.9297 * tfactors.T913 + + 302.948 * tfactors.T9 + -346.461 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 73.90176311269589 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -88.9297 * tfactors.T923i + + 302.948 + (5.0/3.0) * -346.461 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = -14.13617960258507 + -73.61129911269589 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 73.61129911269589 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 25.28790039741493 + -76.40546311269588 * tfactors.T9i + 8.46334 * tfactors.T913 + + -0.907024 * tfactors.T9 + 0.0642981 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 76.40546311269588 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 8.46334 * tfactors.T923i + + -0.907024 + (5.0/3.0) * 0.0642981 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al26_to_He4_Na22_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Al26 --> He4 + Na22 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Al26_log_pf, dAl26_log_pf_dT9; + + // interpolating Al26 partition function + get_partition_function_cached(Al26, tfactors.T9, pf_cache, Al26_log_pf, dAl26_log_pf_dT9); + + amrex::Real Na22_log_pf, dNa22_log_pf_dT9; + + // interpolating Na22 partition function + get_partition_function_cached(Na22, tfactors.T9, pf_cache, Na22_log_pf, dNa22_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Na22_log_pf - Al26_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dNa22_log_pf_dT9 - dAl26_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 60.771439975781064 + -109.70523690351963 * tfactors.T9i + -50.0924 * tfactors.T913i + -0.390826 * tfactors.T913 + + -0.99531 * tfactors.T9 + 0.101354 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 109.70523690351963 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -50.0924 * tfactors.T943i + (1.0/3.0) * -0.390826 * tfactors.T923i + + -0.99531 + (5.0/3.0) * 0.101354 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al27_to_n_Al26_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Al27 --> n + Al26 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Al26_log_pf, dAl26_log_pf_dT9; + + // interpolating Al26 partition function + get_partition_function_cached(Al26, tfactors.T9, pf_cache, Al26_log_pf, dAl26_log_pf_dT9); + + amrex::Real Al27_log_pf, dAl27_log_pf_dT9; + + // interpolating Al27 partition function + get_partition_function_cached(Al27, tfactors.T9, pf_cache, Al27_log_pf, dAl27_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Al26_log_pf - Al27_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dAl26_log_pf_dT9 - dAl27_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 39.03980038876714 + -151.52873038330102 * tfactors.T9i + -0.171158 * tfactors.T913i + -1.77283 * tfactors.T913 + + 0.206192 * tfactors.T9 + -0.0191705 * tfactors.T953 + 1.639609 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 151.52873038330102 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.171158 * tfactors.T943i + (1.0/3.0) * -1.77283 * tfactors.T923i + + 0.206192 + (5.0/3.0) * -0.0191705 * tfactors.T923 + 1.639609 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al27_to_p_Mg26_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Al27 --> p + Mg26 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Al27_log_pf, dAl27_log_pf_dT9; + + // interpolating Al27 partition function + get_partition_function_cached(Al27, tfactors.T9, pf_cache, Al27_log_pf, dAl27_log_pf_dT9); + + amrex::Real Mg26_log_pf, dMg26_log_pf_dT9; + + // interpolating Mg26 partition function + get_partition_function_cached(Mg26, tfactors.T9, pf_cache, Mg26_log_pf, dMg26_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Mg26_log_pf - Al27_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dMg26_log_pf_dT9 - dAl27_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10r + ln_set_rate = -5.33989102267844 + -96.87298962273474 * tfactors.T9i + 35.6312 * tfactors.T913 + + -5.27265 * tfactors.T9 + 0.392932 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 96.87298962273474 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 35.6312 * tfactors.T923i + + -5.27265 + (5.0/3.0) * 0.392932 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = -62.61609102267843 + -96.45376462273474 * tfactors.T9i + 251.281 * tfactors.T913 + + -730.009 * tfactors.T9 + -224.016 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 96.45376462273474 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 251.281 * tfactors.T923i + + -730.009 + (5.0/3.0) * -224.016 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 27.13746897732156 + -99.34351062273474 * tfactors.T9i + 6.78105 * tfactors.T913 + + -1.25771 * tfactors.T9 + 0.140754 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 99.34351062273474 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 6.78105 * tfactors.T923i + + -1.25771 + (5.0/3.0) * 0.140754 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al27_to_He4_Na23_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Al27 --> He4 + Na23 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Na23_log_pf, dNa23_log_pf_dT9; + + // interpolating Na23 partition function + get_partition_function_cached(Na23, tfactors.T9, pf_cache, Na23_log_pf, dNa23_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Al27_log_pf, dAl27_log_pf_dT9; + + // interpolating Al27 partition function + get_partition_function_cached(Al27, tfactors.T9, pf_cache, Al27_log_pf, dAl27_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Na23_log_pf - Al27_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dNa23_log_pf_dT9 - dAl27_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 69.2206963145215 + -117.11189602392653 * tfactors.T9i + -50.2042 * tfactors.T913i + -1.64239 * tfactors.T913 + + -1.59995 * tfactors.T9 + 0.184933 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 117.11189602392653 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -50.2042 * tfactors.T943i + (1.0/3.0) * -1.64239 * tfactors.T923i + + -1.59995 + (5.0/3.0) * 0.184933 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si28_to_p_Al27_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Si28 --> p + Al27 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Al27_log_pf, dAl27_log_pf_dT9; + + // interpolating Al27 partition function + get_partition_function_cached(Al27, tfactors.T9, pf_cache, Al27_log_pf, dAl27_log_pf_dT9); + + amrex::Real Si28_log_pf, dSi28_log_pf_dT9; + + // interpolating Si28 partition function + get_partition_function_cached(Si28, tfactors.T9, pf_cache, Si28_log_pf, dSi28_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Al27_log_pf - Si28_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dAl27_log_pf_dT9 - dSi28_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10r + ln_set_rate = 11.796402252999236 + -136.3412367256539 * tfactors.T9i + 23.8634 * tfactors.T913 + + -3.70135 * tfactors.T9 + 0.28964 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 136.3412367256539 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 23.8634 * tfactors.T923i + + -3.70135 + (5.0/3.0) * 0.28964 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 111.48620225299923 + -134.8245897256539 * tfactors.T9i + -26.8327 * tfactors.T913i + -116.137 * tfactors.T913 + + 0.00950567 * tfactors.T9 + 0.00999755 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 134.8245897256539 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -26.8327 * tfactors.T943i + (1.0/3.0) * -116.137 * tfactors.T923i + + 0.00950567 + (5.0/3.0) * 0.00999755 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10n + ln_set_rate = 46.569302252999236 + -134.4372767256539 * tfactors.T9i + -23.2205 * tfactors.T913i + + -2.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 134.4372767256539 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -23.2205 * tfactors.T943i + + (5.0/3.0) * -2.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si28_to_He4_Mg24_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Si28 --> He4 + Mg24 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mg24_log_pf, dMg24_log_pf_dT9; + + // interpolating Mg24 partition function + get_partition_function_cached(Mg24, tfactors.T9, pf_cache, Mg24_log_pf, dMg24_log_pf_dT9); + + amrex::Real Si28_log_pf, dSi28_log_pf_dT9; + + // interpolating Si28 partition function + get_partition_function_cached(Si28, tfactors.T9, pf_cache, Si28_log_pf, dSi28_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Mg24_log_pf - Si28_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dMg24_log_pf_dT9 - dSi28_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from st08r + ln_set_rate = 32.902724006057724 + -131.4900751873663 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 131.4900751873663 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from st08r + ln_set_rate = -25.68644599394228 + -128.6942751873663 * tfactors.T9i + 21.3721 * tfactors.T913i + 37.7649 * tfactors.T913 + + -4.10635 * tfactors.T9 + 0.249618 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 128.6942751873663 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 21.3721 * tfactors.T943i + (1.0/3.0) * 37.7649 * tfactors.T923i + + -4.10635 + (5.0/3.0) * 0.249618 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si29_to_n_Si28_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Si29 --> n + Si28 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Si29_log_pf, dSi29_log_pf_dT9; + + // interpolating Si29 partition function + get_partition_function_cached(Si29, tfactors.T9, pf_cache, Si29_log_pf, dSi29_log_pf_dT9); + + amrex::Real Si28_log_pf, dSi28_log_pf_dT9; + + // interpolating Si28 partition function + get_partition_function_cached(Si28, tfactors.T9, pf_cache, Si28_log_pf, dSi28_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Si28_log_pf - Si29_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dSi28_log_pf_dT9 - dSi29_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ka02r + ln_set_rate = 29.897307803823217 + -98.71207376605948 * tfactors.T9i + 7.68863 * tfactors.T913 + + -1.7991 * tfactors.T9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 98.71207376605948 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 7.68863 * tfactors.T923i + + -1.7991; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from ka02 + ln_set_rate = 31.757037803823216 + -98.33207376605948 * tfactors.T9i + + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 98.33207376605948 * tfactors.T9i * tfactors.T9i + + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si29_to_He4_Mg25_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Si29 --> He4 + Mg25 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Si29_log_pf, dSi29_log_pf_dT9; + + // interpolating Si29 partition function + get_partition_function_cached(Si29, tfactors.T9, pf_cache, Si29_log_pf, dSi29_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mg25_log_pf, dMg25_log_pf_dT9; + + // interpolating Mg25 partition function + get_partition_function_cached(Mg25, tfactors.T9, pf_cache, Mg25_log_pf, dMg25_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Mg25_log_pf - Si29_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dMg25_log_pf_dT9 - dSi29_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88n + ln_set_rate = 66.34177040898071 + -129.1259956125848 * tfactors.T9i + -53.41 * tfactors.T913i + -1.83266 * tfactors.T913 + + -0.573073 * tfactors.T9 + 0.0462678 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 129.1259956125848 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -53.41 * tfactors.T943i + (1.0/3.0) * -1.83266 * tfactors.T923i + + -0.573073 + (5.0/3.0) * 0.0462678 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si30_to_n_Si29_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Si30 --> n + Si29 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Si30_log_pf, dSi30_log_pf_dT9; + + // interpolating Si30 partition function + get_partition_function_cached(Si30, tfactors.T9, pf_cache, Si30_log_pf, dSi30_log_pf_dT9); + + amrex::Real Si29_log_pf, dSi29_log_pf_dT9; + + // interpolating Si29 partition function + get_partition_function_cached(Si29, tfactors.T9, pf_cache, Si29_log_pf, dSi29_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Si29_log_pf - Si30_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dSi29_log_pf_dT9 - dSi30_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ka02r + ln_set_rate = 33.97093028791906 + -123.2940034088064 * tfactors.T9i + 5.50678 * tfactors.T913 + + -2.85656 * tfactors.T9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 123.2940034088064 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.50678 * tfactors.T923i + + -2.85656; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from ka02n + ln_set_rate = 36.17208028791906 + -123.1146374088064 * tfactors.T9i + 0.650904 * tfactors.T913 + + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 123.1146374088064 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.650904 * tfactors.T923i + + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si30_to_He4_Mg26_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Si30 --> He4 + Mg26 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Si30_log_pf, dSi30_log_pf_dT9; + + // interpolating Si30 partition function + get_partition_function_cached(Si30, tfactors.T9, pf_cache, Si30_log_pf, dSi30_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mg26_log_pf, dMg26_log_pf_dT9; + + // interpolating Mg26 partition function + get_partition_function_cached(Mg26, tfactors.T9, pf_cache, Mg26_log_pf, dMg26_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Mg26_log_pf - Si30_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dMg26_log_pf_dT9 - dSi30_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88r + ln_set_rate = 26.20894888803925 + -142.227160768129 * tfactors.T9i + -1.87411 * tfactors.T913 + + 3.41299 * tfactors.T9 + -0.43226 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 142.227160768129 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.87411 * tfactors.T923i + + 3.41299 + (5.0/3.0) * -0.43226 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from cf88n + ln_set_rate = 70.75823888803924 + -123.510760768129 * tfactors.T9i + -53.7518 * tfactors.T913i + -4.8647 * tfactors.T913 + + -1.51467 * tfactors.T9 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 123.510760768129 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -53.7518 * tfactors.T943i + (1.0/3.0) * -4.8647 * tfactors.T923i + + -1.51467 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si31_to_n_Si30_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Si31 --> n + Si30 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Si30_log_pf, dSi30_log_pf_dT9; + + // interpolating Si30 partition function + get_partition_function_cached(Si30, tfactors.T9, pf_cache, Si30_log_pf, dSi30_log_pf_dT9); + + amrex::Real Si31_log_pf, dSi31_log_pf_dT9; + + // interpolating Si31 partition function + get_partition_function_cached(Si31, tfactors.T9, pf_cache, Si31_log_pf, dSi31_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Si30_log_pf - Si31_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dSi30_log_pf_dT9 - dSi31_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 13.09726755640519 + -76.3749753162824 * tfactors.T9i + -12.3502 * tfactors.T913i + 34.6486 * tfactors.T913 + + -1.89409 * tfactors.T9 + 0.0781979 * tfactors.T953 + -12.9601 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 76.3749753162824 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -12.3502 * tfactors.T943i + (1.0/3.0) * 34.6486 * tfactors.T923i + + -1.89409 + (5.0/3.0) * 0.0781979 * tfactors.T923 + -12.9601 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si32_to_n_Si31_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Si32 --> n + Si31 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Si31_log_pf, dSi31_log_pf_dT9; + + // interpolating Si31 partition function + get_partition_function_cached(Si31, tfactors.T9, pf_cache, Si31_log_pf, dSi31_log_pf_dT9); + + amrex::Real Si32_log_pf, dSi32_log_pf_dT9; + + // interpolating Si32 partition function + get_partition_function_cached(Si32, tfactors.T9, pf_cache, Si32_log_pf, dSi32_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Si31_log_pf - Si32_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dSi31_log_pf_dT9 - dSi32_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 37.01112971220389 + -106.77566613412252 * tfactors.T9i + 0.154735 * tfactors.T913i + 0.304696 * tfactors.T913 + + 0.0236238 * tfactors.T9 + -0.00396359 * tfactors.T953 + 1.067829 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 106.77566613412252 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 0.154735 * tfactors.T943i + (1.0/3.0) * 0.304696 * tfactors.T923i + + 0.0236238 + (5.0/3.0) * -0.00396359 * tfactors.T923 + 1.067829 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P29_to_p_Si28_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // P29 --> p + Si28 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real P29_log_pf, dP29_log_pf_dT9; + + // interpolating P29 partition function + get_partition_function_cached(P29, tfactors.T9, pf_cache, P29_log_pf, dP29_log_pf_dT9); + + amrex::Real Si28_log_pf, dSi28_log_pf_dT9; + + // interpolating Si28 partition function + get_partition_function_cached(Si28, tfactors.T9, pf_cache, Si28_log_pf, dSi28_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Si28_log_pf - P29_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dSi28_log_pf_dT9 - dP29_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10n + ln_set_rate = 39.156867542086886 + -31.90051818093998 * tfactors.T9i + -23.8173 * tfactors.T913i + 7.08203 * tfactors.T913 + + -1.44753 * tfactors.T9 + 0.0804296 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 31.90051818093998 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -23.8173 * tfactors.T943i + (1.0/3.0) * 7.08203 * tfactors.T923i + + -1.44753 + (5.0/3.0) * 0.0804296 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 28.71871754208689 + -36.04283818093998 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 36.04283818093998 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P29_to_He4_Al25_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // P29 --> He4 + Al25 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Al25_log_pf, dAl25_log_pf_dT9; + + // interpolating Al25 partition function + get_partition_function_cached(Al25, tfactors.T9, pf_cache, Al25_log_pf, dAl25_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real P29_log_pf, dP29_log_pf_dT9; + + // interpolating P29 partition function + get_partition_function_cached(P29, tfactors.T9, pf_cache, P29_log_pf, dP29_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Al25_log_pf - P29_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dAl25_log_pf_dT9 - dP29_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 63.88017203946457 + -121.40351953146624 * tfactors.T9i + -56.3424 * tfactors.T913i + 0.542998 * tfactors.T913 + + -0.721716 * tfactors.T9 + 0.0469712 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 121.40351953146624 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -56.3424 * tfactors.T943i + (1.0/3.0) * 0.542998 * tfactors.T923i + + -0.721716 + (5.0/3.0) * 0.0469712 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P30_to_n_P29_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // P30 --> n + P29 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real P29_log_pf, dP29_log_pf_dT9; + + // interpolating P29 partition function + get_partition_function_cached(P29, tfactors.T9, pf_cache, P29_log_pf, dP29_log_pf_dT9); + + amrex::Real P30_log_pf, dP30_log_pf_dT9; + + // interpolating P30 partition function + get_partition_function_cached(P30, tfactors.T9, pf_cache, P30_log_pf, dP30_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + P29_log_pf - P30_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dP29_log_pf_dT9 - dP30_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 32.059656806285844 + -131.35592828609387 * tfactors.T9i + 0.15555 * tfactors.T913 + + 0.155359 * tfactors.T9 + -0.0208019 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 131.35592828609387 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.15555 * tfactors.T923i + + 0.155359 + (5.0/3.0) * -0.0208019 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P30_to_p_Si29_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // P30 --> p + Si29 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Si29_log_pf, dSi29_log_pf_dT9; + + // interpolating Si29 partition function + get_partition_function_cached(Si29, tfactors.T9, pf_cache, Si29_log_pf, dSi29_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real P30_log_pf, dP30_log_pf_dT9; + + // interpolating P30 partition function + get_partition_function_cached(P30, tfactors.T9, pf_cache, P30_log_pf, dP30_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Si29_log_pf - P30_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dSi29_log_pf_dT9 - dP30_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10r + ln_set_rate = 22.020796544549516 + -68.26366270095757 * tfactors.T9i + 14.0921 * tfactors.T913 + + -3.92096 * tfactors.T9 + 0.447706 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 68.26366270095757 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 14.0921 * tfactors.T923i + + -3.92096 + (5.0/3.0) * 0.447706 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 9.798606544549516 + -66.17463270095756 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 66.17463270095756 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10n + ln_set_rate = 39.78690654454952 + -64.92437270095756 * tfactors.T9i + -23.9101 * tfactors.T913i + 10.7796 * tfactors.T913 + + -3.04181 * tfactors.T9 + 0.274565 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 64.92437270095756 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -23.9101 * tfactors.T943i + (1.0/3.0) * 10.7796 * tfactors.T923i + + -3.04181 + (5.0/3.0) * 0.274565 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P30_to_He4_Al26_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // P30 --> He4 + Al26 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Al26_log_pf, dAl26_log_pf_dT9; + + // interpolating Al26 partition function + get_partition_function_cached(Al26, tfactors.T9, pf_cache, Al26_log_pf, dAl26_log_pf_dT9); + + amrex::Real P30_log_pf, dP30_log_pf_dT9; + + // interpolating P30 partition function + get_partition_function_cached(P30, tfactors.T9, pf_cache, P30_log_pf, dP30_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Al26_log_pf - P30_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dAl26_log_pf_dT9 - dP30_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 69.1566565561153 + -120.86843520086329 * tfactors.T9i + -56.4422 * tfactors.T913i + -2.44848 * tfactors.T913 + + -1.17578 * tfactors.T9 + 0.150757 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 120.86843520086329 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -56.4422 * tfactors.T943i + (1.0/3.0) * -2.44848 * tfactors.T923i + + -1.17578 + (5.0/3.0) * 0.150757 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P31_to_n_P30_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // P31 --> n + P30 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real P30_log_pf, dP30_log_pf_dT9; + + // interpolating P30 partition function + get_partition_function_cached(P30, tfactors.T9, pf_cache, P30_log_pf, dP30_log_pf_dT9); + + amrex::Real P31_log_pf, dP31_log_pf_dT9; + + // interpolating P31 partition function + get_partition_function_cached(P31, tfactors.T9, pf_cache, P31_log_pf, dP31_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + P30_log_pf - P31_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dP30_log_pf_dT9 - dP31_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 36.9026151753178 + -142.8632516056954 * tfactors.T9i + 0.909911 * tfactors.T913 + + -0.162367 * tfactors.T9 + 0.00668293 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 142.8632516056954 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.909911 * tfactors.T923i + + -0.162367 + (5.0/3.0) * 0.00668293 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P31_to_p_Si30_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // P31 --> p + Si30 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Si30_log_pf, dSi30_log_pf_dT9; + + // interpolating Si30 partition function + get_partition_function_cached(Si30, tfactors.T9, pf_cache, Si30_log_pf, dSi30_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real P31_log_pf, dP31_log_pf_dT9; + + // interpolating P31 partition function + get_partition_function_cached(P31, tfactors.T9, pf_cache, P31_log_pf, dP31_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Si30_log_pf - P31_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dSi30_log_pf_dT9 - dP31_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from de20r + ln_set_rate = 35.352341431948254 + -91.31403689784659 * tfactors.T9i + + 0.3809 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 91.31403689784659 * tfactors.T9i * tfactors.T9i + + 0.3809 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from de20r + ln_set_rate = 31.780501431948256 + -89.85529689784659 * tfactors.T9i + + 2.7883 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 89.85529689784659 * tfactors.T9i * tfactors.T9i + + 2.7883 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from de20r + ln_set_rate = -311.28315856805176 + -85.80625689784658 * tfactors.T9i + + -77.047 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 85.80625689784658 * tfactors.T9i * tfactors.T9i + + -77.047 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from de20r + ln_set_rate = 18.740761431948258 + -85.92472689784658 * tfactors.T9i + + 6.49034 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 85.92472689784658 * tfactors.T9i * tfactors.T9i + + 6.49034 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from de20r + ln_set_rate = 4.063041431948257 + -85.61824789784659 * tfactors.T9i + + 2.8033099999999997 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 85.61824789784659 * tfactors.T9i * tfactors.T9i + + 2.8033099999999997 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from de20r + ln_set_rate = -1115.3571585680518 + -180.5498868978466 * tfactors.T9i + + -895.258 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 180.5498868978466 * tfactors.T9i * tfactors.T9i + + -895.258 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from de20r + ln_set_rate = 32.94828143194825 + -90.26261689784658 * tfactors.T9i + + -0.0708200000000001 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 90.26261689784658 * tfactors.T9i * tfactors.T9i + + -0.0708200000000001 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from de20r + ln_set_rate = -11.876558568051745 + -85.26592089784658 * tfactors.T9i + + -0.12839 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 85.26592089784658 * tfactors.T9i * tfactors.T9i + + -0.12839 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P31_to_He4_Al27_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // P31 --> He4 + Al27 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Al27_log_pf, dAl27_log_pf_dT9; + + // interpolating Al27 partition function + get_partition_function_cached(Al27, tfactors.T9, pf_cache, Al27_log_pf, dAl27_log_pf_dT9); + + amrex::Real P31_log_pf, dP31_log_pf_dT9; + + // interpolating P31 partition function + get_partition_function_cached(P31, tfactors.T9, pf_cache, P31_log_pf, dP31_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Al27_log_pf - P31_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dAl27_log_pf_dT9 - dP31_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 73.21877134266595 + -112.19944704325766 * tfactors.T9i + -56.5351 * tfactors.T913i + -0.896208 * tfactors.T913 + + -1.72024 * tfactors.T9 + 0.185409 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 112.19944704325766 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -56.5351 * tfactors.T943i + (1.0/3.0) * -0.896208 * tfactors.T923i + + -1.72024 + (5.0/3.0) * 0.185409 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P32_to_n_P31_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // P32 --> n + P31 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real P32_log_pf, dP32_log_pf_dT9; + + // interpolating P32 partition function + get_partition_function_cached(P32, tfactors.T9, pf_cache, P32_log_pf, dP32_log_pf_dT9); + + amrex::Real P31_log_pf, dP31_log_pf_dT9; + + // interpolating P31 partition function + get_partition_function_cached(P31, tfactors.T9, pf_cache, P31_log_pf, dP31_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + P31_log_pf - P32_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dP31_log_pf_dT9 - dP32_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ka02r + ln_set_rate = 32.75983007828696 + -92.33624016798935 * tfactors.T9i + 2.13185 * tfactors.T913; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 92.33624016798935 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.13185 * tfactors.T923i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from ka02n + ln_set_rate = 35.80736007828696 + -92.08943716798935 * tfactors.T9i + 0.327031 * tfactors.T913 + + 2.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 92.08943716798935 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.327031 * tfactors.T923i + + 2.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P32_to_p_Si31_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // P32 --> p + Si31 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real P32_log_pf, dP32_log_pf_dT9; + + // interpolating P32 partition function + get_partition_function_cached(P32, tfactors.T9, pf_cache, P32_log_pf, dP32_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Si31_log_pf, dSi31_log_pf_dT9; + + // interpolating Si31 partition function + get_partition_function_cached(Si31, tfactors.T9, pf_cache, Si31_log_pf, dSi31_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Si31_log_pf - P32_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dSi31_log_pf_dT9 - dP32_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 124.93335395383002 + -103.70133664957032 * tfactors.T9i + 123.4 * tfactors.T913i + -231.734 * tfactors.T913 + + 14.2724 * tfactors.T9 + -0.867645 * tfactors.T953 + 109.969 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 103.70133664957032 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 123.4 * tfactors.T943i + (1.0/3.0) * -231.734 * tfactors.T923i + + 14.2724 + (5.0/3.0) * -0.867645 * tfactors.T923 + 109.969 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P33_to_n_P32_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // P33 --> n + P32 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real P33_log_pf, dP33_log_pf_dT9; + + // interpolating P33 partition function + get_partition_function_cached(P33, tfactors.T9, pf_cache, P33_log_pf, dP33_log_pf_dT9); + + amrex::Real P32_log_pf, dP32_log_pf_dT9; + + // interpolating P32 partition function + get_partition_function_cached(P32, tfactors.T9, pf_cache, P32_log_pf, dP32_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + P32_log_pf - P33_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dP32_log_pf_dT9 - dP33_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 34.934437038647864 + -117.1929361286673 * tfactors.T9i + -6.14814 * tfactors.T913i + 9.5582 * tfactors.T913 + + -0.244744 * tfactors.T9 + -0.012887 * tfactors.T953 + -3.92926 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 117.1929361286673 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -6.14814 * tfactors.T943i + (1.0/3.0) * 9.5582 * tfactors.T923i + + -0.244744 + (5.0/3.0) * -0.012887 * tfactors.T923 + -3.92926 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P33_to_p_Si32_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // P33 --> p + Si32 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real P33_log_pf, dP33_log_pf_dT9; + + // interpolating P33 partition function + get_partition_function_cached(P33, tfactors.T9, pf_cache, P33_log_pf, dP33_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Si32_log_pf, dSi32_log_pf_dT9; + + // interpolating Si32 partition function + get_partition_function_cached(Si32, tfactors.T9, pf_cache, Si32_log_pf, dSi32_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Si32_log_pf - P33_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dSi32_log_pf_dT9 - dP33_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 201.73906128027397 + -114.67879244411513 * tfactors.T9i + 174.94 * tfactors.T913i + -365.37 * tfactors.T913 + + 23.1636 * tfactors.T9 + -1.3429 * tfactors.T953 + 161.575 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 114.67879244411513 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 174.94 * tfactors.T943i + (1.0/3.0) * -365.37 * tfactors.T923i + + 23.1636 + (5.0/3.0) * -1.3429 * tfactors.T923 + 161.575 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S32_to_p_P31_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S32 --> p + P31 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real S32_log_pf, dS32_log_pf_dT9; + + // interpolating S32 partition function + get_partition_function_cached(S32, tfactors.T9, pf_cache, S32_log_pf, dS32_log_pf_dT9); + + amrex::Real P31_log_pf, dP31_log_pf_dT9; + + // interpolating P31 partition function + get_partition_function_cached(P31, tfactors.T9, pf_cache, P31_log_pf, dP31_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + P31_log_pf - S32_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dP31_log_pf_dT9 - dS32_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10r + ln_set_rate = 25.192389422303183 + -106.63906812813134 * tfactors.T9i + 8.09341 * tfactors.T913 + + -0.615971 * tfactors.T9 + 0.031159 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 106.63906812813134 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 8.09341 * tfactors.T923i + + -0.615971 + (5.0/3.0) * 0.031159 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 21.702443422303183 + -105.12160812813134 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 105.12160812813134 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10n + ln_set_rate = 43.630433422303184 + -102.86202812813134 * tfactors.T9i + -25.3278 * tfactors.T913i + 6.4931 * tfactors.T913 + + -9.27513 * tfactors.T9 + -0.610439 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 102.86202812813134 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -25.3278 * tfactors.T943i + (1.0/3.0) * 6.4931 * tfactors.T923i + + -9.27513 + (5.0/3.0) * -0.610439 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S32_to_He4_Si28_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S32 --> He4 + Si28 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real S32_log_pf, dS32_log_pf_dT9; + + // interpolating S32 partition function + get_partition_function_cached(S32, tfactors.T9, pf_cache, S32_log_pf, dS32_log_pf_dT9); + + amrex::Real Si28_log_pf, dSi28_log_pf_dT9; + + // interpolating Si28 partition function + get_partition_function_cached(Si28, tfactors.T9, pf_cache, Si28_log_pf, dSi28_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Si28_log_pf - S32_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dSi28_log_pf_dT9 - dS32_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 72.8147025119699 + -80.62419844573513 * tfactors.T9i + -59.4896 * tfactors.T913i + 4.47205 * tfactors.T913 + + -4.78989 * tfactors.T9 + 0.557201 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 80.62419844573513 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -59.4896 * tfactors.T943i + (1.0/3.0) * 4.47205 * tfactors.T923i + + -4.78989 + (5.0/3.0) * 0.557201 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S33_to_n_S32_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S33 --> n + S32 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real S32_log_pf, dS32_log_pf_dT9; + + // interpolating S32 partition function + get_partition_function_cached(S32, tfactors.T9, pf_cache, S32_log_pf, dS32_log_pf_dT9); + + amrex::Real S33_log_pf, dS33_log_pf_dT9; + + // interpolating S33 partition function + get_partition_function_cached(S33, tfactors.T9, pf_cache, S33_log_pf, dS33_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + S32_log_pf - S33_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dS32_log_pf_dT9 - dS33_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 34.741454198619536 + -100.0832318567133 * tfactors.T9i + -15.0178 * tfactors.T913i + 16.3567 * tfactors.T913 + + -0.436839 * tfactors.T9 + -0.00574462 * tfactors.T953 + -8.28034 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 100.0832318567133 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -15.0178 * tfactors.T943i + (1.0/3.0) * 16.3567 * tfactors.T923i + + -0.436839 + (5.0/3.0) * -0.00574462 * tfactors.T923 + -8.28034 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S33_to_p_P32_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S33 --> p + P32 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real P32_log_pf, dP32_log_pf_dT9; + + // interpolating P32 partition function + get_partition_function_cached(P32, tfactors.T9, pf_cache, P32_log_pf, dP32_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real S33_log_pf, dS33_log_pf_dT9; + + // interpolating S33 partition function + get_partition_function_cached(S33, tfactors.T9, pf_cache, S33_log_pf, dS33_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + P32_log_pf - S33_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dP32_log_pf_dT9 - dS33_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 130.74552754263576 + -114.84714081683852 * tfactors.T9i + 147.624 * tfactors.T913i + -261.318 * tfactors.T913 + + 14.2732 * tfactors.T9 + -0.776243 * tfactors.T953 + 128.247 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 114.84714081683852 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 147.624 * tfactors.T943i + (1.0/3.0) * -261.318 * tfactors.T923i + + 14.2732 + (5.0/3.0) * -0.776243 * tfactors.T923 + 128.247 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S33_to_He4_Si29_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S33 --> He4 + Si29 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Si29_log_pf, dSi29_log_pf_dT9; + + // interpolating Si29 partition function + get_partition_function_cached(Si29, tfactors.T9, pf_cache, Si29_log_pf, dSi29_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real S33_log_pf, dS33_log_pf_dT9; + + // interpolating S33 partition function + get_partition_function_cached(S33, tfactors.T9, pf_cache, S33_log_pf, dS33_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Si29_log_pf - S33_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dSi29_log_pf_dT9 - dS33_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 73.77254890676622 + -82.57418453637936 * tfactors.T9i + -59.5755 * tfactors.T913i + 1.06274 * tfactors.T913 + + -3.07529 * tfactors.T9 + 0.372011 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 82.57418453637936 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -59.5755 * tfactors.T943i + (1.0/3.0) * 1.06274 * tfactors.T923i + + -3.07529 + (5.0/3.0) * 0.372011 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S34_to_n_S33_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S34 --> n + S33 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real S33_log_pf, dS33_log_pf_dT9; + + // interpolating S33 partition function + get_partition_function_cached(S33, tfactors.T9, pf_cache, S33_log_pf, dS33_log_pf_dT9); + + amrex::Real S34_log_pf, dS34_log_pf_dT9; + + // interpolating S34 partition function + get_partition_function_cached(S34, tfactors.T9, pf_cache, S34_log_pf, dS34_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + S33_log_pf - S34_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dS33_log_pf_dT9 - dS34_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 20.889721414503413 + -132.24411175059305 * tfactors.T9i + -23.1351 * tfactors.T913i + 43.3623 * tfactors.T913 + + -2.74733 * tfactors.T9 + 0.159045 * tfactors.T953 + -18.1332 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 132.24411175059305 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -23.1351 * tfactors.T943i + (1.0/3.0) * 43.3623 * tfactors.T923i + + -2.74733 + (5.0/3.0) * 0.159045 * tfactors.T923 + -18.1332 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S34_to_p_P33_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S34 --> p + P33 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real P33_log_pf, dP33_log_pf_dT9; + + // interpolating P33 partition function + get_partition_function_cached(P33, tfactors.T9, pf_cache, P33_log_pf, dP33_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real S34_log_pf, dS34_log_pf_dT9; + + // interpolating S34 partition function + get_partition_function_cached(S34, tfactors.T9, pf_cache, S34_log_pf, dS34_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + P33_log_pf - S34_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dP33_log_pf_dT9 - dS34_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 198.22783191849132 + -130.13798023872585 * tfactors.T9i + 161.691 * tfactors.T913i + -350.015 * tfactors.T913 + + 24.3597 * tfactors.T9 + -1.56396 * tfactors.T953 + 151.463 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 130.13798023872585 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 161.691 * tfactors.T943i + (1.0/3.0) * -350.015 * tfactors.T923i + + 24.3597 + (5.0/3.0) * -1.56396 * tfactors.T923 + 151.463 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S34_to_He4_Si30_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S34 --> He4 + Si30 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Si30_log_pf, dSi30_log_pf_dT9; + + // interpolating Si30 partition function + get_partition_function_cached(Si30, tfactors.T9, pf_cache, Si30_log_pf, dSi30_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real S34_log_pf, dS34_log_pf_dT9; + + // interpolating S34 partition function + get_partition_function_cached(S34, tfactors.T9, pf_cache, S34_log_pf, dS34_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Si30_log_pf - S34_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dSi30_log_pf_dT9 - dS34_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 72.40691003335057 + -91.95006887812762 * tfactors.T9i + -59.6559 * tfactors.T913i + 3.70141 * tfactors.T913 + + -3.12537 * tfactors.T9 + 0.307626 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 91.95006887812762 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -59.6559 * tfactors.T943i + (1.0/3.0) * 3.70141 * tfactors.T923i + + -3.12537 + (5.0/3.0) * 0.307626 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S35_to_n_S34_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S35 --> n + S34 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real S35_log_pf, dS35_log_pf_dT9; + + // interpolating S35 partition function + get_partition_function_cached(S35, tfactors.T9, pf_cache, S35_log_pf, dS35_log_pf_dT9); + + amrex::Real S34_log_pf, dS34_log_pf_dT9; + + // interpolating S34 partition function + get_partition_function_cached(S34, tfactors.T9, pf_cache, S34_log_pf, dS34_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + S34_log_pf - S35_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dS34_log_pf_dT9 - dS35_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 63.71049925334124 + -81.29654682566044 * tfactors.T9i + 25.2182 * tfactors.T913i + -59.2704 * tfactors.T913 + + 4.22256 * tfactors.T9 + -0.274247 * tfactors.T953 + 26.032 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 81.29654682566044 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 25.2182 * tfactors.T943i + (1.0/3.0) * -59.2704 * tfactors.T923i + + 4.22256 + (5.0/3.0) * -0.274247 * tfactors.T923 + 26.032 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S35_to_He4_Si31_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S35 --> He4 + Si31 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real S35_log_pf, dS35_log_pf_dT9; + + // interpolating S35 partition function + get_partition_function_cached(S35, tfactors.T9, pf_cache, S35_log_pf, dS35_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Si31_log_pf, dSi31_log_pf_dT9; + + // interpolating Si31 partition function + get_partition_function_cached(Si31, tfactors.T9, pf_cache, Si31_log_pf, dSi31_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Si31_log_pf - S35_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dSi31_log_pf_dT9 - dS35_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = -48.34623826971338 + -98.51451628747685 * tfactors.T9i + -98.5176 * tfactors.T913i + 171.207 * tfactors.T913 + + -14.3839 * tfactors.T9 + 0.960708 * tfactors.T953 + -60.4936 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 98.51451628747685 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -98.5176 * tfactors.T943i + (1.0/3.0) * 171.207 * tfactors.T923i + + -14.3839 + (5.0/3.0) * 0.960708 * tfactors.T923 + -60.4936 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S36_to_n_S35_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S36 --> n + S35 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real S36_log_pf, dS36_log_pf_dT9; + + // interpolating S36 partition function + get_partition_function_cached(S36, tfactors.T9, pf_cache, S36_log_pf, dS36_log_pf_dT9); + + amrex::Real S35_log_pf, dS35_log_pf_dT9; + + // interpolating S35 partition function + get_partition_function_cached(S35, tfactors.T9, pf_cache, S35_log_pf, dS35_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + S35_log_pf - S36_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dS35_log_pf_dT9 - dS36_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 40.12933799886864 + -114.75995878501135 * tfactors.T9i + -2.51293 * tfactors.T913 + + 0.668068 * tfactors.T9 + -0.0786735 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 114.75995878501135 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.51293 * tfactors.T923i + + 0.668068 + (5.0/3.0) * -0.0786735 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S36_to_He4_Si32_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S36 --> He4 + Si32 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real S36_log_pf, dS36_log_pf_dT9; + + // interpolating S36 partition function + get_partition_function_cached(S36, tfactors.T9, pf_cache, S36_log_pf, dS36_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Si32_log_pf, dSi32_log_pf_dT9; + + // interpolating Si32 partition function + get_partition_function_cached(Si32, tfactors.T9, pf_cache, Si32_log_pf, dSi32_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Si32_log_pf - S36_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dSi32_log_pf_dT9 - dS36_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = -128.01272998304864 + -105.03477953832726 * tfactors.T9i + -232.306 * tfactors.T913i + 393.438 * tfactors.T913 + + -25.2071 * tfactors.T9 + 1.4457 * tfactors.T953 + -169.971 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 105.03477953832726 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -232.306 * tfactors.T943i + (1.0/3.0) * 393.438 * tfactors.T923i + + -25.2071 + (5.0/3.0) * 1.4457 * tfactors.T923 + -169.971 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl33_to_p_S32_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cl33 --> p + S32 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cl33_log_pf, dCl33_log_pf_dT9; + + // interpolating Cl33 partition function + get_partition_function_cached(Cl33, tfactors.T9, pf_cache, Cl33_log_pf, dCl33_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real S32_log_pf, dS32_log_pf_dT9; + + // interpolating S32 partition function + get_partition_function_cached(S32, tfactors.T9, pf_cache, S32_log_pf, dS32_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + S32_log_pf - Cl33_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dS32_log_pf_dT9 - dCl33_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10n + ln_set_rate = 74.7623172827099 + -26.42040054322257 * tfactors.T9i + -29.7741 * tfactors.T913i + -87.4473 * tfactors.T913 + + 182.189 * tfactors.T9 + -128.625 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 26.42040054322257 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -29.7741 * tfactors.T943i + (1.0/3.0) * -87.4473 * tfactors.T923i + + 182.189 + (5.0/3.0) * -128.625 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 91.6269172827099 + -29.424110543222568 * tfactors.T9i + -33.7204 * tfactors.T913i + -32.7355 * tfactors.T913 + + 3.92526 * tfactors.T9 + -0.250479 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 29.424110543222568 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -33.7204 * tfactors.T943i + (1.0/3.0) * -32.7355 * tfactors.T923i + + 3.92526 + (5.0/3.0) * -0.250479 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = -4.945882717290097 + -27.29450754322257 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 27.29450754322257 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl33_to_He4_P29_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cl33 --> He4 + P29 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cl33_log_pf, dCl33_log_pf_dT9; + + // interpolating Cl33 partition function + get_partition_function_cached(Cl33, tfactors.T9, pf_cache, Cl33_log_pf, dCl33_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real P29_log_pf, dP29_log_pf_dT9; + + // interpolating P29 partition function + get_partition_function_cached(P29, tfactors.T9, pf_cache, P29_log_pf, dP29_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + P29_log_pf - Cl33_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dP29_log_pf_dT9 - dCl33_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 66.20475225259291 + -75.14408080801772 * tfactors.T9i + -62.3802 * tfactors.T913i + 0.593062 * tfactors.T913 + + -1.14226 * tfactors.T9 + 0.0934776 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 75.14408080801772 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -62.3802 * tfactors.T943i + (1.0/3.0) * 0.593062 * tfactors.T923i + + -1.14226 + (5.0/3.0) * 0.0934776 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl34_to_n_Cl33_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cl34 --> n + Cl33 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl34_log_pf, dCl34_log_pf_dT9; + + // interpolating Cl34 partition function + get_partition_function_cached(Cl34, tfactors.T9, pf_cache, Cl34_log_pf, dCl34_log_pf_dT9); + + amrex::Real Cl33_log_pf, dCl33_log_pf_dT9; + + // interpolating Cl33 partition function + get_partition_function_cached(Cl33, tfactors.T9, pf_cache, Cl33_log_pf, dCl33_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cl33_log_pf - Cl34_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCl33_log_pf_dT9 - dCl34_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 33.218531927443024 + -133.54604899124175 * tfactors.T9i + 0.921411 * tfactors.T913 + + -0.0823764 * tfactors.T9 + 0.000852746 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 133.54604899124175 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.921411 * tfactors.T923i + + -0.0823764 + (5.0/3.0) * 0.000852746 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl34_to_p_S33_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cl34 --> p + S33 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cl34_log_pf, dCl34_log_pf_dT9; + + // interpolating Cl34 partition function + get_partition_function_cached(Cl34, tfactors.T9, pf_cache, Cl34_log_pf, dCl34_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real S33_log_pf, dS33_log_pf_dT9; + + // interpolating S33 partition function + get_partition_function_cached(S33, tfactors.T9, pf_cache, S33_log_pf, dS33_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + S33_log_pf - Cl34_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dS33_log_pf_dT9 - dCl34_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 61.557325011533386 + -59.684389677674176 * tfactors.T9i + -26.777 * tfactors.T913i + -5.96882 * tfactors.T913 + + -1.0706 * tfactors.T9 + 0.19692 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 59.684389677674176 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -26.777 * tfactors.T943i + (1.0/3.0) * -5.96882 * tfactors.T923i + + -1.0706 + (5.0/3.0) * 0.19692 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl34_to_He4_P30_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cl34 --> He4 + P30 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cl34_log_pf, dCl34_log_pf_dT9; + + // interpolating Cl34 partition function + get_partition_function_cached(Cl34, tfactors.T9, pf_cache, Cl34_log_pf, dCl34_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real P30_log_pf, dP30_log_pf_dT9; + + // interpolating P30 partition function + get_partition_function_cached(P30, tfactors.T9, pf_cache, P30_log_pf, dP30_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + P30_log_pf - Cl34_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dP30_log_pf_dT9 - dCl34_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 71.33676737375008 + -77.33420151312718 * tfactors.T9i + -62.4643 * tfactors.T913i + -3.19028 * tfactors.T913 + + -0.832633 * tfactors.T9 + 0.0987525 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 77.33420151312718 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -62.4643 * tfactors.T943i + (1.0/3.0) * -3.19028 * tfactors.T923i + + -0.832633 + (5.0/3.0) * 0.0987525 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl35_to_n_Cl34_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cl35 --> n + Cl34 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl34_log_pf, dCl34_log_pf_dT9; + + // interpolating Cl34 partition function + get_partition_function_cached(Cl34, tfactors.T9, pf_cache, Cl34_log_pf, dCl34_log_pf_dT9); + + amrex::Real Cl35_log_pf, dCl35_log_pf_dT9; + + // interpolating Cl35 partition function + get_partition_function_cached(Cl35, tfactors.T9, pf_cache, Cl35_log_pf, dCl35_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cl34_log_pf - Cl35_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCl34_log_pf_dT9 - dCl35_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 34.951745958340524 + -146.73632451408102 * tfactors.T9i + 0.990222 * tfactors.T913 + + -0.146686 * tfactors.T9 + 0.00560251 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 146.73632451408102 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.990222 * tfactors.T923i + + -0.146686 + (5.0/3.0) * 0.00560251 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl35_to_p_S34_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cl35 --> p + S34 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl35_log_pf, dCl35_log_pf_dT9; + + // interpolating Cl35 partition function + get_partition_function_cached(Cl35, tfactors.T9, pf_cache, Cl35_log_pf, dCl35_log_pf_dT9); + + amrex::Real S34_log_pf, dS34_log_pf_dT9; + + // interpolating S34 partition function + get_partition_function_cached(S34, tfactors.T9, pf_cache, S34_log_pf, dS34_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + S34_log_pf - Cl35_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dS34_log_pf_dT9 - dCl35_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from se19r + ln_set_rate = 14.594869555370497 + -75.95634244116214 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 75.95634244116214 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from se19r + ln_set_rate = 30.549759555370496 + -79.68602244116214 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 79.68602244116214 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from se19r + ln_set_rate = 7.417229555370497 + -75.33433244116213 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 75.33433244116213 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from se19r + ln_set_rate = 29.296749555370496 + -79.03617244116214 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 79.03617244116214 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from se19r + ln_set_rate = 4.358729555370498 + -75.10224244116213 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 75.10224244116213 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from se19r + ln_set_rate = 28.101369555370496 + -78.57199244116214 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 78.57199244116214 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from se19r + ln_set_rate = 22.729819555370497 + -77.09822244116214 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 77.09822244116214 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from se19r + ln_set_rate = -37.72937044462951 + -101.61919244116214 * tfactors.T9i + 454.53 * tfactors.T913i + -375.557 * tfactors.T913 + + 12.6533 * tfactors.T9 + -0.408677 * tfactors.T953 + 246.618 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 101.61919244116214 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 454.53 * tfactors.T943i + (1.0/3.0) * -375.557 * tfactors.T923i + + 12.6533 + (5.0/3.0) * -0.408677 * tfactors.T923 + 246.618 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl35_to_He4_P31_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cl35 --> He4 + P31 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl35_log_pf, dCl35_log_pf_dT9; + + // interpolating Cl35 partition function + get_partition_function_cached(Cl35, tfactors.T9, pf_cache, Cl35_log_pf, dCl35_log_pf_dT9); + + amrex::Real P31_log_pf, dP31_log_pf_dT9; + + // interpolating P31 partition function + get_partition_function_cached(P31, tfactors.T9, pf_cache, P31_log_pf, dP31_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + P31_log_pf - Cl35_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dP31_log_pf_dT9 - dCl35_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 74.6695981567728 + -81.20727442147438 * tfactors.T9i + -62.5433 * tfactors.T913i + -2.95026 * tfactors.T913 + + -0.89652 * tfactors.T9 + 0.0774126 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 81.20727442147438 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -62.5433 * tfactors.T943i + (1.0/3.0) * -2.95026 * tfactors.T923i + + -0.89652 + (5.0/3.0) * 0.0774126 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl36_to_n_Cl35_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cl36 --> n + Cl35 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl35_log_pf, dCl35_log_pf_dT9; + + // interpolating Cl35 partition function + get_partition_function_cached(Cl35, tfactors.T9, pf_cache, Cl35_log_pf, dCl35_log_pf_dT9); + + amrex::Real Cl36_log_pf, dCl36_log_pf_dT9; + + // interpolating Cl36 partition function + get_partition_function_cached(Cl36, tfactors.T9, pf_cache, Cl36_log_pf, dCl36_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cl35_log_pf - Cl36_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCl35_log_pf_dT9 - dCl36_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 26.239582020470657 + -99.45894253065842 * tfactors.T9i + -11.2145 * tfactors.T913i + 23.5701 * tfactors.T913 + + -1.44059 * tfactors.T9 + 0.0755834 * tfactors.T953 + -8.8832 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 99.45894253065842 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -11.2145 * tfactors.T943i + (1.0/3.0) * 23.5701 * tfactors.T923i + + -1.44059 + (5.0/3.0) * 0.0755834 * tfactors.T923 + -8.8832 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl36_to_p_S35_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cl36 --> p + S35 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real S35_log_pf, dS35_log_pf_dT9; + + // interpolating S35 partition function + get_partition_function_cached(S35, tfactors.T9, pf_cache, S35_log_pf, dS35_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl36_log_pf, dCl36_log_pf_dT9; + + // interpolating Cl36 partition function + get_partition_function_cached(Cl36, tfactors.T9, pf_cache, Cl36_log_pf, dCl36_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + S35_log_pf - Cl36_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dS35_log_pf_dT9 - dCl36_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 58.572032322499915 + -92.42733014618172 * tfactors.T9i + -26.7922 * tfactors.T913i + -1.83516 * tfactors.T913 + + -2.03932 * tfactors.T9 + 0.322305 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 92.42733014618172 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -26.7922 * tfactors.T943i + (1.0/3.0) * -1.83516 * tfactors.T923i + + -2.03932 + (5.0/3.0) * 0.322305 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl36_to_He4_P32_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cl36 --> He4 + P32 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real P32_log_pf, dP32_log_pf_dT9; + + // interpolating P32 partition function + get_partition_function_cached(P32, tfactors.T9, pf_cache, P32_log_pf, dP32_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl36_log_pf, dCl36_log_pf_dT9; + + // interpolating Cl36 partition function + get_partition_function_cached(Cl36, tfactors.T9, pf_cache, Cl36_log_pf, dCl36_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + P32_log_pf - Cl36_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dP32_log_pf_dT9 - dCl36_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = -95.0726599010435 + -90.17217978409543 * tfactors.T9i + -158.272 * tfactors.T913i + 281.836 * tfactors.T913 + + -20.652 * tfactors.T9 + 1.28543 * tfactors.T953 + -111.225 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 90.17217978409543 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -158.272 * tfactors.T943i + (1.0/3.0) * 281.836 * tfactors.T923i + + -20.652 + (5.0/3.0) * 1.28543 * tfactors.T923 + -111.225 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl37_to_n_Cl36_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cl37 --> n + Cl36 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl36_log_pf, dCl36_log_pf_dT9; + + // interpolating Cl36 partition function + get_partition_function_cached(Cl36, tfactors.T9, pf_cache, Cl36_log_pf, dCl36_log_pf_dT9); + + amrex::Real Cl37_log_pf, dCl37_log_pf_dT9; + + // interpolating Cl37 partition function + get_partition_function_cached(Cl37, tfactors.T9, pf_cache, Cl37_log_pf, dCl37_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cl36_log_pf - Cl37_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCl36_log_pf_dT9 - dCl37_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 38.649873948243275 + -119.65429198026123 * tfactors.T9i + -0.17256 * tfactors.T913i + -0.577904 * tfactors.T913 + + 0.229273 * tfactors.T9 + -0.0412624 * tfactors.T953 + 1.285543 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 119.65429198026123 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.17256 * tfactors.T943i + (1.0/3.0) * -0.577904 * tfactors.T923i + + 0.229273 + (5.0/3.0) * -0.0412624 * tfactors.T923 + 1.285543 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl37_to_p_S36_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cl37 --> p + S36 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real S36_log_pf, dS36_log_pf_dT9; + + // interpolating S36 partition function + get_partition_function_cached(S36, tfactors.T9, pf_cache, S36_log_pf, dS36_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl37_log_pf, dCl37_log_pf_dT9; + + // interpolating Cl37 partition function + get_partition_function_cached(Cl37, tfactors.T9, pf_cache, Cl37_log_pf, dCl37_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + S36_log_pf - Cl37_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dS36_log_pf_dT9 - dCl37_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 56.27366827187455 + -97.31991103143162 * tfactors.T9i + -26.7991 * tfactors.T913i + 0.0770118 * tfactors.T913 + + -1.71514 * tfactors.T9 + 0.205981 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 97.31991103143162 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -26.7991 * tfactors.T943i + (1.0/3.0) * 0.0770118 * tfactors.T923i + + -1.71514 + (5.0/3.0) * 0.205981 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl37_to_He4_P33_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cl37 --> He4 + P33 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real P33_log_pf, dP33_log_pf_dT9; + + // interpolating P33 partition function + get_partition_function_cached(P33, tfactors.T9, pf_cache, P33_log_pf, dP33_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl37_log_pf, dCl37_log_pf_dT9; + + // interpolating Cl37 partition function + get_partition_function_cached(Cl37, tfactors.T9, pf_cache, Cl37_log_pf, dCl37_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + P33_log_pf - Cl37_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dP33_log_pf_dT9 - dCl37_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 75.15577700855191 + -94.46967712565095 * tfactors.T9i + 21.2001 * tfactors.T913i + -84.0086 * tfactors.T913 + + 1.39426 * tfactors.T9 + 0.0896178 * tfactors.T953 + 49.3178 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 94.46967712565095 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 21.2001 * tfactors.T943i + (1.0/3.0) * -84.0086 * tfactors.T923i + + 1.39426 + (5.0/3.0) * 0.0896178 * tfactors.T923 + 49.3178 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar36_to_p_Cl35_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar36 --> p + Cl35 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl35_log_pf, dCl35_log_pf_dT9; + + // interpolating Cl35 partition function + get_partition_function_cached(Cl35, tfactors.T9, pf_cache, Cl35_log_pf, dCl35_log_pf_dT9); + + amrex::Real Ar36_log_pf, dAr36_log_pf_dT9; + + // interpolating Ar36 partition function + get_partition_function_cached(Ar36, tfactors.T9, pf_cache, Ar36_log_pf, dAr36_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Cl35_log_pf - Ar36_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCl35_log_pf_dT9 - dAr36_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10r + ln_set_rate = -17.455589662878502 + -99.28409012589869 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 99.28409012589869 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10n + ln_set_rate = 60.7561103371215 + -98.71943912589869 * tfactors.T9i + -27.8971 * tfactors.T913i + -16.2304 * tfactors.T913 + + 35.255 * tfactors.T9 + -25.8411 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 98.71943912589869 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -27.8971 * tfactors.T943i + (1.0/3.0) * -16.2304 * tfactors.T923i + + 35.255 + (5.0/3.0) * -25.8411 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 17.222320337121502 + -102.37035912589869 * tfactors.T9i + 18.0179 * tfactors.T913 + + -2.86304 * tfactors.T9 + 0.250854 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 102.37035912589869 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 18.0179 * tfactors.T923i + + -2.86304 + (5.0/3.0) * 0.250854 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 16.0363703371215 + -100.7293991258987 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 100.7293991258987 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar36_to_He4_S32_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar36 --> He4 + S32 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real S32_log_pf, dS32_log_pf_dT9; + + // interpolating S32 partition function + get_partition_function_cached(S32, tfactors.T9, pf_cache, S32_log_pf, dS32_log_pf_dT9); + + amrex::Real Ar36_log_pf, dAr36_log_pf_dT9; + + // interpolating Ar36 partition function + get_partition_function_cached(Ar36, tfactors.T9, pf_cache, Ar36_log_pf, dAr36_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + S32_log_pf - Ar36_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dS32_log_pf_dT9 - dAr36_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 73.81807507159112 + -77.06468541928012 * tfactors.T9i + -65.3709 * tfactors.T913i + 5.68294 * tfactors.T913 + + -5.00388 * tfactors.T9 + 0.571407 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 77.06468541928012 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -65.3709 * tfactors.T943i + (1.0/3.0) * 5.68294 * tfactors.T923i + + -5.00388 + (5.0/3.0) * 0.571407 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar37_to_n_Ar36_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar37 --> n + Ar36 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ar37_log_pf, dAr37_log_pf_dT9; + + // interpolating Ar37 partition function + get_partition_function_cached(Ar37, tfactors.T9, pf_cache, Ar37_log_pf, dAr37_log_pf_dT9); + + amrex::Real Ar36_log_pf, dAr36_log_pf_dT9; + + // interpolating Ar36 partition function + get_partition_function_cached(Ar36, tfactors.T9, pf_cache, Ar36_log_pf, dAr36_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ar36_log_pf - Ar37_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dAr36_log_pf_dT9 - dAr37_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 34.31482400258879 + -101.94248915476915 * tfactors.T9i + -3.1764 * tfactors.T913i + 5.13191 * tfactors.T913 + + -0.00639688 * tfactors.T9 + -0.0292833 * tfactors.T953 + -1.24683 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 101.94248915476915 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -3.1764 * tfactors.T943i + (1.0/3.0) * 5.13191 * tfactors.T923i + + -0.00639688 + (5.0/3.0) * -0.0292833 * tfactors.T923 + -1.24683 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar37_to_p_Cl36_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar37 --> p + Cl36 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ar37_log_pf, dAr37_log_pf_dT9; + + // interpolating Ar37 partition function + get_partition_function_cached(Ar37, tfactors.T9, pf_cache, Ar37_log_pf, dAr37_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl36_log_pf, dCl36_log_pf_dT9; + + // interpolating Cl36 partition function + get_partition_function_cached(Cl36, tfactors.T9, pf_cache, Cl36_log_pf, dCl36_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Cl36_log_pf - Ar37_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCl36_log_pf_dT9 - dAr37_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 57.92963231923964 + -101.12921015000943 * tfactors.T9i + -27.9044 * tfactors.T913i + -0.481331 * tfactors.T913 + + -1.50793 * tfactors.T9 + 0.182531 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 101.12921015000943 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -27.9044 * tfactors.T943i + (1.0/3.0) * -0.481331 * tfactors.T923i + + -1.50793 + (5.0/3.0) * 0.182531 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar37_to_He4_S33_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar37 --> He4 + S33 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ar37_log_pf, dAr37_log_pf_dT9; + + // interpolating Ar37 partition function + get_partition_function_cached(Ar37, tfactors.T9, pf_cache, Ar37_log_pf, dAr37_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real S33_log_pf, dS33_log_pf_dT9; + + // interpolating S33 partition function + get_partition_function_cached(S33, tfactors.T9, pf_cache, S33_log_pf, dS33_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + S33_log_pf - Ar37_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dS33_log_pf_dT9 - dAr37_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 74.85364487556038 + -78.75681911725914 * tfactors.T9i + -65.4446 * tfactors.T913i + 3.59607 * tfactors.T913 + + -3.40501 * tfactors.T9 + 0.363961 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 78.75681911725914 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -65.4446 * tfactors.T943i + (1.0/3.0) * 3.59607 * tfactors.T923i + + -3.40501 + (5.0/3.0) * 0.363961 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar38_to_n_Ar37_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar38 --> n + Ar37 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ar38_log_pf, dAr38_log_pf_dT9; + + // interpolating Ar38 partition function + get_partition_function_cached(Ar38, tfactors.T9, pf_cache, Ar38_log_pf, dAr38_log_pf_dT9); + + amrex::Real Ar37_log_pf, dAr37_log_pf_dT9; + + // interpolating Ar37 partition function + get_partition_function_cached(Ar37, tfactors.T9, pf_cache, Ar37_log_pf, dAr37_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ar37_log_pf - Ar38_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dAr37_log_pf_dT9 - dAr38_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 39.86712497672913 + -137.37971759787655 * tfactors.T9i + -0.825362 * tfactors.T913 + + 0.336634 * tfactors.T9 + -0.0509617 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 137.37971759787655 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.825362 * tfactors.T923i + + 0.336634 + (5.0/3.0) * -0.0509617 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar38_to_p_Cl37_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar38 --> p + Cl37 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ar38_log_pf, dAr38_log_pf_dT9; + + // interpolating Ar38 partition function + get_partition_function_cached(Ar38, tfactors.T9, pf_cache, Ar38_log_pf, dAr38_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl37_log_pf, dCl37_log_pf_dT9; + + // interpolating Cl37 partition function + get_partition_function_cached(Cl37, tfactors.T9, pf_cache, Cl37_log_pf, dCl37_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Cl37_log_pf - Ar38_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCl37_log_pf_dT9 - dAr38_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 59.08118334772549 + -118.85638807762473 * tfactors.T9i + -27.9113 * tfactors.T913i + 0.282028 * tfactors.T913 + + -1.80122 * tfactors.T9 + 0.21751 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 118.85638807762473 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -27.9113 * tfactors.T943i + (1.0/3.0) * 0.282028 * tfactors.T923i + + -1.80122 + (5.0/3.0) * 0.21751 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar38_to_He4_S34_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar38 --> He4 + S34 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ar38_log_pf, dAr38_log_pf_dT9; + + // interpolating Ar38 partition function + get_partition_function_cached(Ar38, tfactors.T9, pf_cache, Ar38_log_pf, dAr38_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real S34_log_pf, dS34_log_pf_dT9; + + // interpolating S34 partition function + get_partition_function_cached(S34, tfactors.T9, pf_cache, S34_log_pf, dS34_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + S34_log_pf - Ar38_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dS34_log_pf_dT9 - dAr38_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cn18 + ln_set_rate = 253.65592843778612 + -101.61351496454262 * tfactors.T9i + 635.332 * tfactors.T913i + -902.05 * tfactors.T913 + + 42.5623 * tfactors.T9 + -2.08434 * tfactors.T953 + 478.85 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 101.61351496454262 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 635.332 * tfactors.T943i + (1.0/3.0) * -902.05 * tfactors.T923i + + 42.5623 + (5.0/3.0) * -2.08434 * tfactors.T923 + 478.85 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar39_to_n_Ar38_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar39 --> n + Ar38 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ar38_log_pf, dAr38_log_pf_dT9; + + // interpolating Ar38 partition function + get_partition_function_cached(Ar38, tfactors.T9, pf_cache, Ar38_log_pf, dAr38_log_pf_dT9); + + amrex::Real Ar39_log_pf, dAr39_log_pf_dT9; + + // interpolating Ar39 partition function + get_partition_function_cached(Ar39, tfactors.T9, pf_cache, Ar39_log_pf, dAr39_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ar38_log_pf - Ar39_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dAr38_log_pf_dT9 - dAr39_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 36.33475665025724 + -76.60547063129061 * tfactors.T9i + 2.38837 * tfactors.T913i + -4.76536 * tfactors.T913 + + 0.701311 * tfactors.T9 + -0.0705226 * tfactors.T953 + 3.30517 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 76.60547063129061 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.38837 * tfactors.T943i + (1.0/3.0) * -4.76536 * tfactors.T923i + + 0.701311 + (5.0/3.0) * -0.0705226 * tfactors.T923 + 3.30517 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar39_to_He4_S35_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar39 --> He4 + S35 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real S35_log_pf, dS35_log_pf_dT9; + + // interpolating S35 partition function + get_partition_function_cached(S35, tfactors.T9, pf_cache, S35_log_pf, dS35_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ar39_log_pf, dAr39_log_pf_dT9; + + // interpolating Ar39 partition function + get_partition_function_cached(Ar39, tfactors.T9, pf_cache, Ar39_log_pf, dAr39_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + S35_log_pf - Ar39_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dS35_log_pf_dT9 - dAr39_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 74.3992858347021 + -79.1510048702016 * tfactors.T9i + -65.58 * tfactors.T913i + 0.163229 * tfactors.T913 + + -2.20138 * tfactors.T9 + 0.232938 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 79.1510048702016 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -65.58 * tfactors.T943i + (1.0/3.0) * 0.163229 * tfactors.T923i + + -2.20138 + (5.0/3.0) * 0.232938 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar40_to_n_Ar39_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar40 --> n + Ar39 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ar39_log_pf, dAr39_log_pf_dT9; + + // interpolating Ar39 partition function + get_partition_function_cached(Ar39, tfactors.T9, pf_cache, Ar39_log_pf, dAr39_log_pf_dT9); + + amrex::Real Ar40_log_pf, dAr40_log_pf_dT9; + + // interpolating Ar40 partition function + get_partition_function_cached(Ar40, tfactors.T9, pf_cache, Ar40_log_pf, dAr40_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ar39_log_pf - Ar40_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dAr39_log_pf_dT9 - dAr40_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 41.59535413168824 + -114.55929058703711 * tfactors.T9i + 2.09789 * tfactors.T913i + -4.77242 * tfactors.T913 + + 0.64032 * tfactors.T9 + -0.0694485 * tfactors.T953 + 3.0156099999999997 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 114.55929058703711 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.09789 * tfactors.T943i + (1.0/3.0) * -4.77242 * tfactors.T923i + + 0.64032 + (5.0/3.0) * -0.0694485 * tfactors.T923 + 3.0156099999999997 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar40_to_He4_S36_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar40 --> He4 + S36 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real S36_log_pf, dS36_log_pf_dT9; + + // interpolating S36 partition function + get_partition_function_cached(S36, tfactors.T9, pf_cache, S36_log_pf, dS36_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ar40_log_pf, dAr40_log_pf_dT9; + + // interpolating Ar40 partition function + get_partition_function_cached(Ar40, tfactors.T9, pf_cache, Ar40_log_pf, dAr40_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + S36_log_pf - Ar40_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dS36_log_pf_dT9 - dAr40_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 74.9224019675217 + -78.91856637222737 * tfactors.T9i + -65.6425 * tfactors.T913i + 4.12861 * tfactors.T913 + + -3.33119 * tfactors.T9 + 0.31889 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 78.91856637222737 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -65.6425 * tfactors.T943i + (1.0/3.0) * 4.12861 * tfactors.T923i + + -3.33119 + (5.0/3.0) * 0.31889 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K37_to_p_Ar36_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // K37 --> p + Ar36 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real K37_log_pf, dK37_log_pf_dT9; + + // interpolating K37 partition function + get_partition_function_cached(K37, tfactors.T9, pf_cache, K37_log_pf, dK37_log_pf_dT9); + + amrex::Real Ar36_log_pf, dAr36_log_pf_dT9; + + // interpolating Ar36 partition function + get_partition_function_cached(Ar36, tfactors.T9, pf_cache, Ar36_log_pf, dAr36_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ar36_log_pf - K37_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dAr36_log_pf_dT9 - dK37_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10r + ln_set_rate = 25.48017518360185 + -30.537200136219777 * tfactors.T9i + 7.50962 * tfactors.T913 + + -1.68675 * tfactors.T9 + 0.189725 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 30.537200136219777 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 7.50962 * tfactors.T923i + + -1.68675 + (5.0/3.0) * 0.189725 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 26.99508518360185 + -25.181990136219778 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 25.181990136219778 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10n + ln_set_rate = 43.78969518360185 + -21.556890136219778 * tfactors.T9i + -28.9682 * tfactors.T913i + + -1.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 21.556890136219778 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -28.9682 * tfactors.T943i + + (5.0/3.0) * -1.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K37_to_He4_Cl33_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // K37 --> He4 + Cl33 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cl33_log_pf, dCl33_log_pf_dT9; + + // interpolating Cl33 partition function + get_partition_function_cached(Cl33, tfactors.T9, pf_cache, Cl33_log_pf, dCl33_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real K37_log_pf, dK37_log_pf_dT9; + + // interpolating K37 partition function + get_partition_function_cached(K37, tfactors.T9, pf_cache, K37_log_pf, dK37_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Cl33_log_pf - K37_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCl33_log_pf_dT9 - dK37_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 71.60805297248307 + -72.20117501230614 * tfactors.T9i + -68.1442 * tfactors.T913i + -2.72746 * tfactors.T913 + + -0.317537 * tfactors.T9 + 0.0162782 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 72.20117501230614 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -68.1442 * tfactors.T943i + (1.0/3.0) * -2.72746 * tfactors.T923i + + -0.317537 + (5.0/3.0) * 0.0162782 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K38_to_n_K37_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // K38 --> n + K37 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real K37_log_pf, dK37_log_pf_dT9; + + // interpolating K37 partition function + get_partition_function_cached(K37, tfactors.T9, pf_cache, K37_log_pf, dK37_log_pf_dT9); + + amrex::Real K38_log_pf, dK38_log_pf_dT9; + + // interpolating K38 partition function + get_partition_function_cached(K38, tfactors.T9, pf_cache, K38_log_pf, dK38_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + K37_log_pf - K38_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dK37_log_pf_dT9 - dK38_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 32.10923303346168 + -140.08832817263539 * tfactors.T9i + 0.538174 * tfactors.T913 + + -0.0208079 * tfactors.T9 + -0.00404949 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 140.08832817263539 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.538174 * tfactors.T923i + + -0.0208079 + (5.0/3.0) * -0.00404949 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K38_to_p_Ar37_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // K38 --> p + Ar37 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ar37_log_pf, dAr37_log_pf_dT9; + + // interpolating Ar37 partition function + get_partition_function_cached(Ar37, tfactors.T9, pf_cache, Ar37_log_pf, dAr37_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real K38_log_pf, dK38_log_pf_dT9; + + // interpolating K38 partition function + get_partition_function_cached(K38, tfactors.T9, pf_cache, K38_log_pf, dK38_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ar37_log_pf - K38_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dAr37_log_pf_dT9 - dK38_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 60.85081421447474 + -59.67102475410763 * tfactors.T9i + -28.9954 * tfactors.T913i + -5.57966 * tfactors.T913 + + -1.27516 * tfactors.T9 + 0.217568 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 59.67102475410763 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -28.9954 * tfactors.T943i + (1.0/3.0) * -5.57966 * tfactors.T923i + + -1.27516 + (5.0/3.0) * 0.217568 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K38_to_He4_Cl34_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // K38 --> He4 + Cl34 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cl34_log_pf, dCl34_log_pf_dT9; + + // interpolating Cl34 partition function + get_partition_function_cached(Cl34, tfactors.T9, pf_cache, Cl34_log_pf, dCl34_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real K38_log_pf, dK38_log_pf_dT9; + + // interpolating K38 partition function + get_partition_function_cached(K38, tfactors.T9, pf_cache, K38_log_pf, dK38_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Cl34_log_pf - K38_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCl34_log_pf_dT9 - dK38_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 70.93993407850172 + -78.74345419369978 * tfactors.T9i + -68.2165 * tfactors.T913i + -2.18792 * tfactors.T913 + + -1.25322 * tfactors.T9 + 0.140901 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 78.74345419369978 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -68.2165 * tfactors.T943i + (1.0/3.0) * -2.18792 * tfactors.T923i + + -1.25322 + (5.0/3.0) * 0.140901 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K39_to_n_K38_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // K39 --> n + K38 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real K38_log_pf, dK38_log_pf_dT9; + + // interpolating K38 partition function + get_partition_function_cached(K38, tfactors.T9, pf_cache, K38_log_pf, dK38_log_pf_dT9); + + amrex::Real K39_log_pf, dK39_log_pf_dT9; + + // interpolating K39 partition function + get_partition_function_cached(K39, tfactors.T9, pf_cache, K39_log_pf, dK39_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + K38_log_pf - K39_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dK38_log_pf_dT9 - dK39_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 38.00787098423086 + -151.76102283811989 * tfactors.T9i + -0.161985 * tfactors.T913 + + 0.187817 * tfactors.T9 + -0.0320464 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 151.76102283811989 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.161985 * tfactors.T923i + + 0.187817 + (5.0/3.0) * -0.0320464 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K39_to_p_Ar38_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // K39 --> p + Ar38 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ar38_log_pf, dAr38_log_pf_dT9; + + // interpolating Ar38 partition function + get_partition_function_cached(Ar38, tfactors.T9, pf_cache, Ar38_log_pf, dAr38_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real K39_log_pf, dK39_log_pf_dT9; + + // interpolating K39 partition function + get_partition_function_cached(K39, tfactors.T9, pf_cache, K39_log_pf, dK39_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ar38_log_pf - K39_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dAr38_log_pf_dT9 - dK39_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 57.583260221976474 + -74.05232999435097 * tfactors.T9i + -29.0021 * tfactors.T913i + -0.525968 * tfactors.T913 + + -1.94216 * tfactors.T9 + 0.267346 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 74.05232999435097 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -29.0021 * tfactors.T943i + (1.0/3.0) * -0.525968 * tfactors.T923i + + -1.94216 + (5.0/3.0) * 0.267346 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K39_to_He4_Cl35_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // K39 --> He4 + Cl35 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl35_log_pf, dCl35_log_pf_dT9; + + // interpolating Cl35 partition function + get_partition_function_cached(Cl35, tfactors.T9, pf_cache, Cl35_log_pf, dCl35_log_pf_dT9); + + amrex::Real K39_log_pf, dK39_log_pf_dT9; + + // interpolating K39 partition function + get_partition_function_cached(K39, tfactors.T9, pf_cache, K39_log_pf, dK39_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Cl35_log_pf - K39_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCl35_log_pf_dT9 - dK39_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 77.64945910439207 + -83.76815251770985 * tfactors.T9i + -68.2848 * tfactors.T913i + 0.0178545 * tfactors.T913 + + -2.06783 * tfactors.T9 + 0.199659 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 83.76815251770985 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -68.2848 * tfactors.T943i + (1.0/3.0) * 0.0178545 * tfactors.T923i + + -2.06783 + (5.0/3.0) * 0.199659 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K40_to_n_K39_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // K40 --> n + K39 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real K39_log_pf, dK39_log_pf_dT9; + + // interpolating K39 partition function + get_partition_function_cached(K39, tfactors.T9, pf_cache, K39_log_pf, dK39_log_pf_dT9); + + amrex::Real K40_log_pf, dK40_log_pf_dT9; + + // interpolating K40 partition function + get_partition_function_cached(K40, tfactors.T9, pf_cache, K40_log_pf, dK40_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + K39_log_pf - K40_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dK39_log_pf_dT9 - dK40_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 40.49444240992296 + -90.47924820526332 * tfactors.T9i + -2.2227 * tfactors.T913i + -1.88579 * tfactors.T913 + + 0.714904 * tfactors.T9 + -0.0774902 * tfactors.T953 + 0.640527 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 90.47924820526332 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.2227 * tfactors.T943i + (1.0/3.0) * -1.88579 * tfactors.T923i + + 0.714904 + (5.0/3.0) * -0.0774902 * tfactors.T923 + 0.640527 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K40_to_p_Ar39_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // K40 --> p + Ar39 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ar39_log_pf, dAr39_log_pf_dT9; + + // interpolating Ar39 partition function + get_partition_function_cached(Ar39, tfactors.T9, pf_cache, Ar39_log_pf, dAr39_log_pf_dT9); + + amrex::Real K40_log_pf, dK40_log_pf_dT9; + + // interpolating K40 partition function + get_partition_function_cached(K40, tfactors.T9, pf_cache, K40_log_pf, dK40_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ar39_log_pf - K40_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dAr39_log_pf_dT9 - dK40_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 59.55674598164218 + -87.99092286830206 * tfactors.T9i + -29.0085 * tfactors.T913i + -2.81753 * tfactors.T913 + + -0.757962 * tfactors.T9 + 0.099462 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 87.99092286830206 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -29.0085 * tfactors.T943i + (1.0/3.0) * -2.81753 * tfactors.T923i + + -0.757962 + (5.0/3.0) * 0.099462 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K40_to_He4_Cl36_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // K40 --> He4 + Cl36 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl36_log_pf, dCl36_log_pf_dT9; + + // interpolating Cl36 partition function + get_partition_function_cached(Cl36, tfactors.T9, pf_cache, Cl36_log_pf, dCl36_log_pf_dT9); + + amrex::Real K40_log_pf, dK40_log_pf_dT9; + + // interpolating K40 partition function + get_partition_function_cached(K40, tfactors.T9, pf_cache, K40_log_pf, dK40_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Cl36_log_pf - K40_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCl36_log_pf_dT9 - dK40_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 80.06359949384438 + -74.71459759231477 * tfactors.T9i + -68.3499 * tfactors.T913i + -4.69433 * tfactors.T913 + + -1.24812 * tfactors.T9 + 0.169306 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 74.71459759231477 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -68.3499 * tfactors.T943i + (1.0/3.0) * -4.69433 * tfactors.T923i + + -1.24812 + (5.0/3.0) * 0.169306 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K41_to_n_K40_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // K41 --> n + K40 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real K41_log_pf, dK41_log_pf_dT9; + + // interpolating K41 partition function + get_partition_function_cached(K41, tfactors.T9, pf_cache, K41_log_pf, dK41_log_pf_dT9); + + amrex::Real K40_log_pf, dK40_log_pf_dT9; + + // interpolating K40 partition function + get_partition_function_cached(K40, tfactors.T9, pf_cache, K40_log_pf, dK40_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + K40_log_pf - K41_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dK40_log_pf_dT9 - dK41_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 41.955494782438464 + -117.17960465565791 * tfactors.T9i + 1.90527 * tfactors.T913i + -4.8523 * tfactors.T913 + + 0.552061 * tfactors.T9 + -0.0570777 * tfactors.T953 + 2.96777 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 117.17960465565791 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.90527 * tfactors.T943i + (1.0/3.0) * -4.8523 * tfactors.T923i + + 0.552061 + (5.0/3.0) * -0.0570777 * tfactors.T923 + 2.96777 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K41_to_p_Ar40_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // K41 --> p + Ar40 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real K41_log_pf, dK41_log_pf_dT9; + + // interpolating K41 partition function + get_partition_function_cached(K41, tfactors.T9, pf_cache, K41_log_pf, dK41_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ar40_log_pf, dAr40_log_pf_dT9; + + // interpolating Ar40 partition function + get_partition_function_cached(Ar40, tfactors.T9, pf_cache, Ar40_log_pf, dAr40_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ar40_log_pf - K41_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dAr40_log_pf_dT9 - dK41_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 56.71268663239242 + -90.61527303692289 * tfactors.T9i + -29.0146 * tfactors.T913i + 0.65181 * tfactors.T913 + + -1.50557 * tfactors.T9 + 0.139974 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 90.61527303692289 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -29.0146 * tfactors.T943i + (1.0/3.0) * 0.65181 * tfactors.T923i + + -1.50557 + (5.0/3.0) * 0.139974 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K41_to_He4_Cl37_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // K41 --> He4 + Cl37 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real K41_log_pf, dK41_log_pf_dT9; + + // interpolating K41 partition function + get_partition_function_cached(K41, tfactors.T9, pf_cache, K41_log_pf, dK41_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl37_log_pf, dCl37_log_pf_dT9; + + // interpolating Cl37 partition function + get_partition_function_cached(Cl37, tfactors.T9, pf_cache, Cl37_log_pf, dCl37_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Cl37_log_pf - K41_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCl37_log_pf_dT9 - dK41_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 76.18592032803957 + -72.21392837771145 * tfactors.T9i + -68.4116 * tfactors.T913i + 3.55194 * tfactors.T913 + + -2.84942 * tfactors.T9 + 0.24958 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 72.21392837771145 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -68.4116 * tfactors.T943i + (1.0/3.0) * 3.55194 * tfactors.T923i + + -2.84942 + (5.0/3.0) * 0.24958 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca40_to_p_K39_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca40 --> p + K39 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca40_log_pf, dCa40_log_pf_dT9; + + // interpolating Ca40 partition function + get_partition_function_cached(Ca40, tfactors.T9, pf_cache, Ca40_log_pf, dCa40_log_pf_dT9); + + amrex::Real K39_log_pf, dK39_log_pf_dT9; + + // interpolating K39 partition function + get_partition_function_cached(K39, tfactors.T9, pf_cache, K39_log_pf, dK39_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + K39_log_pf - Ca40_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dK39_log_pf_dT9 - dCa40_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from lo18r + ln_set_rate = 2786.453572485239 + -101.86683326322635 * tfactors.T9i + 802.18 * tfactors.T913i + -4010.27 * tfactors.T913 + + 1137.69 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 101.86683326322635 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 802.18 * tfactors.T943i + (1.0/3.0) * -4010.27 * tfactors.T923i + + 1137.69 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from lo18r + ln_set_rate = 613.1725724852387 + -109.20919326322635 * tfactors.T9i + 641.844 * tfactors.T913i + -1248.49 * tfactors.T913 + + 566.426 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 109.20919326322635 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 641.844 * tfactors.T943i + (1.0/3.0) * -1248.49 * tfactors.T923i + + 566.426 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from lo18r + ln_set_rate = 127.32557248523868 + -98.30957326322635 * tfactors.T9i + 41.1723 * tfactors.T913i + -149.299 * tfactors.T913 + + 10.5229 * tfactors.T9 + -0.68208 * tfactors.T953 + 60.7367 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 98.30957326322635 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 41.1723 * tfactors.T943i + (1.0/3.0) * -149.299 * tfactors.T923i + + 10.5229 + (5.0/3.0) * -0.68208 * tfactors.T923 + 60.7367 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca40_to_He4_Ar36_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca40 --> He4 + Ar36 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca40_log_pf, dCa40_log_pf_dT9; + + // interpolating Ca40 partition function + get_partition_function_cached(Ca40, tfactors.T9, pf_cache, Ca40_log_pf, dCa40_log_pf_dT9); + + amrex::Real Ar36_log_pf, dAr36_log_pf_dT9; + + // interpolating Ar36 partition function + get_partition_function_cached(Ar36, tfactors.T9, pf_cache, Ar36_log_pf, dAr36_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ar36_log_pf - Ca40_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dAr36_log_pf_dT9 - dCa40_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 77.28432125250924 + -81.69320665503751 * tfactors.T9i + -71.0046 * tfactors.T913i + 4.0656 * tfactors.T913 + + -5.26509 * tfactors.T9 + 0.683546 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 81.69320665503751 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -71.0046 * tfactors.T943i + (1.0/3.0) * 4.0656 * tfactors.T923i + + -5.26509 + (5.0/3.0) * 0.683546 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca41_to_n_Ca40_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca41 --> n + Ca40 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca40_log_pf, dCa40_log_pf_dT9; + + // interpolating Ca40 partition function + get_partition_function_cached(Ca40, tfactors.T9, pf_cache, Ca40_log_pf, dCa40_log_pf_dT9); + + amrex::Real Ca41_log_pf, dCa41_log_pf_dT9; + + // interpolating Ca41 partition function + get_partition_function_cached(Ca41, tfactors.T9, pf_cache, Ca41_log_pf, dCa41_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ca40_log_pf - Ca41_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCa40_log_pf_dT9 - dCa41_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 24.6568173607497 + -96.96102952477759 * tfactors.T9i + -9.18636 * tfactors.T913i + 21.0095 * tfactors.T913 + + -1.33326 * tfactors.T9 + 0.0769347 * tfactors.T953 + -7.16245 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 96.96102952477759 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -9.18636 * tfactors.T943i + (1.0/3.0) * 21.0095 * tfactors.T923i + + -1.33326 + (5.0/3.0) * 0.0769347 * tfactors.T923 + -7.16245 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca41_to_p_K40_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca41 --> p + K40 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca41_log_pf, dCa41_log_pf_dT9; + + // interpolating Ca41 partition function + get_partition_function_cached(Ca41, tfactors.T9, pf_cache, Ca41_log_pf, dCa41_log_pf_dT9); + + amrex::Real K40_log_pf, dK40_log_pf_dT9; + + // interpolating K40 partition function + get_partition_function_cached(K40, tfactors.T9, pf_cache, K40_log_pf, dK40_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + K40_log_pf - Ca41_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dK40_log_pf_dT9 - dCa41_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 58.903337436065414 + -103.1801926827406 * tfactors.T9i + -30.0795 * tfactors.T913i + 0.0447475 * tfactors.T913 + + -1.69565 * tfactors.T9 + 0.20173 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 103.1801926827406 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -30.0795 * tfactors.T943i + (1.0/3.0) * 0.0447475 * tfactors.T923i + + -1.69565 + (5.0/3.0) * 0.20173 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca41_to_He4_Ar37_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca41 --> He4 + Ar37 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ar37_log_pf, dAr37_log_pf_dT9; + + // interpolating Ar37 partition function + get_partition_function_cached(Ar37, tfactors.T9, pf_cache, Ar37_log_pf, dAr37_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca41_log_pf, dCa41_log_pf_dT9; + + // interpolating Ca41 partition function + get_partition_function_cached(Ca41, tfactors.T9, pf_cache, Ca41_log_pf, dCa41_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ar37_log_pf - Ca41_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dAr37_log_pf_dT9 - dCa41_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 76.99880461067016 + -76.76558012507475 * tfactors.T9i + -71.0688 * tfactors.T913i + 2.71847 * tfactors.T913 + + -3.17333 * tfactors.T9 + 0.335323 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 76.76558012507475 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -71.0688 * tfactors.T943i + (1.0/3.0) * 2.71847 * tfactors.T923i + + -3.17333 + (5.0/3.0) * 0.335323 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca42_to_n_Ca41_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca42 --> n + Ca41 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca41_log_pf, dCa41_log_pf_dT9; + + // interpolating Ca41 partition function + get_partition_function_cached(Ca41, tfactors.T9, pf_cache, Ca41_log_pf, dCa41_log_pf_dT9); + + amrex::Real Ca42_log_pf, dCa42_log_pf_dT9; + + // interpolating Ca42 partition function + get_partition_function_cached(Ca42, tfactors.T9, pf_cache, Ca42_log_pf, dCa42_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ca41_log_pf - Ca42_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCa41_log_pf_dT9 - dCa42_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 46.216884269737946 + -133.26891724956297 * tfactors.T9i + 3.7037 * tfactors.T913i + -9.99246 * tfactors.T913 + + 1.05894 * tfactors.T9 + -0.0978564 * tfactors.T953 + 4.93604 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 133.26891724956297 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 3.7037 * tfactors.T943i + (1.0/3.0) * -9.99246 * tfactors.T923i + + 1.05894 + (5.0/3.0) * -0.0978564 * tfactors.T923 + 4.93604 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca42_to_p_K41_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca42 --> p + K41 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real K41_log_pf, dK41_log_pf_dT9; + + // interpolating K41 partition function + get_partition_function_cached(K41, tfactors.T9, pf_cache, K41_log_pf, dK41_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca42_log_pf, dCa42_log_pf_dT9; + + // interpolating Ca42 partition function + get_partition_function_cached(Ca42, tfactors.T9, pf_cache, Ca42_log_pf, dCa42_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + K41_log_pf - Ca42_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dK41_log_pf_dT9 - dCa42_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from SM86n + ln_set_rate = 57.2769269233649 + -119.25629137666725 * tfactors.T9i + -30.08 * tfactors.T913i + 2.93877 * tfactors.T913 + + 2.77388 * tfactors.T9 + -4.8284 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 119.25629137666725 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -30.08 * tfactors.T943i + (1.0/3.0) * 2.93877 * tfactors.T923i + + 2.77388 + (5.0/3.0) * -4.8284 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from SM86r + ln_set_rate = 41.0973269233649 + -131.25629137666726 * tfactors.T9i + -1.68317 * tfactors.T913 + + 0.692171 * tfactors.T9 + -0.0831029 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 131.25629137666726 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.68317 * tfactors.T923i + + 0.692171 + (5.0/3.0) * -0.0831029 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca42_to_He4_Ar38_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca42 --> He4 + Ar38 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ar38_log_pf, dAr38_log_pf_dT9; + + // interpolating Ar38 partition function + get_partition_function_cached(Ar38, tfactors.T9, pf_cache, Ar38_log_pf, dAr38_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca42_log_pf, dCa42_log_pf_dT9; + + // interpolating Ca42 partition function + get_partition_function_cached(Ca42, tfactors.T9, pf_cache, Ca42_log_pf, dCa42_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ar38_log_pf - Ca42_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dAr38_log_pf_dT9 - dCa42_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 77.58296390367897 + -72.6138316767612 * tfactors.T9i + -71.1296 * tfactors.T913i + 2.75299 * tfactors.T913 + + -2.43406 * tfactors.T9 + 0.199511 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 72.6138316767612 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -71.1296 * tfactors.T943i + (1.0/3.0) * 2.75299 * tfactors.T923i + + -2.43406 + (5.0/3.0) * 0.199511 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca43_to_n_Ca42_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca43 --> n + Ca42 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca42_log_pf, dCa42_log_pf_dT9; + + // interpolating Ca42 partition function + get_partition_function_cached(Ca42, tfactors.T9, pf_cache, Ca42_log_pf, dCa42_log_pf_dT9); + + amrex::Real Ca43_log_pf, dCa43_log_pf_dT9; + + // interpolating Ca43 partition function + get_partition_function_cached(Ca43, tfactors.T9, pf_cache, Ca43_log_pf, dCa43_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ca42_log_pf - Ca43_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCa42_log_pf_dT9 - dCa43_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 37.60852252474513 + -92.02090995788369 * tfactors.T9i + -2.75867 * tfactors.T913i + 0.860871 * tfactors.T913 + + 0.583467 * tfactors.T9 + -0.094473 * tfactors.T953 + -0.09356999999999993 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 92.02090995788369 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.75867 * tfactors.T943i + (1.0/3.0) * 0.860871 * tfactors.T923i + + 0.583467 + (5.0/3.0) * -0.094473 * tfactors.T923 + -0.09356999999999993 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca43_to_He4_Ar39_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca43 --> He4 + Ar39 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ar39_log_pf, dAr39_log_pf_dT9; + + // interpolating Ar39 partition function + get_partition_function_cached(Ar39, tfactors.T9, pf_cache, Ar39_log_pf, dAr39_log_pf_dT9); + + amrex::Real Ca43_log_pf, dCa43_log_pf_dT9; + + // interpolating Ca43 partition function + get_partition_function_cached(Ca43, tfactors.T9, pf_cache, Ca43_log_pf, dCa43_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ar39_log_pf - Ca43_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dAr39_log_pf_dT9 - dCa43_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 77.95992977816687 + -88.09901670332546 * tfactors.T9i + -71.1879 * tfactors.T913i + 2.58821 * tfactors.T913 + + -3.67809 * tfactors.T9 + 0.431537 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 88.09901670332546 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -71.1879 * tfactors.T943i + (1.0/3.0) * 2.58821 * tfactors.T923i + + -3.67809 + (5.0/3.0) * 0.431537 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca44_to_n_Ca43_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca44 --> n + Ca43 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca44_log_pf, dCa44_log_pf_dT9; + + // interpolating Ca44 partition function + get_partition_function_cached(Ca44, tfactors.T9, pf_cache, Ca44_log_pf, dCa44_log_pf_dT9); + + amrex::Real Ca43_log_pf, dCa43_log_pf_dT9; + + // interpolating Ca43 partition function + get_partition_function_cached(Ca43, tfactors.T9, pf_cache, Ca43_log_pf, dCa43_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ca43_log_pf - Ca44_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCa43_log_pf_dT9 - dCa44_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 36.46011535101147 + -129.17748500013735 * tfactors.T9i + -1.26512 * tfactors.T913i + 6.74718 * tfactors.T913 + + -0.673582 * tfactors.T9 + 0.0412245 * tfactors.T953 + -0.80362 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 129.17748500013735 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.26512 * tfactors.T943i + (1.0/3.0) * 6.74718 * tfactors.T923i + + -0.673582 + (5.0/3.0) * 0.0412245 * tfactors.T923 + -0.80362 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca44_to_He4_Ar40_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca44 --> He4 + Ar40 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ca44_log_pf, dCa44_log_pf_dT9; + + // interpolating Ca44 partition function + get_partition_function_cached(Ca44, tfactors.T9, pf_cache, Ca44_log_pf, dCa44_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ar40_log_pf, dAr40_log_pf_dT9; + + // interpolating Ar40 partition function + get_partition_function_cached(Ar40, tfactors.T9, pf_cache, Ar40_log_pf, dAr40_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ar40_log_pf - Ca44_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dAr40_log_pf_dT9 - dCa44_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 76.18749099749009 + -102.74310625642573 * tfactors.T9i + -71.2432 * tfactors.T913i + 6.75101 * tfactors.T913 + + -5.53183 * tfactors.T9 + 0.667023 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 102.74310625642573 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -71.2432 * tfactors.T943i + (1.0/3.0) * 6.75101 * tfactors.T923i + + -5.53183 + (5.0/3.0) * 0.667023 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca45_to_n_Ca44_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca45 --> n + Ca44 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca45_log_pf, dCa45_log_pf_dT9; + + // interpolating Ca45 partition function + get_partition_function_cached(Ca45, tfactors.T9, pf_cache, Ca45_log_pf, dCa45_log_pf_dT9); + + amrex::Real Ca44_log_pf, dCa44_log_pf_dT9; + + // interpolating Ca44 partition function + get_partition_function_cached(Ca44, tfactors.T9, pf_cache, Ca44_log_pf, dCa44_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ca44_log_pf - Ca45_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCa44_log_pf_dT9 - dCa45_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 23.64496951561242 + -85.8549210094341 * tfactors.T9i + -17.5809 * tfactors.T913i + 30.835 * tfactors.T913 + + -1.52658 * tfactors.T9 + 0.0495163 * tfactors.T953 + -13.0794 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 85.8549210094341 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -17.5809 * tfactors.T943i + (1.0/3.0) * 30.835 * tfactors.T923i + + -1.52658 + (5.0/3.0) * 0.0495163 * tfactors.T923 + -13.0794 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca46_to_n_Ca45_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca46 --> n + Ca45 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca45_log_pf, dCa45_log_pf_dT9; + + // interpolating Ca45 partition function + get_partition_function_cached(Ca45, tfactors.T9, pf_cache, Ca45_log_pf, dCa45_log_pf_dT9); + + amrex::Real Ca46_log_pf, dCa46_log_pf_dT9; + + // interpolating Ca46 partition function + get_partition_function_cached(Ca46, tfactors.T9, pf_cache, Ca46_log_pf, dCa46_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ca45_log_pf - Ca46_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCa45_log_pf_dT9 - dCa46_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 48.385481940888916 + -120.7245914323699 * tfactors.T9i + 5.01526 * tfactors.T913i + -14.4226 * tfactors.T913 + + 1.37087 * tfactors.T9 + -0.111582 * tfactors.T953 + 6.37661 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 120.7245914323699 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 5.01526 * tfactors.T943i + (1.0/3.0) * -14.4226 * tfactors.T923i + + 1.37087 + (5.0/3.0) * -0.111582 * tfactors.T923 + 6.37661 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca47_to_n_Ca46_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca47 --> n + Ca46 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca46_log_pf, dCa46_log_pf_dT9; + + // interpolating Ca46 partition function + get_partition_function_cached(Ca46, tfactors.T9, pf_cache, Ca46_log_pf, dCa46_log_pf_dT9); + + amrex::Real Ca47_log_pf, dCa47_log_pf_dT9; + + // interpolating Ca47 partition function + get_partition_function_cached(Ca47, tfactors.T9, pf_cache, Ca47_log_pf, dCa47_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ca46_log_pf - Ca47_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCa46_log_pf_dT9 - dCa47_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 20.729351909236364 + -84.23235170148469 * tfactors.T9i + -19.7417 * tfactors.T913i + 35.2401 * tfactors.T913 + + -1.61262 * tfactors.T9 + 0.0443701 * tfactors.T953 + -15.250699999999998 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 84.23235170148469 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -19.7417 * tfactors.T943i + (1.0/3.0) * 35.2401 * tfactors.T923i + + -1.61262 + (5.0/3.0) * 0.0443701 * tfactors.T923 + -15.250699999999998 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca48_to_n_Ca47_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca48 --> n + Ca47 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca47_log_pf, dCa47_log_pf_dT9; + + // interpolating Ca47 partition function + get_partition_function_cached(Ca47, tfactors.T9, pf_cache, Ca47_log_pf, dCa47_log_pf_dT9); + + amrex::Real Ca48_log_pf, dCa48_log_pf_dT9; + + // interpolating Ca48 partition function + get_partition_function_cached(Ca48, tfactors.T9, pf_cache, Ca48_log_pf, dCa48_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ca47_log_pf - Ca48_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCa47_log_pf_dT9 - dCa48_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 40.996842033760664 + -115.48220078382172 * tfactors.T9i + -2.88636 * tfactors.T913 + + 0.79581 * tfactors.T9 + -0.0872236 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 115.48220078382172 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.88636 * tfactors.T923i + + 0.79581 + (5.0/3.0) * -0.0872236 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc43_to_p_Ca42_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc43 --> p + Ca42 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca42_log_pf, dCa42_log_pf_dT9; + + // interpolating Ca42 partition function + get_partition_function_cached(Ca42, tfactors.T9, pf_cache, Ca42_log_pf, dCa42_log_pf_dT9); + + amrex::Real Sc43_log_pf, dSc43_log_pf_dT9; + + // interpolating Sc43 partition function + get_partition_function_cached(Sc43, tfactors.T9, pf_cache, Sc43_log_pf, dSc43_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ca42_log_pf - Sc43_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCa42_log_pf_dT9 - dSc43_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 57.429501245652034 + -57.20773369244204 * tfactors.T9i + -31.1381 * tfactors.T913i + -0.151667 * tfactors.T913 + + -1.76926 * tfactors.T9 + 0.219569 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 57.20773369244204 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.1381 * tfactors.T943i + (1.0/3.0) * -0.151667 * tfactors.T923i + + -1.76926 + (5.0/3.0) * 0.219569 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc43_to_He4_K39_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc43 --> He4 + K39 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real K39_log_pf, dK39_log_pf_dT9; + + // interpolating K39 partition function + get_partition_function_cached(K39, tfactors.T9, pf_cache, K39_log_pf, dK39_log_pf_dT9); + + amrex::Real Sc43_log_pf, dSc43_log_pf_dT9; + + // interpolating Sc43 partition function + get_partition_function_cached(Sc43, tfactors.T9, pf_cache, Sc43_log_pf, dSc43_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + K39_log_pf - Sc43_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dK39_log_pf_dT9 - dSc43_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 78.37420492735454 + -55.76923537484507 * tfactors.T9i + -73.8006 * tfactors.T913i + 1.87885 * tfactors.T913 + + -2.75862 * tfactors.T9 + 0.279678 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 55.76923537484507 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -73.8006 * tfactors.T943i + (1.0/3.0) * 1.87885 * tfactors.T923i + + -2.75862 + (5.0/3.0) * 0.279678 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc44_to_n_Sc43_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc44 --> n + Sc43 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc43_log_pf, dSc43_log_pf_dT9; + + // interpolating Sc43 partition function + get_partition_function_cached(Sc43, tfactors.T9, pf_cache, Sc43_log_pf, dSc43_log_pf_dT9); + + amrex::Real Sc44_log_pf, dSc44_log_pf_dT9; + + // interpolating Sc44 partition function + get_partition_function_cached(Sc44, tfactors.T9, pf_cache, Sc44_log_pf, dSc44_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Sc43_log_pf - Sc44_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dSc43_log_pf_dT9 - dSc44_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 39.92619315911075 + -112.55475220636531 * tfactors.T9i + -0.575865 * tfactors.T913 + + 0.0565199 * tfactors.T9 + -0.0129886 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 112.55475220636531 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.575865 * tfactors.T923i + + 0.0565199 + (5.0/3.0) * -0.0129886 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc44_to_p_Ca43_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc44 --> p + Ca43 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc44_log_pf, dSc44_log_pf_dT9; + + // interpolating Sc44 partition function + get_partition_function_cached(Sc44, tfactors.T9, pf_cache, Sc44_log_pf, dSc44_log_pf_dT9); + + amrex::Real Ca43_log_pf, dCa43_log_pf_dT9; + + // interpolating Ca43 partition function + get_partition_function_cached(Ca43, tfactors.T9, pf_cache, Ca43_log_pf, dCa43_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ca43_log_pf - Sc44_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCa43_log_pf_dT9 - dSc44_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 59.09897188001764 + -77.70502614092365 * tfactors.T9i + -31.1437 * tfactors.T913i + 1.02701 * tfactors.T913 + + -1.81612 * tfactors.T9 + 0.197287 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 77.70502614092365 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.1437 * tfactors.T943i + (1.0/3.0) * 1.02701 * tfactors.T923i + + -1.81612 + (5.0/3.0) * 0.197287 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc44_to_He4_K40_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc44 --> He4 + K40 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc44_log_pf, dSc44_log_pf_dT9; + + // interpolating Sc44 partition function + get_partition_function_cached(Sc44, tfactors.T9, pf_cache, Sc44_log_pf, dSc44_log_pf_dT9); + + amrex::Real K40_log_pf, dK40_log_pf_dT9; + + // interpolating K40 partition function + get_partition_function_cached(K40, tfactors.T9, pf_cache, K40_log_pf, dK40_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + K40_log_pf - Sc44_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dK40_log_pf_dT9 - dSc44_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 81.50795567654234 + -77.81311997594705 * tfactors.T9i + -73.858 * tfactors.T913i + -1.10691 * tfactors.T913 + + -2.42921 * tfactors.T9 + 0.294 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 77.81311997594705 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -73.858 * tfactors.T943i + (1.0/3.0) * -1.10691 * tfactors.T923i + + -2.42921 + (5.0/3.0) * 0.294 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc45_to_n_Sc44_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc45 --> n + Sc44 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc44_log_pf, dSc44_log_pf_dT9; + + // interpolating Sc44 partition function + get_partition_function_cached(Sc44, tfactors.T9, pf_cache, Sc44_log_pf, dSc44_log_pf_dT9); + + amrex::Real Sc45_log_pf, dSc45_log_pf_dT9; + + // interpolating Sc45 partition function + get_partition_function_cached(Sc45, tfactors.T9, pf_cache, Sc45_log_pf, dSc45_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Sc44_log_pf - Sc45_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dSc44_log_pf_dT9 - dSc45_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 40.294255974733574 + -131.45154951542014 * tfactors.T9i + -1.31922 * tfactors.T913 + + 0.167096 * tfactors.T9 + -0.0191676 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 131.45154951542014 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.31922 * tfactors.T923i + + 0.167096 + (5.0/3.0) * -0.0191676 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc45_to_p_Ca44_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc45 --> p + Ca44 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ca44_log_pf, dCa44_log_pf_dT9; + + // interpolating Ca44 partition function + get_partition_function_cached(Ca44, tfactors.T9, pf_cache, Ca44_log_pf, dCa44_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc45_log_pf, dSc45_log_pf_dT9; + + // interpolating Sc45 partition function + get_partition_function_cached(Sc45, tfactors.T9, pf_cache, Sc45_log_pf, dSc45_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ca44_log_pf - Sc45_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCa44_log_pf_dT9 - dSc45_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 56.61571250373976 + -79.98496581622803 * tfactors.T9i + -31.1491 * tfactors.T913i + 0.402181 * tfactors.T913 + + -1.30287 * tfactors.T9 + 0.135535 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 79.98496581622803 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.1491 * tfactors.T943i + (1.0/3.0) * 0.402181 * tfactors.T923i + + -1.30287 + (5.0/3.0) * 0.135535 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc45_to_He4_K41_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc45 --> He4 + K41 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real K41_log_pf, dK41_log_pf_dT9; + + // interpolating K41 partition function + get_partition_function_cached(K41, tfactors.T9, pf_cache, K41_log_pf, dK41_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc45_log_pf, dSc45_log_pf_dT9; + + // interpolating Sc45 partition function + get_partition_function_cached(Sc45, tfactors.T9, pf_cache, Sc45_log_pf, dSc45_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + K41_log_pf - Sc45_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dK41_log_pf_dT9 - dSc45_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 79.06251686883743 + -92.11279903573805 * tfactors.T9i + -73.9127 * tfactors.T913i + 0.81435 * tfactors.T913 + + -2.90813 * tfactors.T9 + 0.335176 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 92.11279903573805 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -73.9127 * tfactors.T943i + (1.0/3.0) * 0.81435 * tfactors.T923i + + -2.90813 + (5.0/3.0) * 0.335176 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc46_to_n_Sc45_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc46 --> n + Sc45 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc45_log_pf, dSc45_log_pf_dT9; + + // interpolating Sc45 partition function + get_partition_function_cached(Sc45, tfactors.T9, pf_cache, Sc45_log_pf, dSc45_log_pf_dT9); + + amrex::Real Sc46_log_pf, dSc46_log_pf_dT9; + + // interpolating Sc46 partition function + get_partition_function_cached(Sc46, tfactors.T9, pf_cache, Sc46_log_pf, dSc46_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Sc45_log_pf - Sc46_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dSc45_log_pf_dT9 - dSc46_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 30.203481356824533 + -101.61606789744495 * tfactors.T9i + -6.18502 * tfactors.T913i + 16.5806 * tfactors.T913 + + -1.45949 * tfactors.T9 + 0.0995696 * tfactors.T953 + -5.03696 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 101.61606789744495 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -6.18502 * tfactors.T943i + (1.0/3.0) * 16.5806 * tfactors.T923i + + -1.45949 + (5.0/3.0) * 0.0995696 * tfactors.T923 + -5.03696 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc46_to_p_Ca45_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc46 --> p + Ca45 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ca45_log_pf, dCa45_log_pf_dT9; + + // interpolating Ca45 partition function + get_partition_function_cached(Ca45, tfactors.T9, pf_cache, Ca45_log_pf, dCa45_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc46_log_pf, dSc46_log_pf_dT9; + + // interpolating Sc46 partition function + get_partition_function_cached(Sc46, tfactors.T9, pf_cache, Sc46_log_pf, dSc46_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ca45_log_pf - Sc46_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCa45_log_pf_dT9 - dSc46_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 62.56049434495186 + -95.60232630423884 * tfactors.T9i + -31.1543 * tfactors.T913i + -6.97397 * tfactors.T913 + + -0.344025 * tfactors.T9 + 0.128258 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 95.60232630423884 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.1543 * tfactors.T943i + (1.0/3.0) * -6.97397 * tfactors.T923i + + -0.344025 + (5.0/3.0) * 0.128258 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc47_to_n_Sc46_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc47 --> n + Sc46 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc47_log_pf, dSc47_log_pf_dT9; + + // interpolating Sc47 partition function + get_partition_function_cached(Sc47, tfactors.T9, pf_cache, Sc47_log_pf, dSc47_log_pf_dT9); + + amrex::Real Sc46_log_pf, dSc46_log_pf_dT9; + + // interpolating Sc46 partition function + get_partition_function_cached(Sc46, tfactors.T9, pf_cache, Sc46_log_pf, dSc46_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Sc46_log_pf - Sc47_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dSc46_log_pf_dT9 - dSc47_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 41.54644483384965 + -123.56888192292669 * tfactors.T9i + 1.157 * tfactors.T913i + -3.39674 * tfactors.T913 + + 0.179575 * tfactors.T9 + -0.00780135 * tfactors.T953 + 2.283491 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 123.56888192292669 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.157 * tfactors.T943i + (1.0/3.0) * -3.39674 * tfactors.T923i + + 0.179575 + (5.0/3.0) * -0.00780135 * tfactors.T923 + 2.283491 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc47_to_p_Ca46_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc47 --> p + Ca46 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Sc47_log_pf, dSc47_log_pf_dT9; + + // interpolating Sc47 partition function + get_partition_function_cached(Sc47, tfactors.T9, pf_cache, Sc47_log_pf, dSc47_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca46_log_pf, dCa46_log_pf_dT9; + + // interpolating Ca46 partition function + get_partition_function_cached(Ca46, tfactors.T9, pf_cache, Ca46_log_pf, dCa46_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ca46_log_pf - Sc47_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCa46_log_pf_dT9 - dSc47_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 55.9760572379126 + -98.47792589477405 * tfactors.T9i + -31.1593 * tfactors.T913i + 0.979497 * tfactors.T913 + + -1.14947 * tfactors.T9 + 0.064347 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 98.47792589477405 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.1593 * tfactors.T943i + (1.0/3.0) * 0.979497 * tfactors.T923i + + -1.14947 + (5.0/3.0) * 0.064347 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc48_to_n_Sc47_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc48 --> n + Sc47 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc48_log_pf, dSc48_log_pf_dT9; + + // interpolating Sc48 partition function + get_partition_function_cached(Sc48, tfactors.T9, pf_cache, Sc48_log_pf, dSc48_log_pf_dT9); + + amrex::Real Sc47_log_pf, dSc47_log_pf_dT9; + + // interpolating Sc47 partition function + get_partition_function_cached(Sc47, tfactors.T9, pf_cache, Sc47_log_pf, dSc47_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Sc47_log_pf - Sc48_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dSc47_log_pf_dT9 - dSc48_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 37.53879443069108 + -95.61681468617815 * tfactors.T9i + 0.297987 * tfactors.T913i + 0.438296 * tfactors.T913 + + 0.0468739 * tfactors.T9 + -0.0255895 * tfactors.T953 + 1.272723 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 95.61681468617815 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 0.297987 * tfactors.T943i + (1.0/3.0) * 0.438296 * tfactors.T923i + + 0.0468739 + (5.0/3.0) * -0.0255895 * tfactors.T923 + 1.272723 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc48_to_p_Ca47_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc48 --> p + Ca47 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Sc48_log_pf, dSc48_log_pf_dT9; + + // interpolating Sc48 partition function + get_partition_function_cached(Sc48, tfactors.T9, pf_cache, Sc48_log_pf, dSc48_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca47_log_pf, dCa47_log_pf_dT9; + + // interpolating Ca47 partition function + get_partition_function_cached(Ca47, tfactors.T9, pf_cache, Ca47_log_pf, dCa47_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ca47_log_pf - Sc48_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCa47_log_pf_dT9 - dSc48_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 52.783725759367314 + -109.64263277946746 * tfactors.T9i + -31.164 * tfactors.T913i + -2.03245 * tfactors.T913 + + 0.0494826 * tfactors.T9 + 0.00201831 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 109.64263277946746 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.164 * tfactors.T943i + (1.0/3.0) * -2.03245 * tfactors.T923i + + 0.0494826 + (5.0/3.0) * 0.00201831 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc49_to_n_Sc48_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc49 --> n + Sc48 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc48_log_pf, dSc48_log_pf_dT9; + + // interpolating Sc48 partition function + get_partition_function_cached(Sc48, tfactors.T9, pf_cache, Sc48_log_pf, dSc48_log_pf_dT9); + + amrex::Real Sc49_log_pf, dSc49_log_pf_dT9; + + // interpolating Sc49 partition function + get_partition_function_cached(Sc49, tfactors.T9, pf_cache, Sc49_log_pf, dSc49_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Sc48_log_pf - Sc49_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dSc48_log_pf_dT9 - dSc49_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 41.912966708711004 + -117.57749225769055 * tfactors.T9i + 2.32858 * tfactors.T913i + -6.44325 * tfactors.T913 + + 0.608389 * tfactors.T9 + -0.0534156 * tfactors.T953 + 3.63196 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 117.57749225769055 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.32858 * tfactors.T943i + (1.0/3.0) * -6.44325 * tfactors.T923i + + 0.608389 + (5.0/3.0) * -0.0534156 * tfactors.T923 + 3.63196 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc49_to_p_Ca48_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc49 --> p + Ca48 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc49_log_pf, dSc49_log_pf_dT9; + + // interpolating Sc49 partition function + get_partition_function_cached(Sc49, tfactors.T9, pf_cache, Sc49_log_pf, dSc49_log_pf_dT9); + + amrex::Real Ca48_log_pf, dCa48_log_pf_dT9; + + // interpolating Ca48 partition function + get_partition_function_cached(Ca48, tfactors.T9, pf_cache, Ca48_log_pf, dCa48_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ca48_log_pf - Sc49_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCa48_log_pf_dT9 - dSc49_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 55.47235043431765 + -111.71092925333632 * tfactors.T9i + -31.1685 * tfactors.T913i + 2.20987 * tfactors.T913 + + -2.24347 * tfactors.T9 + 0.239302 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 111.71092925333632 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.1685 * tfactors.T943i + (1.0/3.0) * 2.20987 * tfactors.T923i + + -2.24347 + (5.0/3.0) * 0.239302 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti44_to_p_Sc43_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti44 --> p + Sc43 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti44_log_pf, dTi44_log_pf_dT9; + + // interpolating Ti44 partition function + get_partition_function_cached(Ti44, tfactors.T9, pf_cache, Ti44_log_pf, dTi44_log_pf_dT9); + + amrex::Real Sc43_log_pf, dSc43_log_pf_dT9; + + // interpolating Sc43 partition function + get_partition_function_cached(Sc43, tfactors.T9, pf_cache, Sc43_log_pf, dSc43_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Sc43_log_pf - Ti44_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dSc43_log_pf_dT9 - dTi44_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 62.61343220623275 + -100.37294370395585 * tfactors.T9i + -32.1734 * tfactors.T913i + -1.77078 * tfactors.T913 + + -2.21706 * tfactors.T9 + 0.298499 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 100.37294370395585 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -32.1734 * tfactors.T943i + (1.0/3.0) * -1.77078 * tfactors.T923i + + -2.21706 + (5.0/3.0) * 0.298499 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti44_to_He4_Ca40_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti44 --> He4 + Ca40 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca40_log_pf, dCa40_log_pf_dT9; + + // interpolating Ca40 partition function + get_partition_function_cached(Ca40, tfactors.T9, pf_cache, Ca40_log_pf, dCa40_log_pf_dT9); + + amrex::Real Ti44_log_pf, dTi44_log_pf_dT9; + + // interpolating Ti44 partition function + get_partition_function_cached(Ti44, tfactors.T9, pf_cache, Ti44_log_pf, dTi44_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ca40_log_pf - Ti44_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCa40_log_pf_dT9 - dTi44_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from chw0 + ln_set_rate = 78.7006646483486 + -59.49768581557457 * tfactors.T9i + -76.4273 * tfactors.T913i + 3.87451 * tfactors.T913 + + -3.61477 * tfactors.T9 + 0.367451 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 59.49768581557457 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -76.4273 * tfactors.T943i + (1.0/3.0) * 3.87451 * tfactors.T923i + + -3.61477 + (5.0/3.0) * 0.367451 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti45_to_n_Ti44_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti45 --> n + Ti44 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti44_log_pf, dTi44_log_pf_dT9; + + // interpolating Ti44 partition function + get_partition_function_cached(Ti44, tfactors.T9, pf_cache, Ti44_log_pf, dTi44_log_pf_dT9); + + amrex::Real Ti45_log_pf, dTi45_log_pf_dT9; + + // interpolating Ti45 partition function + get_partition_function_cached(Ti45, tfactors.T9, pf_cache, Ti45_log_pf, dTi45_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ti44_log_pf - Ti45_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dTi44_log_pf_dT9 - dTi45_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 36.864811289829866 + -110.62608129453406 * tfactors.T9i + 1.01203 * tfactors.T913 + + -0.201174 * tfactors.T9 + 0.00360954 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 110.62608129453406 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.01203 * tfactors.T923i + + -0.201174 + (5.0/3.0) * 0.00360954 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti45_to_p_Sc44_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti45 --> p + Sc44 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc44_log_pf, dSc44_log_pf_dT9; + + // interpolating Sc44 partition function + get_partition_function_cached(Sc44, tfactors.T9, pf_cache, Sc44_log_pf, dSc44_log_pf_dT9); + + amrex::Real Ti45_log_pf, dTi45_log_pf_dT9; + + // interpolating Ti45 partition function + get_partition_function_cached(Ti45, tfactors.T9, pf_cache, Ti45_log_pf, dTi45_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Sc44_log_pf - Ti45_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dSc44_log_pf_dT9 - dTi45_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 58.36615033695186 + -98.44427279212462 * tfactors.T9i + -32.179 * tfactors.T913i + 1.40668 * tfactors.T913 + + -2.02828 * tfactors.T9 + 0.230326 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 98.44427279212462 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -32.179 * tfactors.T943i + (1.0/3.0) * 1.40668 * tfactors.T923i + + -2.02828 + (5.0/3.0) * 0.230326 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti45_to_He4_Ca41_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti45 --> He4 + Ca41 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca41_log_pf, dCa41_log_pf_dT9; + + // interpolating Ca41 partition function + get_partition_function_cached(Ca41, tfactors.T9, pf_cache, Ca41_log_pf, dCa41_log_pf_dT9); + + amrex::Real Ti45_log_pf, dTi45_log_pf_dT9; + + // interpolating Ti45 partition function + get_partition_function_cached(Ti45, tfactors.T9, pf_cache, Ti45_log_pf, dTi45_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ca41_log_pf - Ti45_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCa41_log_pf_dT9 - dTi45_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 79.58456857742877 + -73.07720008533106 * tfactors.T9i + -76.4839 * tfactors.T913i + 3.03748 * tfactors.T913 + + -2.59814 * tfactors.T9 + 0.210582 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 73.07720008533106 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -76.4839 * tfactors.T943i + (1.0/3.0) * 3.03748 * tfactors.T923i + + -2.59814 + (5.0/3.0) * 0.210582 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti46_to_n_Ti45_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti46 --> n + Ti45 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti46_log_pf, dTi46_log_pf_dT9; + + // interpolating Ti46 partition function + get_partition_function_cached(Ti46, tfactors.T9, pf_cache, Ti46_log_pf, dTi46_log_pf_dT9); + + amrex::Real Ti45_log_pf, dTi45_log_pf_dT9; + + // interpolating Ti45 partition function + get_partition_function_cached(Ti45, tfactors.T9, pf_cache, Ti45_log_pf, dTi45_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ti45_log_pf - Ti46_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dTi45_log_pf_dT9 - dTi46_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 42.907047253582405 + -153.05533276685685 * tfactors.T9i + -1.55633 * tfactors.T913 + + 0.300783 * tfactors.T9 + -0.0373696 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 153.05533276685685 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.55633 * tfactors.T923i + + 0.300783 + (5.0/3.0) * -0.0373696 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti46_to_p_Sc45_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti46 --> p + Sc45 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ti46_log_pf, dTi46_log_pf_dT9; + + // interpolating Ti46 partition function + get_partition_function_cached(Ti46, tfactors.T9, pf_cache, Ti46_log_pf, dTi46_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc45_log_pf, dSc45_log_pf_dT9; + + // interpolating Sc45 partition function + get_partition_function_cached(Sc45, tfactors.T9, pf_cache, Sc45_log_pf, dSc45_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Sc45_log_pf - Ti46_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dSc45_log_pf_dT9 - dTi46_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 60.610141615800686 + -120.04805604356135 * tfactors.T9i + -32.1843 * tfactors.T913i + 1.38642 * tfactors.T913 + + -1.64811 * tfactors.T9 + 0.157323 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 120.04805604356135 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -32.1843 * tfactors.T943i + (1.0/3.0) * 1.38642 * tfactors.T923i + + -1.64811 + (5.0/3.0) * 0.157323 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti46_to_He4_Ca42_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti46 --> He4 + Ca42 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ti46_log_pf, dTi46_log_pf_dT9; + + // interpolating Ti46 partition function + get_partition_function_cached(Ti46, tfactors.T9, pf_cache, Ti46_log_pf, dTi46_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca42_log_pf, dCa42_log_pf_dT9; + + // interpolating Ca42 partition function + get_partition_function_cached(Ca42, tfactors.T9, pf_cache, Ca42_log_pf, dCa42_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ca42_log_pf - Ti46_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCa42_log_pf_dT9 - dTi46_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 79.79033156127323 + -92.90456370262497 * tfactors.T9i + -76.5379 * tfactors.T913i + 2.80099 * tfactors.T913 + + -2.34788 * tfactors.T9 + 0.150014 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 92.90456370262497 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -76.5379 * tfactors.T943i + (1.0/3.0) * 2.80099 * tfactors.T923i + + -2.34788 + (5.0/3.0) * 0.150014 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti47_to_n_Ti46_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti47 --> n + Ti46 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti47_log_pf, dTi47_log_pf_dT9; + + // interpolating Ti47 partition function + get_partition_function_cached(Ti47, tfactors.T9, pf_cache, Ti47_log_pf, dTi47_log_pf_dT9); + + amrex::Real Ti46_log_pf, dTi46_log_pf_dT9; + + // interpolating Ti46 partition function + get_partition_function_cached(Ti46, tfactors.T9, pf_cache, Ti46_log_pf, dTi46_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ti46_log_pf - Ti47_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dTi46_log_pf_dT9 - dTi47_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 34.179398450888776 + -102.9675231527598 * tfactors.T9i + -7.30817 * tfactors.T913i + 10.713 * tfactors.T913 + + -0.537251 * tfactors.T9 + 0.0187304 * tfactors.T953 + -3.88893 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 102.9675231527598 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -7.30817 * tfactors.T943i + (1.0/3.0) * 10.713 * tfactors.T923i + + -0.537251 + (5.0/3.0) * 0.0187304 * tfactors.T923 + -3.88893 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti47_to_p_Sc46_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti47 --> p + Sc46 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ti47_log_pf, dTi47_log_pf_dT9; + + // interpolating Ti47 partition function + get_partition_function_cached(Ti47, tfactors.T9, pf_cache, Ti47_log_pf, dTi47_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc46_log_pf, dSc46_log_pf_dT9; + + // interpolating Sc46 partition function + get_partition_function_cached(Sc46, tfactors.T9, pf_cache, Sc46_log_pf, dSc46_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Sc46_log_pf - Ti47_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dSc46_log_pf_dT9 - dTi47_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 158.60557870986494 + -126.94613239887623 * tfactors.T9i + 212.079 * tfactors.T913i + -358.599 * tfactors.T913 + + 19.2793 * tfactors.T9 + -1.01913 * tfactors.T953 + 177.754 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 126.94613239887623 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 212.079 * tfactors.T943i + (1.0/3.0) * -358.599 * tfactors.T923i + + 19.2793 + (5.0/3.0) * -1.01913 * tfactors.T923 + 177.754 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti47_to_He4_Ca43_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti47 --> He4 + Ca43 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ti47_log_pf, dTi47_log_pf_dT9; + + // interpolating Ti47 partition function + get_partition_function_cached(Ti47, tfactors.T9, pf_cache, Ti47_log_pf, dTi47_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca43_log_pf, dCa43_log_pf_dT9; + + // interpolating Ca43 partition function + get_partition_function_cached(Ca43, tfactors.T9, pf_cache, Ca43_log_pf, dCa43_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ca43_log_pf - Ti47_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCa43_log_pf_dT9 - dTi47_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 85.71840748741687 + -103.90286179750106 * tfactors.T9i + -76.5897 * tfactors.T913i + -7.46117 * tfactors.T913 + + -0.574977 * tfactors.T9 + 0.115742 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 103.90286179750106 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -76.5897 * tfactors.T943i + (1.0/3.0) * -7.46117 * tfactors.T923i + + -0.574977 + (5.0/3.0) * 0.115742 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti48_to_n_Ti47_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti48 --> n + Ti47 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti47_log_pf, dTi47_log_pf_dT9; + + // interpolating Ti47 partition function + get_partition_function_cached(Ti47, tfactors.T9, pf_cache, Ti47_log_pf, dTi47_log_pf_dT9); + + amrex::Real Ti48_log_pf, dTi48_log_pf_dT9; + + // interpolating Ti48 partition function + get_partition_function_cached(Ti48, tfactors.T9, pf_cache, Ti48_log_pf, dTi48_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ti47_log_pf - Ti48_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dTi47_log_pf_dT9 - dTi48_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 40.361050641751746 + -134.90358951454726 * tfactors.T9i + -2.34945 * tfactors.T913i + 3.2238 * tfactors.T913 + + -0.0455487 * tfactors.T9 + -0.0153771 * tfactors.T953 + -0.60785 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 134.90358951454726 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.34945 * tfactors.T943i + (1.0/3.0) * 3.2238 * tfactors.T923i + + -0.0455487 + (5.0/3.0) * -0.0153771 * tfactors.T923 + -0.60785 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti48_to_p_Sc47_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti48 --> p + Sc47 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Sc47_log_pf, dSc47_log_pf_dT9; + + // interpolating Sc47 partition function + get_partition_function_cached(Sc47, tfactors.T9, pf_cache, Sc47_log_pf, dSc47_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti48_log_pf, dTi48_log_pf_dT9; + + // interpolating Ti48 partition function + get_partition_function_cached(Ti48, tfactors.T9, pf_cache, Ti48_log_pf, dTi48_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Sc47_log_pf - Ti48_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dSc47_log_pf_dT9 - dTi48_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 76.19018451776704 + -137.88353479051844 * tfactors.T9i + 155.189 * tfactors.T913i + -211.783 * tfactors.T913 + + 9.70286 * tfactors.T9 + -0.48757 * tfactors.T953 + 118.807 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 137.88353479051844 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 155.189 * tfactors.T943i + (1.0/3.0) * -211.783 * tfactors.T923i + + 9.70286 + (5.0/3.0) * -0.48757 * tfactors.T923 + 118.807 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti48_to_He4_Ca44_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti48 --> He4 + Ca44 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ca44_log_pf, dCa44_log_pf_dT9; + + // interpolating Ca44 partition function + get_partition_function_cached(Ca44, tfactors.T9, pf_cache, Ca44_log_pf, dCa44_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti48_log_pf, dTi48_log_pf_dT9; + + // interpolating Ti48 partition function + get_partition_function_cached(Ti48, tfactors.T9, pf_cache, Ti48_log_pf, dTi48_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ca44_log_pf - Ti48_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCa44_log_pf_dT9 - dTi48_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 80.88024277815715 + -109.6530165719398 * tfactors.T9i + -76.6391 * tfactors.T913i + 2.70825 * tfactors.T913 + + -4.48808 * tfactors.T9 + 0.582872 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 109.6530165719398 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -76.6391 * tfactors.T943i + (1.0/3.0) * 2.70825 * tfactors.T923i + + -4.48808 + (5.0/3.0) * 0.582872 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti49_to_n_Ti48_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti49 --> n + Ti48 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti48_log_pf, dTi48_log_pf_dT9; + + // interpolating Ti48 partition function + get_partition_function_cached(Ti48, tfactors.T9, pf_cache, Ti48_log_pf, dTi48_log_pf_dT9); + + amrex::Real Ti49_log_pf, dTi49_log_pf_dT9; + + // interpolating Ti49 partition function + get_partition_function_cached(Ti49, tfactors.T9, pf_cache, Ti49_log_pf, dTi49_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ti48_log_pf - Ti49_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dTi48_log_pf_dT9 - dTi49_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 4.829003829748398 + -94.16787221402016 * tfactors.T9i + -32.4895 * tfactors.T913i + 67.9234 * tfactors.T913 + + -4.27126 * tfactors.T9 + 0.230364 * tfactors.T953 + -27.9521 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 94.16787221402016 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -32.4895 * tfactors.T943i + (1.0/3.0) * 67.9234 * tfactors.T923i + + -4.27126 + (5.0/3.0) * 0.230364 * tfactors.T923 + -27.9521 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti49_to_p_Sc48_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti49 --> p + Sc48 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Sc48_log_pf, dSc48_log_pf_dT9; + + // interpolating Sc48 partition function + get_partition_function_cached(Sc48, tfactors.T9, pf_cache, Sc48_log_pf, dSc48_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti49_log_pf, dTi49_log_pf_dT9; + + // interpolating Ti49 partition function + get_partition_function_cached(Ti49, tfactors.T9, pf_cache, Ti49_log_pf, dTi49_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Sc48_log_pf - Ti49_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dSc48_log_pf_dT9 - dTi49_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 125.35199391682436 + -137.19269641836047 * tfactors.T9i + 198.826 * tfactors.T913i + -313.844 * tfactors.T913 + + 17.0251 * tfactors.T9 + -0.945704 * tfactors.T953 + 160.904 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 137.19269641836047 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 198.826 * tfactors.T943i + (1.0/3.0) * -313.844 * tfactors.T923i + + 17.0251 + (5.0/3.0) * -0.945704 * tfactors.T923 + 160.904 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti49_to_He4_Ca45_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti49 --> He4 + Ca45 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ca45_log_pf, dCa45_log_pf_dT9; + + // interpolating Ca45 partition function + get_partition_function_cached(Ca45, tfactors.T9, pf_cache, Ca45_log_pf, dCa45_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti49_log_pf, dTi49_log_pf_dT9; + + // interpolating Ti49 partition function + get_partition_function_cached(Ti49, tfactors.T9, pf_cache, Ti49_log_pf, dTi49_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ca45_log_pf - Ti49_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCa45_log_pf_dT9 - dTi49_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 82.62656709229313 + -118.09599977652587 * tfactors.T9i + -76.6866 * tfactors.T913i + -9.95306 * tfactors.T913 + + 1.72367 * tfactors.T9 + -0.226004 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 118.09599977652587 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -76.6866 * tfactors.T943i + (1.0/3.0) * -9.95306 * tfactors.T923i + + 1.72367 + (5.0/3.0) * -0.226004 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti50_to_n_Ti49_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti50 --> n + Ti49 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti49_log_pf, dTi49_log_pf_dT9; + + // interpolating Ti49 partition function + get_partition_function_cached(Ti49, tfactors.T9, pf_cache, Ti49_log_pf, dTi49_log_pf_dT9); + + amrex::Real Ti50_log_pf, dTi50_log_pf_dT9; + + // interpolating Ti50 partition function + get_partition_function_cached(Ti50, tfactors.T9, pf_cache, Ti50_log_pf, dTi50_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ti49_log_pf - Ti50_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dTi49_log_pf_dT9 - dTi50_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 39.40916412972133 + -126.91493739627121 * tfactors.T9i + -2.8384 * tfactors.T913i + 4.10103 * tfactors.T913 + + -0.0325714 * tfactors.T9 + -0.0305035 * tfactors.T953 + -0.8012000000000001 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 126.91493739627121 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.8384 * tfactors.T943i + (1.0/3.0) * 4.10103 * tfactors.T923i + + -0.0325714 + (5.0/3.0) * -0.0305035 * tfactors.T923 + -0.8012000000000001 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti50_to_p_Sc49_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti50 --> p + Sc49 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc49_log_pf, dSc49_log_pf_dT9; + + // interpolating Sc49 partition function + get_partition_function_cached(Sc49, tfactors.T9, pf_cache, Sc49_log_pf, dSc49_log_pf_dT9); + + amrex::Real Ti50_log_pf, dTi50_log_pf_dT9; + + // interpolating Ti50 partition function + get_partition_function_cached(Ti50, tfactors.T9, pf_cache, Ti50_log_pf, dTi50_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Sc49_log_pf - Ti50_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dSc49_log_pf_dT9 - dTi50_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 132.71759133783468 + -146.52780965691952 * tfactors.T9i + 195.561 * tfactors.T913i + -317.373 * tfactors.T913 + + 17.5352 * tfactors.T9 + -0.999861 * tfactors.T953 + 160.884 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 146.52780965691952 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 195.561 * tfactors.T943i + (1.0/3.0) * -317.373 * tfactors.T923i + + 17.5352 + (5.0/3.0) * -0.999861 * tfactors.T923 + 160.884 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti50_to_He4_Ca46_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti50 --> He4 + Ca46 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti50_log_pf, dTi50_log_pf_dT9; + + // interpolating Ti50 partition function + get_partition_function_cached(Ti50, tfactors.T9, pf_cache, Ti50_log_pf, dTi50_log_pf_dT9); + + amrex::Real Ca46_log_pf, dCa46_log_pf_dT9; + + // interpolating Ca46 partition function + get_partition_function_cached(Ca46, tfactors.T9, pf_cache, Ca46_log_pf, dCa46_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ca46_log_pf - Ti50_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCa46_log_pf_dT9 - dTi50_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 87.87404928112555 + -124.36777764039839 * tfactors.T9i + -76.732 * tfactors.T913i + -13.6546 * tfactors.T913 + + 1.61796 * tfactors.T9 + -0.159 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 124.36777764039839 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -76.732 * tfactors.T943i + (1.0/3.0) * -13.6546 * tfactors.T923i + + 1.61796 + (5.0/3.0) * -0.159 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti51_to_n_Ti50_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti51 --> n + Ti50 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti50_log_pf, dTi50_log_pf_dT9; + + // interpolating Ti50 partition function + get_partition_function_cached(Ti50, tfactors.T9, pf_cache, Ti50_log_pf, dTi50_log_pf_dT9); + + amrex::Real Ti51_log_pf, dTi51_log_pf_dT9; + + // interpolating Ti51 partition function + get_partition_function_cached(Ti51, tfactors.T9, pf_cache, Ti51_log_pf, dTi51_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ti50_log_pf - Ti51_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dTi50_log_pf_dT9 - dTi51_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 62.71588380967143 + -73.95898407513234 * tfactors.T9i + 7.07296 * tfactors.T913i + -37.8514 * tfactors.T913 + + 4.03187 * tfactors.T9 + -0.339274 * tfactors.T953 + 12.9094 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 73.95898407513234 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 7.07296 * tfactors.T943i + (1.0/3.0) * -37.8514 * tfactors.T923i + + 4.03187 + (5.0/3.0) * -0.339274 * tfactors.T923 + 12.9094 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti51_to_He4_Ca47_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti51 --> He4 + Ca47 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca47_log_pf, dCa47_log_pf_dT9; + + // interpolating Ca47 partition function + get_partition_function_cached(Ca47, tfactors.T9, pf_cache, Ca47_log_pf, dCa47_log_pf_dT9); + + amrex::Real Ti51_log_pf, dTi51_log_pf_dT9; + + // interpolating Ti51 partition function + get_partition_function_cached(Ti51, tfactors.T9, pf_cache, Ti51_log_pf, dTi51_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ca47_log_pf - Ti51_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCa47_log_pf_dT9 - dTi51_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 76.34270718156061 + -113.87764139404605 * tfactors.T9i + -76.7758 * tfactors.T913i + -1.97823 * tfactors.T913 + + -0.552991 * tfactors.T9 + 0.0318371 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 113.87764139404605 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -76.7758 * tfactors.T943i + (1.0/3.0) * -1.97823 * tfactors.T923i + + -0.552991 + (5.0/3.0) * 0.0318371 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V46_to_p_Ti45_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V46 --> p + Ti45 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real V46_log_pf, dV46_log_pf_dT9; + + // interpolating V46 partition function + get_partition_function_cached(V46, tfactors.T9, pf_cache, V46_log_pf, dV46_log_pf_dT9); + + amrex::Real Ti45_log_pf, dTi45_log_pf_dT9; + + // interpolating Ti45 partition function + get_partition_function_cached(Ti45, tfactors.T9, pf_cache, Ti45_log_pf, dTi45_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ti45_log_pf - V46_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dTi45_log_pf_dT9 - dV46_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 63.21835285453139 + -62.13721694532568 * tfactors.T9i + -33.1981 * tfactors.T913i + -1.66837 * tfactors.T913 + + -2.50285 * tfactors.T9 + 0.349152 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 62.13721694532568 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -33.1981 * tfactors.T943i + (1.0/3.0) * -1.66837 * tfactors.T923i + + -2.50285 + (5.0/3.0) * 0.349152 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V47_to_n_V46_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V47 --> n + V46 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real V46_log_pf, dV46_log_pf_dT9; + + // interpolating V46 partition function + get_partition_function_cached(V46, tfactors.T9, pf_cache, V46_log_pf, dV46_log_pf_dT9); + + amrex::Real V47_log_pf, dV47_log_pf_dT9; + + // interpolating V47 partition function + get_partition_function_cached(V47, tfactors.T9, pf_cache, V47_log_pf, dV47_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + V46_log_pf - V47_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dV46_log_pf_dT9 - dV47_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 38.04950790813785 + -150.88760878174838 * tfactors.T9i + -0.692996 * tfactors.T913 + + 0.316873 * tfactors.T9 + -0.0417235 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 150.88760878174838 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.692996 * tfactors.T923i + + 0.316873 + (5.0/3.0) * -0.0417235 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V47_to_p_Ti46_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V47 --> p + Ti46 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ti46_log_pf, dTi46_log_pf_dT9; + + // interpolating Ti46 partition function + get_partition_function_cached(Ti46, tfactors.T9, pf_cache, Ti46_log_pf, dTi46_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real V47_log_pf, dV47_log_pf_dT9; + + // interpolating V47 partition function + get_partition_function_cached(V47, tfactors.T9, pf_cache, V47_log_pf, dV47_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ti46_log_pf - V47_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dTi46_log_pf_dT9 - dV47_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 58.07481350908684 + -59.96949296023878 * tfactors.T9i + -33.2034 * tfactors.T913i + 0.505619 * tfactors.T913 + + -1.73654 * tfactors.T9 + 0.207342 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 59.96949296023878 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -33.2034 * tfactors.T943i + (1.0/3.0) * 0.505619 * tfactors.T923i + + -1.73654 + (5.0/3.0) * 0.207342 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V47_to_He4_Sc43_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V47 --> He4 + Sc43 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real V47_log_pf, dV47_log_pf_dT9; + + // interpolating V47 partition function + get_partition_function_cached(V47, tfactors.T9, pf_cache, V47_log_pf, dV47_log_pf_dT9); + + amrex::Real Sc43_log_pf, dSc43_log_pf_dT9; + + // interpolating Sc43 partition function + get_partition_function_cached(Sc43, tfactors.T9, pf_cache, Sc43_log_pf, dSc43_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Sc43_log_pf - V47_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dSc43_log_pf_dT9 - dV47_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 84.67304382470803 + -95.66632297040007 * tfactors.T9i + -79.122 * tfactors.T913i + -7.07006 * tfactors.T913 + + 0.424183 * tfactors.T9 + -0.0665231 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 95.66632297040007 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -79.122 * tfactors.T943i + (1.0/3.0) * -7.07006 * tfactors.T923i + + 0.424183 + (5.0/3.0) * -0.0665231 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V48_to_n_V47_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V48 --> n + V47 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real V47_log_pf, dV47_log_pf_dT9; + + // interpolating V47 partition function + get_partition_function_cached(V47, tfactors.T9, pf_cache, V47_log_pf, dV47_log_pf_dT9); + + amrex::Real V48_log_pf, dV48_log_pf_dT9; + + // interpolating V48 partition function + get_partition_function_cached(V48, tfactors.T9, pf_cache, V48_log_pf, dV48_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + V47_log_pf - V48_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dV47_log_pf_dT9 - dV48_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 40.436203741894104 + -122.33770911835394 * tfactors.T9i + -2.40159 * tfactors.T913 + + 0.594573 * tfactors.T9 + -0.0682896 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 122.33770911835394 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.40159 * tfactors.T923i + + 0.594573 + (5.0/3.0) * -0.0682896 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V48_to_p_Ti47_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V48 --> p + Ti47 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ti47_log_pf, dTi47_log_pf_dT9; + + // interpolating Ti47 partition function + get_partition_function_cached(Ti47, tfactors.T9, pf_cache, Ti47_log_pf, dTi47_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real V48_log_pf, dV48_log_pf_dT9; + + // interpolating V48 partition function + get_partition_function_cached(V48, tfactors.T9, pf_cache, V48_log_pf, dV48_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ti47_log_pf - V48_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dTi47_log_pf_dT9 - dV48_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 58.48321880009215 + -79.2514442258329 * tfactors.T9i + -33.2084 * tfactors.T913i + 1.06738 * tfactors.T913 + + -1.55342 * tfactors.T9 + 0.159225 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 79.2514442258329 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -33.2084 * tfactors.T943i + (1.0/3.0) * 1.06738 * tfactors.T923i + + -1.55342 + (5.0/3.0) * 0.159225 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V48_to_He4_Sc44_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V48 --> He4 + Sc44 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc44_log_pf, dSc44_log_pf_dT9; + + // interpolating Sc44 partition function + get_partition_function_cached(Sc44, tfactors.T9, pf_cache, Sc44_log_pf, dSc44_log_pf_dT9); + + amrex::Real V48_log_pf, dV48_log_pf_dT9; + + // interpolating V48 partition function + get_partition_function_cached(V48, tfactors.T9, pf_cache, V48_log_pf, dV48_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Sc44_log_pf - V48_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dSc44_log_pf_dT9 - dV48_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 81.00775440749138 + -105.4492798823887 * tfactors.T9i + -79.1731 * tfactors.T913i + -4.22583 * tfactors.T913 + + -0.427863 * tfactors.T9 + 0.0235817 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 105.4492798823887 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -79.1731 * tfactors.T943i + (1.0/3.0) * -4.22583 * tfactors.T923i + + -0.427863 + (5.0/3.0) * 0.0235817 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V49_to_n_V48_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V49 --> n + V48 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real V49_log_pf, dV49_log_pf_dT9; + + // interpolating V49 partition function + get_partition_function_cached(V49, tfactors.T9, pf_cache, V49_log_pf, dV49_log_pf_dT9); + + amrex::Real V48_log_pf, dV48_log_pf_dT9; + + // interpolating V48 partition function + get_partition_function_cached(V48, tfactors.T9, pf_cache, V48_log_pf, dV48_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + V48_log_pf - V49_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dV48_log_pf_dT9 - dV49_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 41.69782013403119 + -134.0962191953525 * tfactors.T9i + -0.917026 * tfactors.T913 + + -0.109162 * tfactors.T9 + 0.0127488 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 134.0962191953525 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.917026 * tfactors.T923i + + -0.109162 + (5.0/3.0) * 0.0127488 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V49_to_p_Ti48_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V49 --> p + Ti48 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ti48_log_pf, dTi48_log_pf_dT9; + + // interpolating Ti48 partition function + get_partition_function_cached(Ti48, tfactors.T9, pf_cache, Ti48_log_pf, dTi48_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real V49_log_pf, dV49_log_pf_dT9; + + // interpolating V49 partition function + get_partition_function_cached(V49, tfactors.T9, pf_cache, V49_log_pf, dV49_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ti48_log_pf - V49_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dTi48_log_pf_dT9 - dV49_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 56.9054882923716 + -78.42589880663807 * tfactors.T9i + -33.2133 * tfactors.T913i + 0.564373 * tfactors.T913 + + -1.18789 * tfactors.T9 + 0.110892 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 78.42589880663807 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -33.2133 * tfactors.T943i + (1.0/3.0) * 0.564373 * tfactors.T923i + + -1.18789 + (5.0/3.0) * 0.110892 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V49_to_He4_Sc45_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V49 --> He4 + Sc45 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real V49_log_pf, dV49_log_pf_dT9; + + // interpolating V49 partition function + get_partition_function_cached(V49, tfactors.T9, pf_cache, V49_log_pf, dV49_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc45_log_pf, dSc45_log_pf_dT9; + + // interpolating Sc45 partition function + get_partition_function_cached(Sc45, tfactors.T9, pf_cache, Sc45_log_pf, dSc45_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Sc45_log_pf - V49_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dSc45_log_pf_dT9 - dV49_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 85.108818566789 + -108.09394956232106 * tfactors.T9i + -79.222 * tfactors.T913i + -5.31022 * tfactors.T913 + + -1.37323 * tfactors.T9 + 0.21679 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 108.09394956232106 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -79.222 * tfactors.T943i + (1.0/3.0) * -5.31022 * tfactors.T923i + + -1.37323 + (5.0/3.0) * 0.21679 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V50_to_n_V49_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V50 --> n + V49 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real V50_log_pf, dV50_log_pf_dT9; + + // interpolating V50 partition function + get_partition_function_cached(V50, tfactors.T9, pf_cache, V50_log_pf, dV50_log_pf_dT9); + + amrex::Real V49_log_pf, dV49_log_pf_dT9; + + // interpolating V49 partition function + get_partition_function_cached(V49, tfactors.T9, pf_cache, V49_log_pf, dV49_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + V49_log_pf - V50_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dV49_log_pf_dT9 - dV50_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 40.756029088555074 + -108.29751868828447 * tfactors.T9i + -1.8725 * tfactors.T913 + + 0.291609 * tfactors.T9 + -0.0370216 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 108.29751868828447 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.8725 * tfactors.T923i + + 0.291609 + (5.0/3.0) * -0.0370216 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V50_to_p_Ti49_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V50 --> p + Ti49 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real V50_log_pf, dV50_log_pf_dT9; + + // interpolating V50 partition function + get_partition_function_cached(V50, tfactors.T9, pf_cache, V50_log_pf, dV50_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti49_log_pf, dTi49_log_pf_dT9; + + // interpolating Ti49 partition function + get_partition_function_cached(Ti49, tfactors.T9, pf_cache, Ti49_log_pf, dTi49_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ti49_log_pf - V50_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dTi49_log_pf_dT9 - dV50_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 57.21351355117828 + -92.23504328088076 * tfactors.T9i + -33.2179 * tfactors.T913i + 3.05321 * tfactors.T913 + + -2.48884 * tfactors.T9 + 0.254524 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 92.23504328088076 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -33.2179 * tfactors.T943i + (1.0/3.0) * 3.05321 * tfactors.T923i + + -2.48884 + (5.0/3.0) * 0.254524 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V50_to_He4_Sc46_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V50 --> He4 + Sc46 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real V50_log_pf, dV50_log_pf_dT9; + + // interpolating V50 partition function + get_partition_function_cached(V50, tfactors.T9, pf_cache, V50_log_pf, dV50_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc46_log_pf, dSc46_log_pf_dT9; + + // interpolating Sc46 partition function + get_partition_function_cached(Sc46, tfactors.T9, pf_cache, Sc46_log_pf, dSc46_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Sc46_log_pf - V50_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dSc46_log_pf_dT9 - dV50_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = -928.7209137014804 + -98.99871675316058 * tfactors.T9i + -1681.31 * tfactors.T913i + 2743.27 * tfactors.T913 + + -162.405 * tfactors.T9 + 9.24681 * tfactors.T953 + -1291.28 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 98.99871675316058 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1681.31 * tfactors.T943i + (1.0/3.0) * 2743.27 * tfactors.T923i + + -162.405 + (5.0/3.0) * 9.24681 * tfactors.T923 + -1291.28 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V51_to_n_V50_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V51 --> n + V50 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real V50_log_pf, dV50_log_pf_dT9; + + // interpolating V50 partition function + get_partition_function_cached(V50, tfactors.T9, pf_cache, V50_log_pf, dV50_log_pf_dT9); + + amrex::Real V51_log_pf, dV51_log_pf_dT9; + + // interpolating V51 partition function + get_partition_function_cached(V51, tfactors.T9, pf_cache, V51_log_pf, dV51_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + V50_log_pf - V51_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dV50_log_pf_dT9 - dV51_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 50.660334796338674 + -128.3622665711325 * tfactors.T9i + 10.9535 * tfactors.T913i + -23.1254 * tfactors.T913 + + 1.53091 * tfactors.T9 + -0.0992995 * tfactors.T953 + 11.12203 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 128.3622665711325 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 10.9535 * tfactors.T943i + (1.0/3.0) * -23.1254 * tfactors.T923i + + 1.53091 + (5.0/3.0) * -0.0992995 * tfactors.T923 + 11.12203 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V51_to_p_Ti50_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V51 --> p + Ti50 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real V51_log_pf, dV51_log_pf_dT9; + + // interpolating V51 partition function + get_partition_function_cached(V51, tfactors.T9, pf_cache, V51_log_pf, dV51_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti50_log_pf, dTi50_log_pf_dT9; + + // interpolating Ti50 partition function + get_partition_function_cached(Ti50, tfactors.T9, pf_cache, Ti50_log_pf, dTi50_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ti50_log_pf - V51_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dTi50_log_pf_dT9 - dV51_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 56.742184217795625 + -93.53486535574204 * tfactors.T9i + -33.2224 * tfactors.T913i + 0.579407 * tfactors.T913 + + -0.949378 * tfactors.T9 + 0.0567069 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 93.53486535574204 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -33.2224 * tfactors.T943i + (1.0/3.0) * 0.579407 * tfactors.T923i + + -0.949378 + (5.0/3.0) * 0.0567069 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V51_to_He4_Sc47_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V51 --> He4 + Sc47 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Sc47_log_pf, dSc47_log_pf_dT9; + + // interpolating Sc47 partition function + get_partition_function_cached(Sc47, tfactors.T9, pf_cache, Sc47_log_pf, dSc47_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real V51_log_pf, dV51_log_pf_dT9; + + // interpolating V51 partition function + get_partition_function_cached(V51, tfactors.T9, pf_cache, V51_log_pf, dV51_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Sc47_log_pf - V51_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dSc47_log_pf_dT9 - dV51_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = -1013.0886237389914 + -104.13101710139517 * tfactors.T9i + -1682.84 * tfactors.T913i + 2838.54 * tfactors.T913 + + -171.874 * tfactors.T9 + 9.93236 * tfactors.T953 + -1315.92 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 104.13101710139517 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1682.84 * tfactors.T943i + (1.0/3.0) * 2838.54 * tfactors.T923i + + -171.874 + (5.0/3.0) * 9.93236 * tfactors.T923 + -1315.92 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V52_to_n_V51_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V52 --> n + V51 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real V51_log_pf, dV51_log_pf_dT9; + + // interpolating V51 partition function + get_partition_function_cached(V51, tfactors.T9, pf_cache, V51_log_pf, dV51_log_pf_dT9); + + amrex::Real V52_log_pf, dV52_log_pf_dT9; + + // interpolating V52 partition function + get_partition_function_cached(V52, tfactors.T9, pf_cache, V52_log_pf, dV52_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + V51_log_pf - V52_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dV51_log_pf_dT9 - dV52_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 27.268357904797398 + -84.83436117241025 * tfactors.T9i + -4.14102 * tfactors.T913i + 17.4073 * tfactors.T913 + + -1.59715 * tfactors.T9 + 0.114181 * tfactors.T953 + -4.43987 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 84.83436117241025 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -4.14102 * tfactors.T943i + (1.0/3.0) * 17.4073 * tfactors.T923i + + -1.59715 + (5.0/3.0) * 0.114181 * tfactors.T923 + -4.43987 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V52_to_p_Ti51_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V52 --> p + Ti51 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real V52_log_pf, dV52_log_pf_dT9; + + // interpolating V52 partition function + get_partition_function_cached(V52, tfactors.T9, pf_cache, V52_log_pf, dV52_log_pf_dT9); + + amrex::Real Ti51_log_pf, dTi51_log_pf_dT9; + + // interpolating Ti51 partition function + get_partition_function_cached(Ti51, tfactors.T9, pf_cache, Ti51_log_pf, dTi51_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ti51_log_pf - V52_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dTi51_log_pf_dT9 - dV52_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 153.48253831292158 + -110.26825092301993 * tfactors.T9i + 220.953 * tfactors.T913i + -370.119 * tfactors.T913 + + 21.0839 * tfactors.T9 + -1.22336 * tfactors.T953 + 183.832 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 110.26825092301993 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 220.953 * tfactors.T943i + (1.0/3.0) * -370.119 * tfactors.T923i + + 21.0839 + (5.0/3.0) * -1.22336 * tfactors.T923 + 183.832 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V52_to_He4_Sc48_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V52 --> He4 + Sc48 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Sc48_log_pf, dSc48_log_pf_dT9; + + // interpolating Sc48 partition function + get_partition_function_cached(Sc48, tfactors.T9, pf_cache, Sc48_log_pf, dSc48_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real V52_log_pf, dV52_log_pf_dT9; + + // interpolating V52 partition function + get_partition_function_cached(V52, tfactors.T9, pf_cache, V52_log_pf, dV52_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Sc48_log_pf - V52_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dSc48_log_pf_dT9 - dV52_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = -931.7231802648852 + -93.5771795376273 * tfactors.T9i + -1642.74 * tfactors.T913i + 2707.58 * tfactors.T913 + + -162.101 * tfactors.T9 + 9.30824 * tfactors.T953 + -1266.77 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 93.5771795376273 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1642.74 * tfactors.T943i + (1.0/3.0) * 2707.58 * tfactors.T923i + + -162.101 + (5.0/3.0) * 9.30824 * tfactors.T923 + -1266.77 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr48_to_p_V47_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr48 --> p + V47 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cr48_log_pf, dCr48_log_pf_dT9; + + // interpolating Cr48 partition function + get_partition_function_cached(Cr48, tfactors.T9, pf_cache, Cr48_log_pf, dCr48_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real V47_log_pf, dV47_log_pf_dT9; + + // interpolating V47 partition function + get_partition_function_cached(V47, tfactors.T9, pf_cache, V47_log_pf, dV47_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + V47_log_pf - Cr48_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dV47_log_pf_dT9 - dCr48_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nfisn + ln_set_rate = 67.75975303984967 + -100.08956223422913 * tfactors.T9i + -34.0548 * tfactors.T913i + -3.41973 * tfactors.T913 + + 1.16501 * tfactors.T9 + -0.105543 * tfactors.T953 + -6.20886 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 100.08956223422913 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -34.0548 * tfactors.T943i + (1.0/3.0) * -3.41973 * tfactors.T923i + + 1.16501 + (5.0/3.0) * -0.105543 * tfactors.T923 + -6.20886 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nfisn + ln_set_rate = 536.5429530398497 + -99.32517223422914 * tfactors.T9i + 317.171 * tfactors.T913i + -911.679 * tfactors.T913 + + 94.4245 * tfactors.T9 + -10.1973 * tfactors.T953 + 332.227 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 99.32517223422914 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 317.171 * tfactors.T943i + (1.0/3.0) * -911.679 * tfactors.T923i + + 94.4245 + (5.0/3.0) * -10.1973 * tfactors.T923 + 332.227 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nfisn + ln_set_rate = 48.911453039849675 + -93.78359723422915 * tfactors.T9i + -45.9868 * tfactors.T913i + 13.6822 * tfactors.T913 + + -0.376902 * tfactors.T9 + -0.0194875 * tfactors.T953 + -6.9232499999999995 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 93.78359723422915 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -45.9868 * tfactors.T943i + (1.0/3.0) * 13.6822 * tfactors.T923i + + -0.376902 + (5.0/3.0) * -0.0194875 * tfactors.T923 + -6.9232499999999995 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nfisn + ln_set_rate = 65.64255303984967 + -94.54467623422914 * tfactors.T9i + -110.655 * tfactors.T913i + 83.0232 * tfactors.T913 + + -19.7762 * tfactors.T9 + 3.03961 * tfactors.T953 + -47.9742 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 94.54467623422914 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -110.655 * tfactors.T943i + (1.0/3.0) * 83.0232 * tfactors.T923i + + -19.7762 + (5.0/3.0) * 3.03961 * tfactors.T923 + -47.9742 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr48_to_He4_Ti44_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr48 --> He4 + Ti44 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cr48_log_pf, dCr48_log_pf_dT9; + + // interpolating Cr48 partition function + get_partition_function_cached(Cr48, tfactors.T9, pf_cache, Cr48_log_pf, dCr48_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti44_log_pf, dTi44_log_pf_dT9; + + // interpolating Ti44 partition function + get_partition_function_cached(Ti44, tfactors.T9, pf_cache, Ti44_log_pf, dTi44_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ti44_log_pf - Cr48_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dTi44_log_pf_dT9 - dCr48_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 89.75906465832496 + -89.32364150067336 * tfactors.T9i + -81.667 * tfactors.T913i + -10.6333 * tfactors.T913 + + -0.672613 * tfactors.T9 + 0.161209 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 89.32364150067336 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -81.667 * tfactors.T943i + (1.0/3.0) * -10.6333 * tfactors.T923i + + -0.672613 + (5.0/3.0) * 0.161209 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr49_to_n_Cr48_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr49 --> n + Cr48 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr48_log_pf, dCr48_log_pf_dT9; + + // interpolating Cr48 partition function + get_partition_function_cached(Cr48, tfactors.T9, pf_cache, Cr48_log_pf, dCr48_log_pf_dT9); + + amrex::Real Cr49_log_pf, dCr49_log_pf_dT9; + + // interpolating Cr49 partition function + get_partition_function_cached(Cr49, tfactors.T9, pf_cache, Cr49_log_pf, dCr49_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cr48_log_pf - Cr49_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCr48_log_pf_dT9 - dCr49_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 37.75912618027852 + -122.80734396679019 * tfactors.T9i + -0.000452357 * tfactors.T913 + + 0.0412838 * tfactors.T9 + -0.0160865 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 122.80734396679019 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.000452357 * tfactors.T923i + + 0.0412838 + (5.0/3.0) * -0.0160865 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr49_to_p_V48_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr49 --> p + V48 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr49_log_pf, dCr49_log_pf_dT9; + + // interpolating Cr49 partition function + get_partition_function_cached(Cr49, tfactors.T9, pf_cache, Cr49_log_pf, dCr49_log_pf_dT9); + + amrex::Real V48_log_pf, dV48_log_pf_dT9; + + // interpolating V48 partition function + get_partition_function_cached(V48, tfactors.T9, pf_cache, V48_log_pf, dV48_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + V48_log_pf - Cr49_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dV48_log_pf_dT9 - dCr49_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 58.6165754782341 + -94.49989708266537 * tfactors.T9i + -34.2123 * tfactors.T913i + 2.51264 * tfactors.T913 + + -2.09211 * tfactors.T9 + 0.219444 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 94.49989708266537 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -34.2123 * tfactors.T943i + (1.0/3.0) * 2.51264 * tfactors.T923i + + -2.09211 + (5.0/3.0) * 0.219444 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr49_to_He4_Ti45_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr49 --> He4 + Ti45 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr49_log_pf, dCr49_log_pf_dT9; + + // interpolating Cr49 partition function + get_partition_function_cached(Cr49, tfactors.T9, pf_cache, Cr49_log_pf, dCr49_log_pf_dT9); + + amrex::Real Ti45_log_pf, dTi45_log_pf_dT9; + + // interpolating Ti45 partition function + get_partition_function_cached(Ti45, tfactors.T9, pf_cache, Ti45_log_pf, dTi45_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ti45_log_pf - Cr49_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dTi45_log_pf_dT9 - dCr49_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 89.2767795487736 + -101.50490417292947 * tfactors.T9i + -81.7175 * tfactors.T913i + -10.1755 * tfactors.T913 + + 0.364167 * tfactors.T9 + -0.000317666 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 101.50490417292947 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -81.7175 * tfactors.T943i + (1.0/3.0) * -10.1755 * tfactors.T923i + + 0.364167 + (5.0/3.0) * -0.000317666 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr50_to_n_Cr49_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr50 --> n + Cr49 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr49_log_pf, dCr49_log_pf_dT9; + + // interpolating Cr49 partition function + get_partition_function_cached(Cr49, tfactors.T9, pf_cache, Cr49_log_pf, dCr49_log_pf_dT9); + + amrex::Real Cr50_log_pf, dCr50_log_pf_dT9; + + // interpolating Cr50 partition function + get_partition_function_cached(Cr50, tfactors.T9, pf_cache, Cr50_log_pf, dCr50_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cr49_log_pf - Cr50_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCr49_log_pf_dT9 - dCr50_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 43.324496345019064 + -150.86196279664787 * tfactors.T9i + -1.98927 * tfactors.T913 + + 0.465124 * tfactors.T9 + -0.0582249 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 150.86196279664787 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.98927 * tfactors.T923i + + 0.465124 + (5.0/3.0) * -0.0582249 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr50_to_p_V49_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr50 --> p + V49 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real V49_log_pf, dV49_log_pf_dT9; + + // interpolating V49 partition function + get_partition_function_cached(V49, tfactors.T9, pf_cache, V49_log_pf, dV49_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr50_log_pf, dCr50_log_pf_dT9; + + // interpolating Cr50 partition function + get_partition_function_cached(Cr50, tfactors.T9, pf_cache, Cr50_log_pf, dCr50_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + V49_log_pf - Cr50_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dV49_log_pf_dT9 - dCr50_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 61.00795168922196 + -111.26564068398237 * tfactors.T9i + -34.217 * tfactors.T913i + 1.28258 * tfactors.T913 + + -1.5098 * tfactors.T9 + 0.142011 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 111.26564068398237 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -34.217 * tfactors.T943i + (1.0/3.0) * 1.28258 * tfactors.T923i + + -1.5098 + (5.0/3.0) * 0.142011 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr50_to_He4_Ti46_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr50 --> He4 + Ti46 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ti46_log_pf, dTi46_log_pf_dT9; + + // interpolating Ti46 partition function + get_partition_function_cached(Ti46, tfactors.T9, pf_cache, Ti46_log_pf, dTi46_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr50_log_pf, dCr50_log_pf_dT9; + + // interpolating Cr50 partition function + get_partition_function_cached(Cr50, tfactors.T9, pf_cache, Cr50_log_pf, dCr50_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ti46_log_pf - Cr50_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dTi46_log_pf_dT9 - dCr50_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 82.00592864021027 + -99.31153420274927 * tfactors.T9i + -81.7658 * tfactors.T913i + 3.48637 * tfactors.T913 + + -3.9188 * tfactors.T9 + 0.440356 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 99.31153420274927 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -81.7658 * tfactors.T943i + (1.0/3.0) * 3.48637 * tfactors.T923i + + -3.9188 + (5.0/3.0) * 0.440356 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr51_to_n_Cr50_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr51 --> n + Cr50 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr50_log_pf, dCr50_log_pf_dT9; + + // interpolating Cr50 partition function + get_partition_function_cached(Cr50, tfactors.T9, pf_cache, Cr50_log_pf, dCr50_log_pf_dT9); + + amrex::Real Cr51_log_pf, dCr51_log_pf_dT9; + + // interpolating Cr51 partition function + get_partition_function_cached(Cr51, tfactors.T9, pf_cache, Cr51_log_pf, dCr51_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cr50_log_pf - Cr51_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCr50_log_pf_dT9 - dCr51_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 36.724790017844484 + -107.48815208414811 * tfactors.T9i + 0.815037 * tfactors.T913i + -0.708732 * tfactors.T913 + + 0.386295 * tfactors.T9 + -0.0615661 * tfactors.T953 + 1.5454627 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 107.48815208414811 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 0.815037 * tfactors.T943i + (1.0/3.0) * -0.708732 * tfactors.T923i + + 0.386295 + (5.0/3.0) * -0.0615661 * tfactors.T923 + 1.5454627 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr51_to_p_V50_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr51 --> p + V50 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real V50_log_pf, dV50_log_pf_dT9; + + // interpolating V50 partition function + get_partition_function_cached(V50, tfactors.T9, pf_cache, V50_log_pf, dV50_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr51_log_pf, dCr51_log_pf_dT9; + + // interpolating Cr51 partition function + get_partition_function_cached(Cr51, tfactors.T9, pf_cache, Cr51_log_pf, dCr51_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + V50_log_pf - Cr51_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dV50_log_pf_dT9 - dCr51_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 58.770512618511376 + -110.433712779846 * tfactors.T9i + -34.2216 * tfactors.T913i + 2.39774 * tfactors.T913 + + -2.15306 * tfactors.T9 + 0.232283 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 110.433712779846 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -34.2216 * tfactors.T943i + (1.0/3.0) * 2.39774 * tfactors.T923i + + -2.15306 + (5.0/3.0) * 0.232283 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr51_to_He4_Ti47_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr51 --> He4 + Ti47 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ti47_log_pf, dTi47_log_pf_dT9; + + // interpolating Ti47 partition function + get_partition_function_cached(Ti47, tfactors.T9, pf_cache, Ti47_log_pf, dTi47_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr51_log_pf, dCr51_log_pf_dT9; + + // interpolating Cr51 partition function + get_partition_function_cached(Cr51, tfactors.T9, pf_cache, Cr51_log_pf, dCr51_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ti47_log_pf - Cr51_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dTi47_log_pf_dT9 - dCr51_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 88.01662020716597 + -103.72136713413757 * tfactors.T9i + -81.8123 * tfactors.T913i + -8.91821 * tfactors.T913 + + -0.0329369 * tfactors.T9 + 0.039179 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 103.72136713413757 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -81.8123 * tfactors.T943i + (1.0/3.0) * -8.91821 * tfactors.T923i + + -0.0329369 + (5.0/3.0) * 0.039179 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr52_to_n_Cr51_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr52 --> n + Cr51 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr51_log_pf, dCr51_log_pf_dT9; + + // interpolating Cr51 partition function + get_partition_function_cached(Cr51, tfactors.T9, pf_cache, Cr51_log_pf, dCr51_log_pf_dT9); + + amrex::Real Cr52_log_pf, dCr52_log_pf_dT9; + + // interpolating Cr52 partition function + get_partition_function_cached(Cr52, tfactors.T9, pf_cache, Cr52_log_pf, dCr52_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cr51_log_pf - Cr52_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCr51_log_pf_dT9 - dCr52_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 45.90309315543206 + -139.8057853770977 * tfactors.T9i + 6.95563 * tfactors.T913i + -11.4485 * tfactors.T913 + + 0.736956 * tfactors.T9 + -0.0695323 * tfactors.T953 + 6.81244 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 139.8057853770977 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 6.95563 * tfactors.T943i + (1.0/3.0) * -11.4485 * tfactors.T923i + + 0.736956 + (5.0/3.0) * -0.0695323 * tfactors.T923 + 6.81244 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr52_to_p_V51_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr52 --> p + V51 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real V51_log_pf, dV51_log_pf_dT9; + + // interpolating V51 partition function + get_partition_function_cached(V51, tfactors.T9, pf_cache, V51_log_pf, dV51_log_pf_dT9); + + amrex::Real Cr52_log_pf, dCr52_log_pf_dT9; + + // interpolating Cr52 partition function + get_partition_function_cached(Cr52, tfactors.T9, pf_cache, Cr52_log_pf, dCr52_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + V51_log_pf - Cr52_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dV51_log_pf_dT9 - dCr52_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 59.92617097760476 + -121.90976888578963 * tfactors.T9i + -34.2261 * tfactors.T913i + 3.30454 * tfactors.T913 + + -2.61654 * tfactors.T9 + 0.283602 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 121.90976888578963 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -34.2261 * tfactors.T943i + (1.0/3.0) * 3.30454 * tfactors.T923i + + -2.61654 + (5.0/3.0) * 0.283602 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr52_to_He4_Ti48_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr52 --> He4 + Ti48 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ti48_log_pf, dTi48_log_pf_dT9; + + // interpolating Ti48 partition function + get_partition_function_cached(Ti48, tfactors.T9, pf_cache, Ti48_log_pf, dTi48_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr52_log_pf, dCr52_log_pf_dT9; + + // interpolating Cr52 partition function + get_partition_function_cached(Cr52, tfactors.T9, pf_cache, Cr52_log_pf, dCr52_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ti48_log_pf - Cr52_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dTi48_log_pf_dT9 - dCr52_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 81.65246272084629 + -108.51937119668797 * tfactors.T9i + -81.8569 * tfactors.T913i + 4.92305 * tfactors.T913 + + -5.04112 * tfactors.T9 + 0.6175 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 108.51937119668797 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -81.8569 * tfactors.T943i + (1.0/3.0) * 4.92305 * tfactors.T923i + + -5.04112 + (5.0/3.0) * 0.6175 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr53_to_n_Cr52_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr53 --> n + Cr52 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr53_log_pf, dCr53_log_pf_dT9; + + // interpolating Cr53 partition function + get_partition_function_cached(Cr53, tfactors.T9, pf_cache, Cr53_log_pf, dCr53_log_pf_dT9); + + amrex::Real Cr52_log_pf, dCr52_log_pf_dT9; + + // interpolating Cr52 partition function + get_partition_function_cached(Cr52, tfactors.T9, pf_cache, Cr52_log_pf, dCr52_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cr52_log_pf - Cr53_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCr52_log_pf_dT9 - dCr53_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 49.63069843062926 + -92.16463996114723 * tfactors.T9i + 5.71728 * tfactors.T913i + -20.4149 * tfactors.T913 + + 1.95304 * tfactors.T9 + -0.175538 * tfactors.T953 + 8.682929999999999 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 92.16463996114723 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 5.71728 * tfactors.T943i + (1.0/3.0) * -20.4149 * tfactors.T923i + + 1.95304 + (5.0/3.0) * -0.175538 * tfactors.T923 + 8.682929999999999 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr53_to_p_V52_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr53 --> p + V52 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cr53_log_pf, dCr53_log_pf_dT9; + + // interpolating Cr53 partition function + get_partition_function_cached(Cr53, tfactors.T9, pf_cache, Cr53_log_pf, dCr53_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real V52_log_pf, dV52_log_pf_dT9; + + // interpolating V52 partition function + get_partition_function_cached(V52, tfactors.T9, pf_cache, V52_log_pf, dV52_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + V52_log_pf - Cr53_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dV52_log_pf_dT9 - dCr53_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 153.55143150343662 + -135.22088112452658 * tfactors.T9i + 224.733 * tfactors.T913i + -373.356 * tfactors.T913 + + 21.346 * tfactors.T9 + -1.24075 * tfactors.T953 + 186.049 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 135.22088112452658 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 224.733 * tfactors.T943i + (1.0/3.0) * -373.356 * tfactors.T923i + + 21.346 + (5.0/3.0) * -1.24075 * tfactors.T923 + 186.049 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr53_to_He4_Ti49_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr53 --> He4 + Ti49 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cr53_log_pf, dCr53_log_pf_dT9; + + // interpolating Cr53 partition function + get_partition_function_cached(Cr53, tfactors.T9, pf_cache, Cr53_log_pf, dCr53_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti49_log_pf, dTi49_log_pf_dT9; + + // interpolating Ti49 partition function + get_partition_function_cached(Ti49, tfactors.T9, pf_cache, Ti49_log_pf, dTi49_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ti49_log_pf - Cr53_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dTi49_log_pf_dT9 - dCr53_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 91.13805732172716 + -106.16423424378623 * tfactors.T9i + -81.8999 * tfactors.T913i + -15.3695 * tfactors.T913 + + 2.51758 * tfactors.T9 + -0.283455 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 106.16423424378623 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -81.8999 * tfactors.T943i + (1.0/3.0) * -15.3695 * tfactors.T923i + + 2.51758 + (5.0/3.0) * -0.283455 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr54_to_n_Cr53_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr54 --> n + Cr53 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr54_log_pf, dCr54_log_pf_dT9; + + // interpolating Cr54 partition function + get_partition_function_cached(Cr54, tfactors.T9, pf_cache, Cr54_log_pf, dCr54_log_pf_dT9); + + amrex::Real Cr53_log_pf, dCr53_log_pf_dT9; + + // interpolating Cr53 partition function + get_partition_function_cached(Cr53, tfactors.T9, pf_cache, Cr53_log_pf, dCr53_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cr53_log_pf - Cr54_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCr53_log_pf_dT9 - dCr54_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 35.96491204520821 + -112.79506337626671 * tfactors.T9i + -1.26805 * tfactors.T913i + 6.34126 * tfactors.T913 + + -0.39287 * tfactors.T9 + 0.000487041 * tfactors.T953 + -0.9645600000000001 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 112.79506337626671 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.26805 * tfactors.T943i + (1.0/3.0) * 6.34126 * tfactors.T923i + + -0.39287 + (5.0/3.0) * 0.000487041 * tfactors.T923 + -0.9645600000000001 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr54_to_He4_Ti50_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr54 --> He4 + Ti50 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti50_log_pf, dTi50_log_pf_dT9; + + // interpolating Ti50 partition function + get_partition_function_cached(Ti50, tfactors.T9, pf_cache, Ti50_log_pf, dTi50_log_pf_dT9); + + amrex::Real Cr54_log_pf, dCr54_log_pf_dT9; + + // interpolating Cr54 partition function + get_partition_function_cached(Cr54, tfactors.T9, pf_cache, Cr54_log_pf, dCr54_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ti50_log_pf - Cr54_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dTi50_log_pf_dT9 - dCr54_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 88.40270523721404 + -92.0055616837817 * tfactors.T9i + -81.9411 * tfactors.T913i + -6.28155 * tfactors.T913 + + -2.0416 * tfactors.T9 + 0.332085 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 92.0055616837817 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -81.9411 * tfactors.T943i + (1.0/3.0) * -6.28155 * tfactors.T923i + + -2.0416 + (5.0/3.0) * 0.332085 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn50_to_p_Cr49_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn50 --> p + Cr49 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Mn50_log_pf, dMn50_log_pf_dT9; + + // interpolating Mn50 partition function + get_partition_function_cached(Mn50, tfactors.T9, pf_cache, Mn50_log_pf, dMn50_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr49_log_pf, dCr49_log_pf_dT9; + + // interpolating Cr49 partition function + get_partition_function_cached(Cr49, tfactors.T9, pf_cache, Cr49_log_pf, dCr49_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Cr49_log_pf - Mn50_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCr49_log_pf_dT9 - dMn50_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 61.87490359919837 + -53.188856976553964 * tfactors.T9i + -35.2018 * tfactors.T913i + 0.168579 * tfactors.T913 + + -2.87983 * tfactors.T9 + 0.378768 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 53.188856976553964 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -35.2018 * tfactors.T943i + (1.0/3.0) * 0.168579 * tfactors.T923i + + -2.87983 + (5.0/3.0) * 0.378768 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn50_to_He4_V46_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn50 --> He4 + V46 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Mn50_log_pf, dMn50_log_pf_dT9; + + // interpolating Mn50 partition function + get_partition_function_cached(Mn50, tfactors.T9, pf_cache, Mn50_log_pf, dMn50_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real V46_log_pf, dV46_log_pf_dT9; + + // interpolating V46 partition function + get_partition_function_cached(V46, tfactors.T9, pf_cache, V46_log_pf, dV46_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + V46_log_pf - Mn50_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dV46_log_pf_dT9 - dMn50_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 79.2797302934406 + -92.55654420415776 * tfactors.T9i + -84.2255 * tfactors.T913i + -4.85634 * tfactors.T913 + + 0.0528515 * tfactors.T9 + -0.0425496 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 92.55654420415776 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.2255 * tfactors.T943i + (1.0/3.0) * -4.85634 * tfactors.T923i + + 0.0528515 + (5.0/3.0) * -0.0425496 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn51_to_n_Mn50_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn51 --> n + Mn50 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn50_log_pf, dMn50_log_pf_dT9; + + // interpolating Mn50 partition function + get_partition_function_cached(Mn50, tfactors.T9, pf_cache, Mn50_log_pf, dMn50_log_pf_dT9); + + amrex::Real Mn51_log_pf, dMn51_log_pf_dT9; + + // interpolating Mn51 partition function + get_partition_function_cached(Mn51, tfactors.T9, pf_cache, Mn51_log_pf, dMn51_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Mn50_log_pf - Mn51_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dMn50_log_pf_dT9 - dMn51_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 37.34951332478154 + -158.83832832749732 * tfactors.T9i + -0.538879 * tfactors.T913 + + 0.284528 * tfactors.T9 + -0.0459849 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 158.83832832749732 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.538879 * tfactors.T923i + + 0.284528 + (5.0/3.0) * -0.0459849 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn51_to_p_Cr50_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn51 --> p + Cr50 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Mn51_log_pf, dMn51_log_pf_dT9; + + // interpolating Mn51 partition function + get_partition_function_cached(Mn51, tfactors.T9, pf_cache, Mn51_log_pf, dMn51_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr50_log_pf, dCr50_log_pf_dT9; + + // interpolating Cr50 partition function + get_partition_function_cached(Cr50, tfactors.T9, pf_cache, Cr50_log_pf, dCr50_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Cr50_log_pf - Mn51_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCr50_log_pf_dT9 - dMn51_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 57.756820578960856 + -61.16522250740343 * tfactors.T9i + -35.2065 * tfactors.T913i + 0.884621 * tfactors.T913 + + -1.76421 * tfactors.T9 + 0.202494 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 61.16522250740343 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -35.2065 * tfactors.T943i + (1.0/3.0) * 0.884621 * tfactors.T923i + + -1.76421 + (5.0/3.0) * 0.202494 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn51_to_He4_V47_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn51 --> He4 + V47 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Mn51_log_pf, dMn51_log_pf_dT9; + + // interpolating Mn51 partition function + get_partition_function_cached(Mn51, tfactors.T9, pf_cache, Mn51_log_pf, dMn51_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real V47_log_pf, dV47_log_pf_dT9; + + // interpolating V47 partition function + get_partition_function_cached(V47, tfactors.T9, pf_cache, V47_log_pf, dV47_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + V47_log_pf - Mn51_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dV47_log_pf_dT9 - dMn51_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 81.42763571008429 + -100.50726374990671 * tfactors.T9i + -84.2732 * tfactors.T913i + -2.98061 * tfactors.T913 + + -0.531361 * tfactors.T9 + 0.023612 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 100.50726374990671 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.2732 * tfactors.T943i + (1.0/3.0) * -2.98061 * tfactors.T923i + + -0.531361 + (5.0/3.0) * 0.023612 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn52_to_n_Mn51_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn52 --> n + Mn51 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn51_log_pf, dMn51_log_pf_dT9; + + // interpolating Mn51 partition function + get_partition_function_cached(Mn51, tfactors.T9, pf_cache, Mn51_log_pf, dMn51_log_pf_dT9); + + amrex::Real Mn52_log_pf, dMn52_log_pf_dT9; + + // interpolating Mn52 partition function + get_partition_function_cached(Mn52, tfactors.T9, pf_cache, Mn52_log_pf, dMn52_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Mn51_log_pf - Mn52_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dMn51_log_pf_dT9 - dMn52_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 40.130587431823315 + -122.30591273875024 * tfactors.T9i + -1.83611 * tfactors.T913 + + 0.460384 * tfactors.T9 + -0.0584947 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 122.30591273875024 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.83611 * tfactors.T923i + + 0.460384 + (5.0/3.0) * -0.0584947 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn52_to_p_Cr51_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn52 --> p + Cr51 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn52_log_pf, dMn52_log_pf_dT9; + + // interpolating Mn52 partition function + get_partition_function_cached(Mn52, tfactors.T9, pf_cache, Mn52_log_pf, dMn52_log_pf_dT9); + + amrex::Real Cr51_log_pf, dCr51_log_pf_dT9; + + // interpolating Cr51 partition function + get_partition_function_cached(Cr51, tfactors.T9, pf_cache, Cr51_log_pf, dCr51_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Cr51_log_pf - Mn52_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCr51_log_pf_dT9 - dMn52_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 58.47551799293968 + -76.00554446200552 * tfactors.T9i + -35.2111 * tfactors.T913i + 1.49375 * tfactors.T913 + + -1.48209 * tfactors.T9 + 0.131902 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 76.00554446200552 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -35.2111 * tfactors.T943i + (1.0/3.0) * 1.49375 * tfactors.T923i + + -1.48209 + (5.0/3.0) * 0.131902 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn52_to_He4_V48_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn52 --> He4 + V48 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn52_log_pf, dMn52_log_pf_dT9; + + // interpolating Mn52 partition function + get_partition_function_cached(Mn52, tfactors.T9, pf_cache, Mn52_log_pf, dMn52_log_pf_dT9); + + amrex::Real V48_log_pf, dV48_log_pf_dT9; + + // interpolating V48 partition function + get_partition_function_cached(V48, tfactors.T9, pf_cache, V48_log_pf, dV48_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + V48_log_pf - Mn52_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dV48_log_pf_dT9 - dMn52_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 87.1983194000135 + -100.47546737030301 * tfactors.T9i + -84.3192 * tfactors.T913i + -8.32959 * tfactors.T913 + + 0.33994 * tfactors.T9 + -0.0359909 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 100.47546737030301 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.3192 * tfactors.T943i + (1.0/3.0) * -8.32959 * tfactors.T923i + + 0.33994 + (5.0/3.0) * -0.0359909 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn53_to_n_Mn52_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn53 --> n + Mn52 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn52_log_pf, dMn52_log_pf_dT9; + + // interpolating Mn52 partition function + get_partition_function_cached(Mn52, tfactors.T9, pf_cache, Mn52_log_pf, dMn52_log_pf_dT9); + + amrex::Real Mn53_log_pf, dMn53_log_pf_dT9; + + // interpolating Mn53 partition function + get_partition_function_cached(Mn53, tfactors.T9, pf_cache, Mn53_log_pf, dMn53_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Mn52_log_pf - Mn53_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dMn52_log_pf_dT9 - dMn53_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 41.278513591470265 + -139.8370903552252 * tfactors.T9i + -0.91084 * tfactors.T913 + + 0.162511 * tfactors.T9 + -0.0279619 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 139.8370903552252 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.91084 * tfactors.T923i + + 0.162511 + (5.0/3.0) * -0.0279619 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn53_to_p_Cr52_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn53 --> p + Cr52 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn53_log_pf, dMn53_log_pf_dT9; + + // interpolating Mn53 partition function + get_partition_function_cached(Mn53, tfactors.T9, pf_cache, Mn53_log_pf, dMn53_log_pf_dT9); + + amrex::Real Cr52_log_pf, dCr52_log_pf_dT9; + + // interpolating Cr52 partition function + get_partition_function_cached(Cr52, tfactors.T9, pf_cache, Cr52_log_pf, dCr52_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Cr52_log_pf - Mn53_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCr52_log_pf_dT9 - dMn53_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 57.31253842897789 + -76.122866140133 * tfactors.T9i + -35.2154 * tfactors.T913i + 0.73019 * tfactors.T913 + + -1.26018 * tfactors.T9 + 0.121141 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 76.122866140133 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -35.2154 * tfactors.T943i + (1.0/3.0) * 0.73019 * tfactors.T923i + + -1.26018 + (5.0/3.0) * 0.121141 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn53_to_He4_V49_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn53 --> He4 + V49 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real V49_log_pf, dV49_log_pf_dT9; + + // interpolating V49 partition function + get_partition_function_cached(V49, tfactors.T9, pf_cache, V49_log_pf, dV49_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn53_log_pf, dMn53_log_pf_dT9; + + // interpolating Mn53 partition function + get_partition_function_cached(Mn53, tfactors.T9, pf_cache, Mn53_log_pf, dMn53_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + V49_log_pf - Mn53_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dV49_log_pf_dT9 - dMn53_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 87.43161285745258 + -106.21633853020451 * tfactors.T9i + -84.3633 * tfactors.T913i + -5.28933 * tfactors.T913 + + -1.3103 * tfactors.T9 + 0.187088 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 106.21633853020451 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.3633 * tfactors.T943i + (1.0/3.0) * -5.28933 * tfactors.T923i + + -1.3103 + (5.0/3.0) * 0.187088 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn54_to_n_Mn53_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn54 --> n + Mn53 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn53_log_pf, dMn53_log_pf_dT9; + + // interpolating Mn53 partition function + get_partition_function_cached(Mn53, tfactors.T9, pf_cache, Mn53_log_pf, dMn53_log_pf_dT9); + + amrex::Real Mn54_log_pf, dMn54_log_pf_dT9; + + // interpolating Mn54 partition function + get_partition_function_cached(Mn54, tfactors.T9, pf_cache, Mn54_log_pf, dMn54_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Mn53_log_pf - Mn54_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dMn53_log_pf_dT9 - dMn54_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 41.182910834045586 + -103.735318434027 * tfactors.T9i + -1.70171 * tfactors.T913 + + 0.386422 * tfactors.T9 + -0.0536858 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 103.735318434027 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.70171 * tfactors.T923i + + 0.386422 + (5.0/3.0) * -0.0536858 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn54_to_p_Cr53_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn54 --> p + Cr53 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cr53_log_pf, dCr53_log_pf_dT9; + + // interpolating Cr53 partition function + get_partition_function_cached(Cr53, tfactors.T9, pf_cache, Cr53_log_pf, dCr53_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn54_log_pf, dMn54_log_pf_dT9; + + // interpolating Mn54 partition function + get_partition_function_cached(Mn54, tfactors.T9, pf_cache, Mn54_log_pf, dMn54_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Cr53_log_pf - Mn54_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCr53_log_pf_dT9 - dMn54_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 57.34075083239421 + -87.72494731303439 * tfactors.T9i + -35.2197 * tfactors.T913i + 3.74805 * tfactors.T913 + + -2.77987 * tfactors.T9 + 0.296885 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 87.72494731303439 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -35.2197 * tfactors.T943i + (1.0/3.0) * 3.74805 * tfactors.T923i + + -2.77987 + (5.0/3.0) * 0.296885 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn54_to_He4_V50_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn54 --> He4 + V50 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real V50_log_pf, dV50_log_pf_dT9; + + // interpolating V50 partition function + get_partition_function_cached(V50, tfactors.T9, pf_cache, V50_log_pf, dV50_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn54_log_pf, dMn54_log_pf_dT9; + + // interpolating Mn54 partition function + get_partition_function_cached(Mn54, tfactors.T9, pf_cache, Mn54_log_pf, dMn54_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + V50_log_pf - Mn54_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dV50_log_pf_dT9 - dMn54_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 88.91299460294309 + -101.65413827594705 * tfactors.T9i + -84.4058 * tfactors.T913i + -6.25173 * tfactors.T913 + + -1.31339 * tfactors.T9 + 0.208695 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 101.65413827594705 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.4058 * tfactors.T943i + (1.0/3.0) * -6.25173 * tfactors.T923i + + -1.31339 + (5.0/3.0) * 0.208695 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn55_to_n_Mn54_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn55 --> n + Mn54 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn54_log_pf, dMn54_log_pf_dT9; + + // interpolating Mn54 partition function + get_partition_function_cached(Mn54, tfactors.T9, pf_cache, Mn54_log_pf, dMn54_log_pf_dT9); + + amrex::Real Mn55_log_pf, dMn55_log_pf_dT9; + + // interpolating Mn55 partition function + get_partition_function_cached(Mn55, tfactors.T9, pf_cache, Mn55_log_pf, dMn55_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Mn54_log_pf - Mn55_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dMn54_log_pf_dT9 - dMn55_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 42.32450775451208 + -118.66383472623343 * tfactors.T9i + -2.56572 * tfactors.T913 + + 0.352447 * tfactors.T9 + -0.0375878 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 118.66383472623343 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.56572 * tfactors.T923i + + 0.352447 + (5.0/3.0) * -0.0375878 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn55_to_p_Cr54_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn55 --> p + Cr54 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Mn55_log_pf, dMn55_log_pf_dT9; + + // interpolating Mn55 partition function + get_partition_function_cached(Mn55, tfactors.T9, pf_cache, Mn55_log_pf, dMn55_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr54_log_pf, dCr54_log_pf_dT9; + + // interpolating Cr54 partition function + get_partition_function_cached(Cr54, tfactors.T9, pf_cache, Cr54_log_pf, dCr54_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Cr54_log_pf - Mn55_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCr54_log_pf_dT9 - dMn55_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 56.84134654169807 + -93.6035641029795 * tfactors.T9i + -35.2237 * tfactors.T913i + 2.60768 * tfactors.T913 + + -1.7864 * tfactors.T9 + 0.134189 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 93.6035641029795 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -35.2237 * tfactors.T943i + (1.0/3.0) * 2.60768 * tfactors.T923i + + -1.7864 + (5.0/3.0) * 0.134189 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn55_to_He4_V51_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn55 --> He4 + V51 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real V51_log_pf, dV51_log_pf_dT9; + + // interpolating V51 partition function + get_partition_function_cached(V51, tfactors.T9, pf_cache, V51_log_pf, dV51_log_pf_dT9); + + amrex::Real Mn55_log_pf, dMn55_log_pf_dT9; + + // interpolating Mn55 partition function + get_partition_function_cached(Mn55, tfactors.T9, pf_cache, Mn55_log_pf, dMn55_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + V51_log_pf - Mn55_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dV51_log_pf_dT9 - dMn55_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 86.88126756111649 + -92.07426043101918 * tfactors.T9i + -84.4467 * tfactors.T913i + -1.29542 * tfactors.T913 + + -3.56909 * tfactors.T9 + 0.513926 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 92.07426043101918 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.4467 * tfactors.T943i + (1.0/3.0) * -1.29542 * tfactors.T923i + + -3.56909 + (5.0/3.0) * 0.513926 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe52_to_p_Mn51_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe52 --> p + Mn51 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Mn51_log_pf, dMn51_log_pf_dT9; + + // interpolating Mn51 partition function + get_partition_function_cached(Mn51, tfactors.T9, pf_cache, Mn51_log_pf, dMn51_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe52_log_pf, dFe52_log_pf_dT9; + + // interpolating Fe52 partition function + get_partition_function_cached(Fe52, tfactors.T9, pf_cache, Fe52_log_pf, dFe52_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Mn51_log_pf - Fe52_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dMn51_log_pf_dT9 - dFe52_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 61.74743132228039 + -85.61663846070292 * tfactors.T9i + -36.1825 * tfactors.T913i + 0.873042 * tfactors.T913 + + -2.89731 * tfactors.T9 + 0.364394 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 85.61663846070292 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.1825 * tfactors.T943i + (1.0/3.0) * 0.873042 * tfactors.T923i + + -2.89731 + (5.0/3.0) * 0.364394 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe52_to_He4_Cr48_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe52 --> He4 + Cr48 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cr48_log_pf, dCr48_log_pf_dT9; + + // interpolating Cr48 partition function + get_partition_function_cached(Cr48, tfactors.T9, pf_cache, Cr48_log_pf, dCr48_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe52_log_pf, dFe52_log_pf_dT9; + + // interpolating Fe52 partition function + get_partition_function_cached(Fe52, tfactors.T9, pf_cache, Fe52_log_pf, dFe52_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Cr48_log_pf - Fe52_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCr48_log_pf_dT9 - dFe52_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 90.149113992515 + -92.09363997638769 * tfactors.T9i + -86.7459 * tfactors.T913i + -9.79373 * tfactors.T913 + + -0.772169 * tfactors.T9 + 0.155883 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 92.09363997638769 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -86.7459 * tfactors.T943i + (1.0/3.0) * -9.79373 * tfactors.T923i + + -0.772169 + (5.0/3.0) * 0.155883 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe53_to_n_Fe52_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe53 --> n + Fe52 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe52_log_pf, dFe52_log_pf_dT9; + + // interpolating Fe52 partition function + get_partition_function_cached(Fe52, tfactors.T9, pf_cache, Fe52_log_pf, dFe52_log_pf_dT9); + + amrex::Real Fe53_log_pf, dFe53_log_pf_dT9; + + // interpolating Fe53 partition function + get_partition_function_cached(Fe53, tfactors.T9, pf_cache, Fe53_log_pf, dFe53_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Fe52_log_pf - Fe53_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dFe52_log_pf_dT9 - dFe53_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 37.50789742709652 + -124.01421385132892 * tfactors.T9i + -0.344319 * tfactors.T913 + + 0.178277 * tfactors.T9 + -0.0334326 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 124.01421385132892 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.344319 * tfactors.T923i + + 0.178277 + (5.0/3.0) * -0.0334326 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe53_to_p_Mn52_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe53 --> p + Mn52 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn52_log_pf, dMn52_log_pf_dT9; + + // interpolating Mn52 partition function + get_partition_function_cached(Mn52, tfactors.T9, pf_cache, Mn52_log_pf, dMn52_log_pf_dT9); + + amrex::Real Fe53_log_pf, dFe53_log_pf_dT9; + + // interpolating Fe53 partition function + get_partition_function_cached(Fe53, tfactors.T9, pf_cache, Fe53_log_pf, dFe53_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Mn52_log_pf - Fe53_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dMn52_log_pf_dT9 - dFe53_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 59.6140413175536 + -87.32493957326004 * tfactors.T9i + -36.187 * tfactors.T913i + 1.79171 * tfactors.T913 + + -1.77786 * tfactors.T9 + 0.179936 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 87.32493957326004 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.187 * tfactors.T943i + (1.0/3.0) * 1.79171 * tfactors.T923i + + -1.77786 + (5.0/3.0) * 0.179936 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe53_to_He4_Cr49_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe53 --> He4 + Cr49 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr49_log_pf, dCr49_log_pf_dT9; + + // interpolating Cr49 partition function + get_partition_function_cached(Cr49, tfactors.T9, pf_cache, Cr49_log_pf, dCr49_log_pf_dT9); + + amrex::Real Fe53_log_pf, dFe53_log_pf_dT9; + + // interpolating Fe53 partition function + get_partition_function_cached(Fe53, tfactors.T9, pf_cache, Fe53_log_pf, dFe53_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Cr49_log_pf - Fe53_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCr49_log_pf_dT9 - dFe53_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 89.83508523933301 + -93.30050986089766 * tfactors.T9i + -86.7913 * tfactors.T913i + -6.51572 * tfactors.T913 + + -1.21249 * tfactors.T9 + 0.185473 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 93.30050986089766 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -86.7913 * tfactors.T943i + (1.0/3.0) * -6.51572 * tfactors.T923i + + -1.21249 + (5.0/3.0) * 0.185473 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe54_to_n_Fe53_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe54 --> n + Fe53 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe53_log_pf, dFe53_log_pf_dT9; + + // interpolating Fe53 partition function + get_partition_function_cached(Fe53, tfactors.T9, pf_cache, Fe53_log_pf, dFe53_log_pf_dT9); + + amrex::Real Fe54_log_pf, dFe54_log_pf_dT9; + + // interpolating Fe54 partition function + get_partition_function_cached(Fe54, tfactors.T9, pf_cache, Fe54_log_pf, dFe54_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Fe53_log_pf - Fe54_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dFe53_log_pf_dT9 - dFe54_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 42.23234536763494 + -155.25009527915816 * tfactors.T9i + -1.10421 * tfactors.T913 + + 0.379905 * tfactors.T9 + -0.0581878 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 155.25009527915816 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.10421 * tfactors.T923i + + 0.379905 + (5.0/3.0) * -0.0581878 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe54_to_p_Mn53_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe54 --> p + Mn53 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn53_log_pf, dMn53_log_pf_dT9; + + // interpolating Mn53 partition function + get_partition_function_cached(Mn53, tfactors.T9, pf_cache, Mn53_log_pf, dMn53_log_pf_dT9); + + amrex::Real Fe54_log_pf, dFe54_log_pf_dT9; + + // interpolating Fe54 partition function + get_partition_function_cached(Fe54, tfactors.T9, pf_cache, Fe54_log_pf, dFe54_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Mn53_log_pf - Fe54_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dMn53_log_pf_dT9 - dFe54_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 61.36267309371828 + -102.737944497193 * tfactors.T9i + -36.1913 * tfactors.T913i + 1.44056 * tfactors.T913 + + -1.50734 * tfactors.T9 + 0.142124 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 102.737944497193 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.1913 * tfactors.T943i + (1.0/3.0) * 1.44056 * tfactors.T923i + + -1.50734 + (5.0/3.0) * 0.142124 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe54_to_He4_Cr50_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe54 --> He4 + Cr50 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr50_log_pf, dCr50_log_pf_dT9; + + // interpolating Cr50 partition function + get_partition_function_cached(Cr50, tfactors.T9, pf_cache, Cr50_log_pf, dCr50_log_pf_dT9); + + amrex::Real Fe54_log_pf, dFe54_log_pf_dT9; + + // interpolating Fe54 partition function + get_partition_function_cached(Fe54, tfactors.T9, pf_cache, Fe54_log_pf, dFe54_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Cr50_log_pf - Fe54_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCr50_log_pf_dT9 - dFe54_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 84.69763426194889 + -97.68864234340795 * tfactors.T9i + -86.8349 * tfactors.T913i + 2.37343 * tfactors.T913 + + -3.65677 * tfactors.T9 + 0.412128 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 97.68864234340795 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -86.8349 * tfactors.T943i + (1.0/3.0) * 2.37343 * tfactors.T923i + + -3.65677 + (5.0/3.0) * 0.412128 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe55_to_n_Fe54_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe55 --> n + Fe54 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe55_log_pf, dFe55_log_pf_dT9; + + // interpolating Fe55 partition function + get_partition_function_cached(Fe55, tfactors.T9, pf_cache, Fe55_log_pf, dFe55_log_pf_dT9); + + amrex::Real Fe54_log_pf, dFe54_log_pf_dT9; + + // interpolating Fe54 partition function + get_partition_function_cached(Fe54, tfactors.T9, pf_cache, Fe54_log_pf, dFe54_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Fe54_log_pf - Fe55_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dFe54_log_pf_dT9 - dFe55_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 21.50487677145662 + -107.84100838776591 * tfactors.T9i + -8.66617 * tfactors.T913i + 26.4472 * tfactors.T913 + + -1.9222 * tfactors.T9 + 0.0986404 * tfactors.T953 + -8.28317 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 107.84100838776591 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -8.66617 * tfactors.T943i + (1.0/3.0) * 26.4472 * tfactors.T923i + + -1.9222 + (5.0/3.0) * 0.0986404 * tfactors.T923 + -8.28317 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe55_to_p_Mn54_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe55 --> p + Mn54 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Fe55_log_pf, dFe55_log_pf_dT9; + + // interpolating Fe55 partition function + get_partition_function_cached(Fe55, tfactors.T9, pf_cache, Fe55_log_pf, dFe55_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn54_log_pf, dMn54_log_pf_dT9; + + // interpolating Mn54 partition function + get_partition_function_cached(Mn54, tfactors.T9, pf_cache, Mn54_log_pf, dMn54_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Mn54_log_pf - Fe55_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dMn54_log_pf_dT9 - dFe55_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 59.807379031129315 + -106.90280605093189 * tfactors.T9i + -36.1955 * tfactors.T913i + 1.08481 * tfactors.T913 + + -1.46703 * tfactors.T9 + 0.13789 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 106.90280605093189 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.1955 * tfactors.T943i + (1.0/3.0) * 1.08481 * tfactors.T923i + + -1.46703 + (5.0/3.0) * 0.13789 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe55_to_He4_Cr51_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe55 --> He4 + Cr51 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Fe55_log_pf, dFe55_log_pf_dT9; + + // interpolating Fe55 partition function + get_partition_function_cached(Fe55, tfactors.T9, pf_cache, Fe55_log_pf, dFe55_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr51_log_pf, dCr51_log_pf_dT9; + + // interpolating Cr51 partition function + get_partition_function_cached(Cr51, tfactors.T9, pf_cache, Cr51_log_pf, dCr51_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Cr51_log_pf - Fe55_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCr51_log_pf_dT9 - dFe55_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 87.28216101556103 + -98.12323154702572 * tfactors.T9i + -86.8771 * tfactors.T913i + -0.0873902 * tfactors.T913 + + -3.40716 * tfactors.T9 + 0.441679 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 98.12323154702572 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -86.8771 * tfactors.T943i + (1.0/3.0) * -0.0873902 * tfactors.T923i + + -3.40716 + (5.0/3.0) * 0.441679 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe56_to_n_Fe55_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe56 --> n + Fe55 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe56_log_pf, dFe56_log_pf_dT9; + + // interpolating Fe56 partition function + get_partition_function_cached(Fe56, tfactors.T9, pf_cache, Fe56_log_pf, dFe56_log_pf_dT9); + + amrex::Real Fe55_log_pf, dFe55_log_pf_dT9; + + // interpolating Fe55 partition function + get_partition_function_cached(Fe55, tfactors.T9, pf_cache, Fe55_log_pf, dFe55_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Fe55_log_pf - Fe56_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dFe55_log_pf_dT9 - dFe56_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 46.806892234523204 + -130.0322634199283 * tfactors.T9i + 8.06062 * tfactors.T913i + -14.4809 * tfactors.T913 + + 0.94252 * tfactors.T9 + -0.0776007 * tfactors.T953 + 7.97093 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 130.0322634199283 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 8.06062 * tfactors.T943i + (1.0/3.0) * -14.4809 * tfactors.T923i + + 0.94252 + (5.0/3.0) * -0.0776007 * tfactors.T923 + 7.97093 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe56_to_p_Mn55_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe56 --> p + Mn55 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe56_log_pf, dFe56_log_pf_dT9; + + // interpolating Fe56 partition function + get_partition_function_cached(Fe56, tfactors.T9, pf_cache, Fe56_log_pf, dFe56_log_pf_dT9); + + amrex::Real Mn55_log_pf, dMn55_log_pf_dT9; + + // interpolating Mn55 partition function + get_partition_function_cached(Mn55, tfactors.T9, pf_cache, Mn55_log_pf, dMn55_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Mn55_log_pf - Fe56_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dMn55_log_pf_dT9 - dFe56_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 61.67886351114045 + -118.17566704462678 * tfactors.T9i + -36.1995 * tfactors.T913i + 1.15346 * tfactors.T913 + + -1.94437 * tfactors.T9 + 0.218429 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 118.17566704462678 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.1995 * tfactors.T943i + (1.0/3.0) * 1.15346 * tfactors.T923i + + -1.94437 + (5.0/3.0) * 0.218429 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe56_to_He4_Cr52_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe56 --> He4 + Cr52 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe56_log_pf, dFe56_log_pf_dT9; + + // interpolating Fe56 partition function + get_partition_function_cached(Fe56, tfactors.T9, pf_cache, Fe56_log_pf, dFe56_log_pf_dT9); + + amrex::Real Cr52_log_pf, dCr52_log_pf_dT9; + + // interpolating Cr52 partition function + get_partition_function_cached(Cr52, tfactors.T9, pf_cache, Cr52_log_pf, dCr52_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Cr52_log_pf - Fe56_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCr52_log_pf_dT9 - dFe56_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 82.99716009465217 + -88.34015858985633 * tfactors.T9i + -86.9175 * tfactors.T913i + 5.655 * tfactors.T913 + + -4.53625 * tfactors.T9 + 0.479806 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 88.34015858985633 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -86.9175 * tfactors.T943i + (1.0/3.0) * 5.655 * tfactors.T923i + + -4.53625 + (5.0/3.0) * 0.479806 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe57_to_n_Fe56_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe57 --> n + Fe56 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe56_log_pf, dFe56_log_pf_dT9; + + // interpolating Fe56 partition function + get_partition_function_cached(Fe56, tfactors.T9, pf_cache, Fe56_log_pf, dFe56_log_pf_dT9); + + amrex::Real Fe57_log_pf, dFe57_log_pf_dT9; + + // interpolating Fe57 partition function + get_partition_function_cached(Fe57, tfactors.T9, pf_cache, Fe57_log_pf, dFe57_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Fe56_log_pf - Fe57_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dFe56_log_pf_dT9 - dFe57_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 58.841558195975416 + -88.79029962206134 * tfactors.T9i + 9.79414 * tfactors.T913i + -33.7366 * tfactors.T913 + + 2.97173 * tfactors.T9 + -0.236498 * tfactors.T953 + 13.3711 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 88.79029962206134 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 9.79414 * tfactors.T943i + (1.0/3.0) * -33.7366 * tfactors.T923i + + 2.97173 + (5.0/3.0) * -0.236498 * tfactors.T923 + 13.3711 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe57_to_He4_Cr53_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe57 --> He4 + Cr53 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cr53_log_pf, dCr53_log_pf_dT9; + + // interpolating Cr53 partition function + get_partition_function_cached(Cr53, tfactors.T9, pf_cache, Cr53_log_pf, dCr53_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe57_log_pf, dFe57_log_pf_dT9; + + // interpolating Fe57 partition function + get_partition_function_cached(Fe57, tfactors.T9, pf_cache, Fe57_log_pf, dFe57_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Cr53_log_pf - Fe57_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCr53_log_pf_dT9 - dFe57_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 91.62771985999834 + -84.93713365079924 * tfactors.T9i + -86.9567 * tfactors.T913i + -12.0579 * tfactors.T913 + + 1.33466 * tfactors.T9 + -0.14709 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 84.93713365079924 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -86.9567 * tfactors.T943i + (1.0/3.0) * -12.0579 * tfactors.T923i + + 1.33466 + (5.0/3.0) * -0.14709 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe58_to_n_Fe57_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe58 --> n + Fe57 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe57_log_pf, dFe57_log_pf_dT9; + + // interpolating Fe57 partition function + get_partition_function_cached(Fe57, tfactors.T9, pf_cache, Fe57_log_pf, dFe57_log_pf_dT9); + + amrex::Real Fe58_log_pf, dFe58_log_pf_dT9; + + // interpolating Fe58 partition function + get_partition_function_cached(Fe58, tfactors.T9, pf_cache, Fe58_log_pf, dFe58_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Fe57_log_pf - Fe58_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dFe57_log_pf_dT9 - dFe58_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 44.643727869415926 + -116.5841703751856 * tfactors.T9i + 2.1643 * tfactors.T913i + -7.49584 * tfactors.T913 + + 0.656354 * tfactors.T9 + -0.0549855 * tfactors.T953 + 3.88149 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 116.5841703751856 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.1643 * tfactors.T943i + (1.0/3.0) * -7.49584 * tfactors.T923i + + 0.656354 + (5.0/3.0) * -0.0549855 * tfactors.T923 + 3.88149 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe58_to_He4_Cr54_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe58 --> He4 + Cr54 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe58_log_pf, dFe58_log_pf_dT9; + + // interpolating Fe58 partition function + get_partition_function_cached(Fe58, tfactors.T9, pf_cache, Fe58_log_pf, dFe58_log_pf_dT9); + + amrex::Real Cr54_log_pf, dCr54_log_pf_dT9; + + // interpolating Cr54 partition function + get_partition_function_cached(Cr54, tfactors.T9, pf_cache, Cr54_log_pf, dCr54_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Cr54_log_pf - Fe58_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCr54_log_pf_dT9 - dFe58_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 88.27913568420604 + -88.71463638968933 * tfactors.T9i + -86.9945 * tfactors.T913i + -1.05674 * tfactors.T913 + + -4.13443 * tfactors.T9 + 0.599141 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 88.71463638968933 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -86.9945 * tfactors.T943i + (1.0/3.0) * -1.05674 * tfactors.T923i + + -4.13443 + (5.0/3.0) * 0.599141 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co53_to_p_Fe52_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co53 --> p + Fe52 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Co53_log_pf, dCo53_log_pf_dT9; + + // interpolating Co53 partition function + get_partition_function_cached(Co53, tfactors.T9, pf_cache, Co53_log_pf, dCo53_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe52_log_pf, dFe52_log_pf_dT9; + + // interpolating Fe52 partition function + get_partition_function_cached(Fe52, tfactors.T9, pf_cache, Fe52_log_pf, dFe52_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Fe52_log_pf - Co53_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dFe52_log_pf_dT9 - dCo53_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 60.90479478903703 + -18.756046851504873 * tfactors.T9i + -37.1457 * tfactors.T913i + -5.67417 * tfactors.T913 + + -0.559644 * tfactors.T9 + 0.102768 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 18.756046851504873 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -37.1457 * tfactors.T943i + (1.0/3.0) * -5.67417 * tfactors.T923i + + -0.559644 + (5.0/3.0) * 0.102768 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co54_to_n_Co53_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co54 --> n + Co53 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Co53_log_pf, dCo53_log_pf_dT9; + + // interpolating Co53 partition function + get_partition_function_cached(Co53, tfactors.T9, pf_cache, Co53_log_pf, dCo53_log_pf_dT9); + + amrex::Real Co54_log_pf, dCo54_log_pf_dT9; + + // interpolating Co54 partition function + get_partition_function_cached(Co54, tfactors.T9, pf_cache, Co54_log_pf, dCo54_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Co53_log_pf - Co54_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCo53_log_pf_dT9 - dCo54_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 36.98265527996963 + -155.75605226924756 * tfactors.T9i + -1.14795 * tfactors.T913 + + 0.413083 * tfactors.T9 + -0.0515627 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 155.75605226924756 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.14795 * tfactors.T923i + + 0.413083 + (5.0/3.0) * -0.0515627 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co54_to_p_Fe53_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co54 --> p + Fe53 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Co54_log_pf, dCo54_log_pf_dT9; + + // interpolating Co54 partition function + get_partition_function_cached(Co54, tfactors.T9, pf_cache, Co54_log_pf, dCo54_log_pf_dT9); + + amrex::Real Fe53_log_pf, dFe53_log_pf_dT9; + + // interpolating Fe53 partition function + get_partition_function_cached(Fe53, tfactors.T9, pf_cache, Fe53_log_pf, dFe53_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Fe53_log_pf - Co54_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dFe53_log_pf_dT9 - dCo54_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 62.650352641910125 + -50.4978852694235 * tfactors.T9i + -37.1501 * tfactors.T913i + 0.211459 * tfactors.T913 + + -2.79493 * tfactors.T9 + 0.358657 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 50.4978852694235 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -37.1501 * tfactors.T943i + (1.0/3.0) * 0.211459 * tfactors.T923i + + -2.79493 + (5.0/3.0) * 0.358657 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co54_to_He4_Mn50_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co54 --> He4 + Mn50 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Mn50_log_pf, dMn50_log_pf_dT9; + + // interpolating Mn50 partition function + get_partition_function_cached(Mn50, tfactors.T9, pf_cache, Mn50_log_pf, dMn50_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Co54_log_pf, dCo54_log_pf_dT9; + + // interpolating Co54 partition function + get_partition_function_cached(Co54, tfactors.T9, pf_cache, Co54_log_pf, dCo54_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Mn50_log_pf - Co54_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dMn50_log_pf_dT9 - dCo54_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 79.29573428204476 + -90.609538153796 * tfactors.T9i + -89.2309 * tfactors.T913i + -1.30702 * tfactors.T913 + + -1.30543 * tfactors.T9 + 0.141679 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 90.609538153796 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -89.2309 * tfactors.T943i + (1.0/3.0) * -1.30702 * tfactors.T923i + + -1.30543 + (5.0/3.0) * 0.141679 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co55_to_n_Co54_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co55 --> n + Co54 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Co54_log_pf, dCo54_log_pf_dT9; + + // interpolating Co54 partition function + get_partition_function_cached(Co54, tfactors.T9, pf_cache, Co54_log_pf, dCo54_log_pf_dT9); + + amrex::Real Co55_log_pf, dCo55_log_pf_dT9; + + // interpolating Co55 partition function + get_partition_function_cached(Co55, tfactors.T9, pf_cache, Co55_log_pf, dCo55_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Co54_log_pf - Co55_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCo54_log_pf_dT9 - dCo55_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 35.99671117382933 + -163.52179579618158 * tfactors.T9i + 0.433187 * tfactors.T913 + + 0.0888642 * tfactors.T9 + -0.0315521 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 163.52179579618158 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.433187 * tfactors.T923i + + 0.0888642 + (5.0/3.0) * -0.0315521 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co55_to_p_Fe54_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co55 --> p + Fe54 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Co55_log_pf, dCo55_log_pf_dT9; + + // interpolating Co55 partition function + get_partition_function_cached(Co55, tfactors.T9, pf_cache, Co55_log_pf, dCo55_log_pf_dT9); + + amrex::Real Fe54_log_pf, dFe54_log_pf_dT9; + + // interpolating Fe54 partition function + get_partition_function_cached(Fe54, tfactors.T9, pf_cache, Fe54_log_pf, dFe54_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Fe54_log_pf - Co55_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dFe54_log_pf_dT9 - dCo55_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 57.84851844810452 + -58.76958578644693 * tfactors.T9i + -37.1544 * tfactors.T913i + 0.950364 * tfactors.T913 + + -1.77529 * tfactors.T9 + 0.198562 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 58.76958578644693 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -37.1544 * tfactors.T943i + (1.0/3.0) * 0.950364 * tfactors.T923i + + -1.77529 + (5.0/3.0) * 0.198562 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co55_to_He4_Mn51_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co55 --> He4 + Mn51 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Mn51_log_pf, dMn51_log_pf_dT9; + + // interpolating Mn51 partition function + get_partition_function_cached(Mn51, tfactors.T9, pf_cache, Mn51_log_pf, dMn51_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Co55_log_pf, dCo55_log_pf_dT9; + + // interpolating Co55 partition function + get_partition_function_cached(Co55, tfactors.T9, pf_cache, Co55_log_pf, dCo55_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Mn51_log_pf - Co55_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dMn51_log_pf_dT9 - dCo55_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 90.61473213109255 + -95.29300562248025 * tfactors.T9i + -89.274 * tfactors.T913i + -10.4373 * tfactors.T913 + + 1.00492 * tfactors.T9 + -0.125548 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 95.29300562248025 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -89.274 * tfactors.T943i + (1.0/3.0) * -10.4373 * tfactors.T923i + + 1.00492 + (5.0/3.0) * -0.125548 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co56_to_n_Co55_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co56 --> n + Co55 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Co55_log_pf, dCo55_log_pf_dT9; + + // interpolating Co55 partition function + get_partition_function_cached(Co55, tfactors.T9, pf_cache, Co55_log_pf, dCo55_log_pf_dT9); + + amrex::Real Co56_log_pf, dCo56_log_pf_dT9; + + // interpolating Co56 partition function + get_partition_function_cached(Co56, tfactors.T9, pf_cache, Co56_log_pf, dCo56_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Co55_log_pf - Co56_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCo55_log_pf_dT9 - dCo56_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 40.647564333711024 + -116.994640839646 * tfactors.T9i + -1.86357 * tfactors.T913 + + 0.616591 * tfactors.T9 + -0.0839313 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 116.994640839646 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.86357 * tfactors.T923i + + 0.616591 + (5.0/3.0) * -0.0839313 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co56_to_p_Fe55_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co56 --> p + Fe55 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Fe55_log_pf, dFe55_log_pf_dT9; + + // interpolating Fe55 partition function + get_partition_function_cached(Fe55, tfactors.T9, pf_cache, Fe55_log_pf, dFe55_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Co56_log_pf, dCo56_log_pf_dT9; + + // interpolating Co56 partition function + get_partition_function_cached(Co56, tfactors.T9, pf_cache, Co56_log_pf, dCo56_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Fe55_log_pf - Co56_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dFe55_log_pf_dT9 - dCo56_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 58.620466010358925 + -67.86404663834863 * tfactors.T9i + -37.1585 * tfactors.T913i + 1.66198 * tfactors.T913 + + -1.60842 * tfactors.T9 + 0.148916 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 67.86404663834863 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -37.1585 * tfactors.T943i + (1.0/3.0) * 1.66198 * tfactors.T923i + + -1.60842 + (5.0/3.0) * 0.148916 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co56_to_He4_Mn52_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co56 --> He4 + Mn52 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn52_log_pf, dMn52_log_pf_dT9; + + // interpolating Mn52 partition function + get_partition_function_cached(Mn52, tfactors.T9, pf_cache, Mn52_log_pf, dMn52_log_pf_dT9); + + amrex::Real Co56_log_pf, dCo56_log_pf_dT9; + + // interpolating Co56 partition function + get_partition_function_cached(Co56, tfactors.T9, pf_cache, Co56_log_pf, dCo56_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Mn52_log_pf - Co56_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dMn52_log_pf_dT9 - dCo56_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 88.91600903298027 + -89.98173372334725 * tfactors.T9i + -89.3157 * tfactors.T913i + -1.95982 * tfactors.T913 + + -2.45671 * tfactors.T9 + 0.296095 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 89.98173372334725 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -89.3157 * tfactors.T943i + (1.0/3.0) * -1.95982 * tfactors.T923i + + -2.45671 + (5.0/3.0) * 0.296095 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co57_to_n_Co56_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co57 --> n + Co56 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Co56_log_pf, dCo56_log_pf_dT9; + + // interpolating Co56 partition function + get_partition_function_cached(Co56, tfactors.T9, pf_cache, Co56_log_pf, dCo56_log_pf_dT9); + + amrex::Real Co57_log_pf, dCo57_log_pf_dT9; + + // interpolating Co57 partition function + get_partition_function_cached(Co57, tfactors.T9, pf_cache, Co57_log_pf, dCo57_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Co56_log_pf - Co57_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCo56_log_pf_dT9 - dCo57_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 41.17386809654295 + -132.01901045161702 * tfactors.T9i + -1.37855 * tfactors.T913 + + 0.299896 * tfactors.T9 + -0.04382 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 132.01901045161702 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.37855 * tfactors.T923i + + 0.299896 + (5.0/3.0) * -0.04382 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co57_to_p_Fe56_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co57 --> p + Fe56 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe56_log_pf, dFe56_log_pf_dT9; + + // interpolating Fe56 partition function + get_partition_function_cached(Fe56, tfactors.T9, pf_cache, Fe56_log_pf, dFe56_log_pf_dT9); + + amrex::Real Co57_log_pf, dCo57_log_pf_dT9; + + // interpolating Co57 partition function + get_partition_function_cached(Co57, tfactors.T9, pf_cache, Co57_log_pf, dCo57_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Fe56_log_pf - Co57_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dFe56_log_pf_dT9 - dCo57_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 57.68564187237867 + -69.94636137001572 * tfactors.T9i + -37.1625 * tfactors.T913i + 1.06776 * tfactors.T913 + + -1.31689 * tfactors.T9 + 0.122089 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 69.94636137001572 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -37.1625 * tfactors.T943i + (1.0/3.0) * 1.06776 * tfactors.T923i + + -1.31689 + (5.0/3.0) * 0.122089 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co57_to_He4_Mn53_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co57 --> He4 + Mn53 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn53_log_pf, dMn53_log_pf_dT9; + + // interpolating Mn53 partition function + get_partition_function_cached(Mn53, tfactors.T9, pf_cache, Mn53_log_pf, dMn53_log_pf_dT9); + + amrex::Real Co57_log_pf, dCo57_log_pf_dT9; + + // interpolating Co57 partition function + get_partition_function_cached(Co57, tfactors.T9, pf_cache, Co57_log_pf, dCo57_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Mn53_log_pf - Co57_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dMn53_log_pf_dT9 - dCo57_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 87.00976353805295 + -82.16365381973904 * tfactors.T9i + -89.3558 * tfactors.T913i + 0.000882861 * tfactors.T913 + + -2.79327 * tfactors.T9 + 0.309057 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 82.16365381973904 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -89.3558 * tfactors.T943i + (1.0/3.0) * 0.000882861 * tfactors.T923i + + -2.79327 + (5.0/3.0) * 0.309057 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co58_to_n_Co57_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co58 --> n + Co57 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Co58_log_pf, dCo58_log_pf_dT9; + + // interpolating Co58 partition function + get_partition_function_cached(Co58, tfactors.T9, pf_cache, Co58_log_pf, dCo58_log_pf_dT9); + + amrex::Real Co57_log_pf, dCo57_log_pf_dT9; + + // interpolating Co57 partition function + get_partition_function_cached(Co57, tfactors.T9, pf_cache, Co57_log_pf, dCo57_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Co57_log_pf - Co58_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCo57_log_pf_dT9 - dCo58_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 41.1673168209753 + -99.48458344599165 * tfactors.T9i + -1.03654 * tfactors.T913 + + 0.342218 * tfactors.T9 + -0.0638367 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 99.48458344599165 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.03654 * tfactors.T923i + + 0.342218 + (5.0/3.0) * -0.0638367 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co58_to_p_Fe57_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co58 --> p + Fe57 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Co58_log_pf, dCo58_log_pf_dT9; + + // interpolating Co58 partition function + get_partition_function_cached(Co58, tfactors.T9, pf_cache, Co58_log_pf, dCo58_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe57_log_pf, dFe57_log_pf_dT9; + + // interpolating Fe57 partition function + get_partition_function_cached(Fe57, tfactors.T9, pf_cache, Fe57_log_pf, dFe57_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Fe57_log_pf - Co58_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dFe57_log_pf_dT9 - dCo58_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 58.05180049737856 + -80.70073249394603 * tfactors.T9i + -37.1663 * tfactors.T913i + 3.48503 * tfactors.T913 + + -2.56204 * tfactors.T9 + 0.272972 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 80.70073249394603 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -37.1663 * tfactors.T943i + (1.0/3.0) * 3.48503 * tfactors.T923i + + -2.56204 + (5.0/3.0) * 0.272972 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co58_to_He4_Mn54_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co58 --> He4 + Mn54 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Co58_log_pf, dCo58_log_pf_dT9; + + // interpolating Co58 partition function + get_partition_function_cached(Co58, tfactors.T9, pf_cache, Co58_log_pf, dCo58_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn54_log_pf, dMn54_log_pf_dT9; + + // interpolating Mn54 partition function + get_partition_function_cached(Mn54, tfactors.T9, pf_cache, Mn54_log_pf, dMn54_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Mn54_log_pf - Co58_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dMn54_log_pf_dT9 - dCo58_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 92.93126952498267 + -77.91291883170369 * tfactors.T9i + -89.3946 * tfactors.T913i + -8.26476 * tfactors.T913 + + -0.766622 * tfactors.T9 + 0.135181 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 77.91291883170369 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -89.3946 * tfactors.T943i + (1.0/3.0) * -8.26476 * tfactors.T923i + + -0.766622 + (5.0/3.0) * 0.135181 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co59_to_n_Co58_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co59 --> n + Co58 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Co59_log_pf, dCo59_log_pf_dT9; + + // interpolating Co59 partition function + get_partition_function_cached(Co59, tfactors.T9, pf_cache, Co59_log_pf, dCo59_log_pf_dT9); + + amrex::Real Co58_log_pf, dCo58_log_pf_dT9; + + // interpolating Co58 partition function + get_partition_function_cached(Co58, tfactors.T9, pf_cache, Co58_log_pf, dCo58_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Co58_log_pf - Co59_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCo58_log_pf_dT9 - dCo59_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 41.42234203010942 + -121.31152158086539 * tfactors.T9i + -2.18418 * tfactors.T913 + + 0.328629 * tfactors.T9 + -0.0407234 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 121.31152158086539 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.18418 * tfactors.T923i + + 0.328629 + (5.0/3.0) * -0.0407234 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co59_to_p_Fe58_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co59 --> p + Fe58 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Co59_log_pf, dCo59_log_pf_dT9; + + // interpolating Co59 partition function + get_partition_function_cached(Co59, tfactors.T9, pf_cache, Co59_log_pf, dCo59_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe58_log_pf, dFe58_log_pf_dT9; + + // interpolating Fe58 partition function + get_partition_function_cached(Fe58, tfactors.T9, pf_cache, Fe58_log_pf, dFe58_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Fe58_log_pf - Co59_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dFe58_log_pf_dT9 - dCo59_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 57.83831465807205 + -85.44953339962584 * tfactors.T9i + -37.17 * tfactors.T913i + 1.63285 * tfactors.T913 + + -1.16636 * tfactors.T9 + 0.0508619 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 85.44953339962584 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -37.17 * tfactors.T943i + (1.0/3.0) * 1.63285 * tfactors.T923i + + -1.16636 + (5.0/3.0) * 0.0508619 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co59_to_He4_Mn55_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co59 --> He4 + Mn55 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Co59_log_pf, dCo59_log_pf_dT9; + + // interpolating Co59 partition function + get_partition_function_cached(Co59, tfactors.T9, pf_cache, Co59_log_pf, dCo59_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn55_log_pf, dMn55_log_pf_dT9; + + // interpolating Mn55 partition function + get_partition_function_cached(Mn55, tfactors.T9, pf_cache, Mn55_log_pf, dMn55_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Mn55_log_pf - Co59_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dMn55_log_pf_dT9 - dCo59_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 84.78450380058001 + -80.56060568633566 * tfactors.T9i + -89.432 * tfactors.T913i + 5.33428 * tfactors.T913 + + -5.11461 * tfactors.T9 + 0.613808 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 80.56060568633566 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -89.432 * tfactors.T943i + (1.0/3.0) * 5.33428 * tfactors.T923i + + -5.11461 + (5.0/3.0) * 0.613808 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni56_to_p_Co55_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni56 --> p + Co55 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ni56_log_pf, dNi56_log_pf_dT9; + + // interpolating Ni56 partition function + get_partition_function_cached(Ni56, tfactors.T9, pf_cache, Ni56_log_pf, dNi56_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Co55_log_pf, dCo55_log_pf_dT9; + + // interpolating Co55 partition function + get_partition_function_cached(Co55, tfactors.T9, pf_cache, Co55_log_pf, dCo55_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Co55_log_pf - Ni56_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCo55_log_pf_dT9 - dNi56_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 63.15120404192561 + -83.16460378149378 * tfactors.T9i + -38.1053 * tfactors.T913i + -0.210947 * tfactors.T913 + + -2.68377 * tfactors.T9 + 0.355814 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 83.16460378149378 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -38.1053 * tfactors.T943i + (1.0/3.0) * -0.210947 * tfactors.T923i + + -2.68377 + (5.0/3.0) * 0.355814 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni56_to_He4_Fe52_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni56 --> He4 + Fe52 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ni56_log_pf, dNi56_log_pf_dT9; + + // interpolating Ni56 partition function + get_partition_function_cached(Ni56, tfactors.T9, pf_cache, Ni56_log_pf, dNi56_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe52_log_pf, dFe52_log_pf_dT9; + + // interpolating Fe52 partition function + get_partition_function_cached(Fe52, tfactors.T9, pf_cache, Fe52_log_pf, dFe52_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Fe52_log_pf - Ni56_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dFe52_log_pf_dT9 - dNi56_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 91.62430485073777 + -92.84097094326391 * tfactors.T9i + -91.6819 * tfactors.T913i + -9.51885 * tfactors.T913 + + -0.533014 * tfactors.T9 + 0.0892607 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 92.84097094326391 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -91.6819 * tfactors.T943i + (1.0/3.0) * -9.51885 * tfactors.T923i + + -0.533014 + (5.0/3.0) * 0.0892607 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni57_to_n_Ni56_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni57 --> n + Ni56 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni56_log_pf, dNi56_log_pf_dT9; + + // interpolating Ni56 partition function + get_partition_function_cached(Ni56, tfactors.T9, pf_cache, Ni56_log_pf, dNi56_log_pf_dT9); + + amrex::Real Ni57_log_pf, dNi57_log_pf_dT9; + + // interpolating Ni57 partition function + get_partition_function_cached(Ni57, tfactors.T9, pf_cache, Ni57_log_pf, dNi57_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ni56_log_pf - Ni57_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNi56_log_pf_dT9 - dNi57_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 38.391039283996996 + -118.91983039605458 * tfactors.T9i + -1.19665 * tfactors.T913 + + 0.507179 * tfactors.T9 + -0.074604 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 118.91983039605458 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.19665 * tfactors.T923i + + 0.507179 + (5.0/3.0) * -0.074604 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni57_to_p_Co56_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni57 --> p + Co56 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ni57_log_pf, dNi57_log_pf_dT9; + + // interpolating Ni57 partition function + get_partition_function_cached(Ni57, tfactors.T9, pf_cache, Ni57_log_pf, dNi57_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Co56_log_pf, dCo56_log_pf_dT9; + + // interpolating Co56 partition function + get_partition_function_cached(Co56, tfactors.T9, pf_cache, Co56_log_pf, dCo56_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Co56_log_pf - Ni57_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCo56_log_pf_dT9 - dNi57_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 60.10327899221158 + -85.08979333790236 * tfactors.T9i + -38.1094 * tfactors.T913i + 2.57091 * tfactors.T913 + + -2.07795 * tfactors.T9 + 0.20757 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 85.08979333790236 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -38.1094 * tfactors.T943i + (1.0/3.0) * 2.57091 * tfactors.T923i + + -2.07795 + (5.0/3.0) * 0.20757 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni57_to_He4_Fe53_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni57 --> He4 + Fe53 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ni57_log_pf, dNi57_log_pf_dT9; + + // interpolating Ni57 partition function + get_partition_function_cached(Ni57, tfactors.T9, pf_cache, Ni57_log_pf, dNi57_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe53_log_pf, dFe53_log_pf_dT9; + + // interpolating Fe53 partition function + get_partition_function_cached(Fe53, tfactors.T9, pf_cache, Fe53_log_pf, dFe53_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Fe53_log_pf - Ni57_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dFe53_log_pf_dT9 - dNi57_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 94.74134670763823 + -87.74658748798956 * tfactors.T9i + -91.7231 * tfactors.T913i + -10.1816 * tfactors.T913 + + -0.0406303 * tfactors.T9 + 0.0345056 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 87.74658748798956 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -91.7231 * tfactors.T943i + (1.0/3.0) * -10.1816 * tfactors.T923i + + -0.0406303 + (5.0/3.0) * 0.0345056 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni58_to_n_Ni57_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni58 --> n + Ni57 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni57_log_pf, dNi57_log_pf_dT9; + + // interpolating Ni57 partition function + get_partition_function_cached(Ni57, tfactors.T9, pf_cache, Ni57_log_pf, dNi57_log_pf_dT9); + + amrex::Real Ni58_log_pf, dNi58_log_pf_dT9; + + // interpolating Ni58 partition function + get_partition_function_cached(Ni58, tfactors.T9, pf_cache, Ni58_log_pf, dNi58_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ni57_log_pf - Ni58_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNi57_log_pf_dT9 - dNi58_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 42.36077897558323 + -141.76332431826057 * tfactors.T9i + -1.90814 * tfactors.T913 + + 0.493188 * tfactors.T9 + -0.0684633 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 141.76332431826057 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.90814 * tfactors.T923i + + 0.493188 + (5.0/3.0) * -0.0684633 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni58_to_p_Co57_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni58 --> p + Co57 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni58_log_pf, dNi58_log_pf_dT9; + + // interpolating Ni58 partition function + get_partition_function_cached(Ni58, tfactors.T9, pf_cache, Ni58_log_pf, dNi58_log_pf_dT9); + + amrex::Real Co57_log_pf, dCo57_log_pf_dT9; + + // interpolating Co57 partition function + get_partition_function_cached(Co57, tfactors.T9, pf_cache, Co57_log_pf, dCo57_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Co57_log_pf - Ni58_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCo57_log_pf_dT9 - dNi58_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 61.794489871251855 + -94.83410720454592 * tfactors.T9i + -38.1133 * tfactors.T913i + 1.77414 * tfactors.T913 + + -1.48268 * tfactors.T9 + 0.121073 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 94.83410720454592 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -38.1133 * tfactors.T943i + (1.0/3.0) * 1.77414 * tfactors.T923i + + -1.48268 + (5.0/3.0) * 0.121073 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni58_to_He4_Fe54_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni58 --> He4 + Fe54 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni58_log_pf, dNi58_log_pf_dT9; + + // interpolating Ni58 partition function + get_partition_function_cached(Ni58, tfactors.T9, pf_cache, Ni58_log_pf, dNi58_log_pf_dT9); + + amrex::Real Fe54_log_pf, dFe54_log_pf_dT9; + + // interpolating Fe54 partition function + get_partition_function_cached(Fe54, tfactors.T9, pf_cache, Fe54_log_pf, dFe54_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Fe54_log_pf - Ni58_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dFe54_log_pf_dT9 - dNi58_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 85.23428031558652 + -74.25981652709197 * tfactors.T9i + -91.7628 * tfactors.T913i + 4.23027 * tfactors.T913 + + -3.31305 * tfactors.T9 + 0.271293 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 74.25981652709197 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -91.7628 * tfactors.T943i + (1.0/3.0) * 4.23027 * tfactors.T923i + + -3.31305 + (5.0/3.0) * 0.271293 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni59_to_n_Ni58_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni59 --> n + Ni58 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni58_log_pf, dNi58_log_pf_dT9; + + // interpolating Ni58 partition function + get_partition_function_cached(Ni58, tfactors.T9, pf_cache, Ni58_log_pf, dNi58_log_pf_dT9); + + amrex::Real Ni59_log_pf, dNi59_log_pf_dT9; + + // interpolating Ni59 partition function + get_partition_function_cached(Ni59, tfactors.T9, pf_cache, Ni59_log_pf, dNi59_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ni58_log_pf - Ni59_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNi58_log_pf_dT9 - dNi59_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 30.94735475592273 + -104.29879952124612 * tfactors.T9i + -11.785 * tfactors.T913i + 19.5347 * tfactors.T913 + + -0.857179 * tfactors.T9 + 0.00111653 * tfactors.T953 + -7.85642 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 104.29879952124612 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -11.785 * tfactors.T943i + (1.0/3.0) * 19.5347 * tfactors.T923i + + -0.857179 + (5.0/3.0) * 0.00111653 * tfactors.T923 + -7.85642 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni59_to_p_Co58_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni59 --> p + Co58 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Co58_log_pf, dCo58_log_pf_dT9; + + // interpolating Co58 partition function + get_partition_function_cached(Co58, tfactors.T9, pf_cache, Co58_log_pf, dCo58_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni59_log_pf, dNi59_log_pf_dT9; + + // interpolating Ni59 partition function + get_partition_function_cached(Ni59, tfactors.T9, pf_cache, Ni59_log_pf, dNi59_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Co58_log_pf - Ni59_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCo58_log_pf_dT9 - dNi59_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 60.028557806199274 + -99.781113279822 * tfactors.T9i + -38.1171 * tfactors.T913i + 1.68645 * tfactors.T913 + + -1.51404 * tfactors.T9 + 0.126766 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 99.781113279822 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -38.1171 * tfactors.T943i + (1.0/3.0) * 1.68645 * tfactors.T923i + + -1.51404 + (5.0/3.0) * 0.126766 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni59_to_He4_Fe55_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni59 --> He4 + Fe55 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Fe55_log_pf, dFe55_log_pf_dT9; + + // interpolating Fe55 partition function + get_partition_function_cached(Fe55, tfactors.T9, pf_cache, Fe55_log_pf, dFe55_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni59_log_pf, dNi59_log_pf_dT9; + + // interpolating Ni59 partition function + get_partition_function_cached(Ni59, tfactors.T9, pf_cache, Ni59_log_pf, dNi59_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Fe55_log_pf - Ni59_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dFe55_log_pf_dT9 - dNi59_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 85.76154830005264 + -70.79122606060099 * tfactors.T9i + -91.8012 * tfactors.T913i + 4.12067 * tfactors.T913 + + -4.13271 * tfactors.T9 + 0.450006 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 70.79122606060099 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -91.8012 * tfactors.T943i + (1.0/3.0) * 4.12067 * tfactors.T923i + + -4.13271 + (5.0/3.0) * 0.450006 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni60_to_n_Ni59_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni60 --> n + Ni59 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni59_log_pf, dNi59_log_pf_dT9; + + // interpolating Ni59 partition function + get_partition_function_cached(Ni59, tfactors.T9, pf_cache, Ni59_log_pf, dNi59_log_pf_dT9); + + amrex::Real Ni60_log_pf, dNi60_log_pf_dT9; + + // interpolating Ni60 partition function + get_partition_function_cached(Ni60, tfactors.T9, pf_cache, Ni60_log_pf, dNi60_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ni59_log_pf - Ni60_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNi59_log_pf_dT9 - dNi60_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 50.66471157962596 + -132.25906005460044 * tfactors.T9i + 9.92411 * tfactors.T913i + -20.503 * tfactors.T913 + + 1.39981 * tfactors.T9 + -0.101641 * tfactors.T953 + 10.08204 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 132.25906005460044 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 9.92411 * tfactors.T943i + (1.0/3.0) * -20.503 * tfactors.T923i + + 1.39981 + (5.0/3.0) * -0.101641 * tfactors.T923 + 10.08204 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni60_to_p_Co59_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni60 --> p + Co59 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Co59_log_pf, dCo59_log_pf_dT9; + + // interpolating Co59 partition function + get_partition_function_cached(Co59, tfactors.T9, pf_cache, Co59_log_pf, dCo59_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni60_log_pf, dNi60_log_pf_dT9; + + // interpolating Ni60 partition function + get_partition_function_cached(Ni60, tfactors.T9, pf_cache, Ni60_log_pf, dNi60_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Co59_log_pf - Ni60_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCo59_log_pf_dT9 - dNi60_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 61.736527355715815 + -110.61857275355705 * tfactors.T9i + -38.1208 * tfactors.T913i + 2.42609 * tfactors.T913 + + -1.5885 * tfactors.T9 + 0.110313 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 110.61857275355705 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -38.1208 * tfactors.T943i + (1.0/3.0) * 2.42609 * tfactors.T923i + + -1.5885 + (5.0/3.0) * 0.110313 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni60_to_He4_Fe56_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni60 --> He4 + Fe56 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe56_log_pf, dFe56_log_pf_dT9; + + // interpolating Fe56 partition function + get_partition_function_cached(Fe56, tfactors.T9, pf_cache, Fe56_log_pf, dFe56_log_pf_dT9); + + amrex::Real Ni60_log_pf, dNi60_log_pf_dT9; + + // interpolating Ni60 partition function + get_partition_function_cached(Ni60, tfactors.T9, pf_cache, Ni60_log_pf, dNi60_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Fe56_log_pf - Ni60_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dFe56_log_pf_dT9 - dNi60_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 85.65746764515538 + -73.00351139524432 * tfactors.T9i + -91.8383 * tfactors.T913i + 3.63237 * tfactors.T913 + + -2.73367 * tfactors.T9 + 0.179684 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 73.00351139524432 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -91.8383 * tfactors.T943i + (1.0/3.0) * 3.63237 * tfactors.T923i + + -2.73367 + (5.0/3.0) * 0.179684 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni61_to_n_Ni60_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni61 --> n + Ni60 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni61_log_pf, dNi61_log_pf_dT9; + + // interpolating Ni61 partition function + get_partition_function_cached(Ni61, tfactors.T9, pf_cache, Ni61_log_pf, dNi61_log_pf_dT9); + + amrex::Real Ni60_log_pf, dNi60_log_pf_dT9; + + // interpolating Ni60 partition function + get_partition_function_cached(Ni60, tfactors.T9, pf_cache, Ni60_log_pf, dNi60_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ni60_log_pf - Ni61_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNi60_log_pf_dT9 - dNi61_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 27.907409089732617 + -90.66026610410427 * tfactors.T9i + -9.46323 * tfactors.T913i + 19.9252 * tfactors.T913 + + -0.985724 * tfactors.T9 + 0.0164222 * tfactors.T953 + -7.258240000000001 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 90.66026610410427 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -9.46323 * tfactors.T943i + (1.0/3.0) * 19.9252 * tfactors.T923i + + -0.985724 + (5.0/3.0) * 0.0164222 * tfactors.T923 + -7.258240000000001 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni61_to_He4_Fe57_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni61 --> He4 + Fe57 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ni61_log_pf, dNi61_log_pf_dT9; + + // interpolating Ni61 partition function + get_partition_function_cached(Ni61, tfactors.T9, pf_cache, Ni61_log_pf, dNi61_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe57_log_pf, dFe57_log_pf_dT9; + + // interpolating Fe57 partition function + get_partition_function_cached(Fe57, tfactors.T9, pf_cache, Fe57_log_pf, dFe57_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Fe57_log_pf - Ni61_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dFe57_log_pf_dT9 - dNi61_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 90.48278853891259 + -75.02200127728725 * tfactors.T9i + -91.8742 * tfactors.T913i + -4.07595 * tfactors.T913 + + -1.93027 * tfactors.T9 + 0.240619 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 75.02200127728725 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -91.8742 * tfactors.T943i + (1.0/3.0) * -4.07595 * tfactors.T923i + + -1.93027 + (5.0/3.0) * 0.240619 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni62_to_n_Ni61_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni62 --> n + Ni61 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni61_log_pf, dNi61_log_pf_dT9; + + // interpolating Ni61 partition function + get_partition_function_cached(Ni61, tfactors.T9, pf_cache, Ni61_log_pf, dNi61_log_pf_dT9); + + amrex::Real Ni62_log_pf, dNi62_log_pf_dT9; + + // interpolating Ni62 partition function + get_partition_function_cached(Ni62, tfactors.T9, pf_cache, Ni62_log_pf, dNi62_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ni61_log_pf - Ni62_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNi61_log_pf_dT9 - dNi62_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 36.82959315514928 + -122.94014660230951 * tfactors.T9i + -2.82482 * tfactors.T913i + 7.69552 * tfactors.T913 + + -0.605244 * tfactors.T9 + 0.0243914 * tfactors.T953 + -1.62147 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 122.94014660230951 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.82482 * tfactors.T943i + (1.0/3.0) * 7.69552 * tfactors.T923i + + -0.605244 + (5.0/3.0) * 0.0243914 * tfactors.T923 + -1.62147 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni62_to_He4_Fe58_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni62 --> He4 + Fe58 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ni62_log_pf, dNi62_log_pf_dT9; + + // interpolating Ni62 partition function + get_partition_function_cached(Ni62, tfactors.T9, pf_cache, Ni62_log_pf, dNi62_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe58_log_pf, dFe58_log_pf_dT9; + + // interpolating Fe58 partition function + get_partition_function_cached(Fe58, tfactors.T9, pf_cache, Fe58_log_pf, dFe58_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Fe58_log_pf - Ni62_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dFe58_log_pf_dT9 - dNi62_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 84.38665382464595 + -81.41748330441119 * tfactors.T9i + -91.9089 * tfactors.T913i + 8.18581 * tfactors.T913 + + -6.00824 * tfactors.T9 + 0.693434 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 81.41748330441119 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -91.9089 * tfactors.T943i + (1.0/3.0) * 8.18581 * tfactors.T923i + + -6.00824 + (5.0/3.0) * 0.693434 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni63_to_n_Ni62_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni63 --> n + Ni62 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni62_log_pf, dNi62_log_pf_dT9; + + // interpolating Ni62 partition function + get_partition_function_cached(Ni62, tfactors.T9, pf_cache, Ni62_log_pf, dNi62_log_pf_dT9); + + amrex::Real Ni63_log_pf, dNi63_log_pf_dT9; + + // interpolating Ni63 partition function + get_partition_function_cached(Ni63, tfactors.T9, pf_cache, Ni63_log_pf, dNi63_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ni62_log_pf - Ni63_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNi62_log_pf_dT9 - dNi63_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 28.783239585521642 + -79.37250955336374 * tfactors.T9i + -1.2799 * tfactors.T913i + 10.7874 * tfactors.T913 + + -0.552819 * tfactors.T9 + -0.0106439 * tfactors.T953 + -2.03486 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 79.37250955336374 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.2799 * tfactors.T943i + (1.0/3.0) * 10.7874 * tfactors.T923i + + -0.552819 + (5.0/3.0) * -0.0106439 * tfactors.T923 + -2.03486 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni64_to_n_Ni63_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni64 --> n + Ni63 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni63_log_pf, dNi63_log_pf_dT9; + + // interpolating Ni63 partition function + get_partition_function_cached(Ni63, tfactors.T9, pf_cache, Ni63_log_pf, dNi63_log_pf_dT9); + + amrex::Real Ni64_log_pf, dNi64_log_pf_dT9; + + // interpolating Ni64 partition function + get_partition_function_cached(Ni64, tfactors.T9, pf_cache, Ni64_log_pf, dNi64_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ni63_log_pf - Ni64_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNi63_log_pf_dT9 - dNi64_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 53.924073376987856 + -112.1301085488886 * tfactors.T9i + 7.01558 * tfactors.T913i + -23.8529 * tfactors.T913 + + 2.50513 * tfactors.T9 + -0.227209 * tfactors.T953 + 9.157029999999999 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 112.1301085488886 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 7.01558 * tfactors.T943i + (1.0/3.0) * -23.8529 * tfactors.T923i + + 2.50513 + (5.0/3.0) * -0.227209 * tfactors.T923 + 9.157029999999999 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu57_to_p_Ni56_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu57 --> p + Ni56 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ni56_log_pf, dNi56_log_pf_dT9; + + // interpolating Ni56 partition function + get_partition_function_cached(Ni56, tfactors.T9, pf_cache, Ni56_log_pf, dNi56_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu57_log_pf, dCu57_log_pf_dT9; + + // interpolating Cu57 partition function + get_partition_function_cached(Cu57, tfactors.T9, pf_cache, Cu57_log_pf, dCu57_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ni56_log_pf - Cu57_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dNi56_log_pf_dT9 - dCu57_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from wienr + ln_set_rate = 18.707503168339574 + -12.781423522779594 * tfactors.T9i + -0.0409988 * tfactors.T913 + + 0.0619696 * tfactors.T9 + -0.0172498 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 12.781423522779594 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.0409988 * tfactors.T923i + + 0.0619696 + (5.0/3.0) * -0.0172498 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from wienr + ln_set_rate = 9.448143168339575 + -11.871423522779594 * tfactors.T9i + -0.0409988 * tfactors.T913 + + 0.0619696 * tfactors.T9 + -0.0172498 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 11.871423522779594 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.0409988 * tfactors.T923i + + 0.0619696 + (5.0/3.0) * -0.0172498 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from wienn + ln_set_rate = 43.82834316833957 + -8.011423522779594 * tfactors.T9i + -39.3 * tfactors.T913i + -0.0409988 * tfactors.T913 + + 0.0619696 * tfactors.T9 + -0.0172498 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 8.011423522779594 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.3 * tfactors.T943i + (1.0/3.0) * -0.0409988 * tfactors.T923i + + 0.0619696 + (5.0/3.0) * -0.0172498 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from wienr + ln_set_rate = 30.775833168339574 + -29.211423522779594 * tfactors.T9i + -0.0409988 * tfactors.T913 + + 0.0619696 * tfactors.T9 + -0.0172498 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 29.211423522779594 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.0409988 * tfactors.T923i + + 0.0619696 + (5.0/3.0) * -0.0172498 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from wienr + ln_set_rate = 30.951453168339576 + -27.811423522779595 * tfactors.T9i + -0.0409988 * tfactors.T913 + + 0.0619696 * tfactors.T9 + -0.0172498 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 27.811423522779595 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.0409988 * tfactors.T923i + + 0.0619696 + (5.0/3.0) * -0.0172498 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu57_to_He4_Co53_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu57 --> He4 + Co53 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Co53_log_pf, dCo53_log_pf_dT9; + + // interpolating Co53 partition function + get_partition_function_cached(Co53, tfactors.T9, pf_cache, Co53_log_pf, dCo53_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu57_log_pf, dCu57_log_pf_dT9; + + // interpolating Cu57 partition function + get_partition_function_cached(Cu57, tfactors.T9, pf_cache, Cu57_log_pf, dCu57_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Co53_log_pf - Cu57_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCo53_log_pf_dT9 - dCu57_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 82.60965323004032 + -82.09634761454583 * tfactors.T9i + -94.0605 * tfactors.T913i + -2.61232 * tfactors.T913 + + -0.4397 * tfactors.T9 + -0.00420698 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 82.09634761454583 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -94.0605 * tfactors.T943i + (1.0/3.0) * -2.61232 * tfactors.T923i + + -0.4397 + (5.0/3.0) * -0.00420698 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu58_to_n_Cu57_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu58 --> n + Cu57 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu57_log_pf, dCu57_log_pf_dT9; + + // interpolating Cu57 partition function + get_partition_function_cached(Cu57, tfactors.T9, pf_cache, Cu57_log_pf, dCu57_log_pf_dT9); + + amrex::Real Cu58_log_pf, dCu58_log_pf_dT9; + + // interpolating Cu58 partition function + get_partition_function_cached(Cu58, tfactors.T9, pf_cache, Cu58_log_pf, dCu58_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cu57_log_pf - Cu58_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCu57_log_pf_dT9 - dCu58_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 34.75978370512827 + -144.24669119632878 * tfactors.T9i + -0.954817 * tfactors.T913 + + 0.394641 * tfactors.T9 + -0.0489206 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 144.24669119632878 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.954817 * tfactors.T923i + + 0.394641 + (5.0/3.0) * -0.0489206 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu58_to_p_Ni57_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu58 --> p + Ni57 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ni57_log_pf, dNi57_log_pf_dT9; + + // interpolating Ni57 partition function + get_partition_function_cached(Ni57, tfactors.T9, pf_cache, Ni57_log_pf, dNi57_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu58_log_pf, dCu58_log_pf_dT9; + + // interpolating Cu58 partition function + get_partition_function_cached(Cu58, tfactors.T9, pf_cache, Cu58_log_pf, dCu58_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ni57_log_pf - Cu58_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dNi57_log_pf_dT9 - dCu58_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 61.71278758947085 + -33.33828432305382 * tfactors.T9i + -39.0487 * tfactors.T913i + -0.339241 * tfactors.T913 + + -2.87307 * tfactors.T9 + 0.382369 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 33.33828432305382 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.0487 * tfactors.T943i + (1.0/3.0) * -0.339241 * tfactors.T923i + + -2.87307 + (5.0/3.0) * 0.382369 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu58_to_He4_Co54_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu58 --> He4 + Co54 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Co54_log_pf, dCo54_log_pf_dT9; + + // interpolating Co54 partition function + get_partition_function_cached(Co54, tfactors.T9, pf_cache, Co54_log_pf, dCo54_log_pf_dT9); + + amrex::Real Cu58_log_pf, dCu58_log_pf_dT9; + + // interpolating Cu58 partition function + get_partition_function_cached(Cu58, tfactors.T9, pf_cache, Cu58_log_pf, dCu58_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Co54_log_pf - Cu58_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCo54_log_pf_dT9 - dCu58_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 79.57778165519896 + -70.58698654159826 * tfactors.T9i + -94.1012 * tfactors.T913i + 7.09095 * tfactors.T913 + + -5.85934 * tfactors.T9 + 0.728369 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 70.58698654159826 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -94.1012 * tfactors.T943i + (1.0/3.0) * 7.09095 * tfactors.T923i + + -5.85934 + (5.0/3.0) * 0.728369 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu59_to_n_Cu58_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu59 --> n + Cu58 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu59_log_pf, dCu59_log_pf_dT9; + + // interpolating Cu59 partition function + get_partition_function_cached(Cu59, tfactors.T9, pf_cache, Cu59_log_pf, dCu59_log_pf_dT9); + + amrex::Real Cu58_log_pf, dCu58_log_pf_dT9; + + // interpolating Cu58 partition function + get_partition_function_cached(Cu58, tfactors.T9, pf_cache, Cu58_log_pf, dCu58_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cu58_log_pf - Cu59_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCu58_log_pf_dT9 - dCu59_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 37.20007509805149 + -148.09590985718478 * tfactors.T9i + -0.307504 * tfactors.T913 + + 0.342948 * tfactors.T9 + -0.0507762 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 148.09590985718478 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.307504 * tfactors.T923i + + 0.342948 + (5.0/3.0) * -0.0507762 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu59_to_p_Ni58_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu59 --> p + Ni58 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cu59_log_pf, dCu59_log_pf_dT9; + + // interpolating Cu59 partition function + get_partition_function_cached(Cu59, tfactors.T9, pf_cache, Cu59_log_pf, dCu59_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni58_log_pf, dNi58_log_pf_dT9; + + // interpolating Ni58 partition function + get_partition_function_cached(Ni58, tfactors.T9, pf_cache, Ni58_log_pf, dNi58_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ni58_log_pf - Cu59_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dNi58_log_pf_dT9 - dCu59_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from si13n + ln_set_rate = 58.97928371193912 + -39.67086986195644 * tfactors.T9i + -39.0526 * tfactors.T913i + 1.0436 * tfactors.T913 + + -2.10834 * tfactors.T9 + 0.239559 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 39.67086986195644 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.0526 * tfactors.T943i + (1.0/3.0) * 1.0436 * tfactors.T923i + + -2.10834 + (5.0/3.0) * 0.239559 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu59_to_He4_Co55_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu59 --> He4 + Co55 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cu59_log_pf, dCu59_log_pf_dT9; + + // interpolating Cu59 partition function + get_partition_function_cached(Cu59, tfactors.T9, pf_cache, Cu59_log_pf, dCu59_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Co55_log_pf, dCo55_log_pf_dT9; + + // interpolating Co55 partition function + get_partition_function_cached(Co55, tfactors.T9, pf_cache, Co55_log_pf, dCo55_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Co55_log_pf - Cu59_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCo55_log_pf_dT9 - dCu59_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 90.97354557942113 + -55.1611006026015 * tfactors.T9i + -94.1404 * tfactors.T913i + -2.62786 * tfactors.T913 + + -2.12066 * tfactors.T9 + 0.237999 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 55.1611006026015 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -94.1404 * tfactors.T943i + (1.0/3.0) * -2.62786 * tfactors.T923i + + -2.12066 + (5.0/3.0) * 0.237999 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu60_to_n_Cu59_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu60 --> n + Cu59 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu60_log_pf, dCu60_log_pf_dT9; + + // interpolating Cu60 partition function + get_partition_function_cached(Cu60, tfactors.T9, pf_cache, Cu60_log_pf, dCu60_log_pf_dT9); + + amrex::Real Cu59_log_pf, dCu59_log_pf_dT9; + + // interpolating Cu59 partition function + get_partition_function_cached(Cu59, tfactors.T9, pf_cache, Cu59_log_pf, dCu59_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cu59_log_pf - Cu60_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCu59_log_pf_dT9 - dCu60_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 38.213917762793585 + -116.71961376018099 * tfactors.T9i + -0.952104 * tfactors.T913 + + 0.520444 * tfactors.T9 + -0.0746175 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 116.71961376018099 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.952104 * tfactors.T923i + + 0.520444 + (5.0/3.0) * -0.0746175 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu60_to_p_Ni59_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu60 --> p + Ni59 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cu60_log_pf, dCu60_log_pf_dT9; + + // interpolating Cu60 partition function + get_partition_function_cached(Cu60, tfactors.T9, pf_cache, Cu60_log_pf, dCu60_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni59_log_pf, dNi59_log_pf_dT9; + + // interpolating Ni59 partition function + get_partition_function_cached(Ni59, tfactors.T9, pf_cache, Ni59_log_pf, dNi59_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ni59_log_pf - Cu60_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dNi59_log_pf_dT9 - dCu60_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 59.525216718809965 + -51.95889410089132 * tfactors.T9i + -39.0563 * tfactors.T913i + 2.1481 * tfactors.T913 + + -1.76507 * tfactors.T9 + 0.1629 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 51.95889410089132 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.0563 * tfactors.T943i + (1.0/3.0) * 2.1481 * tfactors.T923i + + -1.76507 + (5.0/3.0) * 0.1629 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu60_to_He4_Co56_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu60 --> He4 + Co56 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cu60_log_pf, dCu60_log_pf_dT9; + + // interpolating Cu60 partition function + get_partition_function_cached(Cu60, tfactors.T9, pf_cache, Cu60_log_pf, dCu60_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Co56_log_pf, dCo56_log_pf_dT9; + + // interpolating Co56 partition function + get_partition_function_cached(Co56, tfactors.T9, pf_cache, Co56_log_pf, dCo56_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Co56_log_pf - Cu60_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCo56_log_pf_dT9 - dCu60_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 91.05529900850368 + -54.8860735231365 * tfactors.T9i + -94.1784 * tfactors.T913i + -1.94118 * tfactors.T913 + + -2.35306 * tfactors.T9 + 0.265186 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 54.8860735231365 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -94.1784 * tfactors.T943i + (1.0/3.0) * -1.94118 * tfactors.T923i + + -2.35306 + (5.0/3.0) * 0.265186 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu61_to_n_Cu60_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu61 --> n + Cu60 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu60_log_pf, dCu60_log_pf_dT9; + + // interpolating Cu60 partition function + get_partition_function_cached(Cu60, tfactors.T9, pf_cache, Cu60_log_pf, dCu60_log_pf_dT9); + + amrex::Real Cu61_log_pf, dCu61_log_pf_dT9; + + // interpolating Cu61 partition function + get_partition_function_cached(Cu61, tfactors.T9, pf_cache, Cu61_log_pf, dCu61_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cu60_log_pf - Cu61_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCu60_log_pf_dT9 - dCu61_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 39.27069283885408 + -135.8902776969701 * tfactors.T9i + -0.586034 * tfactors.T913 + + 0.320768 * tfactors.T9 + -0.0484658 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 135.8902776969701 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.586034 * tfactors.T923i + + 0.320768 + (5.0/3.0) * -0.0484658 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu61_to_p_Ni60_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu61 --> p + Ni60 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu61_log_pf, dCu61_log_pf_dT9; + + // interpolating Cu61 partition function + get_partition_function_cached(Cu61, tfactors.T9, pf_cache, Cu61_log_pf, dCu61_log_pf_dT9); + + amrex::Real Ni60_log_pf, dNi60_log_pf_dT9; + + // interpolating Ni60 partition function + get_partition_function_cached(Ni60, tfactors.T9, pf_cache, Ni60_log_pf, dNi60_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ni60_log_pf - Cu61_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dNi60_log_pf_dT9 - dCu61_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from si13n + ln_set_rate = 59.305597978038094 + -55.70019074326099 * tfactors.T9i + -39.06 * tfactors.T913i + 1.28239 * tfactors.T913 + + -1.76356 * tfactors.T9 + 0.18327 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 55.70019074326099 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.06 * tfactors.T943i + (1.0/3.0) * 1.28239 * tfactors.T923i + + -1.76356 + (5.0/3.0) * 0.18327 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu61_to_He4_Co57_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu61 --> He4 + Co57 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu61_log_pf, dCu61_log_pf_dT9; + + // interpolating Cu61 partition function + get_partition_function_cached(Cu61, tfactors.T9, pf_cache, Cu61_log_pf, dCu61_log_pf_dT9); + + amrex::Real Co57_log_pf, dCo57_log_pf_dT9; + + // interpolating Co57 partition function + get_partition_function_cached(Co57, tfactors.T9, pf_cache, Co57_log_pf, dCo57_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Co57_log_pf - Cu61_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCo57_log_pf_dT9 - dCu61_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 89.29182375081481 + -58.75734076848958 * tfactors.T9i + -94.2152 * tfactors.T913i + 0.976269 * tfactors.T913 + + -2.37283 * tfactors.T9 + 0.195501 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 58.75734076848958 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -94.2152 * tfactors.T943i + (1.0/3.0) * 0.976269 * tfactors.T923i + + -2.37283 + (5.0/3.0) * 0.195501 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu62_to_n_Cu61_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu62 --> n + Cu61 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu61_log_pf, dCu61_log_pf_dT9; + + // interpolating Cu61 partition function + get_partition_function_cached(Cu61, tfactors.T9, pf_cache, Cu61_log_pf, dCu61_log_pf_dT9); + + amrex::Real Cu62_log_pf, dCu62_log_pf_dT9; + + // interpolating Cu62 partition function + get_partition_function_cached(Cu62, tfactors.T9, pf_cache, Cu62_log_pf, dCu62_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cu61_log_pf - Cu62_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCu61_log_pf_dT9 - dCu62_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 40.3568078728861 + -102.98682701516083 * tfactors.T9i + -0.404348 * tfactors.T913 + + 0.218353 * tfactors.T9 + -0.0562018 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 102.98682701516083 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.404348 * tfactors.T923i + + 0.218353 + (5.0/3.0) * -0.0562018 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu62_to_p_Ni61_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu62 --> p + Ni61 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ni61_log_pf, dNi61_log_pf_dT9; + + // interpolating Ni61 partition function + get_partition_function_cached(Ni61, tfactors.T9, pf_cache, Ni61_log_pf, dNi61_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu62_log_pf, dCu62_log_pf_dT9; + + // interpolating Cu62 partition function + get_partition_function_cached(Cu62, tfactors.T9, pf_cache, Cu62_log_pf, dCu62_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ni61_log_pf - Cu62_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dNi61_log_pf_dT9 - dCu62_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from si13n + ln_set_rate = 61.053426761191574 + -67.93831555433914 * tfactors.T9i + -39.0635 * tfactors.T913i + 2.03251 * tfactors.T913 + + -1.66085 * tfactors.T9 + 0.123527 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 67.93831555433914 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.0635 * tfactors.T943i + (1.0/3.0) * 2.03251 * tfactors.T923i + + -1.66085 + (5.0/3.0) * 0.123527 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu62_to_He4_Co58_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu62 --> He4 + Co58 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Co58_log_pf, dCo58_log_pf_dT9; + + // interpolating Co58 partition function + get_partition_function_cached(Co58, tfactors.T9, pf_cache, Co58_log_pf, dCo58_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu62_log_pf, dCu62_log_pf_dT9; + + // interpolating Cu62 partition function + get_partition_function_cached(Cu62, tfactors.T9, pf_cache, Cu62_log_pf, dCu62_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Co58_log_pf - Cu62_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCo58_log_pf_dT9 - dCu62_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 89.21231480272561 + -62.25958433768756 * tfactors.T9i + -94.2508 * tfactors.T913i + 1.47146 * tfactors.T913 + + -2.87996 * tfactors.T9 + 0.26554 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 62.25958433768756 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -94.2508 * tfactors.T943i + (1.0/3.0) * 1.47146 * tfactors.T923i + + -2.87996 + (5.0/3.0) * 0.26554 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu63_to_n_Cu62_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu63 --> n + Cu62 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu62_log_pf, dCu62_log_pf_dT9; + + // interpolating Cu62 partition function + get_partition_function_cached(Cu62, tfactors.T9, pf_cache, Cu62_log_pf, dCu62_log_pf_dT9); + + amrex::Real Cu63_log_pf, dCu63_log_pf_dT9; + + // interpolating Cu63 partition function + get_partition_function_cached(Cu63, tfactors.T9, pf_cache, Cu63_log_pf, dCu63_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cu62_log_pf - Cu63_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCu62_log_pf_dT9 - dCu63_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 40.423019116623436 + -126.06821355883658 * tfactors.T9i + -0.723484 * tfactors.T913 + + 0.215177 * tfactors.T9 + -0.0473749 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 126.06821355883658 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.723484 * tfactors.T923i + + 0.215177 + (5.0/3.0) * -0.0473749 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu63_to_p_Ni62_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu63 --> p + Ni62 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ni62_log_pf, dNi62_log_pf_dT9; + + // interpolating Ni62 partition function + get_partition_function_cached(Ni62, tfactors.T9, pf_cache, Ni62_log_pf, dNi62_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu63_log_pf, dCu63_log_pf_dT9; + + // interpolating Cu63 partition function + get_partition_function_cached(Cu63, tfactors.T9, pf_cache, Cu63_log_pf, dCu63_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ni62_log_pf - Cu63_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dNi62_log_pf_dT9 - dCu63_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from si13n + ln_set_rate = 59.852552722665735 + -71.04832641086618 * tfactors.T9i + -39.0669 * tfactors.T913i + 1.33156 * tfactors.T913 + + -1.30043 * tfactors.T9 + 0.0961101 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 71.04832641086618 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.0669 * tfactors.T943i + (1.0/3.0) * 1.33156 * tfactors.T923i + + -1.30043 + (5.0/3.0) * 0.0961101 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu63_to_He4_Co59_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu63 --> He4 + Co59 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Co59_log_pf, dCo59_log_pf_dT9; + + // interpolating Co59 partition function + get_partition_function_cached(Co59, tfactors.T9, pf_cache, Co59_log_pf, dCo59_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu63_log_pf, dCu63_log_pf_dT9; + + // interpolating Cu63 partition function + get_partition_function_cached(Cu63, tfactors.T9, pf_cache, Cu63_log_pf, dCu63_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Co59_log_pf - Cu63_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCo59_log_pf_dT9 - dCu63_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 89.11339188923962 + -67.01627631565874 * tfactors.T9i + -94.2852 * tfactors.T913i + 1.64751 * tfactors.T913 + + -2.1637 * tfactors.T9 + 0.119598 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 67.01627631565874 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -94.2852 * tfactors.T943i + (1.0/3.0) * 1.64751 * tfactors.T923i + + -2.1637 + (5.0/3.0) * 0.119598 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu64_to_n_Cu63_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu64 --> n + Cu63 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu63_log_pf, dCu63_log_pf_dT9; + + // interpolating Cu63 partition function + get_partition_function_cached(Cu63, tfactors.T9, pf_cache, Cu63_log_pf, dCu63_log_pf_dT9); + + amrex::Real Cu64_log_pf, dCu64_log_pf_dT9; + + // interpolating Cu64 partition function + get_partition_function_cached(Cu64, tfactors.T9, pf_cache, Cu64_log_pf, dCu64_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cu63_log_pf - Cu64_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCu63_log_pf_dT9 - dCu64_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 51.396835108402456 + -91.97646658838583 * tfactors.T9i + 11.3982 * tfactors.T913i + -24.4222 * tfactors.T913 + + 1.95364 * tfactors.T9 + -0.18693 * tfactors.T953 + 11.7458 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 91.97646658838583 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 11.3982 * tfactors.T943i + (1.0/3.0) * -24.4222 * tfactors.T923i + + 1.95364 + (5.0/3.0) * -0.18693 * tfactors.T923 + 11.7458 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu64_to_p_Ni63_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu64 --> p + Ni63 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni63_log_pf, dNi63_log_pf_dT9; + + // interpolating Ni63 partition function + get_partition_function_cached(Ni63, tfactors.T9, pf_cache, Ni63_log_pf, dNi63_log_pf_dT9); + + amrex::Real Cu64_log_pf, dCu64_log_pf_dT9; + + // interpolating Cu64 partition function + get_partition_function_cached(Cu64, tfactors.T9, pf_cache, Cu64_log_pf, dCu64_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ni63_log_pf - Cu64_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dNi63_log_pf_dT9 - dCu64_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 63.591508245546535 + -83.55799694586668 * tfactors.T9i + -39.0703 * tfactors.T913i + -4.4238 * tfactors.T913 + + -0.152239 * tfactors.T9 + 0.0171937 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 83.55799694586668 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.0703 * tfactors.T943i + (1.0/3.0) * -4.4238 * tfactors.T923i + + -0.152239 + (5.0/3.0) * 0.0171937 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu65_to_n_Cu64_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu65 --> n + Cu64 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu65_log_pf, dCu65_log_pf_dT9; + + // interpolating Cu65 partition function + get_partition_function_cached(Cu65, tfactors.T9, pf_cache, Cu65_log_pf, dCu65_log_pf_dT9); + + amrex::Real Cu64_log_pf, dCu64_log_pf_dT9; + + // interpolating Cu64 partition function + get_partition_function_cached(Cu64, tfactors.T9, pf_cache, Cu64_log_pf, dCu64_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cu64_log_pf - Cu65_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCu64_log_pf_dT9 - dCu65_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 42.26522122147439 + -115.00794733728357 * tfactors.T9i + -2.31276 * tfactors.T913 + + 0.434599 * tfactors.T9 + -0.0715678 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 115.00794733728357 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.31276 * tfactors.T923i + + 0.434599 + (5.0/3.0) * -0.0715678 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu65_to_p_Ni64_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu65 --> p + Ni64 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cu65_log_pf, dCu65_log_pf_dT9; + + // interpolating Cu65 partition function + get_partition_function_cached(Cu65, tfactors.T9, pf_cache, Cu65_log_pf, dCu65_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni64_log_pf, dNi64_log_pf_dT9; + + // interpolating Ni64 partition function + get_partition_function_cached(Ni64, tfactors.T9, pf_cache, Ni64_log_pf, dNi64_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ni64_log_pf - Cu65_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dNi64_log_pf_dT9 - dCu65_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from si13n + ln_set_rate = 59.98315609003308 + -86.49626093426164 * tfactors.T9i + -39.0735 * tfactors.T913i + 1.76823 * tfactors.T913 + + -1.38855 * tfactors.T9 + 0.0515179 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 86.49626093426164 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.0735 * tfactors.T943i + (1.0/3.0) * 1.76823 * tfactors.T923i + + -1.38855 + (5.0/3.0) * 0.0515179 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn59_to_p_Cu58_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn59 --> p + Cu58 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu58_log_pf, dCu58_log_pf_dT9; + + // interpolating Cu58 partition function + get_partition_function_cached(Cu58, tfactors.T9, pf_cache, Cu58_log_pf, dCu58_log_pf_dT9); + + amrex::Real Zn59_log_pf, dZn59_log_pf_dT9; + + // interpolating Zn59 partition function + get_partition_function_cached(Zn59, tfactors.T9, pf_cache, Zn59_log_pf, dZn59_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Cu58_log_pf - Zn59_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCu58_log_pf_dT9 - dZn59_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nfisn + ln_set_rate = 16.608806267764557 + -31.838791218816382 * tfactors.T9i + -142.882 * tfactors.T913i + 138.901 * tfactors.T913 + + -5.7482 * tfactors.T9 + 0.223571 * tfactors.T953 + -83.1553 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 31.838791218816382 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -142.882 * tfactors.T943i + (1.0/3.0) * 138.901 * tfactors.T923i + + -5.7482 + (5.0/3.0) * 0.223571 * tfactors.T923 + -83.1553 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nfisn + ln_set_rate = 56.55337626776456 + -33.00307301881639 * tfactors.T9i + -36.2109 * tfactors.T913i + -10.0201 * tfactors.T913 + + 0.882265 * tfactors.T9 + -0.0954725 * tfactors.T953 + 4.78794 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 33.00307301881639 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.2109 * tfactors.T943i + (1.0/3.0) * -10.0201 * tfactors.T923i + + 0.882265 + (5.0/3.0) * -0.0954725 * tfactors.T923 + 4.78794 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nfisn + ln_set_rate = 58.35957626776455 + -30.487661218816385 * tfactors.T9i + -209.408 * tfactors.T913i + 176.007 * tfactors.T913 + + -6.98867 * tfactors.T9 + 0.295678 * tfactors.T953 + -109.048 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 30.487661218816385 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -209.408 * tfactors.T943i + (1.0/3.0) * 176.007 * tfactors.T923i + + -6.98867 + (5.0/3.0) * 0.295678 * tfactors.T923 + -109.048 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn60_to_n_Zn59_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn60 --> n + Zn59 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn59_log_pf, dZn59_log_pf_dT9; + + // interpolating Zn59 partition function + get_partition_function_cached(Zn59, tfactors.T9, pf_cache, Zn59_log_pf, dZn59_log_pf_dT9); + + amrex::Real Zn60_log_pf, dZn60_log_pf_dT9; + + // interpolating Zn60 partition function + get_partition_function_cached(Zn60, tfactors.T9, pf_cache, Zn60_log_pf, dZn60_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Zn59_log_pf - Zn60_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dZn59_log_pf_dT9 - dZn60_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 33.83431521370106 + -174.4172778605246 * tfactors.T9i + 0.65324 * tfactors.T913 + + -0.0259697 * tfactors.T9 + -0.00407906 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 174.4172778605246 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.65324 * tfactors.T923i + + -0.0259697 + (5.0/3.0) * -0.00407906 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn60_to_p_Cu59_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn60 --> p + Cu59 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cu59_log_pf, dCu59_log_pf_dT9; + + // interpolating Cu59 partition function + get_partition_function_cached(Cu59, tfactors.T9, pf_cache, Cu59_log_pf, dCu59_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn60_log_pf, dZn60_log_pf_dT9; + + // interpolating Zn60 partition function + get_partition_function_cached(Zn60, tfactors.T9, pf_cache, Zn60_log_pf, dZn60_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Cu59_log_pf - Zn60_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCu59_log_pf_dT9 - dZn60_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 62.31218638341413 + -59.240729222177784 * tfactors.T9i + -39.9808 * tfactors.T913i + 1.17311 * tfactors.T913 + + -2.90486 * tfactors.T9 + 0.339644 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 59.240729222177784 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.9808 * tfactors.T943i + (1.0/3.0) * 1.17311 * tfactors.T923i + + -2.90486 + (5.0/3.0) * 0.339644 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn60_to_He4_Ni56_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn60 --> He4 + Ni56 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ni56_log_pf, dNi56_log_pf_dT9; + + // interpolating Ni56 partition function + get_partition_function_cached(Ni56, tfactors.T9, pf_cache, Ni56_log_pf, dNi56_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn60_log_pf, dZn60_log_pf_dT9; + + // interpolating Zn60 partition function + get_partition_function_cached(Zn60, tfactors.T9, pf_cache, Zn60_log_pf, dZn60_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ni56_log_pf - Zn60_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dNi56_log_pf_dT9 - dZn60_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 86.06332792090964 + -31.2372260432927 * tfactors.T9i + -96.4898 * tfactors.T913i + 6.47209 * tfactors.T913 + + -5.2029 * tfactors.T9 + 0.533391 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 31.2372260432927 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -96.4898 * tfactors.T943i + (1.0/3.0) * 6.47209 * tfactors.T923i + + -5.2029 + (5.0/3.0) * 0.533391 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn61_to_n_Zn60_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn61 --> n + Zn60 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn60_log_pf, dZn60_log_pf_dT9; + + // interpolating Zn60 partition function + get_partition_function_cached(Zn60, tfactors.T9, pf_cache, Zn60_log_pf, dZn60_log_pf_dT9); + + amrex::Real Zn61_log_pf, dZn61_log_pf_dT9; + + // interpolating Zn61 partition function + get_partition_function_cached(Zn61, tfactors.T9, pf_cache, Zn61_log_pf, dZn61_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Zn60_log_pf - Zn61_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dZn60_log_pf_dT9 - dZn61_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 35.8054934885566 + -118.89778181163429 * tfactors.T9i + 0.0559751 * tfactors.T913 + + 0.208641 * tfactors.T9 + -0.0357451 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 118.89778181163429 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.0559751 * tfactors.T923i + + 0.208641 + (5.0/3.0) * -0.0357451 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn61_to_p_Cu60_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn61 --> p + Cu60 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cu60_log_pf, dCu60_log_pf_dT9; + + // interpolating Cu60 partition function + get_partition_function_cached(Cu60, tfactors.T9, pf_cache, Cu60_log_pf, dCu60_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn61_log_pf, dZn61_log_pf_dT9; + + // interpolating Zn61 partition function + get_partition_function_cached(Zn61, tfactors.T9, pf_cache, Zn61_log_pf, dZn61_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Cu60_log_pf - Zn61_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCu60_log_pf_dT9 - dZn61_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 59.933562109177146 + -61.418897273631075 * tfactors.T9i + -39.9846 * tfactors.T913i + 3.2392 * tfactors.T913 + + -2.37211 * tfactors.T9 + 0.239391 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 61.418897273631075 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.9846 * tfactors.T943i + (1.0/3.0) * 3.2392 * tfactors.T923i + + -2.37211 + (5.0/3.0) * 0.239391 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn61_to_He4_Ni57_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn61 --> He4 + Ni57 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ni57_log_pf, dNi57_log_pf_dT9; + + // interpolating Ni57 partition function + get_partition_function_cached(Ni57, tfactors.T9, pf_cache, Ni57_log_pf, dNi57_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn61_log_pf, dZn61_log_pf_dT9; + + // interpolating Zn61 partition function + get_partition_function_cached(Zn61, tfactors.T9, pf_cache, Zn61_log_pf, dZn61_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ni57_log_pf - Zn61_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dNi57_log_pf_dT9 - dZn61_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 86.47908212546925 + -31.215177458872414 * tfactors.T9i + -96.5275 * tfactors.T913i + 5.42001 * tfactors.T913 + + -3.93988 * tfactors.T9 + 0.358068 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 31.215177458872414 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -96.5275 * tfactors.T943i + (1.0/3.0) * 5.42001 * tfactors.T923i + + -3.93988 + (5.0/3.0) * 0.358068 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn62_to_n_Zn61_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn62 --> n + Zn61 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn61_log_pf, dZn61_log_pf_dT9; + + // interpolating Zn61 partition function + get_partition_function_cached(Zn61, tfactors.T9, pf_cache, Zn61_log_pf, dZn61_log_pf_dT9); + + amrex::Real Zn62_log_pf, dZn62_log_pf_dT9; + + // interpolating Zn62 partition function + get_partition_function_cached(Zn62, tfactors.T9, pf_cache, Zn62_log_pf, dZn62_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Zn61_log_pf - Zn62_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dZn61_log_pf_dT9 - dZn62_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 38.79159817547108 + -149.58709043580257 * tfactors.T9i + 0.174908 * tfactors.T913 + + 0.222207 * tfactors.T9 + -0.0495297 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 149.58709043580257 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.174908 * tfactors.T923i + + 0.222207 + (5.0/3.0) * -0.0495297 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn62_to_p_Cu61_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn62 --> p + Cu61 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu61_log_pf, dCu61_log_pf_dT9; + + // interpolating Cu61 partition function + get_partition_function_cached(Cu61, tfactors.T9, pf_cache, Cu61_log_pf, dCu61_log_pf_dT9); + + amrex::Real Zn62_log_pf, dZn62_log_pf_dT9; + + // interpolating Zn62 partition function + get_partition_function_cached(Zn62, tfactors.T9, pf_cache, Zn62_log_pf, dZn62_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Cu61_log_pf - Zn62_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCu61_log_pf_dT9 - dZn62_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 61.65656744579414 + -75.11571001244194 * tfactors.T9i + -39.9882 * tfactors.T913i + 2.26956 * tfactors.T913 + + -1.69006 * tfactors.T9 + 0.132363 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 75.11571001244194 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.9882 * tfactors.T943i + (1.0/3.0) * 2.26956 * tfactors.T923i + + -1.69006 + (5.0/3.0) * 0.132363 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn62_to_He4_Ni58_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn62 --> He4 + Ni58 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni58_log_pf, dNi58_log_pf_dT9; + + // interpolating Ni58 partition function + get_partition_function_cached(Ni58, tfactors.T9, pf_cache, Ni58_log_pf, dNi58_log_pf_dT9); + + amrex::Real Zn62_log_pf, dZn62_log_pf_dT9; + + // interpolating Zn62 partition function + get_partition_function_cached(Zn62, tfactors.T9, pf_cache, Zn62_log_pf, dZn62_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ni58_log_pf - Zn62_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dNi58_log_pf_dT9 - dZn62_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 87.8519013253571 + -39.0389435763856 * tfactors.T9i + -96.5638 * tfactors.T913i + 2.81593 * tfactors.T913 + + -2.43398 * tfactors.T9 + 0.140051 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 39.0389435763856 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -96.5638 * tfactors.T943i + (1.0/3.0) * 2.81593 * tfactors.T923i + + -2.43398 + (5.0/3.0) * 0.140051 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn63_to_n_Zn62_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn63 --> n + Zn62 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn63_log_pf, dZn63_log_pf_dT9; + + // interpolating Zn63 partition function + get_partition_function_cached(Zn63, tfactors.T9, pf_cache, Zn63_log_pf, dZn63_log_pf_dT9); + + amrex::Real Zn62_log_pf, dZn62_log_pf_dT9; + + // interpolating Zn62 partition function + get_partition_function_cached(Zn62, tfactors.T9, pf_cache, Zn62_log_pf, dZn62_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Zn62_log_pf - Zn63_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dZn62_log_pf_dT9 - dZn63_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 38.81233343151882 + -105.79395994876484 * tfactors.T9i + -0.365196 * tfactors.T913 + + 0.230327 * tfactors.T9 + -0.0605553 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 105.79395994876484 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.365196 * tfactors.T923i + + 0.230327 + (5.0/3.0) * -0.0605553 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn63_to_p_Cu62_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn63 --> p + Cu62 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Zn63_log_pf, dZn63_log_pf_dT9; + + // interpolating Zn63 partition function + get_partition_function_cached(Zn63, tfactors.T9, pf_cache, Zn63_log_pf, dZn63_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu62_log_pf, dCu62_log_pf_dT9; + + // interpolating Cu62 partition function + get_partition_function_cached(Cu62, tfactors.T9, pf_cache, Cu62_log_pf, dCu62_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Cu62_log_pf - Zn63_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCu62_log_pf_dT9 - dZn63_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 59.962593004426864 + -77.92284294604595 * tfactors.T9i + -39.9917 * tfactors.T913i + 2.6186 * tfactors.T913 + + -1.69105 * tfactors.T9 + 0.132898 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 77.92284294604595 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.9917 * tfactors.T943i + (1.0/3.0) * 2.6186 * tfactors.T923i + + -1.69105 + (5.0/3.0) * 0.132898 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn63_to_He4_Ni59_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn63 --> He4 + Ni59 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Zn63_log_pf, dZn63_log_pf_dT9; + + // interpolating Zn63 partition function + get_partition_function_cached(Zn63, tfactors.T9, pf_cache, Zn63_log_pf, dZn63_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni59_log_pf, dNi59_log_pf_dT9; + + // interpolating Ni59 partition function + get_partition_function_cached(Ni59, tfactors.T9, pf_cache, Ni59_log_pf, dNi59_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ni59_log_pf - Zn63_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dNi59_log_pf_dT9 - dZn63_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 88.0484500009532 + -40.40131400390431 * tfactors.T9i + -96.5991 * tfactors.T913i + 2.66136 * tfactors.T913 + + -2.36841 * tfactors.T9 + 0.148474 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 40.40131400390431 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -96.5991 * tfactors.T943i + (1.0/3.0) * 2.66136 * tfactors.T923i + + -2.36841 + (5.0/3.0) * 0.148474 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn64_to_n_Zn63_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn64 --> n + Zn63 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn64_log_pf, dZn64_log_pf_dT9; + + // interpolating Zn64 partition function + get_partition_function_cached(Zn64, tfactors.T9, pf_cache, Zn64_log_pf, dZn64_log_pf_dT9); + + amrex::Real Zn63_log_pf, dZn63_log_pf_dT9; + + // interpolating Zn63 partition function + get_partition_function_cached(Zn63, tfactors.T9, pf_cache, Zn63_log_pf, dZn63_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Zn63_log_pf - Zn64_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dZn63_log_pf_dT9 - dZn64_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 41.34391530204664 + -137.65184354782266 * tfactors.T9i + -0.526805 * tfactors.T913 + + 0.294653 * tfactors.T9 + -0.0660418 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 137.65184354782266 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.526805 * tfactors.T923i + + 0.294653 + (5.0/3.0) * -0.0660418 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn64_to_p_Cu63_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn64 --> p + Cu63 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Zn64_log_pf, dZn64_log_pf_dT9; + + // interpolating Zn64 partition function + get_partition_function_cached(Zn64, tfactors.T9, pf_cache, Zn64_log_pf, dZn64_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu63_log_pf, dCu63_log_pf_dT9; + + // interpolating Cu63 partition function + get_partition_function_cached(Cu63, tfactors.T9, pf_cache, Cu63_log_pf, dCu63_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Cu63_log_pf - Zn64_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCu63_log_pf_dT9 - dZn64_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 62.213489189850065 + -89.50647293503202 * tfactors.T9i + -39.995 * tfactors.T913i + 1.69705 * tfactors.T913 + + -1.11391 * tfactors.T9 + 0.0416287 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 89.50647293503202 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.995 * tfactors.T943i + (1.0/3.0) * 1.69705 * tfactors.T923i + + -1.11391 + (5.0/3.0) * 0.0416287 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn64_to_He4_Ni60_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn64 --> He4 + Ni60 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Zn64_log_pf, dZn64_log_pf_dT9; + + // interpolating Zn64 partition function + get_partition_function_cached(Zn64, tfactors.T9, pf_cache, Zn64_log_pf, dZn64_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni60_log_pf, dNi60_log_pf_dT9; + + // interpolating Ni60 partition function + get_partition_function_cached(Ni60, tfactors.T9, pf_cache, Ni60_log_pf, dNi60_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ni60_log_pf - Zn64_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dNi60_log_pf_dT9 - dZn64_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 89.08975372337389 + -45.904176497126535 * tfactors.T9i + -96.6332 * tfactors.T913i + 1.06508 * tfactors.T913 + + -1.52905 * tfactors.T9 + 0.0316173 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 45.904176497126535 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -96.6332 * tfactors.T943i + (1.0/3.0) * 1.06508 * tfactors.T923i + + -1.52905 + (5.0/3.0) * 0.0316173 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn65_to_n_Zn64_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn65 --> n + Zn64 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn64_log_pf, dZn64_log_pf_dT9; + + // interpolating Zn64 partition function + get_partition_function_cached(Zn64, tfactors.T9, pf_cache, Zn64_log_pf, dZn64_log_pf_dT9); + + amrex::Real Zn65_log_pf, dZn65_log_pf_dT9; + + // interpolating Zn65 partition function + get_partition_function_cached(Zn65, tfactors.T9, pf_cache, Zn65_log_pf, dZn65_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Zn64_log_pf - Zn65_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dZn64_log_pf_dT9 - dZn65_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 35.0137636188129 + -92.56680298909968 * tfactors.T9i + -3.1973 * tfactors.T913i + 6.0545 * tfactors.T913 + + 0.171155 * tfactors.T9 + -0.0905702 * tfactors.T953 + -1.3928600000000002 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 92.56680298909968 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -3.1973 * tfactors.T943i + (1.0/3.0) * 6.0545 * tfactors.T923i + + 0.171155 + (5.0/3.0) * -0.0905702 * tfactors.T923 + -1.3928600000000002 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn65_to_p_Cu64_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn65 --> p + Cu64 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn65_log_pf, dZn65_log_pf_dT9; + + // interpolating Zn65 partition function + get_partition_function_cached(Zn65, tfactors.T9, pf_cache, Zn65_log_pf, dZn65_log_pf_dT9); + + amrex::Real Cu64_log_pf, dCu64_log_pf_dT9; + + // interpolating Cu64 partition function + get_partition_function_cached(Cu64, tfactors.T9, pf_cache, Cu64_log_pf, dCu64_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Cu64_log_pf - Zn65_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCu64_log_pf_dT9 - dZn65_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 61.989417700260525 + -90.24335983574588 * tfactors.T9i + -39.9983 * tfactors.T913i + -2.9846 * tfactors.T913 + + 0.0709769 * tfactors.T9 + -0.0519569 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 90.24335983574588 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.9983 * tfactors.T943i + (1.0/3.0) * -2.9846 * tfactors.T923i + + 0.0709769 + (5.0/3.0) * -0.0519569 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn65_to_He4_Ni61_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn65 --> He4 + Ni61 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ni61_log_pf, dNi61_log_pf_dT9; + + // interpolating Ni61 partition function + get_partition_function_cached(Ni61, tfactors.T9, pf_cache, Ni61_log_pf, dNi61_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn65_log_pf, dZn65_log_pf_dT9; + + // interpolating Zn65 partition function + get_partition_function_cached(Zn65, tfactors.T9, pf_cache, Zn65_log_pf, dZn65_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ni61_log_pf - Zn65_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dNi61_log_pf_dT9 - dZn65_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 88.47663825245417 + -47.75161578215074 * tfactors.T9i + -96.6663 * tfactors.T913i + 2.54794 * tfactors.T913 + + -2.65791 * tfactors.T9 + 0.204247 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 47.75161578215074 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -96.6663 * tfactors.T943i + (1.0/3.0) * 2.54794 * tfactors.T923i + + -2.65791 + (5.0/3.0) * 0.204247 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn66_to_n_Zn65_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn66 --> n + Zn65 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn65_log_pf, dZn65_log_pf_dT9; + + // interpolating Zn65 partition function + get_partition_function_cached(Zn65, tfactors.T9, pf_cache, Zn65_log_pf, dZn65_log_pf_dT9); + + amrex::Real Zn66_log_pf, dZn66_log_pf_dT9; + + // interpolating Zn66 partition function + get_partition_function_cached(Zn66, tfactors.T9, pf_cache, Zn66_log_pf, dZn66_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Zn65_log_pf - Zn66_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dZn65_log_pf_dT9 - dZn66_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ks03 + ln_set_rate = 53.1197643883757 + -128.3749699888564 * tfactors.T9i + 5.38411 * tfactors.T913i + -18.0063 * tfactors.T913 + + 1.89109 * tfactors.T9 + -0.191482 * tfactors.T953 + 7.34419 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 128.3749699888564 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 5.38411 * tfactors.T943i + (1.0/3.0) * -18.0063 * tfactors.T923i + + 1.89109 + (5.0/3.0) * -0.191482 * tfactors.T923 + 7.34419 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn66_to_p_Cu65_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn66 --> p + Cu65 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cu65_log_pf, dCu65_log_pf_dT9; + + // interpolating Cu65 partition function + get_partition_function_cached(Cu65, tfactors.T9, pf_cache, Cu65_log_pf, dCu65_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn66_log_pf, dZn66_log_pf_dT9; + + // interpolating Zn66 partition function + get_partition_function_cached(Zn66, tfactors.T9, pf_cache, Zn66_log_pf, dZn66_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Cu65_log_pf - Zn66_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCu65_log_pf_dT9 - dZn66_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 61.96386086716183 + -103.56418618741714 * tfactors.T9i + -40.0015 * tfactors.T913i + 2.89473 * tfactors.T913 + + -1.70171 * tfactors.T9 + 0.092664 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 103.56418618741714 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -40.0015 * tfactors.T943i + (1.0/3.0) * 2.89473 * tfactors.T923i + + -1.70171 + (5.0/3.0) * 0.092664 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn66_to_He4_Ni62_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn66 --> He4 + Ni62 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ni62_log_pf, dNi62_log_pf_dT9; + + // interpolating Ni62 partition function + get_partition_function_cached(Ni62, tfactors.T9, pf_cache, Ni62_log_pf, dNi62_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn66_log_pf, dZn66_log_pf_dT9; + + // interpolating Zn66 partition function + get_partition_function_cached(Zn66, tfactors.T9, pf_cache, Zn66_log_pf, dZn66_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ni62_log_pf - Zn66_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dNi62_log_pf_dT9 - dZn66_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 89.66450948568057 + -53.122186768774455 * tfactors.T9i + -96.6983 * tfactors.T913i + 0.80536 * tfactors.T913 + + -1.39385 * tfactors.T9 + 0.000644409 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 53.122186768774455 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -96.6983 * tfactors.T943i + (1.0/3.0) * 0.80536 * tfactors.T923i + + -1.39385 + (5.0/3.0) * 0.000644409 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ga62_to_p_Zn61_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ga62 --> p + Zn61 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ga62_log_pf, dGa62_log_pf_dT9; + + // interpolating Ga62 partition function + get_partition_function_cached(Ga62, tfactors.T9, pf_cache, Ga62_log_pf, dGa62_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn61_log_pf, dZn61_log_pf_dT9; + + // interpolating Zn61 partition function + get_partition_function_cached(Zn61, tfactors.T9, pf_cache, Zn61_log_pf, dZn61_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Zn61_log_pf - Ga62_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dZn61_log_pf_dT9 - dGa62_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nfisn + ln_set_rate = 11301.186917813904 + -125.14358875337538 * tfactors.T9i + 6932.15 * tfactors.T913i + -20433.4 * tfactors.T913 + + 2726.25 * tfactors.T9 + -416.477 * tfactors.T953 + 7005.24 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 125.14358875337538 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 6932.15 * tfactors.T943i + (1.0/3.0) * -20433.4 * tfactors.T923i + + 2726.25 + (5.0/3.0) * -416.477 * tfactors.T923 + 7005.24 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nfisn + ln_set_rate = 60.6647178139042 + -34.03497375337539 * tfactors.T9i + -36.9213 * tfactors.T913i + -12.8434 * tfactors.T913 + + 1.30735 * tfactors.T9 + -0.136745 * tfactors.T953 + 5.41008 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 34.03497375337539 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.9213 * tfactors.T943i + (1.0/3.0) * -12.8434 * tfactors.T923i + + 1.30735 + (5.0/3.0) * -0.136745 * tfactors.T923 + 5.41008 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nfisn + ln_set_rate = 5.209217813904193 + -48.788388753375386 * tfactors.T9i + 207.487 * tfactors.T913i + -181.718 * tfactors.T913 + + 5.86358 * tfactors.T9 + -0.221479 * tfactors.T953 + 121.305 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 48.788388753375386 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 207.487 * tfactors.T943i + (1.0/3.0) * -181.718 * tfactors.T923i + + 5.86358 + (5.0/3.0) * -0.221479 * tfactors.T923 + 121.305 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ga62_to_He4_Cu58_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ga62 --> He4 + Cu58 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ga62_log_pf, dGa62_log_pf_dT9; + + // interpolating Ga62 partition function + get_partition_function_cached(Ga62, tfactors.T9, pf_cache, Ga62_log_pf, dGa62_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu58_log_pf, dCu58_log_pf_dT9; + + // interpolating Cu58 partition function + get_partition_function_cached(Cu58, tfactors.T9, pf_cache, Cu58_log_pf, dCu58_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Cu58_log_pf - Ga62_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCu58_log_pf_dT9 - dGa62_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 103.9530123499026 + -31.842981889186778 * tfactors.T9i + -98.8498 * tfactors.T913i + -21.411 * tfactors.T913 + + 1.84489 * tfactors.T9 + -0.142549 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 31.842981889186778 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -98.8498 * tfactors.T943i + (1.0/3.0) * -21.411 * tfactors.T923i + + 1.84489 + (5.0/3.0) * -0.142549 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ga63_to_n_Ga62_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ga63 --> n + Ga62 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ga62_log_pf, dGa62_log_pf_dT9; + + // interpolating Ga62 partition function + get_partition_function_cached(Ga62, tfactors.T9, pf_cache, Ga62_log_pf, dGa62_log_pf_dT9); + + amrex::Real Ga63_log_pf, dGa63_log_pf_dT9; + + // interpolating Ga63 partition function + get_partition_function_cached(Ga63, tfactors.T9, pf_cache, Ga63_log_pf, dGa63_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ga62_log_pf - Ga63_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dGa62_log_pf_dT9 - dGa63_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 36.00228961903378 + -146.58152024233917 * tfactors.T9i + -0.413123 * tfactors.T913 + + 0.505609 * tfactors.T9 + -0.0792987 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 146.58152024233917 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.413123 * tfactors.T923i + + 0.505609 + (5.0/3.0) * -0.0792987 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ga63_to_p_Zn62_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ga63 --> p + Zn62 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ga63_log_pf, dGa63_log_pf_dT9; + + // interpolating Ga63 partition function + get_partition_function_cached(Ga63, tfactors.T9, pf_cache, Ga63_log_pf, dGa63_log_pf_dT9); + + amrex::Real Zn62_log_pf, dZn62_log_pf_dT9; + + // interpolating Zn62 partition function + get_partition_function_cached(Zn62, tfactors.T9, pf_cache, Zn62_log_pf, dZn62_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Zn62_log_pf - Ga63_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dZn62_log_pf_dT9 - dGa63_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nfisn + ln_set_rate = 59.501409257466904 + -31.154760559912013 * tfactors.T9i + -31.4331 * tfactors.T913i + -19.7752 * tfactors.T913 + + 1.69239 * tfactors.T9 + -0.16473 * tfactors.T953 + 9.1608 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 31.154760559912013 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.4331 * tfactors.T943i + (1.0/3.0) * -19.7752 * tfactors.T923i + + 1.69239 + (5.0/3.0) * -0.16473 * tfactors.T923 + 9.1608 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nfisn + ln_set_rate = 7911.244709257468 + -90.90891855991201 * tfactors.T9i + 4643.34 * tfactors.T913i + -14105.9 * tfactors.T913 + + 1925.65 * tfactors.T9 + -299.872 * tfactors.T953 + 4770.14 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 90.90891855991201 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 4643.34 * tfactors.T943i + (1.0/3.0) * -14105.9 * tfactors.T923i + + 1925.65 + (5.0/3.0) * -299.872 * tfactors.T923 + 4770.14 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nfisn + ln_set_rate = 69.7068092574669 + -52.97601855991201 * tfactors.T9i + 516.062 * tfactors.T913i + -567.538 * tfactors.T913 + + 23.7454 * tfactors.T9 + -1.02526 * tfactors.T953 + 329.36 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 52.97601855991201 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 516.062 * tfactors.T943i + (1.0/3.0) * -567.538 * tfactors.T923i + + 23.7454 + (5.0/3.0) * -1.02526 * tfactors.T923 + 329.36 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nfisn + ln_set_rate = -16.1137907425331 + -52.794118559912015 * tfactors.T9i + 181.058 * tfactors.T913i + -128.039 * tfactors.T913 + + 5.3613 * tfactors.T9 + -0.329542 * tfactors.T953 + 88.9371 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 52.794118559912015 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 181.058 * tfactors.T943i + (1.0/3.0) * -128.039 * tfactors.T923i + + 5.3613 + (5.0/3.0) * -0.329542 * tfactors.T923 + 88.9371 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ga63_to_He4_Cu59_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ga63 --> He4 + Cu59 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cu59_log_pf, dCu59_log_pf_dT9; + + // interpolating Cu59 partition function + get_partition_function_cached(Cu59, tfactors.T9, pf_cache, Cu59_log_pf, dCu59_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ga63_log_pf, dGa63_log_pf_dT9; + + // interpolating Ga63 partition function + get_partition_function_cached(Ga63, tfactors.T9, pf_cache, Ga63_log_pf, dGa63_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Cu59_log_pf - Ga63_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCu59_log_pf_dT9 - dGa63_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 93.01002687088489 + -30.328592274369974 * tfactors.T9i + -98.8858 * tfactors.T913i + -2.92113 * tfactors.T913 + + -2.38226 * tfactors.T9 + 0.272994 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 30.328592274369974 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -98.8858 * tfactors.T943i + (1.0/3.0) * -2.92113 * tfactors.T923i + + -2.38226 + (5.0/3.0) * 0.272994 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ga64_to_n_Ga63_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ga64 --> n + Ga63 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ga63_log_pf, dGa63_log_pf_dT9; + + // interpolating Ga63 partition function + get_partition_function_cached(Ga63, tfactors.T9, pf_cache, Ga63_log_pf, dGa63_log_pf_dT9); + + amrex::Real Ga64_log_pf, dGa64_log_pf_dT9; + + // interpolating Ga64 partition function + get_partition_function_cached(Ga64, tfactors.T9, pf_cache, Ga64_log_pf, dGa64_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ga63_log_pf - Ga64_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dGa63_log_pf_dT9 - dGa64_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 37.89715589460994 + -120.18820422670078 * tfactors.T9i + 1.0342 * tfactors.T913 + + 0.0882306 * tfactors.T9 + -0.0437444 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 120.18820422670078 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.0342 * tfactors.T923i + + 0.0882306 + (5.0/3.0) * -0.0437444 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ga64_to_p_Zn63_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ga64 --> p + Zn63 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Zn63_log_pf, dZn63_log_pf_dT9; + + // interpolating Zn63 partition function + get_partition_function_cached(Zn63, tfactors.T9, pf_cache, Zn63_log_pf, dZn63_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ga64_log_pf, dGa64_log_pf_dT9; + + // interpolating Ga64 partition function + get_partition_function_cached(Ga64, tfactors.T9, pf_cache, Ga64_log_pf, dGa64_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Zn63_log_pf - Ga64_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dZn63_log_pf_dT9 - dGa64_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 61.92673172055801 + -45.35476283786956 * tfactors.T9i + -40.9093 * tfactors.T913i + 2.88162 * tfactors.T913 + + -2.11741 * tfactors.T9 + 0.191601 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 45.35476283786956 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -40.9093 * tfactors.T943i + (1.0/3.0) * 2.88162 * tfactors.T923i + + -2.11741 + (5.0/3.0) * 0.191601 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ga64_to_He4_Cu60_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ga64 --> He4 + Cu60 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cu60_log_pf, dCu60_log_pf_dT9; + + // interpolating Cu60 partition function + get_partition_function_cached(Cu60, tfactors.T9, pf_cache, Cu60_log_pf, dCu60_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ga64_log_pf, dGa64_log_pf_dT9; + + // interpolating Ga64 partition function + get_partition_function_cached(Ga64, tfactors.T9, pf_cache, Ga64_log_pf, dGa64_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Cu60_log_pf - Ga64_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCu60_log_pf_dT9 - dGa64_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 92.88776500270123 + -33.797182740889745 * tfactors.T9i + -98.9207 * tfactors.T913i + 0.933671 * tfactors.T913 + + -3.79958 * tfactors.T9 + 0.446216 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 33.797182740889745 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -98.9207 * tfactors.T943i + (1.0/3.0) * 0.933671 * tfactors.T923i + + -3.79958 + (5.0/3.0) * 0.446216 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ge63_to_p_Ga62_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ge63 --> p + Ga62 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ga62_log_pf, dGa62_log_pf_dT9; + + // interpolating Ga62 partition function + get_partition_function_cached(Ga62, tfactors.T9, pf_cache, Ga62_log_pf, dGa62_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ge63_log_pf, dGe63_log_pf_dT9; + + // interpolating Ge63 partition function + get_partition_function_cached(Ge63, tfactors.T9, pf_cache, Ge63_log_pf, dGe63_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ga62_log_pf - Ge63_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dGa62_log_pf_dT9 - dGe63_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nfisn + ln_set_rate = 45.377496593746045 + -26.881043477746623 * tfactors.T9i + -107.856 * tfactors.T913i + 80.6244 * tfactors.T913 + + -2.84514 * tfactors.T9 + 0.087641 * tfactors.T953 + -55.0078 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 26.881043477746623 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -107.856 * tfactors.T943i + (1.0/3.0) * 80.6244 * tfactors.T923i + + -2.84514 + (5.0/3.0) * 0.087641 * tfactors.T923 + -55.0078 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nfisn + ln_set_rate = 290.684696593746 + -25.954592477746626 * tfactors.T9i + -8.15451 * tfactors.T913i + -301.681 * tfactors.T913 + + 33.0147 * tfactors.T9 + -2.8672 * tfactors.T953 + 72.2354 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 25.954592477746626 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -8.15451 * tfactors.T943i + (1.0/3.0) * -301.681 * tfactors.T923i + + 33.0147 + (5.0/3.0) * -2.8672 * tfactors.T923 + 72.2354 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nfisn + ln_set_rate = 52.11899659374605 + -25.723304877746624 * tfactors.T9i + -45.5057 * tfactors.T913i + 1.9831 * tfactors.T913 + + -0.147339 * tfactors.T9 + -0.0169469 * tfactors.T953 + -0.9603299999999999 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 25.723304877746624 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -45.5057 * tfactors.T943i + (1.0/3.0) * 1.9831 * tfactors.T923i + + -0.147339 + (5.0/3.0) * -0.0169469 * tfactors.T923 + -0.9603299999999999 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nfisn + ln_set_rate = 9653.544696593746 + -138.70090347774664 * tfactors.T9i + 6926.61 * tfactors.T913i + -18459.0 * tfactors.T913 + + 2374.61 * tfactors.T9 + -366.508 * tfactors.T953 + 6588.46 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 138.70090347774664 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 6926.61 * tfactors.T943i + (1.0/3.0) * -18459.0 * tfactors.T923i + + 2374.61 + (5.0/3.0) * -366.508 * tfactors.T923 + 6588.46 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nfisn + ln_set_rate = 76.03979659374605 + -30.316693477746625 * tfactors.T9i + 11.0703 * tfactors.T913i + -66.0297 * tfactors.T913 + + 2.89115 * tfactors.T9 + -0.129107 * tfactors.T953 + 30.8214 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 30.316693477746625 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 11.0703 * tfactors.T943i + (1.0/3.0) * -66.0297 * tfactors.T923i + + 2.89115 + (5.0/3.0) * -0.129107 * tfactors.T923 + 30.8214 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ge63_to_He4_Zn59_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ge63 --> He4 + Zn59 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ge63_log_pf, dGe63_log_pf_dT9; + + // interpolating Ge63 partition function + get_partition_function_cached(Ge63, tfactors.T9, pf_cache, Ge63_log_pf, dGe63_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn59_log_pf, dZn59_log_pf_dT9; + + // interpolating Zn59 partition function + get_partition_function_cached(Zn59, tfactors.T9, pf_cache, Zn59_log_pf, dZn59_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Zn59_log_pf - Ge63_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dZn59_log_pf_dT9 - dGe63_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 101.38343267588408 + -24.708524148095407 * tfactors.T9i + -101.146 * tfactors.T913i + -14.3723 * tfactors.T913 + + 0.893059 * tfactors.T9 + -0.0564743 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 24.708524148095407 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -101.146 * tfactors.T943i + (1.0/3.0) * -14.3723 * tfactors.T923i + + 0.893059 + (5.0/3.0) * -0.0564743 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ge64_to_n_Ge63_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ge64 --> n + Ge63 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ge63_log_pf, dGe63_log_pf_dT9; + + // interpolating Ge63 partition function + get_partition_function_cached(Ge63, tfactors.T9, pf_cache, Ge63_log_pf, dGe63_log_pf_dT9); + + amrex::Real Ge64_log_pf, dGe64_log_pf_dT9; + + // interpolating Ge64 partition function + get_partition_function_cached(Ge64, tfactors.T9, pf_cache, Ge64_log_pf, dGe64_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ge63_log_pf - Ge64_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dGe63_log_pf_dT9 - dGe64_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 33.44968678678692 + -179.49077318326303 * tfactors.T9i + 0.20987 * tfactors.T913 + + 0.182208 * tfactors.T9 + -0.0339886 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 179.49077318326303 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.20987 * tfactors.T923i + + 0.182208 + (5.0/3.0) * -0.0339886 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ge64_to_p_Ga63_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ge64 --> p + Ga63 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ga63_log_pf, dGa63_log_pf_dT9; + + // interpolating Ga63 partition function + get_partition_function_cached(Ga63, tfactors.T9, pf_cache, Ga63_log_pf, dGa63_log_pf_dT9); + + amrex::Real Ge64_log_pf, dGe64_log_pf_dT9; + + // interpolating Ge64 partition function + get_partition_function_cached(Ge64, tfactors.T9, pf_cache, Ge64_log_pf, dGe64_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ga63_log_pf - Ge64_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dGa63_log_pf_dT9 - dGe64_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 63.066883761499184 + -58.69415641864885 * tfactors.T9i + -41.8134 * tfactors.T913i + 1.45084 * tfactors.T913 + + -3.1328 * tfactors.T9 + 0.353318 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 58.69415641864885 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -41.8134 * tfactors.T943i + (1.0/3.0) * 1.45084 * tfactors.T923i + + -3.1328 + (5.0/3.0) * 0.353318 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ge64_to_He4_Zn60_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ge64 --> He4 + Zn60 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn60_log_pf, dZn60_log_pf_dT9; + + // interpolating Zn60 partition function + get_partition_function_cached(Zn60, tfactors.T9, pf_cache, Zn60_log_pf, dZn60_log_pf_dT9); + + amrex::Real Ge64_log_pf, dGe64_log_pf_dT9; + + // interpolating Ge64 partition function + get_partition_function_cached(Ge64, tfactors.T9, pf_cache, Ge64_log_pf, dGe64_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Zn60_log_pf - Ge64_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dZn60_log_pf_dT9 - dGe64_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 86.11962424896994 + -29.782019470833834 * tfactors.T9i + -101.182 * tfactors.T913i + 10.4963 * tfactors.T913 + + -7.04215 * tfactors.T9 + 0.732883 * tfactors.T953 + 0.833333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 29.782019470833834 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -101.182 * tfactors.T943i + (1.0/3.0) * 10.4963 * tfactors.T923i + + -7.04215 + (5.0/3.0) * 0.732883 * tfactors.T923 + 0.833333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Li6_to_n_p_He4_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Li6 --> n + p + He4 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Li6_log_pf, dLi6_log_pf_dT9; + + // setting Li6 log(partition function) to 0.0 by default, independent of T + Li6_log_pf = 0.0_rt; + dLi6_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + p_log_pf + He4_log_pf - Li6_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dp_log_pf_dT9 + dHe4_log_pf_dT9 - dLi6_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88r + ln_set_rate = 33.455992339818955 + -62.27027523462029 * tfactors.T9i + 1.44987 * tfactors.T913i + -1.42759 * tfactors.T913 + + 0.0454035 * tfactors.T9 + 0.00471161 * tfactors.T953 + 2.0 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 62.27027523462029 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.44987 * tfactors.T943i + (1.0/3.0) * -1.42759 * tfactors.T923i + + 0.0454035 + (5.0/3.0) * 0.00471161 * tfactors.T923 + 2.0 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Be9_to_n_He4_He4_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Be9 --> n + He4 + He4 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Be9_log_pf, dBe9_log_pf_dT9; + + // setting Be9 log(partition function) to 0.0 by default, independent of T + Be9_log_pf = 0.0_rt; + dBe9_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + He4_log_pf + He4_log_pf - Be9_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dHe4_log_pf_dT9 + dHe4_log_pf_dT9 - dBe9_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ac12r + ln_set_rate = 38.711631232653104 + -19.269953793053674 * tfactors.T9i + -1.56673 * tfactors.T913i + -5.43497 * tfactors.T913 + + 0.673807 * tfactors.T9 + -0.041014 * tfactors.T953 + 1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 19.269953793053674 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.56673 * tfactors.T943i + (1.0/3.0) * -5.43497 * tfactors.T923i + + 0.673807 + (5.0/3.0) * -0.041014 * tfactors.T923 + 1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from ac12n + ln_set_rate = 37.2944312326531 + -18.250423793053674 * tfactors.T9i + -13.3317 * tfactors.T913i + 13.2237 * tfactors.T913 + + -9.06339 * tfactors.T9 + 2.333333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 18.250423793053674 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -13.3317 * tfactors.T943i + (1.0/3.0) * 13.2237 * tfactors.T923i + + -9.06339 + 2.333333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C12_to_3He4_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // C12 --> 3 He4 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real C12_log_pf, dC12_log_pf_dT9; + + // setting C12 log(partition function) to 0.0 by default, independent of T + C12_log_pf = 0.0_rt; + dC12_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He4_log_pf + He4_log_pf + He4_log_pf - C12_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dHe4_log_pf_dT9 + dHe4_log_pf_dT9 - dC12_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from fy05r + ln_set_rate = 34.96090397991297 + -85.44440046993657 * tfactors.T9i + -23.57 * tfactors.T913i + 20.4886 * tfactors.T913 + + -12.9882 * tfactors.T9 + -20.0 * tfactors.T953 + 0.8333300000000001 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 85.44440046993657 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -23.57 * tfactors.T943i + (1.0/3.0) * 20.4886 * tfactors.T923i + + -12.9882 + (5.0/3.0) * -20.0 * tfactors.T923 + 0.8333300000000001 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from fy05n + ln_set_rate = 45.77825197991297 + -84.41994046993656 * tfactors.T9i + -37.06 * tfactors.T913i + 29.3493 * tfactors.T913 + + -115.507 * tfactors.T9 + -10.0 * tfactors.T953 + 1.66667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 84.41994046993656 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -37.06 * tfactors.T943i + (1.0/3.0) * 29.3493 * tfactors.T923i + + -115.507 + (5.0/3.0) * -10.0 * tfactors.T923 + 1.66667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from fy05r + ln_set_rate = 22.398803979912973 + -88.54650046993656 * tfactors.T9i + -13.49 * tfactors.T913i + 21.4259 * tfactors.T913 + + -1.34769 * tfactors.T9 + 0.0879816 * tfactors.T953 + -10.1653 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 88.54650046993656 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -13.49 * tfactors.T943i + (1.0/3.0) * 21.4259 * tfactors.T923i + + -1.34769 + (5.0/3.0) * 0.0879816 * tfactors.T923 + -10.1653 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_He3_n_to_d_d_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // He3 + n --> d + d + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real d_log_pf, dd_log_pf_dT9; + + // setting d log(partition function) to 0.0 by default, independent of T + d_log_pf = 0.0_rt; + dd_log_pf_dT9 = 0.0_rt; + + amrex::Real He3_log_pf, dHe3_log_pf_dT9; + + // setting He3 log(partition function) to 0.0 by default, independent of T + He3_log_pf = 0.0_rt; + dHe3_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = d_log_pf + d_log_pf - n_log_pf - He3_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dd_log_pf_dT9 + dd_log_pf_dT9 - dn_log_pf_dT9 - dHe3_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from gi17n + ln_set_rate = 19.63714569604665 + -37.934301543336275 * tfactors.T9i + -4.2292 * tfactors.T913i + 1.6932 * tfactors.T913 + + -0.0855529 * tfactors.T9 + -1.35709e-25 * tfactors.T953 + -0.734513 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 37.934301543336275 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -4.2292 * tfactors.T943i + (1.0/3.0) * 1.6932 * tfactors.T923i + + -0.0855529 + (5.0/3.0) * -1.35709e-25 * tfactors.T923 + -0.734513 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_He3_He4_to_p_Li6_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // He3 + He4 --> p + Li6 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He3_log_pf, dHe3_log_pf_dT9; + + // setting He3 log(partition function) to 0.0 by default, independent of T + He3_log_pf = 0.0_rt; + dHe3_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Li6_log_pf, dLi6_log_pf_dT9; + + // setting Li6 log(partition function) to 0.0 by default, independent of T + Li6_log_pf = 0.0_rt; + dLi6_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Li6_log_pf - He4_log_pf - He3_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dLi6_log_pf_dT9 - dHe4_log_pf_dT9 - dHe3_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from pt05n + ln_set_rate = 24.417222517441605 + -46.646875451105785 * tfactors.T9i + -8.39481 * tfactors.T913i + -0.165254 * tfactors.T913 + + -0.16936 * tfactors.T9 + 0.0533676 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 46.646875451105785 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -8.39481 * tfactors.T943i + (1.0/3.0) * -0.165254 * tfactors.T923i + + -0.16936 + (5.0/3.0) * 0.0533676 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_He4_p_to_d_He3_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // He4 + p --> d + He3 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He3_log_pf, dHe3_log_pf_dT9; + + // setting He3 log(partition function) to 0.0 by default, independent of T + He3_log_pf = 0.0_rt; + dHe3_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real d_log_pf, dd_log_pf_dT9; + + // setting d log(partition function) to 0.0 by default, independent of T + d_log_pf = 0.0_rt; + dd_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = d_log_pf + He3_log_pf - p_log_pf - He4_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dd_log_pf_dT9 + dHe3_log_pf_dT9 - dp_log_pf_dT9 - dHe4_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from de04 + ln_set_rate = 43.013484586436284 + -212.97835748819008 * tfactors.T9i + -7.182 * tfactors.T913i + -17.1349 * tfactors.T913 + + 1.36908 * tfactors.T9 + -0.0814423 * tfactors.T953 + 3.35395 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 212.97835748819008 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -7.182 * tfactors.T943i + (1.0/3.0) * -17.1349 * tfactors.T923i + + 1.36908 + (5.0/3.0) * -0.0814423 * tfactors.T923 + 3.35395 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from de04 + ln_set_rate = 26.40048458643628 + -212.97835748819008 * tfactors.T9i + -7.182 * tfactors.T913i + 0.473288 * tfactors.T913 + + 1.46847 * tfactors.T9 + -27.9603 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 212.97835748819008 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -7.182 * tfactors.T943i + (1.0/3.0) * 0.473288 * tfactors.T923i + + 1.46847 + (5.0/3.0) * -27.9603 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_He4_He4_to_n_Be7_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // He4 + He4 --> n + Be7 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Be7_log_pf, dBe7_log_pf_dT9; + + // setting Be7 log(partition function) to 0.0 by default, independent of T + Be7_log_pf = 0.0_rt; + dBe7_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + Be7_log_pf - He4_log_pf - He4_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dBe7_log_pf_dT9 - dHe4_log_pf_dT9 - dHe4_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from wagn + ln_set_rate = 19.718325502130693 + -220.37544310166703 * tfactors.T9i + -0.00210045 * tfactors.T913 + + 0.000176541 * tfactors.T9 + -1.36797e-05 * tfactors.T953 + 1.00083 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 220.37544310166703 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.00210045 * tfactors.T923i + + 0.000176541 + (5.0/3.0) * -1.36797e-05 * tfactors.T923 + 1.00083 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_He4_He4_to_p_Li7_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // He4 + He4 --> p + Li7 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Li7_log_pf, dLi7_log_pf_dT9; + + // setting Li7 log(partition function) to 0.0 by default, independent of T + Li7_log_pf = 0.0_rt; + dLi7_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Li7_log_pf - He4_log_pf - He4_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dLi7_log_pf_dT9 - dHe4_log_pf_dT9 - dHe4_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from de04r + ln_set_rate = 23.454413279927294 + -227.4475065986905 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 227.4475065986905 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from de04 + ln_set_rate = 21.998313279927295 + -201.29480659869049 * tfactors.T9i + -8.4727 * tfactors.T913i + 0.297934 * tfactors.T913 + + 0.0582335 * tfactors.T9 + -0.00413383 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 201.29480659869049 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -8.4727 * tfactors.T943i + (1.0/3.0) * 0.297934 * tfactors.T923i + + 0.0582335 + (5.0/3.0) * -0.00413383 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from de04r + ln_set_rate = 15.808313279927294 + -205.7728065986905 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 205.7728065986905 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from de04 + ln_set_rate = 13.512113279927293 + -201.29480659869049 * tfactors.T9i + -8.4727 * tfactors.T913i + 0.417943 * tfactors.T913 + + 5.34565 * tfactors.T9 + -4.8684 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 201.29480659869049 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -8.4727 * tfactors.T943i + (1.0/3.0) * 0.417943 * tfactors.T923i + + 5.34565 + (5.0/3.0) * -4.8684 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Li6_He4_to_p_Be9_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Li6 + He4 --> p + Be9 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Be9_log_pf, dBe9_log_pf_dT9; + + // setting Be9 log(partition function) to 0.0 by default, independent of T + Be9_log_pf = 0.0_rt; + dBe9_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Li6_log_pf, dLi6_log_pf_dT9; + + // setting Li6 log(partition function) to 0.0 by default, independent of T + Li6_log_pf = 0.0_rt; + dLi6_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Be9_log_pf - He4_log_pf - Li6_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dBe9_log_pf_dT9 - dHe4_log_pf_dT9 - dLi6_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88n + ln_set_rate = 25.599633926605904 + -24.66685144157862 * tfactors.T9i + -10.359 * tfactors.T913i + 0.102577 * tfactors.T913 + + 4.43544 * tfactors.T9 + -5.97105 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 24.66685144157862 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -10.359 * tfactors.T943i + (1.0/3.0) * 0.102577 * tfactors.T923i + + 4.43544 + (5.0/3.0) * -5.97105 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from cf88r + ln_set_rate = 19.847333926605906 + -29.82685144157862 * tfactors.T9i + + -0.75 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 29.82685144157862 * tfactors.T9i * tfactors.T9i + + -0.75 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from cf88r + ln_set_rate = 19.451533926605904 + -27.712851441578618 * tfactors.T9i + + -1.0 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 27.712851441578618 * tfactors.T9i * tfactors.T9i + + -1.0 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Li7_p_to_n_Be7_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Li7 + p --> n + Be7 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Li7_log_pf, dLi7_log_pf_dT9; + + // setting Li7 log(partition function) to 0.0 by default, independent of T + Li7_log_pf = 0.0_rt; + dLi7_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Be7_log_pf, dBe7_log_pf_dT9; + + // setting Be7 log(partition function) to 0.0 by default, independent of T + Be7_log_pf = 0.0_rt; + dBe7_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + Be7_log_pf - p_log_pf - Li7_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dBe7_log_pf_dT9 - dp_log_pf_dT9 - dLi7_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from db18 + ln_set_rate = 21.792312222203396 + -19.079908404979005 * tfactors.T9i + -0.30254 * tfactors.T913i + -0.3602 * tfactors.T913 + + 0.17472 * tfactors.T9 + -0.0223 * tfactors.T953 + -0.4581 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 19.079908404979005 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.30254 * tfactors.T943i + (1.0/3.0) * -0.3602 * tfactors.T923i + + 0.17472 + (5.0/3.0) * -0.0223 * tfactors.T923 + -0.4581 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Li7_p_to_d_Li6_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Li7 + p --> d + Li6 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Li7_log_pf, dLi7_log_pf_dT9; + + // setting Li7 log(partition function) to 0.0 by default, independent of T + Li7_log_pf = 0.0_rt; + dLi7_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real d_log_pf, dd_log_pf_dT9; + + // setting d log(partition function) to 0.0 by default, independent of T + d_log_pf = 0.0_rt; + dd_log_pf_dT9 = 0.0_rt; + + amrex::Real Li6_log_pf, dLi6_log_pf_dT9; + + // setting Li6 log(partition function) to 0.0 by default, independent of T + Li6_log_pf = 0.0_rt; + dLi6_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = d_log_pf + Li6_log_pf - p_log_pf - Li7_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dd_log_pf_dT9 + dLi6_log_pf_dT9 - dp_log_pf_dT9 - dLi7_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from mafon + ln_set_rate = 28.948041004510536 + -58.33042634060782 * tfactors.T9i + -10.135 * tfactors.T913i + + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 58.33042634060782 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -10.135 * tfactors.T943i + + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Li7_He4_to_n_B10_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Li7 + He4 --> n + B10 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Li7_log_pf, dLi7_log_pf_dT9; + + // setting Li7 log(partition function) to 0.0 by default, independent of T + Li7_log_pf = 0.0_rt; + dLi7_log_pf_dT9 = 0.0_rt; + + amrex::Real B10_log_pf, dB10_log_pf_dT9; + + // setting B10 log(partition function) to 0.0 by default, independent of T + B10_log_pf = 0.0_rt; + dB10_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + B10_log_pf - He4_log_pf - Li7_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dB10_log_pf_dT9 - dHe4_log_pf_dT9 - dLi7_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88n + ln_set_rate = 19.769599452114864 + -32.3755406125089 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 32.3755406125089 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Be7_n_to_d_Li6_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Be7 + n --> d + Li6 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real d_log_pf, dd_log_pf_dT9; + + // setting d log(partition function) to 0.0 by default, independent of T + d_log_pf = 0.0_rt; + dd_log_pf_dT9 = 0.0_rt; + + amrex::Real Be7_log_pf, dBe7_log_pf_dT9; + + // setting Be7 log(partition function) to 0.0 by default, independent of T + Be7_log_pf = 0.0_rt; + dBe7_log_pf_dT9 = 0.0_rt; + + amrex::Real Li6_log_pf, dLi6_log_pf_dT9; + + // setting Li6 log(partition function) to 0.0 by default, independent of T + Li6_log_pf = 0.0_rt; + dLi6_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = d_log_pf + Li6_log_pf - n_log_pf - Be7_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dd_log_pf_dT9 + dLi6_log_pf_dT9 - dn_log_pf_dT9 - dBe7_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from mafon + ln_set_rate = 28.93202878230714 + -39.249789837633585 * tfactors.T9i + -10.259 * tfactors.T913i + -2.01559e-09 * tfactors.T913 + + 1.99542e-10 * tfactors.T9 + -1.65595e-11 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 39.249789837633585 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -10.259 * tfactors.T943i + (1.0/3.0) * -2.01559e-09 * tfactors.T923i + + 1.99542e-10 + (5.0/3.0) * -1.65595e-11 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Be7_He4_to_p_B10_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Be7 + He4 --> p + B10 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Be7_log_pf, dBe7_log_pf_dT9; + + // setting Be7 log(partition function) to 0.0 by default, independent of T + Be7_log_pf = 0.0_rt; + dBe7_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real B10_log_pf, dB10_log_pf_dT9; + + // setting B10 log(partition function) to 0.0 by default, independent of T + B10_log_pf = 0.0_rt; + dB10_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + B10_log_pf - He4_log_pf - Be7_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dB10_log_pf_dT9 - dHe4_log_pf_dT9 - dBe7_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacrr + ln_set_rate = -6.731642770088533 + -13.855657109510693 * tfactors.T9i + 0.532995 * tfactors.T913i + 22.8893 * tfactors.T913 + + -3.08149 * tfactors.T9 + 0.218269 * tfactors.T953 + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 13.855657109510693 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 0.532995 * tfactors.T943i + (1.0/3.0) * 22.8893 * tfactors.T923i + + -3.08149 + (5.0/3.0) * 0.218269 * tfactors.T923 + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacrn + ln_set_rate = 43.93638722991147 + -13.294904109510693 * tfactors.T9i + -12.9754 * tfactors.T913i + -44.3224 * tfactors.T913 + + 62.9626 * tfactors.T9 + -49.5228 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 13.294904109510693 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -12.9754 * tfactors.T943i + (1.0/3.0) * -44.3224 * tfactors.T923i + + 62.9626 + (5.0/3.0) * -49.5228 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C12_n_to_He4_Be9_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // C12 + n --> He4 + Be9 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Be9_log_pf, dBe9_log_pf_dT9; + + // setting Be9 log(partition function) to 0.0 by default, independent of T + Be9_log_pf = 0.0_rt; + dBe9_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real C12_log_pf, dC12_log_pf_dT9; + + // setting C12 log(partition function) to 0.0 by default, independent of T + C12_log_pf = 0.0_rt; + dC12_log_pf_dT9 = 0.0_rt; + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He4_log_pf + Be9_log_pf - n_log_pf - C12_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dBe9_log_pf_dT9 - dn_log_pf_dT9 - dC12_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88r + ln_set_rate = 14.068505035927975 + -70.3485166768925 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 70.3485166768925 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from cf88r + ln_set_rate = 0.841695035927976 + -68.0035166768925 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 68.0035166768925 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from cf88r + ln_set_rate = -7.195084964072025 + -67.3535166768925 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 67.3535166768925 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from cf88n + ln_set_rate = 33.788505035927976 + -66.1695166768925 * tfactors.T9i + -23.87 * tfactors.T913i + 0.566698 * tfactors.T913 + + 44.0957 * tfactors.T9 + -314.232 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 66.1695166768925 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -23.87 * tfactors.T943i + (1.0/3.0) * 0.566698 * tfactors.T923i + + 44.0957 + (5.0/3.0) * -314.232 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from cf88r + ln_set_rate = 21.620705035927976 + -78.9015166768925 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 78.9015166768925 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C12_He4_to_n_O15_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // C12 + He4 --> n + O15 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real O15_log_pf, dO15_log_pf_dT9; + + // interpolating O15 partition function + get_partition_function_cached(O15, tfactors.T9, pf_cache, O15_log_pf, dO15_log_pf_dT9); + + amrex::Real C12_log_pf, dC12_log_pf_dT9; + + // setting C12 log(partition function) to 0.0 by default, independent of T + C12_log_pf = 0.0_rt; + dC12_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + O15_log_pf - He4_log_pf - C12_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dO15_log_pf_dT9 - dHe4_log_pf_dT9 - dC12_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88n + ln_set_rate = 17.031921502558642 + -98.66163894748863 * tfactors.T9i + 0.124787 * tfactors.T913 + + 0.0588937 * tfactors.T9 + -0.00679206 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 98.66163894748863 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.124787 * tfactors.T923i + + 0.0588937 + (5.0/3.0) * -0.00679206 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C12_He4_to_p_N15_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // C12 + He4 --> p + N15 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real N15_log_pf, dN15_log_pf_dT9; + + // setting N15 log(partition function) to 0.0 by default, independent of T + N15_log_pf = 0.0_rt; + dN15_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real C12_log_pf, dC12_log_pf_dT9; + + // setting C12 log(partition function) to 0.0 by default, independent of T + C12_log_pf = 0.0_rt; + dC12_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + N15_log_pf - He4_log_pf - C12_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dN15_log_pf_dT9 - dHe4_log_pf_dT9 - dC12_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacrn + ln_set_rate = 27.135846229234243 + -57.62215691264642 * tfactors.T9i + -15.253 * tfactors.T913i + 1.59318 * tfactors.T913 + + 2.4479 * tfactors.T9 + -2.19708 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 57.62215691264642 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -15.253 * tfactors.T943i + (1.0/3.0) * 1.59318 * tfactors.T923i + + 2.4479 + (5.0/3.0) * -2.19708 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacrr + ln_set_rate = -6.915773770765759 + -58.78595691264642 * tfactors.T9i + 22.7105 * tfactors.T913 + + -2.90707 * tfactors.T9 + 0.205754 * tfactors.T953 + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 58.78595691264642 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 22.7105 * tfactors.T923i + + -2.90707 + (5.0/3.0) * 0.205754 * tfactors.T923 + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacrr + ln_set_rate = 20.556646229234243 + -65.02815691264642 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 65.02815691264642 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacrr + ln_set_rate = -5.21402377076576 + -59.643326912646415 * tfactors.T9i + 30.8497 * tfactors.T913 + + -8.50433 * tfactors.T9 + -1.54426 * tfactors.T953 + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 59.643326912646415 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 30.8497 * tfactors.T923i + + -8.50433 + (5.0/3.0) * -1.54426 * tfactors.T923 + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C12_C12_to_n_Mg23_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // C12 + C12 --> n + Mg23 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Mg23_log_pf, dMg23_log_pf_dT9; + + // interpolating Mg23 partition function + get_partition_function_cached(Mg23, tfactors.T9, pf_cache, Mg23_log_pf, dMg23_log_pf_dT9); + + amrex::Real C12_log_pf, dC12_log_pf_dT9; + + // setting C12 log(partition function) to 0.0 by default, independent of T + C12_log_pf = 0.0_rt; + dC12_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + Mg23_log_pf - C12_log_pf - C12_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dMg23_log_pf_dT9 - dC12_log_pf_dT9 - dC12_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88r + ln_set_rate = -12.784659727528789 + -30.144454449865492 * tfactors.T9i + 11.4826 * tfactors.T913 + + 1.82849 * tfactors.T9 + -0.34844 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 30.144454449865492 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 11.4826 * tfactors.T923i + + 1.82849 + (5.0/3.0) * -0.34844 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C13_p_to_He4_B10_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // C13 + p --> He4 + B10 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real B10_log_pf, dB10_log_pf_dT9; + + // setting B10 log(partition function) to 0.0 by default, independent of T + B10_log_pf = 0.0_rt; + dB10_log_pf_dT9 = 0.0_rt; + + amrex::Real C13_log_pf, dC13_log_pf_dT9; + + // setting C13 log(partition function) to 0.0 by default, independent of T + C13_log_pf = 0.0_rt; + dC13_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He4_log_pf + B10_log_pf - p_log_pf - C13_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dB10_log_pf_dT9 - dp_log_pf_dT9 - dC13_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from wagn + ln_set_rate = 36.728238047698945 + -47.13229003037794 * tfactors.T9i + -27.99 * tfactors.T913i + + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 47.13229003037794 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -27.99 * tfactors.T943i + + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C14_p_to_n_N14_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // C14 + p --> n + N14 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real C14_log_pf, dC14_log_pf_dT9; + + // setting C14 log(partition function) to 0.0 by default, independent of T + C14_log_pf = 0.0_rt; + dC14_log_pf_dT9 = 0.0_rt; + + amrex::Real N14_log_pf, dN14_log_pf_dT9; + + // setting N14 log(partition function) to 0.0 by default, independent of T + N14_log_pf = 0.0_rt; + dN14_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + N14_log_pf - p_log_pf - C14_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dN14_log_pf_dT9 - dp_log_pf_dT9 - dC14_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88 + ln_set_rate = 5.237944838023709 + -7.262929458122475 * tfactors.T9i + 12.3428 * tfactors.T913 + + -2.70025 * tfactors.T9 + 0.236625 * tfactors.T953 + 1.0 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 7.262929458122475 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 12.3428 * tfactors.T923i + + -2.70025 + (5.0/3.0) * 0.236625 * tfactors.T923 + 1.0 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from cf88n + ln_set_rate = 14.76286483802371 + -7.262929458122475 * tfactors.T9i + -4.33989 * tfactors.T913 + + 11.4311 * tfactors.T9 + -11.7764 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 7.262929458122475 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -4.33989 * tfactors.T923i + + 11.4311 + (5.0/3.0) * -11.7764 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C14_p_to_He4_B11_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // C14 + p --> He4 + B11 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real C14_log_pf, dC14_log_pf_dT9; + + // setting C14 log(partition function) to 0.0 by default, independent of T + C14_log_pf = 0.0_rt; + dC14_log_pf_dT9 = 0.0_rt; + + amrex::Real B11_log_pf, dB11_log_pf_dT9; + + // setting B11 log(partition function) to 0.0 by default, independent of T + B11_log_pf = 0.0_rt; + dB11_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He4_log_pf + B11_log_pf - p_log_pf - C14_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dB11_log_pf_dT9 - dp_log_pf_dT9 - dC14_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from bb92r + ln_set_rate = 7.883040761029783 + -14.242154871672966 * tfactors.T9i + -5.81643e-09 * tfactors.T913i + 1.24374e-08 * tfactors.T913 + + -9.55069e-10 * tfactors.T9 + 6.81706e-11 * tfactors.T953 + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 14.242154871672966 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -5.81643e-09 * tfactors.T943i + (1.0/3.0) * 1.24374e-08 * tfactors.T923i + + -9.55069e-10 + (5.0/3.0) * 6.81706e-11 * tfactors.T923 + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from bb92r + ln_set_rate = 8.588720761029784 + -14.252154871672966 * tfactors.T9i + -2.8504e-09 * tfactors.T913i + 5.85721e-09 * tfactors.T913 + + -4.34052e-10 * tfactors.T9 + 3.01373e-11 * tfactors.T953 + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 14.252154871672966 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.8504e-09 * tfactors.T943i + (1.0/3.0) * 5.85721e-09 * tfactors.T923i + + -4.34052e-10 + (5.0/3.0) * 3.01373e-11 * tfactors.T923 + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from bb92n + ln_set_rate = 180.71052076102978 + -9.290344871672966 * tfactors.T9i + 4.28912 * tfactors.T913i + -214.72 * tfactors.T913 + + 57.4073 * tfactors.T9 + -25.5329 * tfactors.T953 + 53.0473 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 9.290344871672966 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 4.28912 * tfactors.T943i + (1.0/3.0) * -214.72 * tfactors.T923i + + 57.4073 + (5.0/3.0) * -25.5329 * tfactors.T923 + 53.0473 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from bb92r + ln_set_rate = 17.808220761029784 + -20.355154871672966 * tfactors.T9i + -1.87598e-08 * tfactors.T913i + 3.26423e-08 * tfactors.T913 + + -2.18782e-09 * tfactors.T9 + 1.43323e-10 * tfactors.T953 + 0.6 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 20.355154871672966 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.87598e-08 * tfactors.T943i + (1.0/3.0) * 3.26423e-08 * tfactors.T923i + + -2.18782e-09 + (5.0/3.0) * 1.43323e-10 * tfactors.T923 + 0.6 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from bb92r + ln_set_rate = -2.819459238970218 + -11.963154871672966 * tfactors.T9i + 2.62625e-09 * tfactors.T913i + -6.58921e-09 * tfactors.T913 + + 5.62244e-10 * tfactors.T9 + -4.28925e-11 * tfactors.T953 + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 11.963154871672966 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.62625e-09 * tfactors.T943i + (1.0/3.0) * -6.58921e-09 * tfactors.T923i + + 5.62244e-10 + (5.0/3.0) * -4.28925e-11 * tfactors.T923 + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C14_He4_to_n_O17_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // C14 + He4 --> n + O17 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real C14_log_pf, dC14_log_pf_dT9; + + // setting C14 log(partition function) to 0.0 by default, independent of T + C14_log_pf = 0.0_rt; + dC14_log_pf_dT9 = 0.0_rt; + + amrex::Real O17_log_pf, dO17_log_pf_dT9; + + // interpolating O17 partition function + get_partition_function_cached(O17, tfactors.T9, pf_cache, O17_log_pf, dO17_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + O17_log_pf - He4_log_pf - C14_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dO17_log_pf_dT9 - dHe4_log_pf_dT9 - dC14_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from kg91r + ln_set_rate = 14.445935057025487 + -23.05505514098258 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 23.05505514098258 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from kg91n + ln_set_rate = 11.060935057025487 + -21.094055140982583 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 21.094055140982583 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from kg91r + ln_set_rate = 18.808135057025485 + -23.853055140982583 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 23.853055140982583 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N13_n_to_p_C13_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // N13 + n --> p + C13 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real C13_log_pf, dC13_log_pf_dT9; + + // setting C13 log(partition function) to 0.0 by default, independent of T + C13_log_pf = 0.0_rt; + dC13_log_pf_dT9 = 0.0_rt; + + amrex::Real N13_log_pf, dN13_log_pf_dT9; + + // setting N13 log(partition function) to 0.0 by default, independent of T + N13_log_pf = 0.0_rt; + dN13_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + C13_log_pf - n_log_pf - N13_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dC13_log_pf_dT9 - dn_log_pf_dT9 - dN13_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacrn + ln_set_rate = 17.759959202593937 + -0.0020471668590644754 * tfactors.T9i + 1.26126 * tfactors.T913 + + -0.204952 * tfactors.T9 + 0.0310523 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 0.0020471668590644754 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.26126 * tfactors.T923i + + -0.204952 + (5.0/3.0) * 0.0310523 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N13_n_to_He4_B10_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // N13 + n --> He4 + B10 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real B10_log_pf, dB10_log_pf_dT9; + + // setting B10 log(partition function) to 0.0 by default, independent of T + B10_log_pf = 0.0_rt; + dB10_log_pf_dT9 = 0.0_rt; + + amrex::Real N13_log_pf, dN13_log_pf_dT9; + + // setting N13 log(partition function) to 0.0 by default, independent of T + N13_log_pf = 0.0_rt; + dN13_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He4_log_pf + B10_log_pf - n_log_pf - N13_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dB10_log_pf_dT9 - dn_log_pf_dT9 - dN13_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88n + ln_set_rate = 32.73189725029288 + -12.286037197236993 * tfactors.T9i + -27.8719 * tfactors.T913i + -0.599503 * tfactors.T913 + + 0.122849 * tfactors.T9 + -0.0393717 * tfactors.T953 + -0.507333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 12.286037197236993 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -27.8719 * tfactors.T943i + (1.0/3.0) * -0.599503 * tfactors.T923i + + 0.122849 + (5.0/3.0) * -0.0393717 * tfactors.T923 + -0.507333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N14_n_to_d_C13_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // N14 + n --> d + C13 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real C13_log_pf, dC13_log_pf_dT9; + + // setting C13 log(partition function) to 0.0 by default, independent of T + C13_log_pf = 0.0_rt; + dC13_log_pf_dT9 = 0.0_rt; + + amrex::Real d_log_pf, dd_log_pf_dT9; + + // setting d log(partition function) to 0.0 by default, independent of T + d_log_pf = 0.0_rt; + dd_log_pf_dT9 = 0.0_rt; + + amrex::Real N14_log_pf, dN14_log_pf_dT9; + + // setting N14 log(partition function) to 0.0 by default, independent of T + N14_log_pf = 0.0_rt; + dN14_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = d_log_pf + C13_log_pf - n_log_pf - N14_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dd_log_pf_dT9 + dC13_log_pf_dT9 - dn_log_pf_dT9 - dN14_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from bb92n + ln_set_rate = 28.123951412490005 + -61.80825156514374 * tfactors.T9i + -16.8935 * tfactors.T913i + 4.06445 * tfactors.T913 + + -1.1715 * tfactors.T9 + 0.118556 * tfactors.T953 + -1.13937 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 61.80825156514374 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -16.8935 * tfactors.T943i + (1.0/3.0) * 4.06445 * tfactors.T923i + + -1.1715 + (5.0/3.0) * 0.118556 * tfactors.T923 + -1.13937 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N14_n_to_He4_B11_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // N14 + n --> He4 + B11 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real B11_log_pf, dB11_log_pf_dT9; + + // setting B11 log(partition function) to 0.0 by default, independent of T + B11_log_pf = 0.0_rt; + dB11_log_pf_dT9 = 0.0_rt; + + amrex::Real N14_log_pf, dN14_log_pf_dT9; + + // setting N14 log(partition function) to 0.0 by default, independent of T + N14_log_pf = 0.0_rt; + dN14_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He4_log_pf + B11_log_pf - n_log_pf - N14_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dB11_log_pf_dT9 - dn_log_pf_dT9 - dN14_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88n + ln_set_rate = 30.866455923006075 + -1.8322254135312885 * tfactors.T9i + -28.234 * tfactors.T913i + -0.325987 * tfactors.T913 + + 30.135 * tfactors.T9 + -78.4165 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 1.8322254135312885 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -28.234 * tfactors.T943i + (1.0/3.0) * -0.325987 * tfactors.T923i + + 30.135 + (5.0/3.0) * -78.4165 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from cf88r + ln_set_rate = 16.602255923006073 + -10.428225413531289 * tfactors.T9i + + 0.6 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 10.428225413531289 * tfactors.T9i * tfactors.T9i + + 0.6 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from cf88r + ln_set_rate = 8.738105923006074 + -7.0102254135312885 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 7.0102254135312885 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from cf88r + ln_set_rate = 1.8760719230060734 + -4.6592254135312885 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 4.6592254135312885 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N14_He4_to_p_O17_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // N14 + He4 --> p + O17 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real O17_log_pf, dO17_log_pf_dT9; + + // interpolating O17 partition function + get_partition_function_cached(O17, tfactors.T9, pf_cache, O17_log_pf, dO17_log_pf_dT9); + + amrex::Real N14_log_pf, dN14_log_pf_dT9; + + // setting N14 log(partition function) to 0.0 by default, independent of T + N14_log_pf = 0.0_rt; + dN14_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + O17_log_pf - He4_log_pf - N14_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dO17_log_pf_dT9 - dHe4_log_pf_dT9 - dN14_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10r + ln_set_rate = -7.592359780998223 + -14.584520682879308 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 14.584520682879308 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10n + ln_set_rate = 19.194270219001776 + -13.831125682879309 * tfactors.T9i + -16.9078 * tfactors.T913i + + -2.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 13.831125682879309 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -16.9078 * tfactors.T943i + + (5.0/3.0) * -2.0 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 9.789270219001777 + -18.78977568287931 * tfactors.T9i + 5.10182 * tfactors.T913 + + 0.379373 * tfactors.T9 + -0.0672515 * tfactors.T953 + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 18.78977568287931 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.10182 * tfactors.T923i + + 0.379373 + (5.0/3.0) * -0.0672515 * tfactors.T923 + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 5.148870219001777 + -15.945895682879309 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 15.945895682879309 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N15_n_to_d_C14_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // N15 + n --> d + C14 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real d_log_pf, dd_log_pf_dT9; + + // setting d log(partition function) to 0.0 by default, independent of T + d_log_pf = 0.0_rt; + dd_log_pf_dT9 = 0.0_rt; + + amrex::Real C14_log_pf, dC14_log_pf_dT9; + + // setting C14 log(partition function) to 0.0 by default, independent of T + C14_log_pf = 0.0_rt; + dC14_log_pf_dT9 = 0.0_rt; + + amrex::Real N15_log_pf, dN15_log_pf_dT9; + + // setting N15 log(partition function) to 0.0 by default, independent of T + N15_log_pf = 0.0_rt; + dN15_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = d_log_pf + C14_log_pf - n_log_pf - N15_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dd_log_pf_dT9 + dC14_log_pf_dT9 - dn_log_pf_dT9 - dN15_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from bk92 + ln_set_rate = 34.20880649252238 + -92.63723999241236 * tfactors.T9i + -16.939 * tfactors.T913i + -4.14392 * tfactors.T913 + + 0.438623 * tfactors.T9 + -0.0354193 * tfactors.T953 + 0.333333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 92.63723999241236 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -16.939 * tfactors.T943i + (1.0/3.0) * -4.14392 * tfactors.T923i + + 0.438623 + (5.0/3.0) * -0.0354193 * tfactors.T923 + 0.333333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from bk92 + ln_set_rate = 31.32920649252238 + -92.63723999241236 * tfactors.T9i + -16.939 * tfactors.T913i + -0.582342 * tfactors.T913 + + -8.17066 * tfactors.T9 + 1.70865 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 92.63723999241236 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -16.939 * tfactors.T943i + (1.0/3.0) * -0.582342 * tfactors.T923i + + -8.17066 + (5.0/3.0) * 1.70865 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N15_He4_to_n_F18_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // N15 + He4 --> n + F18 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real F18_log_pf, dF18_log_pf_dT9; + + // interpolating F18 partition function + get_partition_function_cached(F18, tfactors.T9, pf_cache, F18_log_pf, dF18_log_pf_dT9); + + amrex::Real N15_log_pf, dN15_log_pf_dT9; + + // setting N15 log(partition function) to 0.0 by default, independent of T + N15_log_pf = 0.0_rt; + dN15_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + F18_log_pf - He4_log_pf - N15_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dF18_log_pf_dT9 - dHe4_log_pf_dT9 - dN15_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88n + ln_set_rate = 18.1138075842042 + -74.47854150187152 * tfactors.T9i + 1.74308 * tfactors.T913 + + -1.15123 * tfactors.T9 + 0.135196 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 74.47854150187152 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.74308 * tfactors.T923i + + -1.15123 + (5.0/3.0) * 0.135196 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N15_He4_to_p_O18_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // N15 + He4 --> p + O18 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real O18_log_pf, dO18_log_pf_dT9; + + // interpolating O18 partition function + get_partition_function_cached(O18, tfactors.T9, pf_cache, O18_log_pf, dO18_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real N15_log_pf, dN15_log_pf_dT9; + + // setting N15 log(partition function) to 0.0 by default, independent of T + N15_log_pf = 0.0_rt; + dN15_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + O18_log_pf - He4_log_pf - N15_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dO18_log_pf_dT9 - dHe4_log_pf_dT9 - dN15_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10r + ln_set_rate = -29.6926341462146 + -46.42955443414268 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 46.42955443414268 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10n + ln_set_rate = 25.178865853785396 + -46.183670434142684 * tfactors.T9i + -16.6979 * tfactors.T913i + + -3.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 46.183670434142684 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -16.6979 * tfactors.T943i + + (5.0/3.0) * -3.0 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 7.155285853785398 + -51.50702043414268 * tfactors.T9i + 11.6568 * tfactors.T913 + + -2.16303 * tfactors.T9 + 0.209965 * tfactors.T953 + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 51.50702043414268 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 11.6568 * tfactors.T923i + + -2.16303 + (5.0/3.0) * 0.209965 * tfactors.T923 + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 8.4842658537854 + -47.84667043414268 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 47.84667043414268 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O14_n_to_p_N14_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // O14 + n --> p + N14 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real O14_log_pf, dO14_log_pf_dT9; + + // interpolating O14 partition function + get_partition_function_cached(O14, tfactors.T9, pf_cache, O14_log_pf, dO14_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real N14_log_pf, dN14_log_pf_dT9; + + // setting N14 log(partition function) to 0.0 by default, independent of T + N14_log_pf = 0.0_rt; + dN14_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + N14_log_pf - n_log_pf - O14_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dN14_log_pf_dT9 - dn_log_pf_dT9 - dO14_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacr + ln_set_rate = 12.438743963031758 + 0.01992793936341286 * tfactors.T9i + 5.48024 * tfactors.T913 + + -0.764072 * tfactors.T9 + 0.0587804 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = -0.01992793936341286 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.48024 * tfactors.T923i + + -0.764072 + (5.0/3.0) * 0.0587804 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O15_n_to_p_N15_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // O15 + n --> p + N15 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real N15_log_pf, dN15_log_pf_dT9; + + // setting N15 log(partition function) to 0.0 by default, independent of T + N15_log_pf = 0.0_rt; + dN15_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real O15_log_pf, dO15_log_pf_dT9; + + // interpolating O15 partition function + get_partition_function_cached(O15, tfactors.T9, pf_cache, O15_log_pf, dO15_log_pf_dT9); + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + N15_log_pf - n_log_pf - O15_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dN15_log_pf_dT9 - dn_log_pf_dT9 - dO15_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacrn + ln_set_rate = 18.3916247266756 + 0.005982034823006188 * tfactors.T9i + 0.331392 * tfactors.T913 + + 0.0171473 * tfactors.T9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = -0.005982034823006188 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.331392 * tfactors.T923i + + 0.0171473; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O15_He4_to_n_Ne18_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // O15 + He4 --> n + Ne18 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real O15_log_pf, dO15_log_pf_dT9; + + // interpolating O15 partition function + get_partition_function_cached(O15, tfactors.T9, pf_cache, O15_log_pf, dO15_log_pf_dT9); + + amrex::Real Ne18_log_pf, dNe18_log_pf_dT9; + + // interpolating Ne18 partition function + get_partition_function_cached(Ne18, tfactors.T9, pf_cache, Ne18_log_pf, dNe18_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ne18_log_pf - He4_log_pf - O15_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNe18_log_pf_dT9 - dHe4_log_pf_dT9 - dO15_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 16.26716512947824 + -94.0941006148204 * tfactors.T9i + 0.377325 * tfactors.T913 + + 0.0968945 * tfactors.T9 + -0.007769 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 94.0941006148204 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.377325 * tfactors.T923i + + 0.0968945 + (5.0/3.0) * -0.007769 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O15_He4_to_p_F18_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // O15 + He4 --> p + F18 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real O15_log_pf, dO15_log_pf_dT9; + + // interpolating O15 partition function + get_partition_function_cached(O15, tfactors.T9, pf_cache, O15_log_pf, dO15_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real F18_log_pf, dF18_log_pf_dT9; + + // interpolating F18 partition function + get_partition_function_cached(F18, tfactors.T9, pf_cache, F18_log_pf, dF18_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + F18_log_pf - He4_log_pf - O15_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dF18_log_pf_dT9 - dHe4_log_pf_dT9 - dO15_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10r + ln_set_rate = 1.0671723108797964 + -36.45580946704611 * tfactors.T9i + 13.3223 * tfactors.T913 + + -1.36696 * tfactors.T9 + 0.0757363 * tfactors.T953 + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 36.45580946704611 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 13.3223 * tfactors.T923i + + -1.36696 + (5.0/3.0) * 0.0757363 * tfactors.T923 + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = -32.4286676891202 + -33.81549146704611 * tfactors.T9i + 61.738 * tfactors.T913 + + -108.29 * tfactors.T9 + -34.2365 * tfactors.T953 + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 33.81549146704611 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 61.738 * tfactors.T923i + + -108.29 + (5.0/3.0) * -34.2365 * tfactors.T923 + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10n + ln_set_rate = 61.315932310879795 + -33.43905946704611 * tfactors.T9i + -21.4023 * tfactors.T913i + -80.8891 * tfactors.T913 + + 134.6 * tfactors.T9 + -126.504 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 33.43905946704611 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -21.4023 * tfactors.T943i + (1.0/3.0) * -80.8891 * tfactors.T923i + + 134.6 + (5.0/3.0) * -126.504 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O16_n_to_He4_C13_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // O16 + n --> He4 + C13 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real O16_log_pf, dO16_log_pf_dT9; + + // interpolating O16 partition function + get_partition_function_cached(O16, tfactors.T9, pf_cache, O16_log_pf, dO16_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real C13_log_pf, dC13_log_pf_dT9; + + // setting C13 log(partition function) to 0.0 by default, independent of T + C13_log_pf = 0.0_rt; + dC13_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He4_log_pf + C13_log_pf - n_log_pf - O16_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dC13_log_pf_dT9 - dn_log_pf_dT9 - dO16_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from gl12 + ln_set_rate = 64.3269798160185 + -25.73880986353735 * tfactors.T9i + -32.3917 * tfactors.T913i + -48.934 * tfactors.T913 + + 44.1843 * tfactors.T9 + -20.8743 * tfactors.T953 + 2.02494 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 25.73880986353735 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -32.3917 * tfactors.T943i + (1.0/3.0) * -48.934 * tfactors.T923i + + 44.1843 + (5.0/3.0) * -20.8743 * tfactors.T923 + 2.02494 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from gl12 + ln_set_rate = 81.05027981601849 + -26.015966763537353 * tfactors.T9i + 7.43132 * tfactors.T913i + -84.8689 * tfactors.T913 + + 3.65083 * tfactors.T9 + -0.148015 * tfactors.T953 + 37.6008 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 26.015966763537353 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 7.43132 * tfactors.T943i + (1.0/3.0) * -84.8689 * tfactors.T923i + + 3.65083 + (5.0/3.0) * -0.148015 * tfactors.T923 + 37.6008 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O16_p_to_He4_N13_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // O16 + p --> He4 + N13 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real O16_log_pf, dO16_log_pf_dT9; + + // interpolating O16 partition function + get_partition_function_cached(O16, tfactors.T9, pf_cache, O16_log_pf, dO16_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real N13_log_pf, dN13_log_pf_dT9; + + // setting N13 log(partition function) to 0.0 by default, independent of T + N13_log_pf = 0.0_rt; + dN13_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He4_log_pf + N13_log_pf - p_log_pf - O16_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dN13_log_pf_dT9 - dp_log_pf_dT9 - dO16_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88n + ln_set_rate = 42.21642061342456 + -60.557329596678294 * tfactors.T9i + -35.829 * tfactors.T913i + -0.530275 * tfactors.T913 + + -0.982462 * tfactors.T9 + 0.0808059 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 60.557329596678294 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -35.829 * tfactors.T943i + (1.0/3.0) * -0.530275 * tfactors.T923i + + -0.982462 + (5.0/3.0) * 0.0808059 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O16_He4_to_n_Ne19_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // O16 + He4 --> n + Ne19 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real O16_log_pf, dO16_log_pf_dT9; + + // interpolating O16 partition function + get_partition_function_cached(O16, tfactors.T9, pf_cache, O16_log_pf, dO16_log_pf_dT9); + + amrex::Real Ne19_log_pf, dNe19_log_pf_dT9; + + // interpolating Ne19 partition function + get_partition_function_cached(Ne19, tfactors.T9, pf_cache, Ne19_log_pf, dNe19_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ne19_log_pf - He4_log_pf - O16_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNe19_log_pf_dT9 - dHe4_log_pf_dT9 - dO16_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 17.22651286976935 + -140.82609968571475 * tfactors.T9i + 1.70736 * tfactors.T913 + + -0.132579 * tfactors.T9 + 0.00454218 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 140.82609968571475 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.70736 * tfactors.T923i + + -0.132579 + (5.0/3.0) * 0.00454218 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O16_He4_to_p_F19_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // O16 + He4 --> p + F19 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real O16_log_pf, dO16_log_pf_dT9; + + // interpolating O16 partition function + get_partition_function_cached(O16, tfactors.T9, pf_cache, O16_log_pf, dO16_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real F19_log_pf, dF19_log_pf_dT9; + + // interpolating F19 partition function + get_partition_function_cached(F19, tfactors.T9, pf_cache, F19_log_pf, dF19_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + F19_log_pf - He4_log_pf - O16_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dF19_log_pf_dT9 - dHe4_log_pf_dT9 - dO16_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacr + ln_set_rate = -53.121227264044336 + -94.28220973651266 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 94.28220973651266 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacr + ln_set_rate = 25.874672735955667 + -94.15455973651265 * tfactors.T9i + -18.116 * tfactors.T913i + + 1.86674 * tfactors.T9 + -7.5666 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 94.15455973651265 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -18.116 * tfactors.T943i + + 1.86674 + (5.0/3.0) * -7.5666 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacrr + ln_set_rate = 13.941672735955667 + -97.44055973651265 * tfactors.T9i + + -0.21103 * tfactors.T9 + 2.87702 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 97.44055973651265 * tfactors.T9i * tfactors.T9i + + -0.21103 + 2.87702 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacr + ln_set_rate = 14.778572735955667 + -97.90640973651266 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 97.90640973651266 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacr + ln_set_rate = 7.822072735955667 + -96.62283973651265 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 96.62283973651265 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O17_p_to_n_F17_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // O17 + p --> n + F17 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real F17_log_pf, dF17_log_pf_dT9; + + // interpolating F17 partition function + get_partition_function_cached(F17, tfactors.T9, pf_cache, F17_log_pf, dF17_log_pf_dT9); + + amrex::Real O17_log_pf, dO17_log_pf_dT9; + + // interpolating O17 partition function + get_partition_function_cached(O17, tfactors.T9, pf_cache, O17_log_pf, dO17_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + F17_log_pf - p_log_pf - O17_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dF17_log_pf_dT9 - dp_log_pf_dT9 - dO17_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from wagn + ln_set_rate = 19.011018329917363 + -41.11261718938689 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 41.11261718938689 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O18_p_to_n_F18_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // O18 + p --> n + F18 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real O18_log_pf, dO18_log_pf_dT9; + + // interpolating O18 partition function + get_partition_function_cached(O18, tfactors.T9, pf_cache, O18_log_pf, dO18_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real F18_log_pf, dF18_log_pf_dT9; + + // interpolating F18 partition function + get_partition_function_cached(F18, tfactors.T9, pf_cache, F18_log_pf, dF18_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + F18_log_pf - p_log_pf - O18_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dF18_log_pf_dT9 - dp_log_pf_dT9 - dO18_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from wagn + ln_set_rate = 20.109441730418798 + -28.294871067712023 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 28.294871067712023 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F17_n_to_He4_N14_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // F17 + n --> He4 + N14 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real F17_log_pf, dF17_log_pf_dT9; + + // interpolating F17 partition function + get_partition_function_cached(F17, tfactors.T9, pf_cache, F17_log_pf, dF17_log_pf_dT9); + + amrex::Real N14_log_pf, dN14_log_pf_dT9; + + // setting N14 log(partition function) to 0.0 by default, independent of T + N14_log_pf = 0.0_rt; + dN14_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He4_log_pf + N14_log_pf - n_log_pf - F17_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dN14_log_pf_dT9 - dn_log_pf_dT9 - dF17_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacr + ln_set_rate = 19.591611451080862 + -0.0035571277338064533 * tfactors.T9i + -0.712285 * tfactors.T913 + + 0.240317 * tfactors.T9 + -0.0201705 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 0.0035571277338064533 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.712285 * tfactors.T923i + + 0.240317 + (5.0/3.0) * -0.0201705 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F17_p_to_He4_O14_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // F17 + p --> He4 + O14 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real O14_log_pf, dO14_log_pf_dT9; + + // interpolating O14 partition function + get_partition_function_cached(O14, tfactors.T9, pf_cache, O14_log_pf, dO14_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real F17_log_pf, dF17_log_pf_dT9; + + // interpolating F17 partition function + get_partition_function_cached(F17, tfactors.T9, pf_cache, F17_log_pf, dF17_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + O14_log_pf - p_log_pf - F17_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dO14_log_pf_dT9 - dp_log_pf_dT9 - dF17_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from Ha96r + ln_set_rate = 11.415567488049104 + -25.85518506704921 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 25.85518506704921 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from Ha96r + ln_set_rate = 17.938467488049106 + -39.83288506704921 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 39.83288506704921 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from Ha96n + ln_set_rate = 40.122467488049104 + -13.83288506704921 * tfactors.T9i + -39.388 * tfactors.T913i + -17.4673 * tfactors.T913 + + 35.3029 * tfactors.T9 + -24.8162 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 13.83288506704921 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.388 * tfactors.T943i + (1.0/3.0) * -17.4673 * tfactors.T923i + + 35.3029 + (5.0/3.0) * -24.8162 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from Ha96r + ln_set_rate = 15.595367488049106 + -36.34288506704921 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 36.34288506704921 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from Ha96r + ln_set_rate = 10.405067488049104 + -27.43288506704921 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 27.43288506704921 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from Ha96r + ln_set_rate = -106.80433251195089 + -14.285921067049209 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 14.285921067049209 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F17_He4_to_p_Ne20_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // F17 + He4 --> p + Ne20 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real F17_log_pf, dF17_log_pf_dT9; + + // interpolating F17 partition function + get_partition_function_cached(F17, tfactors.T9, pf_cache, F17_log_pf, dF17_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ne20_log_pf, dNe20_log_pf_dT9; + + // interpolating Ne20 partition function + get_partition_function_cached(Ne20, tfactors.T9, pf_cache, Ne20_log_pf, dNe20_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ne20_log_pf - He4_log_pf - F17_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dNe20_log_pf_dT9 - dHe4_log_pf_dT9 - dF17_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacr + ln_set_rate = 38.645331236377224 + -0.004848799532844339 * tfactors.T9i + -43.18 * tfactors.T913i + 4.46827 * tfactors.T913 + + -1.63915 * tfactors.T9 + 0.123483 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 0.004848799532844339 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -43.18 * tfactors.T943i + (1.0/3.0) * 4.46827 * tfactors.T923i + + -1.63915 + (5.0/3.0) * 0.123483 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F18_p_to_n_Ne18_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // F18 + p --> n + Ne18 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real F18_log_pf, dF18_log_pf_dT9; + + // interpolating F18 partition function + get_partition_function_cached(F18, tfactors.T9, pf_cache, F18_log_pf, dF18_log_pf_dT9); + + amrex::Real Ne18_log_pf, dNe18_log_pf_dT9; + + // interpolating Ne18 partition function + get_partition_function_cached(Ne18, tfactors.T9, pf_cache, Ne18_log_pf, dNe18_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ne18_log_pf - p_log_pf - F18_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNe18_log_pf_dT9 - dp_log_pf_dT9 - dF18_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 17.44703281859844 + -60.655041147774305 * tfactors.T9i + 0.590026 * tfactors.T913 + + 0.0742242 * tfactors.T9 + -0.0116856 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 60.655041147774305 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.590026 * tfactors.T923i + + 0.0742242 + (5.0/3.0) * -0.0116856 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F18_He4_to_n_Na21_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // F18 + He4 --> n + Na21 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real F18_log_pf, dF18_log_pf_dT9; + + // interpolating F18 partition function + get_partition_function_cached(F18, tfactors.T9, pf_cache, F18_log_pf, dF18_log_pf_dT9); + + amrex::Real Na21_log_pf, dNa21_log_pf_dT9; + + // interpolating Na21 partition function + get_partition_function_cached(Na21, tfactors.T9, pf_cache, Na21_log_pf, dNa21_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Na21_log_pf - He4_log_pf - F18_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNa21_log_pf_dT9 - dHe4_log_pf_dT9 - dF18_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 14.900346778285193 + -30.03762476458674 * tfactors.T9i + 1.06229 * tfactors.T913 + + 0.212448 * tfactors.T9 + -0.020685 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 30.03762476458674 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.06229 * tfactors.T923i + + 0.212448 + (5.0/3.0) * -0.020685 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F19_He4_to_n_Na22_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // F19 + He4 --> n + Na22 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real F19_log_pf, dF19_log_pf_dT9; + + // interpolating F19 partition function + get_partition_function_cached(F19, tfactors.T9, pf_cache, F19_log_pf, dF19_log_pf_dT9); + + amrex::Real Na22_log_pf, dNa22_log_pf_dT9; + + // interpolating Na22 partition function + get_partition_function_cached(Na22, tfactors.T9, pf_cache, Na22_log_pf, dNa22_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Na22_log_pf - He4_log_pf - F19_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNa22_log_pf_dT9 - dHe4_log_pf_dT9 - dF19_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88 + ln_set_rate = 6.696274234082559 + -22.65732646753504 * tfactors.T9i + 6.22036 * tfactors.T913 + + -0.0209891 * tfactors.T9 + -0.0689843 * tfactors.T953 + 1.0 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 22.65732646753504 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 6.22036 * tfactors.T923i + + -0.0209891 + (5.0/3.0) * -0.0689843 * tfactors.T923 + 1.0 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from cf88n + ln_set_rate = 15.11199423408256 + -22.65732646753504 * tfactors.T9i + -0.0532251 * tfactors.T913 + + 1.00044 * tfactors.T9 + -0.13238 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 22.65732646753504 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.0532251 * tfactors.T923i + + 1.00044 + (5.0/3.0) * -0.13238 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne19_n_to_p_F19_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ne19 + n --> p + F19 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real F19_log_pf, dF19_log_pf_dT9; + + // interpolating F19 partition function + get_partition_function_cached(F19, tfactors.T9, pf_cache, F19_log_pf, dF19_log_pf_dT9); + + amrex::Real Ne19_log_pf, dNe19_log_pf_dT9; + + // interpolating Ne19 partition function + get_partition_function_cached(Ne19, tfactors.T9, pf_cache, Ne19_log_pf, dNe19_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + F19_log_pf - n_log_pf - Ne19_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dF19_log_pf_dT9 - dn_log_pf_dT9 - dNe19_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacr + ln_set_rate = 15.670659866186314 + 0.009839949202081755 * tfactors.T9i + 4.34441 * tfactors.T913 + + -1.71268 * tfactors.T9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = -0.009839949202081755 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 4.34441 * tfactors.T923i + + -1.71268; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacr + ln_set_rate = 20.350459866186316 + 0.009839949202081755 * tfactors.T9i + -1.58171 * tfactors.T913 + + 0.0324472 * tfactors.T9 + 1.0 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = -0.009839949202081755 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.58171 * tfactors.T923i + + 0.0324472 + 1.0 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne20_n_to_He4_O17_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ne20 + n --> He4 + O17 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real O17_log_pf, dO17_log_pf_dT9; + + // interpolating O17 partition function + get_partition_function_cached(O17, tfactors.T9, pf_cache, O17_log_pf, dO17_log_pf_dT9); + + amrex::Real Ne20_log_pf, dNe20_log_pf_dT9; + + // interpolating Ne20 partition function + get_partition_function_cached(Ne20, tfactors.T9, pf_cache, Ne20_log_pf, dNe20_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + O17_log_pf - n_log_pf - Ne20_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dO17_log_pf_dT9 - dn_log_pf_dT9 - dNe20_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacrr + ln_set_rate = 4.718570433705416 + -20.609134011080265 * tfactors.T9i + 12.6501 * tfactors.T913 + + -1.10938 * tfactors.T9 + 0.0696232 * tfactors.T953 + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 20.609134011080265 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 12.6501 * tfactors.T923i + + -1.10938 + (5.0/3.0) * 0.0696232 * tfactors.T923 + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacrr + ln_set_rate = 10.371030433705416 + -15.359134011080267 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 15.359134011080267 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacrn + ln_set_rate = 43.536150433705416 + -6.809134011080266 * tfactors.T9i + -39.918 * tfactors.T913i + + 0.227017 * tfactors.T9 + -0.900234 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 6.809134011080266 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.918 * tfactors.T943i + + 0.227017 + (5.0/3.0) * -0.900234 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne20_He4_to_n_Mg23_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ne20 + He4 --> n + Mg23 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mg23_log_pf, dMg23_log_pf_dT9; + + // interpolating Mg23 partition function + get_partition_function_cached(Mg23, tfactors.T9, pf_cache, Mg23_log_pf, dMg23_log_pf_dT9); + + amrex::Real Ne20_log_pf, dNe20_log_pf_dT9; + + // interpolating Ne20 partition function + get_partition_function_cached(Ne20, tfactors.T9, pf_cache, Ne20_log_pf, dNe20_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Mg23_log_pf - He4_log_pf - Ne20_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dMg23_log_pf_dT9 - dHe4_log_pf_dT9 - dNe20_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 17.974691741390394 + -83.72270411882882 * tfactors.T9i + 1.83199 * tfactors.T913 + + -0.290485 * tfactors.T9 + 0.0242929 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 83.72270411882882 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.83199 * tfactors.T923i + + -0.290485 + (5.0/3.0) * 0.0242929 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne20_He4_to_p_Na23_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ne20 + He4 --> p + Na23 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Na23_log_pf, dNa23_log_pf_dT9; + + // interpolating Na23 partition function + get_partition_function_cached(Na23, tfactors.T9, pf_cache, Na23_log_pf, dNa23_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ne20_log_pf, dNe20_log_pf_dT9; + + // interpolating Ne20 partition function + get_partition_function_cached(Ne20, tfactors.T9, pf_cache, Ne20_log_pf, dNe20_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Na23_log_pf - He4_log_pf - Ne20_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dNa23_log_pf_dT9 - dHe4_log_pf_dT9 - dNe20_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10r + ln_set_rate = -6.360024278486355 + -29.889658832139027 * tfactors.T9i + 19.7297 * tfactors.T913 + + -2.20987 * tfactors.T9 + 0.153374 * tfactors.T953 + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 29.889658832139027 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 19.7297 * tfactors.T923i + + -2.20987 + (5.0/3.0) * 0.153374 * tfactors.T923 + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 0.24516522151364528 + -29.434918832139026 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 29.434918832139026 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10n + ln_set_rate = 19.202935721513644 + -27.573888832139026 * tfactors.T9i + -20.0024 * tfactors.T913i + 11.5988 * tfactors.T913 + + -1.37398 * tfactors.T9 + -1.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 27.573888832139026 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -20.0024 * tfactors.T943i + (1.0/3.0) * 11.5988 * tfactors.T923i + + -1.37398 + (5.0/3.0) * -1.0 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne20_He4_to_C12_C12_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ne20 + He4 --> C12 + C12 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real C12_log_pf, dC12_log_pf_dT9; + + // setting C12 log(partition function) to 0.0 by default, independent of T + C12_log_pf = 0.0_rt; + dC12_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ne20_log_pf, dNe20_log_pf_dT9; + + // interpolating Ne20 partition function + get_partition_function_cached(Ne20, tfactors.T9, pf_cache, Ne20_log_pf, dNe20_log_pf_dT9); + + amrex::Real net_log_pf = C12_log_pf + C12_log_pf - He4_log_pf - Ne20_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dC12_log_pf_dT9 + dC12_log_pf_dT9 - dHe4_log_pf_dT9 - dNe20_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88r + ln_set_rate = 61.474151468919175 + -53.57824966896331 * tfactors.T9i + -84.165 * tfactors.T913i + -1.56627 * tfactors.T913 + + -0.0736084 * tfactors.T9 + -0.072797 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 53.57824966896331 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.165 * tfactors.T943i + (1.0/3.0) * -1.56627 * tfactors.T923i + + -0.0736084 + (5.0/3.0) * -0.072797 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne21_n_to_He4_O18_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ne21 + n --> He4 + O18 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real O18_log_pf, dO18_log_pf_dT9; + + // interpolating O18 partition function + get_partition_function_cached(O18, tfactors.T9, pf_cache, O18_log_pf, dO18_log_pf_dT9); + + amrex::Real Ne21_log_pf, dNe21_log_pf_dT9; + + // interpolating Ne21 partition function + get_partition_function_cached(Ne21, tfactors.T9, pf_cache, Ne21_log_pf, dNe21_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He4_log_pf + O18_log_pf - n_log_pf - Ne21_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dO18_log_pf_dT9 - dn_log_pf_dT9 - dNe21_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacr + ln_set_rate = 2.2651974293490547 + -0.32625193996176627 * tfactors.T9i + 6.51299 * tfactors.T913 + + -0.334277 * tfactors.T9 + 2.0 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 0.32625193996176627 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 6.51299 * tfactors.T923i + + -0.334277 + 2.0 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacr + ln_set_rate = 1.0909474293490544 + -7.350561939961768 * tfactors.T9i + 11.656 * tfactors.T913 + + -1.24869 * tfactors.T9 + 1.0 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 7.350561939961768 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 11.656 * tfactors.T923i + + -1.24869 + 1.0 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacrn + ln_set_rate = 2.5774074293490545 + 0.00843806003823211 * tfactors.T9i; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = -0.00843806003823211 * tfactors.T9i * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne21_p_to_n_Na21_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ne21 + p --> n + Na21 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ne21_log_pf, dNe21_log_pf_dT9; + + // interpolating Ne21 partition function + get_partition_function_cached(Ne21, tfactors.T9, pf_cache, Ne21_log_pf, dNe21_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Na21_log_pf, dNa21_log_pf_dT9; + + // interpolating Na21 partition function + get_partition_function_cached(Na21, tfactors.T9, pf_cache, Na21_log_pf, dNa21_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Na21_log_pf - p_log_pf - Ne21_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNa21_log_pf_dT9 - dp_log_pf_dT9 - dNe21_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 17.919235938053042 + -50.23905777227014 * tfactors.T9i + 2.17917 * tfactors.T913 + + -0.303135 * tfactors.T9 + 0.019321 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 50.23905777227014 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.17917 * tfactors.T923i + + -0.303135 + (5.0/3.0) * 0.019321 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne21_p_to_He4_F18_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ne21 + p --> He4 + F18 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ne21_log_pf, dNe21_log_pf_dT9; + + // interpolating Ne21 partition function + get_partition_function_cached(Ne21, tfactors.T9, pf_cache, Ne21_log_pf, dNe21_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real F18_log_pf, dF18_log_pf_dT9; + + // interpolating F18 partition function + get_partition_function_cached(F18, tfactors.T9, pf_cache, F18_log_pf, dF18_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + F18_log_pf - p_log_pf - Ne21_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dF18_log_pf_dT9 - dp_log_pf_dT9 - dNe21_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rpsmr + ln_set_rate = 50.63668915976785 + -22.04702300768339 * tfactors.T9i + 21.4461 * tfactors.T913i + -73.252 * tfactors.T913 + + 2.42329 * tfactors.T9 + -0.077278 * tfactors.T953 + 40.7604 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 22.04702300768339 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 21.4461 * tfactors.T943i + (1.0/3.0) * -73.252 * tfactors.T923i + + 2.42329 + (5.0/3.0) * -0.077278 * tfactors.T923 + 40.7604 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne22_p_to_n_Na22_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ne22 + p --> n + Na22 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ne22_log_pf, dNe22_log_pf_dT9; + + // interpolating Ne22 partition function + get_partition_function_cached(Ne22, tfactors.T9, pf_cache, Ne22_log_pf, dNe22_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Na22_log_pf, dNa22_log_pf_dT9; + + // interpolating Na22 partition function + get_partition_function_cached(Na22, tfactors.T9, pf_cache, Na22_log_pf, dNa22_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Na22_log_pf - p_log_pf - Ne22_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNa22_log_pf_dT9 - dp_log_pf_dT9 - dNe22_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88n + ln_set_rate = 21.597239668319716 + -42.074188449041614 * tfactors.T9i + -0.0514777 * tfactors.T913 + + 0.0274055 * tfactors.T9 + -0.00690277 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 42.074188449041614 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.0514777 * tfactors.T923i + + 0.0274055 + (5.0/3.0) * -0.00690277 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne22_p_to_He4_F19_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ne22 + p --> He4 + F19 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real F19_log_pf, dF19_log_pf_dT9; + + // interpolating F19 partition function + get_partition_function_cached(F19, tfactors.T9, pf_cache, F19_log_pf, dF19_log_pf_dT9); + + amrex::Real Ne22_log_pf, dNe22_log_pf_dT9; + + // interpolating Ne22 partition function + get_partition_function_cached(Ne22, tfactors.T9, pf_cache, Ne22_log_pf, dNe22_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + F19_log_pf - p_log_pf - Ne22_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dF19_log_pf_dT9 - dp_log_pf_dT9 - dNe22_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from da18r + ln_set_rate = 54.774145434237155 + -22.26126198150658 * tfactors.T9i + -38.7722 * tfactors.T913i + -13.3654 * tfactors.T913 + + 0.863648 * tfactors.T9 + -0.0451491 * tfactors.T953 + 1.33333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 22.26126198150658 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -38.7722 * tfactors.T943i + (1.0/3.0) * -13.3654 * tfactors.T923i + + 0.863648 + (5.0/3.0) * -0.0451491 * tfactors.T923 + 1.33333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from da18r + ln_set_rate = 53.51334543423716 + -65.19766198150657 * tfactors.T9i + -34.5008 * tfactors.T913i + 56.9316 * tfactors.T913 + + 2.09613 * tfactors.T9 + -32.496 * tfactors.T953 + 0.333333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 65.19766198150657 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -34.5008 * tfactors.T943i + (1.0/3.0) * 56.9316 * tfactors.T923i + + 2.09613 + (5.0/3.0) * -32.496 * tfactors.T923 + 0.333333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from da18r + ln_set_rate = 29432.442445434237 + -152.44286198150658 * tfactors.T9i + 12625.1 * tfactors.T913i + -49107.1 * tfactors.T913 + + 9227.53 * tfactors.T9 + -2086.65 * tfactors.T953 + 14520.2 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 152.44286198150658 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 12625.1 * tfactors.T943i + (1.0/3.0) * -49107.1 * tfactors.T923i + + 9227.53 + (5.0/3.0) * -2086.65 * tfactors.T923 + 14520.2 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na21_p_to_He4_Ne18_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Na21 + p --> He4 + Ne18 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Na21_log_pf, dNa21_log_pf_dT9; + + // interpolating Na21 partition function + get_partition_function_cached(Na21, tfactors.T9, pf_cache, Na21_log_pf, dNa21_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ne18_log_pf, dNe18_log_pf_dT9; + + // interpolating Ne18 partition function + get_partition_function_cached(Ne18, tfactors.T9, pf_cache, Ne18_log_pf, dNe18_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ne18_log_pf - p_log_pf - Na21_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dNe18_log_pf_dT9 - dp_log_pf_dT9 - dNa21_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from mo14r + ln_set_rate = -23.82911395968675 + -36.38615638318757 * tfactors.T9i + 8.5632e-08 * tfactors.T913i + 24.8579 * tfactors.T913 + + 0.0823845 * tfactors.T9 + -0.365374 * tfactors.T953 + -2.21415e-06 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 36.38615638318757 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 8.5632e-08 * tfactors.T943i + (1.0/3.0) * 24.8579 * tfactors.T923i + + 0.0823845 + (5.0/3.0) * -0.365374 * tfactors.T923 + -2.21415e-06 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from mo14r + ln_set_rate = -22.686913959686752 + -40.87721638318757 * tfactors.T9i + 4.73034e-07 * tfactors.T913i + 36.29 * tfactors.T913 + + -6.56565 * tfactors.T9 + -2.96287e-06 * tfactors.T953 + -9.00373e-07 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 40.87721638318757 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 4.73034e-07 * tfactors.T943i + (1.0/3.0) * 36.29 * tfactors.T923i + + -6.56565 + (5.0/3.0) * -2.96287e-06 * tfactors.T923 + -9.00373e-07 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from mo14r + ln_set_rate = -37.64591395968675 + -34.48551638318757 * tfactors.T9i + 7.09521e-06 * tfactors.T913i + 34.1789 * tfactors.T913 + + -1.72974 * tfactors.T9 + -0.0395081 * tfactors.T953 + -7.82759e-07 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 34.48551638318757 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 7.09521e-06 * tfactors.T943i + (1.0/3.0) * 34.1789 * tfactors.T923i + + -1.72974 + (5.0/3.0) * -0.0395081 * tfactors.T923 + -7.82759e-07 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na21_He4_to_p_Mg24_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Na21 + He4 --> p + Mg24 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Na21_log_pf, dNa21_log_pf_dT9; + + // interpolating Na21 partition function + get_partition_function_cached(Na21, tfactors.T9, pf_cache, Na21_log_pf, dNa21_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Mg24_log_pf, dMg24_log_pf_dT9; + + // interpolating Mg24 partition function + get_partition_function_cached(Mg24, tfactors.T9, pf_cache, Mg24_log_pf, dMg24_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Mg24_log_pf - He4_log_pf - Na21_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dMg24_log_pf_dT9 - dHe4_log_pf_dT9 - dNa21_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacr + ln_set_rate = 39.83098890373066 + -0.00380570701699412 * tfactors.T9i + -49.9621 * tfactors.T913i + 5.90498 * tfactors.T913 + + -1.6598 * tfactors.T9 + 0.117817 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 0.00380570701699412 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -49.9621 * tfactors.T943i + (1.0/3.0) * 5.90498 * tfactors.T923i + + -1.6598 + (5.0/3.0) * 0.117817 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na22_p_to_He4_Ne19_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Na22 + p --> He4 + Ne19 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Na22_log_pf, dNa22_log_pf_dT9; + + // interpolating Na22 partition function + get_partition_function_cached(Na22, tfactors.T9, pf_cache, Na22_log_pf, dNa22_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ne19_log_pf, dNe19_log_pf_dT9; + + // interpolating Ne19 partition function + get_partition_function_cached(Ne19, tfactors.T9, pf_cache, Ne19_log_pf, dNe19_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ne19_log_pf - p_log_pf - Na22_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dNe19_log_pf_dT9 - dp_log_pf_dT9 - dNa22_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 43.08404589973112 + -24.01421348166705 * tfactors.T9i + -46.6346 * tfactors.T913i + 0.866532 * tfactors.T913 + + -0.893541 * tfactors.T9 + 0.0747971 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 24.01421348166705 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -46.6346 * tfactors.T943i + (1.0/3.0) * 0.866532 * tfactors.T923i + + -0.893541 + (5.0/3.0) * 0.0747971 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na22_He4_to_n_Al25_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Na22 + He4 --> n + Al25 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Al25_log_pf, dAl25_log_pf_dT9; + + // interpolating Al25 partition function + get_partition_function_cached(Al25, tfactors.T9, pf_cache, Al25_log_pf, dAl25_log_pf_dT9); + + amrex::Real Na22_log_pf, dNa22_log_pf_dT9; + + // interpolating Na22 partition function + get_partition_function_cached(Na22, tfactors.T9, pf_cache, Na22_log_pf, dNa22_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Al25_log_pf - He4_log_pf - Na22_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dAl25_log_pf_dT9 - dHe4_log_pf_dT9 - dNa22_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 7.610192313854052 + -22.185775713186793 * tfactors.T9i + 2.92382 * tfactors.T913 + + 0.706669 * tfactors.T9 + -0.0950292 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 22.185775713186793 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.92382 * tfactors.T923i + + 0.706669 + (5.0/3.0) * -0.0950292 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na23_p_to_C12_C12_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Na23 + p --> C12 + C12 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real C12_log_pf, dC12_log_pf_dT9; + + // setting C12 log(partition function) to 0.0 by default, independent of T + C12_log_pf = 0.0_rt; + dC12_log_pf_dT9 = 0.0_rt; + + amrex::Real Na23_log_pf, dNa23_log_pf_dT9; + + // interpolating Na23 partition function + get_partition_function_cached(Na23, tfactors.T9, pf_cache, Na23_log_pf, dNa23_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = C12_log_pf + C12_log_pf - p_log_pf - Na23_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dC12_log_pf_dT9 + dC12_log_pf_dT9 - dp_log_pf_dT9 - dNa23_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88r + ln_set_rate = 60.92541574740554 + -26.004360836807496 * tfactors.T9i + -84.165 * tfactors.T913i + -1.4191 * tfactors.T913 + + -0.114619 * tfactors.T9 + -0.070307 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 26.004360836807496 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.165 * tfactors.T943i + (1.0/3.0) * -1.4191 * tfactors.T923i + + -0.114619 + (5.0/3.0) * -0.070307 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na23_He4_to_n_Al26_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Na23 + He4 --> n + Al26 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Na23_log_pf, dNa23_log_pf_dT9; + + // interpolating Na23 partition function + get_partition_function_cached(Na23, tfactors.T9, pf_cache, Na23_log_pf, dNa23_log_pf_dT9); + + amrex::Real Al26_log_pf, dAl26_log_pf_dT9; + + // interpolating Al26 partition function + get_partition_function_cached(Al26, tfactors.T9, pf_cache, Al26_log_pf, dAl26_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + Al26_log_pf - He4_log_pf - Na23_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dAl26_log_pf_dT9 - dHe4_log_pf_dT9 - dNa23_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ol11r + ln_set_rate = 13.449004074245638 + -34.48645753936487 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 34.48645753936487 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from ol11n + ln_set_rate = 11.47040407424564 + -34.420343739364874 * tfactors.T9i + 5.07134 * tfactors.T913 + + -0.557537 * tfactors.T9 + 0.0451737 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 34.420343739364874 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.07134 * tfactors.T923i + + -0.557537 + (5.0/3.0) * 0.0451737 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from ol11r + ln_set_rate = 14.541704074245638 + -34.830493739364876 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 34.830493739364876 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg23_n_to_p_Na23_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mg23 + n --> p + Na23 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Na23_log_pf, dNa23_log_pf_dT9; + + // interpolating Na23 partition function + get_partition_function_cached(Na23, tfactors.T9, pf_cache, Na23_log_pf, dNa23_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Mg23_log_pf, dMg23_log_pf_dT9; + + // interpolating Mg23 partition function + get_partition_function_cached(Mg23, tfactors.T9, pf_cache, Mg23_log_pf, dMg23_log_pf_dT9); + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Na23_log_pf - n_log_pf - Mg23_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dNa23_log_pf_dT9 - dn_log_pf_dT9 - dMg23_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacr + ln_set_rate = 19.461243980123253 + -0.00538471331021384 * tfactors.T9i + 0.993488 * tfactors.T913 + + -0.257094 * tfactors.T9 + 0.0284334 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 0.00538471331021384 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.993488 * tfactors.T923i + + -0.257094 + (5.0/3.0) * 0.0284334 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg24_n_to_He4_Ne21_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mg24 + n --> He4 + Ne21 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ne21_log_pf, dNe21_log_pf_dT9; + + // interpolating Ne21 partition function + get_partition_function_cached(Ne21, tfactors.T9, pf_cache, Ne21_log_pf, dNe21_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mg24_log_pf, dMg24_log_pf_dT9; + + // interpolating Mg24 partition function + get_partition_function_cached(Mg24, tfactors.T9, pf_cache, Mg24_log_pf, dMg24_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ne21_log_pf - n_log_pf - Mg24_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dNe21_log_pf_dT9 - dn_log_pf_dT9 - dMg24_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacrr + ln_set_rate = -4.715134841783711 + -42.917936520703286 * tfactors.T9i + 18.0748 * tfactors.T913 + + -0.981883 * tfactors.T9 + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 42.917936520703286 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 18.0748 * tfactors.T923i + + -0.981883 + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacrn + ln_set_rate = 46.52937515821629 + -29.654136520703286 * tfactors.T9i + -46.88 * tfactors.T913i + -0.536629 * tfactors.T913 + + 0.144715 * tfactors.T9 + -0.197624 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 29.654136520703286 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -46.88 * tfactors.T943i + (1.0/3.0) * -0.536629 * tfactors.T923i + + 0.144715 + (5.0/3.0) * -0.197624 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg24_He4_to_p_Al27_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mg24 + He4 --> p + Al27 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Al27_log_pf, dAl27_log_pf_dT9; + + // interpolating Al27 partition function + get_partition_function_cached(Al27, tfactors.T9, pf_cache, Al27_log_pf, dAl27_log_pf_dT9); + + amrex::Real Mg24_log_pf, dMg24_log_pf_dT9; + + // interpolating Mg24 partition function + get_partition_function_cached(Mg24, tfactors.T9, pf_cache, Mg24_log_pf, dMg24_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Al27_log_pf - He4_log_pf - Mg24_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dAl27_log_pf_dT9 - dHe4_log_pf_dT9 - dMg24_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10r + ln_set_rate = -6.4280417530584835 + -22.818701538287602 * tfactors.T9i + 18.0416 * tfactors.T913 + + -1.54137 * tfactors.T9 + 0.0847506 * tfactors.T953 + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 22.818701538287602 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 18.0416 * tfactors.T923i + + -1.54137 + (5.0/3.0) * 0.0847506 * tfactors.T923 + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = -26.268451753058486 + -19.5392135382876 * tfactors.T9i + 5.18642 * tfactors.T913i + -34.7936 * tfactors.T913 + + 168.225 * tfactors.T9 + -115.825 * tfactors.T953 + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 19.5392135382876 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 5.18642 * tfactors.T943i + (1.0/3.0) * -34.7936 * tfactors.T923i + + 168.225 + (5.0/3.0) * -115.825 * tfactors.T923 + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10n + ln_set_rate = 30.057448246941515 + -18.576201538287602 * tfactors.T9i + -26.4162 * tfactors.T913i + + -2.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 18.576201538287602 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -26.4162 * tfactors.T943i + + (5.0/3.0) * -2.0 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg24_He4_to_C12_O16_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mg24 + He4 --> C12 + O16 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real C12_log_pf, dC12_log_pf_dT9; + + // setting C12 log(partition function) to 0.0 by default, independent of T + C12_log_pf = 0.0_rt; + dC12_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mg24_log_pf, dMg24_log_pf_dT9; + + // interpolating Mg24 partition function + get_partition_function_cached(Mg24, tfactors.T9, pf_cache, Mg24_log_pf, dMg24_log_pf_dT9); + + amrex::Real O16_log_pf, dO16_log_pf_dT9; + + // interpolating O16 partition function + get_partition_function_cached(O16, tfactors.T9, pf_cache, O16_log_pf, dO16_log_pf_dT9); + + amrex::Real net_log_pf = C12_log_pf + O16_log_pf - He4_log_pf - Mg24_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dC12_log_pf_dT9 + dO16_log_pf_dT9 - dHe4_log_pf_dT9 - dMg24_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88r + ln_set_rate = 49.57295819231048 + -78.2098115311048 * tfactors.T9i + -133.413 * tfactors.T913i + 50.1572 * tfactors.T913 + + -3.15987 * tfactors.T9 + 0.0178251 * tfactors.T953 + -23.7027 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 78.2098115311048 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -133.413 * tfactors.T943i + (1.0/3.0) * 50.1572 * tfactors.T923i + + -3.15987 + (5.0/3.0) * 0.0178251 * tfactors.T923 + -23.7027 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg25_n_to_He4_Ne22_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mg25 + n --> He4 + Ne22 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mg25_log_pf, dMg25_log_pf_dT9; + + // interpolating Mg25 partition function + get_partition_function_cached(Mg25, tfactors.T9, pf_cache, Mg25_log_pf, dMg25_log_pf_dT9); + + amrex::Real Ne22_log_pf, dNe22_log_pf_dT9; + + // interpolating Ne22 partition function + get_partition_function_cached(Ne22, tfactors.T9, pf_cache, Ne22_log_pf, dNe22_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ne22_log_pf - n_log_pf - Mg25_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dNe22_log_pf_dT9 - dn_log_pf_dT9 - dMg25_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from li12r + ln_set_rate = -28.11942008995358 + -1.8351853417821502 * tfactors.T9i + 35.987 * tfactors.T913 + + -4.12183 * tfactors.T9 + 0.263326 * tfactors.T953 + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 1.8351853417821502 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 35.987 * tfactors.T923i + + -4.12183 + (5.0/3.0) * 0.263326 * tfactors.T923 + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from li12n + ln_set_rate = -11.089620089953579 + 0.0005646582178497894 * tfactors.T9i + 15.4898 * tfactors.T913 + + -30.8154 * tfactors.T9 + -3.0 * tfactors.T953 + 2.0 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = -0.0005646582178497894 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 15.4898 * tfactors.T923i + + -30.8154 + (5.0/3.0) * -3.0 * tfactors.T923 + 2.0 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from li12n + ln_set_rate = -52.94272008995358 + 0.0005646582178497894 * tfactors.T9i + 88.2725 * tfactors.T913 + + -40.1578 * tfactors.T9 + -3.0 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = -0.0005646582178497894 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 88.2725 * tfactors.T923i + + -40.1578 + (5.0/3.0) * -3.0 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg25_p_to_n_Al25_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mg25 + p --> n + Al25 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Al25_log_pf, dAl25_log_pf_dT9; + + // interpolating Al25 partition function + get_partition_function_cached(Al25, tfactors.T9, pf_cache, Al25_log_pf, dAl25_log_pf_dT9); + + amrex::Real Mg25_log_pf, dMg25_log_pf_dT9; + + // interpolating Mg25 partition function + get_partition_function_cached(Mg25, tfactors.T9, pf_cache, Mg25_log_pf, dMg25_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Al25_log_pf - p_log_pf - Mg25_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dAl25_log_pf_dT9 - dp_log_pf_dT9 - dMg25_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 18.412941892220186 + -58.70907950401055 * tfactors.T9i + 2.28536 * tfactors.T913 + + -0.38512 * tfactors.T9 + 0.0288056 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 58.70907950401055 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.28536 * tfactors.T923i + + -0.38512 + (5.0/3.0) * 0.0288056 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg25_p_to_He4_Na22_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mg25 + p --> He4 + Na22 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mg25_log_pf, dMg25_log_pf_dT9; + + // interpolating Mg25 partition function + get_partition_function_cached(Mg25, tfactors.T9, pf_cache, Mg25_log_pf, dMg25_log_pf_dT9); + + amrex::Real Na22_log_pf, dNa22_log_pf_dT9; + + // interpolating Na22 partition function + get_partition_function_cached(Na22, tfactors.T9, pf_cache, Na22_log_pf, dNa22_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Na22_log_pf - p_log_pf - Mg25_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dNa22_log_pf_dT9 - dp_log_pf_dT9 - dMg25_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 46.304619578366136 + -36.52330379082377 * tfactors.T9i + -50.0924 * tfactors.T913i + 0.807739 * tfactors.T913 + + -0.956029 * tfactors.T9 + 0.0793321 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 36.52330379082377 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -50.0924 * tfactors.T943i + (1.0/3.0) * 0.807739 * tfactors.T923i + + -0.956029 + (5.0/3.0) * 0.0793321 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg26_p_to_n_Al26_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mg26 + p --> n + Al26 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Al26_log_pf, dAl26_log_pf_dT9; + + // interpolating Al26 partition function + get_partition_function_cached(Al26, tfactors.T9, pf_cache, Al26_log_pf, dAl26_log_pf_dT9); + + amrex::Real Mg26_log_pf, dMg26_log_pf_dT9; + + // interpolating Mg26 partition function + get_partition_function_cached(Mg26, tfactors.T9, pf_cache, Mg26_log_pf, dMg26_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + Al26_log_pf - p_log_pf - Mg26_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dAl26_log_pf_dT9 - dp_log_pf_dT9 - dMg26_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ol11r + ln_set_rate = 15.965391411445584 + -55.751520140566306 * tfactors.T9i + 3.87515 * tfactors.T913 + + 0.228327 * tfactors.T9 + -0.045872 * tfactors.T953 + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 55.751520140566306 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 3.87515 * tfactors.T923i + + 0.228327 + (5.0/3.0) * -0.045872 * tfactors.T923 + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from ol11r + ln_set_rate = 14.901391411445584 + -55.60876594056631 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 55.60876594056631 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from ol11n + ln_set_rate = 13.539091411445584 + -55.54793914056631 * tfactors.T9i + 7.36773 * tfactors.T913 + + -2.42424 * tfactors.T9 + 0.313743 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 55.54793914056631 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 7.36773 * tfactors.T923i + + -2.42424 + (5.0/3.0) * 0.313743 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg26_p_to_He4_Na23_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mg26 + p --> He4 + Na23 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Na23_log_pf, dNa23_log_pf_dT9; + + // interpolating Na23 partition function + get_partition_function_cached(Na23, tfactors.T9, pf_cache, Na23_log_pf, dNa23_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mg26_log_pf, dMg26_log_pf_dT9; + + // interpolating Mg26 partition function + get_partition_function_cached(Mg26, tfactors.T9, pf_cache, Mg26_log_pf, dMg26_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He4_log_pf + Na23_log_pf - p_log_pf - Mg26_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dNa23_log_pf_dT9 - dp_log_pf_dT9 - dMg26_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 47.098387337199945 + -21.12759540119182 * tfactors.T9i + -50.2042 * tfactors.T913i + 1.76141 * tfactors.T913 + + -1.36813 * tfactors.T9 + 0.123087 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 21.12759540119182 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -50.2042 * tfactors.T943i + (1.0/3.0) * 1.76141 * tfactors.T923i + + -1.36813 + (5.0/3.0) * 0.123087 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al26_p_to_He4_Mg23_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Al26 + p --> He4 + Mg23 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mg23_log_pf, dMg23_log_pf_dT9; + + // interpolating Mg23 partition function + get_partition_function_cached(Mg23, tfactors.T9, pf_cache, Mg23_log_pf, dMg23_log_pf_dT9); + + amrex::Real Al26_log_pf, dAl26_log_pf_dT9; + + // interpolating Al26 partition function + get_partition_function_cached(Al26, tfactors.T9, pf_cache, Al26_log_pf, dAl26_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Mg23_log_pf - p_log_pf - Al26_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dMg23_log_pf_dT9 - dp_log_pf_dT9 - dAl26_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 46.388551945631114 + -21.72847154730811 * tfactors.T9i + -53.203 * tfactors.T913i + 0.71292 * tfactors.T913 + + -0.892548 * tfactors.T9 + 0.0709813 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 21.72847154730811 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -53.203 * tfactors.T943i + (1.0/3.0) * 0.71292 * tfactors.T923i + + -0.892548 + (5.0/3.0) * 0.0709813 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al26_He4_to_n_P29_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Al26 + He4 --> n + P29 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real P29_log_pf, dP29_log_pf_dT9; + + // interpolating P29 partition function + get_partition_function_cached(P29, tfactors.T9, pf_cache, P29_log_pf, dP29_log_pf_dT9); + + amrex::Real Al26_log_pf, dAl26_log_pf_dT9; + + // interpolating Al26 partition function + get_partition_function_cached(Al26, tfactors.T9, pf_cache, Al26_log_pf, dAl26_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + P29_log_pf - He4_log_pf - Al26_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dP29_log_pf_dT9 - dHe4_log_pf_dT9 - dAl26_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -42.152209749829446 + -10.48749308523058 * tfactors.T9i + 41.9938 * tfactors.T913 + + -4.54859 * tfactors.T9 + 0.243841 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 10.48749308523058 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 41.9938 * tfactors.T923i + + -4.54859 + (5.0/3.0) * 0.243841 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al27_p_to_C12_O16_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Al27 + p --> C12 + O16 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real C12_log_pf, dC12_log_pf_dT9; + + // setting C12 log(partition function) to 0.0 by default, independent of T + C12_log_pf = 0.0_rt; + dC12_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Al27_log_pf, dAl27_log_pf_dT9; + + // interpolating Al27 partition function + get_partition_function_cached(Al27, tfactors.T9, pf_cache, Al27_log_pf, dAl27_log_pf_dT9); + + amrex::Real O16_log_pf, dO16_log_pf_dT9; + + // interpolating O16 partition function + get_partition_function_cached(O16, tfactors.T9, pf_cache, O16_log_pf, dO16_log_pf_dT9); + + amrex::Real net_log_pf = C12_log_pf + O16_log_pf - p_log_pf - Al27_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dC12_log_pf_dT9 + dO16_log_pf_dT9 - dp_log_pf_dT9 - dAl27_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88r + ln_set_rate = 68.96430994536895 + -59.8005159928172 * tfactors.T9i + -119.242 * tfactors.T913i + 13.3667 * tfactors.T913 + + 0.295425 * tfactors.T9 + -0.267288 * tfactors.T953 + -9.91729 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 59.8005159928172 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -119.242 * tfactors.T943i + (1.0/3.0) * 13.3667 * tfactors.T923i + + 0.295425 + (5.0/3.0) * -0.267288 * tfactors.T923 + -9.91729 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si28_n_to_He4_Mg25_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Si28 + n --> He4 + Mg25 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mg25_log_pf, dMg25_log_pf_dT9; + + // interpolating Mg25 partition function + get_partition_function_cached(Mg25, tfactors.T9, pf_cache, Mg25_log_pf, dMg25_log_pf_dT9); + + amrex::Real Si28_log_pf, dSi28_log_pf_dT9; + + // interpolating Si28 partition function + get_partition_function_cached(Si28, tfactors.T9, pf_cache, Si28_log_pf, dSi28_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Mg25_log_pf - n_log_pf - Si28_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dMg25_log_pf_dT9 - dn_log_pf_dT9 - dSi28_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacrn + ln_set_rate = 48.75006260515749 + -30.793921846525322 * tfactors.T9i + -53.415 * tfactors.T913i + -1.46489 * tfactors.T913 + + 1.7777 * tfactors.T9 + -0.903499 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 30.793921846525322 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -53.415 * tfactors.T943i + (1.0/3.0) * -1.46489 * tfactors.T923i + + 1.7777 + (5.0/3.0) * -0.903499 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacr + ln_set_rate = 41.32576260515749 + -30.793921846525322 * tfactors.T9i + -53.416 * tfactors.T913i + 8.01209 * tfactors.T913 + + -2.64791 * tfactors.T9 + 0.218637 * tfactors.T953 + 0.333333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 30.793921846525322 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -53.416 * tfactors.T943i + (1.0/3.0) * 8.01209 * tfactors.T923i + + -2.64791 + (5.0/3.0) * 0.218637 * tfactors.T923 + 0.333333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si28_p_to_He4_Al25_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Si28 + p --> He4 + Al25 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Al25_log_pf, dAl25_log_pf_dT9; + + // interpolating Al25 partition function + get_partition_function_cached(Al25, tfactors.T9, pf_cache, Al25_log_pf, dAl25_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Si28_log_pf, dSi28_log_pf_dT9; + + // interpolating Si28 partition function + get_partition_function_cached(Si28, tfactors.T9, pf_cache, Si28_log_pf, dSi28_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He4_log_pf + Al25_log_pf - p_log_pf - Si28_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dAl25_log_pf_dT9 - dp_log_pf_dT9 - dSi28_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 50.60800449737768 + -89.50300135052629 * tfactors.T9i + -56.3424 * tfactors.T913i + 0.553763 * tfactors.T913 + + -0.84072 * tfactors.T9 + 0.0634219 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 89.50300135052629 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -56.3424 * tfactors.T943i + (1.0/3.0) * 0.553763 * tfactors.T923i + + -0.84072 + (5.0/3.0) * 0.0634219 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si28_He4_to_p_P31_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Si28 + He4 --> p + P31 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real P31_log_pf, dP31_log_pf_dT9; + + // interpolating P31 partition function + get_partition_function_cached(P31, tfactors.T9, pf_cache, P31_log_pf, dP31_log_pf_dT9); + + amrex::Real Si28_log_pf, dSi28_log_pf_dT9; + + // interpolating Si28 partition function + get_partition_function_cached(Si28, tfactors.T9, pf_cache, Si28_log_pf, dSi28_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + P31_log_pf - He4_log_pf - Si28_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dP31_log_pf_dT9 - dHe4_log_pf_dT9 - dSi28_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10r + ln_set_rate = -11.415669089666713 + -25.663579682396225 * tfactors.T9i + 21.521 * tfactors.T913 + + -1.90355 * tfactors.T9 + 0.092724 * tfactors.T953 + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 25.663579682396225 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 21.521 * tfactors.T923i + + -1.90355 + (5.0/3.0) * 0.092724 * tfactors.T923 + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = -13.441669089666712 + -24.114989682396224 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 24.114989682396224 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10n + ln_set_rate = 60.360230910333286 + -22.237829682396224 * tfactors.T9i + -31.932 * tfactors.T913i + -77.0334 * tfactors.T913 + + -43.6847 * tfactors.T9 + -4.28955 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 22.237829682396224 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.932 * tfactors.T943i + (1.0/3.0) * -77.0334 * tfactors.T923i + + -43.6847 + (5.0/3.0) * -4.28955 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si28_He4_to_C12_Ne20_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Si28 + He4 --> C12 + Ne20 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real C12_log_pf, dC12_log_pf_dT9; + + // setting C12 log(partition function) to 0.0 by default, independent of T + C12_log_pf = 0.0_rt; + dC12_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Si28_log_pf, dSi28_log_pf_dT9; + + // interpolating Si28 partition function + get_partition_function_cached(Si28, tfactors.T9, pf_cache, Si28_log_pf, dSi28_log_pf_dT9); + + amrex::Real Ne20_log_pf, dNe20_log_pf_dT9; + + // interpolating Ne20 partition function + get_partition_function_cached(Ne20, tfactors.T9, pf_cache, Ne20_log_pf, dNe20_log_pf_dT9); + + amrex::Real net_log_pf = C12_log_pf + Ne20_log_pf - He4_log_pf - Si28_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dC12_log_pf_dT9 + dNe20_log_pf_dT9 - dHe4_log_pf_dT9 - dSi28_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rolfr + ln_set_rate = -307.7623006031339 + -186.77284344745925 * tfactors.T9i + 514.197 * tfactors.T913i + -200.896 * tfactors.T913 + + -6.42713 * tfactors.T9 + 0.758256 * tfactors.T953 + 236.359 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 186.77284344745925 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 514.197 * tfactors.T943i + (1.0/3.0) * -200.896 * tfactors.T923i + + -6.42713 + (5.0/3.0) * 0.758256 * tfactors.T923 + 236.359 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si28_He4_to_O16_O16_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Si28 + He4 --> O16 + O16 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real O16_log_pf, dO16_log_pf_dT9; + + // interpolating O16 partition function + get_partition_function_cached(O16, tfactors.T9, pf_cache, O16_log_pf, dO16_log_pf_dT9); + + amrex::Real Si28_log_pf, dSi28_log_pf_dT9; + + // interpolating Si28 partition function + get_partition_function_cached(Si28, tfactors.T9, pf_cache, Si28_log_pf, dSi28_log_pf_dT9); + + amrex::Real net_log_pf = O16_log_pf + O16_log_pf - He4_log_pf - Si28_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dO16_log_pf_dT9 + dO16_log_pf_dT9 - dHe4_log_pf_dT9 - dSi28_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88r + ln_set_rate = 97.78921572069022 + -111.60083385054465 * tfactors.T9i + -119.324 * tfactors.T913i + -32.2497 * tfactors.T913 + + 1.46214 * tfactors.T9 + -0.200893 * tfactors.T953 + 13.2148 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 111.60083385054465 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -119.324 * tfactors.T943i + (1.0/3.0) * -32.2497 * tfactors.T923i + + 1.46214 + (5.0/3.0) * -0.200893 * tfactors.T923 + 13.2148 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si29_n_to_He4_Mg26_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Si29 + n --> He4 + Mg26 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Si29_log_pf, dSi29_log_pf_dT9; + + // interpolating Si29 partition function + get_partition_function_cached(Si29, tfactors.T9, pf_cache, Si29_log_pf, dSi29_log_pf_dT9); + + amrex::Real Mg26_log_pf, dMg26_log_pf_dT9; + + // interpolating Mg26 partition function + get_partition_function_cached(Mg26, tfactors.T9, pf_cache, Mg26_log_pf, dMg26_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Mg26_log_pf - n_log_pf - Si29_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dMg26_log_pf_dT9 - dn_log_pf_dT9 - dSi29_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacrn + ln_set_rate = 46.349458600120194 + -0.396123359322623 * tfactors.T9i + -53.505 * tfactors.T913i + 0.045598 * tfactors.T913 + + -0.194481 * tfactors.T9 + -0.0748153 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 0.396123359322623 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -53.505 * tfactors.T943i + (1.0/3.0) * 0.045598 * tfactors.T923i + + -0.194481 + (5.0/3.0) * -0.0748153 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacrr + ln_set_rate = 16.21545860012019 + -19.126123359322623 * tfactors.T9i + -9.54056 * tfactors.T913 + + 4.71712 * tfactors.T9 + -0.461053 * tfactors.T953 + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 19.126123359322623 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -9.54056 * tfactors.T923i + + 4.71712 + (5.0/3.0) * -0.461053 * tfactors.T923 + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si29_p_to_n_P29_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Si29 + p --> n + P29 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real P29_log_pf, dP29_log_pf_dT9; + + // interpolating P29 partition function + get_partition_function_cached(P29, tfactors.T9, pf_cache, P29_log_pf, dP29_log_pf_dT9); + + amrex::Real Si29_log_pf, dSi29_log_pf_dT9; + + // interpolating Si29 partition function + get_partition_function_cached(Si29, tfactors.T9, pf_cache, Si29_log_pf, dSi29_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + P29_log_pf - p_log_pf - Si29_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dP29_log_pf_dT9 - dp_log_pf_dT9 - dSi29_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 18.53764026173633 + -66.4315555851195 * tfactors.T9i + 1.48018 * tfactors.T913 + + -0.177129 * tfactors.T9 + 0.0127163 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 66.4315555851195 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.48018 * tfactors.T923i + + -0.177129 + (5.0/3.0) * 0.0127163 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si29_p_to_He4_Al26_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Si29 + p --> He4 + Al26 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Al26_log_pf, dAl26_log_pf_dT9; + + // interpolating Al26 partition function + get_partition_function_cached(Al26, tfactors.T9, pf_cache, Al26_log_pf, dAl26_log_pf_dT9); + + amrex::Real Si29_log_pf, dSi29_log_pf_dT9; + + // interpolating Si29 partition function + get_partition_function_cached(Si29, tfactors.T9, pf_cache, Si29_log_pf, dSi29_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Al26_log_pf - p_log_pf - Si29_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dAl26_log_pf_dT9 - dp_log_pf_dT9 - dSi29_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 50.61935001156578 + -55.94406249988892 * tfactors.T9i + -56.4422 * tfactors.T913i + 0.705353 * tfactors.T913 + + -0.957427 * tfactors.T9 + 0.0756045 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 55.94406249988892 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -56.4422 * tfactors.T943i + (1.0/3.0) * 0.705353 * tfactors.T923i + + -0.957427 + (5.0/3.0) * 0.0756045 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si29_He4_to_n_S32_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Si29 + He4 --> n + S32 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real S32_log_pf, dS32_log_pf_dT9; + + // interpolating S32 partition function + get_partition_function_cached(S32, tfactors.T9, pf_cache, S32_log_pf, dS32_log_pf_dT9); + + amrex::Real Si29_log_pf, dSi29_log_pf_dT9; + + // interpolating Si29 partition function + get_partition_function_cached(Si29, tfactors.T9, pf_cache, Si29_log_pf, dSi29_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + S32_log_pf - He4_log_pf - Si29_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dS32_log_pf_dT9 - dHe4_log_pf_dT9 - dSi29_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -2.8595327081466766 + -17.70787532036276 * tfactors.T9i + 9.48125 * tfactors.T913 + + 0.4472 * tfactors.T9 + -0.119237 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 17.70787532036276 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 9.48125 * tfactors.T923i + + 0.4472 + (5.0/3.0) * -0.119237 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si29_He4_to_p_P32_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Si29 + He4 --> p + P32 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real P32_log_pf, dP32_log_pf_dT9; + + // interpolating P32 partition function + get_partition_function_cached(P32, tfactors.T9, pf_cache, P32_log_pf, dP32_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Si29_log_pf, dSi29_log_pf_dT9; + + // interpolating Si29 partition function + get_partition_function_cached(Si29, tfactors.T9, pf_cache, Si29_log_pf, dSi29_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + P32_log_pf - He4_log_pf - Si29_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dP32_log_pf_dT9 - dHe4_log_pf_dT9 - dSi29_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 117.41767863586955 + -32.37974628048795 * tfactors.T9i + 160.025 * tfactors.T913i + -285.126 * tfactors.T913 + + 16.3226 * tfactors.T9 + -0.928477 * tfactors.T953 + 138.458 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 32.37974628048795 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 160.025 * tfactors.T943i + (1.0/3.0) * -285.126 * tfactors.T923i + + 16.3226 + (5.0/3.0) * -0.928477 * tfactors.T923 + 138.458 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si30_p_to_n_P30_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Si30 + p --> n + P30 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Si30_log_pf, dSi30_log_pf_dT9; + + // interpolating Si30 partition function + get_partition_function_cached(Si30, tfactors.T9, pf_cache, Si30_log_pf, dSi30_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real P30_log_pf, dP30_log_pf_dT9; + + // interpolating P30 partition function + get_partition_function_cached(P30, tfactors.T9, pf_cache, P30_log_pf, dP30_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + P30_log_pf - p_log_pf - Si30_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dP30_log_pf_dT9 - dp_log_pf_dT9 - dSi30_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 19.436973743369542 + -58.19026470783202 * tfactors.T9i + 1.88379 * tfactors.T913 + + -0.330243 * tfactors.T9 + 0.0239836 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 58.19026470783202 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.88379 * tfactors.T923i + + -0.330243 + (5.0/3.0) * 0.0239836 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si30_p_to_He4_Al27_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Si30 + p --> He4 + Al27 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Si30_log_pf, dSi30_log_pf_dT9; + + // interpolating Si30 partition function + get_partition_function_cached(Si30, tfactors.T9, pf_cache, Si30_log_pf, dSi30_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Al27_log_pf, dAl27_log_pf_dT9; + + // interpolating Al27 partition function + get_partition_function_cached(Al27, tfactors.T9, pf_cache, Al27_log_pf, dAl27_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Al27_log_pf - p_log_pf - Si30_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dAl27_log_pf_dT9 - dp_log_pf_dT9 - dSi30_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 50.48822991071769 + -27.52646014539429 * tfactors.T9i + -56.5351 * tfactors.T913i + 1.60477 * tfactors.T913 + + -1.40594 * tfactors.T9 + 0.127353 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 27.52646014539429 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -56.5351 * tfactors.T943i + (1.0/3.0) * 1.60477 * tfactors.T923i + + -1.40594 + (5.0/3.0) * 0.127353 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si30_He4_to_n_S33_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Si30 + He4 --> n + S33 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Si30_log_pf, dSi30_log_pf_dT9; + + // interpolating Si30 partition function + get_partition_function_cached(Si30, tfactors.T9, pf_cache, Si30_log_pf, dSi30_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real S33_log_pf, dS33_log_pf_dT9; + + // interpolating S33 partition function + get_partition_function_cached(S33, tfactors.T9, pf_cache, S33_log_pf, dS33_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + S33_log_pf - He4_log_pf - Si30_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dS33_log_pf_dT9 - dHe4_log_pf_dT9 - dSi30_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 17.342731381152845 + -40.54045287249423 * tfactors.T9i + -0.725571 * tfactors.T913 + + 0.430731 * tfactors.T9 + -0.0323663 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 40.54045287249423 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.725571 * tfactors.T923i + + 0.430731 + (5.0/3.0) * -0.0323663 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si30_He4_to_p_P33_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Si30 + He4 --> p + P33 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Si30_log_pf, dSi30_log_pf_dT9; + + // interpolating Si30 partition function + get_partition_function_cached(Si30, tfactors.T9, pf_cache, Si30_log_pf, dSi30_log_pf_dT9); + + amrex::Real P33_log_pf, dP33_log_pf_dT9; + + // interpolating P33 partition function + get_partition_function_cached(P33, tfactors.T9, pf_cache, P33_log_pf, dP33_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + P33_log_pf - He4_log_pf - Si30_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dP33_log_pf_dT9 - dHe4_log_pf_dT9 - dSi30_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 81.03312188514073 + -37.759841360627014 * tfactors.T9i + 110.297 * tfactors.T913i + -193.863 * tfactors.T913 + + 11.4977 * tfactors.T9 + -0.687235 * tfactors.T953 + 94.819 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 37.759841360627014 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 110.297 * tfactors.T943i + (1.0/3.0) * -193.863 * tfactors.T923i + + 11.4977 + (5.0/3.0) * -0.687235 * tfactors.T923 + 94.819 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si32_p_to_n_P32_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Si32 + p --> n + P32 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real P32_log_pf, dP32_log_pf_dT9; + + // interpolating P32 partition function + get_partition_function_cached(P32, tfactors.T9, pf_cache, P32_log_pf, dP32_log_pf_dT9); + + amrex::Real Si32_log_pf, dSi32_log_pf_dT9; + + // interpolating Si32 partition function + get_partition_function_cached(Si32, tfactors.T9, pf_cache, Si32_log_pf, dSi32_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + P32_log_pf - p_log_pf - Si32_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dP32_log_pf_dT9 - dp_log_pf_dT9 - dSi32_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = -32.83902424162614 + -6.1459978845521865 * tfactors.T9i + -31.4944 * tfactors.T913i + 82.7906 * tfactors.T913 + + -5.28792 * tfactors.T9 + 0.278753 * tfactors.T953 + -31.7623 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 6.1459978845521865 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.4944 * tfactors.T943i + (1.0/3.0) * 82.7906 * tfactors.T923i + + -5.28792 + (5.0/3.0) * 0.278753 * tfactors.T923 + -31.7623 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si32_He4_to_n_S35_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Si32 + He4 --> n + S35 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Si32_log_pf, dSi32_log_pf_dT9; + + // interpolating Si32 partition function + get_partition_function_cached(Si32, tfactors.T9, pf_cache, Si32_log_pf, dSi32_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real S35_log_pf, dS35_log_pf_dT9; + + // interpolating S35 partition function + get_partition_function_cached(S35, tfactors.T9, pf_cache, S35_log_pf, dS35_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + S35_log_pf - He4_log_pf - Si32_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dS35_log_pf_dT9 - dHe4_log_pf_dT9 - dSi32_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -29.973432018082725 + -10.18740024668407 * tfactors.T9i + 32.5444 * tfactors.T913 + + -2.95994 * tfactors.T9 + 0.119682 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 10.18740024668407 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 32.5444 * tfactors.T923i + + -2.95994 + (5.0/3.0) * 0.119682 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P30_n_to_He4_Al27_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // P30 + n --> He4 + Al27 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Al27_log_pf, dAl27_log_pf_dT9; + + // interpolating Al27 partition function + get_partition_function_cached(Al27, tfactors.T9, pf_cache, Al27_log_pf, dAl27_log_pf_dT9); + + amrex::Real P30_log_pf, dP30_log_pf_dT9; + + // interpolating P30 partition function + get_partition_function_cached(P30, tfactors.T9, pf_cache, P30_log_pf, dP30_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Al27_log_pf - n_log_pf - P30_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dAl27_log_pf_dT9 - dn_log_pf_dT9 - dP30_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacr + ln_set_rate = 7.9931861673481475 + -0.0031954375622653686 * tfactors.T9i + 5.40982 * tfactors.T913 + + -0.265676 * tfactors.T9 + 1.0 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 0.0031954375622653686 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.40982 * tfactors.T923i + + -0.265676 + 1.0 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacr + ln_set_rate = 13.208956167348147 + -0.0031954375622653686 * tfactors.T9i + 0.311974 * tfactors.T913 + + -2.02044 * tfactors.T9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 0.0031954375622653686 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.311974 * tfactors.T923i + + -2.02044; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P30_He4_to_n_Cl33_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // P30 + He4 --> n + Cl33 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real P30_log_pf, dP30_log_pf_dT9; + + // interpolating P30 partition function + get_partition_function_cached(P30, tfactors.T9, pf_cache, P30_log_pf, dP30_log_pf_dT9); + + amrex::Real Cl33_log_pf, dCl33_log_pf_dT9; + + // interpolating Cl33 partition function + get_partition_function_cached(Cl33, tfactors.T9, pf_cache, Cl33_log_pf, dCl33_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cl33_log_pf - He4_log_pf - P30_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCl33_log_pf_dT9 - dHe4_log_pf_dT9 - dP30_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 14.966194553692937 + -56.21184747811456 * tfactors.T9i + 1.33535 * tfactors.T913 + + -0.149988 * tfactors.T9 + 0.0279218 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 56.21184747811456 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.33535 * tfactors.T923i + + -0.149988 + (5.0/3.0) * 0.0279218 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P31_n_to_p_Si31_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // P31 + n --> p + Si31 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Si31_log_pf, dSi31_log_pf_dT9; + + // interpolating Si31 partition function + get_partition_function_cached(Si31, tfactors.T9, pf_cache, Si31_log_pf, dSi31_log_pf_dT9); + + amrex::Real P31_log_pf, dP31_log_pf_dT9; + + // interpolating P31 partition function + get_partition_function_cached(P31, tfactors.T9, pf_cache, P31_log_pf, dP31_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Si31_log_pf - n_log_pf - P31_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dSi31_log_pf_dT9 - dn_log_pf_dT9 - dP31_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 81.21069387554306 + -11.61262948158098 * tfactors.T9i + 119.352 * tfactors.T913i + -198.709 * tfactors.T913 + + 10.5994 * tfactors.T9 + -0.583506 * tfactors.T953 + 100.693 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 11.61262948158098 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 119.352 * tfactors.T943i + (1.0/3.0) * -198.709 * tfactors.T923i + + 10.5994 + (5.0/3.0) * -0.583506 * tfactors.T923 + 100.693 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P31_p_to_C12_Ne20_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // P31 + p --> C12 + Ne20 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real C12_log_pf, dC12_log_pf_dT9; + + // setting C12 log(partition function) to 0.0 by default, independent of T + C12_log_pf = 0.0_rt; + dC12_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real P31_log_pf, dP31_log_pf_dT9; + + // interpolating P31 partition function + get_partition_function_cached(P31, tfactors.T9, pf_cache, P31_log_pf, dP31_log_pf_dT9); + + amrex::Real Ne20_log_pf, dNe20_log_pf_dT9; + + // interpolating Ne20 partition function + get_partition_function_cached(Ne20, tfactors.T9, pf_cache, Ne20_log_pf, dNe20_log_pf_dT9); + + amrex::Real net_log_pf = C12_log_pf + Ne20_log_pf - p_log_pf - P31_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dC12_log_pf_dT9 + dNe20_log_pf_dT9 - dp_log_pf_dT9 - dP31_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rolfr + ln_set_rate = -266.47063151346725 + -156.07991376506303 * tfactors.T9i + 361.154 * tfactors.T913i + -92.643 * tfactors.T913 + + -9.98738 * tfactors.T9 + 0.892737 * tfactors.T953 + 161.042 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 156.07991376506303 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 361.154 * tfactors.T943i + (1.0/3.0) * -92.643 * tfactors.T923i + + -9.98738 + (5.0/3.0) * 0.892737 * tfactors.T923 + 161.042 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P31_p_to_O16_O16_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // P31 + p --> O16 + O16 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real O16_log_pf, dO16_log_pf_dT9; + + // interpolating O16 partition function + get_partition_function_cached(O16, tfactors.T9, pf_cache, O16_log_pf, dO16_log_pf_dT9); + + amrex::Real P31_log_pf, dP31_log_pf_dT9; + + // interpolating P31 partition function + get_partition_function_cached(P31, tfactors.T9, pf_cache, P31_log_pf, dP31_log_pf_dT9); + + amrex::Real net_log_pf = O16_log_pf + O16_log_pf - p_log_pf - P31_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dO16_log_pf_dT9 + dO16_log_pf_dT9 - dp_log_pf_dT9 - dP31_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88r + ln_set_rate = 86.33118481035693 + -88.87103716814843 * tfactors.T9i + -145.844 * tfactors.T913i + 8.72612 * tfactors.T913 + + -0.554035 * tfactors.T9 + -0.137562 * tfactors.T953 + -6.88807 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 88.87103716814843 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -145.844 * tfactors.T943i + (1.0/3.0) * 8.72612 * tfactors.T923i + + -0.554035 + (5.0/3.0) * -0.137562 * tfactors.T923 + -6.88807 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P31_He4_to_n_Cl34_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // P31 + He4 --> n + Cl34 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl34_log_pf, dCl34_log_pf_dT9; + + // interpolating Cl34 partition function + get_partition_function_cached(Cl34, tfactors.T9, pf_cache, Cl34_log_pf, dCl34_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real P31_log_pf, dP31_log_pf_dT9; + + // interpolating P31 partition function + get_partition_function_cached(P31, tfactors.T9, pf_cache, P31_log_pf, dP31_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cl34_log_pf - He4_log_pf - P31_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCl34_log_pf_dT9 - dHe4_log_pf_dT9 - dP31_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 16.944547801567715 + -65.52905009260664 * tfactors.T9i + -0.466069 * tfactors.T913 + + 0.167169 * tfactors.T9 + -0.00537463 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 65.52905009260664 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.466069 * tfactors.T923i + + 0.167169 + (5.0/3.0) * -0.00537463 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P32_He4_to_n_Cl35_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // P32 + He4 --> n + Cl35 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl35_log_pf, dCl35_log_pf_dT9; + + // interpolating Cl35 partition function + get_partition_function_cached(Cl35, tfactors.T9, pf_cache, Cl35_log_pf, dCl35_log_pf_dT9); + + amrex::Real P32_log_pf, dP32_log_pf_dT9; + + // interpolating P32 partition function + get_partition_function_cached(P32, tfactors.T9, pf_cache, P32_log_pf, dP32_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cl35_log_pf - He4_log_pf - P32_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCl35_log_pf_dT9 - dHe4_log_pf_dT9 - dP32_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -33.012938078485845 + -10.882162746553378 * tfactors.T9i + 35.1367 * tfactors.T913 + + -3.30169 * tfactors.T9 + 0.150699 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 10.882162746553378 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 35.1367 * tfactors.T923i + + -3.30169 + (5.0/3.0) * 0.150699 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P32_He4_to_p_S35_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // P32 + He4 --> p + S35 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real S35_log_pf, dS35_log_pf_dT9; + + // interpolating S35 partition function + get_partition_function_cached(S35, tfactors.T9, pf_cache, S35_log_pf, dS35_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real P32_log_pf, dP32_log_pf_dT9; + + // interpolating P32 partition function + get_partition_function_cached(P32, tfactors.T9, pf_cache, P32_log_pf, dP32_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + S35_log_pf - He4_log_pf - P32_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dS35_log_pf_dT9 - dHe4_log_pf_dT9 - dP32_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -31.51190777645659 + -3.7450703620766808 * tfactors.T9i + -26.7922 * tfactors.T913i + 56.581 * tfactors.T913 + + -10.5304 * tfactors.T9 + 0.9493 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 3.7450703620766808 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -26.7922 * tfactors.T943i + (1.0/3.0) * 56.581 * tfactors.T923i + + -10.5304 + (5.0/3.0) * 0.9493 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P33_p_to_n_S33_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // P33 + p --> n + S33 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real P33_log_pf, dP33_log_pf_dT9; + + // interpolating P33 partition function + get_partition_function_cached(P33, tfactors.T9, pf_cache, P33_log_pf, dP33_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real S33_log_pf, dS33_log_pf_dT9; + + // interpolating S33 partition function + get_partition_function_cached(S33, tfactors.T9, pf_cache, S33_log_pf, dS33_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + S33_log_pf - p_log_pf - P33_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dS33_log_pf_dT9 - dp_log_pf_dT9 - dP33_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 5.796639496012104 + -6.195521511888814 * tfactors.T9i + 8.02978 * tfactors.T913 + + -0.479244 * tfactors.T9 + 0.0134889 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 6.195521511888814 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 8.02978 * tfactors.T923i + + -0.479244 + (5.0/3.0) * 0.0134889 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P33_He4_to_n_Cl36_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // P33 + He4 --> n + Cl36 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real P33_log_pf, dP33_log_pf_dT9; + + // interpolating P33 partition function + get_partition_function_cached(P33, tfactors.T9, pf_cache, P33_log_pf, dP33_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl36_log_pf, dCl36_log_pf_dT9; + + // interpolating Cl36 partition function + get_partition_function_cached(Cl36, tfactors.T9, pf_cache, Cl36_log_pf, dCl36_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cl36_log_pf - He4_log_pf - P33_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCl36_log_pf_dT9 - dHe4_log_pf_dT9 - dP33_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 11.14989693969136 + -28.567912544639093 * tfactors.T9i + -0.927614 * tfactors.T913 + + 1.68083 * tfactors.T9 + -0.183233 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 28.567912544639093 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.927614 * tfactors.T923i + + 1.68083 + (5.0/3.0) * -0.183233 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P33_He4_to_p_S36_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // P33 + He4 --> p + S36 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real S36_log_pf, dS36_log_pf_dT9; + + // interpolating S36 partition function + get_partition_function_cached(S36, tfactors.T9, pf_cache, S36_log_pf, dS36_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real P33_log_pf, dP33_log_pf_dT9; + + // interpolating P33 partition function + get_partition_function_cached(P33, tfactors.T9, pf_cache, P33_log_pf, dP33_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + S36_log_pf - He4_log_pf - P33_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dS36_log_pf_dT9 - dHe4_log_pf_dT9 - dP33_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -16.06580873667737 + -6.235283905809467 * tfactors.T9i + -26.7991 * tfactors.T913i + 44.6374 * tfactors.T913 + + -9.82916 * tfactors.T9 + 0.995523 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 6.235283905809467 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -26.7991 * tfactors.T943i + (1.0/3.0) * 44.6374 * tfactors.T923i + + -9.82916 + (5.0/3.0) * 0.995523 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S32_n_to_p_P32_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S32 + n --> p + P32 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real P32_log_pf, dP32_log_pf_dT9; + + // interpolating P32 partition function + get_partition_function_cached(P32, tfactors.T9, pf_cache, P32_log_pf, dP32_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real S32_log_pf, dS32_log_pf_dT9; + + // interpolating S32 partition function + get_partition_function_cached(S32, tfactors.T9, pf_cache, S32_log_pf, dS32_log_pf_dT9); + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + P32_log_pf - n_log_pf - S32_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dP32_log_pf_dT9 - dn_log_pf_dT9 - dS32_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 83.39067334401622 + -14.339550960086786 * tfactors.T9i + 124.605 * tfactors.T913i + -206.844 * tfactors.T913 + + 11.0016 * tfactors.T9 + -0.612898 * tfactors.T953 + 104.905 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 14.339550960086786 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 124.605 * tfactors.T943i + (1.0/3.0) * -206.844 * tfactors.T923i + + 11.0016 + (5.0/3.0) * -0.612898 * tfactors.T923 + 104.905 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S32_p_to_He4_P29_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S32 + p --> He4 + P29 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real P29_log_pf, dP29_log_pf_dT9; + + // interpolating P29 partition function + get_partition_function_cached(P29, tfactors.T9, pf_cache, P29_log_pf, dP29_log_pf_dT9); + + amrex::Real S32_log_pf, dS32_log_pf_dT9; + + // interpolating S32 partition function + get_partition_function_cached(S32, tfactors.T9, pf_cache, S32_log_pf, dS32_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + P29_log_pf - p_log_pf - S32_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dP29_log_pf_dT9 - dp_log_pf_dT9 - dS32_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 52.19693496988301 + -48.723680264833554 * tfactors.T9i + -62.3802 * tfactors.T913i + 0.459085 * tfactors.T913 + + -0.870169 * tfactors.T9 + 0.0631143 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 48.723680264833554 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -62.3802 * tfactors.T943i + (1.0/3.0) * 0.459085 * tfactors.T923i + + -0.870169 + (5.0/3.0) * 0.0631143 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S32_He4_to_p_Cl35_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S32 + He4 --> p + Cl35 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl35_log_pf, dCl35_log_pf_dT9; + + // interpolating Cl35 partition function + get_partition_function_cached(Cl35, tfactors.T9, pf_cache, Cl35_log_pf, dCl35_log_pf_dT9); + + amrex::Real S32_log_pf, dS32_log_pf_dT9; + + // interpolating S32 partition function + get_partition_function_cached(S32, tfactors.T9, pf_cache, S32_log_pf, dS32_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Cl35_log_pf - He4_log_pf - S32_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCl35_log_pf_dT9 - dHe4_log_pf_dT9 - dS32_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from il10r + ln_set_rate = -0.8597847344696254 + -25.589703706656966 * tfactors.T9i + + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 25.589703706656966 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = -57.37716473446963 + -22.187684706656967 * tfactors.T9i + 25.5338 * tfactors.T913 + + 6.45824 * tfactors.T9 + -0.950294 * tfactors.T953 + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 22.187684706656967 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 25.5338 * tfactors.T923i + + 6.45824 + (5.0/3.0) * -0.950294 * tfactors.T923 + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10n + ln_set_rate = 32.27223526553037 + -21.654753706656965 * tfactors.T9i + -30.9147 * tfactors.T913i + -1.2345 * tfactors.T913 + + 22.5118 * tfactors.T9 + -33.0589 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 21.654753706656965 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -30.9147 * tfactors.T943i + (1.0/3.0) * -1.2345 * tfactors.T923i + + 22.5118 + (5.0/3.0) * -33.0589 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from il10r + ln_set_rate = 2.4434452655303747 + -27.664513706656965 * tfactors.T9i + 5.33756 * tfactors.T913 + + 1.64418 * tfactors.T9 + -0.246167 * tfactors.T953 + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 27.664513706656965 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.33756 * tfactors.T923i + + 1.64418 + (5.0/3.0) * -0.246167 * tfactors.T923 + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S33_p_to_n_Cl33_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S33 + p --> n + Cl33 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real S33_log_pf, dS33_log_pf_dT9; + + // interpolating S33 partition function + get_partition_function_cached(S33, tfactors.T9, pf_cache, S33_log_pf, dS33_log_pf_dT9); + + amrex::Real Cl33_log_pf, dCl33_log_pf_dT9; + + // interpolating Cl33 partition function + get_partition_function_cached(Cl33, tfactors.T9, pf_cache, Cl33_log_pf, dCl33_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cl33_log_pf - p_log_pf - S33_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCl33_log_pf_dT9 - dp_log_pf_dT9 - dS33_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 18.57973691590964 + -73.86165931356756 * tfactors.T9i + 1.39633 * tfactors.T913 + + -0.136457 * tfactors.T9 + 0.00585594 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 73.86165931356756 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.39633 * tfactors.T923i + + -0.136457 + (5.0/3.0) * 0.00585594 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S33_p_to_He4_P30_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S33 + p --> He4 + P30 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real S33_log_pf, dS33_log_pf_dT9; + + // interpolating S33 partition function + get_partition_function_cached(S33, tfactors.T9, pf_cache, S33_log_pf, dS33_log_pf_dT9); + + amrex::Real P30_log_pf, dP30_log_pf_dT9; + + // interpolating P30 partition function + get_partition_function_cached(P30, tfactors.T9, pf_cache, P30_log_pf, dP30_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + P30_log_pf - p_log_pf - S33_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dP30_log_pf_dT9 - dp_log_pf_dT9 - dS33_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 50.751142362216704 + -17.649811835453008 * tfactors.T9i + -62.4643 * tfactors.T913i + 0.492934 * tfactors.T913 + + -0.841855 * tfactors.T9 + 0.059263 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 17.649811835453008 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -62.4643 * tfactors.T943i + (1.0/3.0) * 0.492934 * tfactors.T923i + + -0.841855 + (5.0/3.0) * 0.059263 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S33_He4_to_n_Ar36_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S33 + He4 --> n + Ar36 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real S33_log_pf, dS33_log_pf_dT9; + + // interpolating S33 partition function + get_partition_function_cached(S33, tfactors.T9, pf_cache, S33_log_pf, dS33_log_pf_dT9); + + amrex::Real Ar36_log_pf, dAr36_log_pf_dT9; + + // interpolating Ar36 partition function + get_partition_function_cached(Ar36, tfactors.T9, pf_cache, Ar36_log_pf, dAr36_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ar36_log_pf - He4_log_pf - S33_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dAr36_log_pf_dT9 - dHe4_log_pf_dT9 - dS33_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 0.41810912702841163 + -23.217374437510006 * tfactors.T9i + 5.44923 * tfactors.T913 + + 1.17359 * tfactors.T9 + -0.175811 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 23.217374437510006 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.44923 * tfactors.T923i + + 1.17359 + (5.0/3.0) * -0.175811 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S33_He4_to_p_Cl36_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S33 + He4 --> p + Cl36 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real S33_log_pf, dS33_log_pf_dT9; + + // interpolating S33 partition function + get_partition_function_cached(S33, tfactors.T9, pf_cache, S33_log_pf, dS33_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl36_log_pf, dCl36_log_pf_dT9; + + // interpolating Cl36 partition function + get_partition_function_cached(Cl36, tfactors.T9, pf_cache, Cl36_log_pf, dCl36_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Cl36_log_pf - He4_log_pf - S33_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCl36_log_pf_dT9 - dHe4_log_pf_dT9 - dS33_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 23.624487443679254 + -22.372391032750283 * tfactors.T9i + -27.9044 * tfactors.T913i + 7.06482 * tfactors.T913 + + -1.77458 * tfactors.T9 + 0.192878 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 22.372391032750283 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -27.9044 * tfactors.T943i + (1.0/3.0) * 7.06482 * tfactors.T923i + + -1.77458 + (5.0/3.0) * 0.192878 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S34_n_to_He4_Si31_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S34 + n --> He4 + Si31 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Si31_log_pf, dSi31_log_pf_dT9; + + // interpolating Si31 partition function + get_partition_function_cached(Si31, tfactors.T9, pf_cache, Si31_log_pf, dSi31_log_pf_dT9); + + amrex::Real S34_log_pf, dS34_log_pf_dT9; + + // interpolating S34 partition function + get_partition_function_cached(S34, tfactors.T9, pf_cache, S34_log_pf, dS34_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Si31_log_pf - n_log_pf - S34_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dSi31_log_pf_dT9 - dn_log_pf_dT9 - dS34_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = -2.4920275230546234 + -18.25031146181642 * tfactors.T9i + -22.4045 * tfactors.T913i + 23.4647 * tfactors.T913 + + -4.73922 * tfactors.T9 + 0.371237 * tfactors.T953 + 4.62837 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 18.25031146181642 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -22.4045 * tfactors.T943i + (1.0/3.0) * 23.4647 * tfactors.T923i + + -4.73922 + (5.0/3.0) * 0.371237 * tfactors.T923 + 4.62837 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S34_p_to_n_Cl34_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S34 + p --> n + Cl34 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl34_log_pf, dCl34_log_pf_dT9; + + // interpolating Cl34 partition function + get_partition_function_cached(Cl34, tfactors.T9, pf_cache, Cl34_log_pf, dCl34_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real S34_log_pf, dS34_log_pf_dT9; + + // interpolating S34 partition function + get_partition_function_cached(S34, tfactors.T9, pf_cache, S34_log_pf, dS34_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cl34_log_pf - p_log_pf - S34_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCl34_log_pf_dT9 - dp_log_pf_dT9 - dS34_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 18.44701640297003 + -72.80613207291889 * tfactors.T9i + 0.847427 * tfactors.T913 + + 0.000125282 * tfactors.T9 + -0.00573985 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 72.80613207291889 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.847427 * tfactors.T923i + + 0.000125282 + (5.0/3.0) * -0.00573985 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S34_p_to_He4_P31_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S34 + p --> He4 + P31 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real S34_log_pf, dS34_log_pf_dT9; + + // interpolating S34 partition function + get_partition_function_cached(S34, tfactors.T9, pf_cache, S34_log_pf, dS34_log_pf_dT9); + + amrex::Real P31_log_pf, dP31_log_pf_dT9; + + // interpolating P31 partition function + get_partition_function_cached(P31, tfactors.T9, pf_cache, P31_log_pf, dP31_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + P31_log_pf - p_log_pf - S34_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dP31_log_pf_dT9 - dp_log_pf_dT9 - dS34_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 51.02256860140231 + -7.277081980312247 * tfactors.T9i + -62.5433 * tfactors.T913i + 1.69339 * tfactors.T913 + + -1.27872 * tfactors.T9 + 0.106616 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 7.277081980312247 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -62.5433 * tfactors.T943i + (1.0/3.0) * 1.69339 * tfactors.T923i + + -1.27872 + (5.0/3.0) * 0.106616 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S35_p_to_n_Cl35_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S35 + p --> n + Cl35 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl35_log_pf, dCl35_log_pf_dT9; + + // interpolating Cl35 partition function + get_partition_function_cached(Cl35, tfactors.T9, pf_cache, Cl35_log_pf, dCl35_log_pf_dT9); + + amrex::Real S35_log_pf, dS35_log_pf_dT9; + + // interpolating S35 partition function + get_partition_function_cached(S35, tfactors.T9, pf_cache, S35_log_pf, dS35_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cl35_log_pf - p_log_pf - S35_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCl35_log_pf_dT9 - dp_log_pf_dT9 - dS35_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 7.512859697970742 + -7.137092384498298 * tfactors.T9i + 6.51754 * tfactors.T913 + + -0.295846 * tfactors.T9 + -0.00271436 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 7.137092384498298 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 6.51754 * tfactors.T923i + + -0.295846 + (5.0/3.0) * -0.00271436 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S36_p_to_n_Cl36_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S36 + p --> n + Cl36 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real S36_log_pf, dS36_log_pf_dT9; + + // interpolating S36 partition function + get_partition_function_cached(S36, tfactors.T9, pf_cache, S36_log_pf, dS36_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl36_log_pf, dCl36_log_pf_dT9; + + // interpolating Cl36 partition function + get_partition_function_cached(Cl36, tfactors.T9, pf_cache, Cl36_log_pf, dCl36_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cl36_log_pf - p_log_pf - S36_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCl36_log_pf_dT9 - dp_log_pf_dT9 - dS36_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 16.75200567636873 + -22.33262863885123 * tfactors.T9i + 2.26066 * tfactors.T913 + + -0.487956 * tfactors.T9 + 0.0471708 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 22.33262863885123 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.26066 * tfactors.T923i + + -0.487956 + (5.0/3.0) * 0.0471708 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S36_He4_to_n_Ar39_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // S36 + He4 --> n + Ar39 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real S36_log_pf, dS36_log_pf_dT9; + + // interpolating S36 partition function + get_partition_function_cached(S36, tfactors.T9, pf_cache, S36_log_pf, dS36_log_pf_dT9); + + amrex::Real Ar39_log_pf, dAr39_log_pf_dT9; + + // interpolating Ar39 partition function + get_partition_function_cached(Ar39, tfactors.T9, pf_cache, Ar39_log_pf, dAr39_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + Ar39_log_pf - He4_log_pf - S36_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dAr39_log_pf_dT9 - dHe4_log_pf_dT9 - dS36_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 14.14005216416654 + -35.60895391483854 * tfactors.T9i + -1.97008 * tfactors.T913 + + 1.52238 * tfactors.T9 + -0.159721 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 35.60895391483854 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.97008 * tfactors.T923i + + 1.52238 + (5.0/3.0) * -0.159721 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl34_He4_to_n_K37_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cl34 + He4 --> n + K37 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl34_log_pf, dCl34_log_pf_dT9; + + // interpolating Cl34 partition function + get_partition_function_cached(Cl34, tfactors.T9, pf_cache, Cl34_log_pf, dCl34_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real K37_log_pf, dK37_log_pf_dT9; + + // interpolating K37 partition function + get_partition_function_cached(K37, tfactors.T9, pf_cache, K37_log_pf, dK37_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + K37_log_pf - He4_log_pf - Cl34_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dK37_log_pf_dT9 - dHe4_log_pf_dT9 - dCl34_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 16.11100895495995 + -61.34487397896441 * tfactors.T9i + 1.35231 * tfactors.T913 + + -0.147095 * tfactors.T9 + 0.0306549 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 61.34487397896441 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.35231 * tfactors.T923i + + -0.147095 + (5.0/3.0) * 0.0306549 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl35_He4_to_n_K38_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cl35 + He4 --> n + K38 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl35_log_pf, dCl35_log_pf_dT9; + + // interpolating Cl35 partition function + get_partition_function_cached(Cl35, tfactors.T9, pf_cache, Cl35_log_pf, dCl35_log_pf_dT9); + + amrex::Real K38_log_pf, dK38_log_pf_dT9; + + // interpolating K38 partition function + get_partition_function_cached(K38, tfactors.T9, pf_cache, K38_log_pf, dK38_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + K38_log_pf - He4_log_pf - Cl35_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dK38_log_pf_dT9 - dHe4_log_pf_dT9 - dCl35_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 16.851411879838793 + -67.99287032041003 * tfactors.T9i + 1.15173 * tfactors.T913 + + -0.190157 * tfactors.T9 + 0.0305104 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 67.99287032041003 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.15173 * tfactors.T923i + + -0.190157 + (5.0/3.0) * 0.0305104 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl36_p_to_n_Ar36_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cl36 + p --> n + Ar36 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl36_log_pf, dCl36_log_pf_dT9; + + // interpolating Cl36 partition function + get_partition_function_cached(Cl36, tfactors.T9, pf_cache, Cl36_log_pf, dCl36_log_pf_dT9); + + amrex::Real Ar36_log_pf, dAr36_log_pf_dT9; + + // interpolating Ar36 partition function + get_partition_function_cached(Ar36, tfactors.T9, pf_cache, Ar36_log_pf, dAr36_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ar36_log_pf - p_log_pf - Cl36_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dAr36_log_pf_dT9 - dp_log_pf_dT9 - dCl36_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -24.283108316650843 + -0.8449834047597259 * tfactors.T9i + 34.7356 * tfactors.T913 + + -5.0791 * tfactors.T9 + 0.381814 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 0.8449834047597259 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 34.7356 * tfactors.T923i + + -5.0791 + (5.0/3.0) * 0.381814 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl36_He4_to_n_K39_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cl36 + He4 --> n + K39 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl36_log_pf, dCl36_log_pf_dT9; + + // interpolating Cl36 partition function + get_partition_function_cached(Cl36, tfactors.T9, pf_cache, Cl36_log_pf, dCl36_log_pf_dT9); + + amrex::Real K39_log_pf, dK39_log_pf_dT9; + + // interpolating K39 partition function + get_partition_function_cached(K39, tfactors.T9, pf_cache, K39_log_pf, dK39_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + K39_log_pf - He4_log_pf - Cl36_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dK39_log_pf_dT9 - dHe4_log_pf_dT9 - dCl36_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -19.81145708392141 + -15.796270012948561 * tfactors.T9i + 20.3122 * tfactors.T913 + + -0.37149 * tfactors.T9 + -0.0867942 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 15.796270012948561 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 20.3122 * tfactors.T923i + + -0.37149 + (5.0/3.0) * -0.0867942 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl36_He4_to_p_Ar39_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cl36 + He4 --> p + Ar39 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ar39_log_pf, dAr39_log_pf_dT9; + + // interpolating Ar39 partition function + get_partition_function_cached(Ar39, tfactors.T9, pf_cache, Ar39_log_pf, dAr39_log_pf_dT9); + + amrex::Real Cl36_log_pf, dCl36_log_pf_dT9; + + // interpolating Cl36 partition function + get_partition_function_cached(Cl36, tfactors.T9, pf_cache, Cl36_log_pf, dCl36_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Ar39_log_pf - He4_log_pf - Cl36_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dAr39_log_pf_dT9 - dHe4_log_pf_dT9 - dCl36_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 7.4215564877978135 + -13.276325275987306 * tfactors.T9i + -29.0085 * tfactors.T913i + 15.2414 * tfactors.T913 + + -1.01027 * tfactors.T9 + -0.0165013 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 13.276325275987306 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -29.0085 * tfactors.T943i + (1.0/3.0) * 15.2414 * tfactors.T923i + + -1.01027 + (5.0/3.0) * -0.0165013 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl37_p_to_n_Ar37_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cl37 + p --> n + Ar37 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ar37_log_pf, dAr37_log_pf_dT9; + + // interpolating Ar37 partition function + get_partition_function_cached(Ar37, tfactors.T9, pf_cache, Ar37_log_pf, dAr37_log_pf_dT9); + + amrex::Real Cl37_log_pf, dCl37_log_pf_dT9; + + // interpolating Cl37 partition function + get_partition_function_cached(Cl37, tfactors.T9, pf_cache, Cl37_log_pf, dCl37_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + Ar37_log_pf - p_log_pf - Cl37_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dAr37_log_pf_dT9 - dp_log_pf_dT9 - dCl37_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 16.211541629003637 + -18.523329520251817 * tfactors.T9i + 1.64495 * tfactors.T913 + + -0.154677 * tfactors.T9 + 0.0083347 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 18.523329520251817 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.64495 * tfactors.T923i + + -0.154677 + (5.0/3.0) * 0.0083347 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl37_p_to_He4_S34_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cl37 + p --> He4 + S34 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl37_log_pf, dCl37_log_pf_dT9; + + // interpolating Cl37 partition function + get_partition_function_cached(Cl37, tfactors.T9, pf_cache, Cl37_log_pf, dCl37_log_pf_dT9); + + amrex::Real S34_log_pf, dS34_log_pf_dT9; + + // interpolating S34 partition function + get_partition_function_cached(S34, tfactors.T9, pf_cache, S34_log_pf, dS34_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + S34_log_pf - p_log_pf - Cl37_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dS34_log_pf_dT9 - dp_log_pf_dT9 - dCl37_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from SM93 + ln_set_rate = 80.67814509006061 + 0.002273113082097211 * tfactors.T9i + -47.5185 * tfactors.T913i + -32.046 * tfactors.T913 + + 4.43077 * tfactors.T9 + -0.368628 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = -0.002273113082097211 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -47.5185 * tfactors.T943i + (1.0/3.0) * -32.046 * tfactors.T923i + + 4.43077 + (5.0/3.0) * -0.368628 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl37_He4_to_n_K40_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cl37 + He4 --> n + K40 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl37_log_pf, dCl37_log_pf_dT9; + + // interpolating Cl37 partition function + get_partition_function_cached(Cl37, tfactors.T9, pf_cache, Cl37_log_pf, dCl37_log_pf_dT9); + + amrex::Real K40_log_pf, dK40_log_pf_dT9; + + // interpolating K40 partition function + get_partition_function_cached(K40, tfactors.T9, pf_cache, K40_log_pf, dK40_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + K40_log_pf - He4_log_pf - Cl37_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dK40_log_pf_dT9 - dHe4_log_pf_dT9 - dCl37_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 15.660774454398902 + -44.937942077946474 * tfactors.T9i + -0.86425 * tfactors.T913 + + 0.646211 * tfactors.T9 + -0.0583195 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 44.937942077946474 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.86425 * tfactors.T923i + + 0.646211 + (5.0/3.0) * -0.0583195 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl37_He4_to_p_Ar40_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cl37 + He4 --> p + Ar40 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ar40_log_pf, dAr40_log_pf_dT9; + + // interpolating Ar40 partition function + get_partition_function_cached(Ar40, tfactors.T9, pf_cache, Ar40_log_pf, dAr40_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl37_log_pf, dCl37_log_pf_dT9; + + // interpolating Cl37 partition function + get_partition_function_cached(Cl37, tfactors.T9, pf_cache, Cl37_log_pf, dCl37_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ar40_log_pf - He4_log_pf - Cl37_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dAr40_log_pf_dT9 - dHe4_log_pf_dT9 - dCl37_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 13.982166304352848 + -18.401344659211443 * tfactors.T9i + -29.0146 * tfactors.T913i + 15.2952 * tfactors.T913 + + -3.22171 * tfactors.T9 + 0.283382 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 18.401344659211443 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -29.0146 * tfactors.T943i + (1.0/3.0) * 15.2952 * tfactors.T923i + + -3.22171 + (5.0/3.0) * 0.283382 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar36_p_to_He4_Cl33_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar36 + p --> He4 + Cl33 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cl33_log_pf, dCl33_log_pf_dT9; + + // interpolating Cl33 partition function + get_partition_function_cached(Cl33, tfactors.T9, pf_cache, Cl33_log_pf, dCl33_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ar36_log_pf, dAr36_log_pf_dT9; + + // interpolating Ar36 partition function + get_partition_function_cached(Ar36, tfactors.T9, pf_cache, Ar36_log_pf, dAr36_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He4_log_pf + Cl33_log_pf - p_log_pf - Ar36_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCl33_log_pf_dT9 - dp_log_pf_dT9 - dAr36_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 54.783557788881225 + -50.64428487608636 * tfactors.T9i + -68.1442 * tfactors.T913i + 0.291238 * tfactors.T913 + + -0.791384 * tfactors.T9 + 0.0524823 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 50.64428487608636 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -68.1442 * tfactors.T943i + (1.0/3.0) * 0.291238 * tfactors.T923i + + -0.791384 + (5.0/3.0) * 0.0524823 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar36_He4_to_p_K39_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar36 + He4 --> p + K39 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real K39_log_pf, dK39_log_pf_dT9; + + // interpolating K39 partition function + get_partition_function_cached(K39, tfactors.T9, pf_cache, K39_log_pf, dK39_log_pf_dT9); + + amrex::Real Ar36_log_pf, dAr36_log_pf_dT9; + + // interpolating Ar36 partition function + get_partition_function_cached(Ar36, tfactors.T9, pf_cache, Ar36_log_pf, dAr36_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + K39_log_pf - He4_log_pf - Ar36_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dK39_log_pf_dT9 - dHe4_log_pf_dT9 - dAr36_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 20.654451232729432 + -14.951286608188834 * tfactors.T9i + -30.0732 * tfactors.T913i + 7.03263 * tfactors.T913 + + -1.10085 * tfactors.T9 + 0.133768 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 14.951286608188834 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -30.0732 * tfactors.T943i + (1.0/3.0) * 7.03263 * tfactors.T923i + + -1.10085 + (5.0/3.0) * 0.133768 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar37_n_to_He4_S34_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar37 + n --> He4 + S34 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ar37_log_pf, dAr37_log_pf_dT9; + + // interpolating Ar37 partition function + get_partition_function_cached(Ar37, tfactors.T9, pf_cache, Ar37_log_pf, dAr37_log_pf_dT9); + + amrex::Real S34_log_pf, dS34_log_pf_dT9; + + // interpolating S34 partition function + get_partition_function_cached(S34, tfactors.T9, pf_cache, S34_log_pf, dS34_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + S34_log_pf - n_log_pf - Ar37_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dS34_log_pf_dT9 - dn_log_pf_dT9 - dAr37_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from SM93 + ln_set_rate = 18.388903461056966 + 0.004902633333912831 * tfactors.T9i + -1.69894 * tfactors.T913 + + 0.371187 * tfactors.T9 + -0.0457242 * tfactors.T953 + 1.0 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = -0.004902633333912831 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.69894 * tfactors.T923i + + 0.371187 + (5.0/3.0) * -0.0457242 * tfactors.T923 + 1.0 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from SM93 + ln_set_rate = 18.388903461056966 + 0.004902633333912831 * tfactors.T9i + 0.522368 * tfactors.T913 + + -1.03944 * tfactors.T9 + 0.142735 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = -0.004902633333912831 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.522368 * tfactors.T923i + + -1.03944 + (5.0/3.0) * 0.142735 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar37_p_to_n_K37_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar37 + p --> n + K37 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real K37_log_pf, dK37_log_pf_dT9; + + // interpolating K37 partition function + get_partition_function_cached(K37, tfactors.T9, pf_cache, K37_log_pf, dK37_log_pf_dT9); + + amrex::Real Ar37_log_pf, dAr37_log_pf_dT9; + + // interpolating Ar37 partition function + get_partition_function_cached(Ar37, tfactors.T9, pf_cache, Ar37_log_pf, dAr37_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + K37_log_pf - p_log_pf - Ar37_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dK37_log_pf_dT9 - dp_log_pf_dT9 - dAr37_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 19.372828818986942 + -80.41730341854937 * tfactors.T9i + 0.399131 * tfactors.T913 + + 0.0819317 * tfactors.T9 + -0.0133489 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 80.41730341854937 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.399131 * tfactors.T923i + + 0.0819317 + (5.0/3.0) * -0.0133489 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar37_p_to_He4_Cl34_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar37 + p --> He4 + Cl34 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl34_log_pf, dCl34_log_pf_dT9; + + // interpolating Cl34 partition function + get_partition_function_cached(Cl34, tfactors.T9, pf_cache, Cl34_log_pf, dCl34_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ar37_log_pf, dAr37_log_pf_dT9; + + // interpolating Ar37 partition function + get_partition_function_cached(Ar37, tfactors.T9, pf_cache, Ar37_log_pf, dAr37_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Cl34_log_pf - p_log_pf - Ar37_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCl34_log_pf_dT9 - dp_log_pf_dT9 - dAr37_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 52.65061986402699 + -19.07242943961376 * tfactors.T9i + -68.2165 * tfactors.T913i + 0.330057 * tfactors.T913 + + -0.873334 * tfactors.T9 + 0.0592127 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 19.07242943961376 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -68.2165 * tfactors.T943i + (1.0/3.0) * 0.330057 * tfactors.T923i + + -0.873334 + (5.0/3.0) * 0.0592127 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar37_He4_to_n_Ca40_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar37 + He4 --> n + Ca40 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca40_log_pf, dCa40_log_pf_dT9; + + // interpolating Ca40 partition function + get_partition_function_cached(Ca40, tfactors.T9, pf_cache, Ca40_log_pf, dCa40_log_pf_dT9); + + amrex::Real Ar37_log_pf, dAr37_log_pf_dT9; + + // interpolating Ar37 partition function + get_partition_function_cached(Ar37, tfactors.T9, pf_cache, Ar37_log_pf, dAr37_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + Ca40_log_pf - He4_log_pf - Ar37_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCa40_log_pf_dT9 - dHe4_log_pf_dT9 - dAr37_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -12.07155724992046 + -20.28098689973163 * tfactors.T9i + 13.8882 * tfactors.T913 + + 0.260223 * tfactors.T9 + -0.108063 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 20.28098689973163 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 13.8882 * tfactors.T923i + + 0.260223 + (5.0/3.0) * -0.108063 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar37_He4_to_p_K40_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar37 + He4 --> p + K40 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ar37_log_pf, dAr37_log_pf_dT9; + + // interpolating Ar37 partition function + get_partition_function_cached(Ar37, tfactors.T9, pf_cache, Ar37_log_pf, dAr37_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real K40_log_pf, dK40_log_pf_dT9; + + // interpolating K40 partition function + get_partition_function_cached(K40, tfactors.T9, pf_cache, K40_log_pf, dK40_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + K40_log_pf - He4_log_pf - Ar37_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dK40_log_pf_dT9 - dHe4_log_pf_dT9 - dAr37_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 23.338632825395262 + -26.414612557694653 * tfactors.T9i + -30.0795 * tfactors.T913i + 8.28189 * tfactors.T913 + + -2.15178 * tfactors.T9 + 0.242064 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 26.414612557694653 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -30.0795 * tfactors.T943i + (1.0/3.0) * 8.28189 * tfactors.T923i + + -2.15178 + (5.0/3.0) * 0.242064 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar38_n_to_He4_S35_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar38 + n --> He4 + S35 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real S35_log_pf, dS35_log_pf_dT9; + + // interpolating S35 partition function + get_partition_function_cached(S35, tfactors.T9, pf_cache, S35_log_pf, dS35_log_pf_dT9); + + amrex::Real Ar38_log_pf, dAr38_log_pf_dT9; + + // interpolating Ar38 partition function + get_partition_function_cached(Ar38, tfactors.T9, pf_cache, Ar38_log_pf, dAr38_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He4_log_pf + S35_log_pf - n_log_pf - Ar38_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dS35_log_pf_dT9 - dn_log_pf_dT9 - dAr38_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 53.77682918444486 + -2.578730138910991 * tfactors.T9i + -65.58 * tfactors.T913i + 0.762185 * tfactors.T913 + + -0.938779 * tfactors.T9 + 0.0668864 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 2.578730138910991 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -65.58 * tfactors.T943i + (1.0/3.0) * 0.762185 * tfactors.T923i + + -0.938779 + (5.0/3.0) * 0.0668864 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar38_p_to_n_K38_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar38 + p --> n + K38 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ar38_log_pf, dAr38_log_pf_dT9; + + // interpolating Ar38 partition function + get_partition_function_cached(Ar38, tfactors.T9, pf_cache, Ar38_log_pf, dAr38_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real K38_log_pf, dK38_log_pf_dT9; + + // interpolating K38 partition function + get_partition_function_cached(K38, tfactors.T9, pf_cache, K38_log_pf, dK38_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + K38_log_pf - p_log_pf - Ar38_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dK38_log_pf_dT9 - dp_log_pf_dT9 - dAr38_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 21.550910762254393 + -77.70869284379052 * tfactors.T9i + -0.5015 * tfactors.T913 + + 0.324921 * tfactors.T9 + -0.0393691 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 77.70869284379052 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.5015 * tfactors.T923i + + 0.324921 + (5.0/3.0) * -0.0393691 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar38_p_to_He4_Cl35_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar38 + p --> He4 + Cl35 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ar38_log_pf, dAr38_log_pf_dT9; + + // interpolating Ar38 partition function + get_partition_function_cached(Ar38, tfactors.T9, pf_cache, Ar38_log_pf, dAr38_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cl35_log_pf, dCl35_log_pf_dT9; + + // interpolating Cl35 partition function + get_partition_function_cached(Cl35, tfactors.T9, pf_cache, Cl35_log_pf, dCl35_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Cl35_log_pf - p_log_pf - Ar38_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCl35_log_pf_dT9 - dp_log_pf_dT9 - dAr38_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 53.758798882415604 + -9.715822523380488 * tfactors.T9i + -68.2848 * tfactors.T913i + 2.5993 * tfactors.T913 + + -1.59144 * tfactors.T9 + 0.137745 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 9.715822523380488 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -68.2848 * tfactors.T943i + (1.0/3.0) * 2.5993 * tfactors.T923i + + -1.59144 + (5.0/3.0) * 0.137745 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar38_He4_to_n_Ca41_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar38 + He4 --> n + Ca41 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ar38_log_pf, dAr38_log_pf_dT9; + + // interpolating Ar38 partition function + get_partition_function_cached(Ar38, tfactors.T9, pf_cache, Ar38_log_pf, dAr38_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca41_log_pf, dCa41_log_pf_dT9; + + // interpolating Ca41 partition function + get_partition_function_cached(Ca41, tfactors.T9, pf_cache, Ca41_log_pf, dCa41_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ca41_log_pf - He4_log_pf - Ar38_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCa41_log_pf_dT9 - dHe4_log_pf_dT9 - dAr38_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ta18 + ln_set_rate = 17.79922036605897 + -60.61415107923059 * tfactors.T9i + -0.0142 * tfactors.T913i + -0.10052 * tfactors.T913 + + 0.27737 * tfactors.T9 + -0.00483 * tfactors.T953 + -0.2165 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 60.61415107923059 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.0142 * tfactors.T943i + (1.0/3.0) * -0.10052 * tfactors.T923i + + 0.27737 + (5.0/3.0) * -0.00483 * tfactors.T923 + -0.2165 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar38_He4_to_p_K41_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar38 + He4 --> p + K41 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real K41_log_pf, dK41_log_pf_dT9; + + // interpolating K41 partition function + get_partition_function_cached(K41, tfactors.T9, pf_cache, K41_log_pf, dK41_log_pf_dT9); + + amrex::Real Ar38_log_pf, dAr38_log_pf_dT9; + + // interpolating Ar38 partition function + get_partition_function_cached(Ar38, tfactors.T9, pf_cache, Ar38_log_pf, dAr38_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + K41_log_pf - He4_log_pf - Ar38_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dK41_log_pf_dT9 - dHe4_log_pf_dT9 - dAr38_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from tb18 + ln_set_rate = 64.54266301968593 + -47.32360269993487 * tfactors.T9i + 9.28681 * tfactors.T913i + -73.161 * tfactors.T913 + + 4.26053 * tfactors.T9 + -0.235892 * tfactors.T953 + 31.8226 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 47.32360269993487 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 9.28681 * tfactors.T943i + (1.0/3.0) * -73.161 * tfactors.T923i + + 4.26053 + (5.0/3.0) * -0.235892 * tfactors.T923 + 31.8226 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar39_p_to_n_K39_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar39 + p --> n + K39 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ar39_log_pf, dAr39_log_pf_dT9; + + // interpolating Ar39 partition function + get_partition_function_cached(Ar39, tfactors.T9, pf_cache, Ar39_log_pf, dAr39_log_pf_dT9); + + amrex::Real K39_log_pf, dK39_log_pf_dT9; + + // interpolating K39 partition function + get_partition_function_cached(K39, tfactors.T9, pf_cache, K39_log_pf, dK39_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + K39_log_pf - p_log_pf - Ar39_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dK39_log_pf_dT9 - dp_log_pf_dT9 - dAr39_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -15.900503571719225 + -2.519944736961254 * tfactors.T9i + 26.5209 * tfactors.T913 + + -3.63684 * tfactors.T9 + 0.276163 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 2.519944736961254 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 26.5209 * tfactors.T923i + + -3.63684 + (5.0/3.0) * 0.276163 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar39_He4_to_n_Ca42_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar39 + He4 --> n + Ca42 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ar39_log_pf, dAr39_log_pf_dT9; + + // interpolating Ar39 partition function + get_partition_function_cached(Ar39, tfactors.T9, pf_cache, Ar39_log_pf, dAr39_log_pf_dT9); + + amrex::Real Ca42_log_pf, dCa42_log_pf_dT9; + + // interpolating Ca42 partition function + get_partition_function_cached(Ca42, tfactors.T9, pf_cache, Ca42_log_pf, dCa42_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ca42_log_pf - He4_log_pf - Ar39_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCa42_log_pf_dT9 - dHe4_log_pf_dT9 - dAr39_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -91.85180725342173 + -3.958443054558232 * tfactors.T9i + 88.8565 * tfactors.T913 + + -12.9534 * tfactors.T9 + 0.93832 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 3.958443054558232 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 88.8565 * tfactors.T923i + + -12.9534 + (5.0/3.0) * 0.93832 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar40_p_to_n_K40_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar40 + p --> n + K40 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ar40_log_pf, dAr40_log_pf_dT9; + + // interpolating Ar40 partition function + get_partition_function_cached(Ar40, tfactors.T9, pf_cache, Ar40_log_pf, dAr40_log_pf_dT9); + + amrex::Real K40_log_pf, dK40_log_pf_dT9; + + // interpolating K40 partition function + get_partition_function_cached(K40, tfactors.T9, pf_cache, K40_log_pf, dK40_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + K40_log_pf - p_log_pf - Ar40_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dK40_log_pf_dT9 - dp_log_pf_dT9 - dAr40_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 16.332408150046053 + -26.53659741873503 * tfactors.T9i + -0.499903 * tfactors.T913 + + 0.849663 * tfactors.T9 + -0.0834774 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 26.53659741873503 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.499903 * tfactors.T923i + + 0.849663 + (5.0/3.0) * -0.0834774 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar40_He4_to_n_Ca43_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ar40 + He4 --> n + Ca43 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ar40_log_pf, dAr40_log_pf_dT9; + + // interpolating Ar40 partition function + get_partition_function_cached(Ar40, tfactors.T9, pf_cache, Ar40_log_pf, dAr40_log_pf_dT9); + + amrex::Real Ca43_log_pf, dCa43_log_pf_dT9; + + // interpolating Ca43 partition function + get_partition_function_cached(Ca43, tfactors.T9, pf_cache, Ca43_log_pf, dCa43_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ca43_log_pf - He4_log_pf - Ar40_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCa43_log_pf_dT9 - dHe4_log_pf_dT9 - dAr40_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 1.1474293535213755 + -26.428503583711638 * tfactors.T9i + 4.3289 * tfactors.T913 + + 1.46375 * tfactors.T9 + -0.180625 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 26.428503583711638 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 4.3289 * tfactors.T923i + + 1.46375 + (5.0/3.0) * -0.180625 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K39_He4_to_p_Ca42_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // K39 + He4 --> p + Ca42 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real K39_log_pf, dK39_log_pf_dT9; + + // interpolating K39 partition function + get_partition_function_cached(K39, tfactors.T9, pf_cache, K39_log_pf, dK39_log_pf_dT9); + + amrex::Real Ca42_log_pf, dCa42_log_pf_dT9; + + // interpolating Ca42 partition function + get_partition_function_cached(Ca42, tfactors.T9, pf_cache, Ca42_log_pf, dCa42_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Ca42_log_pf - He4_log_pf - K39_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCa42_log_pf_dT9 - dHe4_log_pf_dT9 - dK39_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -80.85570368170251 + -1.4384983175969779 * tfactors.T9i + -31.1381 * tfactors.T913i + 117.868 * tfactors.T913 + + -27.0455 * tfactors.T9 + 2.75661 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 1.4384983175969779 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.1381 * tfactors.T943i + (1.0/3.0) * 117.868 * tfactors.T923i + + -27.0455 + (5.0/3.0) * 2.75661 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K40_He4_to_n_Sc43_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // K40 + He4 --> n + Sc43 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc43_log_pf, dSc43_log_pf_dT9; + + // interpolating Sc43 partition function + get_partition_function_cached(Sc43, tfactors.T9, pf_cache, Sc43_log_pf, dSc43_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real K40_log_pf, dK40_log_pf_dT9; + + // interpolating K40 partition function + get_partition_function_cached(K40, tfactors.T9, pf_cache, K40_log_pf, dK40_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Sc43_log_pf - He4_log_pf - K40_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dSc43_log_pf_dT9 - dHe4_log_pf_dT9 - dK40_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 8.96673748256842 + -34.74163223041826 * tfactors.T9i + -0.653091 * tfactors.T913 + + 1.79632 * tfactors.T9 + -0.19216 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 34.74163223041826 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.653091 * tfactors.T923i + + 1.79632 + (5.0/3.0) * -0.19216 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca40_n_to_p_K40_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca40 + n --> p + K40 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca40_log_pf, dCa40_log_pf_dT9; + + // interpolating Ca40 partition function + get_partition_function_cached(Ca40, tfactors.T9, pf_cache, Ca40_log_pf, dCa40_log_pf_dT9); + + amrex::Real K40_log_pf, dK40_log_pf_dT9; + + // interpolating K40 partition function + get_partition_function_cached(K40, tfactors.T9, pf_cache, K40_log_pf, dK40_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + K40_log_pf - n_log_pf - Ca40_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dK40_log_pf_dT9 - dn_log_pf_dT9 - dCa40_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 34.32643007531572 + -6.133625657963026 * tfactors.T9i + -30.0795 * tfactors.T913i + 2.76095 * tfactors.T913 + + -1.51745 * tfactors.T9 + 0.191236 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 6.133625657963026 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -30.0795 * tfactors.T943i + (1.0/3.0) * 2.76095 * tfactors.T923i + + -1.51745 + (5.0/3.0) * 0.191236 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca40_p_to_He4_K37_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca40 + p --> He4 + K37 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real K37_log_pf, dK37_log_pf_dT9; + + // interpolating K37 partition function + get_partition_function_cached(K37, tfactors.T9, pf_cache, K37_log_pf, dK37_log_pf_dT9); + + amrex::Real Ca40_log_pf, dCa40_log_pf_dT9; + + // interpolating Ca40 partition function + get_partition_function_cached(Ca40, tfactors.T9, pf_cache, Ca40_log_pf, dCa40_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + K37_log_pf - p_log_pf - Ca40_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dK37_log_pf_dT9 - dp_log_pf_dT9 - dCa40_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 56.9349260689074 + -60.13631651881774 * tfactors.T9i + -73.6776 * tfactors.T913i + 0.493294 * tfactors.T913 + + -0.902307 * tfactors.T9 + 0.0641391 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 60.13631651881774 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -73.6776 * tfactors.T943i + (1.0/3.0) * 0.493294 * tfactors.T923i + + -0.902307 + (5.0/3.0) * 0.0641391 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca40_He4_to_p_Sc43_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca40 + He4 --> p + Sc43 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca40_log_pf, dCa40_log_pf_dT9; + + // interpolating Ca40 partition function + get_partition_function_cached(Ca40, tfactors.T9, pf_cache, Ca40_log_pf, dCa40_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc43_log_pf, dSc43_log_pf_dT9; + + // interpolating Sc43 partition function + get_partition_function_cached(Sc43, tfactors.T9, pf_cache, Sc43_log_pf, dSc43_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Sc43_log_pf - He4_log_pf - Ca40_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dSc43_log_pf_dT9 - dHe4_log_pf_dT9 - dCa40_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 35.67546755788414 + -40.87525788838128 * tfactors.T9i + -32.1734 * tfactors.T913i + 0.0296879 * tfactors.T913 + + -0.95232 * tfactors.T9 + 0.129022 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 40.87525788838128 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -32.1734 * tfactors.T943i + (1.0/3.0) * 0.0296879 * tfactors.T923i + + -0.95232 + (5.0/3.0) * 0.129022 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca41_n_to_p_K41_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca41 + n --> p + K41 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real K41_log_pf, dK41_log_pf_dT9; + + // interpolating K41 partition function + get_partition_function_cached(K41, tfactors.T9, pf_cache, K41_log_pf, dK41_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca41_log_pf, dCa41_log_pf_dT9; + + // interpolating Ca41 partition function + get_partition_function_cached(Ca41, tfactors.T9, pf_cache, Ca41_log_pf, dCa41_log_pf_dT9); + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + K41_log_pf - n_log_pf - Ca41_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dK41_log_pf_dT9 - dn_log_pf_dT9 - dCa41_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from SM86 + ln_set_rate = 8.002802653626954 + -0.0001222271042848888 * tfactors.T9i + 6.52588 * tfactors.T913 + + -1.55272 * tfactors.T9 + 0.150334 * tfactors.T953 + 1.0 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 0.0001222271042848888 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 6.52588 * tfactors.T923i + + -1.55272 + (5.0/3.0) * 0.150334 * tfactors.T923 + 1.0 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from SM86 + ln_set_rate = 15.283142653626955 + -0.0001222271042848888 * tfactors.T9i + -2.82146 * tfactors.T913 + + 1.71734 * tfactors.T9 + -0.187775 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 0.0001222271042848888 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.82146 * tfactors.T923i + + 1.71734 + (5.0/3.0) * -0.187775 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca41_p_to_He4_K38_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca41 + p --> He4 + K38 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca41_log_pf, dCa41_log_pf_dT9; + + // interpolating Ca41 partition function + get_partition_function_cached(Ca41, tfactors.T9, pf_cache, Ca41_log_pf, dCa41_log_pf_dT9); + + amrex::Real K38_log_pf, dK38_log_pf_dT9; + + // interpolating K38 partition function + get_partition_function_cached(K38, tfactors.T9, pf_cache, K38_log_pf, dK38_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + K38_log_pf - p_log_pf - Ca41_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dK38_log_pf_dT9 - dp_log_pf_dT9 - dCa41_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 55.541590396195424 + -17.09455537095993 * tfactors.T9i + -73.7407 * tfactors.T913i + 0.600725 * tfactors.T913 + + -0.957475 * tfactors.T9 + 0.0689286 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 17.09455537095993 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -73.7407 * tfactors.T943i + (1.0/3.0) * 0.600725 * tfactors.T923i + + -0.957475 + (5.0/3.0) * 0.0689286 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca41_He4_to_n_Ti44_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca41 + He4 --> n + Ti44 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca41_log_pf, dCa41_log_pf_dT9; + + // interpolating Ca41 partition function + get_partition_function_cached(Ca41, tfactors.T9, pf_cache, Ca41_log_pf, dCa41_log_pf_dT9); + + amrex::Real Ti44_log_pf, dTi44_log_pf_dT9; + + // interpolating Ti44 partition function + get_partition_function_cached(Ti44, tfactors.T9, pf_cache, Ti44_log_pf, dTi44_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ti44_log_pf - He4_log_pf - Ca41_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dTi44_log_pf_dT9 - dHe4_log_pf_dT9 - dCa41_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 4.171392712401095 + -37.54888120920302 * tfactors.T9i + 2.68094 * tfactors.T913 + + 1.34285 * tfactors.T9 + -0.18134 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 37.54888120920302 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.68094 * tfactors.T923i + + 1.34285 + (5.0/3.0) * -0.18134 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca41_He4_to_p_Sc44_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca41 + He4 --> p + Sc44 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc44_log_pf, dSc44_log_pf_dT9; + + // interpolating Sc44 partition function + get_partition_function_cached(Sc44, tfactors.T9, pf_cache, Sc44_log_pf, dSc44_log_pf_dT9); + + amrex::Real Ca41_log_pf, dCa41_log_pf_dT9; + + // interpolating Ca41 partition function + get_partition_function_cached(Ca41, tfactors.T9, pf_cache, Ca41_log_pf, dCa41_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Sc44_log_pf - He4_log_pf - Ca41_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dSc44_log_pf_dT9 - dHe4_log_pf_dT9 - dCa41_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 17.36948175952309 + -25.367072706793564 * tfactors.T9i + -32.179 * tfactors.T913i + 13.8907 * tfactors.T913 + + -3.30408 * tfactors.T9 + 0.332186 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 25.367072706793564 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -32.179 * tfactors.T943i + (1.0/3.0) * 13.8907 * tfactors.T923i + + -3.30408 + (5.0/3.0) * 0.332186 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca42_He4_to_n_Ti45_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca42 + He4 --> n + Ti45 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca42_log_pf, dCa42_log_pf_dT9; + + // interpolating Ca42 partition function + get_partition_function_cached(Ca42, tfactors.T9, pf_cache, Ca42_log_pf, dCa42_log_pf_dT9); + + amrex::Real Ti45_log_pf, dTi45_log_pf_dT9; + + // interpolating Ti45 partition function + get_partition_function_cached(Ti45, tfactors.T9, pf_cache, Ti45_log_pf, dTi45_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ti45_log_pf - He4_log_pf - Ca42_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dTi45_log_pf_dT9 - dHe4_log_pf_dT9 - dCa42_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 17.258015692309172 + -60.15076906423192 * tfactors.T9i + -1.31041 * tfactors.T913 + + 0.516347 * tfactors.T9 + -0.0189198 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 60.15076906423192 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.31041 * tfactors.T923i + + 0.516347 + (5.0/3.0) * -0.0189198 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca42_He4_to_p_Sc45_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca42 + He4 --> p + Sc45 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca42_log_pf, dCa42_log_pf_dT9; + + // interpolating Ca42 partition function + get_partition_function_cached(Ca42, tfactors.T9, pf_cache, Ca42_log_pf, dCa42_log_pf_dT9); + + amrex::Real Sc45_log_pf, dSc45_log_pf_dT9; + + // interpolating Sc45 partition function + get_partition_function_cached(Sc45, tfactors.T9, pf_cache, Sc45_log_pf, dSc45_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Sc45_log_pf - He4_log_pf - Ca42_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dSc45_log_pf_dT9 - dHe4_log_pf_dT9 - dCa42_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 18.642910054527462 + -27.143492340936394 * tfactors.T9i + -32.1843 * tfactors.T913i + 14.0733 * tfactors.T913 + + -3.38786 * tfactors.T9 + 0.349494 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 27.143492340936394 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -32.1843 * tfactors.T943i + (1.0/3.0) * 14.0733 * tfactors.T923i + + -3.38786 + (5.0/3.0) * 0.349494 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca43_p_to_n_Sc43_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca43 + p --> n + Sc43 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc43_log_pf, dSc43_log_pf_dT9; + + // interpolating Sc43 partition function + get_partition_function_cached(Sc43, tfactors.T9, pf_cache, Sc43_log_pf, dSc43_log_pf_dT9); + + amrex::Real Ca43_log_pf, dCa43_log_pf_dT9; + + // interpolating Ca43 partition function + get_partition_function_cached(Ca43, tfactors.T9, pf_cache, Ca43_log_pf, dCa43_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + Sc43_log_pf - p_log_pf - Ca43_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dSc43_log_pf_dT9 - dp_log_pf_dT9 - dCa43_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 19.455721279093098 + -34.84972606544165 * tfactors.T9i + -0.494422 * tfactors.T913 + + 0.261414 * tfactors.T9 + -0.0285528 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 34.84972606544165 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.494422 * tfactors.T923i + + 0.261414 + (5.0/3.0) * -0.0285528 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca43_p_to_He4_K40_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca43 + p --> He4 + K40 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca43_log_pf, dCa43_log_pf_dT9; + + // interpolating Ca43 partition function + get_partition_function_cached(Ca43, tfactors.T9, pf_cache, Ca43_log_pf, dCa43_log_pf_dT9); + + amrex::Real K40_log_pf, dK40_log_pf_dT9; + + // interpolating K40 partition function + get_partition_function_cached(K40, tfactors.T9, pf_cache, K40_log_pf, dK40_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + K40_log_pf - p_log_pf - Ca43_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dK40_log_pf_dT9 - dp_log_pf_dT9 - dCa43_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 44.68768379652468 + -0.10809383502339066 * tfactors.T9i + -73.858 * tfactors.T913i + 16.1645 * tfactors.T913 + + -5.93343 * tfactors.T9 + 0.650563 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 0.10809383502339066 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -73.858 * tfactors.T943i + (1.0/3.0) * 16.1645 * tfactors.T923i + + -5.93343 + (5.0/3.0) * 0.650563 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca43_He4_to_p_Sc46_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca43 + He4 --> p + Sc46 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca43_log_pf, dCa43_log_pf_dT9; + + // interpolating Ca43 partition function + get_partition_function_cached(Ca43, tfactors.T9, pf_cache, Ca43_log_pf, dCa43_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc46_log_pf, dSc46_log_pf_dT9; + + // interpolating Sc46 partition function + get_partition_function_cached(Sc46, tfactors.T9, pf_cache, Sc46_log_pf, dSc46_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Sc46_log_pf - He4_log_pf - Ca43_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dSc46_log_pf_dT9 - dHe4_log_pf_dT9 - dCa43_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 69.48777122244806 + -22.806290601375157 * tfactors.T9i + 189.856 * tfactors.T913i + -278.908 * tfactors.T913 + + 13.9142 * tfactors.T9 + -0.770736 * tfactors.T953 + 153.141 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 22.806290601375157 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 189.856 * tfactors.T943i + (1.0/3.0) * -278.908 * tfactors.T923i + + 13.9142 + (5.0/3.0) * -0.770736 * tfactors.T923 + 153.141 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca44_p_to_n_Sc44_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca44 + p --> n + Sc44 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc44_log_pf, dSc44_log_pf_dT9; + + // interpolating Sc44 partition function + get_partition_function_cached(Sc44, tfactors.T9, pf_cache, Sc44_log_pf, dSc44_log_pf_dT9); + + amrex::Real Ca44_log_pf, dCa44_log_pf_dT9; + + // interpolating Ca44 partition function + get_partition_function_cached(Ca44, tfactors.T9, pf_cache, Ca44_log_pf, dCa44_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Sc44_log_pf - p_log_pf - Ca44_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dSc44_log_pf_dT9 - dp_log_pf_dT9 - dCa44_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 22.515043470993817 + -51.46658369921371 * tfactors.T9i + -1.95318 * tfactors.T913 + + 0.326277 * tfactors.T9 + -0.0205095 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 51.46658369921371 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.95318 * tfactors.T923i + + 0.326277 + (5.0/3.0) * -0.0205095 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca44_p_to_He4_K41_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca44 + p --> He4 + K41 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real K41_log_pf, dK41_log_pf_dT9; + + // interpolating K41 partition function + get_partition_function_cached(K41, tfactors.T9, pf_cache, K41_log_pf, dK41_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca44_log_pf, dCa44_log_pf_dT9; + + // interpolating Ca44 partition function + get_partition_function_cached(Ca44, tfactors.T9, pf_cache, Ca44_log_pf, dCa44_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He4_log_pf + K41_log_pf - p_log_pf - Ca44_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dK41_log_pf_dT9 - dp_log_pf_dT9 - dCa44_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from SM91n + ln_set_rate = 58.149004365097674 + -12.127833219531635 * tfactors.T9i + -73.9 * tfactors.T913i + -0.410794 * tfactors.T913 + + 0.365336 * tfactors.T9 + -0.607187 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 12.127833219531635 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -73.9 * tfactors.T943i + (1.0/3.0) * -0.410794 * tfactors.T923i + + 0.365336 + (5.0/3.0) * -0.607187 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from SM91n + ln_set_rate = 51.43310436509768 + -12.127833219531635 * tfactors.T9i + -73.9 * tfactors.T913i + 5.43181 * tfactors.T913 + + -2.12763 * tfactors.T9 + 0.134461 * tfactors.T953 + 0.333333 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 12.127833219531635 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -73.9 * tfactors.T943i + (1.0/3.0) * 5.43181 * tfactors.T923i + + -2.12763 + (5.0/3.0) * 0.134461 * tfactors.T923 + 0.333333 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca44_He4_to_n_Ti47_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca44 + He4 --> n + Ti47 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti47_log_pf, dTi47_log_pf_dT9; + + // interpolating Ti47 partition function + get_partition_function_cached(Ti47, tfactors.T9, pf_cache, Ti47_log_pf, dTi47_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca44_log_pf, dCa44_log_pf_dT9; + + // interpolating Ca44 partition function + get_partition_function_cached(Ca44, tfactors.T9, pf_cache, Ca44_log_pf, dCa44_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ti47_log_pf - He4_log_pf - Ca44_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dTi47_log_pf_dT9 - dHe4_log_pf_dT9 - dCa44_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -3.4226421364054067 + -25.26874804263629 * tfactors.T9i + 4.6504 * tfactors.T913 + + 2.25932 * tfactors.T9 + -0.286843 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 25.26874804263629 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 4.6504 * tfactors.T923i + + 2.25932 + (5.0/3.0) * -0.286843 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca44_He4_to_p_Sc47_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca44 + He4 --> p + Sc47 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Sc47_log_pf, dSc47_log_pf_dT9; + + // interpolating Sc47 partition function + get_partition_function_cached(Sc47, tfactors.T9, pf_cache, Sc47_log_pf, dSc47_log_pf_dT9); + + amrex::Real Ca44_log_pf, dCa44_log_pf_dT9; + + // interpolating Ca44 partition function + get_partition_function_cached(Ca44, tfactors.T9, pf_cache, Ca44_log_pf, dCa44_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Sc47_log_pf - He4_log_pf - Ca44_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dSc47_log_pf_dT9 - dHe4_log_pf_dT9 - dCa44_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 75.26744173960988 + -28.95410821860744 * tfactors.T9i + 224.282 * tfactors.T913i + -318.978 * tfactors.T913 + + 15.9466 * tfactors.T9 + -0.877308 * tfactors.T953 + 174.938 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 28.95410821860744 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 224.282 * tfactors.T943i + (1.0/3.0) * -318.978 * tfactors.T923i + + 15.9466 + (5.0/3.0) * -0.877308 * tfactors.T923 + 174.938 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca45_p_to_n_Sc45_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca45 + p --> n + Sc45 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca45_log_pf, dCa45_log_pf_dT9; + + // interpolating Ca45 partition function + get_partition_function_cached(Ca45, tfactors.T9, pf_cache, Ca45_log_pf, dCa45_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc45_log_pf, dSc45_log_pf_dT9; + + // interpolating Sc45 partition function + get_partition_function_cached(Sc45, tfactors.T9, pf_cache, Sc45_log_pf, dSc45_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Sc45_log_pf - p_log_pf - Ca45_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dSc45_log_pf_dT9 - dp_log_pf_dT9 - dCa45_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -3.9781029881273406 + -6.060425193227666 * tfactors.T9i + 14.7265 * tfactors.T913 + + -1.41914 * tfactors.T9 + 0.0785177 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 6.060425193227666 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 14.7265 * tfactors.T923i + + -1.41914 + (5.0/3.0) * 0.0785177 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca45_He4_to_p_Sc48_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca45 + He4 --> p + Sc48 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Sc48_log_pf, dSc48_log_pf_dT9; + + // interpolating Sc48 partition function + get_partition_function_cached(Sc48, tfactors.T9, pf_cache, Sc48_log_pf, dSc48_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca45_log_pf, dCa45_log_pf_dT9; + + // interpolating Ca45 partition function + get_partition_function_cached(Ca45, tfactors.T9, pf_cache, Ca45_log_pf, dCa45_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Sc48_log_pf - He4_log_pf - Ca45_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dSc48_log_pf_dT9 - dHe4_log_pf_dT9 - dCa45_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 71.93652682453123 + -19.473226641863384 * tfactors.T9i + 239.338 * tfactors.T913i + -335.863 * tfactors.T913 + + 14.1283 * tfactors.T9 + -0.596544 * tfactors.T953 + 190.967 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 19.473226641863384 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 239.338 * tfactors.T943i + (1.0/3.0) * -335.863 * tfactors.T923i + + 14.1283 + (5.0/3.0) * -0.596544 * tfactors.T923 + 190.967 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca46_p_to_n_Sc46_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca46 + p --> n + Sc46 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca46_log_pf, dCa46_log_pf_dT9; + + // interpolating Ca46 partition function + get_partition_function_cached(Ca46, tfactors.T9, pf_cache, Ca46_log_pf, dCa46_log_pf_dT9); + + amrex::Real Sc46_log_pf, dSc46_log_pf_dT9; + + // interpolating Sc46 partition function + get_partition_function_cached(Sc46, tfactors.T9, pf_cache, Sc46_log_pf, dSc46_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Sc46_log_pf - p_log_pf - Ca46_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dSc46_log_pf_dT9 - dp_log_pf_dT9 - dCa46_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 76.36938759593706 + -25.70225932815265 * tfactors.T9i + 65.2318 * tfactors.T913i + -132.177 * tfactors.T913 + + 8.05925 * tfactors.T9 + -0.425861 * tfactors.T953 + 59.0907 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 25.70225932815265 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 65.2318 * tfactors.T943i + (1.0/3.0) * -132.177 * tfactors.T923i + + 8.05925 + (5.0/3.0) * -0.425861 * tfactors.T923 + 59.0907 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca46_He4_to_n_Ti49_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca46 + He4 --> n + Ti49 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti49_log_pf, dTi49_log_pf_dT9; + + // interpolating Ti49 partition function + get_partition_function_cached(Ti49, tfactors.T9, pf_cache, Ti49_log_pf, dTi49_log_pf_dT9); + + amrex::Real Ca46_log_pf, dCa46_log_pf_dT9; + + // interpolating Ca46 partition function + get_partition_function_cached(Ca46, tfactors.T9, pf_cache, Ca46_log_pf, dCa46_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ti49_log_pf - He4_log_pf - Ca46_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dTi49_log_pf_dT9 - dHe4_log_pf_dT9 - dCa46_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -105.96728515140423 + -2.5761128558728257 * tfactors.T9i + 100.098 * tfactors.T913 + + -14.6121 * tfactors.T9 + 1.09235 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 2.5761128558728257 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 100.098 * tfactors.T923i + + -14.6121 + (5.0/3.0) * 1.09235 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca46_He4_to_p_Sc49_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca46 + He4 --> p + Sc49 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ca46_log_pf, dCa46_log_pf_dT9; + + // interpolating Ca46 partition function + get_partition_function_cached(Ca46, tfactors.T9, pf_cache, Ca46_log_pf, dCa46_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc49_log_pf, dSc49_log_pf_dT9; + + // interpolating Sc49 partition function + get_partition_function_cached(Sc49, tfactors.T9, pf_cache, Sc49_log_pf, dSc49_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Sc49_log_pf - He4_log_pf - Ca46_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dSc49_log_pf_dT9 - dHe4_log_pf_dT9 - dCa46_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 74.04534205670913 + -22.392232016521145 * tfactors.T9i + 218.203 * tfactors.T913i + -316.114 * tfactors.T913 + + 14.9186 * tfactors.T9 + -0.720017 * tfactors.T953 + 174.788 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 22.392232016521145 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 218.203 * tfactors.T943i + (1.0/3.0) * -316.114 * tfactors.T923i + + 14.9186 + (5.0/3.0) * -0.720017 * tfactors.T923 + 174.788 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca48_p_to_n_Sc48_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca48 + p --> n + Sc48 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc48_log_pf, dSc48_log_pf_dT9; + + // interpolating Sc48 partition function + get_partition_function_cached(Sc48, tfactors.T9, pf_cache, Sc48_log_pf, dSc48_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca48_log_pf, dCa48_log_pf_dT9; + + // interpolating Ca48 partition function + get_partition_function_cached(Ca48, tfactors.T9, pf_cache, Ca48_log_pf, dCa48_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Sc48_log_pf - p_log_pf - Ca48_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dSc48_log_pf_dT9 - dp_log_pf_dT9 - dCa48_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 196.24101627439336 + -7.0409980043542335 * tfactors.T9i + 149.725 * tfactors.T913i + -359.287 * tfactors.T913 + + 24.8127 * tfactors.T9 + -1.57647 * tfactors.T953 + 151.916 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 7.0409980043542335 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 149.725 * tfactors.T943i + (1.0/3.0) * -359.287 * tfactors.T923i + + 24.8127 + (5.0/3.0) * -1.57647 * tfactors.T923 + 151.916 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca48_He4_to_n_Ti51_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ca48 + He4 --> n + Ti51 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca48_log_pf, dCa48_log_pf_dT9; + + // interpolating Ca48 partition function + get_partition_function_cached(Ca48, tfactors.T9, pf_cache, Ca48_log_pf, dCa48_log_pf_dT9); + + amrex::Real Ti51_log_pf, dTi51_log_pf_dT9; + + // interpolating Ti51 partition function + get_partition_function_cached(Ti51, tfactors.T9, pf_cache, Ti51_log_pf, dTi51_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ti51_log_pf - He4_log_pf - Ca48_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dTi51_log_pf_dT9 - dHe4_log_pf_dT9 - dCa48_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 72.56233485220005 + -14.020759389775685 * tfactors.T9i + 343.859 * tfactors.T913i + -441.137 * tfactors.T913 + + 18.781 * tfactors.T9 + -0.911515 * tfactors.T953 + 254.789 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 14.020759389775685 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 343.859 * tfactors.T943i + (1.0/3.0) * -441.137 * tfactors.T923i + + 18.781 + (5.0/3.0) * -0.911515 * tfactors.T923 + 254.789 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc43_He4_to_n_V46_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc43 + He4 --> n + V46 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real V46_log_pf, dV46_log_pf_dT9; + + // interpolating V46 partition function + get_partition_function_cached(V46, tfactors.T9, pf_cache, V46_log_pf, dV46_log_pf_dT9); + + amrex::Real Sc43_log_pf, dSc43_log_pf_dT9; + + // interpolating Sc43 partition function + get_partition_function_cached(Sc43, tfactors.T9, pf_cache, Sc43_log_pf, dSc43_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + V46_log_pf - He4_log_pf - Sc43_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dV46_log_pf_dT9 - dHe4_log_pf_dT9 - dSc43_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 4.1798140834298225 + -55.22128581134827 * tfactors.T9i + 6.99126 * tfactors.T913 + + -0.552826 * tfactors.T9 + 0.0272052 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 55.22128581134827 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 6.99126 * tfactors.T923i + + -0.552826 + (5.0/3.0) * 0.0272052 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc44_n_to_He4_K41_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc44 + n --> He4 + K41 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real K41_log_pf, dK41_log_pf_dT9; + + // interpolating K41 partition function + get_partition_function_cached(K41, tfactors.T9, pf_cache, K41_log_pf, dK41_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc44_log_pf, dSc44_log_pf_dT9; + + // interpolating Sc44 partition function + get_partition_function_cached(Sc44, tfactors.T9, pf_cache, Sc44_log_pf, dSc44_log_pf_dT9); + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He4_log_pf + K41_log_pf - n_log_pf - Sc44_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dK41_log_pf_dT9 - dn_log_pf_dT9 - dSc44_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from SM91 + ln_set_rate = 13.860960894103863 + -0.0005495203179251007 * tfactors.T9i + -7.79828 * tfactors.T913 + + 4.55188 * tfactors.T9 + -0.667478 * tfactors.T953 + 1.0 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 0.0005495203179251007 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -7.79828 * tfactors.T923i + + 4.55188 + (5.0/3.0) * -0.667478 * tfactors.T923 + 1.0 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from SM91 + ln_set_rate = 13.453960894103863 + -0.0005495203179251007 * tfactors.T9i + -2.89121 * tfactors.T913 + + 2.26347 * tfactors.T9 + -0.251579 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 0.0005495203179251007 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.89121 * tfactors.T923i + + 2.26347 + (5.0/3.0) * -0.251579 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc44_p_to_n_Ti44_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc44 + p --> n + Ti44 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc44_log_pf, dSc44_log_pf_dT9; + + // interpolating Sc44 partition function + get_partition_function_cached(Sc44, tfactors.T9, pf_cache, Sc44_log_pf, dSc44_log_pf_dT9); + + amrex::Real Ti44_log_pf, dTi44_log_pf_dT9; + + // interpolating Ti44 partition function + get_partition_function_cached(Ti44, tfactors.T9, pf_cache, Ti44_log_pf, dTi44_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ti44_log_pf - p_log_pf - Sc44_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dTi44_log_pf_dT9 - dp_log_pf_dT9 - dSc44_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 8.681560952878003 + -12.181808502409453 * tfactors.T9i + 4.3491 * tfactors.T913 + + 0.421585 * tfactors.T9 + -0.0855256 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 12.181808502409453 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 4.3491 * tfactors.T923i + + 0.421585 + (5.0/3.0) * -0.0855256 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc44_He4_to_n_V47_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc44 + He4 --> n + V47 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc44_log_pf, dSc44_log_pf_dT9; + + // interpolating Sc44 partition function + get_partition_function_cached(Sc44, tfactors.T9, pf_cache, Sc44_log_pf, dSc44_log_pf_dT9); + + amrex::Real V47_log_pf, dV47_log_pf_dT9; + + // interpolating V47 partition function + get_partition_function_cached(V47, tfactors.T9, pf_cache, V47_log_pf, dV47_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + V47_log_pf - He4_log_pf - Sc44_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dV47_log_pf_dT9 - dHe4_log_pf_dT9 - dSc44_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -35.93225066559727 + -16.888429235965216 * tfactors.T9i + 31.743 * tfactors.T913 + + -1.66241 * tfactors.T9 + -0.0278854 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 16.888429235965216 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 31.743 * tfactors.T923i + + -1.66241 + (5.0/3.0) * -0.0278854 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc45_p_to_n_Ti45_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc45 + p --> n + Ti45 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc45_log_pf, dSc45_log_pf_dT9; + + // interpolating Sc45 partition function + get_partition_function_cached(Sc45, tfactors.T9, pf_cache, Sc45_log_pf, dSc45_log_pf_dT9); + + amrex::Real Ti45_log_pf, dTi45_log_pf_dT9; + + // interpolating Ti45 partition function + get_partition_function_cached(Ti45, tfactors.T9, pf_cache, Ti45_log_pf, dTi45_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ti45_log_pf - p_log_pf - Sc45_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dTi45_log_pf_dT9 - dp_log_pf_dT9 - dSc45_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 20.24650563778171 + -33.00727672329552 * tfactors.T9i + -1.6182 * tfactors.T913 + + 0.577281 * tfactors.T9 + -0.0582774 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 33.00727672329552 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.6182 * tfactors.T923i + + 0.577281 + (5.0/3.0) * -0.0582774 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc45_He4_to_n_V48_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc45 + He4 --> n + V48 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc45_log_pf, dSc45_log_pf_dT9; + + // interpolating Sc45 partition function + get_partition_function_cached(Sc45, tfactors.T9, pf_cache, Sc45_log_pf, dSc45_log_pf_dT9); + + amrex::Real V48_log_pf, dV48_log_pf_dT9; + + // interpolating V48 partition function + get_partition_function_cached(V48, tfactors.T9, pf_cache, V48_log_pf, dV48_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + V48_log_pf - He4_log_pf - Sc45_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dV48_log_pf_dT9 - dHe4_log_pf_dT9 - dSc45_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -7.027318432757805 + -26.002269633031425 * tfactors.T9i + 8.18067 * tfactors.T913 + + 1.50465 * tfactors.T9 + -0.224564 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 26.002269633031425 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 8.18067 * tfactors.T923i + + 1.50465 + (5.0/3.0) * -0.224564 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc47_n_to_p_Ca47_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc47 + n --> p + Ca47 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc47_log_pf, dSc47_log_pf_dT9; + + // interpolating Sc47 partition function + get_partition_function_cached(Sc47, tfactors.T9, pf_cache, Sc47_log_pf, dSc47_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca47_log_pf, dCa47_log_pf_dT9; + + // interpolating Ca47 partition function + get_partition_function_cached(Ca47, tfactors.T9, pf_cache, Ca47_log_pf, dCa47_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ca47_log_pf - n_log_pf - Sc47_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCa47_log_pf_dT9 - dn_log_pf_dT9 - dSc47_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 34.83213132867623 + -14.038600193289332 * tfactors.T9i + -31.164 * tfactors.T913i + -0.314533 * tfactors.T913 + + -0.0979736 * tfactors.T9 + 0.00385901 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 14.038600193289332 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.164 * tfactors.T943i + (1.0/3.0) * -0.314533 * tfactors.T923i + + -0.0979736 + (5.0/3.0) * 0.00385901 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc47_p_to_n_Ti47_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc47 + p --> n + Ti47 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti47_log_pf, dTi47_log_pf_dT9; + + // interpolating Ti47 partition function + get_partition_function_cached(Ti47, tfactors.T9, pf_cache, Ti47_log_pf, dTi47_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc47_log_pf, dSc47_log_pf_dT9; + + // interpolating Sc47 partition function + get_partition_function_cached(Sc47, tfactors.T9, pf_cache, Sc47_log_pf, dSc47_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ti47_log_pf - p_log_pf - Sc47_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dTi47_log_pf_dT9 - dp_log_pf_dT9 - dSc47_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -22.984033876015292 + -2.1066498240504496 * tfactors.T9i + 30.6942 * tfactors.T913 + + -3.81514 * tfactors.T9 + 0.263484 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 2.1066498240504496 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 30.6942 * tfactors.T923i + + -3.81514 + (5.0/3.0) * 0.263484 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc47_He4_to_n_V50_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc47 + He4 --> n + V50 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real V50_log_pf, dV50_log_pf_dT9; + + // interpolating V50 partition function + get_partition_function_cached(V50, tfactors.T9, pf_cache, V50_log_pf, dV50_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc47_log_pf, dSc47_log_pf_dT9; + + // interpolating Sc47 partition function + get_partition_function_cached(Sc47, tfactors.T9, pf_cache, Sc47_log_pf, dSc47_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + V50_log_pf - He4_log_pf - Sc47_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dV50_log_pf_dT9 - dHe4_log_pf_dT9 - dSc47_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -72.45304146466991 + -8.81899546976609 * tfactors.T9i + 66.0687 * tfactors.T913 + + -8.06344 * tfactors.T9 + 0.527546 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 8.81899546976609 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 66.0687 * tfactors.T923i + + -8.06344 + (5.0/3.0) * 0.527546 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc49_He4_to_n_V52_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Sc49 + He4 --> n + V52 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc49_log_pf, dSc49_log_pf_dT9; + + // interpolating Sc49 partition function + get_partition_function_cached(Sc49, tfactors.T9, pf_cache, Sc49_log_pf, dSc49_log_pf_dT9); + + amrex::Real V52_log_pf, dV52_log_pf_dT9; + + // interpolating V52 partition function + get_partition_function_cached(V52, tfactors.T9, pf_cache, V52_log_pf, dV52_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + V52_log_pf - He4_log_pf - Sc49_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dV52_log_pf_dT9 - dHe4_log_pf_dT9 - dSc49_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = -14.415453026403888 + -11.08811772009206 * tfactors.T9i + 174.784 * tfactors.T913i + -175.991 * tfactors.T913 + + 2.92402 * tfactors.T9 + 0.0459501 * tfactors.T953 + 127.478 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 11.08811772009206 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 174.784 * tfactors.T943i + (1.0/3.0) * -175.991 * tfactors.T923i + + 2.92402 + (5.0/3.0) * 0.0459501 * tfactors.T923 + 127.478 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti45_He4_to_n_Cr48_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti45 + He4 --> n + Cr48 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr48_log_pf, dCr48_log_pf_dT9; + + // interpolating Cr48 partition function + get_partition_function_cached(Cr48, tfactors.T9, pf_cache, Cr48_log_pf, dCr48_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti45_log_pf, dTi45_log_pf_dT9; + + // interpolating Ti45 partition function + get_partition_function_cached(Ti45, tfactors.T9, pf_cache, Ti45_log_pf, dTi45_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cr48_log_pf - He4_log_pf - Ti45_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCr48_log_pf_dT9 - dHe4_log_pf_dT9 - dTi45_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -30.751853368495084 + -21.30243979386071 * tfactors.T9i + 29.3634 * tfactors.T913 + + -2.63599 * tfactors.T9 + 0.159116 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 21.30243979386071 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 29.3634 * tfactors.T923i + + -2.63599 + (5.0/3.0) * 0.159116 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti46_n_to_p_Sc46_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti46 + n --> p + Sc46 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti46_log_pf, dTi46_log_pf_dT9; + + // interpolating Ti46 partition function + get_partition_function_cached(Ti46, tfactors.T9, pf_cache, Ti46_log_pf, dTi46_log_pf_dT9); + + amrex::Real Sc46_log_pf, dSc46_log_pf_dT9; + + // interpolating Sc46 partition function + get_partition_function_cached(Sc46, tfactors.T9, pf_cache, Sc46_log_pf, dSc46_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Sc46_log_pf - n_log_pf - Ti46_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dSc46_log_pf_dT9 - dn_log_pf_dT9 - dTi46_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 122.33928025897617 + -23.77040454611642 * tfactors.T9i + 200.092 * tfactors.T913i + -329.451 * tfactors.T913 + + 18.1752 * tfactors.T9 + -1.01788 * tfactors.T953 + 164.827 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 23.77040454611642 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 200.092 * tfactors.T943i + (1.0/3.0) * -329.451 * tfactors.T923i + + 18.1752 + (5.0/3.0) * -1.01788 * tfactors.T923 + 164.827 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti46_n_to_He4_Ca43_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti46 + n --> He4 + Ca43 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti46_log_pf, dTi46_log_pf_dT9; + + // interpolating Ti46 partition function + get_partition_function_cached(Ti46, tfactors.T9, pf_cache, Ti46_log_pf, dTi46_log_pf_dT9); + + amrex::Real Ca43_log_pf, dCa43_log_pf_dT9; + + // interpolating Ca43 partition function + get_partition_function_cached(Ca43, tfactors.T9, pf_cache, Ca43_log_pf, dCa43_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ca43_log_pf - n_log_pf - Ti46_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCa43_log_pf_dT9 - dn_log_pf_dT9 - dTi46_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 56.8091090365281 + -0.8471039447412666 * tfactors.T9i + -76.5897 * tfactors.T913i + 3.69244 * tfactors.T913 + + -1.90131 * tfactors.T9 + 0.171994 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 0.8471039447412666 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -76.5897 * tfactors.T943i + (1.0/3.0) * 3.69244 * tfactors.T923i + + -1.90131 + (5.0/3.0) * 0.171994 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti46_p_to_n_V46_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti46 + p --> n + V46 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real V46_log_pf, dV46_log_pf_dT9; + + // interpolating V46 partition function + get_partition_function_cached(V46, tfactors.T9, pf_cache, V46_log_pf, dV46_log_pf_dT9); + + amrex::Real Ti46_log_pf, dTi46_log_pf_dT9; + + // interpolating Ti46 partition function + get_partition_function_cached(Ti46, tfactors.T9, pf_cache, Ti46_log_pf, dTi46_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + V46_log_pf - p_log_pf - Ti46_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dV46_log_pf_dT9 - dp_log_pf_dT9 - dTi46_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 21.152494399051015 + -90.91811582153119 * tfactors.T9i + -0.663329 * tfactors.T913 + + 0.174849 * tfactors.T9 + -0.0157869 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 90.91811582153119 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.663329 * tfactors.T923i + + 0.174849 + (5.0/3.0) * -0.0157869 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti46_p_to_He4_Sc43_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti46 + p --> He4 + Sc43 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti46_log_pf, dTi46_log_pf_dT9; + + // interpolating Ti46 partition function + get_partition_function_cached(Ti46, tfactors.T9, pf_cache, Ti46_log_pf, dTi46_log_pf_dT9); + + amrex::Real Sc43_log_pf, dSc43_log_pf_dT9; + + // interpolating Sc43 partition function + get_partition_function_cached(Sc43, tfactors.T9, pf_cache, Sc43_log_pf, dSc43_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Sc43_log_pf - p_log_pf - Ti46_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dSc43_log_pf_dT9 - dp_log_pf_dT9 - dTi46_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 60.7193303156212 + -35.69683001018291 * tfactors.T9i + -79.122 * tfactors.T913i + -0.495539 * tfactors.T913 + + -0.618414 * tfactors.T9 + 0.0175873 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 35.69683001018291 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -79.122 * tfactors.T943i + (1.0/3.0) * -0.495539 * tfactors.T923i + + -0.618414 + (5.0/3.0) * 0.0175873 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti46_He4_to_n_Cr49_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti46 + He4 --> n + Cr49 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr49_log_pf, dCr49_log_pf_dT9; + + // interpolating Cr49 partition function + get_partition_function_cached(Cr49, tfactors.T9, pf_cache, Cr49_log_pf, dCr49_log_pf_dT9); + + amrex::Real Ti46_log_pf, dTi46_log_pf_dT9; + + // interpolating Ti46 partition function + get_partition_function_cached(Ti46, tfactors.T9, pf_cache, Ti46_log_pf, dTi46_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cr49_log_pf - He4_log_pf - Ti46_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCr49_log_pf_dT9 - dHe4_log_pf_dT9 - dTi46_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 13.998867704808795 + -51.5504285939274 * tfactors.T9i + -2.81456 * tfactors.T913 + + 1.61029 * tfactors.T9 + -0.138467 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 51.5504285939274 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.81456 * tfactors.T923i + + 1.61029 + (5.0/3.0) * -0.138467 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti46_He4_to_p_V49_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti46 + He4 --> p + V49 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real V49_log_pf, dV49_log_pf_dT9; + + // interpolating V49 partition function + get_partition_function_cached(V49, tfactors.T9, pf_cache, V49_log_pf, dV49_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti46_log_pf, dTi46_log_pf_dT9; + + // interpolating Ti46 partition function + get_partition_function_cached(Ti46, tfactors.T9, pf_cache, Ti46_log_pf, dTi46_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + V49_log_pf - He4_log_pf - Ti46_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dV49_log_pf_dT9 - dHe4_log_pf_dT9 - dTi46_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -19.293876950988306 + -11.954106481261894 * tfactors.T9i + -34.217 * tfactors.T913i + 47.2584 * tfactors.T913 + + -9.18871 * tfactors.T9 + 0.87823 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 11.954106481261894 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -34.217 * tfactors.T943i + (1.0/3.0) * 47.2584 * tfactors.T923i + + -9.18871 + (5.0/3.0) * 0.87823 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti47_p_to_n_V47_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti47 + p --> n + V47 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti47_log_pf, dTi47_log_pf_dT9; + + // interpolating Ti47 partition function + get_partition_function_cached(Ti47, tfactors.T9, pf_cache, Ti47_log_pf, dTi47_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real V47_log_pf, dV47_log_pf_dT9; + + // interpolating V47 partition function + get_partition_function_cached(V47, tfactors.T9, pf_cache, V47_log_pf, dV47_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + V47_log_pf - p_log_pf - Ti47_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dV47_log_pf_dT9 - dp_log_pf_dT9 - dTi47_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 19.987884941801948 + -43.08626489254264 * tfactors.T9i + -0.897943 * tfactors.T913 + + 0.233018 * tfactors.T9 + -0.0170844 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 43.08626489254264 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.897943 * tfactors.T923i + + 0.233018 + (5.0/3.0) * -0.0170844 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti47_p_to_He4_Sc44_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti47 + p --> He4 + Sc44 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti47_log_pf, dTi47_log_pf_dT9; + + // interpolating Ti47 partition function + get_partition_function_cached(Ti47, tfactors.T9, pf_cache, Ti47_log_pf, dTi47_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc44_log_pf, dSc44_log_pf_dT9; + + // interpolating Sc44 partition function + get_partition_function_cached(Sc44, tfactors.T9, pf_cache, Sc44_log_pf, dSc44_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Sc44_log_pf - p_log_pf - Ti47_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dSc44_log_pf_dT9 - dp_log_pf_dT9 - dTi47_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 60.61593560739922 + -26.197835656577425 * tfactors.T9i + -79.1731 * tfactors.T913i + -3.93328 * tfactors.T913 + + 0.112908 * tfactors.T9 + -0.0385366 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 26.197835656577425 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -79.1731 * tfactors.T943i + (1.0/3.0) * -3.93328 * tfactors.T923i + + 0.112908 + (5.0/3.0) * -0.0385366 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti47_He4_to_n_Cr50_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti47 + He4 --> n + Cr50 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti47_log_pf, dTi47_log_pf_dT9; + + // interpolating Ti47 partition function + get_partition_function_cached(Ti47, tfactors.T9, pf_cache, Ti47_log_pf, dTi47_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr50_log_pf, dCr50_log_pf_dT9; + + // interpolating Cr50 partition function + get_partition_function_cached(Cr50, tfactors.T9, pf_cache, Cr50_log_pf, dCr50_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cr50_log_pf - He4_log_pf - Ti47_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCr50_log_pf_dT9 - dHe4_log_pf_dT9 - dTi47_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -111.77343018932149 + -3.7442236500393546 * tfactors.T9i + 104.649 * tfactors.T913 + + -15.3856 * tfactors.T9 + 1.13897 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 3.7442236500393546 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 104.649 * tfactors.T923i + + -15.3856 + (5.0/3.0) * 1.13897 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti47_He4_to_p_V50_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti47 + He4 --> p + V50 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real V50_log_pf, dV50_log_pf_dT9; + + // interpolating V50 partition function + get_partition_function_cached(V50, tfactors.T9, pf_cache, V50_log_pf, dV50_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti47_log_pf, dTi47_log_pf_dT9; + + // interpolating Ti47 partition function + get_partition_function_cached(Ti47, tfactors.T9, pf_cache, Ti47_log_pf, dTi47_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + V50_log_pf - He4_log_pf - Ti47_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dV50_log_pf_dT9 - dHe4_log_pf_dT9 - dTi47_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -51.123507588654604 + -6.7123456457372415 * tfactors.T9i + -34.2216 * tfactors.T913i + 78.8919 * tfactors.T913 + + -16.0561 * tfactors.T9 + 1.55251 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 6.7123456457372415 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -34.2216 * tfactors.T943i + (1.0/3.0) * 78.8919 * tfactors.T923i + + -16.0561 + (5.0/3.0) * 1.55251 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti48_n_to_p_Sc48_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti48 + n --> p + Sc48 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc48_log_pf, dSc48_log_pf_dT9; + + // interpolating Sc48 partition function + get_partition_function_cached(Sc48, tfactors.T9, pf_cache, Sc48_log_pf, dSc48_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti48_log_pf, dTi48_log_pf_dT9; + + // interpolating Ti48 partition function + get_partition_function_cached(Ti48, tfactors.T9, pf_cache, Ti48_log_pf, dTi48_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Sc48_log_pf - n_log_pf - Ti48_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dSc48_log_pf_dT9 - dn_log_pf_dT9 - dTi48_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 121.45409008707597 + -42.666672204340294 * tfactors.T9i + 201.123 * tfactors.T913i + -329.189 * tfactors.T913 + + 18.2769 * tfactors.T9 + -1.03382 * tfactors.T953 + 164.945 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 42.666672204340294 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 201.123 * tfactors.T943i + (1.0/3.0) * -329.189 * tfactors.T923i + + 18.2769 + (5.0/3.0) * -1.03382 * tfactors.T923 + 164.945 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti48_n_to_He4_Ca45_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti48 + n --> He4 + Ca45 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca45_log_pf, dCa45_log_pf_dT9; + + // interpolating Ca45 partition function + get_partition_function_cached(Ca45, tfactors.T9, pf_cache, Ca45_log_pf, dCa45_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti48_log_pf, dTi48_log_pf_dT9; + + // interpolating Ti48 partition function + get_partition_function_cached(Ti48, tfactors.T9, pf_cache, Ti48_log_pf, dTi48_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ca45_log_pf - n_log_pf - Ti48_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCa45_log_pf_dT9 - dn_log_pf_dT9 - dTi48_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 60.47606326254474 + -23.607625562505714 * tfactors.T9i + -76.6866 * tfactors.T913i + -0.885239 * tfactors.T913 + + -0.554755 * tfactors.T9 + 0.0189393 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 23.607625562505714 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -76.6866 * tfactors.T943i + (1.0/3.0) * -0.885239 * tfactors.T923i + + -0.554755 + (5.0/3.0) * 0.0189393 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti48_p_to_n_V48_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti48 + p --> n + V48 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti48_log_pf, dTi48_log_pf_dT9; + + // interpolating Ti48 partition function + get_partition_function_cached(Ti48, tfactors.T9, pf_cache, Ti48_log_pf, dTi48_log_pf_dT9); + + amrex::Real V48_log_pf, dV48_log_pf_dT9; + + // interpolating V48 partition function + get_partition_function_cached(V48, tfactors.T9, pf_cache, V48_log_pf, dV48_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + V48_log_pf - p_log_pf - Ti48_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dV48_log_pf_dT9 - dp_log_pf_dT9 - dTi48_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 21.74813184165959 + -55.67032038873601 * tfactors.T9i + -0.307045 * tfactors.T913 + + 0.0615476 * tfactors.T9 + -0.00172407 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 55.67032038873601 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.307045 * tfactors.T923i + + 0.0615476 + (5.0/3.0) * -0.00172407 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti48_p_to_He4_Sc45_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti48 + p --> He4 + Sc45 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti48_log_pf, dTi48_log_pf_dT9; + + // interpolating Ti48 partition function + get_partition_function_cached(Ti48, tfactors.T9, pf_cache, Ti48_log_pf, dTi48_log_pf_dT9); + + amrex::Real Sc45_log_pf, dSc45_log_pf_dT9; + + // interpolating Sc45 partition function + get_partition_function_cached(Sc45, tfactors.T9, pf_cache, Sc45_log_pf, dSc45_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Sc45_log_pf - p_log_pf - Ti48_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dSc45_log_pf_dT9 - dp_log_pf_dT9 - dTi48_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 60.55833027441739 + -29.668050755704577 * tfactors.T9i + -79.222 * tfactors.T913i + 0.0710184 * tfactors.T913 + + -1.47173 * tfactors.T9 + 0.15944 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 29.668050755704577 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -79.222 * tfactors.T943i + (1.0/3.0) * 0.0710184 * tfactors.T923i + + -1.47173 + (5.0/3.0) * 0.15944 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti48_He4_to_n_Cr51_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti48 + He4 --> n + Cr51 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti48_log_pf, dTi48_log_pf_dT9; + + // interpolating Ti48 partition function + get_partition_function_cached(Ti48, tfactors.T9, pf_cache, Ti48_log_pf, dTi48_log_pf_dT9); + + amrex::Real Cr51_log_pf, dCr51_log_pf_dT9; + + // interpolating Cr51 partition function + get_partition_function_cached(Cr51, tfactors.T9, pf_cache, Cr51_log_pf, dCr51_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cr51_log_pf - He4_log_pf - Ti48_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCr51_log_pf_dT9 - dHe4_log_pf_dT9 - dTi48_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 0.4992024345857674 + -31.200397480438532 * tfactors.T9i + 1.94389 * tfactors.T913 + + 2.5871 * tfactors.T9 + -0.307303 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 31.200397480438532 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.94389 * tfactors.T923i + + 2.5871 + (5.0/3.0) * -0.307303 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti48_He4_to_p_V51_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti48 + He4 --> p + V51 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ti48_log_pf, dTi48_log_pf_dT9; + + // interpolating Ti48 partition function + get_partition_function_cached(Ti48, tfactors.T9, pf_cache, Ti48_log_pf, dTi48_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real V51_log_pf, dV51_log_pf_dT9; + + // interpolating V51 partition function + get_partition_function_cached(V51, tfactors.T9, pf_cache, V51_log_pf, dV51_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + V51_log_pf - He4_log_pf - Ti48_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dV51_log_pf_dT9 - dHe4_log_pf_dT9 - dTi48_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -12.952891743241532 + -13.390397689130458 * tfactors.T9i + -34.2261 * tfactors.T913i + 38.6574 * tfactors.T913 + + -7.18743 * tfactors.T9 + 0.692255 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 13.390397689130458 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -34.2261 * tfactors.T943i + (1.0/3.0) * 38.6574 * tfactors.T923i + + -7.18743 + (5.0/3.0) * 0.692255 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti49_n_to_p_Sc49_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti49 + n --> p + Sc49 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc49_log_pf, dSc49_log_pf_dT9; + + // interpolating Sc49 partition function + get_partition_function_cached(Sc49, tfactors.T9, pf_cache, Sc49_log_pf, dSc49_log_pf_dT9); + + amrex::Real Ti49_log_pf, dTi49_log_pf_dT9; + + // interpolating Ti49 partition function + get_partition_function_cached(Ti49, tfactors.T9, pf_cache, Ti49_log_pf, dTi49_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Sc49_log_pf - n_log_pf - Ti49_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dSc49_log_pf_dT9 - dn_log_pf_dT9 - dTi49_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 120.28002720811335 + -19.67027916064832 * tfactors.T9i + 204.555 * tfactors.T913i + -334.141 * tfactors.T913 + + 18.5078 * tfactors.T9 + -1.04158 * tfactors.T953 + 167.483 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 19.67027916064832 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 204.555 * tfactors.T943i + (1.0/3.0) * -334.141 * tfactors.T923i + + 18.5078 + (5.0/3.0) * -1.04158 * tfactors.T923 + 167.483 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti49_p_to_n_V49_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti49 + p --> n + V49 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti49_log_pf, dTi49_log_pf_dT9; + + // interpolating Ti49 partition function + get_partition_function_cached(Ti49, tfactors.T9, pf_cache, Ti49_log_pf, dTi49_log_pf_dT9); + + amrex::Real V49_log_pf, dV49_log_pf_dT9; + + // interpolating V49 partition function + get_partition_function_cached(V49, tfactors.T9, pf_cache, V49_log_pf, dV49_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + V49_log_pf - p_log_pf - Ti49_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dV49_log_pf_dT9 - dp_log_pf_dT9 - dTi49_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 15.941215537376793 + -16.062475407403696 * tfactors.T9i + -2.17107 * tfactors.T913 + + 1.10014 * tfactors.T9 + -0.0944408 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 16.062475407403696 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.17107 * tfactors.T923i + + 1.10014 + (5.0/3.0) * -0.0944408 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti49_p_to_He4_Sc46_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti49 + p --> He4 + Sc46 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti49_log_pf, dTi49_log_pf_dT9; + + // interpolating Ti49 partition function + get_partition_function_cached(Ti49, tfactors.T9, pf_cache, Ti49_log_pf, dTi49_log_pf_dT9); + + amrex::Real Sc46_log_pf, dSc46_log_pf_dT9; + + // interpolating Sc46 partition function + get_partition_function_cached(Sc46, tfactors.T9, pf_cache, Sc46_log_pf, dSc46_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Sc46_log_pf - p_log_pf - Ti49_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dSc46_log_pf_dT9 - dp_log_pf_dT9 - dTi49_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = -937.0493272526587 + -7.777773472279824 * tfactors.T9i + -1603.15 * tfactors.T913i + 2650.58 * tfactors.T913 + + -159.776 * tfactors.T9 + 9.24163 * tfactors.T953 + -1237.15 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 7.777773472279824 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1603.15 * tfactors.T943i + (1.0/3.0) * 2650.58 * tfactors.T923i + + -159.776 + (5.0/3.0) * 9.24163 * tfactors.T923 + -1237.15 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti49_He4_to_p_V52_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti49 + He4 --> p + V52 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti49_log_pf, dTi49_log_pf_dT9; + + // interpolating Ti49 partition function + get_partition_function_cached(Ti49, tfactors.T9, pf_cache, Ti49_log_pf, dTi49_log_pf_dT9); + + amrex::Real V52_log_pf, dV52_log_pf_dT9; + + // interpolating V52 partition function + get_partition_function_cached(V52, tfactors.T9, pf_cache, V52_log_pf, dV52_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + V52_log_pf - He4_log_pf - Ti49_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dV52_log_pf_dT9 - dHe4_log_pf_dT9 - dTi49_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 59.50747418170947 + -28.928766880740376 * tfactors.T9i + 209.633 * tfactors.T913i + -291.46 * tfactors.T913 + + 13.4258 * tfactors.T9 + -0.668366 * tfactors.T953 + 164.685 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 28.928766880740376 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 209.633 * tfactors.T943i + (1.0/3.0) * -291.46 * tfactors.T923i + + 13.4258 + (5.0/3.0) * -0.668366 * tfactors.T923 + 164.685 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti50_n_to_He4_Ca47_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti50 + n --> He4 + Ca47 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ca47_log_pf, dCa47_log_pf_dT9; + + // interpolating Ca47 partition function + get_partition_function_cached(Ca47, tfactors.T9, pf_cache, Ca47_log_pf, dCa47_log_pf_dT9); + + amrex::Real Ti50_log_pf, dTi50_log_pf_dT9; + + // interpolating Ti50 partition function + get_partition_function_cached(Ti50, tfactors.T9, pf_cache, Ti50_log_pf, dTi50_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ca47_log_pf - n_log_pf - Ti50_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCa47_log_pf_dT9 - dn_log_pf_dT9 - dTi50_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 60.779323371889184 + -39.92845193891369 * tfactors.T9i + -76.7758 * tfactors.T913i + -0.981924 * tfactors.T913 + + -0.52791 * tfactors.T9 + 0.0150723 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 39.92845193891369 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -76.7758 * tfactors.T943i + (1.0/3.0) * -0.981924 * tfactors.T923i + + -0.52791 + (5.0/3.0) * 0.0150723 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti50_p_to_n_V50_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti50 + p --> n + V50 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real V50_log_pf, dV50_log_pf_dT9; + + // interpolating V50 partition function + get_partition_function_cached(V50, tfactors.T9, pf_cache, V50_log_pf, dV50_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti50_log_pf, dTi50_log_pf_dT9; + + // interpolating Ti50 partition function + get_partition_function_cached(Ti50, tfactors.T9, pf_cache, Ti50_log_pf, dTi50_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + V50_log_pf - p_log_pf - Ti50_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dV50_log_pf_dT9 - dp_log_pf_dT9 - dTi50_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 4.7072605785430515 + -34.70884721539044 * tfactors.T9i + 13.156 * tfactors.T913 + + -2.27428 * tfactors.T9 + 0.204692 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 34.70884721539044 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 13.156 * tfactors.T923i + + -2.27428 + (5.0/3.0) * 0.204692 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti50_p_to_He4_Sc47_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti50 + p --> He4 + Sc47 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Sc47_log_pf, dSc47_log_pf_dT9; + + // interpolating Sc47 partition function + get_partition_function_cached(Sc47, tfactors.T9, pf_cache, Sc47_log_pf, dSc47_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti50_log_pf, dTi50_log_pf_dT9; + + // interpolating Ti50 partition function + get_partition_function_cached(Ti50, tfactors.T9, pf_cache, Ti50_log_pf, dTi50_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He4_log_pf + Sc47_log_pf - p_log_pf - Ti50_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dSc47_log_pf_dT9 - dp_log_pf_dT9 - dTi50_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = -977.0727079567871 + -10.963851745653157 * tfactors.T9i + -1637.36 * tfactors.T913i + 2730.59 * tfactors.T913 + + -164.393 * tfactors.T9 + 9.47988 * tfactors.T953 + -1271.98 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 10.963851745653157 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1637.36 * tfactors.T943i + (1.0/3.0) * 2730.59 * tfactors.T923i + + -164.393 + (5.0/3.0) * 9.47988 * tfactors.T923 + -1271.98 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti50_He4_to_n_Cr53_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti50 + He4 --> n + Cr53 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti50_log_pf, dTi50_log_pf_dT9; + + // interpolating Ti50 partition function + get_partition_function_cached(Ti50, tfactors.T9, pf_cache, Ti50_log_pf, dTi50_log_pf_dT9); + + amrex::Real Cr53_log_pf, dCr53_log_pf_dT9; + + // interpolating Cr53 partition function + get_partition_function_cached(Cr53, tfactors.T9, pf_cache, Cr53_log_pf, dCr53_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cr53_log_pf - He4_log_pf - Ti50_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCr53_log_pf_dT9 - dHe4_log_pf_dT9 - dTi50_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -23.48219319200582 + -20.779656252484987 * tfactors.T9i + 21.17 * tfactors.T913 + + -0.195248 * tfactors.T9 + -0.121068 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 20.779656252484987 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 21.17 * tfactors.T923i + + -0.195248 + (5.0/3.0) * -0.121068 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti51_p_to_He4_Sc48_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ti51 + p --> He4 + Sc48 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc48_log_pf, dSc48_log_pf_dT9; + + // interpolating Sc48 partition function + get_partition_function_cached(Sc48, tfactors.T9, pf_cache, Sc48_log_pf, dSc48_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti51_log_pf, dTi51_log_pf_dT9; + + // interpolating Ti51 partition function + get_partition_function_cached(Ti51, tfactors.T9, pf_cache, Ti51_log_pf, dTi51_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Sc48_log_pf - p_log_pf - Ti51_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dSc48_log_pf_dT9 - dp_log_pf_dT9 - dTi51_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = -843.6427185778067 + 13.035991385392649 * tfactors.T9i + -1740.8 * tfactors.T913i + 2683.45 * tfactors.T913 + + -154.78 * tfactors.T9 + 8.68561 * tfactors.T953 + -1291.82 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = -13.035991385392649 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1740.8 * tfactors.T943i + (1.0/3.0) * 2683.45 * tfactors.T923i + + -154.78 + (5.0/3.0) * 8.68561 * tfactors.T923 + -1291.82 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V47_p_to_He4_Ti44_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V47 + p --> He4 + Ti44 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real V47_log_pf, dV47_log_pf_dT9; + + // interpolating V47 partition function + get_partition_function_cached(V47, tfactors.T9, pf_cache, V47_log_pf, dV47_log_pf_dT9); + + amrex::Real Ti44_log_pf, dTi44_log_pf_dT9; + + // interpolating Ti44 partition function + get_partition_function_cached(Ti44, tfactors.T9, pf_cache, Ti44_log_pf, dTi44_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ti44_log_pf - p_log_pf - V47_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dTi44_log_pf_dT9 - dp_log_pf_dT9 - dV47_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from chw0r + ln_set_rate = -76.63208838152472 + -6.086479266444236 * tfactors.T9i + 70.2835 * tfactors.T913 + + -7.99061 * tfactors.T9 + 0.486213 * tfactors.T953 + -1.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 6.086479266444236 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 70.2835 * tfactors.T923i + + -7.99061 + (5.0/3.0) * 0.486213 * tfactors.T923 + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V47_He4_to_n_Mn50_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V47 + He4 --> n + Mn50 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn50_log_pf, dMn50_log_pf_dT9; + + // interpolating Mn50 partition function + get_partition_function_cached(Mn50, tfactors.T9, pf_cache, Mn50_log_pf, dMn50_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real V47_log_pf, dV47_log_pf_dT9; + + // interpolating V47 partition function + get_partition_function_cached(V47, tfactors.T9, pf_cache, V47_log_pf, dV47_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Mn50_log_pf - He4_log_pf - V47_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dMn50_log_pf_dT9 - dHe4_log_pf_dT9 - dV47_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 10.098377614697252 + -58.33106457759061 * tfactors.T9i + 0.0723126 * tfactors.T913 + + 0.772457 * tfactors.T9 + -0.0591176 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 58.33106457759061 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.0723126 * tfactors.T923i + + 0.772457 + (5.0/3.0) * -0.0591176 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V48_p_to_n_Cr48_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V48 + p --> n + Cr48 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr48_log_pf, dCr48_log_pf_dT9; + + // interpolating Cr48 partition function + get_partition_function_cached(Cr48, tfactors.T9, pf_cache, Cr48_log_pf, dCr48_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real V48_log_pf, dV48_log_pf_dT9; + + // interpolating V48 partition function + get_partition_function_cached(V48, tfactors.T9, pf_cache, V48_log_pf, dV48_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cr48_log_pf - p_log_pf - V48_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCr48_log_pf_dT9 - dp_log_pf_dT9 - dV48_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 14.704950702044425 + -28.307446884124808 * tfactors.T9i + 0.783544 * tfactors.T913 + + 0.521131 * tfactors.T9 + -0.0677724 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 28.307446884124808 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.783544 * tfactors.T923i + + 0.521131 + (5.0/3.0) * -0.0677724 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V48_p_to_He4_Ti45_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V48 + p --> He4 + Ti45 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real V48_log_pf, dV48_log_pf_dT9; + + // interpolating V48 partition function + get_partition_function_cached(V48, tfactors.T9, pf_cache, V48_log_pf, dV48_log_pf_dT9); + + amrex::Real Ti45_log_pf, dTi45_log_pf_dT9; + + // interpolating Ti45 partition function + get_partition_function_cached(Ti45, tfactors.T9, pf_cache, Ti45_log_pf, dTi45_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ti45_log_pf - p_log_pf - V48_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dTi45_log_pf_dT9 - dp_log_pf_dT9 - dV48_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 55.35190407053951 + -7.005007090264097 * tfactors.T9i + -81.7175 * tfactors.T913i + 5.07471 * tfactors.T913 + + -2.34907 * tfactors.T9 + 0.226169 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 7.005007090264097 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -81.7175 * tfactors.T943i + (1.0/3.0) * 5.07471 * tfactors.T923i + + -2.34907 + (5.0/3.0) * 0.226169 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V48_He4_to_n_Mn51_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V48 + He4 --> n + Mn51 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn51_log_pf, dMn51_log_pf_dT9; + + // interpolating Mn51 partition function + get_partition_function_cached(Mn51, tfactors.T9, pf_cache, Mn51_log_pf, dMn51_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real V48_log_pf, dV48_log_pf_dT9; + + // interpolating V48 partition function + get_partition_function_cached(V48, tfactors.T9, pf_cache, V48_log_pf, dV48_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Mn51_log_pf - He4_log_pf - V48_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dMn51_log_pf_dT9 - dHe4_log_pf_dT9 - dV48_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -25.531731968190183 + -21.83044536844722 * tfactors.T9i + 20.8632 * tfactors.T913 + + 0.466645 * tfactors.T9 + -0.196969 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 21.83044536844722 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 20.8632 * tfactors.T923i + + 0.466645 + (5.0/3.0) * -0.196969 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V49_n_to_He4_Sc46_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V49 + n --> He4 + Sc46 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real V49_log_pf, dV49_log_pf_dT9; + + // interpolating V49 partition function + get_partition_function_cached(V49, tfactors.T9, pf_cache, V49_log_pf, dV49_log_pf_dT9); + + amrex::Real Sc46_log_pf, dSc46_log_pf_dT9; + + // interpolating Sc46 partition function + get_partition_function_cached(Sc46, tfactors.T9, pf_cache, Sc46_log_pf, dSc46_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Sc46_log_pf - n_log_pf - V49_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dSc46_log_pf_dT9 - dn_log_pf_dT9 - dV49_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = -906.5214427900355 + 8.227101935123873 * tfactors.T9i + -1592.71 * tfactors.T913i + 2609.63 * tfactors.T913 + + -155.96 * tfactors.T9 + 8.94971 * tfactors.T953 + -1223.97 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = -8.227101935123873 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1592.71 * tfactors.T943i + (1.0/3.0) * 2609.63 * tfactors.T923i + + -155.96 + (5.0/3.0) * 8.94971 * tfactors.T923 + -1223.97 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V49_p_to_n_Cr49_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V49 + p --> n + Cr49 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr49_log_pf, dCr49_log_pf_dT9; + + // interpolating Cr49 partition function + get_partition_function_cached(Cr49, tfactors.T9, pf_cache, Cr49_log_pf, dCr49_log_pf_dT9); + + amrex::Real V49_log_pf, dV49_log_pf_dT9; + + // interpolating V49 partition function + get_partition_function_cached(V49, tfactors.T9, pf_cache, V49_log_pf, dV49_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cr49_log_pf - p_log_pf - V49_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCr49_log_pf_dT9 - dp_log_pf_dT9 - dV49_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 20.8210446557971 + -39.596322112687105 * tfactors.T9i + -1.62261 * tfactors.T913 + + 0.507111 * tfactors.T9 + -0.0492268 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 39.596322112687105 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.62261 * tfactors.T923i + + 0.507111 + (5.0/3.0) * -0.0492268 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V49_He4_to_n_Mn52_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V49 + He4 --> n + Mn52 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn52_log_pf, dMn52_log_pf_dT9; + + // interpolating Mn52 partition function + get_partition_function_cached(Mn52, tfactors.T9, pf_cache, Mn52_log_pf, dMn52_log_pf_dT9); + + amrex::Real V49_log_pf, dV49_log_pf_dT9; + + // interpolating V49 partition function + get_partition_function_cached(V49, tfactors.T9, pf_cache, V49_log_pf, dV49_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Mn52_log_pf - He4_log_pf - V49_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dMn52_log_pf_dT9 - dHe4_log_pf_dT9 - dV49_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -3.086619265982308 + -33.62075182504949 * tfactors.T9i + 5.72895 * tfactors.T913 + + 1.74506 * tfactors.T9 + -0.232362 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 33.62075182504949 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.72895 * tfactors.T923i + + 1.74506 + (5.0/3.0) * -0.232362 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V50_He4_to_n_Mn53_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V50 + He4 --> n + Mn53 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real V50_log_pf, dV50_log_pf_dT9; + + // interpolating V50 partition function + get_partition_function_cached(V50, tfactors.T9, pf_cache, V50_log_pf, dV50_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn53_log_pf, dMn53_log_pf_dT9; + + // interpolating Mn53 partition function + get_partition_function_cached(Mn53, tfactors.T9, pf_cache, Mn53_log_pf, dMn53_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Mn53_log_pf - He4_log_pf - V50_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dMn53_log_pf_dT9 - dHe4_log_pf_dT9 - dV50_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -124.65958376889749 + -2.081180158108758 * tfactors.T9i + 115.52 * tfactors.T913 + + -16.7944 * tfactors.T9 + 1.23427 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 2.081180158108758 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 115.52 * tfactors.T923i + + -16.7944 + (5.0/3.0) * 1.23427 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V51_n_to_p_Ti51_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V51 + n --> p + Ti51 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real V51_log_pf, dV51_log_pf_dT9; + + // interpolating V51 partition function + get_partition_function_cached(V51, tfactors.T9, pf_cache, V51_log_pf, dV51_log_pf_dT9); + + amrex::Real Ti51_log_pf, dTi51_log_pf_dT9; + + // interpolating Ti51 partition function + get_partition_function_cached(Ti51, tfactors.T9, pf_cache, Ti51_log_pf, dTi51_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ti51_log_pf - n_log_pf - V51_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dTi51_log_pf_dT9 - dn_log_pf_dT9 - dV51_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 121.11190040812419 + -25.366375900609686 * tfactors.T9i + 213.317 * tfactors.T913i + -345.382 * tfactors.T913 + + 19.0423 * tfactors.T9 + -1.06972 * tfactors.T953 + 173.788 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 25.366375900609686 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 213.317 * tfactors.T943i + (1.0/3.0) * -345.382 * tfactors.T923i + + 19.0423 + (5.0/3.0) * -1.06972 * tfactors.T923 + 173.788 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V51_n_to_He4_Sc48_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V51 + n --> He4 + Sc48 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Sc48_log_pf, dSc48_log_pf_dT9; + + // interpolating Sc48 partition function + get_partition_function_cached(Sc48, tfactors.T9, pf_cache, Sc48_log_pf, dSc48_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real V51_log_pf, dV51_log_pf_dT9; + + // interpolating V51 partition function + get_partition_function_cached(V51, tfactors.T9, pf_cache, V51_log_pf, dV51_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Sc48_log_pf - n_log_pf - V51_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dSc48_log_pf_dT9 - dn_log_pf_dT9 - dV51_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = -923.9028181696825 + -8.894384515217043 * tfactors.T9i + -1621.99 * tfactors.T913i + 2659.5 * tfactors.T913 + + -158.959 * tfactors.T9 + 9.12514 * tfactors.T953 + -1247.44 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 8.894384515217043 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1621.99 * tfactors.T943i + (1.0/3.0) * 2659.5 * tfactors.T923i + + -158.959 + (5.0/3.0) * 9.12514 * tfactors.T923 + -1247.44 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V51_p_to_n_Cr51_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V51 + p --> n + Cr51 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real V51_log_pf, dV51_log_pf_dT9; + + // interpolating V51 partition function + get_partition_function_cached(V51, tfactors.T9, pf_cache, V51_log_pf, dV51_log_pf_dT9); + + amrex::Real Cr51_log_pf, dCr51_log_pf_dT9; + + // interpolating Cr51 partition function + get_partition_function_cached(Cr51, tfactors.T9, pf_cache, Cr51_log_pf, dCr51_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cr51_log_pf - p_log_pf - V51_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCr51_log_pf_dT9 - dp_log_pf_dT9 - dV51_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 15.1409221778273 + -17.809999791308076 * tfactors.T9i + -0.462299 * tfactors.T913 + + 0.925265 * tfactors.T9 + -0.103818 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 17.809999791308076 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.462299 * tfactors.T923i + + 0.925265 + (5.0/3.0) * -0.103818 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V51_He4_to_n_Mn54_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V51 + He4 --> n + Mn54 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real V51_log_pf, dV51_log_pf_dT9; + + // interpolating V51 partition function + get_partition_function_cached(V51, tfactors.T9, pf_cache, V51_log_pf, dV51_log_pf_dT9); + + amrex::Real Mn54_log_pf, dMn54_log_pf_dT9; + + // interpolating Mn54 partition function + get_partition_function_cached(Mn54, tfactors.T9, pf_cache, Mn54_log_pf, dMn54_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Mn54_log_pf - He4_log_pf - V51_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dMn54_log_pf_dT9 - dHe4_log_pf_dT9 - dV51_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -8.818009806604406 + -26.58957429521424 * tfactors.T9i + 7.07865 * tfactors.T913 + + 2.24997 * tfactors.T9 + -0.318964 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 26.58957429521424 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 7.07865 * tfactors.T923i + + 2.24997 + (5.0/3.0) * -0.318964 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V51_He4_to_p_Cr54_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // V51 + He4 --> p + Cr54 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real V51_log_pf, dV51_log_pf_dT9; + + // interpolating V51 partition function + get_partition_function_cached(V51, tfactors.T9, pf_cache, V51_log_pf, dV51_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr54_log_pf, dCr54_log_pf_dT9; + + // interpolating Cr54 partition function + get_partition_function_cached(Cr54, tfactors.T9, pf_cache, Cr54_log_pf, dCr54_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Cr54_log_pf - He4_log_pf - V51_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCr54_log_pf_dT9 - dHe4_log_pf_dT9 - dV51_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -98.0602210194184 + -1.529303671960318 * tfactors.T9i + -35.2237 * tfactors.T913i + 131.726 * tfactors.T913 + + -29.7395 * tfactors.T9 + 3.03809 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 1.529303671960318 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -35.2237 * tfactors.T943i + (1.0/3.0) * 131.726 * tfactors.T923i + + -29.7395 + (5.0/3.0) * 3.03809 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr49_p_to_He4_V46_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr49 + p --> He4 + V46 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real V46_log_pf, dV46_log_pf_dT9; + + // interpolating V46 partition function + get_partition_function_cached(V46, tfactors.T9, pf_cache, V46_log_pf, dV46_log_pf_dT9); + + amrex::Real Cr49_log_pf, dCr49_log_pf_dT9; + + // interpolating Cr49 partition function + get_partition_function_cached(Cr49, tfactors.T9, pf_cache, Cr49_log_pf, dCr49_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + V46_log_pf - p_log_pf - Cr49_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dV46_log_pf_dT9 - dp_log_pf_dT9 - dCr49_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 59.280226694242224 + -39.36768722760379 * tfactors.T9i + -84.2255 * tfactors.T913i + -1.09776 * tfactors.T913 + + -0.495216 * tfactors.T9 + 0.0124719 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 39.36768722760379 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.2255 * tfactors.T943i + (1.0/3.0) * -1.09776 * tfactors.T923i + + -0.495216 + (5.0/3.0) * 0.0124719 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr49_He4_to_n_Fe52_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr49 + He4 --> n + Fe52 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr49_log_pf, dCr49_log_pf_dT9; + + // interpolating Cr49 partition function + get_partition_function_cached(Cr49, tfactors.T9, pf_cache, Cr49_log_pf, dCr49_log_pf_dT9); + + amrex::Real Fe52_log_pf, dFe52_log_pf_dT9; + + // interpolating Fe52 partition function + get_partition_function_cached(Fe52, tfactors.T9, pf_cache, Fe52_log_pf, dFe52_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Fe52_log_pf - He4_log_pf - Cr49_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dFe52_log_pf_dT9 - dHe4_log_pf_dT9 - dCr49_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -14.228587812236487 + -30.713703990431274 * tfactors.T9i + 14.3781 * tfactors.T913 + + 0.0859569 * tfactors.T9 + -0.0900604 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 30.713703990431274 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 14.3781 * tfactors.T923i + + 0.0859569 + (5.0/3.0) * -0.0900604 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr50_n_to_p_V50_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr50 + n --> p + V50 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real V50_log_pf, dV50_log_pf_dT9; + + // interpolating V50 partition function + get_partition_function_cached(V50, tfactors.T9, pf_cache, V50_log_pf, dV50_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr50_log_pf, dCr50_log_pf_dT9; + + // interpolating Cr50 partition function + get_partition_function_cached(Cr50, tfactors.T9, pf_cache, Cr50_log_pf, dCr50_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + V50_log_pf - n_log_pf - Cr50_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dV50_log_pf_dT9 - dn_log_pf_dT9 - dCr50_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 20.46322260066689 + -2.9681219956978873 * tfactors.T9i + -34.2216 * tfactors.T913i + 18.9337 * tfactors.T913 + + -4.3348 * tfactors.T9 + 0.409807 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 2.9681219956978873 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -34.2216 * tfactors.T943i + (1.0/3.0) * 18.9337 * tfactors.T923i + + -4.3348 + (5.0/3.0) * 0.409807 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr50_p_to_n_Mn50_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr50 + p --> n + Mn50 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn50_log_pf, dMn50_log_pf_dT9; + + // interpolating Mn50 partition function + get_partition_function_cached(Mn50, tfactors.T9, pf_cache, Mn50_log_pf, dMn50_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr50_log_pf, dCr50_log_pf_dT9; + + // interpolating Cr50 partition function + get_partition_function_cached(Cr50, tfactors.T9, pf_cache, Cr50_log_pf, dCr50_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Mn50_log_pf - p_log_pf - Cr50_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dMn50_log_pf_dT9 - dp_log_pf_dT9 - dCr50_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 21.58839274582069 + -97.6731058200939 * tfactors.T9i + -1.04612 * tfactors.T913 + + 0.340541 * tfactors.T9 + -0.0370932 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 97.6731058200939 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.04612 * tfactors.T923i + + 0.340541 + (5.0/3.0) * -0.0370932 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr50_p_to_He4_V47_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr50 + p --> He4 + V47 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr50_log_pf, dCr50_log_pf_dT9; + + // interpolating Cr50 partition function + get_partition_function_cached(Cr50, tfactors.T9, pf_cache, Cr50_log_pf, dCr50_log_pf_dT9); + + amrex::Real V47_log_pf, dV47_log_pf_dT9; + + // interpolating V47 partition function + get_partition_function_cached(V47, tfactors.T9, pf_cache, V47_log_pf, dV47_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + V47_log_pf - p_log_pf - Cr50_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dV47_log_pf_dT9 - dp_log_pf_dT9 - dCr50_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 62.57281513112344 + -39.342041242503285 * tfactors.T9i + -84.2732 * tfactors.T913i + -1.10027 * tfactors.T913 + + -0.487084 * tfactors.T9 + 0.00453269 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 39.342041242503285 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.2732 * tfactors.T943i + (1.0/3.0) * -1.10027 * tfactors.T923i + + -0.487084 + (5.0/3.0) * 0.00453269 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr50_He4_to_n_Fe53_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr50 + He4 --> n + Fe53 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr50_log_pf, dCr50_log_pf_dT9; + + // interpolating Cr50 partition function + get_partition_function_cached(Cr50, tfactors.T9, pf_cache, Cr50_log_pf, dCr50_log_pf_dT9); + + amrex::Real Fe53_log_pf, dFe53_log_pf_dT9; + + // interpolating Fe53 partition function + get_partition_function_cached(Fe53, tfactors.T9, pf_cache, Fe53_log_pf, dFe53_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Fe53_log_pf - He4_log_pf - Cr50_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dFe53_log_pf_dT9 - dHe4_log_pf_dT9 - dCr50_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 11.82561110568605 + -57.5614529357502 * tfactors.T9i + -0.146952 * tfactors.T913 + + 1.12217 * tfactors.T9 + -0.10318 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 57.5614529357502 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.146952 * tfactors.T923i + + 1.12217 + (5.0/3.0) * -0.10318 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr50_He4_to_p_Mn53_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr50 + He4 --> p + Mn53 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn53_log_pf, dMn53_log_pf_dT9; + + // interpolating Mn53 partition function + get_partition_function_cached(Mn53, tfactors.T9, pf_cache, Mn53_log_pf, dMn53_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr50_log_pf, dCr50_log_pf_dT9; + + // interpolating Cr50 partition function + get_partition_function_cached(Cr50, tfactors.T9, pf_cache, Cr50_log_pf, dCr50_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Mn53_log_pf - He4_log_pf - Cr50_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dMn53_log_pf_dT9 - dHe4_log_pf_dT9 - dCr50_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -67.54406116823061 + -5.049302153785043 * tfactors.T9i + -36.1913 * tfactors.T913i + 99.0857 * tfactors.T913 + + -20.8943 * tfactors.T9 + 2.06209 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 5.049302153785043 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.1913 * tfactors.T943i + (1.0/3.0) * 99.0857 * tfactors.T923i + + -20.8943 + (5.0/3.0) * 2.06209 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr51_p_to_n_Mn51_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr51 + p --> n + Mn51 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn51_log_pf, dMn51_log_pf_dT9; + + // interpolating Mn51 partition function + get_partition_function_cached(Mn51, tfactors.T9, pf_cache, Mn51_log_pf, dMn51_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr51_log_pf, dCr51_log_pf_dT9; + + // interpolating Cr51 partition function + get_partition_function_cached(Cr51, tfactors.T9, pf_cache, Cr51_log_pf, dCr51_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Mn51_log_pf - p_log_pf - Cr51_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dMn51_log_pf_dT9 - dp_log_pf_dT9 - dCr51_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 20.69656943888364 + -46.30036827674469 * tfactors.T9i + -1.37768 * tfactors.T913 + + 0.466991 * tfactors.T9 + -0.0461074 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 46.30036827674469 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.37768 * tfactors.T923i + + 0.466991 + (5.0/3.0) * -0.0461074 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr51_p_to_He4_V48_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr51 + p --> He4 + V48 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real V48_log_pf, dV48_log_pf_dT9; + + // interpolating V48 partition function + get_partition_function_cached(V48, tfactors.T9, pf_cache, V48_log_pf, dV48_log_pf_dT9); + + amrex::Real Cr51_log_pf, dCr51_log_pf_dT9; + + // interpolating Cr51 partition function + get_partition_function_cached(Cr51, tfactors.T9, pf_cache, Cr51_log_pf, dCr51_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + V48_log_pf - p_log_pf - Cr51_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dV48_log_pf_dT9 - dp_log_pf_dT9 - dCr51_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 62.343801407073826 + -24.469922908297473 * tfactors.T9i + -84.3192 * tfactors.T913i + -1.84683 * tfactors.T913 + + -0.459124 * tfactors.T9 + 0.00700566 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 24.469922908297473 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.3192 * tfactors.T943i + (1.0/3.0) * -1.84683 * tfactors.T923i + + -0.459124 + (5.0/3.0) * 0.00700566 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr51_He4_to_n_Fe54_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr51 + He4 --> n + Fe54 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr51_log_pf, dCr51_log_pf_dT9; + + // interpolating Cr51 partition function + get_partition_function_cached(Cr51, tfactors.T9, pf_cache, Cr51_log_pf, dCr51_log_pf_dT9); + + amrex::Real Fe54_log_pf, dFe54_log_pf_dT9; + + // interpolating Fe54 partition function + get_partition_function_cached(Fe54, tfactors.T9, pf_cache, Fe54_log_pf, dFe54_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Fe54_log_pf - He4_log_pf - Cr51_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dFe54_log_pf_dT9 - dHe4_log_pf_dT9 - dCr51_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -86.4423442441044 + -9.776948440740172 * tfactors.T9i + 77.6519 * tfactors.T913 + + -9.70923 * tfactors.T9 + 0.625406 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 9.776948440740172 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 77.6519 * tfactors.T923i + + -9.70923 + (5.0/3.0) * 0.625406 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr51_He4_to_p_Mn54_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr51 + He4 --> p + Mn54 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn54_log_pf, dMn54_log_pf_dT9; + + // interpolating Mn54 partition function + get_partition_function_cached(Mn54, tfactors.T9, pf_cache, Mn54_log_pf, dMn54_log_pf_dT9); + + amrex::Real Cr51_log_pf, dCr51_log_pf_dT9; + + // interpolating Cr51 partition function + get_partition_function_cached(Cr51, tfactors.T9, pf_cache, Cr51_log_pf, dCr51_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Mn54_log_pf - He4_log_pf - Cr51_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dMn54_log_pf_dT9 - dHe4_log_pf_dT9 - dCr51_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -42.049181984431705 + -8.779574503906165 * tfactors.T9i + -36.1955 * tfactors.T913i + 69.5086 * tfactors.T913 + + -14.1484 * tfactors.T9 + 1.38598 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 8.779574503906165 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.1955 * tfactors.T943i + (1.0/3.0) * 69.5086 * tfactors.T923i + + -14.1484 + (5.0/3.0) * 1.38598 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr52_n_to_p_V52_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr52 + n --> p + V52 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real V52_log_pf, dV52_log_pf_dT9; + + // interpolating V52 partition function + get_partition_function_cached(V52, tfactors.T9, pf_cache, V52_log_pf, dV52_log_pf_dT9); + + amrex::Real Cr52_log_pf, dCr52_log_pf_dT9; + + // interpolating Cr52 partition function + get_partition_function_cached(Cr52, tfactors.T9, pf_cache, Cr52_log_pf, dCr52_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + V52_log_pf - n_log_pf - Cr52_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dV52_log_pf_dT9 - dn_log_pf_dT9 - dCr52_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = 132.22703307280736 + -43.10696386337938 * tfactors.T9i + 225.572 * tfactors.T913i + -367.914 * tfactors.T913 + + 20.4967 * tfactors.T9 + -1.16016 * tfactors.T953 + 184.15 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 43.10696386337938 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 225.572 * tfactors.T943i + (1.0/3.0) * -367.914 * tfactors.T923i + + 20.4967 + (5.0/3.0) * -1.16016 * tfactors.T923 + 184.15 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr52_n_to_He4_Ti49_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr52 + n --> He4 + Ti49 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ti49_log_pf, dTi49_log_pf_dT9; + + // interpolating Ti49 partition function + get_partition_function_cached(Ti49, tfactors.T9, pf_cache, Ti49_log_pf, dTi49_log_pf_dT9); + + amrex::Real Cr52_log_pf, dCr52_log_pf_dT9; + + // interpolating Cr52 partition function + get_partition_function_cached(Cr52, tfactors.T9, pf_cache, Cr52_log_pf, dCr52_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ti49_log_pf - n_log_pf - Cr52_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dTi49_log_pf_dT9 - dn_log_pf_dT9 - dCr52_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 62.17085889109789 + -14.030996982639 * tfactors.T9i + -81.8999 * tfactors.T913i + -0.331496 * tfactors.T913 + + -0.758416 * tfactors.T9 + 0.0413394 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 14.030996982639 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -81.8999 * tfactors.T943i + (1.0/3.0) * -0.331496 * tfactors.T923i + + -0.758416 + (5.0/3.0) * 0.0413394 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr52_p_to_n_Mn52_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr52 + p --> n + Mn52 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn52_log_pf, dMn52_log_pf_dT9; + + // interpolating Mn52 partition function + get_partition_function_cached(Mn52, tfactors.T9, pf_cache, Mn52_log_pf, dMn52_log_pf_dT9); + + amrex::Real Cr52_log_pf, dCr52_log_pf_dT9; + + // interpolating Cr52 partition function + get_partition_function_cached(Cr52, tfactors.T9, pf_cache, Cr52_log_pf, dCr52_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Mn52_log_pf - p_log_pf - Cr52_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dMn52_log_pf_dT9 - dp_log_pf_dT9 - dCr52_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 20.51597516249238 + -63.714224215092194 * tfactors.T9i + 0.50599 * tfactors.T913 + + 0.283832 * tfactors.T9 + -0.0422814 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 63.714224215092194 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.50599 * tfactors.T923i + + 0.283832 + (5.0/3.0) * -0.0422814 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr52_p_to_He4_V49_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr52 + p --> He4 + V49 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real V49_log_pf, dV49_log_pf_dT9; + + // interpolating V49 partition function + get_partition_function_cached(V49, tfactors.T9, pf_cache, V49_log_pf, dV49_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr52_log_pf, dCr52_log_pf_dT9; + + // interpolating Cr52 partition function + get_partition_function_cached(Cr52, tfactors.T9, pf_cache, Cr52_log_pf, dCr52_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He4_log_pf + V49_log_pf - p_log_pf - Cr52_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dV49_log_pf_dT9 - dp_log_pf_dT9 - dCr52_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 60.786974428474686 + -30.0934723900715 * tfactors.T9i + -84.3633 * tfactors.T913i + 2.73419 * tfactors.T913 + + -2.05655 * tfactors.T9 + 0.203834 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 30.0934723900715 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.3633 * tfactors.T943i + (1.0/3.0) * 2.73419 * tfactors.T923i + + -2.05655 + (5.0/3.0) * 0.203834 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr52_He4_to_n_Fe55_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr52 + He4 --> n + Fe55 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe55_log_pf, dFe55_log_pf_dT9; + + // interpolating Fe55 partition function + get_partition_function_cached(Fe55, tfactors.T9, pf_cache, Fe55_log_pf, dFe55_log_pf_dT9); + + amrex::Real Cr52_log_pf, dCr52_log_pf_dT9; + + // interpolating Cr52 partition function + get_partition_function_cached(Cr52, tfactors.T9, pf_cache, Cr52_log_pf, dCr52_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Fe55_log_pf - He4_log_pf - Cr52_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dFe55_log_pf_dT9 - dHe4_log_pf_dT9 - dCr52_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 10.749432139871038 + -41.59653713007199 * tfactors.T9i + -4.54346 * tfactors.T913 + + 2.79557 * tfactors.T9 + -0.273997 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 41.59653713007199 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -4.54346 * tfactors.T923i + + 2.79557 + (5.0/3.0) * -0.273997 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr52_He4_to_p_Mn55_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr52 + He4 --> p + Mn55 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr52_log_pf, dCr52_log_pf_dT9; + + // interpolating Cr52 partition function + get_partition_function_cached(Cr52, tfactors.T9, pf_cache, Cr52_log_pf, dCr52_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn55_log_pf, dMn55_log_pf_dT9; + + // interpolating Mn55 partition function + get_partition_function_cached(Mn55, tfactors.T9, pf_cache, Mn55_log_pf, dMn55_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Mn55_log_pf - He4_log_pf - Cr52_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dMn55_log_pf_dT9 - dHe4_log_pf_dT9 - dCr52_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 18.29720341648828 + -29.83550845477045 * tfactors.T9i + -36.1995 * tfactors.T913i + 11.023 * tfactors.T913 + + -2.435 * tfactors.T9 + 0.306933 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 29.83550845477045 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.1995 * tfactors.T943i + (1.0/3.0) * 11.023 * tfactors.T923i + + -2.435 + (5.0/3.0) * 0.306933 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr53_p_to_n_Mn53_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr53 + p --> n + Mn53 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn53_log_pf, dMn53_log_pf_dT9; + + // interpolating Mn53 partition function + get_partition_function_cached(Mn53, tfactors.T9, pf_cache, Mn53_log_pf, dMn53_log_pf_dT9); + + amrex::Real Cr53_log_pf, dCr53_log_pf_dT9; + + // interpolating Cr53 partition function + get_partition_function_cached(Cr53, tfactors.T9, pf_cache, Cr53_log_pf, dCr53_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Mn53_log_pf - p_log_pf - Cr53_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dMn53_log_pf_dT9 - dp_log_pf_dT9 - dCr53_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 12.392760001651371 + -16.010371121014217 * tfactors.T9i + 0.167386 * tfactors.T913 + + 1.15594 * tfactors.T9 + -0.119143 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 16.010371121014217 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.167386 * tfactors.T923i + + 1.15594 + (5.0/3.0) * -0.119143 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr53_p_to_He4_V50_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr53 + p --> He4 + V50 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real V50_log_pf, dV50_log_pf_dT9; + + // interpolating V50 partition function + get_partition_function_cached(V50, tfactors.T9, pf_cache, V50_log_pf, dV50_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr53_log_pf, dCr53_log_pf_dT9; + + // interpolating Cr53 partition function + get_partition_function_cached(Cr53, tfactors.T9, pf_cache, Cr53_log_pf, dCr53_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + V50_log_pf - p_log_pf - Cr53_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dV50_log_pf_dT9 - dp_log_pf_dT9 - dCr53_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 45.51124377054887 + -13.929190962934259 * tfactors.T9i + -84.4058 * tfactors.T913i + 13.5454 * tfactors.T913 + + -3.26175 * tfactors.T9 + 0.249401 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 13.929190962934259 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.4058 * tfactors.T943i + (1.0/3.0) * 13.5454 * tfactors.T923i + + -3.26175 + (5.0/3.0) * 0.249401 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr53_He4_to_n_Fe56_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr53 + He4 --> n + Fe56 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe56_log_pf, dFe56_log_pf_dT9; + + // interpolating Fe56 partition function + get_partition_function_cached(Fe56, tfactors.T9, pf_cache, Fe56_log_pf, dFe56_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr53_log_pf, dCr53_log_pf_dT9; + + // interpolating Cr53 partition function + get_partition_function_cached(Cr53, tfactors.T9, pf_cache, Cr53_log_pf, dCr53_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Fe56_log_pf - He4_log_pf - Cr53_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dFe56_log_pf_dT9 - dHe4_log_pf_dT9 - dCr53_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -118.58716166402291 + -3.7930786712908855 * tfactors.T9i + 108.603 * tfactors.T913 + + -15.5995 * tfactors.T9 + 1.14343 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 3.7930786712908855 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 108.603 * tfactors.T923i + + -15.5995 + (5.0/3.0) * 1.14343 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr54_n_to_He4_Ti51_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr54 + n --> He4 + Ti51 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr54_log_pf, dCr54_log_pf_dT9; + + // interpolating Cr54 partition function + get_partition_function_cached(Cr54, tfactors.T9, pf_cache, Cr54_log_pf, dCr54_log_pf_dT9); + + amrex::Real Ti51_log_pf, dTi51_log_pf_dT9; + + // interpolating Ti51 partition function + get_partition_function_cached(Ti51, tfactors.T9, pf_cache, Ti51_log_pf, dTi51_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Ti51_log_pf - n_log_pf - Cr54_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dTi51_log_pf_dT9 - dn_log_pf_dT9 - dCr54_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = -985.1108785724574 + -2.19477222864937 * tfactors.T9i + -1722.81 * tfactors.T913i + 2829.38 * tfactors.T913 + + -169.068 * tfactors.T9 + 9.70315 * tfactors.T953 + -1326.98 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 2.19477222864937 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1722.81 * tfactors.T943i + (1.0/3.0) * 2829.38 * tfactors.T923i + + -169.068 + (5.0/3.0) * 9.70315 * tfactors.T923 + -1326.98 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr54_p_to_n_Mn54_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr54 + p --> n + Mn54 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn54_log_pf, dMn54_log_pf_dT9; + + // interpolating Mn54 partition function + get_partition_function_cached(Mn54, tfactors.T9, pf_cache, Mn54_log_pf, dMn54_log_pf_dT9); + + amrex::Real Cr54_log_pf, dCr54_log_pf_dT9; + + // interpolating Cr54 partition function + get_partition_function_cached(Cr54, tfactors.T9, pf_cache, Cr54_log_pf, dCr54_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Mn54_log_pf - p_log_pf - Cr54_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dMn54_log_pf_dT9 - dp_log_pf_dT9 - dCr54_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 17.906161212814002 + -25.060270623253924 * tfactors.T9i + -1.70783 * tfactors.T913 + + 0.767763 * tfactors.T9 + -0.0572818 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 25.060270623253924 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.70783 * tfactors.T923i + + 0.767763 + (5.0/3.0) * -0.0572818 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr54_He4_to_n_Fe57_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cr54 + He4 --> n + Fe57 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe57_log_pf, dFe57_log_pf_dT9; + + // interpolating Fe57 partition function + get_partition_function_cached(Fe57, tfactors.T9, pf_cache, Fe57_log_pf, dFe57_log_pf_dT9); + + amrex::Real Cr54_log_pf, dCr54_log_pf_dT9; + + // interpolating Cr54 partition function + get_partition_function_cached(Cr54, tfactors.T9, pf_cache, Cr54_log_pf, dCr54_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Fe57_log_pf - He4_log_pf - Cr54_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dFe57_log_pf_dT9 - dHe4_log_pf_dT9 - dCr54_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -7.315867814790115 + -27.848084285496256 * tfactors.T9i + 4.48478 * tfactors.T913 + + 2.88431 * tfactors.T9 + -0.366076 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 27.848084285496256 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 4.48478 * tfactors.T923i + + 2.88431 + (5.0/3.0) * -0.366076 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn50_He4_to_n_Co53_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn50 + He4 --> n + Co53 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Co53_log_pf, dCo53_log_pf_dT9; + + // interpolating Co53 partition function + get_partition_function_cached(Co53, tfactors.T9, pf_cache, Co53_log_pf, dCo53_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn50_log_pf, dMn50_log_pf_dT9; + + // interpolating Mn50 partition function + get_partition_function_cached(Mn50, tfactors.T9, pf_cache, Mn50_log_pf, dMn50_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Co53_log_pf - He4_log_pf - Mn50_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCo53_log_pf_dT9 - dHe4_log_pf_dT9 - dMn50_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 8.57460099792486 + -65.14651411548037 * tfactors.T9i + 4.96211 * tfactors.T913 + + -1.17699 * tfactors.T9 + 0.226 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 65.14651411548037 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 4.96211 * tfactors.T923i + + -1.17699 + (5.0/3.0) * 0.226 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn51_p_to_He4_Cr48_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn51 + p --> He4 + Cr48 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr48_log_pf, dCr48_log_pf_dT9; + + // interpolating Cr48 partition function + get_partition_function_cached(Cr48, tfactors.T9, pf_cache, Cr48_log_pf, dCr48_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn51_log_pf, dMn51_log_pf_dT9; + + // interpolating Mn51 partition function + get_partition_function_cached(Mn51, tfactors.T9, pf_cache, Mn51_log_pf, dMn51_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Cr48_log_pf - p_log_pf - Mn51_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCr48_log_pf_dT9 - dp_log_pf_dT9 - dMn51_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 58.71348267023461 + -6.47700151570639 * tfactors.T9i + -86.7459 * tfactors.T913i + 1.05653 * tfactors.T913 + + -1.15757 * tfactors.T9 + 0.0877546 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 6.47700151570639 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -86.7459 * tfactors.T943i + (1.0/3.0) * 1.05653 * tfactors.T923i + + -1.15757 + (5.0/3.0) * 0.0877546 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn51_He4_to_n_Co54_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn51 + He4 --> n + Co54 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn51_log_pf, dMn51_log_pf_dT9; + + // interpolating Mn51 partition function + get_partition_function_cached(Mn51, tfactors.T9, pf_cache, Mn51_log_pf, dMn51_log_pf_dT9); + + amrex::Real Co54_log_pf, dCo54_log_pf_dT9; + + // interpolating Co54 partition function + get_partition_function_cached(Co54, tfactors.T9, pf_cache, Co54_log_pf, dCo54_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + Co54_log_pf - He4_log_pf - Mn51_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCo54_log_pf_dT9 - dHe4_log_pf_dT9 - dMn51_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 11.212379042736773 + -68.22879017373012 * tfactors.T9i + -1.92176 * tfactors.T913 + + 1.2968 * tfactors.T9 + -0.117145 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 68.22879017373012 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.92176 * tfactors.T923i + + 1.2968 + (5.0/3.0) * -0.117145 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn52_p_to_n_Fe52_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn52 + p --> n + Fe52 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn52_log_pf, dMn52_log_pf_dT9; + + // interpolating Mn52 partition function + get_partition_function_cached(Mn52, tfactors.T9, pf_cache, Mn52_log_pf, dMn52_log_pf_dT9); + + amrex::Real Fe52_log_pf, dFe52_log_pf_dT9; + + // interpolating Fe52 partition function + get_partition_function_cached(Fe52, tfactors.T9, pf_cache, Fe52_log_pf, dFe52_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Fe52_log_pf - p_log_pf - Mn52_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dFe52_log_pf_dT9 - dp_log_pf_dT9 - dMn52_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 15.385756109542921 + -36.68927427806889 * tfactors.T9i + 0.569856 * tfactors.T913 + + 0.390117 * tfactors.T9 + -0.0479043 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 36.68927427806889 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.569856 * tfactors.T923i + + 0.390117 + (5.0/3.0) * -0.0479043 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn52_p_to_He4_Cr49_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn52 + p --> He4 + Cr49 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn52_log_pf, dMn52_log_pf_dT9; + + // interpolating Mn52 partition function + get_partition_function_cached(Mn52, tfactors.T9, pf_cache, Mn52_log_pf, dMn52_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cr49_log_pf, dCr49_log_pf_dT9; + + // interpolating Cr49 partition function + get_partition_function_cached(Cr49, tfactors.T9, pf_cache, Cr49_log_pf, dCr49_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Cr49_log_pf - p_log_pf - Mn52_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCr49_log_pf_dT9 - dp_log_pf_dT9 - dMn52_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 53.01374392177941 + -5.975570287637617 * tfactors.T9i + -86.7913 * tfactors.T913i + 10.6892 * tfactors.T913 + + -4.01586 * tfactors.T9 + 0.411275 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 5.975570287637617 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -86.7913 * tfactors.T943i + (1.0/3.0) * 10.6892 * tfactors.T923i + + -4.01586 + (5.0/3.0) * 0.411275 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn52_He4_to_n_Co55_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn52 + He4 --> n + Co55 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn52_log_pf, dMn52_log_pf_dT9; + + // interpolating Mn52 partition function + get_partition_function_cached(Mn52, tfactors.T9, pf_cache, Mn52_log_pf, dMn52_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Co55_log_pf, dCo55_log_pf_dT9; + + // interpolating Co55 partition function + get_partition_function_cached(Co55, tfactors.T9, pf_cache, Co55_log_pf, dCo55_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Co55_log_pf - He4_log_pf - Mn52_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCo55_log_pf_dT9 - dHe4_log_pf_dT9 - dMn52_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -14.314644699269245 + -27.01290711629877 * tfactors.T9i + 8.15876 * tfactors.T913 + + 3.05978 * tfactors.T9 + -0.406535 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 27.01290711629877 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 8.15876 * tfactors.T923i + + 3.05978 + (5.0/3.0) * -0.406535 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn53_p_to_n_Fe53_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn53 + p --> n + Fe53 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn53_log_pf, dMn53_log_pf_dT9; + + // interpolating Mn53 partition function + get_partition_function_cached(Mn53, tfactors.T9, pf_cache, Mn53_log_pf, dMn53_log_pf_dT9); + + amrex::Real Fe53_log_pf, dFe53_log_pf_dT9; + + // interpolating Fe53 partition function + get_partition_function_cached(Fe53, tfactors.T9, pf_cache, Fe53_log_pf, dFe53_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Fe53_log_pf - p_log_pf - Mn53_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dFe53_log_pf_dT9 - dp_log_pf_dT9 - dMn53_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 21.126172273916662 + -52.51215078196516 * tfactors.T9i + -1.19445 * tfactors.T913 + + 0.393603 * tfactors.T9 + -0.0404022 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 52.51215078196516 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.19445 * tfactors.T923i + + 0.393603 + (5.0/3.0) * -0.0404022 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn53_He4_to_n_Co56_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn53 + He4 --> n + Co56 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn53_log_pf, dMn53_log_pf_dT9; + + // interpolating Mn53 partition function + get_partition_function_cached(Mn53, tfactors.T9, pf_cache, Mn53_log_pf, dMn53_log_pf_dT9); + + amrex::Real Co56_log_pf, dCo56_log_pf_dT9; + + // interpolating Co56 partition function + get_partition_function_cached(Co56, tfactors.T9, pf_cache, Co56_log_pf, dCo56_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Co56_log_pf - He4_log_pf - Mn53_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCo56_log_pf_dT9 - dHe4_log_pf_dT9 - dMn53_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 11.401304558489999 + -49.85535663187797 * tfactors.T9i + -2.81854 * tfactors.T913 + + 1.84188 * tfactors.T9 + -0.164509 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 49.85535663187797 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.81854 * tfactors.T923i + + 1.84188 + (5.0/3.0) * -0.164509 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn54_p_to_n_Fe54_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn54 + p --> n + Fe54 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn54_log_pf, dMn54_log_pf_dT9; + + // interpolating Mn54 partition function + get_partition_function_cached(Mn54, tfactors.T9, pf_cache, Mn54_log_pf, dMn54_log_pf_dT9); + + amrex::Real Fe54_log_pf, dFe54_log_pf_dT9; + + // interpolating Fe54 partition function + get_partition_function_cached(Fe54, tfactors.T9, pf_cache, Fe54_log_pf, dFe54_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Fe54_log_pf - p_log_pf - Mn54_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dFe54_log_pf_dT9 - dp_log_pf_dT9 - dMn54_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -45.0757622596727 + -0.9973739368340075 * tfactors.T9i + 51.9922 * tfactors.T913 + + -7.26639 * tfactors.T9 + 0.502147 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 0.9973739368340075 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 51.9922 * tfactors.T923i + + -7.26639 + (5.0/3.0) * 0.502147 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn54_He4_to_n_Co57_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn54 + He4 --> n + Co57 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn54_log_pf, dMn54_log_pf_dT9; + + // interpolating Mn54 partition function + get_partition_function_cached(Mn54, tfactors.T9, pf_cache, Mn54_log_pf, dMn54_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Co57_log_pf, dCo57_log_pf_dT9; + + // interpolating Co57 partition function + get_partition_function_cached(Co57, tfactors.T9, pf_cache, Co57_log_pf, dCo57_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Co57_log_pf - He4_log_pf - Mn54_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCo57_log_pf_dT9 - dHe4_log_pf_dT9 - dMn54_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -31.725652704007366 + -21.571664614287947 * tfactors.T9i + 26.4125 * tfactors.T913 + + -0.137701 * tfactors.T9 + -0.184911 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 21.571664614287947 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 26.4125 * tfactors.T923i + + -0.137701 + (5.0/3.0) * -0.184911 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn54_He4_to_p_Fe57_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn54 + He4 --> p + Fe57 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe57_log_pf, dFe57_log_pf_dT9; + + // interpolating Fe57 partition function + get_partition_function_cached(Fe57, tfactors.T9, pf_cache, Fe57_log_pf, dFe57_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn54_log_pf, dMn54_log_pf_dT9; + + // interpolating Mn54 partition function + get_partition_function_cached(Mn54, tfactors.T9, pf_cache, Mn54_log_pf, dMn54_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Fe57_log_pf - He4_log_pf - Mn54_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dFe57_log_pf_dT9 - dHe4_log_pf_dT9 - dMn54_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -90.97216902760412 + -2.787813662242334 * tfactors.T9i + -37.1663 * tfactors.T913i + 123.946 * tfactors.T913 + + -27.2803 * tfactors.T9 + 2.75453 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 2.787813662242334 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -37.1663 * tfactors.T943i + (1.0/3.0) * 123.946 * tfactors.T923i + + -27.2803 + (5.0/3.0) * 2.75453 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn55_n_to_He4_V52_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn55 + n --> He4 + V52 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real V52_log_pf, dV52_log_pf_dT9; + + // interpolating V52 partition function + get_partition_function_cached(V52, tfactors.T9, pf_cache, V52_log_pf, dV52_log_pf_dT9); + + amrex::Real Mn55_log_pf, dMn55_log_pf_dT9; + + // interpolating Mn55 partition function + get_partition_function_cached(Mn55, tfactors.T9, pf_cache, Mn55_log_pf, dMn55_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + V52_log_pf - n_log_pf - Mn55_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dV52_log_pf_dT9 - dn_log_pf_dT9 - dMn55_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from rath + ln_set_rate = -1025.3334703436808 + 9.258134591391073 * tfactors.T9i + -1790.25 * tfactors.T913i + 2939.64 * tfactors.T913 + + -175.533 * tfactors.T9 + 10.0701 * tfactors.T953 + -1379.09 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = -9.258134591391073 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1790.25 * tfactors.T943i + (1.0/3.0) * 2939.64 * tfactors.T923i + + -175.533 + (5.0/3.0) * 10.0701 * tfactors.T923 + -1379.09 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn55_p_to_n_Fe55_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn55 + p --> n + Fe55 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe55_log_pf, dFe55_log_pf_dT9; + + // interpolating Fe55 partition function + get_partition_function_cached(Fe55, tfactors.T9, pf_cache, Fe55_log_pf, dFe55_log_pf_dT9); + + amrex::Real Mn55_log_pf, dMn55_log_pf_dT9; + + // interpolating Mn55 partition function + get_partition_function_cached(Mn55, tfactors.T9, pf_cache, Mn55_log_pf, dMn55_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Fe55_log_pf - p_log_pf - Mn55_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dFe55_log_pf_dT9 - dp_log_pf_dT9 - dMn55_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 4.303018723382757 + -11.761028675301535 * tfactors.T9i + 7.03052 * tfactors.T913 + + 0.260509 * tfactors.T9 + -0.0813397 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 11.761028675301535 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 7.03052 * tfactors.T923i + + 0.260509 + (5.0/3.0) * -0.0813397 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn55_He4_to_n_Co58_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn55 + He4 --> n + Co58 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Co58_log_pf, dCo58_log_pf_dT9; + + // interpolating Co58 partition function + get_partition_function_cached(Co58, tfactors.T9, pf_cache, Co58_log_pf, dCo58_log_pf_dT9); + + amrex::Real Mn55_log_pf, dMn55_log_pf_dT9; + + // interpolating Mn55 partition function + get_partition_function_cached(Mn55, tfactors.T9, pf_cache, Mn55_log_pf, dMn55_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Co58_log_pf - He4_log_pf - Mn55_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCo58_log_pf_dT9 - dHe4_log_pf_dT9 - dMn55_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 9.166038229529399 + -40.750915894529726 * tfactors.T9i + -5.4323 * tfactors.T913 + + 3.33275 * tfactors.T9 + -0.339917 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 40.750915894529726 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -5.4323 * tfactors.T923i + + 3.33275 + (5.0/3.0) * -0.339917 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn55_He4_to_p_Fe58_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Mn55 + He4 --> p + Fe58 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Mn55_log_pf, dMn55_log_pf_dT9; + + // interpolating Mn55 partition function + get_partition_function_cached(Mn55, tfactors.T9, pf_cache, Mn55_log_pf, dMn55_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe58_log_pf, dFe58_log_pf_dT9; + + // interpolating Fe58 partition function + get_partition_function_cached(Fe58, tfactors.T9, pf_cache, Fe58_log_pf, dFe58_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Fe58_log_pf - He4_log_pf - Mn55_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dFe58_log_pf_dT9 - dHe4_log_pf_dT9 - dMn55_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -77.59548914250797 + -4.888927713290169 * tfactors.T9i + -37.17 * tfactors.T913i + 110.878 * tfactors.T913 + + -24.5555 * tfactors.T9 + 2.47003 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 4.888927713290169 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -37.17 * tfactors.T943i + (1.0/3.0) * 110.878 * tfactors.T923i + + -24.5555 + (5.0/3.0) * 2.47003 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe53_p_to_n_Co53_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe53 + p --> n + Co53 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Co53_log_pf, dCo53_log_pf_dT9; + + // interpolating Co53 partition function + get_partition_function_cached(Co53, tfactors.T9, pf_cache, Co53_log_pf, dCo53_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe53_log_pf, dFe53_log_pf_dT9; + + // interpolating Fe53 partition function + get_partition_function_cached(Fe53, tfactors.T9, pf_cache, Fe53_log_pf, dFe53_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Co53_log_pf - p_log_pf - Fe53_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCo53_log_pf_dT9 - dp_log_pf_dT9 - dFe53_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 21.5296026380595 + -105.25816699982406 * tfactors.T9i + -0.94587 * tfactors.T913 + + 0.327891 * tfactors.T9 + -0.0355667 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 105.25816699982406 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.94587 * tfactors.T923i + + 0.327891 + (5.0/3.0) * -0.0355667 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe53_p_to_He4_Mn50_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe53 + p --> He4 + Mn50 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Mn50_log_pf, dMn50_log_pf_dT9; + + // interpolating Mn50 partition function + get_partition_function_cached(Mn50, tfactors.T9, pf_cache, Mn50_log_pf, dMn50_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe53_log_pf, dFe53_log_pf_dT9; + + // interpolating Fe53 partition function + get_partition_function_cached(Fe53, tfactors.T9, pf_cache, Fe53_log_pf, dFe53_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He4_log_pf + Mn50_log_pf - p_log_pf - Fe53_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dMn50_log_pf_dT9 - dp_log_pf_dT9 - dFe53_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 61.873981640134645 + -40.111652884372496 * tfactors.T9i + -89.2309 * tfactors.T913i + -1.4758 * tfactors.T913 + + -0.437831 * tfactors.T9 + -0.00354594 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 40.111652884372496 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -89.2309 * tfactors.T943i + (1.0/3.0) * -1.4758 * tfactors.T923i + + -0.437831 + (5.0/3.0) * -0.00354594 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe53_He4_to_n_Ni56_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe53 + He4 --> n + Ni56 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni56_log_pf, dNi56_log_pf_dT9; + + // interpolating Ni56 partition function + get_partition_function_cached(Ni56, tfactors.T9, pf_cache, Ni56_log_pf, dNi56_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe53_log_pf, dFe53_log_pf_dT9; + + // interpolating Fe53 partition function + get_partition_function_cached(Fe53, tfactors.T9, pf_cache, Fe53_log_pf, dFe53_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ni56_log_pf - He4_log_pf - Fe53_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNi56_log_pf_dT9 - dHe4_log_pf_dT9 - dFe53_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -11.207137423641244 + -31.17324290806502 * tfactors.T9i + 6.43259 * tfactors.T913 + + 2.29591 * tfactors.T9 + -0.254724 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 31.17324290806502 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 6.43259 * tfactors.T923i + + 2.29591 + (5.0/3.0) * -0.254724 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe54_p_to_n_Co54_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe54 + p --> n + Co54 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Co54_log_pf, dCo54_log_pf_dT9; + + // interpolating Co54 partition function + get_partition_function_cached(Co54, tfactors.T9, pf_cache, Co54_log_pf, dCo54_log_pf_dT9); + + amrex::Real Fe54_log_pf, dFe54_log_pf_dT9; + + // interpolating Fe54 partition function + get_partition_function_cached(Fe54, tfactors.T9, pf_cache, Fe54_log_pf, dFe54_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + Co54_log_pf - p_log_pf - Fe54_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCo54_log_pf_dT9 - dp_log_pf_dT9 - dFe54_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 21.695692725724818 + -104.75221000973464 * tfactors.T9i + -1.41064 * tfactors.T913 + + 0.417457 * tfactors.T9 + -0.0400596 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 104.75221000973464 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.41064 * tfactors.T923i + + 0.417457 + (5.0/3.0) * -0.0400596 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe54_p_to_He4_Mn51_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe54 + p --> He4 + Mn51 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn51_log_pf, dMn51_log_pf_dT9; + + // interpolating Mn51 partition function + get_partition_function_cached(Mn51, tfactors.T9, pf_cache, Mn51_log_pf, dMn51_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe54_log_pf, dFe54_log_pf_dT9; + + // interpolating Fe54 partition function + get_partition_function_cached(Fe54, tfactors.T9, pf_cache, Fe54_log_pf, dFe54_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Mn51_log_pf - p_log_pf - Fe54_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dMn51_log_pf_dT9 - dp_log_pf_dT9 - dFe54_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 65.35241368298804 + -36.52341983603332 * tfactors.T9i + -89.274 * tfactors.T913i + -0.862452 * tfactors.T913 + + -0.635672 * tfactors.T9 + 0.0196464 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 36.52341983603332 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -89.274 * tfactors.T943i + (1.0/3.0) * -0.862452 * tfactors.T923i + + -0.635672 + (5.0/3.0) * 0.0196464 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe54_He4_to_n_Ni57_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe54 + He4 --> n + Ni57 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni57_log_pf, dNi57_log_pf_dT9; + + // interpolating Ni57 partition function + get_partition_function_cached(Ni57, tfactors.T9, pf_cache, Ni57_log_pf, dNi57_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe54_log_pf, dFe54_log_pf_dT9; + + // interpolating Fe54 partition function + get_partition_function_cached(Fe54, tfactors.T9, pf_cache, Fe54_log_pf, dFe54_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ni57_log_pf - He4_log_pf - Fe54_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNi57_log_pf_dT9 - dHe4_log_pf_dT9 - dFe54_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 14.633898659996703 + -67.50350779116859 * tfactors.T9i + 0.48562 * tfactors.T913 + + -0.0249302 * tfactors.T9 + 0.0509605 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 67.50350779116859 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.48562 * tfactors.T923i + + -0.0249302 + (5.0/3.0) * 0.0509605 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe54_He4_to_p_Co57_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe54 + He4 --> p + Co57 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Co57_log_pf, dCo57_log_pf_dT9; + + // interpolating Co57 partition function + get_partition_function_cached(Co57, tfactors.T9, pf_cache, Co57_log_pf, dCo57_log_pf_dT9); + + amrex::Real Fe54_log_pf, dFe54_log_pf_dT9; + + // interpolating Fe54 partition function + get_partition_function_cached(Fe54, tfactors.T9, pf_cache, Fe54_log_pf, dFe54_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Co57_log_pf - He4_log_pf - Fe54_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCo57_log_pf_dT9 - dHe4_log_pf_dT9 - dFe54_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -1.404090444334669 + -20.574290677453938 * tfactors.T9i + -38.1133 * tfactors.T913i + 29.3541 * tfactors.T913 + + -4.75966 * tfactors.T9 + 0.40418 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 20.574290677453938 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -38.1133 * tfactors.T943i + (1.0/3.0) * 29.3541 * tfactors.T923i + + -4.75966 + (5.0/3.0) * 0.40418 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe55_p_to_n_Co55_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe55 + p --> n + Co55 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Co55_log_pf, dCo55_log_pf_dT9; + + // interpolating Co55 partition function + get_partition_function_cached(Co55, tfactors.T9, pf_cache, Co55_log_pf, dCo55_log_pf_dT9); + + amrex::Real Fe55_log_pf, dFe55_log_pf_dT9; + + // interpolating Fe55 partition function + get_partition_function_cached(Fe55, tfactors.T9, pf_cache, Fe55_log_pf, dFe55_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Co55_log_pf - p_log_pf - Fe55_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCo55_log_pf_dT9 - dp_log_pf_dT9 - dFe55_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 21.4351983233521 + -49.13059420131897 * tfactors.T9i + -1.62382 * tfactors.T913 + + 0.58115 * tfactors.T9 + -0.0537057 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 49.13059420131897 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.62382 * tfactors.T923i + + 0.58115 + (5.0/3.0) * -0.0537057 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe55_p_to_He4_Mn52_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe55 + p --> He4 + Mn52 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn52_log_pf, dMn52_log_pf_dT9; + + // interpolating Mn52 partition function + get_partition_function_cached(Mn52, tfactors.T9, pf_cache, Mn52_log_pf, dMn52_log_pf_dT9); + + amrex::Real Fe55_log_pf, dFe55_log_pf_dT9; + + // interpolating Fe55 partition function + get_partition_function_cached(Fe55, tfactors.T9, pf_cache, Fe55_log_pf, dFe55_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Mn52_log_pf - p_log_pf - Fe55_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dMn52_log_pf_dT9 - dp_log_pf_dT9 - dFe55_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 59.132043022621346 + -22.1176870850202 * tfactors.T9i + -89.3157 * tfactors.T913i + 5.65639 * tfactors.T913 + + -2.28952 * tfactors.T9 + 0.186017 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 22.1176870850202 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -89.3157 * tfactors.T943i + (1.0/3.0) * 5.65639 * tfactors.T923i + + -2.28952 + (5.0/3.0) * 0.186017 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe55_He4_to_n_Ni58_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe55 + He4 --> n + Ni58 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni58_log_pf, dNi58_log_pf_dT9; + + // interpolating Ni58 partition function + get_partition_function_cached(Ni58, tfactors.T9, pf_cache, Ni58_log_pf, dNi58_log_pf_dT9); + + amrex::Real Fe55_log_pf, dFe55_log_pf_dT9; + + // interpolating Fe55 partition function + get_partition_function_cached(Fe55, tfactors.T9, pf_cache, Fe55_log_pf, dFe55_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ni58_log_pf - He4_log_pf - Fe55_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNi58_log_pf_dT9 - dHe4_log_pf_dT9 - dFe55_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -4.711973544129908 + -33.64036346067392 * tfactors.T9i + 3.44996 * tfactors.T913 + + 2.98226 * tfactors.T9 + -0.387699 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 33.64036346067392 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 3.44996 * tfactors.T923i + + 2.98226 + (5.0/3.0) * -0.387699 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe55_He4_to_p_Co58_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe55 + He4 --> p + Co58 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Co58_log_pf, dCo58_log_pf_dT9; + + // interpolating Co58 partition function + get_partition_function_cached(Co58, tfactors.T9, pf_cache, Co58_log_pf, dCo58_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe55_log_pf, dFe55_log_pf_dT9; + + // interpolating Fe55 partition function + get_partition_function_cached(Fe55, tfactors.T9, pf_cache, Fe55_log_pf, dFe55_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Co58_log_pf - He4_log_pf - Fe55_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCo58_log_pf_dT9 - dHe4_log_pf_dT9 - dFe55_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 14.035609506146642 + -28.98988721924979 * tfactors.T9i + -38.1171 * tfactors.T913i + 13.2187 * tfactors.T913 + + -1.74746 * tfactors.T9 + 0.142513 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 28.98988721924979 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -38.1171 * tfactors.T943i + (1.0/3.0) * 13.2187 * tfactors.T923i + + -1.74746 + (5.0/3.0) * 0.142513 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe56_p_to_n_Co56_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe56 + p --> n + Co56 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe56_log_pf, dFe56_log_pf_dT9; + + // interpolating Fe56 partition function + get_partition_function_cached(Fe56, tfactors.T9, pf_cache, Fe56_log_pf, dFe56_log_pf_dT9); + + amrex::Real Co56_log_pf, dCo56_log_pf_dT9; + + // interpolating Co56 partition function + get_partition_function_cached(Co56, tfactors.T9, pf_cache, Co56_log_pf, dCo56_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Co56_log_pf - p_log_pf - Fe56_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCo56_log_pf_dT9 - dp_log_pf_dT9 - dFe56_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 22.653426224164285 + -62.07264908160129 * tfactors.T9i + -1.13331 * tfactors.T913 + + 0.347185 * tfactors.T9 + -0.0328879 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 62.07264908160129 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.13331 * tfactors.T923i + + 0.347185 + (5.0/3.0) * -0.0328879 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe56_p_to_He4_Mn53_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe56 + p --> He4 + Mn53 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Mn53_log_pf, dMn53_log_pf_dT9; + + // interpolating Mn53 partition function + get_partition_function_cached(Mn53, tfactors.T9, pf_cache, Mn53_log_pf, dMn53_log_pf_dT9); + + amrex::Real Fe56_log_pf, dFe56_log_pf_dT9; + + // interpolating Fe56 partition function + get_partition_function_cached(Fe56, tfactors.T9, pf_cache, Fe56_log_pf, dFe56_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Mn53_log_pf - p_log_pf - Fe56_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dMn53_log_pf_dT9 - dp_log_pf_dT9 - dFe56_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 57.383021665674285 + -12.217292449723331 * tfactors.T9i + -89.3558 * tfactors.T913i + 9.25287 * tfactors.T913 + + -3.70352 * tfactors.T9 + 0.372202 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 12.217292449723331 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -89.3558 * tfactors.T943i + (1.0/3.0) * 9.25287 * tfactors.T923i + + -3.70352 + (5.0/3.0) * 0.372202 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe56_He4_to_n_Ni59_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe56 + He4 --> n + Ni59 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe56_log_pf, dFe56_log_pf_dT9; + + // interpolating Fe56 partition function + get_partition_function_cached(Fe56, tfactors.T9, pf_cache, Fe56_log_pf, dFe56_log_pf_dT9); + + amrex::Real Ni59_log_pf, dNi59_log_pf_dT9; + + // interpolating Ni59 partition function + get_partition_function_cached(Ni59, tfactors.T9, pf_cache, Ni59_log_pf, dNi59_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ni59_log_pf - He4_log_pf - Fe56_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNi59_log_pf_dT9 - dHe4_log_pf_dT9 - dFe56_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 16.506643934470574 + -59.145469659356124 * tfactors.T9i + -4.21617 * tfactors.T913 + + 1.58032 * tfactors.T9 + -0.126895 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 59.145469659356124 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -4.21617 * tfactors.T923i + + 1.58032 + (5.0/3.0) * -0.126895 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe56_He4_to_p_Co59_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe56 + He4 --> p + Co59 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Co59_log_pf, dCo59_log_pf_dT9; + + // interpolating Co59 partition function + get_partition_function_cached(Co59, tfactors.T9, pf_cache, Co59_log_pf, dCo59_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe56_log_pf, dFe56_log_pf_dT9; + + // interpolating Fe56 partition function + get_partition_function_cached(Fe56, tfactors.T9, pf_cache, Fe56_log_pf, dFe56_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Co59_log_pf - He4_log_pf - Fe56_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCo59_log_pf_dT9 - dHe4_log_pf_dT9 - dFe56_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 20.259359710560428 + -37.615061358312715 * tfactors.T9i + -38.1208 * tfactors.T913i + 13.9086 * tfactors.T913 + + -3.45838 * tfactors.T9 + 0.391302 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 37.615061358312715 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -38.1208 * tfactors.T943i + (1.0/3.0) * 13.9086 * tfactors.T923i + + -3.45838 + (5.0/3.0) * 0.391302 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe57_p_to_n_Co57_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe57 + p --> n + Co57 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe57_log_pf, dFe57_log_pf_dT9; + + // interpolating Fe57 partition function + get_partition_function_cached(Fe57, tfactors.T9, pf_cache, Fe57_log_pf, dFe57_log_pf_dT9); + + amrex::Real Co57_log_pf, dCo57_log_pf_dT9; + + // interpolating Co57 partition function + get_partition_function_cached(Co57, tfactors.T9, pf_cache, Co57_log_pf, dCo57_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Co57_log_pf - p_log_pf - Fe57_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCo57_log_pf_dT9 - dp_log_pf_dT9 - dFe57_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 14.93541632359675 + -18.78385095204561 * tfactors.T9i + -0.061056 * tfactors.T913 + + 1.28749 * tfactors.T9 + -0.156423 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 18.78385095204561 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.061056 * tfactors.T923i + + 1.28749 + (5.0/3.0) * -0.156423 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe57_He4_to_n_Ni60_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe57 + He4 --> n + Ni60 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe57_log_pf, dFe57_log_pf_dT9; + + // interpolating Fe57 partition function + get_partition_function_cached(Fe57, tfactors.T9, pf_cache, Fe57_log_pf, dFe57_log_pf_dT9); + + amrex::Real Ni60_log_pf, dNi60_log_pf_dT9; + + // interpolating Ni60 partition function + get_partition_function_cached(Ni60, tfactors.T9, pf_cache, Ni60_log_pf, dNi60_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ni60_log_pf - He4_log_pf - Fe57_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNi60_log_pf_dT9 - dHe4_log_pf_dT9 - dFe57_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -62.39470944917997 + -15.726700926817026 * tfactors.T9i + 55.1407 * tfactors.T913 + + -5.1585 * tfactors.T9 + 0.212248 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 15.726700926817026 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 55.1407 * tfactors.T923i + + -5.1585 + (5.0/3.0) * 0.212248 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe58_p_to_n_Co58_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe58 + p --> n + Co58 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe58_log_pf, dFe58_log_pf_dT9; + + // interpolating Fe58 partition function + get_partition_function_cached(Fe58, tfactors.T9, pf_cache, Fe58_log_pf, dFe58_log_pf_dT9); + + amrex::Real Co58_log_pf, dCo58_log_pf_dT9; + + // interpolating Co58 partition function + get_partition_function_cached(Co58, tfactors.T9, pf_cache, Co58_log_pf, dCo58_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Co58_log_pf - p_log_pf - Fe58_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCo58_log_pf_dT9 - dp_log_pf_dT9 - dFe58_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 21.16122737203737 + -35.86198818123956 * tfactors.T9i + -3.2947 * tfactors.T913 + + 0.833003 * tfactors.T9 + -0.0604538 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 35.86198818123956 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -3.2947 * tfactors.T923i + + 0.833003 + (5.0/3.0) * -0.0604538 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe58_He4_to_n_Ni61_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Fe58 + He4 --> n + Ni61 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni61_log_pf, dNi61_log_pf_dT9; + + // interpolating Ni61 partition function + get_partition_function_cached(Ni61, tfactors.T9, pf_cache, Ni61_log_pf, dNi61_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe58_log_pf, dFe58_log_pf_dT9; + + // interpolating Fe58 partition function + get_partition_function_cached(Fe58, tfactors.T9, pf_cache, Fe58_log_pf, dFe58_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ni61_log_pf - He4_log_pf - Fe58_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNi61_log_pf_dT9 - dHe4_log_pf_dT9 - dFe58_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 10.61413933050334 + -41.54071939789834 * tfactors.T9i + -7.53968 * tfactors.T913 + + 4.09062 * tfactors.T9 + -0.416412 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 41.54071939789834 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -7.53968 * tfactors.T923i + + 4.09062 + (5.0/3.0) * -0.416412 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co54_He4_to_n_Cu57_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co54 + He4 --> n + Cu57 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Co54_log_pf, dCo54_log_pf_dT9; + + // interpolating Co54 partition function + get_partition_function_cached(Co54, tfactors.T9, pf_cache, Co54_log_pf, dCo54_log_pf_dT9); + + amrex::Real Cu57_log_pf, dCu57_log_pf_dT9; + + // interpolating Cu57 partition function + get_partition_function_cached(Cu57, tfactors.T9, pf_cache, Cu57_log_pf, dCu57_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cu57_log_pf - He4_log_pf - Co54_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCu57_log_pf_dT9 - dHe4_log_pf_dT9 - dCo54_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 10.60180204992931 + -73.65970465473055 * tfactors.T9i + 1.52892 * tfactors.T913 + + -0.01999 * tfactors.T9 + 0.0715186 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 73.65970465473055 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.52892 * tfactors.T923i + + -0.01999 + (5.0/3.0) * 0.0715186 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co55_p_to_He4_Fe52_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co55 + p --> He4 + Fe52 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Co55_log_pf, dCo55_log_pf_dT9; + + // interpolating Co55 partition function + get_partition_function_cached(Co55, tfactors.T9, pf_cache, Co55_log_pf, dCo55_log_pf_dT9); + + amrex::Real Fe52_log_pf, dFe52_log_pf_dT9; + + // interpolating Fe52 partition function + get_partition_function_cached(Fe52, tfactors.T9, pf_cache, Fe52_log_pf, dFe52_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Fe52_log_pf - p_log_pf - Co55_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dFe52_log_pf_dT9 - dp_log_pf_dT9 - dCo55_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 61.42570080881217 + -9.676367161770125 * tfactors.T9i + -91.6819 * tfactors.T913i + -0.329235 * tfactors.T913 + + -0.780924 * tfactors.T9 + 0.0425179 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 9.676367161770125 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -91.6819 * tfactors.T943i + (1.0/3.0) * -0.329235 * tfactors.T923i + + -0.780924 + (5.0/3.0) * 0.0425179 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co55_He4_to_n_Cu58_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co55 + He4 --> n + Cu58 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Co55_log_pf, dCo55_log_pf_dT9; + + // interpolating Co55 partition function + get_partition_function_cached(Co55, tfactors.T9, pf_cache, Co55_log_pf, dCo55_log_pf_dT9); + + amrex::Real Cu58_log_pf, dCu58_log_pf_dT9; + + // interpolating Cu58 partition function + get_partition_function_cached(Cu58, tfactors.T9, pf_cache, Cu58_log_pf, dCu58_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cu58_log_pf - He4_log_pf - Co55_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCu58_log_pf_dT9 - dHe4_log_pf_dT9 - dCo55_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 9.710529518630374 + -92.9348092545833 * tfactors.T9i + 4.29921 * tfactors.T913 + + -0.76309 * tfactors.T9 + 0.10257 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 92.9348092545833 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 4.29921 * tfactors.T923i + + -0.76309 + (5.0/3.0) * 0.10257 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co56_p_to_n_Ni56_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co56 + p --> n + Ni56 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni56_log_pf, dNi56_log_pf_dT9; + + // interpolating Ni56 partition function + get_partition_function_cached(Ni56, tfactors.T9, pf_cache, Ni56_log_pf, dNi56_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Co56_log_pf, dCo56_log_pf_dT9; + + // interpolating Co56 partition function + get_partition_function_cached(Co56, tfactors.T9, pf_cache, Co56_log_pf, dCo56_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ni56_log_pf - p_log_pf - Co56_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNi56_log_pf_dT9 - dp_log_pf_dT9 - dCo56_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 13.374260291785419 + -33.830037058152215 * tfactors.T9i + 1.76846 * tfactors.T913 + + 0.197992 * tfactors.T9 + -0.017494 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 33.830037058152215 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.76846 * tfactors.T923i + + 0.197992 + (5.0/3.0) * -0.017494 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co56_p_to_He4_Fe53_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co56 + p --> He4 + Fe53 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Fe53_log_pf, dFe53_log_pf_dT9; + + // interpolating Fe53 partition function + get_partition_function_cached(Fe53, tfactors.T9, pf_cache, Fe53_log_pf, dFe53_log_pf_dT9); + + amrex::Real Co56_log_pf, dCo56_log_pf_dT9; + + // interpolating Co56 partition function + get_partition_function_cached(Co56, tfactors.T9, pf_cache, Co56_log_pf, dCo56_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Fe53_log_pf - p_log_pf - Co56_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dFe53_log_pf_dT9 - dp_log_pf_dT9 - dCo56_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 56.029567715426666 + -2.6567941500871917 * tfactors.T9i + -91.7231 * tfactors.T913i + 10.052 * tfactors.T913 + + -3.86332 * tfactors.T9 + 0.391105 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 2.6567941500871917 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -91.7231 * tfactors.T943i + (1.0/3.0) * 10.052 * tfactors.T923i + + -3.86332 + (5.0/3.0) * 0.391105 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co56_He4_to_n_Cu59_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co56 + He4 --> n + Cu59 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu59_log_pf, dCu59_log_pf_dT9; + + // interpolating Cu59 partition function + get_partition_function_cached(Cu59, tfactors.T9, pf_cache, Cu59_log_pf, dCu59_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Co56_log_pf, dCo56_log_pf_dT9; + + // interpolating Co56 partition function + get_partition_function_cached(Co56, tfactors.T9, pf_cache, Co56_log_pf, dCo56_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cu59_log_pf - He4_log_pf - Co56_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCu59_log_pf_dT9 - dHe4_log_pf_dT9 - dCo56_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 8.911918754289905 + -61.8335402370445 * tfactors.T9i + -1.00882 * tfactors.T913 + + 1.88993 * tfactors.T9 + -0.202319 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 61.8335402370445 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.00882 * tfactors.T923i + + 1.88993 + (5.0/3.0) * -0.202319 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co57_p_to_n_Ni57_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co57 + p --> n + Ni57 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni57_log_pf, dNi57_log_pf_dT9; + + // interpolating Ni57 partition function + get_partition_function_cached(Ni57, tfactors.T9, pf_cache, Ni57_log_pf, dNi57_log_pf_dT9); + + amrex::Real Co57_log_pf, dCo57_log_pf_dT9; + + // interpolating Co57 partition function + get_partition_function_cached(Co57, tfactors.T9, pf_cache, Co57_log_pf, dCo57_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + Ni57_log_pf - p_log_pf - Co57_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNi57_log_pf_dT9 - dp_log_pf_dT9 - dCo57_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 19.30298910433137 + -46.92921711371466 * tfactors.T9i + -1.13177 * tfactors.T913 + + 0.56875 * tfactors.T9 + -0.0579913 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 46.92921711371466 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.13177 * tfactors.T923i + + 0.56875 + (5.0/3.0) * -0.0579913 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co57_He4_to_n_Cu60_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co57 + He4 --> n + Cu60 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu60_log_pf, dCu60_log_pf_dT9; + + // interpolating Cu60 partition function + get_partition_function_cached(Cu60, tfactors.T9, pf_cache, Cu60_log_pf, dCu60_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Co57_log_pf, dCo57_log_pf_dT9; + + // interpolating Co57 partition function + get_partition_function_cached(Co57, tfactors.T9, pf_cache, Co57_log_pf, dCo57_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cu60_log_pf - He4_log_pf - Co57_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCu60_log_pf_dT9 - dHe4_log_pf_dT9 - dCo57_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 11.08266908803927 + -77.1329369284805 * tfactors.T9i + 2.72669 * tfactors.T913 + + -0.141713 * tfactors.T9 + 0.025172 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 77.1329369284805 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.72669 * tfactors.T923i + + -0.141713 + (5.0/3.0) * 0.025172 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co58_p_to_n_Ni58_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co58 + p --> n + Ni58 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni58_log_pf, dNi58_log_pf_dT9; + + // interpolating Ni58 partition function + get_partition_function_cached(Ni58, tfactors.T9, pf_cache, Ni58_log_pf, dNi58_log_pf_dT9); + + amrex::Real Co58_log_pf, dCo58_log_pf_dT9; + + // interpolating Co58 partition function + get_partition_function_cached(Co58, tfactors.T9, pf_cache, Co58_log_pf, dCo58_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ni58_log_pf - p_log_pf - Co58_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNi58_log_pf_dT9 - dp_log_pf_dT9 - dCo58_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -27.50117305027655 + -4.650476241445729 * tfactors.T9i + 34.6301 * tfactors.T913 + + -3.77385 * tfactors.T9 + 0.190506 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 4.650476241445729 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 34.6301 * tfactors.T923i + + -3.77385 + (5.0/3.0) * 0.190506 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co58_He4_to_n_Cu61_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co58 + He4 --> n + Cu61 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu61_log_pf, dCu61_log_pf_dT9; + + // interpolating Cu61 partition function + get_partition_function_cached(Cu61, tfactors.T9, pf_cache, Cu61_log_pf, dCu61_log_pf_dT9); + + amrex::Real Co58_log_pf, dCo58_log_pf_dT9; + + // interpolating Co58 partition function + get_partition_function_cached(Co58, tfactors.T9, pf_cache, Co58_log_pf, dCo58_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cu61_log_pf - He4_log_pf - Co58_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCu61_log_pf_dT9 - dHe4_log_pf_dT9 - dCo58_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 1.3609330701604954 + -40.72724267750207 * tfactors.T9i + 1.07449 * tfactors.T913 + + 3.05815 * tfactors.T9 + -0.386686 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 40.72724267750207 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.07449 * tfactors.T923i + + 3.05815 + (5.0/3.0) * -0.386686 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co58_He4_to_p_Ni61_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co58 + He4 --> p + Ni61 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ni61_log_pf, dNi61_log_pf_dT9; + + // interpolating Ni61 partition function + get_partition_function_cached(Ni61, tfactors.T9, pf_cache, Ni61_log_pf, dNi61_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Co58_log_pf, dCo58_log_pf_dT9; + + // interpolating Co58 partition function + get_partition_function_cached(Co58, tfactors.T9, pf_cache, Co58_log_pf, dCo58_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ni61_log_pf - He4_log_pf - Co58_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dNi61_log_pf_dT9 - dHe4_log_pf_dT9 - dCo58_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -75.89058804153403 + -5.678731216680383 * tfactors.T9i + -39.0635 * tfactors.T913i + 109.727 * tfactors.T913 + + -23.3971 * tfactors.T9 + 2.29485 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 5.678731216680383 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.0635 * tfactors.T943i + (1.0/3.0) * 109.727 * tfactors.T923i + + -23.3971 + (5.0/3.0) * 2.29485 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co59_p_to_n_Ni59_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co59 + p --> n + Ni59 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Co59_log_pf, dCo59_log_pf_dT9; + + // interpolating Co59 partition function + get_partition_function_cached(Co59, tfactors.T9, pf_cache, Co59_log_pf, dCo59_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni59_log_pf, dNi59_log_pf_dT9; + + // interpolating Ni59 partition function + get_partition_function_cached(Ni59, tfactors.T9, pf_cache, Ni59_log_pf, dNi59_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ni59_log_pf - p_log_pf - Co59_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dNi59_log_pf_dT9 - dp_log_pf_dT9 - dCo59_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 11.975584223910143 + -21.53040830106501 * tfactors.T9i + 2.48878 * tfactors.T913 + + 0.158023 * tfactors.T9 + -0.0135864 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 21.53040830106501 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.48878 * tfactors.T923i + + 0.158023 + (5.0/3.0) * -0.0135864 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co59_He4_to_n_Cu62_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co59 + He4 --> n + Cu62 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Co59_log_pf, dCo59_log_pf_dT9; + + // interpolating Co59 partition function + get_partition_function_cached(Co59, tfactors.T9, pf_cache, Co59_log_pf, dCo59_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu62_log_pf, dCu62_log_pf_dT9; + + // interpolating Cu62 partition function + get_partition_function_cached(Cu62, tfactors.T9, pf_cache, Cu62_log_pf, dCu62_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cu62_log_pf - He4_log_pf - Co59_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCu62_log_pf_dT9 - dHe4_log_pf_dT9 - dCo59_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 9.15322722738381 + -59.05193724320664 * tfactors.T9i + 0.965159 * tfactors.T913 + + 0.563053 * tfactors.T9 + -0.0358157 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 59.05193724320664 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.965159 * tfactors.T923i + + 0.563053 + (5.0/3.0) * -0.0358157 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co59_He4_to_p_Ni62_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Co59 + He4 --> p + Ni62 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ni62_log_pf, dNi62_log_pf_dT9; + + // interpolating Ni62 partition function + get_partition_function_cached(Ni62, tfactors.T9, pf_cache, Ni62_log_pf, dNi62_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Co59_log_pf, dCo59_log_pf_dT9; + + // interpolating Co59 partition function + get_partition_function_cached(Co59, tfactors.T9, pf_cache, Co59_log_pf, dCo59_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ni62_log_pf - He4_log_pf - Co59_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dNi62_log_pf_dT9 - dHe4_log_pf_dT9 - dCo59_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -93.01693916657389 + -4.032050095236262 * tfactors.T9i + -39.0669 * tfactors.T913i + 126.723 * tfactors.T913 + + -27.3047 * tfactors.T9 + 2.67436 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 4.032050095236262 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.0669 * tfactors.T943i + (1.0/3.0) * 126.723 * tfactors.T923i + + -27.3047 + (5.0/3.0) * 2.67436 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni56_p_to_He4_Co53_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni56 + p --> He4 + Co53 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Co53_log_pf, dCo53_log_pf_dT9; + + // interpolating Co53 partition function + get_partition_function_cached(Co53, tfactors.T9, pf_cache, Co53_log_pf, dCo53_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni56_log_pf, dNi56_log_pf_dT9; + + // interpolating Ni56 partition function + get_partition_function_cached(Ni56, tfactors.T9, pf_cache, Ni56_log_pf, dNi56_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Co53_log_pf - p_log_pf - Ni56_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCo53_log_pf_dT9 - dp_log_pf_dT9 - dNi56_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 67.61201006170074 + -74.08492409178784 * tfactors.T9i + -94.0605 * tfactors.T913i + -1.48203 * tfactors.T913 + + -0.476442 * tfactors.T9 + 0.00631587 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 74.08492409178784 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -94.0605 * tfactors.T943i + (1.0/3.0) * -1.48203 * tfactors.T923i + + -0.476442 + (5.0/3.0) * 0.00631587 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni56_He4_to_n_Zn59_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni56 + He4 --> n + Zn59 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni56_log_pf, dNi56_log_pf_dT9; + + // interpolating Ni56 partition function + get_partition_function_cached(Ni56, tfactors.T9, pf_cache, Ni56_log_pf, dNi56_log_pf_dT9); + + amrex::Real Zn59_log_pf, dZn59_log_pf_dT9; + + // interpolating Zn59 partition function + get_partition_function_cached(Zn59, tfactors.T9, pf_cache, Zn59_log_pf, dZn59_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + Zn59_log_pf - He4_log_pf - Ni56_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dZn59_log_pf_dT9 - dHe4_log_pf_dT9 - dNi56_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 13.17695729279142 + -143.1800518172607 * tfactors.T9i + 4.01795 * tfactors.T913 + + -1.00571 * tfactors.T9 + 0.129548 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 143.1800518172607 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 4.01795 * tfactors.T923i + + -1.00571 + (5.0/3.0) * 0.129548 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni56_He4_to_p_Cu59_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni56 + He4 --> p + Cu59 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cu59_log_pf, dCu59_log_pf_dT9; + + // interpolating Cu59 partition function + get_partition_function_cached(Cu59, tfactors.T9, pf_cache, Cu59_log_pf, dCu59_log_pf_dT9); + + amrex::Real Ni56_log_pf, dNi56_log_pf_dT9; + + // interpolating Ni56 partition function + get_partition_function_cached(Ni56, tfactors.T9, pf_cache, Ni56_log_pf, dNi56_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Cu59_log_pf - He4_log_pf - Ni56_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCu59_log_pf_dT9 - dHe4_log_pf_dT9 - dNi56_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 20.864958462504486 + -28.003503178913892 * tfactors.T9i + -39.9808 * tfactors.T913i + 13.6773 * tfactors.T913 + + -3.76429 * tfactors.T9 + 0.438096 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 28.003503178913892 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.9808 * tfactors.T943i + (1.0/3.0) * 13.6773 * tfactors.T923i + + -3.76429 + (5.0/3.0) * 0.438096 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni57_p_to_n_Cu57_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni57 + p --> n + Cu57 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni57_log_pf, dNi57_log_pf_dT9; + + // interpolating Ni57 partition function + get_partition_function_cached(Ni57, tfactors.T9, pf_cache, Ni57_log_pf, dNi57_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu57_log_pf, dCu57_log_pf_dT9; + + // interpolating Cu57 partition function + get_partition_function_cached(Cu57, tfactors.T9, pf_cache, Cu57_log_pf, dCu57_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cu57_log_pf - p_log_pf - Ni57_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCu57_log_pf_dT9 - dp_log_pf_dT9 - dNi57_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 21.02459611565742 + -110.90840687329657 * tfactors.T9i + -0.57954 * tfactors.T913 + + 0.250954 * tfactors.T9 + -0.0264877 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 110.90840687329657 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.57954 * tfactors.T923i + + 0.250954 + (5.0/3.0) * -0.0264877 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni57_p_to_He4_Co54_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni57 + p --> He4 + Co54 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni57_log_pf, dNi57_log_pf_dT9; + + // interpolating Ni57 partition function + get_partition_function_cached(Ni57, tfactors.T9, pf_cache, Ni57_log_pf, dNi57_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Co54_log_pf, dCo54_log_pf_dT9; + + // interpolating Co54 partition function + get_partition_function_cached(Co54, tfactors.T9, pf_cache, Co54_log_pf, dCo54_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Co54_log_pf - p_log_pf - Ni57_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCo54_log_pf_dT9 - dp_log_pf_dT9 - dNi57_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 64.28029406572811 + -37.248702218566045 * tfactors.T9i + -94.1012 * tfactors.T913i + -1.53121 * tfactors.T913 + + -0.462669 * tfactors.T9 + 0.00353266 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 37.248702218566045 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -94.1012 * tfactors.T943i + (1.0/3.0) * -1.53121 * tfactors.T923i + + -0.462669 + (5.0/3.0) * 0.00353266 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni57_He4_to_n_Zn60_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni57 + He4 --> n + Zn60 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni57_log_pf, dNi57_log_pf_dT9; + + // interpolating Ni57 partition function + get_partition_function_cached(Ni57, tfactors.T9, pf_cache, Ni57_log_pf, dNi57_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn60_log_pf, dZn60_log_pf_dT9; + + // interpolating Zn60 partition function + get_partition_function_cached(Zn60, tfactors.T9, pf_cache, Zn60_log_pf, dZn60_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Zn60_log_pf - He4_log_pf - Ni57_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dZn60_log_pf_dT9 - dHe4_log_pf_dT9 - dNi57_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 9.748611363087353 + -87.68260435279066 * tfactors.T9i + 5.43552 * tfactors.T913 + + -1.25169 * tfactors.T9 + 0.148383 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 87.68260435279066 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.43552 * tfactors.T923i + + -1.25169 + (5.0/3.0) * 0.148383 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni57_He4_to_p_Cu60_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni57 + He4 --> p + Cu60 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ni57_log_pf, dNi57_log_pf_dT9; + + // interpolating Ni57 partition function + get_partition_function_cached(Ni57, tfactors.T9, pf_cache, Ni57_log_pf, dNi57_log_pf_dT9); + + amrex::Real Cu60_log_pf, dCu60_log_pf_dT9; + + // interpolating Cu60 partition function + get_partition_function_cached(Cu60, tfactors.T9, pf_cache, Cu60_log_pf, dCu60_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Cu60_log_pf - He4_log_pf - Ni57_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCu60_log_pf_dT9 - dHe4_log_pf_dT9 - dNi57_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 12.707279983707899 + -30.203719814787462 * tfactors.T9i + -39.9846 * tfactors.T913i + 20.3348 * tfactors.T913 + + -4.47882 * tfactors.T9 + 0.442893 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 30.203719814787462 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.9846 * tfactors.T943i + (1.0/3.0) * 20.3348 * tfactors.T923i + + -4.47882 + (5.0/3.0) * 0.442893 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni58_p_to_n_Cu58_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni58 + p --> n + Cu58 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni58_log_pf, dNi58_log_pf_dT9; + + // interpolating Ni58 partition function + get_partition_function_cached(Ni58, tfactors.T9, pf_cache, Ni58_log_pf, dNi58_log_pf_dT9); + + amrex::Real Cu58_log_pf, dCu58_log_pf_dT9; + + // interpolating Cu58 partition function + get_partition_function_cached(Cu58, tfactors.T9, pf_cache, Cu58_log_pf, dCu58_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cu58_log_pf - p_log_pf - Ni58_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCu58_log_pf_dT9 - dp_log_pf_dT9 - dNi58_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 21.90619138611238 + -108.42503999522836 * tfactors.T9i + -0.603447 * tfactors.T913 + + 0.300346 * tfactors.T9 + -0.0361808 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 108.42503999522836 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.603447 * tfactors.T923i + + 0.300346 + (5.0/3.0) * -0.0361808 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni58_p_to_He4_Co55_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni58 + p --> He4 + Co55 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Co55_log_pf, dCo55_log_pf_dT9; + + // interpolating Co55 partition function + get_partition_function_cached(Co55, tfactors.T9, pf_cache, Co55_log_pf, dCo55_log_pf_dT9); + + amrex::Real Ni58_log_pf, dNi58_log_pf_dT9; + + // interpolating Ni58 partition function + get_partition_function_cached(Ni58, tfactors.T9, pf_cache, Ni58_log_pf, dNi58_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Co55_log_pf - p_log_pf - Ni58_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCo55_log_pf_dT9 - dp_log_pf_dT9 - dNi58_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 63.596461867482006 + -15.490230740645051 * tfactors.T9i + -94.1404 * tfactors.T913i + 3.39179 * tfactors.T913 + + -1.71062 * tfactors.T9 + 0.133003 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 15.490230740645051 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -94.1404 * tfactors.T943i + (1.0/3.0) * 3.39179 * tfactors.T923i + + -1.71062 + (5.0/3.0) * 0.133003 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni58_He4_to_n_Zn61_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni58 + He4 --> n + Zn61 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni58_log_pf, dNi58_log_pf_dT9; + + // interpolating Ni58 partition function + get_partition_function_cached(Ni58, tfactors.T9, pf_cache, Ni58_log_pf, dNi58_log_pf_dT9); + + amrex::Real Zn61_log_pf, dZn61_log_pf_dT9; + + // interpolating Zn61 partition function + get_partition_function_cached(Zn61, tfactors.T9, pf_cache, Zn61_log_pf, dZn61_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Zn61_log_pf - He4_log_pf - Ni58_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dZn61_log_pf_dT9 - dHe4_log_pf_dT9 - dNi58_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 15.080296850113982 + -110.54814685941696 * tfactors.T9i + 2.9413 * tfactors.T913 + + -0.542181 * tfactors.T9 + 0.0584262 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 110.54814685941696 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.9413 * tfactors.T923i + + -0.542181 + (5.0/3.0) * 0.0584262 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni58_He4_to_p_Cu61_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni58 + He4 --> p + Cu61 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ni58_log_pf, dNi58_log_pf_dT9; + + // interpolating Ni58 partition function + get_partition_function_cached(Ni58, tfactors.T9, pf_cache, Ni58_log_pf, dNi58_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu61_log_pf, dCu61_log_pf_dT9; + + // interpolating Cu61 partition function + get_partition_function_cached(Cu61, tfactors.T9, pf_cache, Cu61_log_pf, dCu61_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Cu61_log_pf - He4_log_pf - Ni58_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCu61_log_pf_dT9 - dHe4_log_pf_dT9 - dNi58_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 21.485066120437043 + -36.07676643605633 * tfactors.T9i + -39.9882 * tfactors.T913i + 13.3129 * tfactors.T913 + + -2.90092 * tfactors.T9 + 0.277699 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 36.07676643605633 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.9882 * tfactors.T943i + (1.0/3.0) * 13.3129 * tfactors.T923i + + -2.90092 + (5.0/3.0) * 0.277699 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni59_p_to_n_Cu59_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni59 + p --> n + Cu59 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu59_log_pf, dCu59_log_pf_dT9; + + // interpolating Cu59 partition function + get_partition_function_cached(Cu59, tfactors.T9, pf_cache, Cu59_log_pf, dCu59_log_pf_dT9); + + amrex::Real Ni59_log_pf, dNi59_log_pf_dT9; + + // interpolating Ni59 partition function + get_partition_function_cached(Ni59, tfactors.T9, pf_cache, Ni59_log_pf, dNi59_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + Cu59_log_pf - p_log_pf - Ni59_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCu59_log_pf_dT9 - dp_log_pf_dT9 - dNi59_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 20.69080104398362 + -64.76071965928968 * tfactors.T9i + -0.680585 * tfactors.T913 + + 0.344111 * tfactors.T9 + -0.0446623 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 64.76071965928968 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.680585 * tfactors.T923i + + 0.344111 + (5.0/3.0) * -0.0446623 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni59_p_to_He4_Co56_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni59 + p --> He4 + Co56 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni59_log_pf, dNi59_log_pf_dT9; + + // interpolating Ni59 partition function + get_partition_function_cached(Ni59, tfactors.T9, pf_cache, Ni59_log_pf, dNi59_log_pf_dT9); + + amrex::Real Co56_log_pf, dCo56_log_pf_dT9; + + // interpolating Co56 partition function + get_partition_function_cached(Co56, tfactors.T9, pf_cache, Co56_log_pf, dCo56_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Co56_log_pf - p_log_pf - Ni59_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCo56_log_pf_dT9 - dp_log_pf_dT9 - dNi59_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 51.83368228969371 + -2.927179422245174 * tfactors.T9i + -94.1784 * tfactors.T913i + 17.5303 * tfactors.T913 + + -5.78946 * tfactors.T9 + 0.587654 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 2.927179422245174 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -94.1784 * tfactors.T943i + (1.0/3.0) * 17.5303 * tfactors.T923i + + -5.78946 + (5.0/3.0) * 0.587654 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni59_He4_to_n_Zn62_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni59 + He4 --> n + Zn62 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni59_log_pf, dNi59_log_pf_dT9; + + // interpolating Ni59 partition function + get_partition_function_cached(Ni59, tfactors.T9, pf_cache, Ni59_log_pf, dNi59_log_pf_dT9); + + amrex::Real Zn62_log_pf, dZn62_log_pf_dT9; + + // interpolating Zn62 partition function + get_partition_function_cached(Zn62, tfactors.T9, pf_cache, Zn62_log_pf, dZn62_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Zn62_log_pf - He4_log_pf - Ni59_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dZn62_log_pf_dT9 - dHe4_log_pf_dT9 - dNi59_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 12.725583430565631 + -65.39264594486052 * tfactors.T9i + -0.824101 * tfactors.T913 + + 0.913843 * tfactors.T9 + -0.084157 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 65.39264594486052 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.824101 * tfactors.T923i + + 0.913843 + (5.0/3.0) * -0.084157 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni59_He4_to_p_Cu62_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni59 + He4 --> p + Cu62 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ni59_log_pf, dNi59_log_pf_dT9; + + // interpolating Ni59 partition function + get_partition_function_cached(Ni59, tfactors.T9, pf_cache, Ni59_log_pf, dNi59_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu62_log_pf, dCu62_log_pf_dT9; + + // interpolating Cu62 partition function + get_partition_function_cached(Cu62, tfactors.T9, pf_cache, Cu62_log_pf, dCu62_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Cu62_log_pf - He4_log_pf - Ni59_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCu62_log_pf_dT9 - dHe4_log_pf_dT9 - dNi59_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 18.472443003473668 + -37.52152894214163 * tfactors.T9i + -39.9917 * tfactors.T913i + 15.2078 * tfactors.T913 + + -3.13691 * tfactors.T9 + 0.278116 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 37.52152894214163 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.9917 * tfactors.T943i + (1.0/3.0) * 15.2078 * tfactors.T923i + + -3.13691 + (5.0/3.0) * 0.278116 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni60_p_to_n_Cu60_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni60 + p --> n + Cu60 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu60_log_pf, dCu60_log_pf_dT9; + + // interpolating Cu60 partition function + get_partition_function_cached(Cu60, tfactors.T9, pf_cache, Cu60_log_pf, dCu60_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni60_log_pf, dNi60_log_pf_dT9; + + // interpolating Ni60 partition function + get_partition_function_cached(Ni60, tfactors.T9, pf_cache, Ni60_log_pf, dNi60_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cu60_log_pf - p_log_pf - Ni60_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCu60_log_pf_dT9 - dp_log_pf_dT9 - dNi60_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 22.264094860815987 + -80.19008695370911 * tfactors.T9i + -0.671684 * tfactors.T913 + + 0.215296 * tfactors.T9 + -0.0251141 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 80.19008695370911 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.671684 * tfactors.T923i + + 0.215296 + (5.0/3.0) * -0.0251141 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni60_p_to_He4_Co57_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni60 + p --> He4 + Co57 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni60_log_pf, dNi60_log_pf_dT9; + + // interpolating Ni60 partition function + get_partition_function_cached(Ni60, tfactors.T9, pf_cache, Ni60_log_pf, dNi60_log_pf_dT9); + + amrex::Real Co57_log_pf, dCo57_log_pf_dT9; + + // interpolating Co57 partition function + get_partition_function_cached(Co57, tfactors.T9, pf_cache, Co57_log_pf, dCo57_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Co57_log_pf - p_log_pf - Ni60_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCo57_log_pf_dT9 - dp_log_pf_dT9 - dNi60_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 52.98232577277672 + -3.0571500252285873 * tfactors.T9i + -94.2152 * tfactors.T913i + 16.1097 * tfactors.T913 + + -4.84624 * tfactors.T9 + 0.441487 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 3.0571500252285873 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -94.2152 * tfactors.T943i + (1.0/3.0) * 16.1097 * tfactors.T923i + + -4.84624 + (5.0/3.0) * 0.441487 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni60_He4_to_n_Zn63_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni60 + He4 --> n + Zn63 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni60_log_pf, dNi60_log_pf_dT9; + + // interpolating Ni60 partition function + get_partition_function_cached(Ni60, tfactors.T9, pf_cache, Ni60_log_pf, dNi60_log_pf_dT9); + + amrex::Real Zn63_log_pf, dZn63_log_pf_dT9; + + // interpolating Zn63 partition function + get_partition_function_cached(Zn63, tfactors.T9, pf_cache, Zn63_log_pf, dZn63_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Zn63_log_pf - He4_log_pf - Ni60_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dZn63_log_pf_dT9 - dHe4_log_pf_dT9 - dNi60_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 16.435961578672767 + -91.74766705069611 * tfactors.T9i + 1.29216 * tfactors.T913 + + -0.174127 * tfactors.T9 + 0.0226404 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 91.74766705069611 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.29216 * tfactors.T923i + + -0.174127 + (5.0/3.0) * 0.0226404 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni60_He4_to_p_Cu63_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni60 + He4 --> p + Cu63 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ni60_log_pf, dNi60_log_pf_dT9; + + // interpolating Ni60 partition function + get_partition_function_cached(Ni60, tfactors.T9, pf_cache, Ni60_log_pf, dNi60_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu63_log_pf, dCu63_log_pf_dT9; + + // interpolating Cu63 partition function + get_partition_function_cached(Cu63, tfactors.T9, pf_cache, Cu63_log_pf, dCu63_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Cu63_log_pf - He4_log_pf - Ni60_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCu63_log_pf_dT9 - dHe4_log_pf_dT9 - dNi60_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 25.94053546647619 + -43.602296437905494 * tfactors.T9i + -39.995 * tfactors.T913i + 9.96871 * tfactors.T913 + + -2.08607 * tfactors.T9 + 0.166693 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 43.602296437905494 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.995 * tfactors.T943i + (1.0/3.0) * 9.96871 * tfactors.T923i + + -2.08607 + (5.0/3.0) * 0.166693 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni61_p_to_n_Cu61_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni61 + p --> n + Cu61 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni61_log_pf, dNi61_log_pf_dT9; + + // interpolating Ni61 partition function + get_partition_function_cached(Ni61, tfactors.T9, pf_cache, Ni61_log_pf, dNi61_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu61_log_pf, dCu61_log_pf_dT9; + + // interpolating Cu61 partition function + get_partition_function_cached(Cu61, tfactors.T9, pf_cache, Cu61_log_pf, dCu61_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cu61_log_pf - p_log_pf - Ni61_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCu61_log_pf_dT9 - dp_log_pf_dT9 - dNi61_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 20.178481111694527 + -35.04851146084328 * tfactors.T9i + -1.69187 * tfactors.T913 + + 0.784543 * tfactors.T9 + -0.100904 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 35.04851146084328 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.69187 * tfactors.T923i + + 0.784543 + (5.0/3.0) * -0.100904 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni61_He4_to_n_Zn64_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni61 + He4 --> n + Zn64 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn64_log_pf, dZn64_log_pf_dT9; + + // interpolating Zn64 partition function + get_partition_function_cached(Zn64, tfactors.T9, pf_cache, Zn64_log_pf, dZn64_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni61_log_pf, dNi61_log_pf_dT9; + + // interpolating Ni61 partition function + get_partition_function_cached(Ni61, tfactors.T9, pf_cache, Ni61_log_pf, dNi61_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Zn64_log_pf - He4_log_pf - Ni61_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dZn64_log_pf_dT9 - dHe4_log_pf_dT9 - dNi61_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 4.62740536635874 + -44.844525706977734 * tfactors.T9i + -0.988345 * tfactors.T913 + + 3.05973 * tfactors.T9 + -0.380848 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 44.844525706977734 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.988345 * tfactors.T923i + + 3.05973 + (5.0/3.0) * -0.380848 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni61_He4_to_p_Cu64_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni61 + He4 --> p + Cu64 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ni61_log_pf, dNi61_log_pf_dT9; + + // interpolating Ni61 partition function + get_partition_function_cached(Ni61, tfactors.T9, pf_cache, Ni61_log_pf, dNi61_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu64_log_pf, dCu64_log_pf_dT9; + + // interpolating Cu64 partition function + get_partition_function_cached(Cu64, tfactors.T9, pf_cache, Cu64_log_pf, dCu64_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Cu64_log_pf - He4_log_pf - Ni61_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCu64_log_pf_dT9 - dHe4_log_pf_dT9 - dNi61_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 25.196579447806357 + -42.49174405362394 * tfactors.T9i + -39.9983 * tfactors.T913i + 5.14164 * tfactors.T913 + + 0.0632313 * tfactors.T9 + -0.0939329 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 42.49174405362394 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.9983 * tfactors.T943i + (1.0/3.0) * 5.14164 * tfactors.T923i + + 0.0632313 + (5.0/3.0) * -0.0939329 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni62_p_to_n_Cu62_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni62 + p --> n + Cu62 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni62_log_pf, dNi62_log_pf_dT9; + + // interpolating Ni62 partition function + get_partition_function_cached(Ni62, tfactors.T9, pf_cache, Ni62_log_pf, dNi62_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu62_log_pf, dCu62_log_pf_dT9; + + // interpolating Cu62 partition function + get_partition_function_cached(Cu62, tfactors.T9, pf_cache, Cu62_log_pf, dCu62_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cu62_log_pf - p_log_pf - Ni62_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCu62_log_pf_dT9 - dp_log_pf_dT9 - dNi62_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 22.216966393957705 + -55.01988714799197 * tfactors.T9i + -2.13932 * tfactors.T913 + + 0.412918 * tfactors.T9 + -0.0409549 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 55.01988714799197 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.13932 * tfactors.T923i + + 0.412918 + (5.0/3.0) * -0.0409549 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni62_He4_to_n_Zn65_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni62 + He4 --> n + Zn65 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni62_log_pf, dNi62_log_pf_dT9; + + // interpolating Ni62 partition function + get_partition_function_cached(Ni62, tfactors.T9, pf_cache, Ni62_log_pf, dNi62_log_pf_dT9); + + amrex::Real Zn65_log_pf, dZn65_log_pf_dT9; + + // interpolating Zn65 partition function + get_partition_function_cached(Zn65, tfactors.T9, pf_cache, Zn65_log_pf, dZn65_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + Zn65_log_pf - He4_log_pf - Ni62_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dZn65_log_pf_dT9 - dHe4_log_pf_dT9 - dNi62_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 17.12645490269512 + -75.20658692003397 * tfactors.T9i + -1.0424 * tfactors.T913 + + 0.355927 * tfactors.T9 + -0.0148374 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 75.20658692003397 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.0424 * tfactors.T923i + + 0.355927 + (5.0/3.0) * -0.0148374 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni62_He4_to_p_Cu65_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni62 + He4 --> p + Cu65 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cu65_log_pf, dCu65_log_pf_dT9; + + // interpolating Cu65 partition function + get_partition_function_cached(Cu65, tfactors.T9, pf_cache, Cu65_log_pf, dCu65_log_pf_dT9); + + amrex::Real Ni62_log_pf, dNi62_log_pf_dT9; + + // interpolating Ni62 partition function + get_partition_function_cached(Ni62, tfactors.T9, pf_cache, Ni62_log_pf, dNi62_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Cu65_log_pf - He4_log_pf - Ni62_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dCu65_log_pf_dT9 - dHe4_log_pf_dT9 - dNi62_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 28.691151381481248 + -50.44199941859467 * tfactors.T9i + -40.0015 * tfactors.T913i + 9.18742 * tfactors.T913 + + -2.93395 * tfactors.T9 + 0.309787 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 50.44199941859467 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -40.0015 * tfactors.T943i + (1.0/3.0) * 9.18742 * tfactors.T923i + + -2.93395 + (5.0/3.0) * 0.309787 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni63_p_to_n_Cu63_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni63 + p --> n + Cu63 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni63_log_pf, dNi63_log_pf_dT9; + + // interpolating Ni63 partition function + get_partition_function_cached(Ni63, tfactors.T9, pf_cache, Ni63_log_pf, dNi63_log_pf_dT9); + + amrex::Real Cu63_log_pf, dCu63_log_pf_dT9; + + // interpolating Cu63 partition function + get_partition_function_cached(Cu63, tfactors.T9, pf_cache, Cu63_log_pf, dCu63_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cu63_log_pf - p_log_pf - Ni63_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCu63_log_pf_dT9 - dp_log_pf_dT9 - dNi63_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -11.14297313714409 + -8.301257642519152 * tfactors.T9i + 21.0235 * tfactors.T913 + + -1.85553 * tfactors.T9 + 0.0587378 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 8.301257642519152 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 21.0235 * tfactors.T923i + + -1.85553 + (5.0/3.0) * 0.0587378 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni63_He4_to_n_Zn66_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni63 + He4 --> n + Zn66 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni63_log_pf, dNi63_log_pf_dT9; + + // interpolating Ni63 partition function + get_partition_function_cached(Ni63, tfactors.T9, pf_cache, Ni63_log_pf, dNi63_log_pf_dT9); + + amrex::Real Zn66_log_pf, dZn66_log_pf_dT9; + + // interpolating Zn66 partition function + get_partition_function_cached(Zn66, tfactors.T9, pf_cache, Zn66_log_pf, dZn66_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Zn66_log_pf - He4_log_pf - Ni63_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dZn66_log_pf_dT9 - dHe4_log_pf_dT9 - dNi63_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -30.223329900158934 + -26.227397284541286 * tfactors.T9i + 25.0757 * tfactors.T913 + + 0.0590561 * tfactors.T9 + -0.21357 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 26.227397284541286 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 25.0757 * tfactors.T923i + + 0.0590561 + (5.0/3.0) * -0.21357 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni64_p_to_n_Cu64_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ni64 + p --> n + Cu64 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ni64_log_pf, dNi64_log_pf_dT9; + + // interpolating Ni64 partition function + get_partition_function_cached(Ni64, tfactors.T9, pf_cache, Ni64_log_pf, dNi64_log_pf_dT9); + + amrex::Real Cu64_log_pf, dCu64_log_pf_dT9; + + // interpolating Cu64 partition function + get_partition_function_cached(Cu64, tfactors.T9, pf_cache, Cu64_log_pf, dCu64_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Cu64_log_pf - p_log_pf - Ni64_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dCu64_log_pf_dT9 - dp_log_pf_dT9 - dNi64_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 19.683065131441317 + -28.511686403021937 * tfactors.T9i + -2.37283 * tfactors.T913 + + 0.155682 * tfactors.T9 + 0.0314201 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 28.511686403021937 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.37283 * tfactors.T923i + + 0.155682 + (5.0/3.0) * 0.0314201 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu58_He4_to_p_Zn61_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu58 + He4 --> p + Zn61 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn61_log_pf, dZn61_log_pf_dT9; + + // interpolating Zn61 partition function + get_partition_function_cached(Zn61, tfactors.T9, pf_cache, Zn61_log_pf, dZn61_log_pf_dT9); + + amrex::Real Cu58_log_pf, dCu58_log_pf_dT9; + + // interpolating Cu58 partition function + get_partition_function_cached(Cu58, tfactors.T9, pf_cache, Cu58_log_pf, dCu58_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Zn61_log_pf - He4_log_pf - Cu58_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dZn61_log_pf_dT9 - dHe4_log_pf_dT9 - dCu58_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -80.5098945359984 + -2.1231068641886117 * tfactors.T9i + -40.9023 * tfactors.T913i + 107.263 * tfactors.T913 + + -20.9034 * tfactors.T9 + 1.9567 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 2.1231068641886117 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -40.9023 * tfactors.T943i + (1.0/3.0) * 107.263 * tfactors.T923i + + -20.9034 + (5.0/3.0) * 1.9567 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu59_p_to_n_Zn59_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu59 + p --> n + Zn59 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn59_log_pf, dZn59_log_pf_dT9; + + // interpolating Zn59 partition function + get_partition_function_cached(Zn59, tfactors.T9, pf_cache, Zn59_log_pf, dZn59_log_pf_dT9); + + amrex::Real Cu59_log_pf, dCu59_log_pf_dT9; + + // interpolating Cu59 partition function + get_partition_function_cached(Cu59, tfactors.T9, pf_cache, Cu59_log_pf, dCu59_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + Zn59_log_pf - p_log_pf - Cu59_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dZn59_log_pf_dT9 - dp_log_pf_dT9 - dCu59_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 20.399698830286933 + -115.17654863836839 * tfactors.T9i + -0.234419 * tfactors.T913 + + 0.226299 * tfactors.T9 + -0.0269152 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 115.17654863836839 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.234419 * tfactors.T923i + + 0.226299 + (5.0/3.0) * -0.0269152 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu59_He4_to_n_Ga62_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu59 + He4 --> n + Ga62 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ga62_log_pf, dGa62_log_pf_dT9; + + // interpolating Ga62 partition function + get_partition_function_cached(Ga62, tfactors.T9, pf_cache, Ga62_log_pf, dGa62_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu59_log_pf, dCu59_log_pf_dT9; + + // interpolating Cu59 partition function + get_partition_function_cached(Cu59, tfactors.T9, pf_cache, Cu59_log_pf, dCu59_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ga62_log_pf - He4_log_pf - Cu59_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dGa62_log_pf_dT9 - dHe4_log_pf_dT9 - dCu59_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 10.661362748148896 + -116.25292796799802 * tfactors.T9i + 5.15052 * tfactors.T913 + + -1.31888 * tfactors.T9 + 0.177044 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 116.25292796799802 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.15052 * tfactors.T923i + + -1.31888 + (5.0/3.0) * 0.177044 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu59_He4_to_p_Zn62_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu59 + He4 --> p + Zn62 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Cu59_log_pf, dCu59_log_pf_dT9; + + // interpolating Cu59 partition function + get_partition_function_cached(Cu59, tfactors.T9, pf_cache, Cu59_log_pf, dCu59_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn62_log_pf, dZn62_log_pf_dT9; + + // interpolating Zn62 partition function + get_partition_function_cached(Zn62, tfactors.T9, pf_cache, Zn62_log_pf, dZn62_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Zn62_log_pf - He4_log_pf - Cu59_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dZn62_log_pf_dT9 - dHe4_log_pf_dT9 - dCu59_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -110.07041761341799 + -0.6319262855708432 * tfactors.T9i + -40.9058 * tfactors.T913i + 144.145 * tfactors.T913 + + -30.7303 * tfactors.T9 + 3.0118 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 0.6319262855708432 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -40.9058 * tfactors.T943i + (1.0/3.0) * 144.145 * tfactors.T923i + + -30.7303 + (5.0/3.0) * 3.0118 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu60_p_to_n_Zn60_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu60 + p --> n + Zn60 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu60_log_pf, dCu60_log_pf_dT9; + + // interpolating Cu60 partition function + get_partition_function_cached(Cu60, tfactors.T9, pf_cache, Cu60_log_pf, dCu60_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn60_log_pf, dZn60_log_pf_dT9; + + // interpolating Zn60 partition function + get_partition_function_cached(Zn60, tfactors.T9, pf_cache, Zn60_log_pf, dZn60_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Zn60_log_pf - p_log_pf - Cu60_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dZn60_log_pf_dT9 - dp_log_pf_dT9 - dCu60_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 18.839731379379455 + -57.478884538024815 * tfactors.T9i + -0.620889 * tfactors.T913 + + 0.360154 * tfactors.T9 + -0.0412341 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 57.478884538024815 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.620889 * tfactors.T923i + + 0.360154 + (5.0/3.0) * -0.0412341 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu60_He4_to_n_Ga63_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu60 + He4 --> n + Ga63 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu60_log_pf, dCu60_log_pf_dT9; + + // interpolating Cu60 partition function + get_partition_function_cached(Cu60, tfactors.T9, pf_cache, Cu60_log_pf, dCu60_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Ga63_log_pf, dGa63_log_pf_dT9; + + // interpolating Ga63 partition function + get_partition_function_cached(Ga63, tfactors.T9, pf_cache, Ga63_log_pf, dGa63_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ga63_log_pf - He4_log_pf - Cu60_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dGa63_log_pf_dT9 - dHe4_log_pf_dT9 - dCu60_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 11.534590891908701 + -86.39102148583984 * tfactors.T9i + 4.02167 * tfactors.T913 + + -0.688499 * tfactors.T9 + 0.0864831 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 86.39102148583984 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 4.02167 * tfactors.T923i + + -0.688499 + (5.0/3.0) * 0.0864831 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu60_He4_to_p_Zn63_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu60 + He4 --> p + Zn63 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Zn63_log_pf, dZn63_log_pf_dT9; + + // interpolating Zn63 partition function + get_partition_function_cached(Zn63, tfactors.T9, pf_cache, Zn63_log_pf, dZn63_log_pf_dT9); + + amrex::Real Cu60_log_pf, dCu60_log_pf_dT9; + + // interpolating Cu60 partition function + get_partition_function_cached(Cu60, tfactors.T9, pf_cache, Cu60_log_pf, dCu60_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Zn63_log_pf - He4_log_pf - Cu60_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dZn63_log_pf_dT9 - dHe4_log_pf_dT9 - dCu60_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -39.04543328214322 + -11.557580097008614 * tfactors.T9i + -40.9093 * tfactors.T913i + 67.8676 * tfactors.T913 + + -12.8153 * tfactors.T9 + 1.17292 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 11.557580097008614 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -40.9093 * tfactors.T943i + (1.0/3.0) * 67.8676 * tfactors.T923i + + -12.8153 + (5.0/3.0) * 1.17292 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu61_p_to_n_Zn61_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu61 + p --> n + Zn61 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu61_log_pf, dCu61_log_pf_dT9; + + // interpolating Cu61 partition function + get_partition_function_cached(Cu61, tfactors.T9, pf_cache, Cu61_log_pf, dCu61_log_pf_dT9); + + amrex::Real Zn61_log_pf, dZn61_log_pf_dT9; + + // interpolating Zn61 partition function + get_partition_function_cached(Zn61, tfactors.T9, pf_cache, Zn61_log_pf, dZn61_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Zn61_log_pf - p_log_pf - Cu61_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dZn61_log_pf_dT9 - dp_log_pf_dT9 - dCu61_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 20.443530729676937 + -74.47138042336063 * tfactors.T9i + -0.657488 * tfactors.T913 + + 0.358985 * tfactors.T9 + -0.0432252 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 74.47138042336063 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.657488 * tfactors.T923i + + 0.358985 + (5.0/3.0) * -0.0432252 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu61_He4_to_n_Ga64_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu61 + He4 --> n + Ga64 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu61_log_pf, dCu61_log_pf_dT9; + + // interpolating Cu61 partition function + get_partition_function_cached(Cu61, tfactors.T9, pf_cache, Cu61_log_pf, dCu61_log_pf_dT9); + + amrex::Real Ga64_log_pf, dGa64_log_pf_dT9; + + // interpolating Ga64 partition function + get_partition_function_cached(Ga64, tfactors.T9, pf_cache, Ga64_log_pf, dGa64_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ga64_log_pf - He4_log_pf - Cu61_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dGa64_log_pf_dT9 - dHe4_log_pf_dT9 - dCu61_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 12.543427836152842 + -102.09309495603233 * tfactors.T9i + 2.74537 * tfactors.T913 + + -0.458111 * tfactors.T9 + 0.0581457 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 102.09309495603233 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.74537 * tfactors.T923i + + -0.458111 + (5.0/3.0) * 0.0581457 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu61_He4_to_p_Zn64_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu61 + He4 --> p + Zn64 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Zn64_log_pf, dZn64_log_pf_dT9; + + // interpolating Zn64 partition function + get_partition_function_cached(Zn64, tfactors.T9, pf_cache, Zn64_log_pf, dZn64_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu61_log_pf, dCu61_log_pf_dT9; + + // interpolating Cu61 partition function + get_partition_function_cached(Cu61, tfactors.T9, pf_cache, Cu61_log_pf, dCu61_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Zn64_log_pf - He4_log_pf - Cu61_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dZn64_log_pf_dT9 - dHe4_log_pf_dT9 - dCu61_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -49.61505574533578 + -9.79601424607925 * tfactors.T9i + -40.9126 * tfactors.T913i + 78.2645 * tfactors.T913 + + -15.0794 * tfactors.T9 + 1.39304 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 9.79601424607925 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -40.9126 * tfactors.T943i + (1.0/3.0) * 78.2645 * tfactors.T923i + + -15.0794 + (5.0/3.0) * 1.39304 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu62_p_to_n_Zn62_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu62 + p --> n + Zn62 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu62_log_pf, dCu62_log_pf_dT9; + + // interpolating Cu62 partition function + get_partition_function_cached(Cu62, tfactors.T9, pf_cache, Cu62_log_pf, dCu62_log_pf_dT9); + + amrex::Real Zn62_log_pf, dZn62_log_pf_dT9; + + // interpolating Zn62 partition function + get_partition_function_cached(Zn62, tfactors.T9, pf_cache, Zn62_log_pf, dZn62_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Zn62_log_pf - p_log_pf - Cu62_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dZn62_log_pf_dT9 - dp_log_pf_dT9 - dCu62_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 16.67944042709196 + -27.871117002718893 * tfactors.T9i + -0.772736 * tfactors.T913 + + 1.08329 * tfactors.T9 + -0.144709 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 27.871117002718893 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.772736 * tfactors.T923i + + 1.08329 + (5.0/3.0) * -0.144709 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu62_He4_to_p_Zn65_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu62 + He4 --> p + Zn65 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu62_log_pf, dCu62_log_pf_dT9; + + // interpolating Cu62 partition function + get_partition_function_cached(Cu62, tfactors.T9, pf_cache, Cu62_log_pf, dCu62_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn65_log_pf, dZn65_log_pf_dT9; + + // interpolating Zn65 partition function + get_partition_function_cached(Zn65, tfactors.T9, pf_cache, Zn65_log_pf, dZn65_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Zn65_log_pf - He4_log_pf - Cu62_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dZn65_log_pf_dT9 - dHe4_log_pf_dT9 - dCu62_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -7.772581491262584 + -20.18669977219561 * tfactors.T9i + -40.9159 * tfactors.T913i + 37.2348 * tfactors.T913 + + -6.13297 * tfactors.T9 + 0.499001 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 20.18669977219561 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -40.9159 * tfactors.T943i + (1.0/3.0) * 37.2348 * tfactors.T923i + + -6.13297 + (5.0/3.0) * 0.499001 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu63_p_to_n_Zn63_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu63 + p --> n + Zn63 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn63_log_pf, dZn63_log_pf_dT9; + + // interpolating Zn63 partition function + get_partition_function_cached(Zn63, tfactors.T9, pf_cache, Zn63_log_pf, dZn63_log_pf_dT9); + + amrex::Real Cu63_log_pf, dCu63_log_pf_dT9; + + // interpolating Cu63 partition function + get_partition_function_cached(Cu63, tfactors.T9, pf_cache, Cu63_log_pf, dCu63_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Zn63_log_pf - p_log_pf - Cu63_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dZn63_log_pf_dT9 - dp_log_pf_dT9 - dCu63_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 21.037726112196573 + -48.14537061279062 * tfactors.T9i + -2.10997 * tfactors.T913 + + 0.691727 * tfactors.T9 + -0.0763545 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 48.14537061279062 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.10997 * tfactors.T923i + + 0.691727 + (5.0/3.0) * -0.0763545 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu63_He4_to_p_Zn66_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu63 + He4 --> p + Zn66 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn66_log_pf, dZn66_log_pf_dT9; + + // interpolating Zn66 partition function + get_partition_function_cached(Zn66, tfactors.T9, pf_cache, Zn66_log_pf, dZn66_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu63_log_pf, dCu63_log_pf_dT9; + + // interpolating Cu63 partition function + get_partition_function_cached(Cu63, tfactors.T9, pf_cache, Cu63_log_pf, dCu63_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Zn66_log_pf - He4_log_pf - Cu63_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dZn66_log_pf_dT9 - dHe4_log_pf_dT9 - dCu63_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -13.791256763014847 + -17.926139642175748 * tfactors.T9i + -40.919 * tfactors.T913i + 40.0655 * tfactors.T913 + + -6.06828 * tfactors.T9 + 0.437776 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 17.926139642175748 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -40.919 * tfactors.T943i + (1.0/3.0) * 40.0655 * tfactors.T923i + + -6.06828 + (5.0/3.0) * 0.437776 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu64_p_to_n_Zn64_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu64 + p --> n + Zn64 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn64_log_pf, dZn64_log_pf_dT9; + + // interpolating Zn64 partition function + get_partition_function_cached(Zn64, tfactors.T9, pf_cache, Zn64_log_pf, dZn64_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu64_log_pf, dCu64_log_pf_dT9; + + // interpolating Cu64 partition function + get_partition_function_cached(Cu64, tfactors.T9, pf_cache, Cu64_log_pf, dCu64_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Zn64_log_pf - p_log_pf - Cu64_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dZn64_log_pf_dT9 - dp_log_pf_dT9 - dCu64_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -44.15295408144761 + -2.3527816533537993 * tfactors.T9i + 50.9002 * tfactors.T913 + + -6.85035 * tfactors.T9 + 0.452984 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 2.3527816533537993 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 50.9002 * tfactors.T923i + + -6.85035 + (5.0/3.0) * 0.452984 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu65_p_to_n_Zn65_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Cu65 + p --> n + Zn65 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Cu65_log_pf, dCu65_log_pf_dT9; + + // interpolating Cu65 partition function + get_partition_function_cached(Cu65, tfactors.T9, pf_cache, Cu65_log_pf, dCu65_log_pf_dT9); + + amrex::Real Zn65_log_pf, dZn65_log_pf_dT9; + + // interpolating Zn65 partition function + get_partition_function_cached(Zn65, tfactors.T9, pf_cache, Zn65_log_pf, dZn65_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + Zn65_log_pf - p_log_pf - Cu65_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dZn65_log_pf_dT9 - dp_log_pf_dT9 - dCu65_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 17.503603521213872 + -24.76458750138409 * tfactors.T9i + -1.75991 * tfactors.T913 + + 0.616648 * tfactors.T9 + -0.0273633 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 24.76458750138409 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.75991 * tfactors.T923i + + 0.616648 + (5.0/3.0) * -0.0273633 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn59_He4_to_p_Ga62_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn59 + He4 --> p + Ga62 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Ga62_log_pf, dGa62_log_pf_dT9; + + // interpolating Ga62 partition function + get_partition_function_cached(Ga62, tfactors.T9, pf_cache, Ga62_log_pf, dGa62_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn59_log_pf, dZn59_log_pf_dT9; + + // interpolating Zn59 partition function + get_partition_function_cached(Zn59, tfactors.T9, pf_cache, Zn59_log_pf, dZn59_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ga62_log_pf - He4_log_pf - Zn59_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dGa62_log_pf_dT9 - dHe4_log_pf_dT9 - dZn59_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = -105.61743608213803 + -1.076379329651216 * tfactors.T9i + -41.8099 * tfactors.T913i + 139.289 * tfactors.T913 + + -29.8912 * tfactors.T9 + 2.95102 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 1.076379329651216 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -41.8099 * tfactors.T943i + (1.0/3.0) * 139.289 * tfactors.T923i + + -29.8912 + (5.0/3.0) * 2.95102 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn60_p_to_He4_Cu57_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn60 + p --> He4 + Cu57 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn60_log_pf, dZn60_log_pf_dT9; + + // interpolating Zn60 partition function + get_partition_function_cached(Zn60, tfactors.T9, pf_cache, Zn60_log_pf, dZn60_log_pf_dT9); + + amrex::Real Cu57_log_pf, dCu57_log_pf_dT9; + + // interpolating Cu57 partition function + get_partition_function_cached(Cu57, tfactors.T9, pf_cache, Cu57_log_pf, dCu57_log_pf_dT9); + + amrex::Real net_log_pf = He4_log_pf + Cu57_log_pf - p_log_pf - Zn60_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe4_log_pf_dT9 + dCu57_log_pf_dT9 - dp_log_pf_dT9 - dZn60_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 68.01938475257006 + -23.225802520505905 * tfactors.T9i + -98.8126 * tfactors.T913i + -0.580624 * tfactors.T913 + + -0.793165 * tfactors.T9 + 0.0435934 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 23.225802520505905 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -98.8126 * tfactors.T943i + (1.0/3.0) * -0.580624 * tfactors.T923i + + -0.793165 + (5.0/3.0) * 0.0435934 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn60_He4_to_n_Ge63_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn60 + He4 --> n + Ge63 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn60_log_pf, dZn60_log_pf_dT9; + + // interpolating Zn60 partition function + get_partition_function_cached(Zn60, tfactors.T9, pf_cache, Zn60_log_pf, dZn60_log_pf_dT9); + + amrex::Real Ge63_log_pf, dGe63_log_pf_dT9; + + // interpolating Ge63 partition function + get_partition_function_cached(Ge63, tfactors.T9, pf_cache, Ge63_log_pf, dGe63_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ge63_log_pf - He4_log_pf - Zn60_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dGe63_log_pf_dT9 - dHe4_log_pf_dT9 - dZn60_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 14.744152537816985 + -149.70875371242917 * tfactors.T9i + 1.7273 * tfactors.T913 + + -0.26458 * tfactors.T9 + 0.0395 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 149.70875371242917 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.7273 * tfactors.T923i + + -0.26458 + (5.0/3.0) * 0.0395 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn60_He4_to_p_Ga63_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn60 + He4 --> p + Ga63 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ga63_log_pf, dGa63_log_pf_dT9; + + // interpolating Ga63 partition function + get_partition_function_cached(Ga63, tfactors.T9, pf_cache, Ga63_log_pf, dGa63_log_pf_dT9); + + amrex::Real Zn60_log_pf, dZn60_log_pf_dT9; + + // interpolating Zn60 partition function + get_partition_function_cached(Zn60, tfactors.T9, pf_cache, Zn60_log_pf, dZn60_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Ga63_log_pf - He4_log_pf - Zn60_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dGa63_log_pf_dT9 - dHe4_log_pf_dT9 - dZn60_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 20.046459512529246 + -28.912136947815018 * tfactors.T9i + -41.8134 * tfactors.T913i + 14.9697 * tfactors.T913 + + -4.35453 * tfactors.T9 + 0.544288 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 28.912136947815018 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -41.8134 * tfactors.T943i + (1.0/3.0) * 14.9697 * tfactors.T923i + + -4.35453 + (5.0/3.0) * 0.544288 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn61_He4_to_n_Ge64_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn61 + He4 --> n + Ge64 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn61_log_pf, dZn61_log_pf_dT9; + + // interpolating Zn61 partition function + get_partition_function_cached(Zn61, tfactors.T9, pf_cache, Zn61_log_pf, dZn61_log_pf_dT9); + + amrex::Real Ge64_log_pf, dGe64_log_pf_dT9; + + // interpolating Ge64 partition function + get_partition_function_cached(Ge64, tfactors.T9, pf_cache, Ge64_log_pf, dGe64_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ge64_log_pf - He4_log_pf - Zn61_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dGe64_log_pf_dT9 - dHe4_log_pf_dT9 - dZn61_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 8.625669239586664 + -89.11576234080044 * tfactors.T9i + 7.47259 * tfactors.T913 + + -1.92043 * tfactors.T9 + 0.239118 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 89.11576234080044 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 7.47259 * tfactors.T923i + + -1.92043 + (5.0/3.0) * 0.239118 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn61_He4_to_p_Ga64_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn61 + He4 --> p + Ga64 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ga64_log_pf, dGa64_log_pf_dT9; + + // interpolating Ga64 partition function + get_partition_function_cached(Ga64, tfactors.T9, pf_cache, Ga64_log_pf, dGa64_log_pf_dT9); + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn61_log_pf, dZn61_log_pf_dT9; + + // interpolating Zn61 partition function + get_partition_function_cached(Zn61, tfactors.T9, pf_cache, Zn61_log_pf, dZn61_log_pf_dT9); + + amrex::Real net_log_pf = p_log_pf + Ga64_log_pf - He4_log_pf - Zn61_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dGa64_log_pf_dT9 - dHe4_log_pf_dT9 - dZn61_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 8.485297106475905 + -27.621714532748523 * tfactors.T9i + -41.8168 * tfactors.T913i + 24.3154 * tfactors.T913 + + -5.57278 * tfactors.T9 + 0.588234 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 27.621714532748523 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -41.8168 * tfactors.T943i + (1.0/3.0) * 24.3154 * tfactors.T923i + + -5.57278 + (5.0/3.0) * 0.588234 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn62_p_to_n_Ga62_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn62 + p --> n + Ga62 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Ga62_log_pf, dGa62_log_pf_dT9; + + // interpolating Ga62 partition function + get_partition_function_cached(Ga62, tfactors.T9, pf_cache, Ga62_log_pf, dGa62_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn62_log_pf, dZn62_log_pf_dT9; + + // interpolating Zn62 partition function + get_partition_function_cached(Zn62, tfactors.T9, pf_cache, Zn62_log_pf, dZn62_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ga62_log_pf - p_log_pf - Zn62_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dGa62_log_pf_dT9 - dp_log_pf_dT9 - dZn62_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 21.061280361566887 + -115.62100168242716 * tfactors.T9i + -1.58452 * tfactors.T913 + + 0.736569 * tfactors.T9 + -0.0951725 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 115.62100168242716 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.58452 * tfactors.T923i + + 0.736569 + (5.0/3.0) * -0.0951725 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn63_p_to_n_Ga63_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn63 + p --> n + Ga63 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ga63_log_pf, dGa63_log_pf_dT9; + + // interpolating Ga63 partition function + get_partition_function_cached(Ga63, tfactors.T9, pf_cache, Ga63_log_pf, dGa63_log_pf_dT9); + + amrex::Real Zn63_log_pf, dZn63_log_pf_dT9; + + // interpolating Zn63 partition function + get_partition_function_cached(Zn63, tfactors.T9, pf_cache, Zn63_log_pf, dZn63_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ga63_log_pf - p_log_pf - Zn63_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dGa63_log_pf_dT9 - dp_log_pf_dT9 - dZn63_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 20.144524174051924 + -74.83344138885283 * tfactors.T9i + -0.334251 * tfactors.T913 + + 0.328281 * tfactors.T9 + -0.0442083 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 74.83344138885283 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.334251 * tfactors.T923i + + 0.328281 + (5.0/3.0) * -0.0442083 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn64_p_to_n_Ga64_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Zn64 + p --> n + Ga64 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Zn64_log_pf, dZn64_log_pf_dT9; + + // interpolating Zn64 partition function + get_partition_function_cached(Zn64, tfactors.T9, pf_cache, Zn64_log_pf, dZn64_log_pf_dT9); + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ga64_log_pf, dGa64_log_pf_dT9; + + // interpolating Ga64 partition function + get_partition_function_cached(Ga64, tfactors.T9, pf_cache, Ga64_log_pf, dGa64_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ga64_log_pf - p_log_pf - Zn64_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dGa64_log_pf_dT9 - dp_log_pf_dT9 - dZn64_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 20.047783581488627 + -92.2970807099747 * tfactors.T9i + -0.311485 * tfactors.T913 + + 0.306024 * tfactors.T9 + -0.0439383 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 92.2970807099747 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.311485 * tfactors.T923i + + 0.306024 + (5.0/3.0) * -0.0439383 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ga63_p_to_n_Ge63_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ga63 + p --> n + Ge63 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ga63_log_pf, dGa63_log_pf_dT9; + + // interpolating Ga63 partition function + get_partition_function_cached(Ga63, tfactors.T9, pf_cache, Ga63_log_pf, dGa63_log_pf_dT9); + + amrex::Real Ge63_log_pf, dGe63_log_pf_dT9; + + // interpolating Ge63 partition function + get_partition_function_cached(Ge63, tfactors.T9, pf_cache, Ge63_log_pf, dGe63_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ge63_log_pf - p_log_pf - Ga63_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dGe63_log_pf_dT9 - dp_log_pf_dT9 - dGa63_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 19.546793025287737 + -120.79661676461419 * tfactors.T9i + 0.716405 * tfactors.T913 + + 0.00814169 * tfactors.T9 + -0.00430239 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 120.79661676461419 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.716405 * tfactors.T923i + + 0.00814169 + (5.0/3.0) * -0.00430239 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ga64_p_to_n_Ge64_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // Ga64 + p --> n + Ge64 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Ga64_log_pf, dGa64_log_pf_dT9; + + // interpolating Ga64 partition function + get_partition_function_cached(Ga64, tfactors.T9, pf_cache, Ga64_log_pf, dGa64_log_pf_dT9); + + amrex::Real Ge64_log_pf, dGe64_log_pf_dT9; + + // interpolating Ge64 partition function + get_partition_function_cached(Ge64, tfactors.T9, pf_cache, Ge64_log_pf, dGe64_log_pf_dT9); + + amrex::Real net_log_pf = n_log_pf + Ge64_log_pf - p_log_pf - Ga64_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dGe64_log_pf_dT9 - dp_log_pf_dT9 - dGa64_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from ths8r + ln_set_rate = 20.57017213311076 + -61.494047807975114 * tfactors.T9i + -1.04067 * tfactors.T913 + + 0.575006 * tfactors.T9 + -0.0714547 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 61.494047807975114 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.04067 * tfactors.T923i + + 0.575006 + (5.0/3.0) * -0.0714547 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_d_p_to_n_p_p_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // d + p --> n + p + p + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real d_log_pf, dd_log_pf_dT9; + + // setting d log(partition function) to 0.0 by default, independent of T + d_log_pf = 0.0_rt; + dd_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + p_log_pf + p_log_pf - p_log_pf - d_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dp_log_pf_dT9 + dp_log_pf_dT9 - dp_log_pf_dT9 - dd_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88n + ln_set_rate = 17.350573809767035 + -25.815019581194903 * tfactors.T9i + -3.72 * tfactors.T913i + 0.946313 * tfactors.T913 + + 0.105406 * tfactors.T9 + -0.0149431 * tfactors.T953; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 25.815019581194903 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -3.72 * tfactors.T943i + (1.0/3.0) * 0.946313 * tfactors.T923i + + 0.105406 + (5.0/3.0) * -0.0149431 * tfactors.T923; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_He4_p_p_to_He3_He3_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // He4 + p + p --> He3 + He3 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He3_log_pf, dHe3_log_pf_dT9; + + // setting He3 log(partition function) to 0.0 by default, independent of T + He3_log_pf = 0.0_rt; + dHe3_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He3_log_pf + He3_log_pf - p_log_pf - p_log_pf - He4_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe3_log_pf_dT9 + dHe3_log_pf_dT9 - dp_log_pf_dT9 - dp_log_pf_dT9 - dHe4_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacrn + ln_set_rate = 2.968630719502702 + -149.22922638364452 * tfactors.T9i + -12.277 * tfactors.T913i + -0.103699 * tfactors.T913 + + -0.0649967 * tfactors.T9 + 0.0168191 * tfactors.T953 + -2.166667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 149.22922638364452 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -12.277 * tfactors.T943i + (1.0/3.0) * -0.103699 * tfactors.T923i + + -0.0649967 + (5.0/3.0) * 0.0168191 * tfactors.T923 + -2.166667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_He4_He4_n_to_d_Li7_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // He4 + He4 + n --> d + Li7 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real Li7_log_pf, dLi7_log_pf_dT9; + + // setting Li7 log(partition function) to 0.0 by default, independent of T + Li7_log_pf = 0.0_rt; + dLi7_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real d_log_pf, dd_log_pf_dT9; + + // setting d log(partition function) to 0.0 by default, independent of T + d_log_pf = 0.0_rt; + dd_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = d_log_pf + Li7_log_pf - n_log_pf - He4_log_pf - He4_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dd_log_pf_dT9 + dLi7_log_pf_dT9 - dn_log_pf_dT9 - dHe4_log_pf_dT9 - dHe4_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88n + ln_set_rate = 5.670452289600313 + -175.47978701748355 * tfactors.T9i + -10.259 * tfactors.T913i + + -2.166667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 175.47978701748355 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -10.259 * tfactors.T943i + + -2.166667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_He4_He4_p_to_n_B8_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // He4 + He4 + p --> n + B8 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real B8_log_pf, dB8_log_pf_dT9; + + // setting B8 log(partition function) to 0.0 by default, independent of T + B8_log_pf = 0.0_rt; + dB8_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = n_log_pf + B8_log_pf - p_log_pf - He4_log_pf - He4_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dn_log_pf_dT9 + dB8_log_pf_dT9 - dp_log_pf_dT9 - dHe4_log_pf_dT9 - dHe4_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from wagn + ln_set_rate = -1.9312377957856484 + -218.79292261824523 * tfactors.T9i + 1.5368e-10 * tfactors.T913i + -5.36043e-10 * tfactors.T913 + + 5.80628e-11 * tfactors.T9 + -5.23778e-12 * tfactors.T953 + -1.499999999822789 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 218.79292261824523 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.5368e-10 * tfactors.T943i + (1.0/3.0) * -5.36043e-10 * tfactors.T923i + + 5.80628e-11 + (5.0/3.0) * -5.23778e-12 * tfactors.T923 + -1.499999999822789 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_He4_He4_p_to_d_Be7_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // He4 + He4 + p --> d + Be7 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real d_log_pf, dd_log_pf_dT9; + + // setting d log(partition function) to 0.0 by default, independent of T + d_log_pf = 0.0_rt; + dd_log_pf_dT9 = 0.0_rt; + + amrex::Real Be7_log_pf, dBe7_log_pf_dT9; + + // setting Be7 log(partition function) to 0.0 by default, independent of T + Be7_log_pf = 0.0_rt; + dBe7_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = d_log_pf + Be7_log_pf - p_log_pf - He4_log_pf - He4_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dd_log_pf_dT9 + dBe7_log_pf_dT9 - dp_log_pf_dT9 - dHe4_log_pf_dT9 - dHe4_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88n + ln_set_rate = 6.9715645118037095 + -194.56042352046737 * tfactors.T9i + -12.428 * tfactors.T913i + + -2.166667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 194.56042352046737 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -12.428 * tfactors.T943i + + -2.166667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_d_He4_He4_to_p_Be9_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // d + He4 + He4 --> p + Be9 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Be9_log_pf, dBe9_log_pf_dT9; + + // setting Be9 log(partition function) to 0.0 by default, independent of T + Be9_log_pf = 0.0_rt; + dBe9_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real d_log_pf, dd_log_pf_dT9; + + // setting d log(partition function) to 0.0 by default, independent of T + d_log_pf = 0.0_rt; + dd_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Be9_log_pf - d_log_pf - He4_log_pf - He4_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dBe9_log_pf_dT9 - dd_log_pf_dT9 - dHe4_log_pf_dT9 - dHe4_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88r + ln_set_rate = -2.6786502423261247 + -13.364595788158027 * tfactors.T9i + + -2.25 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 13.364595788158027 * tfactors.T9i * tfactors.T9i + + -2.25 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from cf88r + ln_set_rate = -3.0625502423261253 + -10.610595788158028 * tfactors.T9i + + -2.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 10.610595788158028 * tfactors.T9i * tfactors.T9i + + -2.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from cf88n + ln_set_rate = 2.8357497576738737 + -7.5645957881580275 * tfactors.T9i + -10.359 * tfactors.T913i + 0.103955 * tfactors.T913 + + 4.4262 * tfactors.T9 + -5.95664 * tfactors.T953 + -2.166667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 7.5645957881580275 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -10.359 * tfactors.T943i + (1.0/3.0) * 0.103955 * tfactors.T923i + + 4.4262 + (5.0/3.0) * -5.95664 * tfactors.T923 + -2.166667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_He4_He4_He4_to_p_B11_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // 3 He4 --> p + B11 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real B11_log_pf, dB11_log_pf_dT9; + + // setting B11 log(partition function) to 0.0 by default, independent of T + B11_log_pf = 0.0_rt; + dB11_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + B11_log_pf - He4_log_pf - He4_log_pf - He4_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dB11_log_pf_dT9 - dHe4_log_pf_dT9 - dHe4_log_pf_dT9 - dHe4_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from nacrr + ln_set_rate = -36.70566950679959 + -102.47363088800208 * tfactors.T9i + 8.49175 * tfactors.T913i + 27.3254 * tfactors.T913 + + -3.72071 * tfactors.T9 + 0.275516 * tfactors.T953 + -3.0 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 102.47363088800208 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 8.49175 * tfactors.T943i + (1.0/3.0) * 27.3254 * tfactors.T923i + + -3.72071 + (5.0/3.0) * 0.275516 * tfactors.T923 + -3.0 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from nacrn + ln_set_rate = 6.878030493200413 + -100.74963088800207 * tfactors.T9i + -12.097 * tfactors.T913i + -0.0496312 * tfactors.T913 + + 0.687736 * tfactors.T9 + -0.564229 * tfactors.T953 + -2.166667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 100.74963088800207 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -12.097 * tfactors.T943i + (1.0/3.0) * -0.0496312 * tfactors.T923i + + 0.687736 + (5.0/3.0) * -0.564229 * tfactors.T923 + -2.166667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_He4_He4_p_n_to_He3_Li7_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // He4 + He4 + p + n --> He3 + Li7 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real Li7_log_pf, dLi7_log_pf_dT9; + + // setting Li7 log(partition function) to 0.0 by default, independent of T + Li7_log_pf = 0.0_rt; + dLi7_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He3_log_pf, dHe3_log_pf_dT9; + + // setting He3 log(partition function) to 0.0 by default, independent of T + He3_log_pf = 0.0_rt; + dHe3_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He3_log_pf + Li7_log_pf - n_log_pf - p_log_pf - He4_log_pf - He4_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe3_log_pf_dT9 + dLi7_log_pf_dT9 - dn_log_pf_dT9 - dp_log_pf_dT9 - dHe4_log_pf_dT9 - dHe4_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from mafon + ln_set_rate = -14.218301577333268 + -111.73065591294703 * tfactors.T9i + -17.989 * tfactors.T913i + -1.57523e-09 * tfactors.T913 + + 1.45934e-10 * tfactors.T9 + -1.15341e-11 * tfactors.T953 + -3.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 111.73065591294703 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -17.989 * tfactors.T943i + (1.0/3.0) * -1.57523e-09 * tfactors.T923i + + 1.45934e-10 + (5.0/3.0) * -1.15341e-11 * tfactors.T923 + -3.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_He4_He4_p_n_to_p_Be9_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // He4 + He4 + p + n --> p + Be9 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real Be9_log_pf, dBe9_log_pf_dT9; + + // setting Be9 log(partition function) to 0.0 by default, independent of T + Be9_log_pf = 0.0_rt; + dBe9_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real n_log_pf, dn_log_pf_dT9; + + // setting n log(partition function) to 0.0 by default, independent of T + n_log_pf = 0.0_rt; + dn_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = p_log_pf + Be9_log_pf - n_log_pf - p_log_pf - He4_log_pf - He4_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dp_log_pf_dT9 + dBe9_log_pf_dT9 - dn_log_pf_dT9 - dp_log_pf_dT9 - dHe4_log_pf_dT9 - dHe4_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from cf88r + ln_set_rate = -24.780311232653105 + -8.474576206948726 * tfactors.T9i + 1.40505e-06 * tfactors.T913i + -1.47128e-06 * tfactors.T913 + + 6.89313e-08 * tfactors.T9 + -3.55179e-09 * tfactors.T953 + -4.5 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 8.474576206948726 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.40505e-06 * tfactors.T943i + (1.0/3.0) * -1.47128e-06 * tfactors.T923i + + 6.89313e-08 + (5.0/3.0) * -3.55179e-09 * tfactors.T923 + -4.5 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + // ReacLib set derived from cf88n + ln_set_rate = -30.919911232653103 + -3.223776206948724 * tfactors.T9i + -0.634849 * tfactors.T913i + 4.82033 * tfactors.T913 + + -0.257317 * tfactors.T9 + 0.0134206 * tfactors.T953 + -4.08885 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 3.223776206948724 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.634849 * tfactors.T943i + (1.0/3.0) * 4.82033 * tfactors.T923i + + -0.257317 + (5.0/3.0) * 0.0134206 * tfactors.T923 + -4.08885 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_He4_He4_p_p_to_He3_Be7_derived(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT, [[maybe_unused]] const T& rate_eval, [[maybe_unused]] part_fun::pf_cache_t& pf_cache) { + + // He4 + He4 + p + p --> He3 + Be7 + + rate = 0.0; + drate_dT = 0.0; + + // Evaluate partition function terms + + amrex::Real He3_log_pf, dHe3_log_pf_dT9; + + // setting He3 log(partition function) to 0.0 by default, independent of T + He3_log_pf = 0.0_rt; + dHe3_log_pf_dT9 = 0.0_rt; + + amrex::Real p_log_pf, dp_log_pf_dT9; + + // setting p log(partition function) to 0.0 by default, independent of T + p_log_pf = 0.0_rt; + dp_log_pf_dT9 = 0.0_rt; + + amrex::Real Be7_log_pf, dBe7_log_pf_dT9; + + // setting Be7 log(partition function) to 0.0 by default, independent of T + Be7_log_pf = 0.0_rt; + dBe7_log_pf_dT9 = 0.0_rt; + + amrex::Real He4_log_pf, dHe4_log_pf_dT9; + + // setting He4 log(partition function) to 0.0 by default, independent of T + He4_log_pf = 0.0_rt; + dHe4_log_pf_dT9 = 0.0_rt; + + amrex::Real net_log_pf = He3_log_pf + Be7_log_pf - p_log_pf - p_log_pf - He4_log_pf - He4_log_pf; + [[maybe_unused]] amrex::Real net_dlog_pf_dT9 = dHe3_log_pf_dT9 + dBe7_log_pf_dT9 - dp_log_pf_dT9 - dp_log_pf_dT9 - dHe4_log_pf_dT9 - dHe4_log_pf_dT9; + + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ReacLib set derived from mafon + ln_set_rate = -11.817242174569923 + -130.81129241593683 * tfactors.T9i + -21.793 * tfactors.T913i + -1.98126e-09 * tfactors.T913 + + 1.84204e-10 * tfactors.T9 + -1.46403e-11 * tfactors.T953 + -3.666667 * tfactors.lnT9; + + ln_set_rate += net_log_pf + log_scor; + + if constexpr (std::is_same_v) { + dln_set_rate_dT9 = 130.81129241593683 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -21.793 * tfactors.T943i + (1.0/3.0) * -1.98126e-09 * tfactors.T923i + + 1.84204e-10 + (5.0/3.0) * -1.46403e-11 * tfactors.T923 + -3.666667 * tfactors.T9i; + + dln_set_rate_dT9 += net_dlog_pf_dT9 + dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (std::is_same_v) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9_rt; + } + + } + + + template + AMREX_GPU_DEVICE AMREX_INLINE + void + fill_rates([[maybe_unused]] const tf_t& tfactors, + [[maybe_unused]] T& rate_eval) + { + + [[maybe_unused]] amrex::Real rate; + [[maybe_unused]] amrex::Real drate_dT; + + part_fun::pf_cache_t pf_cache{}; + + pf_cache.index_temp_array_1 = interp_net::find_index(tfactors.T9, part_fun::temp_array_1); + + { + // d_to_n_p_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_d_to_n_p_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_d_to_n_p_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_d_to_n_p_derived) = drate_dT; + } + } + + { + // He3_to_p_d_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_He3_to_p_d_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He3_to_p_d_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He3_to_p_d_derived) = drate_dT; + } + } + + { + // He4_to_n_He3_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_He4_to_n_He3_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_to_n_He3_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_to_n_He3_derived) = drate_dT; + } + } + + { + // He4_to_d_d_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_He4_to_d_d_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_to_d_d_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_to_d_d_derived) = drate_dT; + } + } + + { + // Li6_to_He4_d_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Li6_to_He4_d_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Li6_to_He4_d_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Li6_to_He4_d_derived) = drate_dT; + } + } + + { + // Li7_to_n_Li6_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Li7_to_n_Li6_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Li7_to_n_Li6_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Li7_to_n_Li6_derived) = drate_dT; + } + } + + { + // Be7_to_p_Li6_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Be7_to_p_Li6_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Be7_to_p_Li6_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Be7_to_p_Li6_derived) = drate_dT; + } + } + + { + // Be7_to_He4_He3_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Be7_to_He4_He3_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Be7_to_He4_He3_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Be7_to_He4_He3_derived) = drate_dT; + } + } + + { + // B8_to_p_Be7_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_B8_to_p_Be7_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_B8_to_p_Be7_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_B8_to_p_Be7_derived) = drate_dT; + } + } + + { + // B10_to_p_Be9_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_B10_to_p_Be9_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_B10_to_p_Be9_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_B10_to_p_Be9_derived) = drate_dT; + } + } + + { + // B10_to_He4_Li6_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_B10_to_He4_Li6_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_B10_to_He4_Li6_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_B10_to_He4_Li6_derived) = drate_dT; + } + } + + { + // B11_to_n_B10_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_B11_to_n_B10_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_B11_to_n_B10_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_B11_to_n_B10_derived) = drate_dT; + } + } + + { + // B11_to_He4_Li7_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_B11_to_He4_Li7_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_B11_to_He4_Li7_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_B11_to_He4_Li7_derived) = drate_dT; + } + } + + { + // C12_to_p_B11_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_C12_to_p_B11_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_C12_to_p_B11_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_to_p_B11_derived) = drate_dT; + } + } + + { + // C13_to_n_C12_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_C13_to_n_C12_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_C13_to_n_C12_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C13_to_n_C12_derived) = drate_dT; + } + } + + { + // C14_to_n_C13_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_C14_to_n_C13_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_C14_to_n_C13_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C14_to_n_C13_derived) = drate_dT; + } + } + + { + // N13_to_p_C12_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_N13_to_p_C12_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_N13_to_p_C12_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N13_to_p_C12_derived) = drate_dT; + } + } + + { + // N14_to_n_N13_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_N14_to_n_N13_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_N14_to_n_N13_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N14_to_n_N13_derived) = drate_dT; + } + } + + { + // N14_to_p_C13_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_N14_to_p_C13_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_N14_to_p_C13_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N14_to_p_C13_derived) = drate_dT; + } + } + + { + // N15_to_n_N14_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_N15_to_n_N14_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_N15_to_n_N14_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N15_to_n_N14_derived) = drate_dT; + } + } + + { + // N15_to_p_C14_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_N15_to_p_C14_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_N15_to_p_C14_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N15_to_p_C14_derived) = drate_dT; + } + } + + { + // O14_to_p_N13_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_O14_to_p_N13_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_O14_to_p_N13_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O14_to_p_N13_derived) = drate_dT; + } + } + + { + // O15_to_n_O14_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_O15_to_n_O14_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_O15_to_n_O14_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O15_to_n_O14_derived) = drate_dT; + } + } + + { + // O15_to_p_N14_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_O15_to_p_N14_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_O15_to_p_N14_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O15_to_p_N14_derived) = drate_dT; + } + } + + { + // O16_to_n_O15_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_O16_to_n_O15_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_O16_to_n_O15_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_to_n_O15_derived) = drate_dT; + } + } + + { + // O16_to_p_N15_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_O16_to_p_N15_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_O16_to_p_N15_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_to_p_N15_derived) = drate_dT; + } + } + + { + // O16_to_He4_C12_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_O16_to_He4_C12_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_O16_to_He4_C12_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_to_He4_C12_derived) = drate_dT; + } + } + + { + // O17_to_n_O16_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_O17_to_n_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_O17_to_n_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O17_to_n_O16_derived) = drate_dT; + } + } + + { + // O18_to_n_O17_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_O18_to_n_O17_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_O18_to_n_O17_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O18_to_n_O17_derived) = drate_dT; + } + } + + { + // O18_to_He4_C14_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_O18_to_He4_C14_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_O18_to_He4_C14_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O18_to_He4_C14_derived) = drate_dT; + } + } + + { + // F17_to_p_O16_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_F17_to_p_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_F17_to_p_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F17_to_p_O16_derived) = drate_dT; + } + } + + { + // F18_to_n_F17_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_F18_to_n_F17_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_F18_to_n_F17_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F18_to_n_F17_derived) = drate_dT; + } + } + + { + // F18_to_p_O17_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_F18_to_p_O17_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_F18_to_p_O17_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F18_to_p_O17_derived) = drate_dT; + } + } + + { + // F18_to_He4_N14_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_F18_to_He4_N14_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_F18_to_He4_N14_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F18_to_He4_N14_derived) = drate_dT; + } + } + + { + // F19_to_n_F18_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_F19_to_n_F18_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_F19_to_n_F18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F19_to_n_F18_derived) = drate_dT; + } + } + + { + // F19_to_p_O18_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_F19_to_p_O18_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_F19_to_p_O18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F19_to_p_O18_derived) = drate_dT; + } + } + + { + // F19_to_He4_N15_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_F19_to_He4_N15_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_F19_to_He4_N15_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F19_to_He4_N15_derived) = drate_dT; + } + } + + { + // Ne18_to_p_F17_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ne18_to_p_F17_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ne18_to_p_F17_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne18_to_p_F17_derived) = drate_dT; + } + } + + { + // Ne18_to_He4_O14_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ne18_to_He4_O14_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ne18_to_He4_O14_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne18_to_He4_O14_derived) = drate_dT; + } + } + + { + // Ne19_to_n_Ne18_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ne19_to_n_Ne18_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ne19_to_n_Ne18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne19_to_n_Ne18_derived) = drate_dT; + } + } + + { + // Ne19_to_p_F18_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ne19_to_p_F18_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ne19_to_p_F18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne19_to_p_F18_derived) = drate_dT; + } + } + + { + // Ne19_to_He4_O15_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ne19_to_He4_O15_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ne19_to_He4_O15_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne19_to_He4_O15_derived) = drate_dT; + } + } + + { + // Ne20_to_n_Ne19_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ne20_to_n_Ne19_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ne20_to_n_Ne19_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne20_to_n_Ne19_derived) = drate_dT; + } + } + + { + // Ne20_to_p_F19_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ne20_to_p_F19_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ne20_to_p_F19_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne20_to_p_F19_derived) = drate_dT; + } + } + + { + // Ne20_to_He4_O16_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ne20_to_He4_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ne20_to_He4_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne20_to_He4_O16_derived) = drate_dT; + } + } + + { + // Ne21_to_n_Ne20_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ne21_to_n_Ne20_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ne21_to_n_Ne20_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne21_to_n_Ne20_derived) = drate_dT; + } + } + + { + // Ne21_to_He4_O17_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ne21_to_He4_O17_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ne21_to_He4_O17_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne21_to_He4_O17_derived) = drate_dT; + } + } + + { + // Ne22_to_n_Ne21_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ne22_to_n_Ne21_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ne22_to_n_Ne21_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne22_to_n_Ne21_derived) = drate_dT; + } + } + + { + // Ne22_to_He4_O18_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ne22_to_He4_O18_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ne22_to_He4_O18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne22_to_He4_O18_derived) = drate_dT; + } + } + + { + // Na21_to_p_Ne20_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Na21_to_p_Ne20_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Na21_to_p_Ne20_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na21_to_p_Ne20_derived) = drate_dT; + } + } + + { + // Na21_to_He4_F17_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Na21_to_He4_F17_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Na21_to_He4_F17_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na21_to_He4_F17_derived) = drate_dT; + } + } + + { + // Na22_to_n_Na21_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Na22_to_n_Na21_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Na22_to_n_Na21_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na22_to_n_Na21_derived) = drate_dT; + } + } + + { + // Na22_to_p_Ne21_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Na22_to_p_Ne21_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Na22_to_p_Ne21_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na22_to_p_Ne21_derived) = drate_dT; + } + } + + { + // Na22_to_He4_F18_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Na22_to_He4_F18_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Na22_to_He4_F18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na22_to_He4_F18_derived) = drate_dT; + } + } + + { + // Na23_to_n_Na22_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Na23_to_n_Na22_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Na23_to_n_Na22_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na23_to_n_Na22_derived) = drate_dT; + } + } + + { + // Na23_to_p_Ne22_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Na23_to_p_Ne22_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Na23_to_p_Ne22_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na23_to_p_Ne22_derived) = drate_dT; + } + } + + { + // Na23_to_He4_F19_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Na23_to_He4_F19_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Na23_to_He4_F19_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na23_to_He4_F19_derived) = drate_dT; + } + } + + { + // Mg23_to_p_Na22_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mg23_to_p_Na22_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mg23_to_p_Na22_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg23_to_p_Na22_derived) = drate_dT; + } + } + + { + // Mg23_to_He4_Ne19_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mg23_to_He4_Ne19_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mg23_to_He4_Ne19_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg23_to_He4_Ne19_derived) = drate_dT; + } + } + + { + // Mg24_to_n_Mg23_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mg24_to_n_Mg23_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mg24_to_n_Mg23_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg24_to_n_Mg23_derived) = drate_dT; + } + } + + { + // Mg24_to_p_Na23_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mg24_to_p_Na23_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mg24_to_p_Na23_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg24_to_p_Na23_derived) = drate_dT; + } + } + + { + // Mg24_to_He4_Ne20_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mg24_to_He4_Ne20_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mg24_to_He4_Ne20_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg24_to_He4_Ne20_derived) = drate_dT; + } + } + + { + // Mg25_to_n_Mg24_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mg25_to_n_Mg24_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mg25_to_n_Mg24_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg25_to_n_Mg24_derived) = drate_dT; + } + } + + { + // Mg25_to_He4_Ne21_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mg25_to_He4_Ne21_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mg25_to_He4_Ne21_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg25_to_He4_Ne21_derived) = drate_dT; + } + } + + { + // Mg26_to_n_Mg25_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mg26_to_n_Mg25_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mg26_to_n_Mg25_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg26_to_n_Mg25_derived) = drate_dT; + } + } + + { + // Mg26_to_He4_Ne22_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mg26_to_He4_Ne22_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mg26_to_He4_Ne22_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg26_to_He4_Ne22_derived) = drate_dT; + } + } + + { + // Al25_to_p_Mg24_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Al25_to_p_Mg24_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Al25_to_p_Mg24_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al25_to_p_Mg24_derived) = drate_dT; + } + } + + { + // Al25_to_He4_Na21_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Al25_to_He4_Na21_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Al25_to_He4_Na21_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al25_to_He4_Na21_derived) = drate_dT; + } + } + + { + // Al26_to_n_Al25_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Al26_to_n_Al25_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Al26_to_n_Al25_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al26_to_n_Al25_derived) = drate_dT; + } + } + + { + // Al26_to_p_Mg25_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Al26_to_p_Mg25_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Al26_to_p_Mg25_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al26_to_p_Mg25_derived) = drate_dT; + } + } + + { + // Al26_to_He4_Na22_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Al26_to_He4_Na22_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Al26_to_He4_Na22_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al26_to_He4_Na22_derived) = drate_dT; + } + } + + { + // Al27_to_n_Al26_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Al27_to_n_Al26_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Al27_to_n_Al26_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al27_to_n_Al26_derived) = drate_dT; + } + } + + { + // Al27_to_p_Mg26_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Al27_to_p_Mg26_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Al27_to_p_Mg26_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al27_to_p_Mg26_derived) = drate_dT; + } + } + + { + // Al27_to_He4_Na23_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Al27_to_He4_Na23_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Al27_to_He4_Na23_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al27_to_He4_Na23_derived) = drate_dT; + } + } + + { + // Si28_to_p_Al27_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Si28_to_p_Al27_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si28_to_p_Al27_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si28_to_p_Al27_derived) = drate_dT; + } + } + + { + // Si28_to_He4_Mg24_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Si28_to_He4_Mg24_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si28_to_He4_Mg24_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si28_to_He4_Mg24_derived) = drate_dT; + } + } + + { + // Si29_to_n_Si28_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Si29_to_n_Si28_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si29_to_n_Si28_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si29_to_n_Si28_derived) = drate_dT; + } + } + + { + // Si29_to_He4_Mg25_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Si29_to_He4_Mg25_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si29_to_He4_Mg25_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si29_to_He4_Mg25_derived) = drate_dT; + } + } + + { + // Si30_to_n_Si29_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Si30_to_n_Si29_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si30_to_n_Si29_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si30_to_n_Si29_derived) = drate_dT; + } + } + + { + // Si30_to_He4_Mg26_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Si30_to_He4_Mg26_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si30_to_He4_Mg26_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si30_to_He4_Mg26_derived) = drate_dT; + } + } + + { + // Si31_to_n_Si30_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Si31_to_n_Si30_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si31_to_n_Si30_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si31_to_n_Si30_derived) = drate_dT; + } + } + + { + // Si32_to_n_Si31_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Si32_to_n_Si31_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si32_to_n_Si31_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si32_to_n_Si31_derived) = drate_dT; + } + } + + { + // P29_to_p_Si28_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_P29_to_p_Si28_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_P29_to_p_Si28_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P29_to_p_Si28_derived) = drate_dT; + } + } + + { + // P29_to_He4_Al25_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_P29_to_He4_Al25_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_P29_to_He4_Al25_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P29_to_He4_Al25_derived) = drate_dT; + } + } + + { + // P30_to_n_P29_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_P30_to_n_P29_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_P30_to_n_P29_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P30_to_n_P29_derived) = drate_dT; + } + } + + { + // P30_to_p_Si29_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_P30_to_p_Si29_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_P30_to_p_Si29_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P30_to_p_Si29_derived) = drate_dT; + } + } + + { + // P30_to_He4_Al26_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_P30_to_He4_Al26_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_P30_to_He4_Al26_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P30_to_He4_Al26_derived) = drate_dT; + } + } + + { + // P31_to_n_P30_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_P31_to_n_P30_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_P31_to_n_P30_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P31_to_n_P30_derived) = drate_dT; + } + } + + { + // P31_to_p_Si30_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_P31_to_p_Si30_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_P31_to_p_Si30_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P31_to_p_Si30_derived) = drate_dT; + } + } + + { + // P31_to_He4_Al27_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_P31_to_He4_Al27_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_P31_to_He4_Al27_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P31_to_He4_Al27_derived) = drate_dT; + } + } + + { + // P32_to_n_P31_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_P32_to_n_P31_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_P32_to_n_P31_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P32_to_n_P31_derived) = drate_dT; + } + } + + { + // P32_to_p_Si31_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_P32_to_p_Si31_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_P32_to_p_Si31_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P32_to_p_Si31_derived) = drate_dT; + } + } + + { + // P33_to_n_P32_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_P33_to_n_P32_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_P33_to_n_P32_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P33_to_n_P32_derived) = drate_dT; + } + } + + { + // P33_to_p_Si32_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_P33_to_p_Si32_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_P33_to_p_Si32_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P33_to_p_Si32_derived) = drate_dT; + } + } + + { + // S32_to_p_P31_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_S32_to_p_P31_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S32_to_p_P31_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S32_to_p_P31_derived) = drate_dT; + } + } + + { + // S32_to_He4_Si28_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_S32_to_He4_Si28_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S32_to_He4_Si28_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S32_to_He4_Si28_derived) = drate_dT; + } + } + + { + // S33_to_n_S32_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_S33_to_n_S32_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S33_to_n_S32_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S33_to_n_S32_derived) = drate_dT; + } + } + + { + // S33_to_p_P32_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_S33_to_p_P32_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S33_to_p_P32_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S33_to_p_P32_derived) = drate_dT; + } + } + + { + // S33_to_He4_Si29_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_S33_to_He4_Si29_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S33_to_He4_Si29_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S33_to_He4_Si29_derived) = drate_dT; + } + } + + { + // S34_to_n_S33_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_S34_to_n_S33_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S34_to_n_S33_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S34_to_n_S33_derived) = drate_dT; + } + } + + { + // S34_to_p_P33_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_S34_to_p_P33_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S34_to_p_P33_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S34_to_p_P33_derived) = drate_dT; + } + } + + { + // S34_to_He4_Si30_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_S34_to_He4_Si30_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S34_to_He4_Si30_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S34_to_He4_Si30_derived) = drate_dT; + } + } + + { + // S35_to_n_S34_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_S35_to_n_S34_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S35_to_n_S34_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S35_to_n_S34_derived) = drate_dT; + } + } + + { + // S35_to_He4_Si31_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_S35_to_He4_Si31_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S35_to_He4_Si31_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S35_to_He4_Si31_derived) = drate_dT; + } + } + + { + // S36_to_n_S35_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_S36_to_n_S35_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S36_to_n_S35_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S36_to_n_S35_derived) = drate_dT; + } + } + + { + // S36_to_He4_Si32_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_S36_to_He4_Si32_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S36_to_He4_Si32_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S36_to_He4_Si32_derived) = drate_dT; + } + } + + { + // Cl33_to_p_S32_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl33_to_p_S32_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cl33_to_p_S32_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl33_to_p_S32_derived) = drate_dT; + } + } + + { + // Cl33_to_He4_P29_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl33_to_He4_P29_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cl33_to_He4_P29_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl33_to_He4_P29_derived) = drate_dT; + } + } + + { + // Cl34_to_n_Cl33_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl34_to_n_Cl33_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cl34_to_n_Cl33_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl34_to_n_Cl33_derived) = drate_dT; + } + } + + { + // Cl34_to_p_S33_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl34_to_p_S33_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cl34_to_p_S33_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl34_to_p_S33_derived) = drate_dT; + } + } + + { + // Cl34_to_He4_P30_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl34_to_He4_P30_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cl34_to_He4_P30_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl34_to_He4_P30_derived) = drate_dT; + } + } + + { + // Cl35_to_n_Cl34_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl35_to_n_Cl34_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cl35_to_n_Cl34_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl35_to_n_Cl34_derived) = drate_dT; + } + } + + { + // Cl35_to_p_S34_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl35_to_p_S34_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cl35_to_p_S34_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl35_to_p_S34_derived) = drate_dT; + } + } + + { + // Cl35_to_He4_P31_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl35_to_He4_P31_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cl35_to_He4_P31_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl35_to_He4_P31_derived) = drate_dT; + } + } + + { + // Cl36_to_n_Cl35_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl36_to_n_Cl35_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cl36_to_n_Cl35_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl36_to_n_Cl35_derived) = drate_dT; + } + } + + { + // Cl36_to_p_S35_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl36_to_p_S35_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cl36_to_p_S35_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl36_to_p_S35_derived) = drate_dT; + } + } + + { + // Cl36_to_He4_P32_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl36_to_He4_P32_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cl36_to_He4_P32_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl36_to_He4_P32_derived) = drate_dT; + } + } + + { + // Cl37_to_n_Cl36_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl37_to_n_Cl36_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cl37_to_n_Cl36_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl37_to_n_Cl36_derived) = drate_dT; + } + } + + { + // Cl37_to_p_S36_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl37_to_p_S36_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cl37_to_p_S36_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl37_to_p_S36_derived) = drate_dT; + } + } + + { + // Cl37_to_He4_P33_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl37_to_He4_P33_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cl37_to_He4_P33_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl37_to_He4_P33_derived) = drate_dT; + } + } + + { + // Ar36_to_p_Cl35_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ar36_to_p_Cl35_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar36_to_p_Cl35_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_derived) = drate_dT; + } + } + + { + // Ar36_to_He4_S32_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ar36_to_He4_S32_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar36_to_He4_S32_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_derived) = drate_dT; + } + } + + { + // Ar37_to_n_Ar36_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ar37_to_n_Ar36_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar37_to_n_Ar36_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar37_to_n_Ar36_derived) = drate_dT; + } + } + + { + // Ar37_to_p_Cl36_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ar37_to_p_Cl36_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar37_to_p_Cl36_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar37_to_p_Cl36_derived) = drate_dT; + } + } + + { + // Ar37_to_He4_S33_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ar37_to_He4_S33_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar37_to_He4_S33_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar37_to_He4_S33_derived) = drate_dT; + } + } + + { + // Ar38_to_n_Ar37_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ar38_to_n_Ar37_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar38_to_n_Ar37_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar38_to_n_Ar37_derived) = drate_dT; + } + } + + { + // Ar38_to_p_Cl37_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ar38_to_p_Cl37_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar38_to_p_Cl37_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar38_to_p_Cl37_derived) = drate_dT; + } + } + + { + // Ar38_to_He4_S34_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ar38_to_He4_S34_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar38_to_He4_S34_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar38_to_He4_S34_derived) = drate_dT; + } + } + + { + // Ar39_to_n_Ar38_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ar39_to_n_Ar38_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar39_to_n_Ar38_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar39_to_n_Ar38_derived) = drate_dT; + } + } + + { + // Ar39_to_He4_S35_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ar39_to_He4_S35_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar39_to_He4_S35_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar39_to_He4_S35_derived) = drate_dT; + } + } + + { + // Ar40_to_n_Ar39_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ar40_to_n_Ar39_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar40_to_n_Ar39_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar40_to_n_Ar39_derived) = drate_dT; + } + } + + { + // Ar40_to_He4_S36_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ar40_to_He4_S36_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar40_to_He4_S36_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar40_to_He4_S36_derived) = drate_dT; + } + } + + { + // K37_to_p_Ar36_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K37_to_p_Ar36_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_K37_to_p_Ar36_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K37_to_p_Ar36_derived) = drate_dT; + } + } + + { + // K37_to_He4_Cl33_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K37_to_He4_Cl33_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_K37_to_He4_Cl33_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K37_to_He4_Cl33_derived) = drate_dT; + } + } + + { + // K38_to_n_K37_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K38_to_n_K37_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_K38_to_n_K37_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K38_to_n_K37_derived) = drate_dT; + } + } + + { + // K38_to_p_Ar37_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K38_to_p_Ar37_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_K38_to_p_Ar37_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K38_to_p_Ar37_derived) = drate_dT; + } + } + + { + // K38_to_He4_Cl34_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K38_to_He4_Cl34_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_K38_to_He4_Cl34_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K38_to_He4_Cl34_derived) = drate_dT; + } + } + + { + // K39_to_n_K38_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K39_to_n_K38_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_K39_to_n_K38_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K39_to_n_K38_derived) = drate_dT; + } + } + + { + // K39_to_p_Ar38_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K39_to_p_Ar38_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_K39_to_p_Ar38_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K39_to_p_Ar38_derived) = drate_dT; + } + } + + { + // K39_to_He4_Cl35_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K39_to_He4_Cl35_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_K39_to_He4_Cl35_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K39_to_He4_Cl35_derived) = drate_dT; + } + } + + { + // K40_to_n_K39_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K40_to_n_K39_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_K40_to_n_K39_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K40_to_n_K39_derived) = drate_dT; + } + } + + { + // K40_to_p_Ar39_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K40_to_p_Ar39_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_K40_to_p_Ar39_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K40_to_p_Ar39_derived) = drate_dT; + } + } + + { + // K40_to_He4_Cl36_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K40_to_He4_Cl36_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_K40_to_He4_Cl36_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K40_to_He4_Cl36_derived) = drate_dT; + } + } + + { + // K41_to_n_K40_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K41_to_n_K40_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_K41_to_n_K40_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K41_to_n_K40_derived) = drate_dT; + } + } + + { + // K41_to_p_Ar40_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K41_to_p_Ar40_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_K41_to_p_Ar40_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K41_to_p_Ar40_derived) = drate_dT; + } + } + + { + // K41_to_He4_Cl37_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K41_to_He4_Cl37_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_K41_to_He4_Cl37_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K41_to_He4_Cl37_derived) = drate_dT; + } + } + + { + // Ca40_to_p_K39_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca40_to_p_K39_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca40_to_p_K39_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_derived) = drate_dT; + } + } + + { + // Ca40_to_He4_Ar36_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca40_to_He4_Ar36_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca40_to_He4_Ar36_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_derived) = drate_dT; + } + } + + { + // Ca41_to_n_Ca40_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca41_to_n_Ca40_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca41_to_n_Ca40_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca41_to_n_Ca40_derived) = drate_dT; + } + } + + { + // Ca41_to_p_K40_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca41_to_p_K40_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca41_to_p_K40_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca41_to_p_K40_derived) = drate_dT; + } + } + + { + // Ca41_to_He4_Ar37_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca41_to_He4_Ar37_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca41_to_He4_Ar37_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca41_to_He4_Ar37_derived) = drate_dT; + } + } + + { + // Ca42_to_n_Ca41_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca42_to_n_Ca41_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca42_to_n_Ca41_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca42_to_n_Ca41_derived) = drate_dT; + } + } + + { + // Ca42_to_p_K41_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca42_to_p_K41_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca42_to_p_K41_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca42_to_p_K41_derived) = drate_dT; + } + } + + { + // Ca42_to_He4_Ar38_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca42_to_He4_Ar38_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca42_to_He4_Ar38_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca42_to_He4_Ar38_derived) = drate_dT; + } + } + + { + // Ca43_to_n_Ca42_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca43_to_n_Ca42_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca43_to_n_Ca42_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca43_to_n_Ca42_derived) = drate_dT; + } + } + + { + // Ca43_to_He4_Ar39_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca43_to_He4_Ar39_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca43_to_He4_Ar39_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca43_to_He4_Ar39_derived) = drate_dT; + } + } + + { + // Ca44_to_n_Ca43_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca44_to_n_Ca43_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca44_to_n_Ca43_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca44_to_n_Ca43_derived) = drate_dT; + } + } + + { + // Ca44_to_He4_Ar40_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca44_to_He4_Ar40_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca44_to_He4_Ar40_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca44_to_He4_Ar40_derived) = drate_dT; + } + } + + { + // Ca45_to_n_Ca44_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca45_to_n_Ca44_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca45_to_n_Ca44_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca45_to_n_Ca44_derived) = drate_dT; + } + } + + { + // Ca46_to_n_Ca45_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca46_to_n_Ca45_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca46_to_n_Ca45_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca46_to_n_Ca45_derived) = drate_dT; + } + } + + { + // Ca47_to_n_Ca46_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca47_to_n_Ca46_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca47_to_n_Ca46_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca47_to_n_Ca46_derived) = drate_dT; + } + } + + { + // Ca48_to_n_Ca47_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca48_to_n_Ca47_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca48_to_n_Ca47_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca48_to_n_Ca47_derived) = drate_dT; + } + } + + { + // Sc43_to_p_Ca42_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc43_to_p_Ca42_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc43_to_p_Ca42_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc43_to_p_Ca42_derived) = drate_dT; + } + } + + { + // Sc43_to_He4_K39_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc43_to_He4_K39_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc43_to_He4_K39_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc43_to_He4_K39_derived) = drate_dT; + } + } + + { + // Sc44_to_n_Sc43_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc44_to_n_Sc43_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc44_to_n_Sc43_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc44_to_n_Sc43_derived) = drate_dT; + } + } + + { + // Sc44_to_p_Ca43_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc44_to_p_Ca43_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc44_to_p_Ca43_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc44_to_p_Ca43_derived) = drate_dT; + } + } + + { + // Sc44_to_He4_K40_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc44_to_He4_K40_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc44_to_He4_K40_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc44_to_He4_K40_derived) = drate_dT; + } + } + + { + // Sc45_to_n_Sc44_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc45_to_n_Sc44_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc45_to_n_Sc44_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc45_to_n_Sc44_derived) = drate_dT; + } + } + + { + // Sc45_to_p_Ca44_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc45_to_p_Ca44_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc45_to_p_Ca44_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc45_to_p_Ca44_derived) = drate_dT; + } + } + + { + // Sc45_to_He4_K41_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc45_to_He4_K41_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc45_to_He4_K41_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc45_to_He4_K41_derived) = drate_dT; + } + } + + { + // Sc46_to_n_Sc45_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc46_to_n_Sc45_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc46_to_n_Sc45_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc46_to_n_Sc45_derived) = drate_dT; + } + } + + { + // Sc46_to_p_Ca45_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc46_to_p_Ca45_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc46_to_p_Ca45_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc46_to_p_Ca45_derived) = drate_dT; + } + } + + { + // Sc47_to_n_Sc46_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc47_to_n_Sc46_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc47_to_n_Sc46_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc47_to_n_Sc46_derived) = drate_dT; + } + } + + { + // Sc47_to_p_Ca46_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc47_to_p_Ca46_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc47_to_p_Ca46_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc47_to_p_Ca46_derived) = drate_dT; + } + } + + { + // Sc48_to_n_Sc47_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc48_to_n_Sc47_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc48_to_n_Sc47_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc48_to_n_Sc47_derived) = drate_dT; + } + } + + { + // Sc48_to_p_Ca47_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc48_to_p_Ca47_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc48_to_p_Ca47_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc48_to_p_Ca47_derived) = drate_dT; + } + } + + { + // Sc49_to_n_Sc48_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc49_to_n_Sc48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc49_to_n_Sc48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc49_to_n_Sc48_derived) = drate_dT; + } + } + + { + // Sc49_to_p_Ca48_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc49_to_p_Ca48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc49_to_p_Ca48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc49_to_p_Ca48_derived) = drate_dT; + } + } + + { + // Ti44_to_p_Sc43_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti44_to_p_Sc43_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti44_to_p_Sc43_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_derived) = drate_dT; + } + } + + { + // Ti44_to_He4_Ca40_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti44_to_He4_Ca40_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti44_to_He4_Ca40_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_derived) = drate_dT; + } + } + + { + // Ti45_to_n_Ti44_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti45_to_n_Ti44_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti45_to_n_Ti44_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti45_to_n_Ti44_derived) = drate_dT; + } + } + + { + // Ti45_to_p_Sc44_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti45_to_p_Sc44_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti45_to_p_Sc44_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti45_to_p_Sc44_derived) = drate_dT; + } + } + + { + // Ti45_to_He4_Ca41_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti45_to_He4_Ca41_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti45_to_He4_Ca41_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti45_to_He4_Ca41_derived) = drate_dT; + } + } + + { + // Ti46_to_n_Ti45_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti46_to_n_Ti45_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti46_to_n_Ti45_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti46_to_n_Ti45_derived) = drate_dT; + } + } + + { + // Ti46_to_p_Sc45_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti46_to_p_Sc45_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti46_to_p_Sc45_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti46_to_p_Sc45_derived) = drate_dT; + } + } + + { + // Ti46_to_He4_Ca42_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti46_to_He4_Ca42_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti46_to_He4_Ca42_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti46_to_He4_Ca42_derived) = drate_dT; + } + } + + { + // Ti47_to_n_Ti46_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti47_to_n_Ti46_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti47_to_n_Ti46_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti47_to_n_Ti46_derived) = drate_dT; + } + } + + { + // Ti47_to_p_Sc46_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti47_to_p_Sc46_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti47_to_p_Sc46_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti47_to_p_Sc46_derived) = drate_dT; + } + } + + { + // Ti47_to_He4_Ca43_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti47_to_He4_Ca43_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti47_to_He4_Ca43_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti47_to_He4_Ca43_derived) = drate_dT; + } + } + + { + // Ti48_to_n_Ti47_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti48_to_n_Ti47_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti48_to_n_Ti47_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti48_to_n_Ti47_derived) = drate_dT; + } + } + + { + // Ti48_to_p_Sc47_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti48_to_p_Sc47_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti48_to_p_Sc47_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti48_to_p_Sc47_derived) = drate_dT; + } + } + + { + // Ti48_to_He4_Ca44_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti48_to_He4_Ca44_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti48_to_He4_Ca44_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti48_to_He4_Ca44_derived) = drate_dT; + } + } + + { + // Ti49_to_n_Ti48_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti49_to_n_Ti48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti49_to_n_Ti48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti49_to_n_Ti48_derived) = drate_dT; + } + } + + { + // Ti49_to_p_Sc48_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti49_to_p_Sc48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti49_to_p_Sc48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti49_to_p_Sc48_derived) = drate_dT; + } + } + + { + // Ti49_to_He4_Ca45_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti49_to_He4_Ca45_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti49_to_He4_Ca45_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti49_to_He4_Ca45_derived) = drate_dT; + } + } + + { + // Ti50_to_n_Ti49_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti50_to_n_Ti49_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti50_to_n_Ti49_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti50_to_n_Ti49_derived) = drate_dT; + } + } + + { + // Ti50_to_p_Sc49_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti50_to_p_Sc49_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti50_to_p_Sc49_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti50_to_p_Sc49_derived) = drate_dT; + } + } + + { + // Ti50_to_He4_Ca46_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti50_to_He4_Ca46_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti50_to_He4_Ca46_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti50_to_He4_Ca46_derived) = drate_dT; + } + } + + { + // Ti51_to_n_Ti50_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti51_to_n_Ti50_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti51_to_n_Ti50_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti51_to_n_Ti50_derived) = drate_dT; + } + } + + { + // Ti51_to_He4_Ca47_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti51_to_He4_Ca47_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti51_to_He4_Ca47_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti51_to_He4_Ca47_derived) = drate_dT; + } + } + + { + // V46_to_p_Ti45_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V46_to_p_Ti45_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V46_to_p_Ti45_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V46_to_p_Ti45_derived) = drate_dT; + } + } + + { + // V47_to_n_V46_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V47_to_n_V46_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V47_to_n_V46_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V47_to_n_V46_derived) = drate_dT; + } + } + + { + // V47_to_p_Ti46_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V47_to_p_Ti46_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V47_to_p_Ti46_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V47_to_p_Ti46_derived) = drate_dT; + } + } + + { + // V47_to_He4_Sc43_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V47_to_He4_Sc43_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V47_to_He4_Sc43_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V47_to_He4_Sc43_derived) = drate_dT; + } + } + + { + // V48_to_n_V47_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V48_to_n_V47_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V48_to_n_V47_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V48_to_n_V47_derived) = drate_dT; + } + } + + { + // V48_to_p_Ti47_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V48_to_p_Ti47_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V48_to_p_Ti47_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V48_to_p_Ti47_derived) = drate_dT; + } + } + + { + // V48_to_He4_Sc44_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V48_to_He4_Sc44_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V48_to_He4_Sc44_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V48_to_He4_Sc44_derived) = drate_dT; + } + } + + { + // V49_to_n_V48_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V49_to_n_V48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V49_to_n_V48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V49_to_n_V48_derived) = drate_dT; + } + } + + { + // V49_to_p_Ti48_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V49_to_p_Ti48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V49_to_p_Ti48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V49_to_p_Ti48_derived) = drate_dT; + } + } + + { + // V49_to_He4_Sc45_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V49_to_He4_Sc45_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V49_to_He4_Sc45_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V49_to_He4_Sc45_derived) = drate_dT; + } + } + + { + // V50_to_n_V49_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V50_to_n_V49_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V50_to_n_V49_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V50_to_n_V49_derived) = drate_dT; + } + } + + { + // V50_to_p_Ti49_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V50_to_p_Ti49_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V50_to_p_Ti49_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V50_to_p_Ti49_derived) = drate_dT; + } + } + + { + // V50_to_He4_Sc46_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V50_to_He4_Sc46_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V50_to_He4_Sc46_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V50_to_He4_Sc46_derived) = drate_dT; + } + } + + { + // V51_to_n_V50_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V51_to_n_V50_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V51_to_n_V50_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V51_to_n_V50_derived) = drate_dT; + } + } + + { + // V51_to_p_Ti50_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V51_to_p_Ti50_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V51_to_p_Ti50_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V51_to_p_Ti50_derived) = drate_dT; + } + } + + { + // V51_to_He4_Sc47_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V51_to_He4_Sc47_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V51_to_He4_Sc47_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V51_to_He4_Sc47_derived) = drate_dT; + } + } + + { + // V52_to_n_V51_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V52_to_n_V51_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V52_to_n_V51_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V52_to_n_V51_derived) = drate_dT; + } + } + + { + // V52_to_p_Ti51_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V52_to_p_Ti51_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V52_to_p_Ti51_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V52_to_p_Ti51_derived) = drate_dT; + } + } + + { + // V52_to_He4_Sc48_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V52_to_He4_Sc48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V52_to_He4_Sc48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V52_to_He4_Sc48_derived) = drate_dT; + } + } + + { + // Cr48_to_p_V47_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr48_to_p_V47_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr48_to_p_V47_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_derived) = drate_dT; + } + } + + { + // Cr48_to_He4_Ti44_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr48_to_He4_Ti44_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr48_to_He4_Ti44_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_derived) = drate_dT; + } + } + + { + // Cr49_to_n_Cr48_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr49_to_n_Cr48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr49_to_n_Cr48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr49_to_n_Cr48_derived) = drate_dT; + } + } + + { + // Cr49_to_p_V48_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr49_to_p_V48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr49_to_p_V48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr49_to_p_V48_derived) = drate_dT; + } + } + + { + // Cr49_to_He4_Ti45_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr49_to_He4_Ti45_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr49_to_He4_Ti45_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr49_to_He4_Ti45_derived) = drate_dT; + } + } + + { + // Cr50_to_n_Cr49_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr50_to_n_Cr49_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr50_to_n_Cr49_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr50_to_n_Cr49_derived) = drate_dT; + } + } + + { + // Cr50_to_p_V49_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr50_to_p_V49_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr50_to_p_V49_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr50_to_p_V49_derived) = drate_dT; + } + } + + { + // Cr50_to_He4_Ti46_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr50_to_He4_Ti46_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr50_to_He4_Ti46_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr50_to_He4_Ti46_derived) = drate_dT; + } + } + + { + // Cr51_to_n_Cr50_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr51_to_n_Cr50_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr51_to_n_Cr50_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr51_to_n_Cr50_derived) = drate_dT; + } + } + + { + // Cr51_to_p_V50_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr51_to_p_V50_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr51_to_p_V50_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr51_to_p_V50_derived) = drate_dT; + } + } + + { + // Cr51_to_He4_Ti47_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr51_to_He4_Ti47_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr51_to_He4_Ti47_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr51_to_He4_Ti47_derived) = drate_dT; + } + } + + { + // Cr52_to_n_Cr51_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr52_to_n_Cr51_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr52_to_n_Cr51_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr52_to_n_Cr51_derived) = drate_dT; + } + } + + { + // Cr52_to_p_V51_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr52_to_p_V51_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr52_to_p_V51_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr52_to_p_V51_derived) = drate_dT; + } + } + + { + // Cr52_to_He4_Ti48_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr52_to_He4_Ti48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr52_to_He4_Ti48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr52_to_He4_Ti48_derived) = drate_dT; + } + } + + { + // Cr53_to_n_Cr52_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr53_to_n_Cr52_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr53_to_n_Cr52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr53_to_n_Cr52_derived) = drate_dT; + } + } + + { + // Cr53_to_p_V52_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr53_to_p_V52_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr53_to_p_V52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr53_to_p_V52_derived) = drate_dT; + } + } + + { + // Cr53_to_He4_Ti49_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr53_to_He4_Ti49_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr53_to_He4_Ti49_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr53_to_He4_Ti49_derived) = drate_dT; + } + } + + { + // Cr54_to_n_Cr53_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr54_to_n_Cr53_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr54_to_n_Cr53_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr54_to_n_Cr53_derived) = drate_dT; + } + } + + { + // Cr54_to_He4_Ti50_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr54_to_He4_Ti50_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr54_to_He4_Ti50_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr54_to_He4_Ti50_derived) = drate_dT; + } + } + + { + // Mn50_to_p_Cr49_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn50_to_p_Cr49_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn50_to_p_Cr49_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn50_to_p_Cr49_derived) = drate_dT; + } + } + + { + // Mn50_to_He4_V46_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn50_to_He4_V46_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn50_to_He4_V46_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn50_to_He4_V46_derived) = drate_dT; + } + } + + { + // Mn51_to_n_Mn50_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn51_to_n_Mn50_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn51_to_n_Mn50_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn51_to_n_Mn50_derived) = drate_dT; + } + } + + { + // Mn51_to_p_Cr50_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn51_to_p_Cr50_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn51_to_p_Cr50_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn51_to_p_Cr50_derived) = drate_dT; + } + } + + { + // Mn51_to_He4_V47_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn51_to_He4_V47_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn51_to_He4_V47_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn51_to_He4_V47_derived) = drate_dT; + } + } + + { + // Mn52_to_n_Mn51_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn52_to_n_Mn51_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn52_to_n_Mn51_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn52_to_n_Mn51_derived) = drate_dT; + } + } + + { + // Mn52_to_p_Cr51_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn52_to_p_Cr51_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn52_to_p_Cr51_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn52_to_p_Cr51_derived) = drate_dT; + } + } + + { + // Mn52_to_He4_V48_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn52_to_He4_V48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn52_to_He4_V48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn52_to_He4_V48_derived) = drate_dT; + } + } + + { + // Mn53_to_n_Mn52_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn53_to_n_Mn52_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn53_to_n_Mn52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn53_to_n_Mn52_derived) = drate_dT; + } + } + + { + // Mn53_to_p_Cr52_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn53_to_p_Cr52_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn53_to_p_Cr52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn53_to_p_Cr52_derived) = drate_dT; + } + } + + { + // Mn53_to_He4_V49_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn53_to_He4_V49_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn53_to_He4_V49_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn53_to_He4_V49_derived) = drate_dT; + } + } + + { + // Mn54_to_n_Mn53_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn54_to_n_Mn53_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn54_to_n_Mn53_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn54_to_n_Mn53_derived) = drate_dT; + } + } + + { + // Mn54_to_p_Cr53_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn54_to_p_Cr53_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn54_to_p_Cr53_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn54_to_p_Cr53_derived) = drate_dT; + } + } + + { + // Mn54_to_He4_V50_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn54_to_He4_V50_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn54_to_He4_V50_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn54_to_He4_V50_derived) = drate_dT; + } + } + + { + // Mn55_to_n_Mn54_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn55_to_n_Mn54_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn55_to_n_Mn54_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn55_to_n_Mn54_derived) = drate_dT; + } + } + + { + // Mn55_to_p_Cr54_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn55_to_p_Cr54_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn55_to_p_Cr54_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn55_to_p_Cr54_derived) = drate_dT; + } + } + + { + // Mn55_to_He4_V51_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn55_to_He4_V51_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn55_to_He4_V51_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn55_to_He4_V51_derived) = drate_dT; + } + } + + { + // Fe52_to_p_Mn51_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe52_to_p_Mn51_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe52_to_p_Mn51_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe52_to_p_Mn51_derived) = drate_dT; + } + } + + { + // Fe52_to_He4_Cr48_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe52_to_He4_Cr48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe52_to_He4_Cr48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe52_to_He4_Cr48_derived) = drate_dT; + } + } + + { + // Fe53_to_n_Fe52_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe53_to_n_Fe52_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe53_to_n_Fe52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe53_to_n_Fe52_derived) = drate_dT; + } + } + + { + // Fe53_to_p_Mn52_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe53_to_p_Mn52_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe53_to_p_Mn52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe53_to_p_Mn52_derived) = drate_dT; + } + } + + { + // Fe53_to_He4_Cr49_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe53_to_He4_Cr49_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe53_to_He4_Cr49_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe53_to_He4_Cr49_derived) = drate_dT; + } + } + + { + // Fe54_to_n_Fe53_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe54_to_n_Fe53_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe54_to_n_Fe53_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe54_to_n_Fe53_derived) = drate_dT; + } + } + + { + // Fe54_to_p_Mn53_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe54_to_p_Mn53_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe54_to_p_Mn53_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe54_to_p_Mn53_derived) = drate_dT; + } + } + + { + // Fe54_to_He4_Cr50_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe54_to_He4_Cr50_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe54_to_He4_Cr50_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe54_to_He4_Cr50_derived) = drate_dT; + } + } + + { + // Fe55_to_n_Fe54_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe55_to_n_Fe54_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe55_to_n_Fe54_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe55_to_n_Fe54_derived) = drate_dT; + } + } + + { + // Fe55_to_p_Mn54_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe55_to_p_Mn54_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe55_to_p_Mn54_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe55_to_p_Mn54_derived) = drate_dT; + } + } + + { + // Fe55_to_He4_Cr51_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe55_to_He4_Cr51_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe55_to_He4_Cr51_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe55_to_He4_Cr51_derived) = drate_dT; + } + } + + { + // Fe56_to_n_Fe55_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe56_to_n_Fe55_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe56_to_n_Fe55_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe56_to_n_Fe55_derived) = drate_dT; + } + } + + { + // Fe56_to_p_Mn55_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe56_to_p_Mn55_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe56_to_p_Mn55_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe56_to_p_Mn55_derived) = drate_dT; + } + } + + { + // Fe56_to_He4_Cr52_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe56_to_He4_Cr52_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe56_to_He4_Cr52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe56_to_He4_Cr52_derived) = drate_dT; + } + } + + { + // Fe57_to_n_Fe56_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe57_to_n_Fe56_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe57_to_n_Fe56_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe57_to_n_Fe56_derived) = drate_dT; + } + } + + { + // Fe57_to_He4_Cr53_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe57_to_He4_Cr53_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe57_to_He4_Cr53_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe57_to_He4_Cr53_derived) = drate_dT; + } + } + + { + // Fe58_to_n_Fe57_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe58_to_n_Fe57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe58_to_n_Fe57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe58_to_n_Fe57_derived) = drate_dT; + } + } + + { + // Fe58_to_He4_Cr54_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe58_to_He4_Cr54_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe58_to_He4_Cr54_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe58_to_He4_Cr54_derived) = drate_dT; + } + } + + { + // Co53_to_p_Fe52_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co53_to_p_Fe52_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co53_to_p_Fe52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co53_to_p_Fe52_derived) = drate_dT; + } + } + + { + // Co54_to_n_Co53_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co54_to_n_Co53_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co54_to_n_Co53_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co54_to_n_Co53_derived) = drate_dT; + } + } + + { + // Co54_to_p_Fe53_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co54_to_p_Fe53_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co54_to_p_Fe53_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co54_to_p_Fe53_derived) = drate_dT; + } + } + + { + // Co54_to_He4_Mn50_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co54_to_He4_Mn50_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co54_to_He4_Mn50_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co54_to_He4_Mn50_derived) = drate_dT; + } + } + + { + // Co55_to_n_Co54_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co55_to_n_Co54_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co55_to_n_Co54_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co55_to_n_Co54_derived) = drate_dT; + } + } + + { + // Co55_to_p_Fe54_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co55_to_p_Fe54_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co55_to_p_Fe54_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co55_to_p_Fe54_derived) = drate_dT; + } + } + + { + // Co55_to_He4_Mn51_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co55_to_He4_Mn51_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co55_to_He4_Mn51_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co55_to_He4_Mn51_derived) = drate_dT; + } + } + + { + // Co56_to_n_Co55_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co56_to_n_Co55_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co56_to_n_Co55_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co56_to_n_Co55_derived) = drate_dT; + } + } + + { + // Co56_to_p_Fe55_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co56_to_p_Fe55_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co56_to_p_Fe55_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co56_to_p_Fe55_derived) = drate_dT; + } + } + + { + // Co56_to_He4_Mn52_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co56_to_He4_Mn52_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co56_to_He4_Mn52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co56_to_He4_Mn52_derived) = drate_dT; + } + } + + { + // Co57_to_n_Co56_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co57_to_n_Co56_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co57_to_n_Co56_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co57_to_n_Co56_derived) = drate_dT; + } + } + + { + // Co57_to_p_Fe56_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co57_to_p_Fe56_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co57_to_p_Fe56_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co57_to_p_Fe56_derived) = drate_dT; + } + } + + { + // Co57_to_He4_Mn53_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co57_to_He4_Mn53_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co57_to_He4_Mn53_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co57_to_He4_Mn53_derived) = drate_dT; + } + } + + { + // Co58_to_n_Co57_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co58_to_n_Co57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co58_to_n_Co57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co58_to_n_Co57_derived) = drate_dT; + } + } + + { + // Co58_to_p_Fe57_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co58_to_p_Fe57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co58_to_p_Fe57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co58_to_p_Fe57_derived) = drate_dT; + } + } + + { + // Co58_to_He4_Mn54_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co58_to_He4_Mn54_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co58_to_He4_Mn54_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co58_to_He4_Mn54_derived) = drate_dT; + } + } + + { + // Co59_to_n_Co58_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co59_to_n_Co58_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co59_to_n_Co58_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co59_to_n_Co58_derived) = drate_dT; + } + } + + { + // Co59_to_p_Fe58_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co59_to_p_Fe58_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co59_to_p_Fe58_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co59_to_p_Fe58_derived) = drate_dT; + } + } + + { + // Co59_to_He4_Mn55_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co59_to_He4_Mn55_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co59_to_He4_Mn55_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co59_to_He4_Mn55_derived) = drate_dT; + } + } + + { + // Ni56_to_p_Co55_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni56_to_p_Co55_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni56_to_p_Co55_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni56_to_p_Co55_derived) = drate_dT; + } + } + + { + // Ni56_to_He4_Fe52_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni56_to_He4_Fe52_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni56_to_He4_Fe52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni56_to_He4_Fe52_derived) = drate_dT; + } + } + + { + // Ni57_to_n_Ni56_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni57_to_n_Ni56_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni57_to_n_Ni56_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni57_to_n_Ni56_derived) = drate_dT; + } + } + + { + // Ni57_to_p_Co56_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni57_to_p_Co56_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni57_to_p_Co56_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni57_to_p_Co56_derived) = drate_dT; + } + } + + { + // Ni57_to_He4_Fe53_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni57_to_He4_Fe53_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni57_to_He4_Fe53_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni57_to_He4_Fe53_derived) = drate_dT; + } + } + + { + // Ni58_to_n_Ni57_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni58_to_n_Ni57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni58_to_n_Ni57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni58_to_n_Ni57_derived) = drate_dT; + } + } + + { + // Ni58_to_p_Co57_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni58_to_p_Co57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni58_to_p_Co57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni58_to_p_Co57_derived) = drate_dT; + } + } + + { + // Ni58_to_He4_Fe54_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni58_to_He4_Fe54_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni58_to_He4_Fe54_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni58_to_He4_Fe54_derived) = drate_dT; + } + } + + { + // Ni59_to_n_Ni58_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni59_to_n_Ni58_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni59_to_n_Ni58_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni59_to_n_Ni58_derived) = drate_dT; + } + } + + { + // Ni59_to_p_Co58_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni59_to_p_Co58_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni59_to_p_Co58_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni59_to_p_Co58_derived) = drate_dT; + } + } + + { + // Ni59_to_He4_Fe55_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni59_to_He4_Fe55_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni59_to_He4_Fe55_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni59_to_He4_Fe55_derived) = drate_dT; + } + } + + { + // Ni60_to_n_Ni59_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni60_to_n_Ni59_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni60_to_n_Ni59_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni60_to_n_Ni59_derived) = drate_dT; + } + } + + { + // Ni60_to_p_Co59_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni60_to_p_Co59_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni60_to_p_Co59_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni60_to_p_Co59_derived) = drate_dT; + } + } + + { + // Ni60_to_He4_Fe56_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni60_to_He4_Fe56_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni60_to_He4_Fe56_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni60_to_He4_Fe56_derived) = drate_dT; + } + } + + { + // Ni61_to_n_Ni60_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni61_to_n_Ni60_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni61_to_n_Ni60_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni61_to_n_Ni60_derived) = drate_dT; + } + } + + { + // Ni61_to_He4_Fe57_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni61_to_He4_Fe57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni61_to_He4_Fe57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni61_to_He4_Fe57_derived) = drate_dT; + } + } + + { + // Ni62_to_n_Ni61_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni62_to_n_Ni61_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni62_to_n_Ni61_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni62_to_n_Ni61_derived) = drate_dT; + } + } + + { + // Ni62_to_He4_Fe58_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni62_to_He4_Fe58_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni62_to_He4_Fe58_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni62_to_He4_Fe58_derived) = drate_dT; + } + } + + { + // Ni63_to_n_Ni62_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni63_to_n_Ni62_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni63_to_n_Ni62_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni63_to_n_Ni62_derived) = drate_dT; + } + } + + { + // Ni64_to_n_Ni63_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni64_to_n_Ni63_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni64_to_n_Ni63_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni64_to_n_Ni63_derived) = drate_dT; + } + } + + { + // Cu57_to_p_Ni56_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu57_to_p_Ni56_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu57_to_p_Ni56_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu57_to_p_Ni56_derived) = drate_dT; + } + } + + { + // Cu57_to_He4_Co53_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu57_to_He4_Co53_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu57_to_He4_Co53_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu57_to_He4_Co53_derived) = drate_dT; + } + } + + { + // Cu58_to_n_Cu57_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu58_to_n_Cu57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu58_to_n_Cu57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu58_to_n_Cu57_derived) = drate_dT; + } + } + + { + // Cu58_to_p_Ni57_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu58_to_p_Ni57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu58_to_p_Ni57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu58_to_p_Ni57_derived) = drate_dT; + } + } + + { + // Cu58_to_He4_Co54_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu58_to_He4_Co54_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu58_to_He4_Co54_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu58_to_He4_Co54_derived) = drate_dT; + } + } + + { + // Cu59_to_n_Cu58_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu59_to_n_Cu58_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu59_to_n_Cu58_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu59_to_n_Cu58_derived) = drate_dT; + } + } + + { + // Cu59_to_p_Ni58_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu59_to_p_Ni58_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu59_to_p_Ni58_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu59_to_p_Ni58_derived) = drate_dT; + } + } + + { + // Cu59_to_He4_Co55_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu59_to_He4_Co55_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu59_to_He4_Co55_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu59_to_He4_Co55_derived) = drate_dT; + } + } + + { + // Cu60_to_n_Cu59_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu60_to_n_Cu59_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu60_to_n_Cu59_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu60_to_n_Cu59_derived) = drate_dT; + } + } + + { + // Cu60_to_p_Ni59_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu60_to_p_Ni59_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu60_to_p_Ni59_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu60_to_p_Ni59_derived) = drate_dT; + } + } + + { + // Cu60_to_He4_Co56_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu60_to_He4_Co56_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu60_to_He4_Co56_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu60_to_He4_Co56_derived) = drate_dT; + } + } + + { + // Cu61_to_n_Cu60_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu61_to_n_Cu60_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu61_to_n_Cu60_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu61_to_n_Cu60_derived) = drate_dT; + } + } + + { + // Cu61_to_p_Ni60_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu61_to_p_Ni60_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu61_to_p_Ni60_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu61_to_p_Ni60_derived) = drate_dT; + } + } + + { + // Cu61_to_He4_Co57_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu61_to_He4_Co57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu61_to_He4_Co57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu61_to_He4_Co57_derived) = drate_dT; + } + } + + { + // Cu62_to_n_Cu61_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu62_to_n_Cu61_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu62_to_n_Cu61_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu62_to_n_Cu61_derived) = drate_dT; + } + } + + { + // Cu62_to_p_Ni61_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu62_to_p_Ni61_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu62_to_p_Ni61_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu62_to_p_Ni61_derived) = drate_dT; + } + } + + { + // Cu62_to_He4_Co58_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu62_to_He4_Co58_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu62_to_He4_Co58_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu62_to_He4_Co58_derived) = drate_dT; + } + } + + { + // Cu63_to_n_Cu62_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu63_to_n_Cu62_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu63_to_n_Cu62_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu63_to_n_Cu62_derived) = drate_dT; + } + } + + { + // Cu63_to_p_Ni62_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu63_to_p_Ni62_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu63_to_p_Ni62_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu63_to_p_Ni62_derived) = drate_dT; + } + } + + { + // Cu63_to_He4_Co59_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu63_to_He4_Co59_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu63_to_He4_Co59_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu63_to_He4_Co59_derived) = drate_dT; + } + } + + { + // Cu64_to_n_Cu63_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu64_to_n_Cu63_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu64_to_n_Cu63_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu64_to_n_Cu63_derived) = drate_dT; + } + } + + { + // Cu64_to_p_Ni63_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu64_to_p_Ni63_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu64_to_p_Ni63_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu64_to_p_Ni63_derived) = drate_dT; + } + } + + { + // Cu65_to_n_Cu64_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu65_to_n_Cu64_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu65_to_n_Cu64_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu65_to_n_Cu64_derived) = drate_dT; + } + } + + { + // Cu65_to_p_Ni64_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu65_to_p_Ni64_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu65_to_p_Ni64_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu65_to_p_Ni64_derived) = drate_dT; + } + } + + { + // Zn59_to_p_Cu58_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn59_to_p_Cu58_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn59_to_p_Cu58_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn59_to_p_Cu58_derived) = drate_dT; + } + } + + { + // Zn60_to_n_Zn59_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn60_to_n_Zn59_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn60_to_n_Zn59_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn60_to_n_Zn59_derived) = drate_dT; + } + } + + { + // Zn60_to_p_Cu59_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn60_to_p_Cu59_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn60_to_p_Cu59_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn60_to_p_Cu59_derived) = drate_dT; + } + } + + { + // Zn60_to_He4_Ni56_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn60_to_He4_Ni56_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn60_to_He4_Ni56_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn60_to_He4_Ni56_derived) = drate_dT; + } + } + + { + // Zn61_to_n_Zn60_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn61_to_n_Zn60_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn61_to_n_Zn60_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn61_to_n_Zn60_derived) = drate_dT; + } + } + + { + // Zn61_to_p_Cu60_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn61_to_p_Cu60_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn61_to_p_Cu60_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn61_to_p_Cu60_derived) = drate_dT; + } + } + + { + // Zn61_to_He4_Ni57_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn61_to_He4_Ni57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn61_to_He4_Ni57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn61_to_He4_Ni57_derived) = drate_dT; + } + } + + { + // Zn62_to_n_Zn61_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn62_to_n_Zn61_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn62_to_n_Zn61_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn62_to_n_Zn61_derived) = drate_dT; + } + } + + { + // Zn62_to_p_Cu61_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn62_to_p_Cu61_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn62_to_p_Cu61_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn62_to_p_Cu61_derived) = drate_dT; + } + } + + { + // Zn62_to_He4_Ni58_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn62_to_He4_Ni58_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn62_to_He4_Ni58_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn62_to_He4_Ni58_derived) = drate_dT; + } + } + + { + // Zn63_to_n_Zn62_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn63_to_n_Zn62_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn63_to_n_Zn62_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn63_to_n_Zn62_derived) = drate_dT; + } + } + + { + // Zn63_to_p_Cu62_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn63_to_p_Cu62_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn63_to_p_Cu62_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn63_to_p_Cu62_derived) = drate_dT; + } + } + + { + // Zn63_to_He4_Ni59_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn63_to_He4_Ni59_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn63_to_He4_Ni59_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn63_to_He4_Ni59_derived) = drate_dT; + } + } + + { + // Zn64_to_n_Zn63_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn64_to_n_Zn63_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn64_to_n_Zn63_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn64_to_n_Zn63_derived) = drate_dT; + } + } + + { + // Zn64_to_p_Cu63_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn64_to_p_Cu63_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn64_to_p_Cu63_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn64_to_p_Cu63_derived) = drate_dT; + } + } + + { + // Zn64_to_He4_Ni60_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn64_to_He4_Ni60_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn64_to_He4_Ni60_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn64_to_He4_Ni60_derived) = drate_dT; + } + } + + { + // Zn65_to_n_Zn64_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn65_to_n_Zn64_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn65_to_n_Zn64_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn65_to_n_Zn64_derived) = drate_dT; + } + } + + { + // Zn65_to_p_Cu64_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn65_to_p_Cu64_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn65_to_p_Cu64_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn65_to_p_Cu64_derived) = drate_dT; + } + } + + { + // Zn65_to_He4_Ni61_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn65_to_He4_Ni61_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn65_to_He4_Ni61_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn65_to_He4_Ni61_derived) = drate_dT; + } + } + + { + // Zn66_to_n_Zn65_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn66_to_n_Zn65_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn66_to_n_Zn65_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn66_to_n_Zn65_derived) = drate_dT; + } + } + + { + // Zn66_to_p_Cu65_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn66_to_p_Cu65_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn66_to_p_Cu65_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn66_to_p_Cu65_derived) = drate_dT; + } + } + + { + // Zn66_to_He4_Ni62_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn66_to_He4_Ni62_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn66_to_He4_Ni62_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn66_to_He4_Ni62_derived) = drate_dT; + } + } + + { + // Ga62_to_p_Zn61_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ga62_to_p_Zn61_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ga62_to_p_Zn61_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga62_to_p_Zn61_derived) = drate_dT; + } + } + + { + // Ga62_to_He4_Cu58_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ga62_to_He4_Cu58_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ga62_to_He4_Cu58_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga62_to_He4_Cu58_derived) = drate_dT; + } + } + + { + // Ga63_to_n_Ga62_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ga63_to_n_Ga62_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ga63_to_n_Ga62_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga63_to_n_Ga62_derived) = drate_dT; + } + } + + { + // Ga63_to_p_Zn62_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ga63_to_p_Zn62_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ga63_to_p_Zn62_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga63_to_p_Zn62_derived) = drate_dT; + } + } + + { + // Ga63_to_He4_Cu59_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ga63_to_He4_Cu59_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ga63_to_He4_Cu59_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga63_to_He4_Cu59_derived) = drate_dT; + } + } + + { + // Ga64_to_n_Ga63_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ga64_to_n_Ga63_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ga64_to_n_Ga63_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga64_to_n_Ga63_derived) = drate_dT; + } + } + + { + // Ga64_to_p_Zn63_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ga64_to_p_Zn63_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ga64_to_p_Zn63_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga64_to_p_Zn63_derived) = drate_dT; + } + } + + { + // Ga64_to_He4_Cu60_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ga64_to_He4_Cu60_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ga64_to_He4_Cu60_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga64_to_He4_Cu60_derived) = drate_dT; + } + } + + { + // Ge63_to_p_Ga62_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ge63_to_p_Ga62_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ge63_to_p_Ga62_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ge63_to_p_Ga62_derived) = drate_dT; + } + } + + { + // Ge63_to_He4_Zn59_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ge63_to_He4_Zn59_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ge63_to_He4_Zn59_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ge63_to_He4_Zn59_derived) = drate_dT; + } + } + + { + // Ge64_to_n_Ge63_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ge64_to_n_Ge63_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ge64_to_n_Ge63_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ge64_to_n_Ge63_derived) = drate_dT; + } + } + + { + // Ge64_to_p_Ga63_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ge64_to_p_Ga63_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ge64_to_p_Ga63_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ge64_to_p_Ga63_derived) = drate_dT; + } + } + + { + // Ge64_to_He4_Zn60_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ge64_to_He4_Zn60_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ge64_to_He4_Zn60_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ge64_to_He4_Zn60_derived) = drate_dT; + } + } + + { + // Li6_to_n_p_He4_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Li6_to_n_p_He4_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Li6_to_n_p_He4_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Li6_to_n_p_He4_derived) = drate_dT; + } + } + + { + // Be9_to_n_He4_He4_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Be9_to_n_He4_He4_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Be9_to_n_He4_He4_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Be9_to_n_He4_He4_derived) = drate_dT; + } + } + + { + // C12_to_3He4_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_C12_to_3He4_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_C12_to_3He4_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_to_3He4_derived) = drate_dT; + } + } + + { + // He3_n_to_d_d_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_He3_n_to_d_d_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He3_n_to_d_d_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He3_n_to_d_d_derived) = drate_dT; + } + } + + { + // He3_He4_to_p_Li6_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He3_He4); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He3_He4); + } +#endif + rate_He3_He4_to_p_Li6_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He3_He4_to_p_Li6_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He3_He4_to_p_Li6_derived) = drate_dT; + } + } + + { + // He4_p_to_d_He3_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_He4); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_He4); + } +#endif + rate_He4_p_to_d_He3_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_p_to_d_He3_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_p_to_d_He3_derived) = drate_dT; + } + } + + { + // He4_He4_to_n_Be7_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_He4); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_He4); + } +#endif + rate_He4_He4_to_n_Be7_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_He4_to_n_Be7_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_He4_to_n_Be7_derived) = drate_dT; + } + } + + { + // He4_He4_to_p_Li7_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_He4); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_He4); + } +#endif + rate_He4_He4_to_p_Li7_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_He4_to_p_Li7_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_He4_to_p_Li7_derived) = drate_dT; + } + } + + { + // Li6_He4_to_p_Be9_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Li6); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Li6); + } +#endif + rate_Li6_He4_to_p_Be9_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Li6_He4_to_p_Be9_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Li6_He4_to_p_Be9_derived) = drate_dT; + } + } + + { + // Li7_p_to_n_Be7_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Li7); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Li7); + } +#endif + rate_Li7_p_to_n_Be7_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Li7_p_to_n_Be7_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Li7_p_to_n_Be7_derived) = drate_dT; + } + } + + { + // Li7_p_to_d_Li6_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Li7); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Li7); + } +#endif + rate_Li7_p_to_d_Li6_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Li7_p_to_d_Li6_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Li7_p_to_d_Li6_derived) = drate_dT; + } + } + + { + // Li7_He4_to_n_B10_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Li7); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Li7); + } +#endif + rate_Li7_He4_to_n_B10_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Li7_He4_to_n_B10_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Li7_He4_to_n_B10_derived) = drate_dT; + } + } + + { + // Be7_n_to_d_Li6_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Be7_n_to_d_Li6_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Be7_n_to_d_Li6_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Be7_n_to_d_Li6_derived) = drate_dT; + } + } + + { + // Be7_He4_to_p_B10_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Be7); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Be7); + } +#endif + rate_Be7_He4_to_p_B10_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Be7_He4_to_p_B10_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Be7_He4_to_p_B10_derived) = drate_dT; + } + } + + { + // C12_n_to_He4_Be9_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_C12_n_to_He4_Be9_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_C12_n_to_He4_Be9_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_n_to_He4_Be9_derived) = drate_dT; + } + } + + { + // C12_He4_to_n_O15_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_C12); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_C12); + } +#endif + rate_C12_He4_to_n_O15_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_C12_He4_to_n_O15_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_He4_to_n_O15_derived) = drate_dT; + } + } + + { + // C12_He4_to_p_N15_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_C12); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_C12); + } +#endif + rate_C12_He4_to_p_N15_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_C12_He4_to_p_N15_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_He4_to_p_N15_derived) = drate_dT; + } + } + + { + // C12_C12_to_n_Mg23_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_C12_C12); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_C12); + } +#endif + rate_C12_C12_to_n_Mg23_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_C12_C12_to_n_Mg23_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_C12_to_n_Mg23_derived) = drate_dT; + } + } + + { + // C13_p_to_He4_B10_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_C13); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_C13); + } +#endif + rate_C13_p_to_He4_B10_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_C13_p_to_He4_B10_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C13_p_to_He4_B10_derived) = drate_dT; + } + } + + { + // C14_p_to_n_N14_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_C14); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_C14); + } +#endif + rate_C14_p_to_n_N14_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_C14_p_to_n_N14_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C14_p_to_n_N14_derived) = drate_dT; + } + } + + { + // C14_p_to_He4_B11_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_C14); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_C14); + } +#endif + rate_C14_p_to_He4_B11_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_C14_p_to_He4_B11_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C14_p_to_He4_B11_derived) = drate_dT; + } + } + + { + // C14_He4_to_n_O17_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_C14); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_C14); + } +#endif + rate_C14_He4_to_n_O17_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_C14_He4_to_n_O17_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C14_He4_to_n_O17_derived) = drate_dT; + } + } + + { + // N13_n_to_p_C13_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_N13_n_to_p_C13_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_N13_n_to_p_C13_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N13_n_to_p_C13_derived) = drate_dT; + } + } + + { + // N13_n_to_He4_B10_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_N13_n_to_He4_B10_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_N13_n_to_He4_B10_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N13_n_to_He4_B10_derived) = drate_dT; + } + } + + { + // N14_n_to_d_C13_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_N14_n_to_d_C13_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_N14_n_to_d_C13_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N14_n_to_d_C13_derived) = drate_dT; + } + } + + { + // N14_n_to_He4_B11_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_N14_n_to_He4_B11_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_N14_n_to_He4_B11_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N14_n_to_He4_B11_derived) = drate_dT; + } + } + + { + // N14_He4_to_p_O17_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_N14); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_N14); + } +#endif + rate_N14_He4_to_p_O17_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_N14_He4_to_p_O17_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N14_He4_to_p_O17_derived) = drate_dT; + } + } + + { + // N15_n_to_d_C14_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_N15_n_to_d_C14_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_N15_n_to_d_C14_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N15_n_to_d_C14_derived) = drate_dT; + } + } + + { + // N15_He4_to_n_F18_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_N15); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_N15); + } +#endif + rate_N15_He4_to_n_F18_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_N15_He4_to_n_F18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N15_He4_to_n_F18_derived) = drate_dT; + } + } + + { + // N15_He4_to_p_O18_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_N15); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_N15); + } +#endif + rate_N15_He4_to_p_O18_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_N15_He4_to_p_O18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N15_He4_to_p_O18_derived) = drate_dT; + } + } + + { + // O14_n_to_p_N14_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_O14_n_to_p_N14_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_O14_n_to_p_N14_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O14_n_to_p_N14_derived) = drate_dT; + } + } + + { + // O15_n_to_p_N15_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_O15_n_to_p_N15_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_O15_n_to_p_N15_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O15_n_to_p_N15_derived) = drate_dT; + } + } + + { + // O15_He4_to_n_Ne18_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_O15); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_O15); + } +#endif + rate_O15_He4_to_n_Ne18_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_O15_He4_to_n_Ne18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O15_He4_to_n_Ne18_derived) = drate_dT; + } + } + + { + // O15_He4_to_p_F18_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_O15); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_O15); + } +#endif + rate_O15_He4_to_p_F18_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_O15_He4_to_p_F18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O15_He4_to_p_F18_derived) = drate_dT; + } + } + + { + // O16_n_to_He4_C13_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_O16_n_to_He4_C13_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_O16_n_to_He4_C13_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_n_to_He4_C13_derived) = drate_dT; + } + } + + { + // O16_p_to_He4_N13_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_O16); + } +#endif + rate_O16_p_to_He4_N13_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_O16_p_to_He4_N13_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_p_to_He4_N13_derived) = drate_dT; + } + } + + { + // O16_He4_to_n_Ne19_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_O16); + } +#endif + rate_O16_He4_to_n_Ne19_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_O16_He4_to_n_Ne19_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_He4_to_n_Ne19_derived) = drate_dT; + } + } + + { + // O16_He4_to_p_F19_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_O16); + } +#endif + rate_O16_He4_to_p_F19_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_O16_He4_to_p_F19_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_He4_to_p_F19_derived) = drate_dT; + } + } + + { + // O17_p_to_n_F17_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_O17); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_O17); + } +#endif + rate_O17_p_to_n_F17_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_O17_p_to_n_F17_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O17_p_to_n_F17_derived) = drate_dT; + } + } + + { + // O18_p_to_n_F18_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_O18); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_O18); + } +#endif + rate_O18_p_to_n_F18_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_O18_p_to_n_F18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O18_p_to_n_F18_derived) = drate_dT; + } + } + + { + // F17_n_to_He4_N14_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_F17_n_to_He4_N14_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_F17_n_to_He4_N14_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F17_n_to_He4_N14_derived) = drate_dT; + } + } + + { + // F17_p_to_He4_O14_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_F17); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_F17); + } +#endif + rate_F17_p_to_He4_O14_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_F17_p_to_He4_O14_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F17_p_to_He4_O14_derived) = drate_dT; + } + } + + { + // F17_He4_to_p_Ne20_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_F17); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_F17); + } +#endif + rate_F17_He4_to_p_Ne20_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_F17_He4_to_p_Ne20_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F17_He4_to_p_Ne20_derived) = drate_dT; + } + } + + { + // F18_p_to_n_Ne18_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_F18); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_F18); + } +#endif + rate_F18_p_to_n_Ne18_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_F18_p_to_n_Ne18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F18_p_to_n_Ne18_derived) = drate_dT; + } + } + + { + // F18_He4_to_n_Na21_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_F18); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_F18); + } +#endif + rate_F18_He4_to_n_Na21_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_F18_He4_to_n_Na21_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F18_He4_to_n_Na21_derived) = drate_dT; + } + } + + { + // F19_He4_to_n_Na22_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_F19); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_F19); + } +#endif + rate_F19_He4_to_n_Na22_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_F19_He4_to_n_Na22_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F19_He4_to_n_Na22_derived) = drate_dT; + } + } + + { + // Ne19_n_to_p_F19_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ne19_n_to_p_F19_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ne19_n_to_p_F19_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne19_n_to_p_F19_derived) = drate_dT; + } + } + + { + // Ne20_n_to_He4_O17_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ne20_n_to_He4_O17_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ne20_n_to_He4_O17_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne20_n_to_He4_O17_derived) = drate_dT; + } + } + + { + // Ne20_He4_to_n_Mg23_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ne20); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne20); + } +#endif + rate_Ne20_He4_to_n_Mg23_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ne20_He4_to_n_Mg23_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne20_He4_to_n_Mg23_derived) = drate_dT; + } + } + + { + // Ne20_He4_to_p_Na23_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ne20); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne20); + } +#endif + rate_Ne20_He4_to_p_Na23_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ne20_He4_to_p_Na23_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne20_He4_to_p_Na23_derived) = drate_dT; + } + } + + { + // Ne20_He4_to_C12_C12_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ne20); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne20); + } +#endif + rate_Ne20_He4_to_C12_C12_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ne20_He4_to_C12_C12_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne20_He4_to_C12_C12_derived) = drate_dT; + } + } + + { + // Ne21_n_to_He4_O18_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ne21_n_to_He4_O18_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ne21_n_to_He4_O18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne21_n_to_He4_O18_derived) = drate_dT; + } + } + + { + // Ne21_p_to_n_Na21_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ne21); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ne21); + } +#endif + rate_Ne21_p_to_n_Na21_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ne21_p_to_n_Na21_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne21_p_to_n_Na21_derived) = drate_dT; + } + } + + { + // Ne21_p_to_He4_F18_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ne21); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ne21); + } +#endif + rate_Ne21_p_to_He4_F18_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ne21_p_to_He4_F18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne21_p_to_He4_F18_derived) = drate_dT; + } + } + + { + // Ne22_p_to_n_Na22_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ne22); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ne22); + } +#endif + rate_Ne22_p_to_n_Na22_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ne22_p_to_n_Na22_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne22_p_to_n_Na22_derived) = drate_dT; + } + } + + { + // Ne22_p_to_He4_F19_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ne22); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ne22); + } +#endif + rate_Ne22_p_to_He4_F19_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ne22_p_to_He4_F19_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne22_p_to_He4_F19_derived) = drate_dT; + } + } + + { + // Na21_p_to_He4_Ne18_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Na21); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Na21); + } +#endif + rate_Na21_p_to_He4_Ne18_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Na21_p_to_He4_Ne18_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na21_p_to_He4_Ne18_derived) = drate_dT; + } + } + + { + // Na21_He4_to_p_Mg24_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Na21); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Na21); + } +#endif + rate_Na21_He4_to_p_Mg24_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Na21_He4_to_p_Mg24_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na21_He4_to_p_Mg24_derived) = drate_dT; + } + } + + { + // Na22_p_to_He4_Ne19_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Na22); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Na22); + } +#endif + rate_Na22_p_to_He4_Ne19_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Na22_p_to_He4_Ne19_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na22_p_to_He4_Ne19_derived) = drate_dT; + } + } + + { + // Na22_He4_to_n_Al25_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Na22); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Na22); + } +#endif + rate_Na22_He4_to_n_Al25_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Na22_He4_to_n_Al25_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na22_He4_to_n_Al25_derived) = drate_dT; + } + } + + { + // Na23_p_to_C12_C12_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Na23); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Na23); + } +#endif + rate_Na23_p_to_C12_C12_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Na23_p_to_C12_C12_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na23_p_to_C12_C12_derived) = drate_dT; + } + } + + { + // Na23_He4_to_n_Al26_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Na23); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Na23); + } +#endif + rate_Na23_He4_to_n_Al26_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Na23_He4_to_n_Al26_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na23_He4_to_n_Al26_derived) = drate_dT; + } + } + + { + // Mg23_n_to_p_Na23_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mg23_n_to_p_Na23_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mg23_n_to_p_Na23_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg23_n_to_p_Na23_derived) = drate_dT; + } + } + + { + // Mg24_n_to_He4_Ne21_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mg24_n_to_He4_Ne21_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mg24_n_to_He4_Ne21_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg24_n_to_He4_Ne21_derived) = drate_dT; + } + } + + { + // Mg24_He4_to_p_Al27_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Mg24); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg24); + } +#endif + rate_Mg24_He4_to_p_Al27_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mg24_He4_to_p_Al27_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg24_He4_to_p_Al27_derived) = drate_dT; + } + } + + { + // Mg24_He4_to_C12_O16_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Mg24); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg24); + } +#endif + rate_Mg24_He4_to_C12_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mg24_He4_to_C12_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg24_He4_to_C12_O16_derived) = drate_dT; + } + } + + { + // Mg25_n_to_He4_Ne22_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mg25_n_to_He4_Ne22_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mg25_n_to_He4_Ne22_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg25_n_to_He4_Ne22_derived) = drate_dT; + } + } + + { + // Mg25_p_to_n_Al25_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Mg25); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mg25); + } +#endif + rate_Mg25_p_to_n_Al25_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mg25_p_to_n_Al25_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg25_p_to_n_Al25_derived) = drate_dT; + } + } + + { + // Mg25_p_to_He4_Na22_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Mg25); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mg25); + } +#endif + rate_Mg25_p_to_He4_Na22_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mg25_p_to_He4_Na22_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg25_p_to_He4_Na22_derived) = drate_dT; + } + } + + { + // Mg26_p_to_n_Al26_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Mg26); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mg26); + } +#endif + rate_Mg26_p_to_n_Al26_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mg26_p_to_n_Al26_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg26_p_to_n_Al26_derived) = drate_dT; + } + } + + { + // Mg26_p_to_He4_Na23_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Mg26); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mg26); + } +#endif + rate_Mg26_p_to_He4_Na23_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mg26_p_to_He4_Na23_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg26_p_to_He4_Na23_derived) = drate_dT; + } + } + + { + // Al26_p_to_He4_Mg23_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Al26); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Al26); + } +#endif + rate_Al26_p_to_He4_Mg23_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Al26_p_to_He4_Mg23_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al26_p_to_He4_Mg23_derived) = drate_dT; + } + } + + { + // Al26_He4_to_n_P29_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Al26); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Al26); + } +#endif + rate_Al26_He4_to_n_P29_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Al26_He4_to_n_P29_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al26_He4_to_n_P29_derived) = drate_dT; + } + } + + { + // Al27_p_to_C12_O16_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Al27); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Al27); + } +#endif + rate_Al27_p_to_C12_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Al27_p_to_C12_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al27_p_to_C12_O16_derived) = drate_dT; + } + } + + { + // Si28_n_to_He4_Mg25_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Si28_n_to_He4_Mg25_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si28_n_to_He4_Mg25_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si28_n_to_He4_Mg25_derived) = drate_dT; + } + } + + { + // Si28_p_to_He4_Al25_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Si28); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Si28); + } +#endif + rate_Si28_p_to_He4_Al25_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si28_p_to_He4_Al25_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si28_p_to_He4_Al25_derived) = drate_dT; + } + } + + { + // Si28_He4_to_p_P31_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Si28); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si28); + } +#endif + rate_Si28_He4_to_p_P31_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si28_He4_to_p_P31_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si28_He4_to_p_P31_derived) = drate_dT; + } + } + + { + // Si28_He4_to_C12_Ne20_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Si28); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si28); + } +#endif + rate_Si28_He4_to_C12_Ne20_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si28_He4_to_C12_Ne20_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si28_He4_to_C12_Ne20_derived) = drate_dT; + } + } + + { + // Si28_He4_to_O16_O16_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Si28); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si28); + } +#endif + rate_Si28_He4_to_O16_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si28_He4_to_O16_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si28_He4_to_O16_O16_derived) = drate_dT; + } + } + + { + // Si29_n_to_He4_Mg26_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Si29_n_to_He4_Mg26_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si29_n_to_He4_Mg26_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si29_n_to_He4_Mg26_derived) = drate_dT; + } + } + + { + // Si29_p_to_n_P29_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Si29); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Si29); + } +#endif + rate_Si29_p_to_n_P29_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si29_p_to_n_P29_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si29_p_to_n_P29_derived) = drate_dT; + } + } + + { + // Si29_p_to_He4_Al26_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Si29); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Si29); + } +#endif + rate_Si29_p_to_He4_Al26_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si29_p_to_He4_Al26_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si29_p_to_He4_Al26_derived) = drate_dT; + } + } + + { + // Si29_He4_to_n_S32_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Si29); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si29); + } +#endif + rate_Si29_He4_to_n_S32_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si29_He4_to_n_S32_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si29_He4_to_n_S32_derived) = drate_dT; + } + } + + { + // Si29_He4_to_p_P32_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Si29); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si29); + } +#endif + rate_Si29_He4_to_p_P32_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si29_He4_to_p_P32_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si29_He4_to_p_P32_derived) = drate_dT; + } + } + + { + // Si30_p_to_n_P30_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Si30); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Si30); + } +#endif + rate_Si30_p_to_n_P30_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si30_p_to_n_P30_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si30_p_to_n_P30_derived) = drate_dT; + } + } + + { + // Si30_p_to_He4_Al27_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Si30); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Si30); + } +#endif + rate_Si30_p_to_He4_Al27_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si30_p_to_He4_Al27_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si30_p_to_He4_Al27_derived) = drate_dT; + } + } + + { + // Si30_He4_to_n_S33_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Si30); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si30); + } +#endif + rate_Si30_He4_to_n_S33_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si30_He4_to_n_S33_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si30_He4_to_n_S33_derived) = drate_dT; + } + } + + { + // Si30_He4_to_p_P33_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Si30); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si30); + } +#endif + rate_Si30_He4_to_p_P33_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si30_He4_to_p_P33_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si30_He4_to_p_P33_derived) = drate_dT; + } + } + + { + // Si32_p_to_n_P32_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Si32); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Si32); + } +#endif + rate_Si32_p_to_n_P32_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si32_p_to_n_P32_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si32_p_to_n_P32_derived) = drate_dT; + } + } + + { + // Si32_He4_to_n_S35_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Si32); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si32); + } +#endif + rate_Si32_He4_to_n_S35_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Si32_He4_to_n_S35_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si32_He4_to_n_S35_derived) = drate_dT; + } + } + + { + // P30_n_to_He4_Al27_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_P30_n_to_He4_Al27_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_P30_n_to_He4_Al27_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P30_n_to_He4_Al27_derived) = drate_dT; + } + } + + { + // P30_He4_to_n_Cl33_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_P30); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P30); + } +#endif + rate_P30_He4_to_n_Cl33_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_P30_He4_to_n_Cl33_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P30_He4_to_n_Cl33_derived) = drate_dT; + } + } + + { + // P31_n_to_p_Si31_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_P31_n_to_p_Si31_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_P31_n_to_p_Si31_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P31_n_to_p_Si31_derived) = drate_dT; + } + } + + { + // P31_p_to_C12_Ne20_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_P31); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_P31); + } +#endif + rate_P31_p_to_C12_Ne20_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_P31_p_to_C12_Ne20_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P31_p_to_C12_Ne20_derived) = drate_dT; + } + } + + { + // P31_p_to_O16_O16_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_P31); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_P31); + } +#endif + rate_P31_p_to_O16_O16_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_P31_p_to_O16_O16_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P31_p_to_O16_O16_derived) = drate_dT; + } + } + + { + // P31_He4_to_n_Cl34_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_P31); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P31); + } +#endif + rate_P31_He4_to_n_Cl34_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_P31_He4_to_n_Cl34_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P31_He4_to_n_Cl34_derived) = drate_dT; + } + } + + { + // P32_He4_to_n_Cl35_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_P32); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P32); + } +#endif + rate_P32_He4_to_n_Cl35_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_P32_He4_to_n_Cl35_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P32_He4_to_n_Cl35_derived) = drate_dT; + } + } + + { + // P32_He4_to_p_S35_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_P32); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P32); + } +#endif + rate_P32_He4_to_p_S35_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_P32_He4_to_p_S35_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P32_He4_to_p_S35_derived) = drate_dT; + } + } + + { + // P33_p_to_n_S33_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_P33); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_P33); + } +#endif + rate_P33_p_to_n_S33_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_P33_p_to_n_S33_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P33_p_to_n_S33_derived) = drate_dT; + } + } + + { + // P33_He4_to_n_Cl36_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_P33); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P33); + } +#endif + rate_P33_He4_to_n_Cl36_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_P33_He4_to_n_Cl36_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P33_He4_to_n_Cl36_derived) = drate_dT; + } + } + + { + // P33_He4_to_p_S36_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_P33); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P33); + } +#endif + rate_P33_He4_to_p_S36_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_P33_He4_to_p_S36_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P33_He4_to_p_S36_derived) = drate_dT; + } + } + + { + // S32_n_to_p_P32_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_S32_n_to_p_P32_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S32_n_to_p_P32_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S32_n_to_p_P32_derived) = drate_dT; + } + } + + { + // S32_p_to_He4_P29_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_S32); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S32); + } +#endif + rate_S32_p_to_He4_P29_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S32_p_to_He4_P29_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S32_p_to_He4_P29_derived) = drate_dT; + } + } + + { + // S32_He4_to_p_Cl35_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_S32); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_S32); + } +#endif + rate_S32_He4_to_p_Cl35_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S32_He4_to_p_Cl35_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S32_He4_to_p_Cl35_derived) = drate_dT; + } + } + + { + // S33_p_to_n_Cl33_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_S33); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S33); + } +#endif + rate_S33_p_to_n_Cl33_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S33_p_to_n_Cl33_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S33_p_to_n_Cl33_derived) = drate_dT; + } + } + + { + // S33_p_to_He4_P30_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_S33); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S33); + } +#endif + rate_S33_p_to_He4_P30_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S33_p_to_He4_P30_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S33_p_to_He4_P30_derived) = drate_dT; + } + } + + { + // S33_He4_to_n_Ar36_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_S33); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_S33); + } +#endif + rate_S33_He4_to_n_Ar36_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S33_He4_to_n_Ar36_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S33_He4_to_n_Ar36_derived) = drate_dT; + } + } + + { + // S33_He4_to_p_Cl36_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_S33); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_S33); + } +#endif + rate_S33_He4_to_p_Cl36_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S33_He4_to_p_Cl36_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S33_He4_to_p_Cl36_derived) = drate_dT; + } + } + + { + // S34_n_to_He4_Si31_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_S34_n_to_He4_Si31_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S34_n_to_He4_Si31_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S34_n_to_He4_Si31_derived) = drate_dT; + } + } + + { + // S34_p_to_n_Cl34_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_S34); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S34); + } +#endif + rate_S34_p_to_n_Cl34_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S34_p_to_n_Cl34_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S34_p_to_n_Cl34_derived) = drate_dT; + } + } + + { + // S34_p_to_He4_P31_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_S34); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S34); + } +#endif + rate_S34_p_to_He4_P31_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S34_p_to_He4_P31_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S34_p_to_He4_P31_derived) = drate_dT; + } + } + + { + // S35_p_to_n_Cl35_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_S35); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S35); + } +#endif + rate_S35_p_to_n_Cl35_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S35_p_to_n_Cl35_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S35_p_to_n_Cl35_derived) = drate_dT; + } + } + + { + // S36_p_to_n_Cl36_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_S36); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S36); + } +#endif + rate_S36_p_to_n_Cl36_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S36_p_to_n_Cl36_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S36_p_to_n_Cl36_derived) = drate_dT; + } + } + + { + // S36_He4_to_n_Ar39_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_S36); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_S36); + } +#endif + rate_S36_He4_to_n_Ar39_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_S36_He4_to_n_Ar39_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S36_He4_to_n_Ar39_derived) = drate_dT; + } + } + + { + // Cl34_He4_to_n_K37_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cl34); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl34); + } +#endif + rate_Cl34_He4_to_n_K37_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cl34_He4_to_n_K37_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl34_He4_to_n_K37_derived) = drate_dT; + } + } + + { + // Cl35_He4_to_n_K38_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cl35); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl35); + } +#endif + rate_Cl35_He4_to_n_K38_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cl35_He4_to_n_K38_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl35_He4_to_n_K38_derived) = drate_dT; + } + } + + { + // Cl36_p_to_n_Ar36_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cl36); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cl36); + } +#endif + rate_Cl36_p_to_n_Ar36_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cl36_p_to_n_Ar36_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl36_p_to_n_Ar36_derived) = drate_dT; + } + } + + { + // Cl36_He4_to_n_K39_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cl36); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl36); + } +#endif + rate_Cl36_He4_to_n_K39_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cl36_He4_to_n_K39_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl36_He4_to_n_K39_derived) = drate_dT; + } + } + + { + // Cl36_He4_to_p_Ar39_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cl36); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl36); + } +#endif + rate_Cl36_He4_to_p_Ar39_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cl36_He4_to_p_Ar39_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl36_He4_to_p_Ar39_derived) = drate_dT; + } + } + + { + // Cl37_p_to_n_Ar37_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cl37); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cl37); + } +#endif + rate_Cl37_p_to_n_Ar37_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cl37_p_to_n_Ar37_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl37_p_to_n_Ar37_derived) = drate_dT; + } + } + + { + // Cl37_p_to_He4_S34_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cl37); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cl37); + } +#endif + rate_Cl37_p_to_He4_S34_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cl37_p_to_He4_S34_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl37_p_to_He4_S34_derived) = drate_dT; + } + } + + { + // Cl37_He4_to_n_K40_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cl37); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl37); + } +#endif + rate_Cl37_He4_to_n_K40_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cl37_He4_to_n_K40_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl37_He4_to_n_K40_derived) = drate_dT; + } + } + + { + // Cl37_He4_to_p_Ar40_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cl37); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl37); + } +#endif + rate_Cl37_He4_to_p_Ar40_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cl37_He4_to_p_Ar40_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl37_He4_to_p_Ar40_derived) = drate_dT; + } + } + + { + // Ar36_p_to_He4_Cl33_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ar36); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar36); + } +#endif + rate_Ar36_p_to_He4_Cl33_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar36_p_to_He4_Cl33_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_p_to_He4_Cl33_derived) = drate_dT; + } + } + + { + // Ar36_He4_to_p_K39_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ar36); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ar36); + } +#endif + rate_Ar36_He4_to_p_K39_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar36_He4_to_p_K39_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_He4_to_p_K39_derived) = drate_dT; + } + } + + { + // Ar37_n_to_He4_S34_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ar37_n_to_He4_S34_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar37_n_to_He4_S34_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar37_n_to_He4_S34_derived) = drate_dT; + } + } + + { + // Ar37_p_to_n_K37_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ar37); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar37); + } +#endif + rate_Ar37_p_to_n_K37_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar37_p_to_n_K37_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar37_p_to_n_K37_derived) = drate_dT; + } + } + + { + // Ar37_p_to_He4_Cl34_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ar37); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar37); + } +#endif + rate_Ar37_p_to_He4_Cl34_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar37_p_to_He4_Cl34_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar37_p_to_He4_Cl34_derived) = drate_dT; + } + } + + { + // Ar37_He4_to_n_Ca40_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ar37); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ar37); + } +#endif + rate_Ar37_He4_to_n_Ca40_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar37_He4_to_n_Ca40_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar37_He4_to_n_Ca40_derived) = drate_dT; + } + } + + { + // Ar37_He4_to_p_K40_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ar37); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ar37); + } +#endif + rate_Ar37_He4_to_p_K40_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar37_He4_to_p_K40_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar37_He4_to_p_K40_derived) = drate_dT; + } + } + + { + // Ar38_n_to_He4_S35_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ar38_n_to_He4_S35_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar38_n_to_He4_S35_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar38_n_to_He4_S35_derived) = drate_dT; + } + } + + { + // Ar38_p_to_n_K38_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ar38); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar38); + } +#endif + rate_Ar38_p_to_n_K38_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar38_p_to_n_K38_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar38_p_to_n_K38_derived) = drate_dT; + } + } + + { + // Ar38_p_to_He4_Cl35_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ar38); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar38); + } +#endif + rate_Ar38_p_to_He4_Cl35_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar38_p_to_He4_Cl35_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar38_p_to_He4_Cl35_derived) = drate_dT; + } + } + + { + // Ar38_He4_to_n_Ca41_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ar38); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ar38); + } +#endif + rate_Ar38_He4_to_n_Ca41_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar38_He4_to_n_Ca41_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar38_He4_to_n_Ca41_derived) = drate_dT; + } + } + + { + // Ar38_He4_to_p_K41_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ar38); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ar38); + } +#endif + rate_Ar38_He4_to_p_K41_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar38_He4_to_p_K41_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar38_He4_to_p_K41_derived) = drate_dT; + } + } + + { + // Ar39_p_to_n_K39_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ar39); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar39); + } +#endif + rate_Ar39_p_to_n_K39_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar39_p_to_n_K39_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar39_p_to_n_K39_derived) = drate_dT; + } + } + + { + // Ar39_He4_to_n_Ca42_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ar39); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ar39); + } +#endif + rate_Ar39_He4_to_n_Ca42_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar39_He4_to_n_Ca42_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar39_He4_to_n_Ca42_derived) = drate_dT; + } + } + + { + // Ar40_p_to_n_K40_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ar40); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar40); + } +#endif + rate_Ar40_p_to_n_K40_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar40_p_to_n_K40_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar40_p_to_n_K40_derived) = drate_dT; + } + } + + { + // Ar40_He4_to_n_Ca43_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ar40); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ar40); + } +#endif + rate_Ar40_He4_to_n_Ca43_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ar40_He4_to_n_Ca43_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar40_He4_to_n_Ca43_derived) = drate_dT; + } + } + + { + // K39_He4_to_p_Ca42_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_K39); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_K39); + } +#endif + rate_K39_He4_to_p_Ca42_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_K39_He4_to_p_Ca42_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K39_He4_to_p_Ca42_derived) = drate_dT; + } + } + + { + // K40_He4_to_n_Sc43_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_K40); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_K40); + } +#endif + rate_K40_He4_to_n_Sc43_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_K40_He4_to_n_Sc43_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K40_He4_to_n_Sc43_derived) = drate_dT; + } + } + + { + // Ca40_n_to_p_K40_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca40_n_to_p_K40_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca40_n_to_p_K40_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_n_to_p_K40_derived) = drate_dT; + } + } + + { + // Ca40_p_to_He4_K37_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ca40); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca40); + } +#endif + rate_Ca40_p_to_He4_K37_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca40_p_to_He4_K37_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_p_to_He4_K37_derived) = drate_dT; + } + } + + { + // Ca40_He4_to_p_Sc43_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ca40); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca40); + } +#endif + rate_Ca40_He4_to_p_Sc43_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca40_He4_to_p_Sc43_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_He4_to_p_Sc43_derived) = drate_dT; + } + } + + { + // Ca41_n_to_p_K41_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca41_n_to_p_K41_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca41_n_to_p_K41_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca41_n_to_p_K41_derived) = drate_dT; + } + } + + { + // Ca41_p_to_He4_K38_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ca41); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca41); + } +#endif + rate_Ca41_p_to_He4_K38_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca41_p_to_He4_K38_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca41_p_to_He4_K38_derived) = drate_dT; + } + } + + { + // Ca41_He4_to_n_Ti44_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ca41); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca41); + } +#endif + rate_Ca41_He4_to_n_Ti44_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca41_He4_to_n_Ti44_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca41_He4_to_n_Ti44_derived) = drate_dT; + } + } + + { + // Ca41_He4_to_p_Sc44_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ca41); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca41); + } +#endif + rate_Ca41_He4_to_p_Sc44_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca41_He4_to_p_Sc44_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca41_He4_to_p_Sc44_derived) = drate_dT; + } + } + + { + // Ca42_He4_to_n_Ti45_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ca42); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca42); + } +#endif + rate_Ca42_He4_to_n_Ti45_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca42_He4_to_n_Ti45_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca42_He4_to_n_Ti45_derived) = drate_dT; + } + } + + { + // Ca42_He4_to_p_Sc45_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ca42); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca42); + } +#endif + rate_Ca42_He4_to_p_Sc45_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca42_He4_to_p_Sc45_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca42_He4_to_p_Sc45_derived) = drate_dT; + } + } + + { + // Ca43_p_to_n_Sc43_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ca43); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca43); + } +#endif + rate_Ca43_p_to_n_Sc43_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca43_p_to_n_Sc43_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca43_p_to_n_Sc43_derived) = drate_dT; + } + } + + { + // Ca43_p_to_He4_K40_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ca43); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca43); + } +#endif + rate_Ca43_p_to_He4_K40_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca43_p_to_He4_K40_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca43_p_to_He4_K40_derived) = drate_dT; + } + } + + { + // Ca43_He4_to_p_Sc46_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ca43); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca43); + } +#endif + rate_Ca43_He4_to_p_Sc46_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca43_He4_to_p_Sc46_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca43_He4_to_p_Sc46_derived) = drate_dT; + } + } + + { + // Ca44_p_to_n_Sc44_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ca44); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca44); + } +#endif + rate_Ca44_p_to_n_Sc44_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca44_p_to_n_Sc44_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca44_p_to_n_Sc44_derived) = drate_dT; + } + } + + { + // Ca44_p_to_He4_K41_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ca44); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca44); + } +#endif + rate_Ca44_p_to_He4_K41_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca44_p_to_He4_K41_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca44_p_to_He4_K41_derived) = drate_dT; + } + } + + { + // Ca44_He4_to_n_Ti47_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ca44); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca44); + } +#endif + rate_Ca44_He4_to_n_Ti47_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca44_He4_to_n_Ti47_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca44_He4_to_n_Ti47_derived) = drate_dT; + } + } + + { + // Ca44_He4_to_p_Sc47_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ca44); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca44); + } +#endif + rate_Ca44_He4_to_p_Sc47_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca44_He4_to_p_Sc47_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca44_He4_to_p_Sc47_derived) = drate_dT; + } + } + + { + // Ca45_p_to_n_Sc45_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ca45); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca45); + } +#endif + rate_Ca45_p_to_n_Sc45_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca45_p_to_n_Sc45_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca45_p_to_n_Sc45_derived) = drate_dT; + } + } + + { + // Ca45_He4_to_p_Sc48_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ca45); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca45); + } +#endif + rate_Ca45_He4_to_p_Sc48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca45_He4_to_p_Sc48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca45_He4_to_p_Sc48_derived) = drate_dT; + } + } + + { + // Ca46_p_to_n_Sc46_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ca46); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca46); + } +#endif + rate_Ca46_p_to_n_Sc46_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca46_p_to_n_Sc46_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca46_p_to_n_Sc46_derived) = drate_dT; + } + } + + { + // Ca46_He4_to_n_Ti49_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ca46); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca46); + } +#endif + rate_Ca46_He4_to_n_Ti49_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca46_He4_to_n_Ti49_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca46_He4_to_n_Ti49_derived) = drate_dT; + } + } + + { + // Ca46_He4_to_p_Sc49_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ca46); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca46); + } +#endif + rate_Ca46_He4_to_p_Sc49_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca46_He4_to_p_Sc49_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca46_He4_to_p_Sc49_derived) = drate_dT; + } + } + + { + // Ca48_p_to_n_Sc48_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ca48); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca48); + } +#endif + rate_Ca48_p_to_n_Sc48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca48_p_to_n_Sc48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca48_p_to_n_Sc48_derived) = drate_dT; + } + } + + { + // Ca48_He4_to_n_Ti51_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ca48); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca48); + } +#endif + rate_Ca48_He4_to_n_Ti51_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ca48_He4_to_n_Ti51_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca48_He4_to_n_Ti51_derived) = drate_dT; + } + } + + { + // Sc43_He4_to_n_V46_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Sc43); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc43); + } +#endif + rate_Sc43_He4_to_n_V46_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc43_He4_to_n_V46_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc43_He4_to_n_V46_derived) = drate_dT; + } + } + + { + // Sc44_n_to_He4_K41_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc44_n_to_He4_K41_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc44_n_to_He4_K41_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc44_n_to_He4_K41_derived) = drate_dT; + } + } + + { + // Sc44_p_to_n_Ti44_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Sc44); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc44); + } +#endif + rate_Sc44_p_to_n_Ti44_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc44_p_to_n_Ti44_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc44_p_to_n_Ti44_derived) = drate_dT; + } + } + + { + // Sc44_He4_to_n_V47_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Sc44); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc44); + } +#endif + rate_Sc44_He4_to_n_V47_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc44_He4_to_n_V47_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc44_He4_to_n_V47_derived) = drate_dT; + } + } + + { + // Sc45_p_to_n_Ti45_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Sc45); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc45); + } +#endif + rate_Sc45_p_to_n_Ti45_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc45_p_to_n_Ti45_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc45_p_to_n_Ti45_derived) = drate_dT; + } + } + + { + // Sc45_He4_to_n_V48_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Sc45); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc45); + } +#endif + rate_Sc45_He4_to_n_V48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc45_He4_to_n_V48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc45_He4_to_n_V48_derived) = drate_dT; + } + } + + { + // Sc47_n_to_p_Ca47_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc47_n_to_p_Ca47_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc47_n_to_p_Ca47_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc47_n_to_p_Ca47_derived) = drate_dT; + } + } + + { + // Sc47_p_to_n_Ti47_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Sc47); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc47); + } +#endif + rate_Sc47_p_to_n_Ti47_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc47_p_to_n_Ti47_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc47_p_to_n_Ti47_derived) = drate_dT; + } + } + + { + // Sc47_He4_to_n_V50_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Sc47); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc47); + } +#endif + rate_Sc47_He4_to_n_V50_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc47_He4_to_n_V50_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc47_He4_to_n_V50_derived) = drate_dT; + } + } + + { + // Sc49_He4_to_n_V52_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Sc49); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc49); + } +#endif + rate_Sc49_He4_to_n_V52_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Sc49_He4_to_n_V52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc49_He4_to_n_V52_derived) = drate_dT; + } + } + + { + // Ti45_He4_to_n_Cr48_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ti45); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti45); + } +#endif + rate_Ti45_He4_to_n_Cr48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti45_He4_to_n_Cr48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti45_He4_to_n_Cr48_derived) = drate_dT; + } + } + + { + // Ti46_n_to_p_Sc46_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti46_n_to_p_Sc46_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti46_n_to_p_Sc46_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti46_n_to_p_Sc46_derived) = drate_dT; + } + } + + { + // Ti46_n_to_He4_Ca43_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti46_n_to_He4_Ca43_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti46_n_to_He4_Ca43_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti46_n_to_He4_Ca43_derived) = drate_dT; + } + } + + { + // Ti46_p_to_n_V46_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ti46); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti46); + } +#endif + rate_Ti46_p_to_n_V46_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti46_p_to_n_V46_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti46_p_to_n_V46_derived) = drate_dT; + } + } + + { + // Ti46_p_to_He4_Sc43_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ti46); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti46); + } +#endif + rate_Ti46_p_to_He4_Sc43_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti46_p_to_He4_Sc43_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti46_p_to_He4_Sc43_derived) = drate_dT; + } + } + + { + // Ti46_He4_to_n_Cr49_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ti46); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti46); + } +#endif + rate_Ti46_He4_to_n_Cr49_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti46_He4_to_n_Cr49_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti46_He4_to_n_Cr49_derived) = drate_dT; + } + } + + { + // Ti46_He4_to_p_V49_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ti46); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti46); + } +#endif + rate_Ti46_He4_to_p_V49_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti46_He4_to_p_V49_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti46_He4_to_p_V49_derived) = drate_dT; + } + } + + { + // Ti47_p_to_n_V47_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ti47); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti47); + } +#endif + rate_Ti47_p_to_n_V47_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti47_p_to_n_V47_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti47_p_to_n_V47_derived) = drate_dT; + } + } + + { + // Ti47_p_to_He4_Sc44_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ti47); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti47); + } +#endif + rate_Ti47_p_to_He4_Sc44_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti47_p_to_He4_Sc44_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti47_p_to_He4_Sc44_derived) = drate_dT; + } + } + + { + // Ti47_He4_to_n_Cr50_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ti47); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti47); + } +#endif + rate_Ti47_He4_to_n_Cr50_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti47_He4_to_n_Cr50_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti47_He4_to_n_Cr50_derived) = drate_dT; + } + } + + { + // Ti47_He4_to_p_V50_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ti47); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti47); + } +#endif + rate_Ti47_He4_to_p_V50_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti47_He4_to_p_V50_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti47_He4_to_p_V50_derived) = drate_dT; + } + } + + { + // Ti48_n_to_p_Sc48_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti48_n_to_p_Sc48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti48_n_to_p_Sc48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti48_n_to_p_Sc48_derived) = drate_dT; + } + } + + { + // Ti48_n_to_He4_Ca45_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti48_n_to_He4_Ca45_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti48_n_to_He4_Ca45_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti48_n_to_He4_Ca45_derived) = drate_dT; + } + } + + { + // Ti48_p_to_n_V48_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ti48); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti48); + } +#endif + rate_Ti48_p_to_n_V48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti48_p_to_n_V48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti48_p_to_n_V48_derived) = drate_dT; + } + } + + { + // Ti48_p_to_He4_Sc45_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ti48); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti48); + } +#endif + rate_Ti48_p_to_He4_Sc45_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti48_p_to_He4_Sc45_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti48_p_to_He4_Sc45_derived) = drate_dT; + } + } + + { + // Ti48_He4_to_n_Cr51_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ti48); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti48); + } +#endif + rate_Ti48_He4_to_n_Cr51_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti48_He4_to_n_Cr51_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti48_He4_to_n_Cr51_derived) = drate_dT; + } + } + + { + // Ti48_He4_to_p_V51_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ti48); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti48); + } +#endif + rate_Ti48_He4_to_p_V51_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti48_He4_to_p_V51_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti48_He4_to_p_V51_derived) = drate_dT; + } + } + + { + // Ti49_n_to_p_Sc49_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti49_n_to_p_Sc49_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti49_n_to_p_Sc49_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti49_n_to_p_Sc49_derived) = drate_dT; + } + } + + { + // Ti49_p_to_n_V49_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ti49); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti49); + } +#endif + rate_Ti49_p_to_n_V49_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti49_p_to_n_V49_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti49_p_to_n_V49_derived) = drate_dT; + } + } + + { + // Ti49_p_to_He4_Sc46_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ti49); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti49); + } +#endif + rate_Ti49_p_to_He4_Sc46_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti49_p_to_He4_Sc46_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti49_p_to_He4_Sc46_derived) = drate_dT; + } + } + + { + // Ti49_He4_to_p_V52_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ti49); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti49); + } +#endif + rate_Ti49_He4_to_p_V52_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti49_He4_to_p_V52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti49_He4_to_p_V52_derived) = drate_dT; + } + } + + { + // Ti50_n_to_He4_Ca47_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti50_n_to_He4_Ca47_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti50_n_to_He4_Ca47_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti50_n_to_He4_Ca47_derived) = drate_dT; + } + } + + { + // Ti50_p_to_n_V50_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ti50); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti50); + } +#endif + rate_Ti50_p_to_n_V50_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti50_p_to_n_V50_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti50_p_to_n_V50_derived) = drate_dT; + } + } + + { + // Ti50_p_to_He4_Sc47_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ti50); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti50); + } +#endif + rate_Ti50_p_to_He4_Sc47_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti50_p_to_He4_Sc47_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti50_p_to_He4_Sc47_derived) = drate_dT; + } + } + + { + // Ti50_He4_to_n_Cr53_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ti50); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti50); + } +#endif + rate_Ti50_He4_to_n_Cr53_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti50_He4_to_n_Cr53_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti50_He4_to_n_Cr53_derived) = drate_dT; + } + } + + { + // Ti51_p_to_He4_Sc48_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ti51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti51); + } +#endif + rate_Ti51_p_to_He4_Sc48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ti51_p_to_He4_Sc48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti51_p_to_He4_Sc48_derived) = drate_dT; + } + } + + { + // V47_p_to_He4_Ti44_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_V47); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V47); + } +#endif + rate_V47_p_to_He4_Ti44_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V47_p_to_He4_Ti44_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V47_p_to_He4_Ti44_derived) = drate_dT; + } + } + + { + // V47_He4_to_n_Mn50_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_V47); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V47); + } +#endif + rate_V47_He4_to_n_Mn50_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V47_He4_to_n_Mn50_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V47_He4_to_n_Mn50_derived) = drate_dT; + } + } + + { + // V48_p_to_n_Cr48_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_V48); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V48); + } +#endif + rate_V48_p_to_n_Cr48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V48_p_to_n_Cr48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V48_p_to_n_Cr48_derived) = drate_dT; + } + } + + { + // V48_p_to_He4_Ti45_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_V48); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V48); + } +#endif + rate_V48_p_to_He4_Ti45_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V48_p_to_He4_Ti45_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V48_p_to_He4_Ti45_derived) = drate_dT; + } + } + + { + // V48_He4_to_n_Mn51_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_V48); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V48); + } +#endif + rate_V48_He4_to_n_Mn51_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V48_He4_to_n_Mn51_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V48_He4_to_n_Mn51_derived) = drate_dT; + } + } + + { + // V49_n_to_He4_Sc46_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V49_n_to_He4_Sc46_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V49_n_to_He4_Sc46_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V49_n_to_He4_Sc46_derived) = drate_dT; + } + } + + { + // V49_p_to_n_Cr49_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_V49); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V49); + } +#endif + rate_V49_p_to_n_Cr49_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V49_p_to_n_Cr49_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V49_p_to_n_Cr49_derived) = drate_dT; + } + } + + { + // V49_He4_to_n_Mn52_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_V49); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V49); + } +#endif + rate_V49_He4_to_n_Mn52_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V49_He4_to_n_Mn52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V49_He4_to_n_Mn52_derived) = drate_dT; + } + } + + { + // V50_He4_to_n_Mn53_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_V50); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V50); + } +#endif + rate_V50_He4_to_n_Mn53_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V50_He4_to_n_Mn53_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V50_He4_to_n_Mn53_derived) = drate_dT; + } + } + + { + // V51_n_to_p_Ti51_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V51_n_to_p_Ti51_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V51_n_to_p_Ti51_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V51_n_to_p_Ti51_derived) = drate_dT; + } + } + + { + // V51_n_to_He4_Sc48_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V51_n_to_He4_Sc48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V51_n_to_He4_Sc48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V51_n_to_He4_Sc48_derived) = drate_dT; + } + } + + { + // V51_p_to_n_Cr51_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_V51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V51); + } +#endif + rate_V51_p_to_n_Cr51_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V51_p_to_n_Cr51_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V51_p_to_n_Cr51_derived) = drate_dT; + } + } + + { + // V51_He4_to_n_Mn54_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_V51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V51); + } +#endif + rate_V51_He4_to_n_Mn54_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V51_He4_to_n_Mn54_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V51_He4_to_n_Mn54_derived) = drate_dT; + } + } + + { + // V51_He4_to_p_Cr54_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_V51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V51); + } +#endif + rate_V51_He4_to_p_Cr54_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_V51_He4_to_p_Cr54_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V51_He4_to_p_Cr54_derived) = drate_dT; + } + } + + { + // Cr49_p_to_He4_V46_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cr49); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr49); + } +#endif + rate_Cr49_p_to_He4_V46_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr49_p_to_He4_V46_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr49_p_to_He4_V46_derived) = drate_dT; + } + } + + { + // Cr49_He4_to_n_Fe52_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cr49); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr49); + } +#endif + rate_Cr49_He4_to_n_Fe52_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr49_He4_to_n_Fe52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr49_He4_to_n_Fe52_derived) = drate_dT; + } + } + + { + // Cr50_n_to_p_V50_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr50_n_to_p_V50_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr50_n_to_p_V50_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr50_n_to_p_V50_derived) = drate_dT; + } + } + + { + // Cr50_p_to_n_Mn50_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cr50); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr50); + } +#endif + rate_Cr50_p_to_n_Mn50_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr50_p_to_n_Mn50_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr50_p_to_n_Mn50_derived) = drate_dT; + } + } + + { + // Cr50_p_to_He4_V47_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cr50); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr50); + } +#endif + rate_Cr50_p_to_He4_V47_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr50_p_to_He4_V47_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr50_p_to_He4_V47_derived) = drate_dT; + } + } + + { + // Cr50_He4_to_n_Fe53_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cr50); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr50); + } +#endif + rate_Cr50_He4_to_n_Fe53_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr50_He4_to_n_Fe53_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr50_He4_to_n_Fe53_derived) = drate_dT; + } + } + + { + // Cr50_He4_to_p_Mn53_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cr50); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr50); + } +#endif + rate_Cr50_He4_to_p_Mn53_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr50_He4_to_p_Mn53_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr50_He4_to_p_Mn53_derived) = drate_dT; + } + } + + { + // Cr51_p_to_n_Mn51_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cr51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr51); + } +#endif + rate_Cr51_p_to_n_Mn51_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr51_p_to_n_Mn51_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr51_p_to_n_Mn51_derived) = drate_dT; + } + } + + { + // Cr51_p_to_He4_V48_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cr51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr51); + } +#endif + rate_Cr51_p_to_He4_V48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr51_p_to_He4_V48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr51_p_to_He4_V48_derived) = drate_dT; + } + } + + { + // Cr51_He4_to_n_Fe54_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cr51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr51); + } +#endif + rate_Cr51_He4_to_n_Fe54_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr51_He4_to_n_Fe54_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr51_He4_to_n_Fe54_derived) = drate_dT; + } + } + + { + // Cr51_He4_to_p_Mn54_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cr51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr51); + } +#endif + rate_Cr51_He4_to_p_Mn54_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr51_He4_to_p_Mn54_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr51_He4_to_p_Mn54_derived) = drate_dT; + } + } + + { + // Cr52_n_to_p_V52_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr52_n_to_p_V52_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr52_n_to_p_V52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr52_n_to_p_V52_derived) = drate_dT; + } + } + + { + // Cr52_n_to_He4_Ti49_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr52_n_to_He4_Ti49_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr52_n_to_He4_Ti49_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr52_n_to_He4_Ti49_derived) = drate_dT; + } + } + + { + // Cr52_p_to_n_Mn52_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cr52); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr52); + } +#endif + rate_Cr52_p_to_n_Mn52_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr52_p_to_n_Mn52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr52_p_to_n_Mn52_derived) = drate_dT; + } + } + + { + // Cr52_p_to_He4_V49_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cr52); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr52); + } +#endif + rate_Cr52_p_to_He4_V49_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr52_p_to_He4_V49_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr52_p_to_He4_V49_derived) = drate_dT; + } + } + + { + // Cr52_He4_to_n_Fe55_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cr52); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr52); + } +#endif + rate_Cr52_He4_to_n_Fe55_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr52_He4_to_n_Fe55_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr52_He4_to_n_Fe55_derived) = drate_dT; + } + } + + { + // Cr52_He4_to_p_Mn55_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cr52); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr52); + } +#endif + rate_Cr52_He4_to_p_Mn55_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr52_He4_to_p_Mn55_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr52_He4_to_p_Mn55_derived) = drate_dT; + } + } + + { + // Cr53_p_to_n_Mn53_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cr53); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr53); + } +#endif + rate_Cr53_p_to_n_Mn53_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr53_p_to_n_Mn53_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr53_p_to_n_Mn53_derived) = drate_dT; + } + } + + { + // Cr53_p_to_He4_V50_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cr53); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr53); + } +#endif + rate_Cr53_p_to_He4_V50_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr53_p_to_He4_V50_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr53_p_to_He4_V50_derived) = drate_dT; + } + } + + { + // Cr53_He4_to_n_Fe56_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cr53); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr53); + } +#endif + rate_Cr53_He4_to_n_Fe56_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr53_He4_to_n_Fe56_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr53_He4_to_n_Fe56_derived) = drate_dT; + } + } + + { + // Cr54_n_to_He4_Ti51_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr54_n_to_He4_Ti51_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr54_n_to_He4_Ti51_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr54_n_to_He4_Ti51_derived) = drate_dT; + } + } + + { + // Cr54_p_to_n_Mn54_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cr54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr54); + } +#endif + rate_Cr54_p_to_n_Mn54_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr54_p_to_n_Mn54_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr54_p_to_n_Mn54_derived) = drate_dT; + } + } + + { + // Cr54_He4_to_n_Fe57_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cr54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr54); + } +#endif + rate_Cr54_He4_to_n_Fe57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cr54_He4_to_n_Fe57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr54_He4_to_n_Fe57_derived) = drate_dT; + } + } + + { + // Mn50_He4_to_n_Co53_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Mn50); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn50); + } +#endif + rate_Mn50_He4_to_n_Co53_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn50_He4_to_n_Co53_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn50_He4_to_n_Co53_derived) = drate_dT; + } + } + + { + // Mn51_p_to_He4_Cr48_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Mn51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn51); + } +#endif + rate_Mn51_p_to_He4_Cr48_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn51_p_to_He4_Cr48_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn51_p_to_He4_Cr48_derived) = drate_dT; + } + } + + { + // Mn51_He4_to_n_Co54_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Mn51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn51); + } +#endif + rate_Mn51_He4_to_n_Co54_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn51_He4_to_n_Co54_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn51_He4_to_n_Co54_derived) = drate_dT; + } + } + + { + // Mn52_p_to_n_Fe52_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Mn52); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn52); + } +#endif + rate_Mn52_p_to_n_Fe52_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn52_p_to_n_Fe52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn52_p_to_n_Fe52_derived) = drate_dT; + } + } + + { + // Mn52_p_to_He4_Cr49_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Mn52); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn52); + } +#endif + rate_Mn52_p_to_He4_Cr49_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn52_p_to_He4_Cr49_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn52_p_to_He4_Cr49_derived) = drate_dT; + } + } + + { + // Mn52_He4_to_n_Co55_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Mn52); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn52); + } +#endif + rate_Mn52_He4_to_n_Co55_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn52_He4_to_n_Co55_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn52_He4_to_n_Co55_derived) = drate_dT; + } + } + + { + // Mn53_p_to_n_Fe53_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Mn53); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn53); + } +#endif + rate_Mn53_p_to_n_Fe53_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn53_p_to_n_Fe53_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn53_p_to_n_Fe53_derived) = drate_dT; + } + } + + { + // Mn53_He4_to_n_Co56_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Mn53); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn53); + } +#endif + rate_Mn53_He4_to_n_Co56_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn53_He4_to_n_Co56_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn53_He4_to_n_Co56_derived) = drate_dT; + } + } + + { + // Mn54_p_to_n_Fe54_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Mn54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn54); + } +#endif + rate_Mn54_p_to_n_Fe54_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn54_p_to_n_Fe54_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn54_p_to_n_Fe54_derived) = drate_dT; + } + } + + { + // Mn54_He4_to_n_Co57_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Mn54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn54); + } +#endif + rate_Mn54_He4_to_n_Co57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn54_He4_to_n_Co57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn54_He4_to_n_Co57_derived) = drate_dT; + } + } + + { + // Mn54_He4_to_p_Fe57_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Mn54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn54); + } +#endif + rate_Mn54_He4_to_p_Fe57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn54_He4_to_p_Fe57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn54_He4_to_p_Fe57_derived) = drate_dT; + } + } + + { + // Mn55_n_to_He4_V52_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn55_n_to_He4_V52_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn55_n_to_He4_V52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn55_n_to_He4_V52_derived) = drate_dT; + } + } + + { + // Mn55_p_to_n_Fe55_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Mn55); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn55); + } +#endif + rate_Mn55_p_to_n_Fe55_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn55_p_to_n_Fe55_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn55_p_to_n_Fe55_derived) = drate_dT; + } + } + + { + // Mn55_He4_to_n_Co58_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Mn55); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn55); + } +#endif + rate_Mn55_He4_to_n_Co58_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn55_He4_to_n_Co58_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn55_He4_to_n_Co58_derived) = drate_dT; + } + } + + { + // Mn55_He4_to_p_Fe58_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Mn55); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn55); + } +#endif + rate_Mn55_He4_to_p_Fe58_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Mn55_He4_to_p_Fe58_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn55_He4_to_p_Fe58_derived) = drate_dT; + } + } + + { + // Fe53_p_to_n_Co53_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Fe53); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe53); + } +#endif + rate_Fe53_p_to_n_Co53_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe53_p_to_n_Co53_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe53_p_to_n_Co53_derived) = drate_dT; + } + } + + { + // Fe53_p_to_He4_Mn50_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Fe53); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe53); + } +#endif + rate_Fe53_p_to_He4_Mn50_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe53_p_to_He4_Mn50_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe53_p_to_He4_Mn50_derived) = drate_dT; + } + } + + { + // Fe53_He4_to_n_Ni56_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Fe53); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe53); + } +#endif + rate_Fe53_He4_to_n_Ni56_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe53_He4_to_n_Ni56_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe53_He4_to_n_Ni56_derived) = drate_dT; + } + } + + { + // Fe54_p_to_n_Co54_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Fe54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe54); + } +#endif + rate_Fe54_p_to_n_Co54_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe54_p_to_n_Co54_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe54_p_to_n_Co54_derived) = drate_dT; + } + } + + { + // Fe54_p_to_He4_Mn51_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Fe54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe54); + } +#endif + rate_Fe54_p_to_He4_Mn51_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe54_p_to_He4_Mn51_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe54_p_to_He4_Mn51_derived) = drate_dT; + } + } + + { + // Fe54_He4_to_n_Ni57_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Fe54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe54); + } +#endif + rate_Fe54_He4_to_n_Ni57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe54_He4_to_n_Ni57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe54_He4_to_n_Ni57_derived) = drate_dT; + } + } + + { + // Fe54_He4_to_p_Co57_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Fe54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe54); + } +#endif + rate_Fe54_He4_to_p_Co57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe54_He4_to_p_Co57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe54_He4_to_p_Co57_derived) = drate_dT; + } + } + + { + // Fe55_p_to_n_Co55_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Fe55); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe55); + } +#endif + rate_Fe55_p_to_n_Co55_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe55_p_to_n_Co55_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe55_p_to_n_Co55_derived) = drate_dT; + } + } + + { + // Fe55_p_to_He4_Mn52_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Fe55); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe55); + } +#endif + rate_Fe55_p_to_He4_Mn52_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe55_p_to_He4_Mn52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe55_p_to_He4_Mn52_derived) = drate_dT; + } + } + + { + // Fe55_He4_to_n_Ni58_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Fe55); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe55); + } +#endif + rate_Fe55_He4_to_n_Ni58_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe55_He4_to_n_Ni58_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe55_He4_to_n_Ni58_derived) = drate_dT; + } + } + + { + // Fe55_He4_to_p_Co58_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Fe55); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe55); + } +#endif + rate_Fe55_He4_to_p_Co58_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe55_He4_to_p_Co58_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe55_He4_to_p_Co58_derived) = drate_dT; + } + } + + { + // Fe56_p_to_n_Co56_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Fe56); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe56); + } +#endif + rate_Fe56_p_to_n_Co56_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe56_p_to_n_Co56_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe56_p_to_n_Co56_derived) = drate_dT; + } + } + + { + // Fe56_p_to_He4_Mn53_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Fe56); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe56); + } +#endif + rate_Fe56_p_to_He4_Mn53_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe56_p_to_He4_Mn53_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe56_p_to_He4_Mn53_derived) = drate_dT; + } + } + + { + // Fe56_He4_to_n_Ni59_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Fe56); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe56); + } +#endif + rate_Fe56_He4_to_n_Ni59_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe56_He4_to_n_Ni59_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe56_He4_to_n_Ni59_derived) = drate_dT; + } + } + + { + // Fe56_He4_to_p_Co59_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Fe56); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe56); + } +#endif + rate_Fe56_He4_to_p_Co59_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe56_He4_to_p_Co59_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe56_He4_to_p_Co59_derived) = drate_dT; + } + } + + { + // Fe57_p_to_n_Co57_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Fe57); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe57); + } +#endif + rate_Fe57_p_to_n_Co57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe57_p_to_n_Co57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe57_p_to_n_Co57_derived) = drate_dT; + } + } + + { + // Fe57_He4_to_n_Ni60_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Fe57); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe57); + } +#endif + rate_Fe57_He4_to_n_Ni60_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe57_He4_to_n_Ni60_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe57_He4_to_n_Ni60_derived) = drate_dT; + } + } + + { + // Fe58_p_to_n_Co58_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Fe58); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe58); + } +#endif + rate_Fe58_p_to_n_Co58_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe58_p_to_n_Co58_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe58_p_to_n_Co58_derived) = drate_dT; + } + } + + { + // Fe58_He4_to_n_Ni61_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Fe58); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe58); + } +#endif + rate_Fe58_He4_to_n_Ni61_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Fe58_He4_to_n_Ni61_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe58_He4_to_n_Ni61_derived) = drate_dT; + } + } + + { + // Co54_He4_to_n_Cu57_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Co54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co54); + } +#endif + rate_Co54_He4_to_n_Cu57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co54_He4_to_n_Cu57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co54_He4_to_n_Cu57_derived) = drate_dT; + } + } + + { + // Co55_p_to_He4_Fe52_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Co55); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co55); + } +#endif + rate_Co55_p_to_He4_Fe52_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co55_p_to_He4_Fe52_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co55_p_to_He4_Fe52_derived) = drate_dT; + } + } + + { + // Co55_He4_to_n_Cu58_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Co55); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co55); + } +#endif + rate_Co55_He4_to_n_Cu58_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co55_He4_to_n_Cu58_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co55_He4_to_n_Cu58_derived) = drate_dT; + } + } + + { + // Co56_p_to_n_Ni56_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Co56); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co56); + } +#endif + rate_Co56_p_to_n_Ni56_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co56_p_to_n_Ni56_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co56_p_to_n_Ni56_derived) = drate_dT; + } + } + + { + // Co56_p_to_He4_Fe53_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Co56); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co56); + } +#endif + rate_Co56_p_to_He4_Fe53_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co56_p_to_He4_Fe53_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co56_p_to_He4_Fe53_derived) = drate_dT; + } + } + + { + // Co56_He4_to_n_Cu59_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Co56); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co56); + } +#endif + rate_Co56_He4_to_n_Cu59_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co56_He4_to_n_Cu59_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co56_He4_to_n_Cu59_derived) = drate_dT; + } + } + + { + // Co57_p_to_n_Ni57_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Co57); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co57); + } +#endif + rate_Co57_p_to_n_Ni57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co57_p_to_n_Ni57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co57_p_to_n_Ni57_derived) = drate_dT; + } + } + + { + // Co57_He4_to_n_Cu60_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Co57); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co57); + } +#endif + rate_Co57_He4_to_n_Cu60_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co57_He4_to_n_Cu60_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co57_He4_to_n_Cu60_derived) = drate_dT; + } + } + + { + // Co58_p_to_n_Ni58_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Co58); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co58); + } +#endif + rate_Co58_p_to_n_Ni58_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co58_p_to_n_Ni58_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co58_p_to_n_Ni58_derived) = drate_dT; + } + } + + { + // Co58_He4_to_n_Cu61_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Co58); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co58); + } +#endif + rate_Co58_He4_to_n_Cu61_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co58_He4_to_n_Cu61_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co58_He4_to_n_Cu61_derived) = drate_dT; + } + } + + { + // Co58_He4_to_p_Ni61_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Co58); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co58); + } +#endif + rate_Co58_He4_to_p_Ni61_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co58_He4_to_p_Ni61_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co58_He4_to_p_Ni61_derived) = drate_dT; + } + } + + { + // Co59_p_to_n_Ni59_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Co59); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co59); + } +#endif + rate_Co59_p_to_n_Ni59_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co59_p_to_n_Ni59_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co59_p_to_n_Ni59_derived) = drate_dT; + } + } + + { + // Co59_He4_to_n_Cu62_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Co59); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co59); + } +#endif + rate_Co59_He4_to_n_Cu62_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co59_He4_to_n_Cu62_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co59_He4_to_n_Cu62_derived) = drate_dT; + } + } + + { + // Co59_He4_to_p_Ni62_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Co59); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co59); + } +#endif + rate_Co59_He4_to_p_Ni62_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Co59_He4_to_p_Ni62_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co59_He4_to_p_Ni62_derived) = drate_dT; + } + } + + { + // Ni56_p_to_He4_Co53_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ni56); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni56); + } +#endif + rate_Ni56_p_to_He4_Co53_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni56_p_to_He4_Co53_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni56_p_to_He4_Co53_derived) = drate_dT; + } + } + + { + // Ni56_He4_to_n_Zn59_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ni56); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni56); + } +#endif + rate_Ni56_He4_to_n_Zn59_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni56_He4_to_n_Zn59_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni56_He4_to_n_Zn59_derived) = drate_dT; + } + } + + { + // Ni56_He4_to_p_Cu59_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ni56); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni56); + } +#endif + rate_Ni56_He4_to_p_Cu59_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni56_He4_to_p_Cu59_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni56_He4_to_p_Cu59_derived) = drate_dT; + } + } + + { + // Ni57_p_to_n_Cu57_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ni57); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni57); + } +#endif + rate_Ni57_p_to_n_Cu57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni57_p_to_n_Cu57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni57_p_to_n_Cu57_derived) = drate_dT; + } + } + + { + // Ni57_p_to_He4_Co54_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ni57); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni57); + } +#endif + rate_Ni57_p_to_He4_Co54_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni57_p_to_He4_Co54_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni57_p_to_He4_Co54_derived) = drate_dT; + } + } + + { + // Ni57_He4_to_n_Zn60_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ni57); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni57); + } +#endif + rate_Ni57_He4_to_n_Zn60_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni57_He4_to_n_Zn60_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni57_He4_to_n_Zn60_derived) = drate_dT; + } + } + + { + // Ni57_He4_to_p_Cu60_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ni57); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni57); + } +#endif + rate_Ni57_He4_to_p_Cu60_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni57_He4_to_p_Cu60_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni57_He4_to_p_Cu60_derived) = drate_dT; + } + } + + { + // Ni58_p_to_n_Cu58_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ni58); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni58); + } +#endif + rate_Ni58_p_to_n_Cu58_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni58_p_to_n_Cu58_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni58_p_to_n_Cu58_derived) = drate_dT; + } + } + + { + // Ni58_p_to_He4_Co55_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ni58); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni58); + } +#endif + rate_Ni58_p_to_He4_Co55_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni58_p_to_He4_Co55_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni58_p_to_He4_Co55_derived) = drate_dT; + } + } + + { + // Ni58_He4_to_n_Zn61_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ni58); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni58); + } +#endif + rate_Ni58_He4_to_n_Zn61_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni58_He4_to_n_Zn61_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni58_He4_to_n_Zn61_derived) = drate_dT; + } + } + + { + // Ni58_He4_to_p_Cu61_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ni58); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni58); + } +#endif + rate_Ni58_He4_to_p_Cu61_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni58_He4_to_p_Cu61_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni58_He4_to_p_Cu61_derived) = drate_dT; + } + } + + { + // Ni59_p_to_n_Cu59_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ni59); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni59); + } +#endif + rate_Ni59_p_to_n_Cu59_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni59_p_to_n_Cu59_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni59_p_to_n_Cu59_derived) = drate_dT; + } + } + + { + // Ni59_p_to_He4_Co56_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ni59); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni59); + } +#endif + rate_Ni59_p_to_He4_Co56_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni59_p_to_He4_Co56_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni59_p_to_He4_Co56_derived) = drate_dT; + } + } + + { + // Ni59_He4_to_n_Zn62_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ni59); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni59); + } +#endif + rate_Ni59_He4_to_n_Zn62_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni59_He4_to_n_Zn62_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni59_He4_to_n_Zn62_derived) = drate_dT; + } + } + + { + // Ni59_He4_to_p_Cu62_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ni59); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni59); + } +#endif + rate_Ni59_He4_to_p_Cu62_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni59_He4_to_p_Cu62_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni59_He4_to_p_Cu62_derived) = drate_dT; + } + } + + { + // Ni60_p_to_n_Cu60_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ni60); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni60); + } +#endif + rate_Ni60_p_to_n_Cu60_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni60_p_to_n_Cu60_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni60_p_to_n_Cu60_derived) = drate_dT; + } + } + + { + // Ni60_p_to_He4_Co57_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ni60); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni60); + } +#endif + rate_Ni60_p_to_He4_Co57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni60_p_to_He4_Co57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni60_p_to_He4_Co57_derived) = drate_dT; + } + } + + { + // Ni60_He4_to_n_Zn63_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ni60); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni60); + } +#endif + rate_Ni60_He4_to_n_Zn63_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni60_He4_to_n_Zn63_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni60_He4_to_n_Zn63_derived) = drate_dT; + } + } + + { + // Ni60_He4_to_p_Cu63_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ni60); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni60); + } +#endif + rate_Ni60_He4_to_p_Cu63_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni60_He4_to_p_Cu63_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni60_He4_to_p_Cu63_derived) = drate_dT; + } + } + + { + // Ni61_p_to_n_Cu61_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ni61); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni61); + } +#endif + rate_Ni61_p_to_n_Cu61_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni61_p_to_n_Cu61_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni61_p_to_n_Cu61_derived) = drate_dT; + } + } + + { + // Ni61_He4_to_n_Zn64_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ni61); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni61); + } +#endif + rate_Ni61_He4_to_n_Zn64_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni61_He4_to_n_Zn64_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni61_He4_to_n_Zn64_derived) = drate_dT; + } + } + + { + // Ni61_He4_to_p_Cu64_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ni61); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni61); + } +#endif + rate_Ni61_He4_to_p_Cu64_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni61_He4_to_p_Cu64_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni61_He4_to_p_Cu64_derived) = drate_dT; + } + } + + { + // Ni62_p_to_n_Cu62_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ni62); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni62); + } +#endif + rate_Ni62_p_to_n_Cu62_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni62_p_to_n_Cu62_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni62_p_to_n_Cu62_derived) = drate_dT; + } + } + + { + // Ni62_He4_to_n_Zn65_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ni62); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni62); + } +#endif + rate_Ni62_He4_to_n_Zn65_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni62_He4_to_n_Zn65_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni62_He4_to_n_Zn65_derived) = drate_dT; + } + } + + { + // Ni62_He4_to_p_Cu65_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ni62); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni62); + } +#endif + rate_Ni62_He4_to_p_Cu65_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni62_He4_to_p_Cu65_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni62_He4_to_p_Cu65_derived) = drate_dT; + } + } + + { + // Ni63_p_to_n_Cu63_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ni63); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni63); + } +#endif + rate_Ni63_p_to_n_Cu63_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni63_p_to_n_Cu63_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni63_p_to_n_Cu63_derived) = drate_dT; + } + } + + { + // Ni63_He4_to_n_Zn66_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ni63); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni63); + } +#endif + rate_Ni63_He4_to_n_Zn66_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni63_He4_to_n_Zn66_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni63_He4_to_n_Zn66_derived) = drate_dT; + } + } + + { + // Ni64_p_to_n_Cu64_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ni64); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni64); + } +#endif + rate_Ni64_p_to_n_Cu64_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ni64_p_to_n_Cu64_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni64_p_to_n_Cu64_derived) = drate_dT; + } + } + + { + // Cu58_He4_to_p_Zn61_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cu58); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu58); + } +#endif + rate_Cu58_He4_to_p_Zn61_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu58_He4_to_p_Zn61_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu58_He4_to_p_Zn61_derived) = drate_dT; + } + } + + { + // Cu59_p_to_n_Zn59_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cu59); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu59); + } +#endif + rate_Cu59_p_to_n_Zn59_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu59_p_to_n_Zn59_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu59_p_to_n_Zn59_derived) = drate_dT; + } + } + + { + // Cu59_He4_to_n_Ga62_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cu59); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu59); + } +#endif + rate_Cu59_He4_to_n_Ga62_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu59_He4_to_n_Ga62_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu59_He4_to_n_Ga62_derived) = drate_dT; + } + } + + { + // Cu59_He4_to_p_Zn62_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cu59); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu59); + } +#endif + rate_Cu59_He4_to_p_Zn62_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu59_He4_to_p_Zn62_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu59_He4_to_p_Zn62_derived) = drate_dT; + } + } + + { + // Cu60_p_to_n_Zn60_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cu60); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu60); + } +#endif + rate_Cu60_p_to_n_Zn60_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu60_p_to_n_Zn60_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu60_p_to_n_Zn60_derived) = drate_dT; + } + } + + { + // Cu60_He4_to_n_Ga63_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cu60); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu60); + } +#endif + rate_Cu60_He4_to_n_Ga63_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu60_He4_to_n_Ga63_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu60_He4_to_n_Ga63_derived) = drate_dT; + } + } + + { + // Cu60_He4_to_p_Zn63_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cu60); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu60); + } +#endif + rate_Cu60_He4_to_p_Zn63_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu60_He4_to_p_Zn63_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu60_He4_to_p_Zn63_derived) = drate_dT; + } + } + + { + // Cu61_p_to_n_Zn61_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cu61); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu61); + } +#endif + rate_Cu61_p_to_n_Zn61_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu61_p_to_n_Zn61_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu61_p_to_n_Zn61_derived) = drate_dT; + } + } + + { + // Cu61_He4_to_n_Ga64_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cu61); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu61); + } +#endif + rate_Cu61_He4_to_n_Ga64_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu61_He4_to_n_Ga64_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu61_He4_to_n_Ga64_derived) = drate_dT; + } + } + + { + // Cu61_He4_to_p_Zn64_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cu61); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu61); + } +#endif + rate_Cu61_He4_to_p_Zn64_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu61_He4_to_p_Zn64_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu61_He4_to_p_Zn64_derived) = drate_dT; + } + } + + { + // Cu62_p_to_n_Zn62_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cu62); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu62); + } +#endif + rate_Cu62_p_to_n_Zn62_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu62_p_to_n_Zn62_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu62_p_to_n_Zn62_derived) = drate_dT; + } + } + + { + // Cu62_He4_to_p_Zn65_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cu62); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu62); + } +#endif + rate_Cu62_He4_to_p_Zn65_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu62_He4_to_p_Zn65_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu62_He4_to_p_Zn65_derived) = drate_dT; + } + } + + { + // Cu63_p_to_n_Zn63_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cu63); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu63); + } +#endif + rate_Cu63_p_to_n_Zn63_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu63_p_to_n_Zn63_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu63_p_to_n_Zn63_derived) = drate_dT; + } + } + + { + // Cu63_He4_to_p_Zn66_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cu63); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu63); + } +#endif + rate_Cu63_He4_to_p_Zn66_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu63_He4_to_p_Zn66_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu63_He4_to_p_Zn66_derived) = drate_dT; + } + } + + { + // Cu64_p_to_n_Zn64_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cu64); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu64); + } +#endif + rate_Cu64_p_to_n_Zn64_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu64_p_to_n_Zn64_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu64_p_to_n_Zn64_derived) = drate_dT; + } + } + + { + // Cu65_p_to_n_Zn65_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cu65); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu65); + } +#endif + rate_Cu65_p_to_n_Zn65_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Cu65_p_to_n_Zn65_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu65_p_to_n_Zn65_derived) = drate_dT; + } + } + + { + // Zn59_He4_to_p_Ga62_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Zn59); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Zn59); + } +#endif + rate_Zn59_He4_to_p_Ga62_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn59_He4_to_p_Ga62_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn59_He4_to_p_Ga62_derived) = drate_dT; + } + } + + { + // Zn60_p_to_He4_Cu57_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Zn60); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn60); + } +#endif + rate_Zn60_p_to_He4_Cu57_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn60_p_to_He4_Cu57_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn60_p_to_He4_Cu57_derived) = drate_dT; + } + } + + { + // Zn60_He4_to_n_Ge63_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Zn60); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Zn60); + } +#endif + rate_Zn60_He4_to_n_Ge63_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn60_He4_to_n_Ge63_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn60_He4_to_n_Ge63_derived) = drate_dT; + } + } + + { + // Zn60_He4_to_p_Ga63_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Zn60); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Zn60); + } +#endif + rate_Zn60_He4_to_p_Ga63_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn60_He4_to_p_Ga63_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn60_He4_to_p_Ga63_derived) = drate_dT; + } + } + + { + // Zn61_He4_to_n_Ge64_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Zn61); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Zn61); + } +#endif + rate_Zn61_He4_to_n_Ge64_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn61_He4_to_n_Ge64_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn61_He4_to_n_Ge64_derived) = drate_dT; + } + } + + { + // Zn61_He4_to_p_Ga64_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Zn61); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Zn61); + } +#endif + rate_Zn61_He4_to_p_Ga64_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn61_He4_to_p_Ga64_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn61_He4_to_p_Ga64_derived) = drate_dT; + } + } + + { + // Zn62_p_to_n_Ga62_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Zn62); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn62); + } +#endif + rate_Zn62_p_to_n_Ga62_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn62_p_to_n_Ga62_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn62_p_to_n_Ga62_derived) = drate_dT; + } + } + + { + // Zn63_p_to_n_Ga63_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Zn63); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn63); + } +#endif + rate_Zn63_p_to_n_Ga63_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn63_p_to_n_Ga63_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn63_p_to_n_Ga63_derived) = drate_dT; + } + } + + { + // Zn64_p_to_n_Ga64_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Zn64); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn64); + } +#endif + rate_Zn64_p_to_n_Ga64_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Zn64_p_to_n_Ga64_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn64_p_to_n_Ga64_derived) = drate_dT; + } + } + + { + // Ga63_p_to_n_Ge63_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ga63); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ga63); + } +#endif + rate_Ga63_p_to_n_Ge63_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ga63_p_to_n_Ge63_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga63_p_to_n_Ge63_derived) = drate_dT; + } + } + + { + // Ga64_p_to_n_Ge64_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ga64); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ga64); + } +#endif + rate_Ga64_p_to_n_Ge64_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_Ga64_p_to_n_Ge64_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga64_p_to_n_Ge64_derived) = drate_dT; + } + } + + { + // d_p_to_n_p_p_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_d); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_d); + } +#endif + rate_d_p_to_n_p_p_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_d_p_to_n_p_p_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_d_p_to_n_p_p_derived) = drate_dT; + } + } + + { + // He4_p_p_to_He3_He3_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_p) + rate_eval.log_screen(k_He2_He4); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_p) + rate_eval.dlog_screen_dT(k_He2_He4); + } +#endif + rate_He4_p_p_to_He3_He3_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_p_p_to_He3_He3_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_p_p_to_He3_He3_derived) = drate_dT; + } + } + + { + // He4_He4_n_to_d_Li7_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_He4); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_He4); + } +#endif + rate_He4_He4_n_to_d_Li7_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_He4_n_to_d_Li7_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_He4_n_to_d_Li7_derived) = drate_dT; + } + } + + { + // He4_He4_p_to_n_B8_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_He4) + rate_eval.log_screen(k_p_Be8); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_He4) + rate_eval.dlog_screen_dT(k_p_Be8); + } +#endif + rate_He4_He4_p_to_n_B8_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_He4_p_to_n_B8_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_He4_p_to_n_B8_derived) = drate_dT; + } + } + + { + // He4_He4_p_to_d_Be7_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_He4) + rate_eval.log_screen(k_p_Be8); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_He4) + rate_eval.dlog_screen_dT(k_p_Be8); + } +#endif + rate_He4_He4_p_to_d_Be7_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_He4_p_to_d_Be7_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_He4_p_to_d_Be7_derived) = drate_dT; + } + } + + { + // d_He4_He4_to_p_Be9_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_He4) + rate_eval.log_screen(k_d_Be8); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_He4) + rate_eval.dlog_screen_dT(k_d_Be8); + } +#endif + rate_d_He4_He4_to_p_Be9_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_d_He4_He4_to_p_Be9_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_d_He4_He4_to_p_Be9_derived) = drate_dT; + } + } + + { + // He4_He4_He4_to_p_B11_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_He4) + rate_eval.log_screen(k_He4_Be8); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_He4) + rate_eval.dlog_screen_dT(k_He4_Be8); + } +#endif + rate_He4_He4_He4_to_p_B11_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_He4_He4_to_p_B11_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_p_B11_derived) = drate_dT; + } + } + + { + // He4_He4_p_n_to_He3_Li7_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_He4) + rate_eval.log_screen(k_p_Be8); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_He4) + rate_eval.dlog_screen_dT(k_p_Be8); + } +#endif + rate_He4_He4_p_n_to_He3_Li7_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_He4_p_n_to_He3_Li7_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_He4_p_n_to_He3_Li7_derived) = drate_dT; + } + } + + { + // He4_He4_p_n_to_p_Be9_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_He4) + rate_eval.log_screen(k_p_Be8); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_He4) + rate_eval.dlog_screen_dT(k_p_Be8); + } +#endif + rate_He4_He4_p_n_to_p_Be9_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_He4_p_n_to_p_Be9_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_He4_p_n_to_p_Be9_derived) = drate_dT; + } + } + + { + // He4_He4_p_p_to_He3_Be7_derived + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_He4) + rate_eval.log_screen(k_p_p) + rate_eval.log_screen(k_He2_Be8); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_He4) + rate_eval.dlog_screen_dT(k_p_p) + rate_eval.dlog_screen_dT(k_He2_Be8); + } +#endif + rate_He4_He4_p_p_to_He3_Be7_derived(tfactors, log_scor, dlog_scor_dT, rate, drate_dT, rate_eval, pf_cache); + rate_eval.screened_rates(k_He4_He4_p_p_to_He3_Be7_derived) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_He4_p_p_to_He3_Be7_derived) = drate_dT; + } + } + + + } } #endif diff --git a/networks/sn160/modified_rates.H b/networks/sn160/modified_rates.H index 37deb2947..74c545a1b 100644 --- a/networks/sn160/modified_rates.H +++ b/networks/sn160/modified_rates.H @@ -12,11 +12,14 @@ namespace modified_rates { + using namespace Rates; + + using namespace reaclib_rates; using namespace temp_tabular; template - AMREX_GPU_HOST_DEVICE AMREX_INLINE + AMREX_GPU_DEVICE AMREX_INLINE void fill_rates([[maybe_unused]] const tf_t& tfactors, [[maybe_unused]] T& rate_eval) diff --git a/networks/sn160/partition_functions.H b/networks/sn160/partition_functions.H index 17e6136af..3fc19fb40 100644 --- a/networks/sn160/partition_functions.H +++ b/networks/sn160/partition_functions.H @@ -18,82 +18,4367 @@ using namespace Species; namespace part_fun { + constexpr int npts_1 = 72; + + // this is T9 + + inline AMREX_GPU_DEVICE amrex::Array1D temp_array_1 = { + 0.01, 0.15, 0.2, 0.3, 0.4, + 0.5, 0.6, 0.7, 0.8, 0.9, + 1.0, 1.5, 2.0, 2.5, 3.0, + 3.5, 4.0, 4.5, 5.0, 6.0, + 7.0, 8.0, 9.0, 10.0, 12.0, + 14.0, 16.0, 18.0, 20.0, 22.0, + 24.0, 26.0, 28.0, 30.0, 35.0, + 40.0, 45.0, 50.0, 55.0, 60.0, + 65.0, 70.0, 75.0, 80.0, 85.0, + 90.0, 95.0, 100.0, 105.0, 110.0, + 115.0, 120.0, 125.0, 130.0, 135.0, + 140.0, 145.0, 150.0, 155.0, 160.0, + 165.0, 170.0, 175.0, 180.0, 190.0, + 200.0, 210.0, 220.0, 230.0, 240.0, + 250.0, 275.0, + }; + + + // O14 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D O14_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.04879016416943205, + 0.10436001532424286, 0.1823215567939546, 0.27763173659827955, 0.3852624007906449, 0.5007752879124892, + 0.6097655716208943, 0.712949807856125, 0.8153648132841944, 0.9082585601768908, 1.1085626195212777, + 1.269760544863939, 1.3937663759585917, 1.4906543764441336, 1.5644405465033646, 1.6193882432872684, + 1.6582280766035324, 1.6845453849209058, 1.6974487897568136, 1.7029282555214393, 1.6974487897568136, + 1.6845453849209058, 1.665818245870208, 1.6409365794934714, 1.6094379124341003, 1.5748464676644813, + 1.534714366238164, 1.4883995840570443, 1.4422019930581866, 1.3887912413184778, 1.33500106673234, + 1.2781522025001875, 1.2178757094949273, 1.1568811967920856, 1.091923300517313, 1.0260415958332743, + 0.9555114450274363, 0.8878912573524571, 0.8153648132841944, 0.7419373447293773, 0.5933268452777344, + 0.4382549309311553, 0.28517894223366247, 0.12221763272424911, -0.040821994520255166, -0.2045671657412744, + -0.3696154552144672, -0.7874578600311866, + }; + + constexpr amrex::Real O14_pf_threshold_T9 = 10.0; + + // O15 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D O15_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.04879016416943205, + 0.10436001532424286, 0.1906203596086497, 0.3148107398400336, 0.47000362924573563, 0.6418538861723947, + 0.8329091229351039, 1.0296194171811581, 1.2325602611778486, 1.43746264769429, 1.9572739077056285, + 2.4849066497880004, 3.0155349008501706, 3.55820113047182, 4.109233174715851, 4.672828834461906, + 5.241747015059643, 5.814130531825066, 6.391917113392602, 6.966024187106113, 7.549609165154532, + 8.125630988477065, 8.702842538302868, 9.277999020449997, 9.852194258148577, 10.42821608147111, + 11.00043178410354, 11.571194373094205, 12.144197241812087, 12.7098736543592, 13.279367126213993, + 13.845069360205818, 14.414347059052979, 14.975531474761027, 15.541842221869874, 16.105010411409665, + 16.666217059468007, 17.22995316637645, 17.793321303930423, 18.35560874720865, 19.47847103810022, + 20.602227508569356, 21.723897717254317, 22.846724264043022, 23.969756828847586, 25.09397871172002, + 26.22043406223961, 29.03956608598326, + }; + + constexpr amrex::Real O15_pf_threshold_T9 = 10.0; + + // O16 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D O16_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.02955880224154443, + 0.08617769624105241, 0.16551443847757333, 0.27763173659827955, 0.4252677354043441, 0.6043159668533296, + 0.7975071958841882, 1.007957920399979, 1.2296405510745139, 1.4609379041156563, 2.0681277817795625, + 2.70805020110221, 3.3775875160230218, 4.062165663857866, 4.7535901911063645, 5.4510384535657, + 6.142037405587356, 6.828712071641684, 7.512071245835466, 8.185907481482324, 8.85366542803745, + 9.517825071724143, 10.177324218165856, 10.831706855275558, 11.48246625748552, 12.128111104060462, + 12.774223335915433, 13.41652441595382, 14.054527458434775, 14.690979295318174, 15.324022551808413, + 15.956752500549557, 16.588099280204055, 17.216707939626428, 17.842646370492925, 18.469470908121796, + 19.09362521719479, 19.715407911546766, 20.337603356134426, 20.954377557909798, 22.19802884605391, + 23.43796058076729, 24.670655986211848, 25.905049387238495, 27.136724794113768, 28.368185181905268, + 29.602320498988682, 32.68726692127686, + }; + + constexpr amrex::Real O16_pf_threshold_T9 = 10.0; + + // O17 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D O17_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.009950330853168092, 0.009950330853168092, + 0.01980262729617973, 0.02955880224154443, 0.03922071315328133, 0.03922071315328133, 0.058268908123975824, + 0.0769610411361284, 0.09531017980432493, 0.12221763272424911, 0.13976194237515863, 0.2151113796169455, + 0.30010459245033816, 0.4054651081081644, 0.5364933705145685, 0.6830968447064438, 0.8458682675776092, + 1.0260415958332743, 1.2178757094949273, 1.4182774069729414, 1.631199404215613, 2.1972245773362196, + 2.803360380906535, 3.4339872044851463, 4.07753744390572, 4.727387818712341, 5.3706380281276624, + 6.018593214496234, 6.660575149839686, 7.299797366758161, 7.937374696163295, 8.573573524852344, + 9.20833836930551, 9.84161214881804, 10.474467099121865, 11.107960231903714, 11.744037185933616, + 12.375815420117268, 13.008074231002201, 13.641157170819497, 14.27293540500315, 14.907433858481587, + 15.541842221869874, 16.176364559082295, 16.811242831518264, 17.445170652418238, 18.081003376382203, + 18.713350357915186, 19.35284482498281, 19.98721115537519, 20.6234455016642, 21.895747974180978, + 23.17427093505873, 24.448959264183063, 25.72721214289187, 27.01298140785541, 28.298850488504204, + 29.585466167433697, 32.8184069217693, + }; + + constexpr amrex::Real O17_pf_threshold_T9 = 2.0; + + // O18 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D O18_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.009950330853168092, 0.01980262729617973, 0.02955880224154443, 0.04879016416943205, 0.11332868530700327, + 0.19885085874516517, 0.3074846997479607, 0.4252677354043441, 0.5481214085096876, 0.883767540168595, + 1.1786549963416462, 1.4586150226995167, 1.7209792871670078, 1.965712776351493, 2.1972245773362196, + 2.424802725718295, 2.6390573296152584, 2.8622008809294686, 3.0819099697950434, 3.66612246699132, + 4.302712827954156, 4.983606621708336, 5.700443573390687, 6.428105272684596, 7.162397497355718, + 7.893572073504902, 8.623353387244627, 9.350102314351341, 10.069001991013701, 10.783114300038692, + 11.496796083040344, 12.206072645530174, 12.91410843858387, 13.619495674038317, 14.322328160332725, + 15.02447090380125, 15.72357048288849, 16.41820024340866, 17.118727531266227, 17.81371125963347, + 18.50685844019342, 19.200005620753362, 19.895443753059865, 20.586299981873253, 21.27715095017285, + 21.96742043090518, 22.659125650148223, 23.34793442910957, 24.037451841618935, 25.414613719175556, + 26.794003564948902, 28.17334540675391, 29.552345789511246, 30.930554843814203, 32.31315234305277, + 33.697129206032294, 37.163444987073845, + }; + + constexpr amrex::Real O18_pf_threshold_T9 = 3.0; + + // F17 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D F17_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.009950330853168092, 0.01980262729617973, 0.02955880224154443, 0.04879016416943205, + 0.058268908123975824, 0.0769610411361284, 0.08617769624105241, 0.09531017980432493, 0.12221763272424911, + 0.13976194237515863, 0.1570037488096647, 0.17395330712343798, 0.19885085874516517, 0.26236426446749106, + 0.3293037471426003, 0.41871033485818504, 0.5247285289349821, 0.6471032420585384, 0.7884573603642703, + 0.9400072584914712, 1.1019400787607843, 1.2781522025001875, 1.4678743481123135, 1.9810014688665833, + 2.5416019934645457, 3.1441522786722644, 3.7612001156935624, 4.388257184424518, 5.0238805208462765, + 5.655991810819852, 6.2878585601617845, 6.917705609835305, 7.549609165154532, 8.183118079394745, + 8.814330422638774, 9.441452092939569, 10.077440859659566, 10.707728780601661, 11.33857207782545, + 11.970350312009105, 12.601487417784837, 13.233904752137237, 13.864300722133706, 14.498607402670718, + 15.131918791619999, 15.765697263786848, 16.3957273875566, 17.034386382832476, 17.667783558986645, + 18.301897207962398, 18.939474537367534, 19.571252771551187, 20.207427671356875, 21.479387816667746, + 22.755353682242777, 24.033808850340435, 25.311289864099532, 26.592562750080187, 27.877881193860073, + 29.165735482166713, 32.393195050726305, + }; + + constexpr amrex::Real F17_pf_threshold_T9 = 1.0; + + // F18 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D F18_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.01980262729617973, 0.058268908123975824, 0.11332868530700327, + 0.19885085874516517, 0.28517894223366247, 0.3852624007906449, 0.4762341789963717, 0.6523251860396901, + 0.8064758658669485, 0.9360933591703348, 1.0438040521731147, 1.1378330018213911, 1.5303947050936475, + 1.742219023667919, 1.9387416595767009, 2.125847914493992, 2.312535423847214, 2.4932054526026954, + 2.681021528714291, 2.8791984572980396, 3.0819099697950434, 3.292126286607793, 3.856510295497887, + 4.468204330914934, 5.111987788356544, 5.768320995793772, 6.431331081933479, 7.098375638590786, + 7.757906208351747, 8.420682291035394, 9.080231686629162, 9.740968623038354, 10.395130356885344, + 11.052476048529304, 11.711776323715394, 12.367340793126296, 13.025852477023484, 13.68426227135432, + 14.346138809026444, 15.003353980360327, 15.665538935316304, 16.325109820342647, 16.98938901690174, + 17.654962870557586, 18.319754825362406, 18.985994553002424, 19.650321295026878, 20.316800228504665, + 20.985630101413904, 21.65148513968584, 22.32265341352701, 22.991259485170836, 24.334183749590636, + 25.679092894547672, 27.02771463936839, 28.377709063416525, 29.735155270198756, 31.093627125719348, + 32.45933485323085, 35.88424876151032, + }; + + constexpr amrex::Real F18_pf_threshold_T9 = 1.5; + + // F19 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D F19_pf_array = { + 0.0, 0.0, 0.0, 0.01980262729617973, 0.04879016416943205, + 0.10436001532424286, 0.1823215567939546, 0.25464221837358075, 0.3293037471426003, 0.4054651081081644, + 0.4762341789963717, 0.7514160886839212, 0.9282193027394288, 1.0473189942805592, 1.1378330018213911, + 1.208960345836975, 1.2725655957915476, 1.3270750014599193, 1.3762440252663892, 1.4701758451005926, + 1.5518087995974639, 1.62924053973028, 1.6974487897568136, 1.763017000362401, 1.9643112344262046, + 2.131796772013764, 2.302585092994046, 2.4849066497880004, 2.667228206581955, 2.8622008809294686, + 3.068052935133617, 3.2846635654062037, 3.5115454388310208, 3.7471483622379123, 4.387014176184921, + 5.075173815233827, 5.7899601708972535, 6.519147287940395, 7.251344983372214, 7.986164860332727, + 8.719317375506371, 9.449357272446683, 10.177324218165856, 10.902279505922026, 11.626254150277232, + 12.35017298950393, 13.077366011473593, 13.800396920154226, 14.52354635101797, 15.250595083253597, + 15.974225280538619, 16.70031127081098, 17.423722109010754, 18.148872020656874, 18.87175636331258, + 19.599335740294013, 20.322788270349285, 21.045349336115525, 21.774087461778173, 22.49991166836442, + 23.22470178868562, 23.954070232679886, 24.678348331835004, 25.40539706407063, 26.860992891032645, + 28.319155754664948, 29.7781213060822, 31.23923266697503, 32.70619493116237, 34.17205111511845, + 35.644033226297466, 39.33456694050743, + }; + + constexpr amrex::Real F19_pf_threshold_T9 = 0.2; + + // Ne18 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ne18_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 1.9999980000601777e-06, 8.799612822723034e-05, 0.0007846920486507036, 0.003394233068015617, + 0.009695843028343863, 0.021405263956352772, 0.039816689370323774, 0.0656987852707393, 0.14054163833325026, + 0.24360948798384327, 0.3686787096052648, 0.5081895523807597, 0.655120234583008, 0.9516578757114463, + 1.2296405510745139, 1.4861396960896067, 1.7209792871670078, 1.9387416595767009, 2.1447610078004784, + 2.341805806147327, 2.5416019934645457, 2.747270914255491, 2.954910279033736, 3.5234150143864045, + 4.151039905898646, 4.8283137373023015, 5.541263545158426, 6.263398262591624, 6.993932975223189, + 7.7142311448490855, 8.438149984075784, 9.156939595249067, 9.87302834505142, 10.584055950889214, + 11.292278793854607, 12.0015054797889, 12.70381302974751, 13.407542319637992, 14.108180171927094, + 14.808762330974558, 15.505606373415828, 16.204273347199372, 16.897420527759316, 17.595144375346674, + 18.28943245734241, 18.980296531887788, 19.67629678143014, 20.369443961990086, 21.059738073567623, + 21.75288525412757, 22.44424512411342, 23.13917961524746, 23.827852515412484, 25.208525726261946, + 26.589733893879707, 27.974610820318624, 29.357352779834148, 30.74453642513892, 32.12971905740612, + 33.51712514737871, 36.9983652367144, + }; + + constexpr amrex::Real Ne18_pf_threshold_T9 = 1.0; + + // Ne19 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ne19_pf_array = { + 0.0, 0.0, 2.9999954999842446e-06, 0.0003219481691259959, 0.003318487723826479, + 0.013481711943087782, 0.03417917980009353, 0.06595532949044476, 0.10712645546785465, 0.15502315625184526, + 0.20693855676966694, 0.4661192196858503, 0.6710247746567657, 0.8227626032729527, 0.9386027570158706, + 1.0315639539149817, 1.109845294891226, 1.1784257392950268, 1.240344462774468, 1.3511613618686162, + 1.4511432247212575, 1.5447922922282955, 1.6347833850357212, 1.722819810610988, 1.8976198599275322, + 2.0719132752590443, 2.2512917986064953, 2.4336133554004498, 2.624668592163159, 2.8273136219290276, + 3.039749158970765, 3.261935314328648, 3.493472657771326, 3.735285826928092, 4.384523514872469, + 5.075173815233827, 5.796057750765372, 6.523562306149512, 7.251344983372214, 7.986164860332727, + 8.712759974960212, 9.433483923290392, 10.16199824768763, 10.881813675329736, 11.59910316121128, + 12.323855681186558, 13.043320170063875, 13.763164077592064, 14.48333993053993, 15.204301799282751, + 15.924510901885654, 16.64872390202049, 17.367997387172654, 18.08939503401845, 18.81272283172839, + 19.535822334571687, 20.256457098597195, 20.977908055319993, 21.701591959740018, 22.42619409246785, + 23.148068562664704, 23.876001859310065, 24.60069739760494, 25.325431513914204, 26.777705183215783, + 28.229857617017252, 29.68770567048577, 31.148518953286864, 32.607754858349125, 34.07515237262899, + 35.54307800410756, 39.23012427713983, + }; + + constexpr amrex::Real Ne19_pf_threshold_T9 = 0.15; + + // Ne20 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ne20_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 1.5999872001381317e-05, 0.00038192705657577196, 0.0025407695097516073, 0.008962714607884434, + 0.02196890666877481, 0.04281712292730049, 0.07155385603147618, 0.10734115290026017, 0.19485435877707374, + 0.2952416765065437, 0.4013680599901673, 0.5094424676464369, 0.6178722970606984, 0.8329091229351039, + 1.0508216248317612, 1.269760544863939, 1.4929040961781488, 1.7191887763932197, 1.9530276168241774, + 2.194999882314108, 2.451005098112319, 2.714694743820879, 3.0007198150650303, 3.784189633918261, + 4.6443908991413725, 5.54907608489522, 6.46302945692067, 7.371489295214277, 8.266164436612492, + 9.148464968258095, 10.021270588192511, 10.881813675329736, 11.736069016284437, 12.584509081250419, + 13.425426551894413, 14.26019637922572, 15.096444403426338, 15.926935145497161, 16.75467248002987, + 17.579033555073977, 18.40149792453559, 19.222682329424394, 20.040068987239636, 20.854294099352817, + 21.671055235879937, 22.481123754498785, 23.295878067153517, 24.100853352969434, 24.909885675277682, + 25.720478110710527, 26.525384212323473, 27.329916023144627, 28.131796403841037, 29.741234316275136, + 31.347029237430736, 32.94914110977277, 34.548726725763856, 36.15618247699396, 37.76164424104842, + 39.36709013221299, 43.378053085496035, + }; + + constexpr amrex::Real Ne20_pf_threshold_T9 = 1.0; + + // Ne21 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ne21_pf_array = { + 0.0, 0.0, 0.0, 1.9999980000601777e-06, 5.6998375561702104e-05, + 0.00043790410599996464, 0.0016975583321979725, 0.004468003589507688, 0.00921937069756716, 0.01616858116158369, + 0.02529633275369882, 0.09484097883767402, 0.1790771326706854, 0.25859486149358507, 0.3283586964062474, + 0.3888796601363511, 0.4420470864506867, 0.48975968683011206, 0.5335762543684043, 0.6140368714011162, + 0.6898788453664597, 0.7646954508989865, 0.8404756418851278, 0.9183047024732123, 1.0818051703517284, + 1.2584609896100056, 1.4469189829363254, 1.6524974018945473, 1.8748743759385615, 2.1138429683971682, + 2.3702437414678603, 2.6461747973841225, 2.9391619220655967, 3.242592351485517, 4.053522567701846, + 4.897839799950911, 5.755742213586912, 6.60934924316738, 7.455876687491824, 8.296546520300614, + 9.131297164635729, 9.961756460660103, 10.785186839640664, 11.608235644774552, 12.425208175446844, + 13.244581010128577, 14.0623706358958, 14.880221294956703, 15.698024390460793, 16.51687177091569, + 17.33300839532259, 18.148872020656874, 18.963005034777726, 19.781657297087968, 20.596568183900455, + 21.41140047568281, 22.227343233722685, 23.045653557236637, 23.85876005287556, 24.676430785705733, + 25.493950461412076, 26.30676214572811, 27.125183033673597, 27.93850581567651, 29.575501672174266, + 31.21175841142278, 32.851376941006876, 34.49168478737683, 36.136141726110516, 37.781368746396204, + 39.42912552313244, 43.572379588386816, + }; + + constexpr amrex::Real Ne21_pf_threshold_T9 = 0.2; + + // Ne22 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ne22_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 1.9999980000601777e-06, 0.00026096594542543384, 0.003066294111560706, 0.013387979718225645, 0.035508060548991756, + 0.07064204418711705, 0.11730025246866588, 0.17270294591563148, 0.23395766741330531, 0.3650964830226763, + 0.4991697573134882, 0.6322468332347257, 0.7641637363491882, 0.8959823046827724, 1.1631508098056809, + 1.43746264769429, 1.7191887763932197, 2.0082140323914683, 2.302585092994046, 2.6100697927420065, + 2.928523523860541, 3.261935314328648, 3.6109179126442243, 3.970291913552122, 4.912654885736052, + 5.886104031450156, 6.863803391452954, 7.832014180505469, 8.790269111478656, 9.735068900911164, + 10.668955394675699, 11.589886506106357, 12.509874099861838, 13.423948355025102, 14.328334184392938, + 15.233787964937216, 16.1378982782545, 17.034386382832476, 17.929657747482555, 18.82614585206053, + 19.715407911546766, 20.60560779347818, 21.493374058642484, 22.381493913549942, 23.264867830410957, + 24.15078052692594, 25.034064962331925, 25.916222687836623, 26.798611868035096, 27.67981128009798, + 28.559240418667976, 29.437669197650354, 30.31886860971324, 31.1949040798678, 32.95403109506696, + 34.70429083338826, 36.464483836648476, 38.22012758260383, 39.98119410543248, 41.73920128785564, + 43.50065540758837, 47.91423039999717, + }; + + constexpr amrex::Real Ne22_pf_threshold_T9 = 0.9; + + // Na21 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Na21_pf_array = { + 0.0, 0.0, 0.0, 3.999991999914312e-06, 9.899509982348023e-05, + 0.0006767709388771284, 0.0024410182892125013, 0.006096379259495127, 0.012091601053391313, 0.02055822411393352, + 0.031367844548991185, 0.10890821512347947, 0.19780358923836597, 0.2791911261787138, 0.34935391045177344, + 0.4096344045001922, 0.46235507851299057, 0.5096208983756856, 0.553076740604301, 0.6330866183819579, + 0.7085465000590935, 0.7825193104450235, 0.8564766065167109, 0.9311359936745833, 1.085189268335969, + 1.2412685890696329, 1.4085449700547104, 1.589235205116581, 1.7850704810772584, 2.0001277349601105, + 2.234306252240751, 2.4932054526026954, 2.766319109226186, 3.054001181677967, 3.8308129500026027, + 4.653960350157523, 5.484796933490655, 6.320768294250582, 7.154615356913663, 7.975908360165538, + 8.799360083179907, 9.615805480084347, 10.431170293368542, 11.246352355728682, 12.061046873479915, + 12.871334622600584, 13.68426227135432, 14.498607402670718, 15.308414654142423, 16.11809565095832, + 16.933460464242515, 17.7473361906886, 18.560442686327523, 19.37233861966381, 20.1854115407925, + 21.00089757354469, 21.81182778976102, 22.626864787930003, 23.43796058076729, 24.25549148101497, + 25.068369117515694, 25.88232113616094, 26.69707544881567, 27.513363072460315, 29.14614834889141, + 30.7794744765002, 32.41851285871059, 34.055890139833934, 35.69879731170744, 37.34213677581722, + 38.99428580634437, 43.132930627463054, + }; + + constexpr amrex::Real Na21_pf_threshold_T9 = 0.2; + + // Na22 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Na22_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 9.999994999180668e-07, 5.99998200002249e-06, 2.999955000897429e-05, 0.00010499448788586636, 0.0002759619190066846, + 0.000604817061281531, 0.006891201037725975, 0.02495306647419179, 0.05592181623486148, 0.09769188674184422, + 0.14741864185241996, 0.2025530136982008, 0.26107420192529707, 0.3214673673699074, 0.44383674294773623, + 0.5644685655687769, 0.681316978856267, 0.7939920158627449, 0.9029100079448062, 1.1118575154181303, + 1.3164082336557241, 1.5260563034950492, 1.742219023667919, 1.9712993830601329, 2.2181159363675955, + 2.4849066497880004, 2.766319109226186, 3.0587070727153796, 3.370738174177447, 4.194189897191817, + 5.049856007249537, 5.918893854273146, 6.786716950605081, 7.649692623711514, 8.509161019718974, + 9.367344120785848, 10.21464198117305, 11.06350846933288, 11.911701584927597, 12.757080058928997, + 13.602317337503232, 14.446782334806132, 15.294839785051353, 16.1378982782545, 16.98938901690174, + 17.837284427351538, 18.683045008419857, 19.532538259370497, 20.380775527999635, 21.230083439314864, + 22.079100990581594, 22.928238101073457, 23.77726701862438, 24.627256670677294, 25.476856028052776, + 26.329067903242407, 27.180035492518574, 28.029797235885916, 28.883784084423915, 30.591126211839388, + 32.30384995039046, 34.01621551492627, 35.73269886338312, 37.451127059525625, 39.17350538314032, + 40.90524684264212, 45.24426553291884, + }; + + constexpr amrex::Real Na22_pf_threshold_T9 = 0.4; + + // Na23 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Na23_pf_array = { + 0.0, 0.0, 0.0, 0.0, 3.999991999914312e-06, + 5.499848755537228e-05, 0.0003019544071791481, 0.0010184811719273939, 0.002532789778269521, 0.0051397687298581594, + 0.00904794362623629, 0.048651106882368046, 0.11044327651595648, 0.1779034781081781, 0.24236561796080108, + 0.30116033125824904, 0.3543724953370972, 0.4030421751754107, 0.448366858436239, 0.532983123231784, + 0.6140650114215304, 0.694670020450467, 0.7762807987518328, 0.8596920201952545, 1.0331844833456545, + 1.2237754316221157, 1.430311246536665, 1.6620303625532709, 1.9213246735826988, 2.2082744135228043, + 2.517696472610991, 2.856470206220483, 3.2068032436339315, 3.572345637857985, 4.519612297626445, + 5.488937726156687, 6.455198563340122, 7.414572881350589, 8.368693183097793, 9.314700387300425, + 10.254144424149297, 11.185809323273041, 12.117241431823558, 13.043320170063875, 13.963930563082547, + 14.89051298099325, 15.812928264165519, 16.733281290048552, 17.652810017196483, 18.56910074907064, + 19.488833825135767, 20.404437035497793, 21.322102338035116, 22.233987776441353, 23.148068562664704, + 24.062587814890477, 24.974614147978176, 25.888051810869925, 26.798611868035096, 27.707982157064677, + 28.620562309542297, 29.53312864232547, 30.446429835351257, 31.354301996759816, 33.17619856040811, + 35.00251041114282, 36.82726256352523, 38.65455623785285, 40.48419700351726, 42.317825039836244, + 44.15458187499503, 48.753063072832326, + }; + + constexpr amrex::Real Na23_pf_threshold_T9 = 0.3; + + // Mg23 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Mg23_pf_array = { + 0.0, 0.0, 0.0, 0.0, 2.9999954999842446e-06, + 4.299907552651673e-05, 0.0002459697469613651, 0.0008526364022512215, 0.002168646784771295, 0.004478954491140311, + 0.007994955004731755, 0.0448710659552296, 0.10413116031010268, 0.16999253242454485, 0.23365530869642223, + 0.2921575425781371, 0.3453201212484915, 0.39397265546284665, 0.4391513032629614, 0.5226589331770403, + 0.6011601728974331, 0.6776156889637003, 0.7536861516496378, 0.8305049308321469, 0.9895411936137477, + 1.1662709371419244, 1.3635373739972745, 1.5912739418064292, 1.851599469584072, 2.1447610078004784, + 2.468099531471619, 2.8094026953624978, 3.169685580677429, 3.5409593240373143, 4.500920164614292, + 5.472270673671475, 6.436150368369428, 7.396335293800808, 8.340456012916183, 9.277999020449997, + 10.21464198117305, 11.141861783579396, 12.066810578196666, 12.989974189358584, 13.9108207377686, + 14.827111469642754, 15.74558164298984, 16.660419941783683, 17.576710673657836, 18.48833939242618, + 19.40649753847513, 20.318300603879898, 21.230083439314864, 22.14154324391935, 23.055409732182, + 23.961944289110793, 24.871151166096542, 25.779511642294718, 26.689412576070104, 27.597464332399706, + 28.50648985328245, 29.414412335486087, 30.325648296698617, 31.23106935633587, 33.05155611520083, + 34.86808014205329, 36.69053859817015, 38.514712726082486, 40.34089477028775, 42.169237656694314, + 44.00375898526045, 48.59330385334546, + }; + + constexpr amrex::Real Mg23_pf_threshold_T9 = 0.3; + + // Mg24 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Mg24_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 9.999994999180668e-07, 0.0001259920626667995, 0.0017764212290928272, 0.008665347199341391, 0.02478529122240376, + 0.05209612203517594, 0.09017063128626053, 0.13704782771330884, 0.19024508258946665, 0.30679917070896673, + 0.42717245621910793, 0.5457138884802113, 0.660894613389287, 0.773014180490088, 0.9932517730102834, + 1.2119409739751128, 1.4398351280479205, 1.682688374173693, 1.9487632180377197, 2.244955980157409, + 2.5726122302071057, 2.9338568698359038, 3.3214324131932926, 3.7376696182833684, 4.844187086458591, + 5.983936280687191, 7.114769448366463, 8.237479288613633, 9.332558004700433, 10.413312675968536, + 11.477298287327077, 12.528156144699286, 13.573438996764546, 14.608503073493935, 15.638445644660779, + 16.660419941783683, 17.68044195585857, 18.698312480550644, 19.707154769790044, 20.71321550109291, + 21.716517609956693, 22.717966150171158, 23.7189981105004, 24.712249883510687, 25.706872458654747, + 26.69707544881567, 27.689290024052525, 28.674825168101663, 29.66048428780214, 30.646556016778717, + 31.629221817597745, 32.607754858349125, 33.592026455551824, 34.56833519715223, 36.53211523753711, + 38.48809518508253, 40.44413824296525, 42.39818954960427, 44.3534327337402, 46.31406612434841, + 48.268729064513316, 53.166471308247374, + }; + + constexpr amrex::Real Mg24_pf_threshold_T9 = 0.9; + + // Mg25 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Mg25_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 3.999991999914312e-06, 2.0999779503135708e-05, 6.899761960959409e-05, 0.00017898398141145229, + 0.00038392629086887384, 0.003959152203459259, 0.013552745250832806, 0.029705393438277498, 0.051854986608935144, + 0.07918818883012882, 0.11090342531148507, 0.14627373801669563, 0.18466796848236594, 0.26849543039773127, + 0.35921940405275893, 0.45488047362389566, 0.5544027952979025, 0.6573365664042267, 0.8712933659434193, + 1.1052568313867783, 1.3609765531356006, 1.6409365794934714, 1.9501867058225735, 2.286455711064162, + 2.6461747973841225, 3.0301337002713233, 3.4307561839036995, 3.8394523125933104, 4.890349128221754, + 5.948034989180646, 6.993932975223189, 8.035926369891792, 9.064157861798101, 10.081633737919603, + 11.092854204472703, 12.100712129872347, 13.102160670086809, 14.100689500197937, 15.101984583801954, + 16.098912831541547, 17.096421773751928, 18.09217667698033, 19.08851011652802, 20.080811770701985, + 21.073922708559582, 22.066130640138965, 23.055409732182, 24.05189252577373, 25.0420863957165, + 26.031533534347616, 27.024051631609655, 28.01628351671919, 29.00473669484158, 29.99187511704657, + 30.984427833754356, 31.97482653778223, 32.96373990919392, 33.957170589083645, 35.93995936852433, + 37.92316665825646, 39.90941442303835, 41.9039565209317, 43.89753677200514, 45.891533107728094, + 47.8922514932784, 52.909215922426306, + }; + + constexpr amrex::Real Mg25_pf_threshold_T9 = 0.5; + + // Mg26 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Mg26_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 3.999991999914312e-06, 0.00013899034039500225, 0.0011343563744640617, 0.004625286850015374, + 0.012677302353591128, 0.027117961734840355, 0.049186276182899225, 0.07950594825935753, 0.16509740237756382, + 0.2815339614904745, 0.42382944666084205, 0.5858898671180595, 0.761566754409873, 1.1346227261911428, + 1.5129270120532565, 1.8946168546677629, 2.2793164660546914, 2.6741486494265287, 3.086486636822455, + 3.5145260669691587, 3.9589065913269965, 4.416428061391214, 4.882801922586371, 6.077642243349034, + 7.272398392570047, 8.446770727119691, 9.60911649193355, 10.749355820113736, 11.877568578558138, + 12.996800154428984, 14.108180171927094, 15.209276933922865, 16.308716010566968, 17.40180342330311, + 18.48833939242618, 19.577561940744452, 20.662453697549655, 21.74211315714566, 22.82005601696086, + 23.897144295883876, 24.968899846714738, 26.041385830790627, 27.108460235944136, 28.17334540675391, + 29.240459028362647, 30.30516976535508, 31.36630694285664, 32.42681166152529, 33.486093038130974, + 34.548726725763856, 35.60692947609409, 36.66343027941207, 37.7209882354073, 39.837093761458725, + 41.94730696180531, 44.0639275067269, 46.173919492605165, 48.291347153101086, 50.408410686570505, + 52.527134576585006, 57.8346544620642, + }; + + constexpr amrex::Real Mg26_pf_threshold_T9 = 1.0; + + // Al25 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Al25_pf_array = { + 0.0, 0.0, 0.0, 0.0, 9.999994999180668e-07, + 8.999959500168733e-06, 5.399854205248437e-05, 0.0001869825176793659, 0.00047788579439204953, 0.0009905092836731248, + 0.0017774194537501919, 0.010529371097795592, 0.026772399552841275, 0.048715875695825986, 0.07487089533951816, + 0.10425460436329718, 0.1362278788356662, 0.17035777530879426, 0.20633833130111146, 0.2830081667518885, + 0.36500554790065826, 0.4515831338650427, 0.5423126628507803, 0.63703122317341, 0.8372475245337022, + 1.0543120297715298, 1.2947271675944, 1.5623463049002497, 1.8562979903656263, 2.178155014615869, + 2.5257286443082556, 2.89591193827178, 3.2809112157876537, 3.6788291182604347, 4.700480365792417, + 5.723585101952381, 6.748759547491679, 7.762170607138205, 8.765614549914716, 9.764225485202621, + 10.75577295443437, 11.744037185933616, 12.730801174465157, 13.717897729097274, 14.703401815316731, + 15.690384933902836, 16.67771143889374, 17.661393760887876, 18.643824295266576, 19.632621717927478, + 20.619015815572613, 21.607033377115005, 22.591986347310595, 23.579736043166893, 24.562718149539723, + 25.551579574248713, 26.53440682992311, 27.52120624992134, 28.50648985328245, 29.49354965604481, + 30.48172761743228, 31.468320575160757, 32.45933485323085, 33.44515164775361, 35.42254393507928, + 37.406675296954795, 39.3908066588303, 41.37503567218775, 43.366391145748196, 45.36055268198364, + 47.36003467953109, 52.3742670998082, + }; + + constexpr amrex::Real Al25_pf_threshold_T9 = 0.3; + + // Al26 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Al26_pf_array = { + 0.0, 0.0, 0.0, 1.2999915500773082e-05, 0.00012399231263549523, + 0.0004938780221697066, 0.0012981570294334805, 0.002695364239974934, 0.004806430584082011, 0.007703253609640361, + 0.0114037296028783, 0.040093409166394374, 0.07828701349794458, 0.11840595271437315, 0.15732677355463054, + 0.19447984435533172, 0.23033920042399608, 0.265669565168513, 0.30120694759654404, 0.3751192962557838, + 0.45500800477640774, 0.5419631791207498, 0.6360835857539417, 0.737097078087148, 0.959350221334602, + 1.2029723039923526, 1.4770487243883548, 1.776645831418007, 2.102913897864978, 2.451005098112319, + 2.8273136219290276, 3.214867803470662, 3.616308761279101, 4.02535169073515, 5.075173815233827, + 6.126869184114185, 7.177782416195197, 8.21878715560148, 9.249561085129464, 10.278493453159584, + 11.300969103046583, 12.319401330837177, 13.339086360915616, 14.357834848789636, 15.373655176010823, + 16.3957273875566, 17.41007933260697, 18.430631074805532, 19.450300161133523, 20.469663078147494, + 21.488733679085982, 22.510012764350922, 23.532668532308907, 24.551907233435507, 25.57529610086603, + 26.595383626421828, 27.6159074781185, 28.63897903632853, 29.66048428780214, 30.685022297606515, + 31.70516297083313, 32.73088754375274, 33.75351392544293, 34.77779329538119, 36.83131115205123, + 38.887763175506365, 40.94730518597019, 43.010972220396184, 45.07619176834679, 47.15031414854902, + 49.22558031881838, 54.436505863251405, + }; + + constexpr amrex::Real Al26_pf_threshold_T9 = 0.2; + + // Al27 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Al27_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 1.9999980000601777e-06, 7.999968000178667e-06, + 2.3999712004631918e-05, 0.0007467211343664971, 0.0043365834151270505, 0.012613119117341724, 0.025879225360058624, + 0.04352872800982073, 0.06476380825852196, 0.08892620919440149, 0.11555923150247234, 0.17518112447569315, + 0.24246449399152697, 0.31716053166008507, 0.39949532435512003, 0.4899643322825811, 0.6981347220709843, + 0.9439058989071284, 1.2325602611778486, 1.5644405465033646, 1.9329696377795786, 2.33214389523559, + 2.7536607123542622, 3.1945831322991562, 3.648057459593681, 4.107589788972121, 5.267858159063328, + 6.434546518787453, 7.590852123688581, 8.737131611781498, 9.87302834505142, 11.005427631296913, + 12.133501952695338, 13.253391639810733, 14.369395671190711, 15.485102393218122, 16.600521800202614, + 17.709369592764748, 18.819456863909732, 19.92475814072864, 21.03075053669437, 22.13181080700112, + 23.232865099324783, 24.334183749590636, 25.432796038258747, 26.5284008058629, 27.625003043602984, + 28.719583068743155, 29.813695912250036, 30.908165848920724, 31.999202343780375, 33.090606630072706, + 34.182101450971956, 35.275940460887405, 36.36493729085607, 37.45654712699496, 39.63864282273488, + 41.818095230325305, 44.00375898526045, 46.191463802256074, 48.3838457551165, 50.57131415750736, + 52.76587238979039, 58.26772483626426, + }; + + constexpr amrex::Real Al27_pf_threshold_T9 = 0.7; + + // Si28 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Si28_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 4.999987500074422e-06, 0.00016398655347018683, 0.0012951609168895288, 0.005118876169847203, + 0.013624759981329058, 0.02828128753789161, 0.049683098718023844, 0.07761360594716747, 0.14972690936745123, + 0.23659586188405388, 0.3312766198925985, 0.4296704475287004, 0.5302411173120398, 0.7419373447293773, + 0.9745596399981308, 1.247032293786383, 1.5748464676644813, 1.9615022438151495, 2.3978952727983707, + 2.8791984572980396, 3.391147045808654, 3.919991175077323, 4.461299815568389, 5.8289456176102075, + 7.1853870155804165, 8.525161361065415, 9.836278802842678, 11.131665045558881, 12.409013489526863, + 13.671640187544572, 14.924073177485552, 16.166885815127753, 17.40180342330311, 18.627694913336693, + 19.853381477886412, 21.066855541336487, 22.279302972653397, 23.483275776979333, 24.687881292493728, + 25.88232113616094, 27.077635877743763, 28.267597945000098, 29.453956202625054, 30.636703720335706, + 31.81764095425982, 32.9969971309504, 34.17205111511845, 35.345252260777634, 36.51701543108136, + 37.68722975548234, 38.856264508447, 40.02357332840134, 41.190348268500415, 43.51970360255906, + 45.84713469413964, 48.17276507625157, 50.49670329371618, 52.82019507152954, 55.14438418838886, + 57.46921714004648, 63.288212426803526, + }; + + constexpr amrex::Real Si28_pf_threshold_T9 = 1.0; + + // Si29 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Si29_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 9.999994999180668e-07, 0.00010599438239691326, 0.0012602056072493328, 0.0056748674375023955, 0.01575424757578948, + 0.03316588113645688, 0.058632049727251404, 0.09209410468342157, 0.132964982244445, 0.233337812809919, + 0.3523540221873608, 0.48414380902422144, 0.6252799253292538, 0.774441412442551, 1.0986122886681098, + 1.4586150226995167, 1.8656293177945105, 2.312535423847214, 2.791165107812717, 3.295836866004329, + 3.8110970868381857, 4.333361462692601, 4.859812404361672, 5.384495062789089, 6.688354713946762, + 7.975908360165538, 9.249561085129464, 10.499573020252942, 11.744037185933616, 12.976180867226248, + 14.20077295875492, 15.422946467727702, 16.636889444373487, 17.84975119611667, 19.057257573023918, + 20.262816420505487, 21.46520318167579, 22.66344531129274, 23.85876005287556, 25.052682521347997, + 26.244726754808656, 27.43257017720471, 28.620562309542297, 29.805772837412707, 30.987918238694125, + 32.17218597194073, 33.35460621788093, 34.533763853087144, 35.71434972471492, 36.89015165207416, + 38.071002038979245, 39.24830659622302, 40.42488042636084, 41.603535422702485, 43.956130936271194, + 46.31406612434841, 48.66909769271499, 51.028435602301485, 53.391239555288585, 55.75062224667577, + 58.11851243807758, 64.05383225617646, + }; + + constexpr amrex::Real Si29_pf_threshold_T9 = 0.9; + + // Si30 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Si30_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 1.1999928000476974e-05, 0.00015598783326536893, 0.0008866068479668082, + 0.0030782573008273765, 0.007879872100269384, 0.01646864437387198, 0.02987816871437123, 0.07415897085326609, + 0.14453661243119642, 0.24213643909511245, 0.36653923148632106, 0.5165597521832973, 0.8878912573524571, + 1.3376291891386096, 1.851599469584072, 2.4069451083182885, 2.990719731730447, 3.586292865338835, + 4.183575695950044, 4.77912349311153, 5.365976015021851, 5.948034989180646, 7.371489295214277, + 8.746716349694486, 10.089967119478747, 11.407564949312402, 12.70381302974751, 13.989463865087712, + 15.26007382720814, 16.523560759066484, 17.782021748676488, 19.0358663830426, 20.284760874760046, + 21.52974170281336, 22.77353600132597, 24.011667724463223, 25.24939281559405, 26.48216761082369, + 27.7171988121696, 28.942052992547893, 30.172623109393093, 31.39454411303825, 32.61462773763689, + 33.83759704265348, 35.057570188325855, 36.27572762764375, 37.493686673944424, 38.70853759641754, + 39.92327145769978, 41.138646894123525, 42.350749824532706, 43.56639513007158, 45.991951855475136, + 48.421945601348774, 50.84749240547765, 53.274267878703085, 55.70029716278825, 58.129941133901205, + 60.56534713991617, 66.66403613612005, + }; + + constexpr amrex::Real Si30_pf_threshold_T9 = 1.5; + + // Si31 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Si31_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 1.9999980000601777e-06, 8.999959500168733e-06, 3.099951950982233e-05, + 8.099671967713398e-05, 0.0014838984778720219, 0.00641339017716369, 0.015686323794121715, 0.029098502144950168, + 0.046288943485234435, 0.06699768242032028, 0.09104655801834252, 0.11828868557169253, 0.1818247667475449, + 0.2567686381103312, 0.3431165428214051, 0.4421447750234508, 0.556326957083827, 0.8415671856782185, + 1.2178757094949273, 1.6770965609079151, 2.1983350716202463, 2.7536607123542622, 3.3250360206965914, + 3.8979240810486444, 4.467056883858457, 5.030437921392435, 5.5909869805108565, 6.966024187106113, + 8.306472160100585, 9.622450022803015, 10.918718232265187, 12.201060103706629, 13.474427708785377, + 14.743729860703702, 16.006046147149696, 17.26549810379586, 18.525040759276607, 19.781657297087968, + 21.038076576786445, 22.293962921064082, 23.544644723355624, 24.797407691850992, 26.04627581608482, + 27.296946003907056, 28.543303826405165, 29.790889906721, 31.035546287683378, 32.28498146608607, + 33.52266532775432, 34.769888115874075, 36.008952240011276, 37.25347113873156, 38.49194134367001, + 39.731733245800896, 40.974926763280116, 42.2166398955889, 43.458764465879206, 45.94300244295757, + 48.43124799401109, 50.919236310336494, 53.404142960124496, 55.898619060928645, 58.397536447786244, + 60.900396901190845, 67.1737438167847, + }; + + constexpr amrex::Real Si31_pf_threshold_T9 = 0.6; + + // Si32 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Si32_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 9.999994999180668e-07, 6.399795208744114e-05, 0.0006088146347545532, 0.0027332612359444192, + 0.007975114069508871, 0.017762311973632882, 0.033022698931051475, 0.05409037889687267, 0.11275888014172657, + 0.19025748385985303, 0.283545277703069, 0.39236230677071876, 0.5192169181709754, 0.8415671856782185, + 1.2809338454620642, 1.8261608959453874, 2.4423470353692043, 3.100092288878234, 3.763522997109702, + 4.42484663185681, 5.075173815233827, 5.720311776607412, 6.35088571671474, 7.886081401775745, + 9.367344120785848, 10.807705703176014, 12.220961258023925, 13.614617615584883, 14.991083887768513, + 16.35711255142882, 17.717483227538917, 19.073005929992057, 20.420808478912477, 21.767069889119526, + 23.11202862618151, 24.44654671777768, 25.779511642294718, 27.11182724249204, 28.44195133214488, + 29.76637028954668, 31.09048740571468, 32.410144609040074, 33.72909539809479, 35.045593997279134, + 36.360094666380284, 37.674270610839834, 38.98495084940832, 40.2945186084976, 41.603535422702485, + 42.91209921590722, 44.2191203961326, 45.527453215782785, 46.83102673668191, 49.442848905689566, + 52.055588926987454, 54.666021762027874, 57.27694525239936, 59.88701504514137, 62.50626974746044, + 65.12470778987297, 71.68024247526576, + }; + + constexpr amrex::Real Si32_pf_threshold_T9 = 1.0; + + // P29 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D P29_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 4.599894203243471e-05, 0.0006897620594464428, 0.003615456353963982, 0.011173345042568708, + 0.025437700796859284, 0.047683838130686024, 0.07831937743878427, 0.11704854376101735, 0.21554999308941072, + 0.33540809919919784, 0.46944784982896404, 0.612839646156239, 0.7631269648881707, 1.0818051703517284, + 1.4279160358107101, 1.809926773183504, 2.2300144001592104, 2.681021528714291, 3.1612467120315646, + 3.653252276470785, 4.155753190350744, 4.663439094112067, 5.170483995038151, 6.439350371100098, + 7.691656822810547, 8.931948346431495, 10.158129770909708, 11.377105741827693, 12.587927887999204, + 13.79224193102492, 14.994165554305921, 16.195056692094447, 17.38785619582226, 18.57768449276203, + 19.771347927429105, 20.96228273741691, 22.148780911219582, 23.333335629688417, 24.518755026118605, + 25.699999579366985, 26.880244822531967, 28.062803532354085, 29.240459028362647, 30.416032358166888, + 31.59373723567221, 32.77268467243121, 33.94637911745088, 35.120992014763345, 36.296634312463055, + 37.47263326474659, 38.64472009297614, 39.82198012364867, 40.99397495825081, 43.34415153382035, + 45.696454467933364, 48.04911956608216, 50.40584329106526, 52.764658060557984, 55.1273673285305, + 57.49313132314607, 63.42541354831701, + }; + + constexpr amrex::Real P29_pf_threshold_T9 = 1.0; + + // P30 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D P30_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 1.9999980000601777e-06, 1.1999928000476974e-05, 5.199864804680849e-05, 0.00016098704089100344, + 0.0003959216126936291, 0.005918451363559697, 0.023009245302846, 0.05240362773926729, 0.09169729756159335, + 0.13837402313895786, 0.19062945047641852, 0.2473076340133595, 0.30769644203486257, 0.43812072837800836, + 0.5806076238090854, 0.7355325923063368, 0.90380470485907, 1.08604565828615, 1.4906543764441336, + 1.9401794743463283, 2.424802725718295, 2.917770732084279, 3.427514689979529, 3.937690752176724, + 4.448516375942715, 4.955827057601261, 5.4638318050256105, 5.971261839790462, 7.222566018822171, + 8.459564078579602, 9.680344001221918, 10.891168280496956, 12.089538829274222, 13.284482226880764, + 14.473030560881067, 15.660810794120358, 16.8456442582356, 18.033546592528925, 19.218187939836554, + 20.40306057278907, 21.58615579209345, 22.770958680311665, 23.954070232679886, 25.137275517473345, + 26.31797721654825, 27.50091243058153, 28.68184274076031, 29.8642561307878, 31.045463724340724, + 32.225130354557216, 33.40557266147296, 34.587566559080116, 35.7684169459852, 36.945721503228974, + 38.13059413618149, 39.30946101937635, 40.494613764375515, 41.67764339485621, 44.0492213593372, + 46.416344973468824, 48.792541883806116, 51.17566583928417, 53.558293639951756, 55.94513907656354, + 58.33935449240351, 64.3479525254551, + }; + + constexpr amrex::Real P30_pf_threshold_T9 = 0.5; + + // P31 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D P31_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 9.999994999180668e-07, 0.00011099383995581128, 0.0012951609168895288, 0.005682822135497365, 0.015358452840402968, + 0.03151998466160665, 0.05451185924626351, 0.08416190442932753, 0.12008615920783534, 0.20921256415092282, + 0.3197786711794938, 0.45149209313252847, 0.6053334817962622, 0.7824841013751634, 1.205970806988609, + 1.7083778602890038, 2.262804222982201, 2.8449093838194073, 3.4307561839036995, 4.0163830207523885, + 4.596129441335942, 5.170483995038151, 5.736572297479192, 6.295266001439646, 7.668561108015897, + 9.010669176847115, 10.328755287940472, 11.626254150277232, 12.91410843858387, 14.19394699368452, + 15.460315614235666, 16.727861222579214, 17.98989782785991, 19.249232561518514, 20.508834226234224, + 21.767069889119526, 23.020838388116914, 24.275752666154794, 25.527286881679668, 26.777705183215783, + 28.02306320370457, 29.27195769542202, 30.521392873824713, 31.762982541721957, 33.00629952361271, + 34.249760099445766, 35.494287839938124, 36.73377627722479, 37.975984214095874, 39.211605229372594, + 40.457670249183835, 41.69339175182435, 42.937186050336955, 44.180899183312405, 46.661467431501805, + 49.14274431323923, 51.62765096302723, 54.119478055659805, 56.61011538015679, 59.10578639653195, + 61.60592266598343, 67.87357998549544, + }; + + constexpr amrex::Real P31_pf_threshold_T9 = 0.9; + + // P32 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D P32_pf_array = { + 0.00019298137789611525, 0.003952179838427941, 0.01777704778268052, 0.07810853066627056, 0.15947846195735543, + 0.24060854651546354, 0.3133388542279629, 0.37614751677293007, 0.42983636825736254, 0.4757806600231186, + 0.5153336473416043, 0.6509362010131231, 0.7316508097468865, 0.788460996721295, 0.8344930851955813, + 0.8763275351481529, 0.917631432732977, 0.9606084332852801, 1.0066694995012513, 1.1115344369181024, + 1.2366783010129332, 1.3836513714978413, 1.5519865380383395, 1.7398356252086695, 2.1598687907924505, + 2.631888840136646, 3.126760535960395, 3.6428355156125294, 4.168214410788556, 4.700480365792417, + 5.236441962829949, 5.771441123130016, 6.3080984415095305, 6.842683282238422, 8.169053149927343, + 9.480367509189243, 10.778956289890028, 12.066810578196666, 13.340695371721317, 14.613017753848462, + 15.878568620393587, 17.144137246791594, 18.411639999300217, 19.67629678143014, 20.94640938826062, + 22.211665421003456, 23.476926549300675, 24.745039706333678, 26.011532867640945, 27.277199240972223, + 28.543303826405165, 29.809176130544415, 31.074639213474654, 32.34055131724088, 33.60483072779781, + 34.86808014205329, 36.136141726110516, 37.400977275840155, 38.66591077995578, 39.93240394126305, + 41.19935154475037, 42.46537899409207, 43.732987384956985, 45.00187973538224, 47.54010144393796, + 50.08417101838493, 52.62956321760196, 55.18083217643155, 57.73858063197458, 60.29899483427072, + 62.86294469139918, 69.30866451078475, + }; + + constexpr amrex::Real P32_pf_threshold_T9 = -1.0; + + // P33 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D P33_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 3.299945551192844e-05, 0.0005608426983281094, 0.003176948151817077, 0.010303733745543574, + 0.02418321457654783, 0.046224017286249156, 0.07692029956546098, 0.11608381502058146, 0.2174763228683301, + 0.3457575656458799, 0.4986500007858562, 0.6765913865911577, 0.8809884755316247, 1.3686394258811698, + 1.9401794743463283, 2.5572273113676265, 3.1986731175506815, 3.835141961092188, 4.465908118654584, + 5.087596335232384, 5.700443573390687, 6.304448802421981, 6.900730664045173, 8.364042011922063, + 9.798127036878302, 11.205040685200927, 12.594730635321957, 13.972514306773938, 15.339390582036728, + 16.70031127081098, 18.0611445677326, 19.417629378843976, 20.772056001115843, 22.12198271806486, + 23.4705367512019, 24.81761039916851, 26.161345145869607, 27.506591037550372, 28.848896825423477, + 30.188248427296173, 31.52488015072902, 32.86212973278313, 34.19628608596391, 35.53202816792097, + 36.861164115200914, 38.194615994946425, 39.522383016619024, 40.85594108165797, 42.18369573986954, + 43.515922879719156, 44.844390154289464, 46.173919492605165, 47.50331568712145, 50.16421372605846, + 52.824782235536446, 55.4851857831713, 58.15241398975326, 60.82272386287262, 63.496872512299156, + 66.1734877047932, 72.88643503633, + }; + + constexpr amrex::Real P33_pf_threshold_T9 = 1.0; + + // S32 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D S32_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 1.1999928000476974e-05, 0.0001599872013651075, 0.0008965979359162839, + 0.0030782573008273765, 0.007778667567807429, 0.01603376935914739, 0.02868269041229125, 0.06934041108806749, + 0.13236245968854618, 0.21875794860165648, 0.32915769331179123, 0.4643325791959468, 0.8109302162163288, + 1.2669476034873244, 1.81319474994812, 2.4336133554004498, 3.086486636822455, 3.756538102587751, + 4.4272389774954295, 5.093750200806762, 5.746203190540153, 6.386879319362645, 7.940939762327791, + 9.433483923290392, 10.883691610153935, 12.296827008798639, 13.688812904918317, 15.062542851750656, + 16.42558035070628, 17.778226677707938, 19.12377825536548, 20.467082431554, 21.80507100729814, + 23.13917961524746, 24.47276991287678, 25.804670201930875, 27.12849429497725, 28.45080094742186, + 29.773437456769773, 31.09048740571468, 32.410144609040074, 33.72233099800625, 35.033472636746794, + 36.34378109088876, 37.65229170412106, 38.960023742737846, 40.265624142497884, 41.56874930661707, + 42.87684292042949, 44.180899183312405, 45.48430588462653, 46.78406975359414, 49.39102383782498, + 51.99450123500761, 54.60039371835652, 57.205091148631375, 59.81381164111807, 62.424439729212814, + 65.03769641288334, 71.57898874156058, + }; + + constexpr amrex::Real S32_pf_threshold_T9 = 1.5; + + // S33 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D S33_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 2.9999954999842446e-06, 9.999950000398841e-06, + 2.8999579508186245e-05, 0.0007467211343664971, 0.0038097337398404945, 0.01022059135921024, 0.020067298150111938, + 0.033246170293546144, 0.049840088995890784, 0.07015086741745234, 0.09461448331817887, 0.15797763340443732, + 0.2438179553653309, 0.35560937642326057, 0.49601610214447456, 0.6663451948054367, 1.091923300517313, + 1.6074359097634274, 2.182674796321488, 2.785011242238338, 3.3945083935113587, 4.005513348515485, + 4.61512051684126, 5.214935757608986, 5.811140992976701, 6.400257445308821, 7.847762537473608, + 9.268609280100158, 10.657259354912508, 12.031719258385396, 13.389332408258568, 14.739769459487606, + 16.084538867429476, 17.4264284706085, 18.764270448342444, 20.10150865247314, 21.436215644802537, + 22.772248171141538, 24.10426051129105, 25.441764708241507, 26.76827115098242, 28.09475513216069, + 29.424445864475665, 30.753386040415904, 32.077195570426184, 33.402462239058565, 34.72109795170464, + 36.04728838875482, 37.3719897389669, 38.6929609574888, 40.01523994684219, 41.33560011318554, + 42.65847264786794, 43.980228487850255, 45.30092556648433, 46.622681406466654, 49.270577684749114, + 51.91816991681421, 54.568895051297154, 57.22354447567225, 59.87716274869835, 62.541361067271716, + 65.21431994856266, 71.9048664117504, + }; + + constexpr amrex::Real S33_pf_threshold_T9 = 0.7; + + // S34 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D S34_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 2.1999758003515767e-05, 0.00025796672372348803, 0.0013470922636607248, + 0.004412251685466112, 0.010813324703465481, 0.021870096451326704, 0.03870327161118644, 0.09305946703132323, + 0.17891409130505767, 0.2996259594052964, 0.4575836951813349, 0.6539166273582508, 1.1537315878891892, + 1.7715567619105355, 2.4595888418037104, 3.1654750481410856, 3.879499813722586, 4.583946549536464, + 5.278114659230517, 5.958424693029782, 6.625392368007956, 7.27931883541462, 8.87626525995469, + 10.419300717813158, 11.925035115797062, 13.406037428458571, 14.866332182796036, 16.316946509703484, + 17.755148730425393, 19.186148586091935, 20.615680626266474, 22.039674070602135, 23.464105860871612, + 24.879019027297154, 26.295419869124174, 27.707982157064677, 29.114895805387302, 30.521392873824713, + 31.924216536895813, 33.32475325473125, 34.72109795170464, 36.11981483282309, 37.51430596114716, + 38.90822424737771, 40.30082777769086, 41.69339175182435, 43.07968611294424, 44.46695656003718, + 45.85568697595496, 47.24258942465819, 48.63191868947324, 50.014417979624575, 52.786293519853864, + 55.56214682430743, 58.330095166990716, 61.105586648888455, 63.883595438597574, 66.6629181930187, + 69.44219590340929, 76.41709048522904, + }; + + constexpr amrex::Real S34_pf_threshold_T9 = 1.5; + + // S35 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D S35_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 2.9999954999842446e-06, 7.499718764066433e-05, 0.0005568449330787635, 0.0022175394409545933, + 0.006148061876555276, 0.013544852910250637, 0.025571250864929538, 0.043315203889162254, 0.10002450443827016, + 0.1912812981654266, 0.32303666794779384, 0.49784189882139235, 0.7137235280652752, 1.2412685890696329, + 1.8500283773520307, 2.4849066497880004, 3.1354942159291497, 3.7773481021015445, 4.417635062141249, + 5.049856007249537, 5.676753802268282, 6.298949246855942, 6.917705609835305, 8.433811582477187, + 9.9281801651265, 11.398636318568101, 12.855790268162783, 14.304090572782945, 15.741217999702068, + 17.175885945106174, 18.611301103561015, 20.04204722725174, 21.469953784434388, 22.900287706965113, + 24.326042592006935, 25.753703758338848, 27.175314791383638, 28.59800496211822, 30.019783905163646, + 31.435458910676758, 32.851376941006876, 34.26958890509507, 35.686178847748224, 37.09600370627831, + 38.51095332315858, 39.92327145769978, 41.33560011318554, 42.7467233359593, 44.1612264177137, + 45.568815604804165, 46.97992116262034, 48.39350766602824, 49.80355611315624, 52.628171428929136, + 55.452662591465746, 58.282467118001456, 61.11711415405952, 63.954867991916494, 66.7947703241235, + 69.64286659887144, 76.7828152646877, + }; + + constexpr amrex::Real S35_pf_threshold_T9 = 1.0; + + // S36 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D S36_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 9.999994999180668e-07, 1.7999838002017484e-05, + 0.00011599327252025839, 0.0004768862716642343, 0.0014629293967812719, 0.003653318497902424, 0.01518118052898727, + 0.04454784491129967, 0.10466267222172569, 0.20997158054757076, 0.372496224810359, 0.8796267475025636, + 1.5665304114228238, 2.33214389523559, 3.122364924487357, 3.8979240810486444, 4.653960350157523, + 5.3981627015177525, 6.126869184114185, 6.838405200847344, 7.539027055823995, 9.239899174217728, + 10.887436932884098, 12.498742259492994, 14.085537695177335, 15.652880538444382, 17.210018951475632, + 18.75715298057358, 20.29402020017284, 21.82852266833319, 23.355154677083057, 24.882148920306083, + 26.403438445963477, 27.91620005816221, 29.429425127875273, 30.937907818119463, 32.44320547130096, + 33.944569162205646, 35.44299454555057, 36.93667166770906, 38.43263542971116, 39.92327145769978, + 41.4119402291232, 42.89814550113336, 44.38569359595842, 45.86777902171998, 47.34916500729419, + 48.83052113187133, 50.312972293418994, 51.79149477206015, 53.274267878703085, 56.22902607804677, + 59.18599380815051, 62.144479702854944, 65.10365438067514, 68.06420034510408, 71.02773949564394, + 73.9975337156495, 81.4277257793253, + }; + + constexpr amrex::Real S36_pf_threshold_T9 = 2.0; + + // Cl33 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Cl33_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 9.999994999180668e-07, 3.999991999914312e-06, 1.3999902000873147e-05, + 4.09991595229307e-05, 0.0009455528239966695, 0.004540675512145059, 0.011724992832419298, 0.022402186688385492, + 0.036362787016221705, 0.05366398208554558, 0.07460827555253105, 0.09961272873346266, 0.16348271490737387, + 0.24827002099449377, 0.35655213639819505, 0.49063985508052205, 0.6522246601537993, 1.0508216248317612, + 1.547562508716013, 2.1016921506146558, 2.6878474937846906, 3.2846635654062037, 3.8815637979434374, + 4.475061500641071, 5.062595033026967, 5.641907070938114, 6.2166061010848646, 7.6255950721324535, + 9.003316202541857, 10.357742824813725, 11.695247021764184, 13.023647404465171, 14.346138809026444, + 15.665538935316304, 16.985196138641705, 18.30077044727981, 19.617628933341337, 20.938377216563357, + 22.255822705044555, 23.573972338450144, 24.893027038453265, 26.2122035631031, 27.528988390363395, + 28.845933860292817, 30.16471792988598, 31.481168717638607, 32.79580708985206, 34.1156563515638, + 35.4307744342158, 36.74814910618255, 38.06513691952685, 39.38296348136927, 40.69787178340262, + 42.01751122047856, 43.333601322925205, 44.653334917526756, 45.97049180445537, 48.60892917124854, + 51.255708546957706, 53.89946439735452, 56.55127488013385, 59.20750001337148, 61.8673401528053, + 64.53065151195726, 71.21996913066259, + }; + + constexpr amrex::Real Cl33_pf_threshold_T9 = 0.6; + + // Cl34 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Cl34_pf_array = { + 0.0, 8.399647219752854e-05, 0.0014309756657812272, 0.024008476183393877, 0.09541108380425417, + 0.21039219725565883, 0.3455954928691866, 0.4821378360811084, 0.6103295429939214, 0.7267337826442105, + 0.8310273535170856, 1.2112854019918935, 1.451001930468008, 1.620461726304086, 1.7503536237444364, + 1.8560796852888066, 1.946477559476141, 2.027138790593848, 2.1018603516269967, 2.2436505733998957, + 2.386405609599034, 2.538598590122878, 2.7049863121845568, 2.887739630218716, 3.299533727885655, + 3.770459441106359, 4.282206299391671, 4.820281565605037, 5.37989735354046, 5.950642552587727, + 6.525029657843462, 7.098375638590786, 7.67786350067821, 8.258422462458876, 9.692766521220475, + 11.112447898373103, 12.520883385370206, 13.919870573288517, 15.306164934408407, 16.694709015262312, + 18.076780991502357, 19.460957455607513, 20.84548346967066, 22.225118538700574, 23.608066549793122, + 24.98875865536434, 26.36871273458965, 27.753238748652798, 29.128409524554026, 30.50458575550833, + 31.885214379092545, 33.26223289774991, 34.63408657471501, 36.01353940401818, 37.38948289641442, + 38.76268616148743, 40.13719835390906, 41.51419032236664, 42.886366801940746, 44.261940393315534, + 45.63618641591925, 47.01105208121552, 48.3838457551165, 49.76527392658522, 52.51940058598527, + 55.281844859153274, 58.040861503847516, 60.80721967633666, 63.578342480893944, 66.3548964363298, + 69.13582169794535, 76.11633633120991, + }; + + constexpr amrex::Real Cl34_pf_threshold_T9 = 0.01; + + // Cl35 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Cl35_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 4.1999118024792734e-05, 0.0004768862716642343, 0.002171640281399847, 0.006214649003101918, + 0.013601084477779782, 0.025115937609836814, 0.04134825602037712, 0.06275411753599432, 0.12260959129668093, + 0.207735860122419, 0.3215376980728771, 0.4673551250528115, 0.6472901355876193, 1.1052568313867783, + 1.665818245870208, 2.2874714551839976, 2.9338568698359038, 3.5890591188317256, 4.241326752570746, + 4.890349128221754, 5.529429087511423, 6.1675164908883415, 6.796823718274855, 8.349957272040324, + 9.87302834505142, 11.379394072345706, 12.86876061860541, 14.346138809026444, 15.821036416693943, + 17.290577788192884, 18.75715298057358, 20.21908475589909, 21.678777281973847, 23.13917961524746, + 24.594466847854303, 26.051142005735993, 27.502050734631588, 28.952776955910867, 30.40360983816833, + 31.8475833108749, 33.29050333168817, 34.73762725365585, 36.17582947437776, 37.6160886554571, + 39.05620766659077, 40.494613764375515, 41.935111688711494, 43.36931940552728, 44.80690706103472, + 46.242322219489566, 47.677013121471305, 49.11509278190872, 50.55039980135849, 53.42319115509519, + 56.29877911680712, 59.176063239947915, 62.0555083644371, 64.93611662006542, 67.82578932165909, + 70.71848936931484, 77.9704389310121, + }; + + constexpr amrex::Real Cl35_pf_threshold_T9 = 1.0; + + // Cl36 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Cl36_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 2.9999954999842446e-06, 1.4999887501223254e-05, 5.399854205248437e-05, + 0.00014998875112496793, 0.003212833319284968, 0.015096472662727957, 0.038609949752205, 0.07291025517701734, + 0.11603840355934411, 0.16638693909411895, 0.22304194615258016, 0.2856667931398674, 0.42905792915759544, + 0.5979234470190345, 0.7930549570190651, 1.0133985676536073, 1.2561423946540238, 1.7900914121273581, + 2.3702437414678603, 2.975529566236472, 3.586292865338835, 4.2017030805426, 4.820281565605037, + 5.438079308923196, 6.052089168924417, 6.664409020350408, 7.272398392570047, 8.788745881938135, + 10.281923988256374, 11.759785542901755, 13.232114241363448, 14.695137305466838, 16.1573163641116, + 17.610999747136468, 19.067783986010905, 20.52237289456702, 21.978881874424186, 23.43131603804862, + 24.886825468189986, 26.340036934612982, 27.796535554406123, 29.244451049632186, 30.694412037956354, + 32.144076013008835, 33.592026455551824, 35.03955168282317, 36.4875396129484, 37.93328478842204, + 39.38296348136927, 40.82477448941955, 42.27070711685917, 43.71659357518131, 45.16253979539501, + 46.60558697310735, 48.05318186009104, 49.501689405712504, 50.94954165983182, 53.84322467903164, + 56.74364677278131, 59.64781185280981, 62.555059911629876, 65.46933123872489, 68.3864036119241, + 71.31078780468063, 78.64556760606936, + }; + + constexpr amrex::Real Cl36_pf_threshold_T9 = 0.6; + + // Cl37 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Cl37_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 9.999994999180668e-07, 2.1999758003515767e-05, 0.0001669860570523215, 0.0006537862351963091, + 0.0017824105620907265, 0.003928274217816947, 0.007583174913292661, 0.013411660267615302, 0.03540189226830659, + 0.0799703973669016, 0.16016370814010025, 0.288758992365314, 0.47344084026202166, 0.9969486348916096, + 1.6582280766035324, 2.3702437414678603, 3.091042453358316, 3.7999735016195233, 4.500920164614292, + 5.187385805840755, 5.869296913133774, 6.541029999189903, 7.2078598714324755, 8.84361509218395, + 10.451608961045816, 12.037653993905211, 13.608486388529947, 15.168765065005964, 16.722411617811648, + 18.268694386954483, 19.811962646583297, 21.35453761378827, 22.891176026613856, 24.427033903554097, + 25.95970779977636, 27.488304813726952, 29.014812346830322, 30.537922175775922, 32.06064672940171, + 33.579056105109196, 35.098392182846105, 36.61068967016973, 38.12506926024952, 39.63252659571745, + 41.1454265811089, 42.6554920197298, 44.1612264177137, 45.66897623874224, 47.176631456866396, + 48.68359070001756, 50.18846713798697, 51.693608930819025, 53.19847403933355, 56.21370010756854, + 59.22665768740441, 62.23745615931305, 65.26083996419754, 68.28347969067147, 71.31078780468063, + 74.34024297872625, 81.94373276183329, + }; + + constexpr amrex::Real Cl37_pf_threshold_T9 = 1.0; + + // Ar36 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ar36_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 9.999994999180668e-07, 5.399854205248437e-05, 0.0005328580059528724, 0.0024460060865663185, + 0.007262563624929949, 0.016429296950877147, 0.03102568700488373, 0.051697362740936774, 0.11229958453583105, + 0.1990262531987242, 0.3122512627917935, 0.45265144715484346, 0.6210027409523153, 1.0438040521731147, + 1.5769147207285403, 2.2071749081893874, 2.9069010598473755, 3.6402142821326553, 4.388257184424518, + 5.135798437050262, 5.872117789475416, 6.5998704992128365, 7.313220387090301, 9.047821442478408, + 10.72326738402944, 12.354492650648448, 13.955272500339433, 15.534699334357494, 17.10017412337048, + 18.65179246491575, 20.200704956962, 21.74211315714566, 23.280493148314036, 24.809242149497994, + 26.336393943334482, 27.862132836891934, 29.378480326260025, 30.892956430257197, 32.40170574039421, + 33.91141695488874, 35.41840314241325, 36.91832252904086, 38.41827620863327, 39.91405480259485, + 41.40882980670881, 42.900484683486525, 44.39097065305926, 45.88091353890063, 47.368110093536636, + 48.85506224078745, 50.34216130102931, 51.82625340542532, 53.31011401047622, 56.27727291158615, + 59.243591299933854, 62.209018223992516, 65.17548011524639, 68.14614842013717, 71.11747357333893, + 74.09483262663629, 81.54213613050304, + }; + + constexpr amrex::Real Ar36_pf_threshold_T9 = 1.0; + + // Ar37 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ar37_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 1.6999855501571383e-05, 0.0003199488109201438, 0.001929138016108515, 0.006550498561556142, + 0.015993420687572764, 0.03177091681774753, 0.05500509711667123, 0.08649691134153642, 0.17644851083955373, + 0.30471247833763737, 0.4723465075617039, 0.6779228767281616, 0.9174476623719025, 1.472472057360943, + 2.0943301541735866, 2.747270914255491, 3.407841924380824, 4.074141854904581, 4.736198448394496, + 5.3981627015177525, 6.056784013228625, 6.71174039505618, 7.358830898342354, 8.968268810776454, + 10.553205175168737, 12.117241431823558, 13.670484785914017, 15.214227439082721, 16.75467248002987, + 18.286005840625762, 19.816925435925423, 21.34384232467152, 22.86919711989508, 24.39194258374283, + 25.910651642787165, 27.43134992079948, 28.947429349584272, 30.458334737857577, 31.97092282430176, + 33.48034589587541, 34.9898520142709, 36.49322144641584, 37.99824268469682, 39.50162102517059, + 41.00180585183136, 42.50084370366435, 44.00375898526045, 45.50178884740688, 46.99949125881444, + 48.50270695799323, 49.99909200914635, 51.49843923154722, 52.998677852016336, 55.999206297833815, + 58.999711850140464, 62.00374292650915, 65.01470689465864, 68.02486943304166, 71.04326556617286, + 74.0679853766001, 81.64479028456313, + }; + + constexpr amrex::Real Ar37_pf_threshold_T9 = 1.0; + + // Ar38 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ar38_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 1.6999855501571383e-05, 0.0002139771052661936, 0.001148340404701717, + 0.0038316498449908263, 0.009527469182544964, 0.019521215154477488, 0.03501669633735268, 0.08696179242700224, + 0.17403229560040478, 0.30437914721359227, 0.4838991379376689, 0.7139463699466596, 1.3029127521808397, + 2.012232791986386, 2.772588722239781, 3.5524868292083815, 4.330733340286331, 5.099866427824199, + 5.857933154483459, 6.6039438246004725, 7.3395376954076745, 8.064636475774222, 9.836278802842678, + 11.571194373094205, 13.267329147654515, 14.943681648873929, 16.60667566577699, 18.255806100762133, + 19.89772946834072, 21.53419605316274, 23.165612872315616, 24.788867930302857, 26.406845604285092, + 28.02306320370457, 29.632501116138673, 31.23923266697503, 32.84050726876997, 34.43674366934553, + 36.02943077135482, 37.620686364705726, 39.211605229372594, 40.79068027807657, 42.37079057541615, + 43.94796762563203, 45.5291409798965, 47.10252348471268, 48.676370452044075, 50.248903807542725, + 51.82002285567469, 53.391239555288585, 54.95958487382316, 56.52898983534442, 59.66387149382716, + 62.80106928768109, 65.93563800608929, 69.07354476842383, 72.21304700575052, 75.35419627916302, + 78.5030045414145, 86.3773756361583, + }; + + constexpr amrex::Real Ar38_pf_threshold_T9 = 1.5; + + // Ar39 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ar39_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 3.1999488010954404e-05, 0.0004019192196484226, 0.001929138016108515, 0.005723588969595598, + 0.012964595271427397, 0.024818458330000768, 0.04239547594881424, 0.06670024542706736, 0.13871008501929616, + 0.24538790106073663, 0.38824977088856305, 0.5662190809859277, 0.7763553344565401, 1.2725655957915476, + 1.851599469584072, 2.4765384001174837, 3.1354942159291497, 3.8066624897703196, 4.486386649998124, + 5.170483995038151, 5.8522024797744745, 6.5337888379333435, 7.215239978730097, 8.895629627136483, + 10.558413520275876, 12.206072645530174, 13.845069360205818, 15.477540920517544, 17.103912445481086, + 18.728165443700327, 20.347844850186622, 21.96742043090518, 23.579736043166893, 25.19490463030998, + 26.805484747322858, 28.414922659756957, 30.019783905163646, 31.62370202437415, 33.22573249553039, + 34.82395533714435, 36.41976699786668, 38.013843625139295, 39.607680597130916, 41.19935154475037, + 42.79200404049246, 44.38038854372873, 45.97049180445537, 47.56021385372505, 49.14727946840462, + 50.73383308700513, 52.32457886642708, 53.9111150145745, 55.5010591323276, 58.67976891547046, + 61.861912731069935, 65.04336215041901, 68.23358271952684, 71.42892804698485, 74.62662887471659, + 77.82744374535663, 85.86347781335535, + }; + + constexpr amrex::Real Ar39_pf_threshold_T9 = 1.0; + + // Ar40 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ar40_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 6.199807807944547e-05, 0.00104745123137282, 0.005768331142829694, 0.01816108462350664, + 0.041674431092940896, 0.07865220290818199, 0.13041579418427357, 0.19744495288972388, 0.37540101156028477, + 0.6025920774378596, 0.8640420338654573, 1.1466971247871045, 1.4428216591814995, 2.066862759472976, + 2.740840023925201, 3.462606009790799, 4.223909766576744, 5.0106352940962555, 5.796057750765372, + 6.584791392385716, 7.365180126021013, 8.131530710604252, 8.890135107818843, 10.745054738214346, + 12.553202176625375, 14.328334184392938, 16.08039378377431, 17.819200751918245, 19.54885183486202, + 21.271387245456097, 22.987110101624026, 24.70107658291256, 26.410241193286232, 28.11344726517284, + 29.814822672932628, 31.510520929651133, 33.20317514810631, 34.88943326652385, 36.57609301028985, + 38.25721465126617, 39.93693909642844, 41.61204611237039, 43.28230802853765, 44.95208907087922, + 46.617015668930975, 48.28493687474017, 49.947595483379175, 51.60852992158045, 53.274267878703085, + 54.930756521923186, 56.58911723331702, 58.247724169557586, 59.90643313099847, 63.21711650511979, + 66.5316214381956, 69.84766101151745, 73.16184701618997, 76.48000431063961, 79.80082017385081, + 83.12417506874903, 91.45139848253305, + }; + + constexpr amrex::Real Ar40_pf_threshold_T9 = 1.0; + + // K37 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D K37_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 5.8998259568487886e-05, 0.0008466414979199346, 0.004239002719299328, 0.01252226810996871, + 0.027405028223842817, 0.04979251878701065, 0.08001747658600454, 0.11814563657539037, 0.21820336868172133, + 0.3506118001749322, 0.5162435204221628, 0.7148357734025945, 0.9441591742232236, 1.4678743481123135, + 2.063058062429312, 2.6878474937846906, 3.32862668882732, 3.9740583963475986, 4.61512051684126, + 5.2574953720277815, 5.8971538676367405, 6.532334292222349, 7.162397497355718, 8.719317375506371, + 10.254144424149297, 11.77528972943772, 13.287877815881902, 14.793836680757881, 16.300417207752275, + 17.798923559479093, 19.30030749145493, 20.80022687808254, 22.30635977404091, 23.809752473768867, + 25.310272052306832, 26.810040563858717, 28.309054658678445, 29.8103079925781, 31.307321787835626, + 32.80717084850238, 34.301787436774426, 35.79723738452069, 37.292437107264945, 38.78727163696004, + 40.28177958272017, 41.775835421035424, 43.269466760589324, 44.76434744661593, 46.25871602926524, + 47.752806960840836, 49.24628499218007, 50.74304974211006, 52.237910483781405, 55.230551564765726, + 58.22731529792638, 61.22818897098079, 64.23158411728035, 67.23870171305947, 70.25620778616302, + 73.27625736736772, 80.85284251925908, + }; + + constexpr amrex::Real K37_pf_threshold_T9 = 1.0; + + // K38 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D K38_pf_array = { + 0.0, 5.99998200002249e-06, 7.399726213497465e-05, 0.000920576139730191, 0.003245726924920465, + 0.006912056602512853, 0.011464036108238488, 0.016520777324712164, 0.021858355974565473, 0.027366108783188067, + 0.03299464055608423, 0.06242723143316346, 0.09256733072150802, 0.12145273849731941, 0.14817083614722878, + 0.17280558992442463, 0.19603624569779293, 0.21889775064540448, 0.24265044861207402, 0.2986316563605269, + 0.376196943627374, 0.4867826950853164, 0.6382452777065629, 0.8327799841622691, 1.3297240096314962, + 1.925707441737794, 2.5649493574615367, 3.2188758248682006, 3.8753590210565547, 4.530446639792155, + 5.181783550292085, 5.834810737062605, 6.483107351457199, 7.1308988302963465, 8.733916174927524, + 10.325481962595504, 11.904967552746252, 13.478638241321722, 15.048070819142122, 16.612791892794426, + 18.177334485320635, 19.739766355378805, 21.305481456799075, 22.865682177787637, 24.424567811058903, + 25.985956025851298, 27.54000171754138, 29.094276518184568, 30.646556016778717, 32.19952731754505, + 33.749118313969895, 35.29958222394445, 36.841361487904734, 38.39104939593306, 39.93693909642844, + 41.47609047613437, 43.02344639462136, 44.56448158017106, 46.10997076800489, 47.65108943646151, + 49.19585413855318, 50.73383308700513, 52.280212863472094, 53.82234709401009, 56.910700857444475, + 59.99824068025159, 63.09405641236256, 66.1933618910003, 69.30069634113558, 72.4061794786487, + 75.51849933045429, 83.32484576421118, + }; + + constexpr amrex::Real K38_pf_threshold_T9 = 0.01; + + // K39 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D K39_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 8.999959500168733e-06, 7.899687966427683e-05, + 0.00037492970507319685, 0.001242228115069206, 0.00324074311482773, 0.007155339392150637, 0.02497549940339207, + 0.06515645517700097, 0.14035828626592, 0.26283492292119165, 0.44048405748466574, 0.9516578757114463, + 1.6154199841116479, 2.341805806147327, 3.0819099697950434, 3.822098297900159, 4.552823705615882, + 5.278114659230517, 5.991464547107982, 6.70073110954781, 7.402451520818244, 9.137769679141348, + 10.847393451443256, 12.535376392672774, 14.214286677921642, 15.88237331743725, 17.543610725231492, + 19.200005620753362, 20.854294099352817, 22.49991166836442, 24.144265845904748, 25.785860869973376, + 27.419064754004904, 29.051716903765772, 30.680294156410568, 32.30384995039046, 33.9262871173682, + 35.546734315310665, 37.163444987073845, 38.77433112568431, 40.38521516996841, 41.99465308240251, + 43.602934256708785, 45.20773178958638, 46.81250768891467, 48.412555860998935, 50.02010519874517, + 51.62004636364201, 53.221821403330544, 54.82353726967073, 56.42519304166278, 59.626413931292255, + 62.82731751375603, 66.03472890873353, 69.24306722829894, 72.45172149909561, 75.66510280464617, + 78.88122000707529, 86.95005212346398, + }; + + constexpr amrex::Real K39_pf_threshold_T9 = 2.0; + + // K40 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D K40_pf_array = { + 0.024191999499667535, 0.07468901759983144, 0.129277608097973, 0.2196117217402291, 0.28339163165956666, + 0.32892094006837125, 0.36259588054677433, 0.3883643873727769, 0.4086626571617036, 0.42504875718199714, + 0.43855940070456156, 0.48242923565928275, 0.5107784226520357, 0.5368868603387543, 0.5646448353370349, + 0.5950507728250154, 0.6284769174114431, 0.6653396090184116, 0.70618630054511, 0.8022759872822902, + 0.9211660282799778, 1.0657253944671785, 1.2368794912877894, 1.4338251611945765, 1.8931119634883424, + 2.424802725718295, 3.0106208860477417, 3.6270040503958487, 4.26689632742025, 4.919980925828125, + 5.579729825986222, 6.246106765481563, 6.917705609835305, 7.580699752224563, 9.259130536145614, + 10.922334872735375, 12.581078546153629, 14.240778293368619, 15.891195050766397, 17.543610725231492, + 19.19078896564844, 20.84548346967066, 22.489707498190175, 24.134413549461733, 25.779511642294718, + 27.420300084612897, 29.061332362465212, 30.699074051062166, 32.33150148172096, 33.96784684707499, + 35.60003289703503, 37.22662388869538, 38.85892762586648, 40.48681138409133, 42.11436104646848, + 43.74007602223472, 45.36453675099852, 46.991709118372384, 48.61665121734245, 50.23984030138938, + 51.86583239170598, 53.49008538992522, 55.115859721679016, 56.74137145894418, 59.99824068025159, + 63.254986779175205, 66.51749146643262, 69.78558858287506, 73.05723444372333, 76.33596494041667, + 79.62025918089189, 87.85590797804555, + }; + + constexpr amrex::Real K40_pf_threshold_T9 = -1.0; + + // K41 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D K41_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 1.9999980000601777e-06, + 5.99998200002249e-06, 0.00036393376807182477, 0.003268652131435324, 0.01344915332400452, 0.03647174589495947, + 0.07670267442899154, 0.13623049676349777, 0.21476777220358223, 0.31018912771903284, 0.5389476662069677, + 0.7978238124225482, 1.0699871371057603, 1.347648122924268, 1.6288639982592021, 2.2027647577118348, + 2.8094026953624978, 3.4531571205928664, 4.127134385045092, 4.820281565605037, 5.53338948872752, + 6.249975242259483, 6.966024187106113, 7.687080155783135, 8.40737832540903, 10.188666494769791, + 11.951180395901384, 13.704578997256993, 15.444751097694555, 17.17935215308266, 18.909260758771037, + 20.63879668031996, 22.364202416439884, 24.087107432064798, 25.804670201930875, 27.520089555221265, + 29.232426856665384, 30.941564129322572, 32.648300952743476, 34.34882581095224, 36.04728838875482, + 37.74557963854462, 39.4366161948616, 41.13045012691934, 42.82024725280585, 44.50992259592063, + 46.20012186499919, 47.88107819268028, 49.566227926850075, 51.25019889114674, 52.93208594206692, + 54.61386841693988, 56.29522671520275, 57.97673697567797, 59.66018824841086, 63.024212838995304, + 66.3907747239947, 69.76064963452781, 73.13107535752322, 76.51003659773849, 79.88929890253439, + 83.27149978350589, 91.76372635219167, + }; + + constexpr amrex::Real K41_pf_threshold_T9 = 0.8; + + // Ca40 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ca40_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 7.999968000178667e-06, + 5.999820007194575e-05, 0.00028595910979622156, 0.0009795201135002361, 0.0026554711136550003, 0.012259543755687751, + 0.03788039224746407, 0.09067673468466741, 0.18213403921363208, 0.3217356125766328, 0.7608058290337602, + 1.3962446919730587, 2.1610215286722587, 2.990719731730447, 3.8437441646748516, 4.6913478822291435, + 5.53338948872752, 6.359573868672378, 7.170119543449628, 7.965545573129992, 9.903487552536127, + 11.782952602183288, 13.619495674038317, 15.430930542075922, 17.220035729719104, 18.99729410825636, + 20.76248655009969, 22.521669848893136, 24.270005523899226, 26.011532867640945, 27.74434980123555, + 29.476321352084632, 31.197732936068277, 32.914224844666535, 34.624954091151736, 36.333863654231415, + 38.035283956377164, 39.731733245800896, 41.42836770326515, 43.11800497724637, 44.80690706103472, + 46.489956790812066, 48.17156531605966, 49.85167536150043, 51.528165411812424, 53.206317216794574, + 54.876379751045114, 56.54851625769478, 58.222147327767935, 59.88701504514137, 63.22758780498709, + 66.56301133490368, 69.89733262131467, 73.23330598017212, 76.56752368865617, 79.90925964509692, + 83.25073779205746, 91.61564336892684, + }; + + constexpr amrex::Real Ca40_pf_threshold_T9 = 2.5; + + // Ca41 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ca41_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 1.1999928000476974e-05, 0.00012499218815091137, 0.000638795926430769, + 0.002145696346242404, 0.005526699621766927, 0.011894973462942658, 0.02251561049362153, 0.06185868357830669, + 0.133712376245999, 0.24587600013576424, 0.40222252327430746, 0.6022433286186063, 1.1118575154181303, + 1.7316555451583497, 2.4159137783010487, 3.126760535960395, 3.8522730010223722, 4.58700621536042, + 5.3230099791384085, 6.054439346269371, 6.785587645007929, 7.512071245835466, 9.314700387300425, + 11.09133097493218, 12.853175887588712, 14.603967918328545, 16.34123920227253, 18.07959789477347, + 19.809471985270843, 21.538630650230605, 23.256962650903844, 24.97745910011041, 26.691973396931775, + 28.40112933762462, 30.10755951604603, 31.813071258569753, 33.51434350441683, 35.21172086815311, + 36.899630396028705, 38.59576517058902, 40.28497958545084, 41.97126020282781, 43.657001477979065, + 45.3403907086933, 47.022480777039135, 48.704943824488126, 50.38375012474855, 52.062969034285075, + 53.74335868269146, 55.41904598066676, 57.101003302569445, 58.779540069215415, 62.13830684374786, + 65.49842419966656, 68.86312117910919, 72.23028881218502, 75.60111509597088, 78.97602780053396, + 82.35862785838052, 90.83755551171781, + }; + + constexpr amrex::Real Ca41_pf_threshold_T9 = 1.5; + + // Ca42 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ca42_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 3.7999278018272636e-05, 0.0007477203874247538, 0.004505833468546166, 0.015189059965725784, + 0.03683325004534898, 0.07279403789147136, 0.12543898725840857, 0.19599761177679437, 0.3895558916419834, + 0.6404418370685577, 0.9271990195816884, 1.231417626111682, 1.5426776183191466, 2.175887439948088, + 2.8390784635086144, 3.5553480614894135, 4.320151230955794, 5.117993812416755, 5.929589143389895, + 6.744059186311348, 7.554858521040676, 8.357024439263416, 9.152711259139547, 11.104957226643945, + 13.017002861746503, 14.900699826300244, 16.759949537130716, 18.611301103561015, 20.45145711365092, + 22.283513505189738, 24.107656100292186, 25.927272524023206, 27.74434980123555, 29.54941323608997, + 31.351883615895535, 33.14847401239326, 34.93755251486805, 36.727072341502605, 38.50906830846281, + 40.28497958545084, 42.061717312983056, 43.826077808022994, 45.59757157979147, 47.36003467953109, + 49.124395174571035, 50.88001559718322, 52.63787351473559, 54.3921578727971, 56.14580977202569, + 57.89393107199374, 59.64781185280981, 61.39760712293884, 63.14812363363284, 66.64371941021737, + 70.1388092919457, 73.63458260048152, 77.13271052164104, 80.62969896794488, 84.13433193685528, + 87.6379954761489, 96.42089183329814, + }; + + constexpr amrex::Real Ca42_pf_threshold_T9 = 1.0; + + // Ca43 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ca43_pf_array = { + 0.0, 0.0, 0.0, 0.0, 1.4999887501223254e-05, + 0.0001319912887666011, 0.0005588438177012024, 0.0015777546902237412, 0.0034460555242919926, 0.00634780995613472, + 0.010374003467487639, 0.04616768084500721, 0.09909573282124476, 0.15881236868052534, 0.2208336856273185, + 0.2843853943751225, 0.3500623287103761, 0.41860704004977584, 0.49047759976806493, 0.6445586460618848, + 0.8116845982652919, 0.9912085759930275, 1.1838895796659978, 1.3917879934508366, 1.860974538249528, + 2.4159137783010487, 3.054001181677967, 3.751854253275325, 4.486386649998124, 5.241747015059643, + 6.003887067106539, 6.767343125265392, 7.528331766707247, 8.289037098278483, 10.173514689749188, + 12.031719258385396, 13.87377946608825, 15.713130417891806, 17.541203985200926, 19.36847014288589, + 21.186999853178552, 23.007686959312785, 24.82425494188718, 26.636768842584683, 28.44638592921274, + 30.255689708091708, 32.058260093423975, 33.85755778521602, 35.65391798553001, 37.44567745475806, + 39.2392567607031, 41.024937183854775, 42.810069047890096, 44.59498503446448, 46.373785359050025, + 48.15339401049557, 49.931201673603496, 51.70769367070076, 53.48418566779803, 55.258034210459556, + 57.0318968656971, 58.80589591392077, 60.580162225701315, 62.35211906763319, 65.90029863964399, + 69.44911634625386, 73.00150436611479, 76.55628761538925, 80.11566306854864, 83.67696489161405, + 87.24720477896999, 96.19273574016039, + }; + + constexpr amrex::Real Ca43_pf_threshold_T9 = 0.3; + + // Ca44 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ca44_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 1.9999980000601777e-06, + 6.9999755002045995e-06, 0.000647790138655189, 0.0060884278505551085, 0.023396162806309802, 0.05756488677418689, + 0.10993812241082397, 0.17949088756067183, 0.2642378927446781, 0.36195269209196895, 0.5875338551706538, + 0.8403103617230101, 1.1087345519347727, 1.387159486790738, 1.6752307091390963, 2.2925347571405443, + 2.990719731730447, 3.768152635008444, 4.605170185988092, 5.4680601411351315, 6.340359303727752, + 7.2078598714324755, 8.061486866871327, 8.906528917594517, 9.740968623038354, 11.790557201568507, + 13.798364399129303, 15.778418283388158, 17.74143646856141, 19.690441288816306, 21.6315243971233, + 23.56817522076582, 25.493950461412076, 27.420300084612897, 29.33758573909337, 31.25001444257832, + 33.15647405506033, 35.057570188325855, 36.95469017321174, 38.84013512651711, 40.72498501881118, + 42.603412870684906, 44.481484660600096, 46.35180645233125, 48.21961204954836, 50.08417101838493, + 51.94610469414577, 53.80532540644066, 55.66081835181446, 57.51543708066037, 59.36798592992255, + 61.217879601321926, 63.06588553539587, 64.91706842509473, 66.76188245727867, 70.45379681508776, + 74.1464569920416, 77.83376288170811, 81.52264233582204, 85.21545106807586, 88.909220507484, + 92.60417900767432, 101.86762920496444, + }; + + constexpr amrex::Real Ca44_pf_threshold_T9 = 0.8; + + // Ca45 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ca45_pf_array = { + 0.0, 9.999994999180668e-07, 2.999955000897429e-05, 0.0008846086183981477, 0.004762640600834701, + 0.013040600552350269, 0.025433801256810135, 0.04085111409627625, 0.05811606625557327, 0.07626357574145586, + 0.09459901789772161, 0.17792942549107224, 0.24149492997989744, 0.2897960863489623, 0.32910444670804856, + 0.3642492860480231, 0.39858147014183837, 0.43436349815081315, 0.4731380866973712, 0.563797318850743, + 0.6768902498456548, 0.8172214956618721, 0.9887866339122287, 1.1943884205059838, 1.7083778602890038, + 2.341805806147327, 3.0633909220278057, 3.832979798087693, 4.624972813284271, 5.424950017481403, + 6.2324480165505225, 7.038783541388542, 7.835974581721566, 8.635864721133736, 10.616437360392252, + 12.577636201962656, 14.528460365820399, 16.46875252257149, 18.408608162718096, 20.342005417535063, + 22.27295374497474, 24.19833306717502, 26.121428538464166, 28.043130766755382, 29.953408836218774, + 31.866575846702172, 33.77305852151591, 35.67339912110183, 37.57372938161796, 39.46603008006789, + 41.356606966364836, 43.24327868463192, 45.12788286158597, 47.00721330490835, 48.89078032338953, + 50.76123206119325, 52.640628337414434, 54.51338234136689, 56.38697182884258, 58.257774505411085, + 60.12957668231268, 61.997822246099425, 63.867246300596044, 65.73650933097896, 69.47632890977874, + 73.21271934656373, 76.95229191499318, 80.69483827011584, 84.44487214738311, 88.19636825584472, + 91.95141736276395, 101.36253425590745, + }; + + constexpr amrex::Real Ca45_pf_threshold_T9 = 0.01; + + // Ca46 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ca46_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 9.999994999180668e-07, 0.00014998875112496793, 0.0020299382804703303, 0.009711688518965164, 0.027708547886853396, + 0.0589912886537565, 0.10480496136611465, 0.1652254136630779, 0.23964583650702836, 0.42625809451003505, + 0.6547249085676677, 0.9155652687894348, 1.2024039743554868, 1.5124266666370456, 2.199444334074532, + 2.975529566236472, 3.817712325956905, 4.700480365792417, 5.598421958998375, 6.4967749901858625, + 7.3901814282264295, 8.273846932784508, 9.148464968258095, 10.01681623784313, 12.154779351142624, + 14.266586177324491, 16.35711255142882, 18.430631074805532, 20.5001222856322, 22.555847300694722, + 24.60482963488985, 26.647521634360942, 28.68184274076031, 30.70833337647496, 32.724771316735314, + 34.73762725365585, 36.74595130310007, 38.74496043888832, 40.73928556895338, 42.72468387639301, + 44.70846698822147, 46.68297363672277, 48.654391545325296, 50.62434885416344, 52.58839345747222, + 54.54869234397963, 56.50619682581586, 58.46071534940778, 60.415333826354875, 62.36041787044788, + 64.31103945342451, 66.25745308491054, 68.2004827711005, 70.14570587100476, 74.02631268019954, + 77.90955672107764, 81.79044303772, 85.67188261977606, 89.55107439365639, 93.43312772939332, + 97.31833947737081, 107.04708536863575, + }; + + constexpr amrex::Real Ca46_pf_threshold_T9 = 0.9; + + // Ca47 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ca47_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 3.999991999914312e-06, 4.999875004177061e-05, 0.00025596723759136575, + 0.0008616286913632943, 0.0022295127882834835, 0.004855194445094732, 0.009397702934959945, 0.02795557601333165, + 0.06802119956665395, 0.14397825859956298, 0.272140170360843, 0.4651901882033303, 1.0438040521731147, + 1.8066480817218056, 2.6390573296152584, 3.4965075614664802, 4.354141431184346, 5.204006687076795, + 6.056784013228625, 6.902742737158593, 7.745002803515839, 8.59044365315583, 10.691944912900398, + 12.785491060761776, 14.869822587735804, 16.951004773893423, 19.024996710805695, 21.094829393378895, + 23.15687919234686, 25.207397694557446, 27.255600129168762, 29.29494721364672, 31.329850900895654, + 33.35786886351575, 35.38034358058891, 37.39524660113117, 39.40631084536627, 41.40986768952123, + 43.410842908319026, 45.4073448434904, 47.399775008180605, 49.387471436220615, 51.37471183901932, + 53.35823325882042, 55.339003272993224, 57.3135985700474, 59.28917804438575, 61.26345710981825, + 63.23450824783166, 65.20954666981, 67.18043280493549, 69.14521143829519, 73.08670250598024, + 77.02558478045866, 80.96204181122408, 84.90529613977203, 88.84890071725047, 92.79655090032178, + 96.7477946189032, 106.64646288500337, + }; + + constexpr amrex::Real Ca47_pf_threshold_T9 = 1.5; + + // Ca48 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ca48_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 1.9999980000601777e-06, + 2.1999758003515767e-05, 0.00011799303854769136, 0.00044789967796173436, 0.0013331110125183203, 0.007230794680460353, + 0.02608773651323783, 0.07351343831063936, 0.17464298520721055, 0.36049354379714416, 1.0473189942805592, + 2.030776369698555, 3.091042453358316, 4.139955073474153, 5.153291594497779, 6.135564891081739, + 7.098375638590786, 8.04237800517328, 8.977146484808472, 9.903487552536127, 12.185869938212655, + 14.44144898883077, 16.67771143889374, 18.89691492294874, 21.101702272666657, 23.288215194407947, + 25.46819796530966, 27.640971446781716, 29.796640353849437, 31.94450120806732, 34.08307007036577, + 36.212127633088436, 38.33201586434886, 40.44413824296525, 42.548471752653604, 44.64927811683114, + 46.739836498617315, 48.824290582120696, 50.90373212380053, 52.97925976615923, 55.047610621144905, + 57.11207060920913, 59.17406523728524, 61.23330407164756, 63.288212426803526, 65.33948309151667, + 67.39015333591756, 69.43522723409319, 71.48449789813967, 73.52723807296907, 77.6106193303939, + 81.69241833355238, 85.76662798736542, 89.84960879093721, 93.92310255767913, 98.00055758739857, + 102.07921193387759, 112.2939390975542, + }; + + constexpr amrex::Real Ca48_pf_threshold_T9 = 2.5; + + // Sc43 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Sc43_pf_array = { + 0.0, 3.999991999914312e-06, 7.399726213497465e-05, 0.001402016715091746, 0.006077494560027172, + 0.014618625311574956, 0.02619392408247513, 0.039701366851552046, 0.05424762604898671, 0.06923404240290812, + 0.08429886812818674, 0.15680885802481764, 0.22576092300652262, 0.2958459074810483, 0.3697667707656917, + 0.44823145115712454, 0.5308782198173778, 0.6169230478401032, 0.7055430335362739, 0.8880710765749581, + 1.0759156577802853, 1.2697417244621174, 1.4721694886558687, 1.6865639399592258, 2.1598687907924505, + 2.70805020110221, 3.32862668882732, 4.000033882750859, 4.709530201312334, 5.43372200355424, + 6.1675164908883415, 6.907755278982137, 7.649692623711514, 8.387084506069217, 10.221941283654663, + 12.043553716032399, 13.854731271117556, 15.66238932641341, 17.466168799258014, 19.266549011529975, + 21.066855541336487, 22.863332000442682, 24.660956589123135, 26.456607113844157, 28.246206755018783, + 30.037966224246837, 31.826718172410935, 33.61243532718303, 35.39319172306675, 37.17783372452595, + 38.95157468825132, 40.727040517993274, 42.50084370366435, 44.27384529582185, 46.04467724494395, + 47.81300212162426, 49.580999244170386, 51.35001922642895, 53.116460887672716, 54.88370579113718, + 56.64833659297699, 58.41477825422075, 60.18202315768522, 61.94790317892546, 65.48398351551175, + 69.01992367698473, 72.55879287915707, 76.10752570152776, 79.65143053579483, 83.20787408762568, + 86.76634552489736, 95.69246283859356, + }; + + constexpr amrex::Real Sc43_pf_threshold_T9 = 0.01; + + // Sc44 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Sc44_pf_array = { + 0.0002269742393983412, 0.0031360773648045517, 0.011644933806141395, 0.04333052552378946, 0.08501555332458277, + 0.13150271124126245, 0.18241405251609336, 0.23806841930835732, 0.29810704312089553, 0.3615389952381045, + 0.427112438122329, 0.7516424781502317, 1.0300357590702731, 1.2572019587267822, 1.4442790307387219, + 1.6017147655643904, 1.737320882713946, 1.8567953666535306, 1.9643632667330897, 2.155948197191043, + 2.3306112650470467, 2.5008734164967454, 2.675917842102506, 2.8627320541177235, 3.288401887516811, + 3.8022081394209395, 4.396915247167632, 5.056245805348308, 5.752572638825633, 6.47543271670409, + 7.2078598714324755, 7.951559331155252, 8.694502206386648, 9.433483923290392, 11.289781913656018, + 13.132313708257497, 14.966082585563095, 16.796129193708218, 18.627694913336693, 20.459300291111948, + 22.289796248369235, 24.121124317343053, 25.954374453800998, 27.779441121046823, 29.61064232232617, + 31.435458910676758, 33.258642229619184, 35.08110068573605, 36.899630396028705, 38.71776843119307, + 40.53273782221726, 42.34669302383709, 44.15458187499503, 45.968320250941865, 47.77625257941552, + 49.583927503949475, 51.38923993958223, 53.19847403933355, 55.003271502899736, 56.807474814315285, + 58.611946319131704, 60.421097531071624, 62.22806641896321, 64.03077204908877, 67.6420681845107, + 71.26135434682546, 74.88268775873786, 78.5030045414145, 82.13804076350762, 85.77226180508369, + 89.41515614595579, 98.5491235391474, + }; + + constexpr amrex::Real Sc44_pf_threshold_T9 = -1.0; + + // Sc45 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Sc45_pf_array = { + 0.11206002375328801, 0.17527344376285242, 0.21792596334451309, 0.26964003939960474, 0.29931390957263126, + 0.31848063984740066, 0.3319929337921547, 0.3422838876433646, 0.35073926258513727, 0.35821345981599406, + 0.36525820215992044, 0.4031437491714858, 0.45306662961378547, 0.515868089141821, 0.5894242122781399, + 0.6709695652110289, 0.7577549180520095, 0.8474798438272129, 0.9384975256681763, 1.1209831837667918, + 1.3030752389791447, 1.4875766721945045, 1.6794711225810788, 1.8842730148211382, 2.3513752571634776, + 2.9069010598473755, 3.5553480614894135, 4.26549281841793, 5.017279836814924, 5.786897381366708, + 6.569481420414296, 7.352441100243583, 8.140315540159985, 8.92399074475818, 10.872370734529454, + 12.80765263256463, 14.735793311107967, 16.654589021472887, 18.56910074907064, 20.48627687881015, + 22.400362397854327, 24.312324955778138, 26.22043406223961, 28.125717357764657, 30.02891638872692, + 31.928306522147338, 33.82338360540342, 35.71434972471492, 37.60216731693849, 39.487536285288854, + 41.37072996047654, 43.24989027896423, 45.12536079215326, 46.99949125881444, 48.87308074629013, + 50.74304974211006, 52.611317097374155, 54.47897034376916, 56.34384740220882, 58.21173056690968, + 60.07422658722951, 61.94038434651143, 63.80490317002191, 65.66933079322224, 69.39963628899048, + 73.12759709314689, 76.8607768061574, 80.5904782547916, 84.33526534084383, 88.0804491536264, + 91.82896687406007, 101.22818620337637, + }; + + constexpr amrex::Real Sc45_pf_threshold_T9 = -1.0; + + // Sc46 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Sc46_pf_array = { + 0.003453031419087645, 0.025529335610743924, 0.06837614801878886, 0.1779244034695077, 0.28246172009239934, + 0.37204275194479947, 0.4488636205535943, 0.516304387891026, 0.5768661413419504, 0.6321835950518088, + 0.6833150027264343, 0.8956520111492564, 1.062176148324265, 1.2018614770422706, 1.3240186113165557, + 1.4336499253141164, 1.533820648025472, 1.6267020263121013, 1.714008356067204, 1.8775167407115658, + 2.0340828395545376, 2.19174336065431, 2.3573583702113057, 2.536752774669943, 2.9496883350525844, + 3.459466289786131, 4.056988775678332, 4.727387818712341, 5.438079308923196, 6.182084906716632, + 6.937314081223682, 7.709756864454165, 8.484669999710677, 9.259130536145614, 11.202315887874743, + 13.146079904021645, 15.088076153755821, 17.030378361434938, 18.974565857178803, 20.91388619655506, + 22.859796345610373, 24.80080328085213, 26.741859051442646, 28.678340110209106, 30.61163975167249, + 32.5436760016646, 34.47263659240614, 36.39663566584326, 38.31841021229309, 40.23586988141609, + 42.15456746694652, 44.0639275067269, 45.976978313684974, 47.88588204499292, 49.79174960056925, + 51.697148757524154, 53.60131102503544, 55.508902309788624, 57.40797351480577, 59.310342855577794, + 61.21007722103774, 63.113703409746364, 65.01470689465864, 66.91472963920248, 70.71848936931484, + 74.52429016148768, 78.33668332596699, 82.14862287283815, 85.96575666247577, 89.79076829091429, + 93.62072634328813, 103.22476698179288, + }; + + constexpr amrex::Real Sc46_pf_threshold_T9 = -1.0; + + // Sc47 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Sc47_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 1.9999980000601777e-06, 1.2999915500773082e-05, 4.499898753044673e-05, + 0.00012499218815091137, 0.002779134625397586, 0.013581354463297182, 0.03608117457094833, 0.07051903963299788, + 0.11556012236987888, 0.16961449631759493, 0.23138787330600882, 0.3000149588037332, 0.4561899075997755, + 0.6372300548265833, 0.8442244279428793, 1.0784051595721067, 1.3401051241050508, 1.9387416595767009, + 2.624668592163159, 3.370738174177447, 4.151039905898646, 4.955827057601261, 5.768320995793772, + 6.587550014824796, 7.414572881350589, 8.237479288613633, 9.064157861798101, 11.128732492137603, + 13.190022025878143, 15.24821129189832, 17.302885635867483, 19.35284482498281, 21.401299379696308, + 23.44456126479864, 25.476856028052776, 27.51223757993858, 29.539081040852764, 31.558917470512984, + 33.57382049105525, 35.5825804470838, 37.588049435392705, 39.58863240216022, 41.577559936299224, + 43.572379588386816, 45.55904354007037, 47.54010144393796, 49.52055789001688, 51.49843923154722, + 53.472280765291714, 55.44436378865105, 57.412640967853264, 59.38107940666957, 61.348816958769405, + 63.314020310759396, 65.27885846970022, 67.24497132607306, 69.20858105222777, 73.13280996333542, + 77.06031049183248, 80.98925437474897, 84.91857654743993, 88.85148804081543, 92.79153835849823, + 96.7283765330461, 106.61206145828605, + }; + + constexpr amrex::Real Sc47_pf_threshold_T9 = 0.6; + + // Sc48 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Sc48_pf_array = { + 0.0, 3.399942201319051e-05, 0.0004259092877613989, 0.005377515212653478, 0.019277979888872684, + 0.041825011330672415, 0.0705665659134091, 0.10301677123335799, 0.1372614273873569, 0.17197824873535814, + 0.20631229711334, 0.36051097694711604, 0.4828414950750353, 0.5818546608600554, 0.6659059855907019, + 0.7407342403370607, 0.810187273636157, 0.8769322492310935, 0.9429092935114888, 1.0781721381972094, + 1.2247205730704833, 1.3886690393384042, 1.5743875632120956, 1.784694739354238, 2.280339484046726, + 2.8735646395797834, 3.543853682063679, 4.26689632742025, 5.0238805208462765, 5.808142489980444, + 6.6052979209482015, 7.414572881350589, 8.224163512637862, 9.04310445260027, 11.1004357419251, + 13.169246963303179, 15.241025632237447, 17.31504384034729, 19.387664590142037, 21.46042990292313, + 23.526626217852947, 25.590800287401994, 27.650823743224727, 29.709211875706732, 31.759767104867983, + 33.80480721983049, 35.84440285296312, 37.88163819955988, 39.90941442303835, 41.94122791572893, + 43.964228146503814, 45.981279395584366, 47.99761200893623, 50.01251502947849, 52.02296369967138, + 54.03104075514324, 56.04136710865809, 58.047053474095435, 60.04953397463914, 62.0543866593279, + 64.05686715987162, 66.05957490732006, 68.06144172266501, 70.06336958434413, 74.0679853766001, + 78.07222162532204, 82.08113263123573, 86.09173646533633, 90.10830332651574, 94.13023531116937, + 98.15549288868624, 108.25105817296169, + }; + + constexpr amrex::Real Sc48_pf_threshold_T9 = 0.01; + + // Sc49 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Sc49_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 9.999994999180668e-07, 1.6999855501571383e-05, 0.00010499448788586636, + 0.00040791679063214263, 0.0011932877488954208, 0.002917739255911686, 0.006308062274412983, 0.02287144307228401, + 0.064828479095699, 0.1521535440213524, 0.3054399636403559, 0.5364828441433769, 1.2029723039923526, + 2.030776369698555, 2.9069010598473755, 3.7909846770510898, 4.672828834461906, 5.556828061699537, + 6.436150368369428, 7.313220387090301, 8.196987927258897, 9.077951183930438, 11.280993407622939, + 13.482831119581757, 15.681139875758785, 17.872499333642605, 20.05773382341944, 22.233987776441353, + 24.402094955206845, 26.56390749431981, 28.716210384264517, 30.857865110445925, 32.992313281637976, + 35.120992014763345, 37.240137607862096, 39.3509607502831, 41.45648200474599, 43.56037464228999, + 45.6556919105435, 47.74548092074877, 49.83133567726331, 51.91248808334678, 53.99264162220871, + 56.06404381732912, 58.13560687143688, 60.210802122235265, 62.27415752616348, 64.33999341578753, + 66.4039040154365, 68.46506351227887, 70.52682195010264, 72.58909822865239, 76.70801405160499, + 80.8294951552621, 84.9459042076683, 89.06684945168759, 93.1885929880978, 97.31833947737081, + 101.44477235414442, 111.7994472641268, + }; + + constexpr amrex::Real Sc49_pf_threshold_T9 = 1.5; + + // Ti44 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ti44_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 9.999994999180668e-07, 3.999991999914312e-06, + 1.6999855501571383e-05, 0.001148340404701717, 0.009309531525720607, 0.03254753540924965, 0.07466488847560604, + 0.13484203335959946, 0.21026254622742566, 0.2980372718296754, 0.3958328666591973, 0.6142679208183114, + 0.8527628998182619, 1.1003700761873567, 1.3495302680031462, 1.5974157347878484, 2.0992441689760155, + 2.653241964607215, 3.3178157727231046, 4.096009841541162, 4.955827057601261, 5.8522024797744745, + 6.754604099487962, 7.649692623711514, 8.52912176228151, 9.392661928770137, 11.50388472031808, + 13.551545012129809, 15.559479363355981, 17.543610725231492, 19.509242696766975, 21.46520318167579, + 23.4111133307311, 25.348238650230684, 27.28570993064013, 29.214115053023047, 31.136578512914948, + 33.05155611520083, 34.96404413031503, 36.87092029014627, 38.768525594138985, 40.66345978580489, + 42.5550942934141, 44.43725140562327, 46.32172899709398, 48.1999695924906, 50.07347572926818, + 51.94610469414577, 53.81387246701912, 55.680752566715285, 57.54442461753362, 59.40517695824863, + 61.265929298963634, 63.12530895586667, 64.97920020620172, 66.8332366049513, 70.54542713793369, + 74.2537025223952, 77.95660745186365, 81.66206187107178, 85.36960174790313, 89.07514825450228, + 92.78650056446827, 102.07454992077177, + }; + + constexpr amrex::Real Ti44_pf_threshold_T9 = 0.7; + + // Ti45 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ti45_pf_array = { + 0.014448121403123636, 0.0620325713666056, 0.1260791938394823, 0.2487107082084761, 0.3432293557843727, + 0.41344650518308595, 0.4666969180975651, 0.5083676053122761, 0.5420143590805497, 0.5699620799895669, + 0.5937510646762253, 0.6778512926408168, 0.7349702738136049, 0.7820098012733558, 0.8257255567084931, + 0.869456533555718, 0.914943424663271, 0.9631151557176222, 1.01451593160384, 1.1285380138764503, + 1.2600534709382594, 1.4125961660703341, 1.5900047048940393, 1.7956678216588073, 2.295560478057081, + 2.91235066461494, 3.6136169696133895, 4.368181227851829, 5.147494476813453, 5.942799375126701, + 6.739336627357174, 7.533693709848633, 8.32845106681936, 9.116029692504942, 11.069758489678053, + 13.001325049027272, 14.920767389351052, 16.831045458814444, 18.735491483792398, 20.63988422800736, + 22.542964674863708, 24.444128336913398, 26.343666702663562, 28.24078668754944, 30.14062037830692, + 32.02793636309618, 33.91701921043741, 35.80290312205637, 37.68292867358295, 39.56265691575696, + 41.43950705895586, 43.31370778240563, 45.18420129217619, 47.05233374018882, 48.91960076192502, + 50.78790030827541, 52.65021088849543, 54.51338234136689, 56.37718382247642, 58.23757179809357, + 60.09832413880857, 61.95907647952358, 63.82037736660451, 65.68134294967025, 69.39963628899048, + 73.12585341354206, 76.85240855648689, 80.58244608309434, 84.31617168202825, 88.05784932170916, + 91.8009463617279, 101.18931401335983, + }; + + constexpr amrex::Real Ti45_pf_threshold_T9 = -1.0; + + // Ti46 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ti46_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 1.9999980000601777e-06, 1.1999928000476974e-05, 5.199864804680849e-05, + 0.00016498638899716046, 0.005127830177586657, 0.028375578236184102, 0.07824355170108822, 0.15213722561663928, + 0.2427924413032192, 0.3435216169657979, 0.44983280917491447, 0.5591922696928027, 0.7828429928934258, + 1.0118045273110463, 1.2484172538265512, 1.4977424846356286, 1.7666269432232982, 2.388762789235098, + 3.1441522786722644, 4.009149716158869, 4.927253685157205, 5.863631175598097, 6.794586580876499, + 7.709756864454165, 8.61431990214696, 9.503009985939002, 10.3797217315325, 12.524526376648708, + 14.626440774180603, 16.694709015262312, 18.749984491094967, 20.790924485420227, 22.824957987561067, + 24.853620836691544, 26.87812393096283, 28.89514784307423, 30.908165848920724, 32.914224844666535, + 34.91721283063093, 36.909020136378544, 38.903148094345845, 40.88791538629048, 42.867227461730046, + 44.84104006740418, 46.81250768891467, 48.779554688279305, 50.74304974211006, 52.70068640990569, + 54.656905928619864, 56.61011538015679, 58.561575959742754, 60.50906630401758, 62.454976453072895, + 64.39873606366498, 66.34110311419747, 68.28347969067147, 70.22177558974153, 74.10143331066764, + 77.97728358470206, 81.8517761257368, 85.72627669184186, 89.60601954846271, 93.48468553905818, + 97.36609390866671, 107.08829563728241, + }; + + constexpr amrex::Real Ti46_pf_threshold_T9 = 0.6; + + // Ti47 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ti47_pf_array = { + 0.0, 5.99998200002249e-06, 0.00012799180869888955, 0.0027950900936859484, 0.012992234223794327, + 0.03244298848936805, 0.05929856652302475, 0.0906621215714073, 0.12402573164105218, 0.15762492336216627, + 0.19035999513825, 0.3283169294629045, 0.42578655504252316, 0.49829828327395753, 0.5584156394738496, + 0.6138701796581413, 0.6690486289803849, 0.7263357948228005, 0.7870263369384879, 0.921426322126931, + 1.0765224276459853, 1.256307251525747, 1.4648619813867374, 1.7054351289019511, 2.2844211223663744, + 2.9806186357439426, 3.754198920234579, 4.5736795188967205, 5.4116460518550396, 6.257667587882639, + 7.106606137727303, 7.948031990637284, 8.787220328629298, 9.622450022803015, 11.695247021764184, + 13.74937075545973, 15.790979509261131, 17.826473511247325, 19.855765269241687, 21.883286753743164, + 23.909618470109052, 25.927272524023206, 27.94583185576858, 29.96316501116414, 31.968311856761037, + 33.973142534649696, 35.97386092020001, 37.96953257881439, 39.95931139418297, 41.94730696180531, + 43.93143832368082, 45.908985557679316, 47.88588204499292, 49.860584106389545, 51.82935418310357, + 53.80102432454127, 55.76885983422555, 57.73014176332872, 59.695237153105374, 61.65730382997255, + 63.619066671120514, 65.58094522335456, 67.54043553896689, 69.50282052522572, 73.418757429975, + 77.3385625758452, 81.26342272803403, 85.18559810492619, 89.11365351788538, 93.04730961866896, + 96.9862056423482, 106.85107835875655, + }; + + constexpr amrex::Real Ti47_pf_threshold_T9 = 0.01; + + // Ti48 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ti48_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 2.9999954999842446e-06, 1.5999872001381317e-05, + 5.499848755537228e-05, 0.002476929874892573, 0.016499137561843808, 0.05099915113166427, 0.10727198763071945, + 0.18159462597709186, 0.2696133111408461, 0.3683521986417646, 0.4762745508522248, 0.7168856795921161, + 0.986282357773166, 1.2779666699697576, 1.586495128001082, 1.9098762269708058, 2.6026896854443837, + 3.3843902633457743, 4.239886867512759, 5.147494476813453, 6.073044534100405, 7.003065458786462, + 7.933796874815411, 8.855092980028635, 9.764225485202621, 10.671278276091838, 12.89921982609012, + 15.099218330309064, 17.278116567755074, 19.44313167165491, 21.598734574300313, 23.743690723090772, + 25.888051810869925, 28.01628351671919, 30.14062037830692, 32.25599392921282, 34.369173610524506, + 36.47174603269026, 38.56769315181033, 40.65687359295203, 42.73851535554147, 44.813827503879295, + 46.88461098281602, 48.95312345396366, 51.01454649014082, 53.072785824170055, 55.12163007814035, + 57.171584736741536, 59.21712472674569, 61.25849432047612, 63.297968601748885, 65.33527255898032, + 67.37380419791603, 69.40685653696397, 71.4384067909394, 73.47076661388581, 77.5307406512617, + 81.58742688968321, 85.6467240601399, 89.70210265382862, 93.75972521809477, 97.82043142116805, + 101.88472363832375, 112.05664133181233, + }; + + constexpr amrex::Real Ti48_pf_threshold_T9 = 0.7; + + // Ti49 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ti49_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 3.1999488010954404e-05, 0.0006228060160638535, 0.0037678925689193085, 0.012718772407774612, + 0.03066886550492983, 0.0598346628221491, 0.10123170383288739, 0.15489297568607813, 0.29627579045240315, + 0.4768588285826876, 0.6903728356215771, 0.9331140233930827, 1.2032551468714168, 1.8196988379172965, + 2.5257286443082556, 3.299533727885655, 4.115779842942166, 4.955827057601261, 5.814130531825066, + 6.678342114654332, 7.5443321080536885, 8.416267272826277, 9.287301413112312, 11.466881526468821, + 13.643535293224463, 15.815638292924385, 17.98372496875283, 20.147012407857964, 22.302244541895803, + 24.45136600421363, 26.595383626421828, 28.729633404596658, 30.857865110445925, 32.97812864664602, + 35.09266150813712, 37.19903593217655, 39.30095032970844, 41.39418519352061, 43.48384828927199, + 45.568815604804165, 47.649067191080746, 49.7254676761848, 51.797905050421065, 53.86771569903994, + 55.934986705099526, 57.99640974127668, 60.05783277745384, 62.11850421645168, 64.17666835968423, + 66.23368286557663, 68.28789470888059, 70.34450039330869, 72.39898520301466, 76.50410186221868, + 80.61028088208778, 84.72083325453673, 88.83059955286807, 92.94497090544004, 97.06624835002174, + 101.18477371044105, 111.51362565732794, + }; + + constexpr amrex::Real Ti49_pf_threshold_T9 = 1.0; + + // Ti50 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ti50_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 2.999955000897429e-05, 0.0006088146347545532, 0.003720071944073908, 0.012533131164867223, + 0.0301227208794399, 0.05869334633921823, 0.09947694132925564, 0.15293136533681304, 0.29736083177927475, + 0.48939379403997096, 0.7267415183836167, 1.0087284264036824, 1.3349605395953372, 2.1090003439213802, + 3.0007198150650303, 3.9589065913269965, 4.9344739331306915, 5.918893854273146, 6.892641641172089, + 7.859413154693583, 8.81877816903701, 9.769956159911606, 10.718852365820323, 13.064734264567692, + 15.390357025628756, 17.701189588052817, 19.997595464680906, 22.28141045499296, 24.554078786949013, + 26.81457571902411, 29.06610564121787, 31.304786932232435, 33.536382963983115, 35.753689139274954, + 37.966291084890216, 40.16639750860132, 42.35881438436944, 44.54662396277106, 46.72464633312334, + 48.89661124370032, 51.06233715397717, 53.221821403330544, 55.3753709171641, 57.52796334047955, + 59.673627668772525, 61.81597563588291, 63.954867991916494, 66.09177084712054, 68.22423685710861, + 70.35570499232156, 72.4853947142022, 74.61094227854889, 76.73672415748743, 80.98252034256762, + 85.22520724302123, 89.47231455979575, 93.7148396348586, 97.95847564196426, 102.20574213104312, + 106.45540764824067, 117.08934943374955, + }; + + constexpr amrex::Real Ti50_pf_threshold_T9 = 1.0; + + // Ti51 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ti51_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 9.999994999180668e-07, 9.79951983136391e-05, 0.001233239247781134, 0.0059691491288429085, 0.017698454291753117, + 0.03943126790814998, 0.0732207215204051, 0.12009059341812249, 0.18021517325828698, 0.3384388729522186, + 0.5430286938380877, 0.7901509254729685, 1.077605857090216, 1.402994877921199, 2.1471001901536506, + 2.9806186357439426, 3.8628327612373745, 4.770684624465665, 5.676753802268282, 6.593044534142437, + 7.512071245835466, 8.425077902508432, 9.341368634382587, 10.257659366256743, 12.542544882151386, + 14.823468478364253, 17.096421773751928, 19.360688002443837, 21.619353861503047, 23.867418115618676, + 26.1077608997355, 28.339056908982243, 30.559544639789088, 32.778515592742, 34.98346221617213, + 37.18495119229481, 39.37505830186216, 41.559860359199824, 43.742092151949905, 45.91588213673838, + 48.08509946305934, 50.25040643742726, 52.41127572855329, 54.568895051297154, 56.72065725455661, + 58.87296014450132, 61.02094400573438, 63.16674614573084, 65.30963012836698, 67.45300123957722, + 69.59634658323654, 71.73781232708723, 73.87334333541811, 76.01486687104506, 80.29341902052722, + 84.57202732286835, 88.85148804081543, 93.13658820310748, 97.42152371360605, 101.71252021169538, + 106.00509197396715, 116.77598834688008, + }; + + constexpr amrex::Real Ti51_pf_threshold_T9 = 0.9; + + // V46 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D V46_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 9.999994999180668e-07, 1.3999902000873147e-05, 7.399726213497465e-05, 0.000279960807315855, + 0.0008196639836764198, 0.021764427197947987, 0.11724689195703267, 0.318424639786295, 0.5980565266580462, + 0.9067122038937319, 1.2094864760629076, 1.4908631384356164, 1.7470478016727253, 2.191587273108433, + 2.5693851968703596, 2.907210793295783, 3.2258881410095355, 3.5406624973799445, 4.194189897191817, + 4.912654885736052, 5.683579767338681, 6.492239835020471, 7.31986492980897, 8.146129510025405, + 8.97335141383992, 9.792555991828847, 10.60905725309463, 11.416414564589385, 13.407542319637992, + 15.369435760468116, 17.31504384034729, 19.25358986688747, 21.186999853178552, 23.121161109744783, + 25.059248533118886, 26.996142843492578, 28.93121277799503, 30.86577028995304, 32.8015051109667, + 34.73762725365585, 36.66462430940468, 38.59229896261253, 40.517662159811806, 42.43978344690311, + 44.35888233850776, 46.27484541119512, 48.19411820072214, 50.10869063555925, 52.02040941986628, + 53.934016778861185, 55.84425785170976, 57.75524768445979, 59.66018824841086, 61.56831751880511, + 63.47542396889167, 65.3846653143099, 67.28779132325599, 69.19977042254563, 73.01329232186683, + 76.83117633638112, 80.64874716291557, 84.47410178569805, 88.30023511924577, 92.13296252200337, + 95.97460473066972, 105.59733065359863, + }; + + constexpr amrex::Real V46_pf_threshold_T9 = 0.5; + + // V47 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D V47_pf_array = { + 5.799831806492598e-05, 0.0017464740260096463, 0.009732485344379859, 0.056357648868795907, 0.13811537012749586, + 0.23671188375470134, 0.33785770498795076, 0.4340856062023528, 0.5224146112876673, 0.6021781642551665, + 0.6737563884480131, 0.9374767156169274, 1.1057414821365488, 1.2270658944596067, 1.3241582851318665, + 1.4082520176128814, 1.4853425458705931, 1.5589413532003664, 1.6313402944858075, 1.7788893365658949, + 1.9381601955952519, 2.1170521853281072, 2.3219262412761434, 2.557256768298108, 3.122364924487357, + 3.8022081394209395, 4.562262684976814, 5.365976015021851, 6.1903154058531475, 7.02108396428914, + 7.855544677915663, 8.68270762989381, 9.503009985939002, 10.325481962595504, 12.354492650648448, + 14.363631966473962, 16.35711255142882, 18.34595719775643, 20.333181830876548, 22.32265341352701, + 24.309558702285248, 26.299214940092728, 28.28854111884534, 30.270078445543806, 32.25599392921282, + 34.23767130212676, 36.215872955818604, 38.19202867138147, 40.16279390109803, 42.13466631262922, + 44.09977363850004, 46.06165219073408, 48.02717081117777, 49.987441391926374, 51.94610469414577, + 53.90336303777018, 55.8608787329458, 57.81148740278267, 59.76739208256298, 61.72038051520189, + 63.6716502125934, 65.62611419172246, 67.57696928229936, 69.5286284091816, 73.43297874269807, + 77.34114322243869, 81.24799825770839, 85.16312524907413, 89.08132747086823, 93.0035650697061, + 96.93171745706412, 106.77757589676362, + }; + + constexpr amrex::Real V47_pf_threshold_T9 = -1.0; + + // V48 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D V48_pf_array = { + 0.0, 0.0, 0.0, 3.999991999914312e-06, 7.899687966427683e-05, + 0.0005158669177782772, 0.0018662574577085135, 0.004815387389886006, 0.01001567525282967, 0.017986272840354464, + 0.029072276139922016, 0.1320365258677493, 0.29200820124779575, 0.47216815995801087, 0.649705612116619, + 0.8153148120341528, 0.9667746988446067, 1.1048663578108997, 1.2314485647551008, 1.4585022256404934, + 1.663679476400542, 1.8601477579916974, 2.0587064222479734, 2.268195387708017, 2.740840023925201, + 3.3178157727231046, 3.9852734671677386, 4.727387818712341, 5.5093883366279774, 6.317164686747284, + 7.138866999945524, 7.965545573129992, 8.796338932845732, 9.629050706834368, 11.703545824578878, + 13.784019890872903, 15.858028745539512, 17.93292039311737, 20.005825963817422, 22.0765203439881, + 24.147528491539564, 26.21632728028696, 28.278124357987085, 30.339071317030758, 32.40170574039421, + 34.45103748060268, 36.498871178957955, 38.54428974342617, 40.583781708946695, 42.62210500369706, + 44.653334917526756, 46.68297363672277, 48.71196139714677, 50.73383308700513, 52.75856419648366, + 54.779155976780345, 56.79890945145636, 58.81739029334651, 60.83419626403486, 62.84783105358913, + 64.8644246916093, 66.87932771215156, 68.89242730569468, 70.90692912262074, 74.93548594430483, + 78.96592670454746, 82.99742336310989, 87.03936764893845, 91.08175247222985, 95.12869479555737, + 99.1851123058674, 109.34317693231925, + }; + + constexpr amrex::Real V48_pf_threshold_T9 = 0.2; + + // V49 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D V49_pf_array = { + 1.9999800002575608e-05, 0.0006807682247199394, 0.003970108678860819, 0.023610075639111806, 0.05832551029562754, + 0.10071644865266503, 0.14496836540252755, 0.1878470961784134, 0.22787394533780678, 0.26454803215636385, + 0.2978598526839025, 0.42373387991066724, 0.5084554170439798, 0.576325120518554, 0.6395739206040227, + 0.7038645439011408, 0.7715594829216998, 0.8434335463913165, 0.9195645670229159, 1.083965208669704, + 1.2640448028860278, 1.460981290645445, 1.6776302502461233, 1.9174417421166787, 2.4765384001174837, + 3.139832617527748, 3.8877303128591016, 4.6913478822291435, 5.529429087511423, 6.3835066348840055, + 7.24422751560335, 8.104703468371108, 8.964439833539357, 9.825526011066415, 11.964001084330445, + 14.100689500197937, 16.222455666282563, 18.34811005111753, 20.468373587317622, 22.587345967754093, + 24.702947490848373, 26.81457571902411, 28.923004797577196, 31.025529509439906, 33.1240825592691, + 35.216809937660585, 37.30509550413687, 39.3908066588303, 41.466334301189, 43.54454960114559, + 45.61629287539968, 47.68290126409653, 49.74805332883355, 51.81060363375819, 53.86771569903994, + 55.92473020493233, 57.97673697567797, 60.03272685632276, 62.082058596531226, 64.13270523626312, + 66.18076046412229, 68.22892070642104, 70.27751757274977, 72.32404378172255, 76.41709048522904, + 80.51575470859567, 84.61404263495265, 88.71314627813801, 92.82124351291215, 96.93171745706412, + 101.04324684404033, 111.3569935866493, + }; + + constexpr amrex::Real V49_pf_threshold_T9 = -1.0; + + // V50 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D V50_pf_array = { + 0.0, 0.0, 1.9999980000601777e-06, 0.00013799047887590483, 0.0012811789396579938, + 0.005024356753747678, 0.012750367485264199, 0.02511008641165774, 0.04204268916929097, 0.0630151739331708, + 0.08726609454635827, 0.2324061209613754, 0.3793353466472243, 0.5115881329819346, 0.6291621062424252, + 0.7350364453446224, 0.8321679787904036, 0.9230303694089167, 1.0096546553133077, 1.176716195003463, + 1.3443099725313379, 1.5210374256234664, 1.7138532415438228, 1.9281534274660543, 2.4336133554004498, + 3.039749158970765, 3.7400477406883357, 4.500920164614292, 5.303304908059076, 6.129050210060545, + 6.966024187106113, 7.820037989458753, 8.679312040892672, 9.539644119118783, 11.711776323715394, + 13.883169206438088, 16.06574917058611, 18.247517124943176, 20.428894776343835, 22.60730058228364, + 24.78025461262474, 26.949802506233876, 29.114895805387302, 31.27385663154108, 33.42707886669392, + 35.57196087825634, 37.71683022525863, 39.851982373952474, 41.98302504440739, 44.106791211158686, + 46.234023416674866, 48.35128244385466, 50.46692146191056, 52.579659777503466, 54.689341204373015, + 56.79675659809526, 58.902256513989755, 61.00824542239725, 63.10980476933071, 65.20954666981, + 67.3114610673419, 69.41402502644259, 71.51116614522182, 73.61015228297462, 77.80824315550001, + 82.00875566176454, 86.21087912050875, 90.41600426585802, 94.62913236407009, 98.84392307936805, + 103.06468156644581, 113.64644938820155, + }; + + constexpr amrex::Real V50_pf_threshold_T9 = 0.15; + + // V51 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D V51_pf_array = { + 0.0, 0.0, 0.0, 2.9999954999842446e-06, 6.899761960959409e-05, + 0.00044490101686393705, 0.0015338230917156088, 0.0037111053223233886, 0.007193067747993061, 0.012022439977217384, + 0.018115911472848474, 0.061483546952252346, 0.11289287607023754, 0.16347167549113806, 0.21147412766739473, + 0.257584397544438, 0.30308533081774675, 0.3493130112907647, 0.3975525529124751, 0.5049713207256833, + 0.634840401718883, 0.7959456168937676, 0.9954434436187818, 1.2375747811335471, 1.8468787684491346, + 2.5952547069568657, 3.4210000089583352, 4.294560608892605, 5.19295685089021, 6.09807428216624, + 7.01211529430638, 7.9229859587111955, 8.837826364007704, 9.752664662801545, 12.037653993905211, + 14.322328160332725, 16.600521800202614, 18.87810559099124, 21.141976171804597, 23.404287365660704, + 25.657739770077104, 27.901048253141607, 30.132457067667758, 32.367219564323044, 34.587566559080116, + 36.797409600375545, 39.00238301657699, 41.20190909090149, 43.39386937493932, 45.5800969492682, + 47.761889675415155, 49.93943217274001, 52.11082505546271, 54.27854275028949, 56.443769427235715, + 58.60490403650629, 60.76330044240182, 62.91648545832721, 65.07121910492198, 67.21965351808878, + 69.3702224037842, 71.51989982519058, 73.66963773626081, 75.81688941717854, 80.11082824849406, + 84.40378528728058, 88.6951817231627, 92.99129497711428, 97.29078952560258, 101.5913758283363, + 105.89973145830933, 116.69160095460254, + }; + + constexpr amrex::Real V51_pf_threshold_T9 = 0.2; + + // V52 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D V52_pf_array = { + 0.18940060774925221, 0.3771259884180262, 0.5200947325410685, 0.7049472846756959, 0.8194956501484547, + 0.9011978045095426, 0.965000130877407, 1.0175020113448263, 1.0620713949224927, 1.100683142968455, + 1.1346326939871234, 1.2599065352144316, 1.3456249591234708, 1.4141920757811612, 1.475053584735282, + 1.5326823461865613, 1.5894931310345048, 1.6470089964663683, 1.706348628877849, 1.8341051024211679, + 1.9791846470310523, 2.147112339612556, 2.342404953545749, 2.568128989377695, 3.1135153092103742, + 3.770459441106359, 4.514150787600923, 5.313205979041787, 6.150602768446279, 7.01211529430638, + 7.882314918980268, 8.764053269347762, 9.655026193237628, 10.545341438708522, 12.791077667470416, + 15.048070819142122, 17.305939073354374, 19.568083196789907, 21.825205915707194, 24.080162959711988, + 26.329067903242407, 28.57102837442002, 30.809074946276493, 33.03819288738867, 35.26148237771218, + 37.477938316976285, 39.692067989408464, 41.89760729325304, 44.09977363850004, 46.29856193781244, + 48.49404889525012, 50.67667467316519, 52.864046954058395, 55.04637069538159, 57.2263534662833, + 59.40358839556349, 61.57920691860438, 63.752891447933735, 65.92633561342699, 68.09672353680965, + 70.26844035459865, 72.43792817696327, 74.61094227854889, 76.77830058433317, 81.12110650585377, + 85.46567557799276, 89.81076895762095, 94.15880868361342, 98.51522198747172, 102.87609039663826, + 107.2433332351279, 118.1926455717301, + }; + + constexpr amrex::Real V52_pf_threshold_T9 = -1.0; + + // Cr48 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Cr48_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 1.9999980000601777e-06, 1.8999819502277547e-05, 9.099585975123644e-05, 0.0003069528851426514, + 0.0008086729358847522, 0.01474081832149851, 0.06183142275093884, 0.143112843568674, 0.24629820135844444, + 0.35917332039555183, 0.47390849532294727, 0.5864963884088562, 0.6953427684917824, 0.9015222121689769, + 1.0969652664046097, 1.2900003975589762, 1.4908676419897087, 1.7117063726116648, 2.263844264677615, + 3.0155349008501706, 3.929862923556477, 4.927253685157205, 5.934894195619588, 6.937314081223682, + 7.9157131993821155, 8.87626525995469, 9.820105943597078, 10.745054738214346, 13.005829561148378, + 15.211755249937333, 17.385043254445645, 19.535822334571687, 21.678777281973847, 23.809752473768867, + 25.938201594555398, 28.05628885133289, 30.172623109393093, 32.28498146608607, 34.38911562035628, + 36.4875396129484, 38.58007173604297, 40.66782660497123, 42.74944442607366, 44.827526348237456, + 46.901852789250526, 48.96947259196519, 51.028435602301485, 53.090485401269454, 55.14550841560114, + 57.19790204505891, 59.24731569902484, 61.29272749211836, 63.33917887039555, 65.38064116401017, + 67.42207093888587, 69.45598922554161, 71.49346656812241, 73.53190008607488, 77.60072805291516, + 81.66888783614219, 85.73214181129426, 89.79881662409711, 93.86470398150517, 97.93528619704534, + 102.00689127229795, 112.19931011668629, + }; + + constexpr amrex::Real Cr48_pf_threshold_T9 = 0.5; + + // Cr49 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Cr49_pf_array = { + 0.0, 0.0, 0.0, 3.599935201547656e-05, 0.0004998750416509929, + 0.0024190716852989735, 0.0069100703769868176, 0.014591031275038784, 0.02549326759035296, 0.039243789810090184, + 0.055277646304969466, 0.15107681749220161, 0.24582360347740795, 0.32948934142970654, 0.40412020413010924, + 0.47317422259826797, 0.5392801271735718, 0.6041793454991995, 0.6690547753091058, 0.8024431919853905, + 0.947119019240504, 1.1122982077726729, 1.3080119573685711, 1.5426652173876227, 2.1377104498038118, + 2.8791984572980396, 3.7062280924485496, 4.5736795188967205, 5.455321115357702, 6.343880434126331, + 7.22983877815125, 8.116715624819111, 9.002085433155724, 9.883284845218608, 12.083905011555967, + 14.27293540500315, 16.44739939810092, 18.627694913336693, 20.790924485420227, 22.956500851805664, + 25.114004412222314, 27.265737797453216, 29.411045328938183, 31.551012291005872, 33.683110284852965, + 35.808536939774626, 37.92992344071934, 40.04410793084305, 42.15456746694652, 44.25593436925532, + 46.359186559628874, 48.44959713267929, 50.54482254206038, 52.63234099716586, 54.71731505641542, + 56.80105767999465, 58.881035558506866, 60.959135718362504, 63.03689799852262, 65.10895943290483, + 67.18043280493549, 69.25987434661532, 71.32884458842787, 73.40036006483528, 77.54345268685006, + 81.68575164219419, 85.83222526985124, 89.97477193389122, 94.12891691941611, 98.2834203734144, + 102.44514620322911, 112.86589026986152, + }; + + constexpr amrex::Real Cr49_pf_threshold_T9 = 0.2; + + // Cr50 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Cr50_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 9.999994999180668e-07, 1.0999939500426909e-05, 5.799831806492598e-05, 0.0002049789903712776, + 0.0005638410117767721, 0.011607373041716133, 0.05189011625394426, 0.1250860811612929, 0.22153906481389443, + 0.33024503061498645, 0.44392655873561576, 0.5591270971169422, 0.6749322921390403, 0.9106259170653247, + 1.1584780343756007, 1.425283316650218, 1.7156303019888717, 2.0329611204991678, 2.7536607123542622, + 3.597312260588446, 4.520701029361642, 5.488937726156687, 6.467698726104354, 7.444248649496705, + 8.414052432496725, 9.375854810453756, 10.31890299149746, 11.260610536355738, 13.578521599828012, + 15.86578072234383, 18.134331116734362, 20.38919072492492, 22.635766923870595, 24.874305742845056, + 27.10508185435251, 29.328469905685363, 31.543044121356694, 33.7513185348795, 35.952199423418826, + 38.146987945957164, 40.33179000329483, 42.51124241088525, 44.6852101260572, 46.85370344535294, + 49.011806955791755, 51.16969567229767, 53.317131583134866, 55.469056401241424, 57.60384803800442, + 59.746174089468134, 61.88211543838745, 64.013516718998, 66.14385590718683, 68.27011646285929, + 70.39663840124781, 72.52117088736748, 74.64207319714406, 76.7646329456045, 81.00258790561843, + 85.23486915393298, 89.47370248507059, 93.71083962952525, 97.94694813679318, 102.18921282909191, + 106.43173790415476, 117.05496209144007, + }; + + constexpr amrex::Real Cr50_pf_threshold_T9 = 0.5; + + // Cr51 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Cr51_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 2.9999954999842446e-06, 1.2999915500773082e-05, 4.299907552651673e-05, + 0.00011599327252025839, 0.002327289759091079, 0.0113325434738611, 0.031322294917571776, 0.06453977113678988, + 0.11139735720724636, 0.17106426390453064, 0.24208777106834797, 0.32286000920135094, 0.5080313233423929, + 0.7183913483328613, 0.9505677064031908, 1.2045518366543564, 1.4818013397398764, 2.1077860146889784, + 2.833213344056216, 3.6270040503958487, 4.472780997942346, 5.3471075307174685, 6.240275845170769, + 7.138866999945524, 8.048788283534199, 8.960596138864794, 9.87302834505142, 12.160028707028767, + 14.446782334806132, 16.733281290048552, 19.0140075892301, 21.28857964599647, 23.556479181002626, + 25.817016037753174, 28.069276046859702, 30.31204264464284, 32.551002041756675, 34.77779329538119, + 36.9983652367144, 39.211605229372594, 41.41504100680145, 43.615585374262345, 45.809630298681185, + 47.999039560927415, 50.182056859626044, 52.36162013810743, 54.538435843812444, 56.71131139213838, + 58.878350993136195, 61.04586741418684, 63.21007422249438, 65.37254395377755, 67.53108967654866, + 69.69273842891161, 71.85014151206116, 74.00480647497858, 76.15926137592695, 80.47394443853565, + 84.78466815198341, 89.09762111035434, 93.411736539412, 97.73102483345247, 102.05090815771473, + 106.37633912476498, 117.22111871138068, + }; + + constexpr amrex::Real Cr51_pf_threshold_T9 = 0.6; + + // Cr52 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Cr52_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 7.599711214628198e-05, 0.0012272466247001783, 0.006598184028227124, 0.020649327567845918, + 0.047656188128229075, 0.09108855399586441, 0.1533972532155531, 0.23578333166064555, 0.45855458838756774, + 0.7440132837143127, 1.0701174735248216, 1.420718492893471, 1.7888158075708274, 2.5726122302071057, + 3.4404180948154366, 4.37449836825309, 5.351858133476067, 6.343880434126331, 7.3395376954076745, + 8.335671314792847, 9.323669057283185, 10.312280450736967, 11.292278793854607, 13.728862751238601, + 16.147654453199863, 18.55170900635877, 20.94640938826062, 23.325955522390796, 25.69307913652241, + 28.049731450786734, 30.39103105596147, 32.724771316735314, 35.05160002133935, 37.36609001683971, + 39.66867510983376, 41.96532546730799, 44.24989205479936, 46.527936038877286, 48.7989727741364, + 51.06233715397717, 53.317131583134866, 55.569526931605054, 57.81926954322472, 60.05783277745384, + 62.300825773245634, 64.53065151195726, 66.75985405901727, 68.98653339143421, 71.21053509842923, + 73.43169422100571, 75.65123295678201, 77.86934281414074, 80.08464017253665, 84.51442983108502, + 88.93806866182166, 93.36186470937183, 97.78698348710051, 102.20983211629465, 106.63675407087642, + 111.06640875453955, 122.15922756140867, + }; + + constexpr amrex::Real Cr52_pf_threshold_T9 = 1.0; + + // Cr53 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Cr53_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 9.999994999180668e-07, 8.999959500168733e-06, 4.399903202832672e-05, 0.00014099006043425492, 0.00035093841391071367, + 0.0007317322186692761, 0.007072927769880801, 0.024449656249601468, 0.05597193247144527, 0.10280294786778453, + 0.16454362841088632, 0.23989997501230728, 0.32725344527062095, 0.42500626331499985, 0.6463291205142293, + 0.8958908622642854, 1.170006319507661, 1.4680510606083397, 1.7906990738742408, 2.509599262378372, + 3.3178157727231046, 4.188138441508461, 5.099866427824199, 6.0330862217988015, 6.975413927455952, + 7.930206206684683, 8.884610231886873, 9.84161214881804, 10.797532675462964, 13.19188944005294, + 15.58195221920804, 17.96969512054239, 20.347844850186622, 22.719325769687195, 25.08125589379205, + 27.43257017720471, 29.775782123729027, 32.108357930406754, 34.43230415040017, 36.74705080843349, + 39.05292718251161, 41.351121489088165, 43.64264452237635, 45.92613863690557, 48.20346406314037, + 50.475350169245615, 52.742544137299475, 55.003271502899736, 57.26081587046948, 59.51481403067372, + 61.76483227777272, 64.01193318739236, 66.25745308491054, 68.49951841636192, 70.73958315237464, + 72.97952545939602, 75.21743734204763, 77.45318241691582, 79.6890761354112, 84.16001095127297, + 88.62963564526484, 93.10035235465344, 97.57146386089696, 102.05090815771473, 106.528679849347, + 111.01266447853287, 122.25212130830137, + }; + + constexpr amrex::Real Cr53_pf_threshold_T9 = 0.4; + + // Cr54 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Cr54_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 4.999987500074422e-06, 2.6999635506560113e-05, 0.00010599438239691326, + 0.00030995195992805755, 0.007805457999655908, 0.038823518897470266, 0.10042797063445275, 0.18730743992882581, + 0.2904806527702199, 0.40265382682406853, 0.5194025366648215, 0.6386440031634943, 0.8832376477342778, + 1.1402445148620148, 1.4182401181421282, 1.7265207919272412, 2.072764801776177, 2.8903717578961645, + 3.8437441646748516, 4.875197323201151, 5.932245187448011, 6.993932975223189, 8.048788283534199, + 9.093806555720231, 10.130623125119875, 11.160527077798756, 12.185869938212655, 14.71972870860416, + 17.236510566922608, 19.73708897760809, 22.222888883373304, 24.69920216811821, 27.16580600341461, + 29.62163144390177, 32.06658851753046, 34.50211241053909, 36.927539184145786, 39.342797439643945, + 41.74663626634316, 44.14789288684423, 46.534128009125205, 48.91390274081038, 51.288143822710865, + 53.65759186093403, 56.01816421157843, 58.37555754106747, 60.72587403688271, 63.06995886078351, + 65.41238986232474, 67.74952733682545, 70.08185439901824, 72.41332236616107, 74.7439794779338, + 77.07049733713947, 79.39314999318434, 81.71540785177709, 84.0372861477058, 88.67688853011538, + 93.3123640655988, 97.94984249481955, 102.58630968752956, 107.22182702990695, 111.86433488633267, + 116.50549867496868, 128.13508421085066, + }; + + constexpr amrex::Real Cr54_pf_threshold_T9 = 0.6; + + // Mn50 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Mn50_pf_array = { + 0.0, 0.0, 1.8999819502277547e-05, 0.0015627782257373031, 0.014220408999946248, + 0.05267593809505302, 0.1232763641057352, 0.2208833990933436, 0.33492318030990115, 0.4553822560403851, + 0.5752596394430565, 1.0834245364365287, 1.4428200053589308, 1.709907125149808, 1.9206037695771465, + 2.0949654203296024, 2.2453021066893872, 2.379787864170373, 2.5041471092935526, 2.738134172861465, + 2.970003714556386, 3.213558151069494, 3.4772103500625318, 3.765413459638891, 4.415219602029645, + 5.153291594497779, 5.950642552587727, 6.785587645007929, 7.640123172695364, 8.503094267036737, + 9.375854810453756, 10.243524855321837, 11.116915515632819, 11.9891596439666, 14.17318500223609, + 16.35711255142882, 18.534009429259367, 20.71321550109291, 22.89003120679792, 25.06577171345801, + 27.239458912989374, 29.40935756482446, 31.574542788416064, 33.73357971054212, 35.88944357838742, + 38.041326270833125, 40.18775063307189, 42.33029921406142, 44.46695656003718, 46.5998232683906, + 48.732723388595204, 50.85572290461417, 52.97925976615923, 55.10421814666353, 57.22354447567225, + 59.33957967576281, 61.45440472133197, 63.568514391957684, 65.68134294967025, 67.79019837655639, + 69.90172823278772, 72.01140965965728, 74.12097790674062, 76.23216814673503, 80.45006610107485, + 84.67139979668156, 88.8944782257468, 93.12225103996107, 97.35567714780846, 101.5913758283363, + 105.83226647100042, 116.4668838388409, + }; + + constexpr amrex::Real Mn50_pf_threshold_T9 = 0.15; + + // Mn51 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Mn51_pf_array = { + 0.0, 0.0, 9.999994999180668e-07, 0.00013899034039500225, 0.001371059667992007, + 0.005417299897942013, 0.013501443923597083, 0.02583439952789853, 0.0418873468309038, 0.060801547340661864, + 0.08168044277606486, 0.19327880627694072, 0.29229193070917964, 0.3745845060072903, 0.44569620808461924, + 0.510841423641172, 0.5736229423899079, 0.6364096193255848, 0.7008211601140627, 0.8391137474239475, + 0.9961154465581769, 1.1782339846517378, 1.391004998624912, 1.6384188778571893, 2.2375130962503307, + 2.9652730660692823, 3.7773481021015445, 4.6443908991413725, 5.53338948872752, 6.434546518787453, + 7.346010209913293, 8.25582842728183, 9.170559501964338, 10.085809109330082, 12.371587084007746, + 14.652758082497977, 16.933460464242515, 19.209138104316636, 21.479387816667746, 23.743690723090772, + 26.001380496176928, 28.251597603653657, 30.498920017972655, 32.73088754375274, 34.96404413031503, + 37.18495119229481, 39.39858879927236, 41.61204611237039, 43.81677541536068, 46.01814507635207, + 48.21272338855317, 50.40326928707009, 52.58984168364859, 54.77265188881117, 56.95213804730865, + 59.12906787135451, 61.30229694313451, 63.47542396889167, 65.64486474106785, 67.81524440848247, + 69.98177094046126, 72.1502461045115, 74.31399475265133, 76.48000431063961, 80.80558963440855, + 85.13695944443101, 89.46813918838527, 93.80085250951863, 98.13648994156063, 102.47689490154369, + 106.82313242836598, 117.7094714792946, + }; + + constexpr amrex::Real Mn51_pf_threshold_T9 = 0.15; + + // Mn52 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Mn52_pf_array = { + 0.0, 0.0, 0.0, 0.0, 6.9999755002045995e-06, + 6.099813957574563e-05, 0.00026496489370193545, 0.0007667060058193819, 0.0017175242105127281, 0.003257687967804059, + 0.0055078041609035976, 0.031055739524086995, 0.0867142495183009, 0.17168182168960952, 0.27652430544087403, + 0.3908359552851754, 0.5072650925912114, 0.6218155047726106, 0.7328850676480372, 0.9446355937046071, + 1.1480942769640976, 1.3521614033615421, 1.565582363001976, 1.7958074318279333, 2.322387720290225, + 2.9601050959108397, 3.6888794541139363, 4.483002552013883, 5.3230099791384085, 6.186208623900494, + 7.064759027791802, 7.962067308753666, 8.863615758890619, 9.769956159911606, 12.05524975579559, + 14.346138809026444, 16.64872390202049, 18.945409272887346, 21.242059630361577, 23.532668532308907, + 25.817016037753174, 28.09475513216069, 30.36538862534813, 32.62823338969266, 34.88943326652385, + 37.13403110186755, 39.38296348136927, 41.62048498101626, 43.84442694669119, 46.071504487177094, + 48.29559795652628, 50.5130016754493, 52.72626325169534, 54.93631209176779, 57.14303283481309, + 59.34801854440868, 61.54990079201888, 63.748776215788624, 65.94714561294077, 68.14614842013717, + 70.34167951696705, 72.5370190796075, 74.73004197009003, 76.92531532729498, 81.31318423759309, + 85.70246604314814, 90.10092321921812, 94.49216650899693, 98.89350095527573, 103.29887495394661, + 107.70900568985346, 118.76420576179066, + }; + + constexpr amrex::Real Mn52_pf_threshold_T9 = 0.3; + + // Mn53 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Mn53_pf_array = { + 0.0, 0.0, 0.0, 0.0, 1.2999915500773082e-05, + 0.00011599327252025839, 0.0005018740401528017, 0.0014249842275462746, 0.0031161397893524987, 0.00572259467634159, + 0.009298633395988189, 0.03955815621296753, 0.0810664911206816, 0.12542751976808192, 0.17033163071315469, + 0.2160746252243223, 0.2635750696085451, 0.31378466616118106, 0.36761161987678403, 0.4897413034521168, + 0.6374225031344518, 0.817987477287069, 1.0373476912776525, 1.2985742785122956, 1.9401794743463283, + 2.70805020110221, 3.55820113047182, 4.449685283147696, 5.365976015021851, 6.295266001439646, + 7.22983877815125, 8.177515823846075, 9.123692565250511, 10.073230327123223, 12.4529327234617, + 14.83796148566682, 17.220035729719104, 19.596254073756604, 21.964534426016044, 24.323314077353732, + 26.673908389534137, 29.017315477048438, 31.34945937228403, 33.67127582720596, 35.98569537784701, + 38.29297531514526, 40.5908655638351, 42.88161619918215, 45.164969930248304, 47.442983762511844, + 49.71526350601056, 51.981291003270805, 54.24316491120784, 56.50331082092673, 58.75551488962842, + 61.00824542239725, 63.254986779175205, 65.50200202101443, 67.74574661398555, 69.98581134999826, + 72.22600615039302, 74.46204785261045, 76.70314786195382, 78.93499640385609, 83.41185714120081, + 87.88349593456438, 92.35026379769336, 96.83079153847417, 101.30571192004075, 105.78766599111614, + 110.2743402306028, 121.51444904870002, + }; + + constexpr amrex::Real Mn53_pf_threshold_T9 = 0.3; + + // Mn54 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Mn54_pf_array = { + 0.0012212539657074758, 0.010170108680449982, 0.029254872564453287, 0.0847666093829921, 0.14764039095328177, + 0.21050400776774592, 0.2709450364253413, 0.32820602256121284, 0.38221490474525666, 0.4331561477491199, + 0.48127610548135025, 0.6869374399677972, 0.8493296520427519, 0.9844034828353035, 1.1030573945303153, + 1.2119028780113756, 1.3147771454411485, 1.4139773760456962, 1.5110216738195696, 1.703074875009071, + 1.898660697378598, 2.1047115485216694, 2.3275752222975403, 2.572565129861261, 3.1354942159291497, + 3.8133070324889884, 4.579852378003801, 5.4116460518550396, 6.282266746896006, 7.177782416195197, + 8.098642843759418, 9.026417533815254, 9.961756460660103, 10.907789161732996, 13.286181462633724, + 15.679590688771956, 18.078190435005588, 20.47608570780396, 22.87036602710006, 25.258013558637955, + 27.640971446781716, 30.010567250058724, 32.3759532442918, 34.729396754519335, 37.07247320886812, + 39.41397371811183, 41.74663626634316, 44.07842051402947, 46.39529156427099, 48.71196139714677, + 51.02151515945692, 53.32410025245096, 55.626685345445004, 57.92230176912296, 60.217869289458356, + 62.51338721522931, 64.80168635097588, 67.08977843666736, 69.3702224037842, 71.6577696194137, + 73.93736519418304, 76.22432496927401, 78.5030045414145, 80.78932911353677, 85.35265218958935, + 89.91414731207479, 94.482949853892, 99.05037971189725, 103.62627951558522, 108.20638573291009, + 112.7931127731794, 124.2904047774877, + }; + + constexpr amrex::Real Mn54_pf_threshold_T9 = -1.0; + + // Mn55 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Mn55_pf_array = { + 9.999994999180668e-07, 7.799695815819724e-05, 0.0008955988316133736, 0.010177037826467497, 0.03397814874205114, + 0.06930029089542918, 0.11045223084707702, 0.1530403493527416, 0.1944732582314714, 0.23346767368476204, + 0.26952242971698476, 0.40840677715407325, 0.5004800928315567, 0.5698014517745363, 0.6293864901669247, + 0.6858168794293824, 0.7425566767132488, 0.8016490569734444, 0.8645324873087574, 1.006433035726345, + 1.1773375134574695, 1.3856649130590184, 1.6378737542944986, 1.9367607059773246, 2.6602595372658615, + 3.520460802488973, 4.447346100794524, 5.4116460518550396, 6.396929655216146, 7.383989457978509, + 8.38022733634308, 9.375854810453756, 10.373491181781864, 11.36789969291997, 13.854731271117556, + 16.34123920227253, 18.82614585206053, 21.305481456799075, 23.77253887742843, 26.236694583111394, + 28.692277618052888, 31.139577015911204, 33.579056105109196, 36.008952240011276, 38.43263542971116, + 40.8450516818587, 43.2515363698709, 45.65122429328379, 48.04231218785414, 50.42871595273125, + 52.809796364308646, 55.18516118752114, 57.55558658019899, 59.925481325969166, 62.283126196146235, + 64.64633591095672, 66.99811124814154, 69.35518452641965, 71.70222138198453, 74.05428653224195, + 76.4040184036617, 78.7516271780297, 81.09729585716005, 83.44118475629533, 88.1295053106156, + 92.82124351291215, 97.51057549122194, 102.20163534909047, 106.90099275013826, 111.59908688674317, + 116.30482797950653, 128.09846684761243, + }; + + constexpr amrex::Real Mn55_pf_threshold_T9 = -1.0; + + // Fe52 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Fe52_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 3.999991999914312e-06, 2.1999758003515767e-05, 8.699621571943491e-05, + 0.00026096594542543384, 0.006963697081509575, 0.035510955889664755, 0.09259923578662213, 0.17220724583011637, + 0.26453344854718897, 0.3618510248890247, 0.45961295770683647, 0.5556743162453767, 0.7407490199034046, + 0.9195135330669838, 1.1002529420599954, 1.2949715212992456, 1.5184586008666647, 2.1077860146889784, + 2.9231615807191558, 3.893859034800475, 4.9344739331306915, 5.988961416889864, 7.038783541388542, + 8.06777619577889, 9.08704215563169, 10.094107912144779, 11.094375117313408, 13.559327152571864, + 15.990262279448435, 18.397412117013012, 20.790924485420227, 23.165612872315616, 25.527286881679668, + 27.88566333430213, 30.226275822885412, 32.55827480108575, 34.88236609930076, 37.1920183595179, + 39.494603452511946, 41.7901213782829, 44.07842051402947, 46.359186559628874, 48.63191868947324, + 50.895888946339504, 53.15830799760822, 55.41046223697537, 57.65993750465547, 59.90643313099847, + 62.14550481827019, 64.3824578963053, 66.61597196533687, 68.84562073247407, 71.07361272256216, + 73.2999973546708, 75.52327260920696, 77.74488863966732, 79.96498972270547, 84.40157534162978, + 88.83586272291235, 93.26655452956751, 97.69811509936366, 102.1291089050222, 106.56601751978464, + 111.00031864271057, 122.10466857715824, + }; + + constexpr amrex::Real Fe52_pf_threshold_T9 = 0.6; + + // Fe53 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Fe53_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 2.9999954999842446e-06, 1.3999902000873147e-05, 4.6998895534514674e-05, + 0.00012399231263549523, 0.0022973590486834584, 0.010342333218121334, 0.026671141814813795, 0.05206005035504811, + 0.08642995799836133, 0.12936899184122008, 0.18043644775855625, 0.23931764264461317, 0.3801124277209676, + 0.5523799580600001, 0.7580918692003275, 0.9991071891450825, 1.2759989109005887, 1.9286186519452522, + 2.6946271807700692, 3.5263605246161616, 4.409155302062135, 5.318119993844216, 6.2422232654551655, + 7.177782416195197, 8.122668023346407, 9.073374516903025, 10.030120203469494, 12.425208175446844, + 14.830741237693333, 17.236510566922608, 19.635593488316637, 22.02345749901289, 24.402094955206845, + 26.770638015992688, 29.128409524554026, 31.4747652806034, 33.81103776958112, 36.13816397149128, + 38.45479142160837, 40.76531306419815, 43.06591991718009, 45.36055268198364, 47.649067191080746, + 49.931201673603496, 52.20868084546647, 54.47897034376916, 56.7481819279467, 59.01154630778747, + 61.27085541729969, 63.528206668469586, 65.78341448045262, 68.03626556777253, 70.28651313565834, + 72.5338694707046, 74.78133526447758, 77.02911212097662, 79.27370995632032, 83.76435671372906, + 88.25435551349507, 92.74525760593423, 97.23920215681208, 101.73901182714235, 106.24099777689521, + 110.7472280150284, 122.03600942835084, + }; + + constexpr amrex::Real Fe53_pf_threshold_T9 = 0.6; + + // Fe54 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Fe54_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 9.299567576799903e-05, 0.0014169955873925225, 0.007321134970553677, 0.022123461487622495, + 0.04948135381425337, 0.09201931630258259, 0.1514756766228533, 0.22872236077796645, 0.43529377684509163, + 0.7011421355646771, 1.0099453601908912, 1.34893485484602, 1.7119979303561994, 2.509599262378372, + 3.391147045808654, 4.343805421853684, 5.342334251964811, 6.3561076606958915, 7.3777589082278725, + 8.405143687607614, 9.425451751593128, 10.451608961045816, 11.472103470449973, 14.0225247273486, + 16.556350581889475, 19.083368717027604, 21.59455920288983, 24.090561666932885, 26.569704612004134, + 29.037118104344618, 31.489643344629577, 33.928130435862485, 36.35685317245611, 38.7714325729303, + 41.176034426195145, 43.56999010098943, 45.954089031013915, 48.32999426030592, 50.696092759022285, + 53.05476731866737, 55.41046223697537, 57.75524768445979, 60.09832413880857, 62.432161775306724, + 64.7650522177961, 67.08977843666736, 69.41402502644259, 71.73781232708723, 74.05428653224195, + 76.36374450452375, 78.67993524957357, 80.98925437474897, 83.2985284558938, 87.91034318460056, + 92.52211405462002, 97.1272842406081, 101.73245442659619, 106.34418201313045, 110.94935219911854, + 115.56103706612782, 127.11218374391825, + }; + + constexpr amrex::Real Fe54_pf_threshold_T9 = 1.0; + + // Fe55 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Fe55_pf_array = { + 0.0, 0.0, 0.0, 0.0, 2.9999954999842446e-06, + 3.599935201547656e-05, 0.0001749846892862601, 0.0005458509962348388, 0.0012811789396579938, 0.002489897630568308, + 0.0042439815567507835, 0.021723330583716026, 0.052838150482648706, 0.09687441030310566, 0.15356793863801727, + 0.22207417974018792, 0.3010293499155029, 0.38896845006857994, 0.48462619650037303, 0.6957602634830437, + 0.9311072235406603, 1.1913051067738185, 1.4786223714009008, 1.794979612330987, 2.509599262378372, + 3.332204510175204, 4.216562194946349, 5.147494476813453, 6.100318952020064, 7.07326971745971, + 8.0519780789023, 9.041921720351219, 10.03889218954233, 11.03650126792157, 13.543701834668783, + 16.05728351156156, 18.56910074907064, 21.066855541336487, 23.562344300455024, 26.0364718159882, + 28.502314481871966, 30.95605713662514, 33.396212218713394, 35.82525042074837, 38.24254446151837, + 40.650243734413365, 43.04995151400136, 45.43921258233842, 47.82155649372092, 50.19642262942808, + 52.56493197079322, 54.92796711983561, 57.28491342204854, 59.63654060011019, 61.984672026712545, + 64.32851223341358, 66.6696071811695, 69.00713032552483, 71.3424360156314, 73.6756983608725, + 76.00511069609969, 78.33668332596699, 80.66743929592772, 82.99742336310989, 87.64665353889201, + 92.30225457850699, 96.95543398368144, 101.60641370570083, 106.26957114933927, 110.92954957182236, + 115.59298866593443, 127.28928335673105, + }; + + constexpr amrex::Real Fe55_pf_threshold_T9 = 0.3; + + // Fe56 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Fe56_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 3.999991999914312e-06, 2.2999735504161862e-05, 9.099585975123644e-05, + 0.00026996355655966415, 0.007115623795532719, 0.036122649876509136, 0.09416770925148646, 0.17582214798729476, + 0.2723587679931664, 0.37744210592173955, 0.4880608616770881, 0.6035325999923254, 0.8511487220072201, + 1.1254226572294825, 1.4290963940696066, 1.7632754575255085, 2.1292725925101696, 2.9601050959108397, + 3.9080149840306073, 4.9344739331306915, 6.0014148779611505, 7.07326971745971, 8.151909872940905, + 9.22029070282935, 10.288749953326773, 11.348050821779994, 12.404923504275338, 15.030423302328545, + 17.639794649084415, 20.235505486111418, 22.817595991119997, 25.38670493105848, 27.94583185576858, + 30.487491322149033, 33.02009284574505, 35.53572502980229, 38.04433379189708, 40.54019127287184, + 43.027570111805225, 45.503520449571155, 47.970093980042336, 50.4274588815412, 52.87824708343751, + 55.32031113998107, 57.75524768445979, 60.1892959170143, 62.614483332100676, 65.0319983917687, + 67.44791217006976, 69.85687766662237, 72.26390542298401, 74.66853977033223, 77.06711323915523, + 79.4665481581392, 81.86304385058315, 84.25660072178292, 86.6496014503734, 91.4320180309834, + 96.21099350873395, 100.98939803491464, 105.76809138799152, 110.54388709101038, 115.32810550844745, + 120.11286127141062, 132.10176562881668, + }; + + constexpr amrex::Real Fe56_pf_threshold_T9 = 0.6; + + // Fe57 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Fe57_pf_array = { + 0.31923379042950856, 0.5047141869211308, 0.6250572941164017, 0.7706076340060204, 0.8646773862756792, + 0.9393941799722357, 1.004126868655904, 1.0619382765837235, 1.1141637356257452, 1.1616393556340916, + 1.2050185573356018, 1.377399418148957, 1.5046756622242514, 1.6089866106127513, 1.7007523015072379, + 1.785273480605688, 1.8656771494678952, 1.9441822284886159, 2.022639284996632, 2.1862195771815216, + 2.3697214555676114, 2.5857358897047287, 2.8446089317114485, 3.1522489379453327, 3.9080149840306073, + 4.804021044733257, 5.780743515792329, 6.794586580876499, 7.820037989458753, 8.855092980028635, + 9.893437216682626, 10.927735425915376, 11.964001084330445, 12.999065161059836, 15.583660161553196, + 18.164497338559954, 20.74306846424259, 23.31102987217412, 25.870760313759863, 28.428528311812737, + 30.97388292057774, 33.51155410232925, 36.04062909666485, 38.56234077507174, 41.07256523284403, + 43.57595314787768, 46.071504487177094, 48.56130112225929, 51.03530848158925, 53.51334225208949, + 55.97988202500741, 58.44425407235371, 60.90394930279521, 63.35764093323529, 65.80738367056561, + 68.25429692391441, 70.69694103310864, 73.13971845367924, 75.57884246036176, 78.01608443850206, + 80.45121618745809, 82.88603873284868, 85.31786607350394, 87.75287575214732, 92.61622734619048, + 97.48330107330229, 102.35048097668803, 107.21910593979258, 112.09270038162803, 116.96980428309978, + 121.85428829186912, 134.09225968448, + }; + + constexpr amrex::Real Fe57_pf_threshold_T9 = -1.0; + + // Fe58 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Fe58_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 9.999994999180668e-07, 6.9999755002045995e-06, 3.8999239519672654e-05, 0.0001439896329951425, + 0.000409915972966626, 0.009402656154280119, 0.0446415706430984, 0.11255338483925148, 0.20738564509412735, + 0.32084069822634387, 0.4465449893727743, 0.5803972077665481, 0.719901568668704, 1.0109181331837394, + 1.3165634494911607, 1.6421190196703466, 1.9975525682060065, 2.3930470847590035, 3.3178157727231046, + 4.393213824064446, 5.537334267018537, 6.698268054115413, 7.855544677915663, 8.998384010052538, + 10.126631103850338, 11.246352355728682, 12.354492650648448, 13.457406021215947, 16.185754299432134, + 18.890684373198102, 21.57768116510248, 24.258411191118306, 26.925801354134332, 29.584048732752727, + 32.2321832805191, 34.86808014205329, 37.498881490821525, 40.118506220896904, 42.72468387639301, + 45.32396323455135, 47.91267639813044, 50.49317595319822, 53.06381715418729, 55.626685345445004, + 58.185203812576255, 60.738505783788604, 63.28165502625736, 65.82045575213297, 68.35600613473973, + 70.88420087154317, 73.409601054689, 75.93085188300745, 78.45340760027513, 80.96204181122408, + 83.48085001268777, 85.98864095630935, 88.49886541408164, 91.0067894337564, 96.01742472785264, + 101.02606201928623, 106.0322429630331, 111.04287825712936, 116.04953740284597, 121.0614998371503, + 126.07654625441153, 138.63133975863911, + }; + + constexpr amrex::Real Fe58_pf_threshold_T9 = 0.5; + + // Co53 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Co53_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 9.999994999180668e-07, 1.0999939500426909e-05, + 6.999755011434183e-05, 0.00028096052689443105, 0.0008696217693578016, 0.0022444792708461625, 0.010435361721528088, + 0.0352078647437836, 0.09493738305152245, 0.21449990238025918, 0.41669778472127694, 1.0612565021243408, + 1.9329696377795786, 2.8735646395797834, 3.828641396489095, 4.770684624465665, 5.717027701406222, + 6.658011045870748, 7.600902459542082, 8.540909718033554, 9.480367509189243, 11.842229212112828, + 14.20077295875492, 16.556350581889475, 18.909260758771037, 21.247994365881393, 23.585466717875878, + 25.916222687836623, 28.23533708278188, 30.554182696647704, 32.86212973278313, 35.159352882635794, + 37.45654712699496, 39.74278308198748, 42.02874729374549, 44.30300188011331, 46.57643038881589, + 48.84286696769363, 51.10794766522922, 53.371566789689886, 55.626685345445004, 57.886710824020255, + 60.13723955505825, 62.38490889045618, 64.63789704231085, 66.87932771215156, 69.1263429539908, + 71.37411981048986, 73.61871764583356, 75.86200985245901, 78.10517152498225, 82.59195825500173, + 87.07968318611691, 91.5689682303567, 96.0604000908327, 100.55872150745998, 105.05853117779024, + 109.56697173731978, 120.85935443267586, + }; + + constexpr amrex::Real Co53_pf_threshold_T9 = 2.0; + + // Co54 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Co54_pf_array = { + 0.0, 2.9999954999842446e-06, 0.00014498948851615956, 0.006782943736832386, 0.045578345129632526, + 0.1379960362542603, 0.27726651839907973, 0.4406559172230831, 0.607788618736673, 0.7667033576456236, + 0.9122333116661536, 1.4396640233629554, 1.7479719708333992, 1.9473936195971502, 2.089967944195619, + 2.2014464305367754, 2.2959438889364705, 2.381907510551698, 2.4647637195953576, 2.6348203663498797, + 2.824675767149021, 3.0439483205687514, 3.296878915474735, 3.5839109449448587, 4.247065649239764, + 5.003946305945459, 5.8289456176102075, 6.693323668269949, 7.585788821732034, 8.494947582468917, + 9.417354541360508, 10.357742824813725, 11.300969103046583, 12.250089530946948, 14.648419680899378, + 17.06200154986545, 19.481937246076708, 21.895747974180978, 24.30678477540252, 26.707202117633603, + 29.09889546404086, 31.481168717638607, 33.85557954520391, 36.22146476908438, 38.57831272063779, + 40.927337800456314, 43.269466760589324, 45.6054147572525, 47.934215692377435, 50.25788590385855, + 52.57526416603043, 54.88952822388862, 57.19790204505891, 59.503368984427844, 61.80595407742189, + 64.10421328046881, 66.40100125577852, 68.69482716868269, 70.98709529470581, 73.27775774274295, + 75.56675772114669, 77.85557059951951, 80.14419115216317, 82.43102788818909, 87.00393721195896, + 91.57915507566369, 96.15518866756513, 100.73392559648507, 105.31743428569197, 109.90604475564105, + 114.49814286006179, 126.00918685693232, + }; + + constexpr amrex::Real Co54_pf_threshold_T9 = 0.01; + + // Co55 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Co55_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 1.9999980000601777e-06, 3.299945551192844e-05, 0.0002149768908123338, + 0.0008776147834635239, 0.002650484360963482, 0.006510758935580232, 0.013783568660113304, 0.04542450669313041, + 0.11337689843044624, 0.2341190990271887, 0.4197354671252422, 0.6733637730790638, 1.3506671834767394, + 2.175887439948088, 3.068052935133617, 3.9982007016691985, 4.948759890378168, 5.910796644040527, + 6.887552571664617, 7.874739125171811, 8.869257522797287, 9.87302834505142, 12.392552212472792, + 14.927368073382404, 17.458346073576802, 19.980928412195695, 22.489707498190175, 24.983124837646084, + 27.463785196552635, 29.930601699902294, 32.384611307034916, 34.831446008873506, 37.26007182276292, + 39.68043995141335, 42.09363491595136, 44.49580471437484, 46.89326904555913, 49.27854585439829, + 51.66117365506587, 54.03786672021364, 56.40944468469464, 58.773587670688116, 61.13416002133251, + 63.491553350821555, 65.8460981827463, 68.19566348466455, 70.54312033183577, 72.89085982231036, + 75.23453177540692, 77.57658201060994, 79.91713370152783, 82.25818507534967, 86.9361146156202, + 91.61238072329202, 96.2900235580931, 100.96843290644959, 105.64972678791048, 110.33413387975575, + 115.02389413404445, 126.77320837707892, + }; + + constexpr amrex::Real Co55_pf_threshold_T9 = 1.5; + + // Co56 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Co56_pf_array = { + 0.0, 3.999991999914312e-06, 7.899687966427683e-05, 0.001695561722441503, 0.007822325681129151, + 0.019497678843342036, 0.03570492462077664, 0.05483944934120235, 0.07551926153050333, 0.09679362441063856, + 0.11809143254161966, 0.21920299752019912, 0.3136779817234165, 0.4068994123352315, 0.5003509554719695, + 0.5937841992390013, 0.6869223464179751, 0.7799081928776226, 0.8732608851743571, 1.0641747312980732, + 1.266494261306665, 1.4867261756605479, 1.7300104759595463, 1.9996490006286871, 2.617395832834079, + 3.342861804649192, 4.141546163706395, 4.997212273764115, 5.8944028342648505, 6.818924065275521, + 7.7664168980196555, 8.727454116899434, 9.70503661381229, 10.687389096364537, 13.178743710840436, + 15.691917501252615, 18.209959712636714, 20.72326583694641, 23.232865099324783, 25.72721214289187, + 28.207634480232542, 30.685022297606515, 33.14444986209353, 35.59656668905854, 38.041326270833125, + 40.473670590530276, 42.89814550113336, 45.31564717830969, 47.72692751285302, 50.13262340177087, + 52.530211502089486, 54.923768373289256, 57.3135985700474, 59.69879376622023, 62.07987280331125, + 64.45828367945377, 66.8332366049513, 69.20858105222777, 71.57898874156058, 73.95275011302252, + 76.32178030542472, 78.68666928175492, 81.05421227102374, 83.42369159884781, 88.15575353669053, + 92.89186108012609, 97.62885665889361, 102.37153438588587, 107.11887906065449, 111.87215761201388, + 116.62887769612918, 128.55615721662483, + }; + + constexpr amrex::Real Co56_pf_threshold_T9 = 0.01; + + // Co57 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Co57_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 9.999994999180668e-07, 0.00011499338800700186, 0.0013730569257571538, 0.006397492336686245, 0.01850276323097546, + 0.040556359242328484, 0.07447461921618648, 0.12123041992629299, 0.18109079972309278, 0.33921347598909773, + 0.5457283740750117, 0.7973625908347873, 1.0912415245367162, 1.42418438160196, 2.188295946591918, + 3.054001181677967, 3.983413001514819, 4.948759890378168, 5.940171252720432, 6.946975992135418, + 7.958576903813898, 8.982184278838428, 10.01234195744821, 11.042921835724492, 13.636383892066839, + 16.240313283682568, 18.8327903947792, 21.421400559017396, 24.000410569938587, 26.56681025397777, + 29.119420699985593, 31.66349027443256, 34.19487664246068, 36.71579826492938, 39.23012427713983, + 41.7241634104911, 44.2191203961326, 46.704027045920604, 49.17846239584131, 51.65012381887929, + 54.11318872675224, 56.57037505150728, 59.02091405779107, 61.470632257953724, 63.91376631623094, + 66.35337320678927, 68.79120316260337, 71.22465297997502, 73.65740516782517, 76.08966808412775, + 78.51900488276094, 80.94113512640477, 83.36929752678202, 85.79448494186839, 90.642385812446, + 95.49455076557048, 100.3435250178383, 105.19736762264446, 110.05567955583216, 114.91729828777864, + 119.78321499985981, 131.97971819437382, + }; + + constexpr amrex::Real Co57_pf_threshold_T9 = 0.9; + + // Co58 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Co58_pf_array = { + 0.11876743986042508, 0.3003319740046004, 0.47221119078773616, 0.7367754737381231, 0.919938072234108, + 1.0526116302074207, 1.1533207779662962, 1.232974461099502, 1.2982909467693293, 1.3535526538059968, + 1.4015550718641847, 1.5807338647857452, 1.709021312649415, 1.8120028490517701, 1.900328930707553, + 1.9802611949314337, 2.055982773839872, 2.1304880868773086, 2.2060457781125975, 2.3672220780338877, + 2.550639613544884, 2.7641805347969726, 3.0128893947788744, 3.2988640941369174, 3.975936331171799, + 4.770684624465665, 5.641907070938114, 6.565264970035361, 7.52294091807237, 8.496990484098719, + 9.487972108574462, 10.48849257447637, 11.49781182716018, 12.513557345278134, 15.06541229417861, + 17.633222883921178, 20.205751225029623, 22.777389570641958, 25.348238650230684, 27.908652852526828, + 30.464234459984763, 33.010918469469004, 35.546734315310665, 38.079735718948, 40.6002333138387, + 43.11612350914667, 45.62399114282543, 48.124873788547156, 50.620208061497415, 53.10787714398133, + 55.5913459789997, 58.071444927219595, 60.55030926255163, 63.01994844020884, 65.49122992403252, + 67.95669489220595, 70.42041759301392, 72.88199058456958, 75.34285400255908, 77.80176015062193, + 80.2605843335305, 82.71751877527072, 85.17442480432807, 87.62926179618015, 92.54808954102327, + 97.45998999443384, 102.38189717292141, 107.305208638846, 112.23427227924843, 117.17047497856193, + 122.11397096982056, 134.50544683868208, + }; + + constexpr amrex::Real Co58_pf_threshold_T9 = -1.0; + + // Co59 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Co59_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 9.999994999180668e-07, + 2.9999954999842446e-06, 0.00028096052689443105, 0.002951639622736711, 0.012613119117341724, 0.034109596699481076, + 0.07069515511302532, 0.12372976321474687, 0.19316999907577495, 0.27823079954847585, 0.4912916723732077, + 0.7565941686920565, 1.070586886833679, 1.4304102846944255, 1.83178963033096, 2.72785282839839, + 3.7184382563554808, 4.7535901911063645, 5.805134968916488, 6.8679744089702925, 7.937374696163295, + 9.004545458996587, 10.073230327123223, 11.144756141605761, 12.216022976383341, 14.887094174244465, + 17.55555829865261, 20.222390544033587, 22.883134627738862, 25.53545019231883, 28.184906229154986, + 30.825604248227705, 33.457021223309, 36.07779184304824, 38.68981630080933, 41.29221431350847, + 43.88887870926202, 46.4704121947391, 49.05242167494595, 51.62385589205868, 54.18909768993756, + 56.7481819279467, 59.3015785575842, 61.849592246681894, 64.39333939649282, 66.93197144563699, + 69.46959487759739, 72.00071437054052, 74.53287390517907, 77.06031049183248, 79.58808482386404, + 82.11217725291769, 84.63703215317734, 87.15855616620358, 89.67978029839072, 94.7207995525959, + 99.76257508742789, 104.80721674950934, 109.85465380977156, 114.90360796816995, 119.95756838700459, + 125.01762856442836, 137.69939925509783, + }; + + constexpr amrex::Real Co59_pf_threshold_T9 = 0.8; + + // Ni56 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ni56_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 9.999994999180668e-07, 1.7999838002017484e-05, 0.00014798904908051437, + 0.0006687763192560828, 0.0021007917908672197, 0.0051805577080849445, 0.0108093677159202, 0.033929817942853414, + 0.08125919821801637, 0.16557206393583876, 0.30308828495767837, 0.5109446166860524, 1.172482137234565, + 2.102913897864978, 3.1654750481410856, 4.272490747605575, 5.389071729816501, 6.498282149476434, + 7.605890001053122, 8.712759974960212, 9.814656338829513, 10.918718232265187, 13.664687668229691, + 16.38812278817138, 19.09362521719479, 21.774087461778173, 24.427033903554097, 27.056545465086103, + 29.664418719106976, 32.25599392921282, 34.82395533714435, 37.3778548584193, 39.91867374845115, + 42.44348030878443, 44.95807711272384, 47.46268883359117, 49.955692693611795, 52.438581179243556, + 54.91248475568723, 57.37829774665965, 59.83778360715438, 62.29201514356348, 64.73474686830077, + 67.18043280493549, 69.61404616033595, 72.04282585589065, 74.47118033617373, 76.89759077928012, + 79.31751257897871, 81.73470105471176, 84.14867938526342, 86.56428786666086, 91.38391256386228, + 96.2010760720766, 101.01398943805196, 105.82570189600392, 110.6374131490212, 115.4513381488714, + 120.26505308675254, 132.31206103765302, + }; + + constexpr amrex::Real Ni56_pf_threshold_T9 = 1.5; + + // Ni57 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ni57_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 9.999994999180668e-07, 3.999991999914312e-06, 2.1999758003515767e-05, 7.499718764066433e-05, + 0.00020197960074708863, 0.004008953397104444, 0.0179813619557224, 0.04424365396121746, 0.08043463086160929, + 0.1230915869981206, 0.16956554369275392, 0.21850400524573224, 0.2697209834825601, 0.38242845698978256, + 0.5195988264319741, 0.6967342393651639, 0.9268784832940384, 1.2156480822456945, 1.9487632180377197, + 2.8213788864092133, 3.756538102587751, 4.727387818712341, 5.720311776607412, 6.732210706467206, + 7.757906208351747, 8.793308627496552, 9.84161214881804, 10.89488575689709, 13.550242080349394, + 16.213405830762646, 18.87175636331258, 21.516258352476072, 24.137708445358587, 26.741859051442646, + 29.326636724603702, 31.893700992969865, 34.44446571543944, 36.98112343027989, 39.50858969448669, + 42.01751122047856, 44.51458460902644, 47.00721330490835, 49.488909679066104, 51.959784798049846, + 54.42502468087745, 56.88340871515647, 59.33448195869115, 61.78118951979749, 64.22392124453478, + 66.6617989987217, 69.09735541711756, 71.52855788793369, 73.95275011302252, 76.37735015657952, + 78.80071678822621, 81.22175003163346, 83.64447943646957, 86.06274892846308, 90.90275870552857, + 95.7383548318502, 100.57350530364421, 105.41141644405279, 110.25358721601651, 115.09982583901147, + 119.94953621530732, 132.10601191969812, + }; + + constexpr amrex::Real Ni57_pf_threshold_T9 = 0.5; + + // Ni58 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ni58_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 6.499788759151895e-05, 0.0010874085569544608, 0.005954238288214293, 0.018769741111677243, + 0.04333627107625303, 0.08256291389970516, 0.13844890680808367, 0.21212628348615897, 0.4130674701171434, + 0.6787038764017188, 0.9964869046943904, 1.355513968039992, 1.7493953139667429, 2.624668592163159, + 3.6082115510464816, 4.653960350157523, 5.736572297479192, 6.834108738813838, 7.937374696163295, + 9.038365107236372, 10.142504453006628, 11.247656987355347, 12.35017298950393, 15.107494239612924, + 17.85504688369138, 20.587446113803875, 23.303482666538738, 25.996265395510157, 28.671297827583693, + 31.327372584881186, 33.96784684707499, 36.59290012860623, 39.202215489022755, 41.804206118164636, + 44.38569359595842, 46.959960420057804, 49.52055789001688, 52.07514945284195, 54.61958816561267, + 57.15515419534544, 59.683289579684256, 62.209018223992516, 64.71924268176481, 67.2323925438662, + 69.73507279273817, 72.23455321097148, 74.73354460064122, 77.22657665787314, 79.71580919760827, + 82.20390818849523, 84.68981035852474, 87.17250339368442, 89.6546361165897, 94.6130029821402, + 99.5707747866794, 104.52861189520867, 109.48562609786583, 114.4420895408199, 119.40313912575647, + 124.36915382392002, 136.8003098855822, + }; + + constexpr amrex::Real Ni58_pf_threshold_T9 = 1.0; + + // Ni59 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ni59_pf_array = { + 0.0, 0.0, 0.0, 2.9999954999842446e-06, 7.999680017073643e-05, + 0.0005788324441735365, 0.0021736359408406213, 0.0056092387645105945, 0.01143635488520106, 0.019913405473776354, + 0.03102859535266587, 0.11656540575699803, 0.22467677532533437, 0.3348466303246908, 0.44172824681853384, + 0.5451754549493979, 0.6462437104634055, 0.7461660103546167, 0.8461922494245863, 1.051713883992795, + 1.273527038219524, 1.522341804582185, 1.8072073670003503, 2.133605692462821, 2.9069010598473755, + 3.8133070324889884, 4.795790545596741, 5.820082930352362, 6.8658910748834385, 7.9229859587111955, + 8.98969370086056, 10.060491301345794, 11.134589024250317, 12.211060187041213, 14.914122846632385, + 17.61324441699029, 20.309264397815962, 22.994360262849085, 25.664908259555716, 28.329155837999533, + 30.97388292057774, 33.60737202522648, 36.227025487769076, 38.836061801129475, 41.43344643434417, + 44.01914390409993, 46.5998232683906, 49.165217169091285, 51.725025127052405, 54.27854275028949, + 56.82438853675735, 59.36303133679787, 61.89667558971878, 64.42529099629942, 66.94892100395076, + 69.46959487759739, 71.98990345443632, 74.50250280730278, 77.01134966463678, 79.52336463318287, + 82.03031338283952, 84.53593603630598, 87.04094867693577, 89.54463522137537, 94.55440881787415, + 99.55928040725365, 104.56411858366558, 109.57475387776184, 114.58796981845158, 119.6065914641805, + 124.63226463564129, 137.21861214045106, + }; + + constexpr amrex::Real Ni59_pf_threshold_T9 = 0.2; + + // Ni60 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ni60_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 9.999994999180668e-07, 0.0001669860570523215, 0.002216541655539183, 0.010612487816474522, 0.030672744684017855, + 0.06659640224701524, 0.12089995080332122, 0.19451112785131433, 0.28707188632608593, 0.523713220784648, + 0.818571612904317, 1.163211745449067, 1.5552410383148128, 1.9944440899261688, 3.0007198150650303, + 4.120661870539474, 5.288267030694535, 6.466144724237619, 7.640123172695364, 8.806873266530692, + 9.966462351697517, 11.116915515632819, 12.26434155365415, 13.404530269168, 16.240313283682568, + 19.067783986010905, 21.870668289783953, 24.660956589123135, 27.437436366855884, 30.195970473390084, + 32.94422709497034, 35.676609396732076, 38.395286690408575, 41.101220488604405, 43.7979069310563, + 46.476969595285254, 49.14727946840462, 51.80744407346783, 54.45684554748853, 57.09941221233721, + 59.73253751451858, 62.36041787044788, 64.97920020620172, 67.59474752832064, 70.20248238680685, + 72.80324621705802, 75.40370226297647, 77.9975408607899, 80.58947775445802, 83.17824229001931, + 85.76096224982975, 88.34410180135134, 90.92574822375326, 93.50704671921633, 98.6616015225741, + 103.81518004347723, 108.96343671544952, 114.11590220498499, 119.26761609734116, 124.42577271791951, + 129.5813420367381, 142.49761145615435, + }; + + constexpr amrex::Real Ni60_pf_threshold_T9 = 0.9; + + // Ni61 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ni61_pf_array = { + 0.0006008194718280731, 0.008122919579550684, 0.029591811405473716, 0.10491301554458474, 0.1925927932471219, + 0.273484512376296, 0.34317614370834065, 0.40232083673045566, 0.45268833098033634, 0.4959960065319855, + 0.5336577750637095, 0.6689994569905843, 0.7613678206196122, 0.8408609018357366, 0.9198360398363418, + 1.003047343080405, 1.091934038714692, 1.1866579639201666, 1.2870796435192378, 1.5052855555473519, + 1.7500059645980508, 2.0282508736049727, 2.347450422208318, 2.7120867100939736, 3.5667118201397288, + 4.554928969551344, 5.6131281063880705, 6.703188113240863, 7.807916628926408, 8.915969311373605, + 10.025705185260378, 11.13750447821044, 12.250089530946948, 13.36138027787483, 16.1378982782545, + 18.915376985788473, 21.682616058281013, 24.444128336913398, 27.200238199836093, 29.943556539775763, + 32.680877123178085, 35.40587688259407, 38.12229533336679, 40.82663495507247, 43.52347008535454, + 46.20870560869058, 48.88491520393713, 51.55703339581328, 54.21791812847306, 56.8714801442912, + 59.520487804759625, 62.16277289590227, 64.80168635097588, 67.43248769974412, 70.05963126223352, + 72.68576434086785, 75.30606379341255, 77.92404972838021, 80.54023703835485, 83.15542761225313, + 85.76662798736542, 88.3778602812763, 90.98866204916384, 93.5985524857938, 98.81514411481801, + 104.03503951959024, 109.2546838540658, 114.47532818229563, 119.70190164398481, 124.9329218669562, + 130.171477498962, 143.2967691361454, + }; + + constexpr amrex::Real Ni61_pf_threshold_T9 = -1.0; + + // Ni62 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ni62_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 9.999994999180668e-07, + 5.99998200002249e-06, 0.0005728358981838361, 0.005548578130409281, 0.02174290061065492, 0.054355600737551434, + 0.10542521356487161, 0.17495616543743486, 0.26219425001585317, 0.3662661013859635, 0.6218595352352544, + 0.9374230629575734, 1.3123557976926232, 1.7483563687401, 2.2446193769027203, 3.380994674344636, + 4.624972813284271, 5.8998973535824915, 7.162397497355718, 8.411832675758411, 9.642122788401721, + 10.851276951469654, 12.049418835484797, 13.239257128875828, 14.419826524817603, 17.347736202032834, + 20.251660926333702, 23.13917961524746, 26.016570661670904, 28.880922852142884, 31.736964813994, + 34.57799710806397, 37.41234103449047, 40.229135849234744, 43.03780561569925, 45.83354585007774, + 48.61665121734245, 51.39403611184572, 54.15942192179145, 56.914539633751644, 59.66141750486559, + 62.40090923180262, 65.13507057690852, 67.85677286717905, 70.57717583624826, 73.29116077287028, + 75.99525839965668, 78.70000281262439, 81.40140847100793, 84.09903415477426, 86.79098742883428, + 89.48198982531916, 92.17106236823564, 94.85706443211609, 97.54148302868502, 102.9029792968546, + 108.26072008387342, 113.62417675259243, 118.98152765072466, 124.33959502167846, 129.70557103670032, + 135.06944859856077, 148.50647895617098, + }; + + constexpr amrex::Real Ni62_pf_threshold_T9 = 0.8; + + // Ni63 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ni63_pf_array = { + 0.00012099268009050448, 0.003530759526208009, 0.019097476775194428, 0.10228940462026428, 0.23183051019155124, + 0.3718731636716289, 0.5032957452532195, 0.619908522750686, 0.7213244463951216, 0.8091651037659582, + 0.8854937353864014, 1.152527393106049, 1.3172534527649016, 1.4376341294275117, 1.538315203023161, + 1.6313258150121244, 1.7231574142195367, 1.817750750378373, 1.9178919951197386, 2.1437115111356317, + 2.4162027544005764, 2.7465113309733438, 3.1383960016735934, 3.587110398103849, 4.605170185988092, + 5.723585101952381, 6.873163834212518, 8.03268487596762, 9.195226734166134, 10.351373376528244, + 11.504893293272964, 12.65395846952229, 13.799381176034391, 14.940440154949757, 17.787687486212167, + 20.627855652141754, 23.464105860871612, 26.295419869124174, 29.12167549237268, 31.943161623138263, + 34.753887774527634, 37.56406747070622, 40.361822290393704, 43.153096297057644, 45.93404381641268, + 48.704943824488126, 51.4722368591532, 54.229217683726986, 56.977640340119585, 59.72102990766711, + 62.454976453072895, 65.1902223969836, 67.91600070137939, 70.6378004580647, 73.35699283572015, + 76.07148576504456, 78.78258940363366, 81.49063960473588, 84.19597609996649, 86.90221306394452, + 89.60480374284182, 92.30225457850699, 95.00482531384458, 97.70552254064152, 103.10550356096607, + 108.50667831295381, 113.90507913805882, 119.30824668598467, 124.71803145739871, 130.1295551925757, + 135.55006312861477, 149.13017674845906, + }; + + constexpr amrex::Real Ni63_pf_threshold_T9 = -1.0; + + // Ni64 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ni64_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 9.999994999180668e-07, 0.00014998875112496793, 0.0020399179518798176, 0.009824580372650412, 0.028316283061384395, + 0.06107910675780009, 0.11023461789905388, 0.1770577271188556, 0.2625688589212337, 0.4943693591474892, + 0.8166038683471766, 1.2376644139653301, 1.7539506388989758, 2.3469264233805136, 3.6609942506244004, + 5.0238805208462765, 6.371611847231857, 7.696212639346407, 8.987196820661973, 10.257659366256743, + 11.506907392644665, 12.742566016044742, 13.963930563082547, 15.179047931961549, 18.187486856784655, + 21.174341456306628, 24.140992520559777, 27.09999278484504, 30.046934894229597, 32.992313281637976, + 35.922567625812455, 38.84419192721273, 41.75401637364078, 44.653334917526756, 47.54010144393796, + 50.41734501530427, 53.28154063803216, 56.14166897935966, 58.990142399124316, 61.83012014326907, + 64.66300296344193, 67.48791750468345, 70.3042650811168, 73.1135617750305, 75.9202360720598, + 78.71967557822309, 81.51473715631494, 84.30891651114707, 87.09626231491983, 89.87777966790391, + 92.66301950769726, 95.4427256977059, 98.22150091780317, 100.99628986095256, 106.5448527085926, + 112.08643076861445, 117.6306906014415, 123.17163265487557, 128.71409338993155, 134.25797118670835, + 139.8095168577196, 153.7040400298221, + }; + + constexpr amrex::Real Ni64_pf_threshold_T9 = 0.9; + + // Cu57 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Cu57_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 3.6999315516948623e-05, 0.0004738876974862784, 0.00231332220571738, 0.006991502388749998, + 0.015999325472909182, 0.030689231027265014, 0.052244192140946465, 0.0817090109265416, 0.16816431428396353, + 0.2973021507577774, 0.47571789667726483, 0.7082096695619154, 0.9960814693443273, 1.6601310267496185, + 2.501435951739211, 3.4242626545931514, 4.389498649512583, 5.375278407684165, 6.373319789577012, + 7.383989457978509, 8.39615486303918, 9.417354541360508, 10.442900633154032, 13.017002861746503, + 15.597219691338827, 18.172219384653864, 20.73321616779958, 23.288215194407947, 25.829211310846993, + 28.358569723205825, 30.873613467414064, 33.3804141018368, 35.879026817529166, 38.36741779139978, + 40.84687483642021, 43.3198711301133, 45.78643338226603, 48.24558753595162, 50.696092759022285, + 53.1500774984717, 55.5913459789997, 58.034630954096876, 60.471528384698516, 62.90216540455246, + 65.3310442228708, 67.7607844913501, 70.18611540934265, 72.60685017411085, 75.03079612410916, + 77.4508756108179, 79.87098709889206, 82.28975687122549, 84.70788808994469, 89.54463522137537, + 94.38272018581652, 99.21817316812829, 104.06740480409228, 108.90963400945655, 113.76276291587857, + 118.61968316509238, 130.7916439761157, + }; + + constexpr amrex::Real Cu57_pf_threshold_T9 = 1.0; + + // Cu58 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Cu58_pf_array = { + 0.0, 0.0, 2.9999954999842446e-06, 0.00012999155073222543, 0.0009285687465689157, + 0.0030692849222947035, 0.006977599831771675, 0.01290043047251022, 0.021005824732376315, 0.031385288539246325, + 0.04402932553078332, 0.13496611292097146, 0.24906779537896317, 0.3651575645686415, 0.47741174626137634, + 0.5871158844236325, 0.6972457698560882, 0.8105141296643242, 0.928928142362344, 1.1860320267114581, + 1.4738793235779193, 1.7932357123780769, 2.1424685695242314, 2.518675831592066, 3.32862668882732, + 4.209160236650682, 5.1298987149230735, 6.0844994130751715, 7.05617528410041, 8.045588280803528, + 9.047821442478408, 10.056208639553791, 11.075969689770693, 12.100712129872347, 14.678400513111313, + 17.26549810379586, 19.858143391646657, 22.44245461333963, 25.0205512431652, 27.588113614917273, + 30.14871758853954, 32.69361614895551, 35.23192357547063, 37.76164424104842, 40.28497958545084, + 42.79719885736956, 45.30304196939071, 47.80263933458871, 50.29590217764739, 52.782719960362996, + 55.262042231857095, 57.746948881645096, 60.217869289458356, 62.6885913042544, 65.15547944853972, + 67.61653488250555, 70.07818467012927, 72.54015879961217, 74.99644664409452, 77.4554839139041, + 79.91123397940065, 82.36543060570327, 84.8216819997309, 87.27633920185995, 92.18958141600288, + 97.10061599352595, 102.01684160315112, 106.93776159792534, 111.8617136528528, 116.79507289557249, + 121.7345525706505, 134.11524920270472, + }; + + constexpr amrex::Real Cu58_pf_threshold_T9 = 0.15; + + // Cu59 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Cu59_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 5.99998200002249e-06, 3.7999278018272636e-05, 0.00014598934303724457, 0.00040491800963663984, 0.0008995952428359939, + 0.0017105361984473075, 0.012428445906924757, 0.03638689398559588, 0.073626784973166, 0.12292623116658526, + 0.18321282616205353, 0.25408159613801906, 0.3357819984616533, 0.4289771867440828, 0.6529614419193162, + 0.930428717890741, 1.2607722370732148, 1.6382636305011102, 2.0542709023528873, 2.9601050959108397, + 3.9318256327243257, 4.9344739331306915, 5.961005339623274, 6.993932975223189, 8.039157390473237, + 9.090430075303626, 10.142504453006628, 11.202315887874743, 12.259613412458204, 14.920767389351052, + 17.579033555073977, 20.235505486111418, 22.88543877622371, 25.527286881679668, 28.15574964486353, + 30.7794744765002, 33.38992288980583, 35.99039022215122, 38.58182766274523, 41.16549414415971, + 43.739066431033365, 46.3063440782545, 48.86711057930362, 51.417677874902765, 53.96375874805992, + 56.50619682581586, 59.0416760492395, 61.57377704101001, 64.10131892244245, 66.62414480709275, + 69.14521143829519, 71.66531682504908, 74.17741921764556, 76.6933438618572, 79.20817591494125, + 81.71864934570125, 84.23069253692425, 86.74108102323788, 89.24917100848154, 94.26902295768272, + 99.28879073534225, 104.31446390680304, 109.33991428668443, 114.37210213916643, 119.410078778867, + 124.45292370698547, 137.09667508060747, + }; + + constexpr amrex::Real Cu59_pf_threshold_T9 = 0.4; + + // Cu60 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Cu60_pf_array = { + 0.00043990322838529565, 0.004866141107482342, 0.016114461818579385, 0.05270155232670099, 0.09438702655672852, + 0.1337272484435195, 0.1695950843565348, 0.202903292271225, 0.23487842753255853, 0.26654397881725905, + 0.2986116266795063, 0.4732633107067777, 0.6637219743940478, 0.8509348100890128, 1.0256167744266416, + 1.186679940935872, 1.3364347753229382, 1.4781013665132163, 1.6148516317751822, 1.8844984675886751, + 2.1632262393677006, 2.463115521734004, 2.7912145544429725, 3.1502125419181226, 3.9512437185814275, + 4.844187086458591, 5.799092654460526, 6.7912214627261855, 7.803843303538772, 8.830543010616596, + 9.867860374892977, 10.909618988410072, 11.957611286231675, 13.010313873595706, 15.651286912609104, + 18.29964241557531, 20.954377557909798, 23.602464294244452, 26.248718776078196, 28.889482105538555, + 31.52488015072902, 34.151642243487245, 36.77201140976994, 39.38296348136927, 41.988855964718184, + 44.58636429142057, 47.176631456866396, 49.76038394129103, 52.3395604200427, 54.913902190368205, + 57.48124571591209, 60.04953397463914, 62.60805244177039, 65.16552978439323, 67.71887359573445, + 70.26844035459865, 72.81760053050971, 75.36541134998315, 77.91247217503776, 80.45808906674586, + 83.00639203309265, 85.54630531239286, 88.09156037905147, 90.63372774970289, 95.72507442418231, + 100.81780708046577, 105.91390173590256, 111.01266447853287, 116.12250642271256, 121.23850223246664, + 126.35981720369833, 139.2024245739233, + }; + + constexpr amrex::Real Cu60_pf_threshold_T9 = -1.0; + + // Cu61 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Cu61_pf_array = { + 0.0, 0.0, 0.0, 0.0, 9.999994999180668e-07, + 7.999968000178667e-06, 5.099869954423856e-05, 0.00018998195228592005, 0.0005088705034407284, 0.001097397638888056, + 0.002033930160985261, 0.013517229227676645, 0.03809411724389716, 0.07753124890714398, 0.13374212041986103, + 0.20808676467998102, 0.30100196746668895, 0.41209441892274856, 0.5404253960420381, 0.8439780702625291, + 1.2021211911477996, 1.6064807443192815, 2.0495364332312183, 2.5240312044720503, 3.5380565643793527, + 4.605170185988092, 5.697093486505405, 6.80128303447162, 7.908387159290043, 9.014325488050225, + 10.118598932153073, 11.22390916950531, 12.323855681186558, 13.426902566922532, 16.176364559082295, + 18.915376985788473, 21.655429917976857, 24.386827483076058, 27.11350650401176, 29.833785873640384, + 32.5436760016646, 35.25172620276681, 37.94661831929151, 40.63460095734291, 43.31370778240563, + 45.984493110187465, 48.64695656683778, 51.30397528792754, 53.95270891187334, 56.59704329858943, + 59.23421916010499, 61.8673401528053, 64.49218523112945, 67.1185574012174, 69.7402407628966, + 72.35846400560902, 74.97195562408622, 77.5846956453841, 80.19595308672177, 82.80423213407903, + 85.41075982039663, 88.0170273271889, 90.62499406973413, 93.22833331674731, 98.43845797125988, + 103.6458879869736, 108.86335325689254, 114.0794325252036, 119.30210227341233, 124.53021538128712, + 129.76454503915986, 142.88249339835508, + }; + + constexpr amrex::Real Cu61_pf_threshold_T9 = 0.3; + + // Cu62 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Cu62_pf_array = { + 0.014533869777037065, 0.06854890628231639, 0.14514309016821814, 0.29568297966031615, 0.41350205846067745, + 0.5037756308635039, 0.577015530615292, 0.640735366125167, 0.699493500006527, 0.7558468244987153, + 0.8111204203485981, 1.0819343145546299, 1.3365183361493562, 1.5653292728080372, 1.7688926721549783, + 1.9520847611278909, 2.1204570374775114, 2.2790183663561523, 2.431986945793788, 2.7344106903054572, + 3.048424671239907, 3.386941920352551, 3.7565346680024136, 4.15861825141979, 5.043425116919247, + 6.018593214496234, 7.038783541388542, 8.0925452638913, 9.161150127785412, 10.236381967809457, + 11.318126386665162, 12.400816722322686, 13.487006490992238, 14.576316386998034, 17.293668980762558, + 20.018046075152196, 22.744813400207345, 25.476856028052776, 28.202000662514287, 30.926857981932876, + 33.6471782756269, 36.36332568696173, 39.07137588806394, 41.775835421035424, 44.46695656003718, + 47.15695869126769, 49.840426648964566, 52.51473131680159, 55.18516118752114, 57.8498062670848, + 60.50906630401758, 63.16674614573084, 65.81785497043292, 68.46690683077317, 71.11225843765982, + 73.75968401694558, 76.39741771963034, 79.03458110928553, 81.67566752312757, 84.31134075475859, + 86.94832052129969, 89.58390562520421, 92.21673240506883, 94.85706443211609, 100.12630058936328, + 105.40307611213656, 110.68108821252386, 115.96650217423598, 121.25830485976283, 126.55771095804606, + 131.86253593975084, 145.16722087394913, + }; + + constexpr amrex::Real Cu62_pf_threshold_T9 = -1.0; + + // Cu63 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Cu63_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 9.999994999180668e-07, 7.999968000178667e-06, 3.1999488010954404e-05, 9.499548778572753e-05, + 0.0002319730921616752, 0.0037858247136838535, 0.01729654852587401, 0.0466077845103652, 0.09523835904345751, + 0.16502533583552706, 0.25694112425095605, 0.3714387210546646, 0.5084728581823934, 0.8471438485279861, + 1.26178953476129, 1.7360221040435524, 2.253064752310614, 2.7988802997066387, 3.933784497209659, + 5.099866427824199, 6.272877006546167, 7.444248649496705, 8.610683534503575, 9.769956159911606, + 10.925938480238674, 12.072541252905651, 13.219490088135052, 14.357834848789636, 17.19990082131005, + 20.032116659049137, 22.857432278315493, 25.679092894547672, 28.502314481871966, 31.31488802821894, + 34.12477495578023, 36.927539184145786, 39.72055994520277, 42.507788176017165, 45.283831133125034, + 48.05453229918891, 50.81387579467867, 53.56922271048394, 56.31983252600495, 59.05977609088311, + 61.794376524079446, 64.52117276800271, 67.2512018758237, 69.96955082912648, 72.6884707024656, + 75.40191175220268, 78.11353977465278, 80.82158997575499, 83.5296401768572, 86.23238532572971, + 88.93331805906305, 91.63659498141261, 94.33663873462108, 97.03787765289252, 102.43542165333712, + 107.83730639788752, 113.23877920753507, 118.6467524870606, 124.05590497049623, 129.47539345872872, + 134.89540776025427, 148.48386086758322, + }; + + constexpr amrex::Real Cu63_pf_threshold_T9 = 0.5; + + // Cu64 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Cu64_pf_array = { + 0.0, 6.9999755002045995e-06, 0.00016098704089100344, 0.003544710085426546, 0.016879732346585404, + 0.0438197367976595, 0.08401113074861055, 0.1351993757668836, 0.19461155772418207, 0.2596228178265078, + 0.328030995091177, 0.6748009122579997, 0.9822410060193353, 1.2418039948473243, 1.4646849355418021, + 1.6636004765275256, 1.848962715396353, 2.028533567783651, 2.2078455303567748, 2.579526136573355, + 2.980210176701387, 3.41365246080144, 3.8773091100975807, 4.36618516860932, 5.393627546352362, + 6.470799503782602, 7.575584651557793, 8.692825760059396, 9.814656338829513, 10.941995917134532, + 12.066810578196666, 13.19188944005294, 14.316285845876763, 15.436877041263648, 18.240357189821083, + 21.045349336115525, 23.850026372906807, 26.660802042028838, 29.471570749326034, 32.28498146608607, + 35.09266150813712, 37.89567351767626, 40.69575538049624, 43.48775200275246, 46.27484541119512, + 49.05242167494595, 51.82625340542532, 54.59261157791447, 57.35390629353549, 60.11407249577671, + 62.86294469139918, 65.60700533002442, 68.35188241755587, 71.0911215873505, 73.83114298092774, + 76.5619214331075, 79.29219477099443, 82.02317898872565, 84.75092261871822, 87.47905071435696, + 90.20628373487595, 92.93195553732798, 95.65875178125124, 98.38379955872202, 103.83947273604626, + 109.29308298700033, 114.75237699844604, 120.21685098493467, 125.69026220515521, 131.1693887591909, + 136.65452207212073, 150.40996838934234, + }; + + constexpr amrex::Real Cu64_pf_threshold_T9 = 0.01; + + // Cu65 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Cu65_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 9.999994999180668e-07, 6.9999755002045995e-06, 2.4999687505149974e-05, + 6.899761960959409e-05, 0.001582746795209749, 0.008566205076052314, 0.02581003681979722, 0.057591320122500796, + 0.10792392730898277, 0.18101069799385397, 0.28111203695738024, 0.411787082250892, 0.7699818248194361, + 1.243243516229259, 1.795457290518515, 2.3909099320146376, 3.0060510018870086, 4.249922794040544, + 5.493061443340548, 6.723832440821209, 7.948031990637284, 9.162199996648248, 10.367221568768269, + 11.56171562913966, 12.751299696013497, 13.937728190688523, 15.115702220030753, 18.049617062561534, + 20.970125914877936, 23.89295141762384, 26.81457571902411, 29.73149002480046, 32.6416564100248, + 35.55400707463974, 38.452797403001505, 41.34671133861061, 44.23154291613116, 47.106013889652445, + 49.97565343617433, 52.835027060484876, 55.68730996726144, 58.531611171040815, 61.37128981462146, + 64.2018853561356, 67.02960991520091, 69.84766101151745, 72.6666119086531, 75.47946998654855, + 78.28789316179756, 81.0912535427041, 83.89736495698251, 86.69527148720658, 89.49429346651452, + 92.29402407937047, 95.08908565746232, 97.88105604298448, 100.67508509646214, 106.26250398211617, + 111.84850342111599, 117.4417900735495, 123.0302617016947, 128.62868366069307, 134.22796893640455, + 139.83965096456365, 153.89340386924147, + }; + + constexpr amrex::Real Cu65_pf_threshold_T9 = 0.6; + + // Zn59 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Zn59_pf_array = { + 0.0, 0.0, 0.0, 0.0, 9.999950000398841e-06, + 7.099747961922954e-05, 0.00028096052689443105, 0.00076470753664671, 0.0016526336484229023, 0.003054330779174205, + 0.005056195870692491, 0.025387005590080287, 0.06285178690085493, 0.11510122058061825, 0.17968809226815288, + 0.2548948996252789, 0.3397397496243605, 0.4338290219975906, 0.5371925412424198, 0.7730668037358187, + 1.050645035814265, 1.3720405058751248, 1.7363168766421957, 2.1393268314341345, 3.0252910757955354, + 3.9926809084456005, 4.997212273764115, 6.028278520230698, 7.064759027791802, 8.110727582974489, + 9.161150127785412, 10.21464198117305, 11.267024926533402, 12.323855681186558, 14.962913010801817, + 17.604235347047926, 20.24361583064887, 22.875028040205873, 25.50238933005794, 28.11344726517284, + 30.722063569286863, 33.32138057025261, 35.909957118220525, 38.490020113492115, 41.0623387010602, + 43.62807843850981, 46.18273012228732, 48.7395493536656, 51.2828104767355, 53.82234709401009, + 56.357315619259694, 58.88638316483346, 61.41051052777474, 63.932814511201634, 66.4520038102309, + 68.96885337289802, 71.48449789813967, 73.9975337156495, 76.50410186221868, 79.01544176907483, + 81.52264233582204, 84.02768607397678, 86.53589886339817, 89.04366611623192, 94.056431336586, + 99.06942790686794, 104.09256336372843, 109.11349741002526, 114.14307779036396, 119.17755527342298, + 124.2196847250059, 136.85682209584556, + }; + + constexpr amrex::Real Zn59_pf_threshold_T9 = 0.3; + + // Zn60 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Zn60_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 1.9999980000601777e-06, 1.1999928000476974e-05, + 4.299907552651673e-05, 0.0021107707552105327, 0.014655087692010784, 0.04650565189537119, 0.0995484583270208, + 0.1701865579572265, 0.2532334746219091, 0.3443326907187112, 0.4407942846867419, 0.647054549773612, + 0.8778621209250755, 1.1497805752425092, 1.4806165530248636, 1.881161777329219, 2.8735646395797834, + 4.032469158504013, 5.241747015059643, 6.459904454377535, 7.6638772587034705, 8.85366542803745, + 10.025705185260378, 11.188579408146856, 12.337100907936577, 13.481435445942783, 16.308716010566968, + 19.11382792451231, 21.895747974180978, 24.660956589123135, 27.411620550893172, 30.14871758853954, + 32.87804518808903, 35.593088424682215, 38.29531449749844, 40.987665789057544, 43.67007355954642, + 46.34437147384374, 49.00661213891465, 51.66117365506587, 54.30753028716274, 56.946587616778004, + 59.57953034539341, 62.209018223992516, 64.82303947544645, 67.44279706940299, 70.0521124298195, + 72.6582900853156, 75.26170168075885, 77.86171501209185, 80.45808906674586, 83.05006709659531, + 85.6467240601399, 88.23539759975046, 90.82326955447033, 93.411736539412, 98.58498084903826, + 103.75609112710721, 108.92953516377385, 114.09923515249979, 119.2755589508551, 124.45292370698547, + 129.6379123882265, 142.61871220130905, + }; + + constexpr amrex::Real Zn60_pf_threshold_T9 = 0.7; + + // Zn61 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Zn61_pf_array = { + 1.7999838002017484e-05, 0.0006397952873393857, 0.0040965974745623066, 0.028482495075396356, 0.07688881630575588, + 0.13912869844027223, 0.20526630128905213, 0.26957818148568585, 0.3295749333898686, 0.3845362868936078, + 0.43456749552869717, 0.6278238181817123, 0.7651342981478653, 0.8773186917991607, 0.9783731141706986, + 1.0751075369582384, 1.171503640086486, 1.2704906153762476, 1.3745858330434266, 1.6069397947347475, + 1.8831641537163337, 2.2112199612444803, 2.591292164954303, 3.0172591487740945, 3.966511190712216, + 4.997212273764115, 6.063785208687608, 7.146772179452637, 8.237479288613633, 9.332558004700433, + 10.422281345951296, 11.512925464970229, 12.608198852372823, 13.698976741708323, 16.42558035070628, + 19.14822935122964, 21.864298841498474, 24.579776132444298, 27.291343748358386, 29.99187511704657, + 32.69361614895551, 35.38464466248829, 38.068073779200155, 40.74131191209861, 43.40943939931671, + 46.071504487177094, 48.71893006646287, 51.364907838922704, 54.00326119103617, 56.63828625712348, + 59.265732425811066, 61.890083608036626, 64.51160331698657, 67.1256245684405, 69.73507279273817, + 72.3471217290051, 74.9524835206734, 77.55808199686602, 80.16123261801803, 82.76409296648869, + 85.36116287925726, 87.96823716301947, 90.56628646890735, 93.16466022188617, 98.36680198235345, + 103.56818880940412, 108.77538448394658, 113.98355075350032, 119.19998934628525, 124.42577271791951, + 129.65280100072025, 142.76027576563084, + }; + + constexpr amrex::Real Zn61_pf_threshold_T9 = -1.0; + + // Zn62 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Zn62_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 9.999994999180668e-07, 4.999987500074422e-06, 2.2999735504161862e-05, + 7.799695815819724e-05, 0.003115142900145352, 0.01970360278557145, 0.059547335869893595, 0.12466949171651642, + 0.2123575914203245, 0.319021569867592, 0.4418356094178148, 0.5789561235173027, 0.8923496168387481, + 1.2561529303620298, 1.6716240438713295, 2.1402641438968577, 2.659835111545671, 3.817712325956905, + 5.056245805348308, 6.317164686747284, 7.570443252057374, 8.803874763534434, 10.01681623784313, + 11.215866230705851, 12.400816722322686, 13.574712071411344, 14.739769459487606, 17.624392804472908, + 20.485008647822152, 23.333335629688417, 26.165683547468205, 28.989430273558902, 31.806945665143072, + 34.615737436046814, 37.41234103449047, 40.201736875046635, 42.98124604013098, 45.750596767096994, + 48.51129070168462, 51.261188012722336, 54.00326119103617, 56.73909095624545, 59.46524119899128, + 62.18960013813541, 64.90416502025882, 67.61221522136103, 70.31302426120668, 73.01329232186683, + 75.70823617546374, 78.40122184710455, 81.0851744966277, 83.77269009528821, 86.45694631172489, + 89.13723024844938, 91.81705409254383, 94.49216650899693, 97.17230792198205, 102.52270443757499, + 107.87194189455028, 113.21871164448426, 118.5728727472484, 123.9286147328822, 129.28835491205663, + 134.65187547241544, 148.08328574476923, + }; + + constexpr amrex::Real Zn62_pf_threshold_T9 = 0.6; + + // Zn63 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Zn63_pf_array = { + 0.0, 0.0, 2.0999779503135708e-05, 0.0008955988316133736, 0.005926404124161771, + 0.01846644087893222, 0.03932647679087991, 0.06724454405282441, 0.10019278591386252, 0.1362313694045854, + 0.17384657873909096, 0.359827369818793, 0.5265853837941147, 0.6789483526101264, 0.8244793441521269, + 0.9679993000236199, 1.112338978443573, 1.2593287947763385, 1.4104065614011823, 1.730105849424735, + 2.0814422888497206, 2.4720111929724546, 2.904699841127882, 3.377049180019914, 4.409155302062135, + 5.517452896464707, 6.658011045870748, 7.8119734296220225, 8.961879012677683, 10.110501721920453, + 11.251560700835821, 12.388394202324129, 13.523820464114955, 14.652758082497977, 17.466168799258014, + 20.272280213536437, 23.07464109410989, 25.870760313759863, 28.671297827583693, 31.464000914016243, + 34.253757439878385, 37.03198184751338, 39.81177595347443, 42.58115440008397, 45.34242529739109, + 48.0955162239176, 50.83919360266296, 53.58003362658816, 56.316354261628625, 59.04395655193822, + 61.766330405393745, 64.48233293468645, 67.19367803168551, 69.90610460738752, 72.61269814399327, + 75.31587741486088, 78.01608443850206, 80.71269588751585, 83.41185714120081, 86.10793115125631, + 88.80114628595457, 91.49459768763563, 94.1890758111923, 96.88252721287336, 102.26925553676544, + 107.65586551045917, 113.04981310802245, 118.44344065437481, 123.84693670186793, 129.25224990741452, + 134.67161295525375, 148.2450726991215, + }; + + constexpr amrex::Real Zn63_pf_threshold_T9 = 0.15; + + // Zn64 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Zn64_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 2.9999954999842446e-06, 1.3999902000873147e-05, + 4.999875004177061e-05, 0.0023332757936723693, 0.015914686884551544, 0.05044783708922943, 0.10921398151227255, + 0.19089387591866153, 0.2932724173149937, 0.4150417717967164, 0.5558676295003555, 0.8948403077060952, + 1.3084125462016625, 1.790748124658162, 2.333651593039293, 2.9267922935254047, 4.210645017918261, + 5.552959584921617, 6.889591308354466, 8.207946941048617, 9.495519314209846, 10.764265574480024, + 12.007621706806335, 13.233904752137237, 14.446782334806132, 15.649690743076281, 18.61953160269753, + 21.56483302262463, 24.49602677504105, 27.417827895467507, 30.332382328879962, 33.244149222316615, + 36.146212304674116, 39.03858606524095, 41.92276585288919, 44.79993839171863, 47.66513179358455, + 50.5221971425424, 53.371566789689886, 56.209831630790625, 59.03939033395864, 61.864630124046435, + 64.6793967732176, 67.49280748997764, 70.2954284993163, 73.0957359910779, 75.89099738933227, + 78.67993524957357, 81.4659469921455, 84.251472505416, 87.0298286258917, 89.81076895762095, + 92.58582986900612, 95.35764668846731, 98.12926969358715, 100.89974265260756, 106.43770807114127, + 111.97569829095472, 117.50880078383246, 123.05224060841348, 128.59378828484247, 134.13772205855676, + 139.6898199458809, 153.5939569552101, + }; + + constexpr amrex::Real Zn64_pf_threshold_T9 = 0.7; + + // Zn65 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Zn65_pf_array = { + 0.0006407946472492813, 0.005227313758401113, 0.015332848781567519, 0.04824144222050441, 0.09081828816586361, + 0.13713152934841671, 0.1837105916382287, 0.22863802898801405, 0.27095952683021507, 0.31030131758840535, + 0.34662834545198434, 0.49107689501725815, 0.5995939064924939, 0.6977809281500116, 0.7979237757694042, + 0.9049458210462187, 1.0208734251065348, 1.1469128091721215, 1.2841533794184, 1.5964079905043334, + 1.9640068402769189, 2.387925833580821, 2.8629025775399515, 3.379433933212062, 4.489759334476764, + 5.662960480135946, 6.854354502255021, 8.0519780789023, 9.239899174217728, 10.431170293368542, + 11.608235644774552, 12.782686009834167, 13.946538820370678, 15.112973705377549, 18.0051652999907, + 20.888780275423983, 23.77253887742843, 26.65551102439442, 29.539081040852764, 32.41851285871059, + 35.29958222394445, 38.173727506999064, 41.04156644082631, 43.906120515696536, 46.75479937129403, + 49.60131924666134, 52.441942526946264, 55.27199256271027, 58.10112069536571, 60.92152444761672, + 63.73841342875308, 66.5480670966354, 69.35518452641965, 72.15946275961642, 74.95808577622208, + 77.75345767239243, 80.54757075378032, 83.33774916904709, 86.12781252181014, 88.91892932161096, + 91.70590678130284, 94.49216650899693, 97.27955345233566, 100.06547102851549, 105.64052225218141, + 111.21723164427414, 116.79507289557249, 122.3805996330745, 127.96925511613243, 133.56973802095084, + 139.1703362593718, 153.22051787382136, + }; + + constexpr amrex::Real Zn65_pf_threshold_T9 = -1.0; + + // Zn66 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Zn66_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 9.999994999180668e-07, 7.999968000178667e-06, + 2.8999579508186245e-05, 0.0016107021225983227, 0.01204812893531426, 0.04040078582432601, 0.09102099438589492, + 0.16438244207913832, 0.26019653201691706, 0.37891029603345083, 0.5215429871071863, 0.8811848690999937, + 1.3362508117913499, 1.8733499016344344, 2.475550349130621, 3.1258093820024664, 4.506454213048934, + 5.918893854273146, 7.313220387090301, 8.681011276645632, 10.01681623784313, 11.322974881011783, + 12.608198852372823, 13.87377946608825, 15.123843377614453, 16.364955728889846, 19.428638664352345, + 22.46898136767306, 25.493950461412076, 28.514788656097142, 31.532993785503194, 34.538776394910684, + 37.54939728095842, 40.542663462017224, 43.52971620185149, 46.50912670691979, 49.47270186883925, + 52.43182439678068, 55.384259864581345, 58.32074930457247, 61.25100364874696, 64.17397656801852, + 67.08977843666736, 70.0018116913447, 72.90401790688787, 75.80018258467682, 78.69335826990572, + 81.58001944840535, 84.46376043190331, 87.34508235427955, 90.21952896162597, 93.09665549277211, + 95.9662364809992, 98.83680561159919, 101.70578617951404, 104.57184062975949, 110.30219013180042, + 116.02941599964656, 121.75729602588181, 127.48804838225013, 133.21864968372074, 138.95261277552692, + 144.6946915352604, 159.0689917761978, + }; + + constexpr amrex::Real Zn66_pf_threshold_T9 = 0.7; + + // Ga62 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ga62_pf_array = { + 0.0008336524152437005, 0.008167554532594537, 0.027868053342472717, 0.1050372634174499, 0.21559835779801467, + 0.34029563240506333, 0.4676220455252539, 0.5919015205926715, 0.7107051335960444, 0.8232416738062582, + 0.9295006948445211, 1.381380306908594, 1.7409400976090856, 2.045452658604672, 2.315806010238066, + 2.5642321002941033, 2.79838261843859, 3.023325942301403, 3.2425754763431325, 3.6734040757567614, + 4.104092133246956, 4.541907320189493, 4.99061223730728, 5.451728258514008, 6.398594934535208, + 7.3901814282264295, 8.411832675758411, 9.449357272446683, 10.499573020252942, 11.55214617812351, + 12.614865543731012, 13.673946993642486, 14.735793311107967, 15.79789038680098, 18.459901457105648, + 21.128730945054574, 23.805175806741456, 26.48531721972659, 29.176453698386737, 31.866575846702172, + 34.558579022206864, 37.246826596012895, 39.93240394126305, 42.61591303344914, 45.294549349345054, + 47.96862447206298, 50.63768922645223, 53.30304684325313, 55.960176953928084, 58.61893935462267, + 61.27085541729969, 63.920734985547035, 66.56671275800687, 69.20858105222777, 71.85014151206116, + 74.48919884167641, 77.12953086872366, 79.76722238888463, 82.40204035131583, 85.03782435558612, + 87.67218684089717, 90.30763622913624, 92.94065124429552, 95.57847094999043, 100.85012006945631, + 106.12592844711043, 111.4078520038828, 116.69578506112511, 121.99096599018301, 127.2945053007122, + 132.60318545429578, 145.91727618678095, + }; + + constexpr amrex::Real Ga62_pf_threshold_T9 = -1.0; + + // Ga63 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ga63_pf_array = { + 7.499718764066433e-05, 0.0007337307537431251, 0.002525807460987918, 0.009855276830727048, 0.02127213527553977, + 0.035553419923117294, 0.05182270422542894, 0.06950087576425922, 0.08821049109819155, 0.10769858025336454, + 0.12778969055588596, 0.23402809911614747, 0.346191989266678, 0.46268314979996694, 0.5835287238346014, + 0.7094190723348186, 0.8414150189290321, 0.9808035026801893, 1.1289591298399606, 1.4566868859682558, + 1.8322727761091828, 2.257531030895443, 2.728085089005506, 3.2355209627331236, 4.310799125385514, + 5.442417710521793, 6.586171654854675, 7.736307096548285, 8.87626525995469, 10.01234195744821, + 11.138959023921435, 12.259613412458204, 13.37545400508649, 14.4884550312067, 17.252718377149463, + 20.011954685758795, 22.769667524548048, 25.527286881679668, 28.293709089003784, 31.0552837705217, + 33.81517000686603, 36.57217399808911, 39.32626813769273, 42.07247010475932, 44.81726984807027, + 47.55577925665719, 50.287256590654536, 53.01772604698703, 55.738276410853466, 58.45662536415625, + 61.16740407991167, 63.878175371128236, 66.58380719136616, 69.28456695920569, 71.98445384966874, + 74.68335485611736, 77.38155276077657, 80.07464008920206, 82.7675001248103, 85.45801270524719, + 88.15055871981343, 90.84109533842293, 93.53371496629849, 96.22406559030131, 101.60641370570083, + 106.9904978940063, 112.38038245407982, 117.77542944708641, 123.17484293050582, 128.58235958901884, + 133.9946212149161, 147.57246012100325, + }; + + constexpr amrex::Real Ga63_pf_threshold_T9 = -1.0; + + // Ga64 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ga64_pf_array = { + 0.03423039759993308, 0.16763591536685002, 0.35022367920733677, 0.6858289676431223, 0.9427336167220504, + 1.1444138644687163, 1.3096330550587163, 1.4491524868085273, 1.5697431989604145, 1.6760865182762712, + 1.7715708774571692, 2.1531555344481568, 2.451519448570061, 2.7032808457868316, 2.9225970127785126, + 3.119228601673051, 3.3009405975588524, 3.473927664761787, 3.6430966856931364, 3.984598983249016, + 4.346928125551054, 4.741346062630439, 5.1712631175797075, 5.634576701935962, 6.633318433280377, + 7.700747794511798, 8.8023721336499, 9.918376165029878, 11.039716704775545, 12.160028707028767, + 13.27594246533263, 14.392123922268269, 15.501909511534503, 16.612791892794426, 19.380030965286966, + 22.146374171189017, 24.91745573413823, 27.698679764402364, 30.475930499747957, 33.26223289774991, + 36.04728838875482, 38.82923583605908, 41.61204611237039, 44.38569359595842, 47.1536419386417, + 49.91872749937832, 52.67841960912994, 55.435995538980535, 58.185203812576255, 60.928468919969525, + 63.6716502125934, 66.41112426340997, 69.14521143829519, 71.88091317072791, 74.61094227854889, + 77.3385625758452, 80.06453899321556, 82.78992258886613, 85.5177319399488, 88.24017087850311, + 90.96083954356453, 93.68649765685633, 96.40881925206386, 99.13337663146821, 104.58331303092173, + 110.0363241128792, 115.49389776329019, 120.9611371269858, 126.4326928898058, 131.91517967323625, + 137.40220839467702, 151.16541945323846, + }; + + constexpr amrex::Real Ga64_pf_threshold_T9 = -1.0; + + // Ge63 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ge63_pf_array = { + 0.000165986223524686, 0.0016326664744561084, 0.005610233170479733, 0.02177714723626487, 0.04665168878378515, + 0.07727302949973423, 0.11151632969656394, 0.14800095181045786, 0.1858353760937512, 0.22443951119532218, + 0.2634313871971381, 0.4577020238117178, 0.6450613682764739, 0.8247735097028154, 0.9985749869406212, + 1.1686251730982724, 1.3371007030577453, 1.5061299555023016, 1.677778197699642, 2.036634113949162, + 2.4269202167641764, 2.856668979567201, 3.327269711201824, 3.834320133203363, 4.912654885736052, + 6.059123195581797, 7.215239978730097, 8.37793112408273, 9.532423871145296, 10.678214720088496, + 11.813030057420567, 12.943236711506893, 14.070152776337855, 15.184149983845444, 17.964974419407454, + 20.73321616779958, 23.495854559186192, 26.264529382104836, 29.03220408954219, 31.800782317435402, + 34.56833519715223, 37.323787637149024, 40.08395383939025, 42.832826035012715, 45.5800969492682, + 48.31969550810534, 51.05564816582637, 53.7836325818294, 56.50619682581586, 59.22475835160076, + 61.93912569310423, 64.64633591095672, 67.35718331668, 70.05963126223352, 72.76141970211177, + 75.45936880722746, 78.1566448751876, 80.85284251925908, 83.54538853382533, 86.23592515243483, + 88.9285447803104, 91.61889540431321, 94.31057862795122, 97.00124351971274, 102.3853277080182, + 107.76894265507813, 113.15597330385084, 118.55351730429544, 123.95393254086648, 129.36347554252475, + 134.77664768495006, 148.3475244240311, + }; + + constexpr amrex::Real Ge63_pf_threshold_T9 = -1.0; + + // Ge64 + + // this is log(partition function) + + inline AMREX_GPU_DEVICE amrex::Array1D Ge64_pf_array = { + 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 1.9999980000601777e-06, 9.999950000398841e-06, 4.399903202832672e-05, + 0.0001419899189544142, 0.004674059544880634, 0.02688824919571097, 0.07687677832685827, 0.1545109006542309, + 0.2534546918375469, 0.36599428367966563, 0.48557058304256434, 0.6075571566057034, 0.849814975507533, + 1.0930669416124805, 1.3689556608608948, 1.7371212886952603, 2.248946840814483, 3.6216707044204863, + 5.123963979403259, 6.565264970035361, 7.944492163932159, 9.268609280100158, 10.561007555452923, + 11.820410164718188, 13.051940913107783, 14.266586177324491, 15.471832056297226, 18.440483371248543, + 21.365119723118806, 24.278613898435825, 27.183170291323947, 30.082026214040866, 32.97335536789336, + 35.86053223489301, 38.740479475453284, 41.61204611237039, 44.47666537416415, 47.335409632225705, + 50.18366328567432, 53.02711578733687, 55.8608787329458, 58.686304886450245, 61.50620913252083, + 64.3203962468354, 67.1256245684405, 69.93196811797743, 72.73080506629215, 75.52485865236258, + 78.3174519640391, 81.10330188122026, 83.88631512079593, 86.66582428588028, 89.44414368282905, + 92.21673240506883, 94.99377547765799, 97.76983040787427, 100.54155370383761, 106.08442871620367, + 111.62602454247498, 117.16787419686186, 122.70995440192685, 128.25760009878417, 133.81229965812213, + 139.3640659254797, 153.2789489572572, + }; + + constexpr amrex::Real Ge64_pf_threshold_T9 = 0.6; + // interpolation routine - template - AMREX_GPU_DEVICE AMREX_INLINE - void interpolate_pf(const amrex::Real t9, int idx, - const T& temp_array, const T& pf_array, - amrex::Real& logpf, amrex::Real& dlogpf_dT9) { + template + AMREX_GPU_DEVICE AMREX_INLINE + void interpolate_pf(const amrex::Real t9, int idx, + const T& temp_array, const T& pf_array, + amrex::Real& logpf, amrex::Real& dlogpf_dT9) { + + // if the index is -1, we are either outside of the bounds or + // we never computed it. try recomputing here + if (idx == -1) { + idx = interp_net::find_index(t9, temp_array); + } + + // if the index is still -1, then we are out-of-bounds, so + // just skip the interpolation + + if (idx != -1) { + + // we have idx such that: + // temp_array[idx] <= t9 < temp_array[idx+1] + AMREX_ASSERT(t9 >= temp_array(idx) && t9 < temp_array(idx+1)); + + // find the derivative: dlog(pf)/dT9 -- this is + // (log(pf_{i+1}) - log(pf_i)) / (T_{i+1} - T_i) + + dlogpf_dT9 = (pf_array(idx+1) - pf_array(idx)) / + (temp_array(idx+1) - temp_array(idx)); + + // find log(PF) + + logpf = pf_array(idx) + dlogpf_dT9 * (t9 - temp_array(idx)); + + } else { + + // T < the smallest T or >= the largest T in the partition function table + logpf = 0.0; + dlogpf_dT9 = 0.0; + + } + + } + + struct pf_cache_t { + // Store the coefficient and derivative adjacent in memory, as they're + // always accessed at the same time. + amrex::Array2D data; + int index_temp_array_1{-1}; + + AMREX_GPU_DEVICE AMREX_INLINE + pf_cache_t() { + // The entries will be default-initialized to -900, + // log(partition_function) should never be -900. + for (int i = 1; i <= NumSpecTotal; ++i) { + data(i, 1) = -900.0_rt; + data(i, 2) = -900.0_rt; + } + } + }; + +} + +// get the partition function for nucleus inuc. Here pf_cache +// should already contain the index into the temp / pf arrays + +AMREX_GPU_DEVICE AMREX_INLINE +void get_partition_function(const int inuc, + [[maybe_unused]] const amrex::Real T9, + const part_fun::pf_cache_t& pf_cache, + amrex::Real& logpf, amrex::Real& dlogpf_dT9) { + + logpf = 0.0_rt; + dlogpf_dT9 = 0.0_rt; + + // inuc is the 1-based index for the species + + switch (inuc) { + + case O14: + if (T9 > part_fun::O14_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::O14_pf_array, logpf, dlogpf_dT9); + } + break; + + case O15: + if (T9 > part_fun::O15_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::O15_pf_array, logpf, dlogpf_dT9); + } + break; + + case O16: + if (T9 > part_fun::O16_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::O16_pf_array, logpf, dlogpf_dT9); + } + break; + + case O17: + if (T9 > part_fun::O17_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::O17_pf_array, logpf, dlogpf_dT9); + } + break; + + case O18: + if (T9 > part_fun::O18_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::O18_pf_array, logpf, dlogpf_dT9); + } + break; + + case F17: + if (T9 > part_fun::F17_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::F17_pf_array, logpf, dlogpf_dT9); + } + break; + + case F18: + if (T9 > part_fun::F18_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::F18_pf_array, logpf, dlogpf_dT9); + } + break; + + case F19: + if (T9 > part_fun::F19_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::F19_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ne18: + if (T9 > part_fun::Ne18_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ne18_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ne19: + if (T9 > part_fun::Ne19_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ne19_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ne20: + if (T9 > part_fun::Ne20_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ne20_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ne21: + if (T9 > part_fun::Ne21_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ne21_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ne22: + if (T9 > part_fun::Ne22_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ne22_pf_array, logpf, dlogpf_dT9); + } + break; + + case Na21: + if (T9 > part_fun::Na21_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Na21_pf_array, logpf, dlogpf_dT9); + } + break; + + case Na22: + if (T9 > part_fun::Na22_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Na22_pf_array, logpf, dlogpf_dT9); + } + break; + + case Na23: + if (T9 > part_fun::Na23_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Na23_pf_array, logpf, dlogpf_dT9); + } + break; + + case Mg23: + if (T9 > part_fun::Mg23_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Mg23_pf_array, logpf, dlogpf_dT9); + } + break; + + case Mg24: + if (T9 > part_fun::Mg24_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Mg24_pf_array, logpf, dlogpf_dT9); + } + break; + + case Mg25: + if (T9 > part_fun::Mg25_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Mg25_pf_array, logpf, dlogpf_dT9); + } + break; + + case Mg26: + if (T9 > part_fun::Mg26_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Mg26_pf_array, logpf, dlogpf_dT9); + } + break; + + case Al25: + if (T9 > part_fun::Al25_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Al25_pf_array, logpf, dlogpf_dT9); + } + break; + + case Al26: + if (T9 > part_fun::Al26_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Al26_pf_array, logpf, dlogpf_dT9); + } + break; + + case Al27: + if (T9 > part_fun::Al27_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Al27_pf_array, logpf, dlogpf_dT9); + } + break; + + case Si28: + if (T9 > part_fun::Si28_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Si28_pf_array, logpf, dlogpf_dT9); + } + break; + + case Si29: + if (T9 > part_fun::Si29_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Si29_pf_array, logpf, dlogpf_dT9); + } + break; + + case Si30: + if (T9 > part_fun::Si30_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Si30_pf_array, logpf, dlogpf_dT9); + } + break; + + case Si31: + if (T9 > part_fun::Si31_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Si31_pf_array, logpf, dlogpf_dT9); + } + break; + + case Si32: + if (T9 > part_fun::Si32_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Si32_pf_array, logpf, dlogpf_dT9); + } + break; + + case P29: + if (T9 > part_fun::P29_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::P29_pf_array, logpf, dlogpf_dT9); + } + break; - // if the index is -1, we are either outside of the bounds or - // we never computed it. try recomputing here - if (idx == -1) { - idx = interp_net::find_index(t9, temp_array); + case P30: + if (T9 > part_fun::P30_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::P30_pf_array, logpf, dlogpf_dT9); } + break; - // if the index is still -1, then we are out-of-bounds, so - // just skip the interpolation + case P31: + if (T9 > part_fun::P31_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::P31_pf_array, logpf, dlogpf_dT9); + } + break; - if (idx != -1) { + case P32: + if (T9 > part_fun::P32_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::P32_pf_array, logpf, dlogpf_dT9); + } + break; - // we have idx such that: - // temp_array[idx] <= t9 < temp_array[idx+1] - AMREX_ASSERT(t9 >= temp_array(idx) && t9 < temp_array(idx+1)); + case P33: + if (T9 > part_fun::P33_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::P33_pf_array, logpf, dlogpf_dT9); + } + break; - // find the derivative: dlog(pf)/dT9 -- this is - // (log(pf_{i+1}) - log(pf_i)) / (T_{i+1} - T_i) + case S32: + if (T9 > part_fun::S32_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::S32_pf_array, logpf, dlogpf_dT9); + } + break; - dlogpf_dT9 = (pf_array(idx+1) - pf_array(idx)) / - (temp_array(idx+1) - temp_array(idx)); + case S33: + if (T9 > part_fun::S33_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::S33_pf_array, logpf, dlogpf_dT9); + } + break; - // find log(PF) + case S34: + if (T9 > part_fun::S34_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::S34_pf_array, logpf, dlogpf_dT9); + } + break; - logpf = pf_array(idx) + dlogpf_dT9 * (t9 - temp_array(idx)); + case S35: + if (T9 > part_fun::S35_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::S35_pf_array, logpf, dlogpf_dT9); + } + break; - } else { + case S36: + if (T9 > part_fun::S36_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::S36_pf_array, logpf, dlogpf_dT9); + } + break; - // T < the smallest T or >= the largest T in the partition function table - logpf = 0.0; - dlogpf_dT9 = 0.0; + case Cl33: + if (T9 > part_fun::Cl33_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Cl33_pf_array, logpf, dlogpf_dT9); + } + break; + case Cl34: + if (T9 > part_fun::Cl34_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Cl34_pf_array, logpf, dlogpf_dT9); } + break; - } + case Cl35: + if (T9 > part_fun::Cl35_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Cl35_pf_array, logpf, dlogpf_dT9); + } + break; - struct pf_cache_t { - // Store the coefficient and derivative adjacent in memory, as they're - // always accessed at the same time. - amrex::Array2D data; - AMREX_GPU_DEVICE AMREX_INLINE - pf_cache_t() { - // The entries will be default-initialized to -900, - // log(partition_function) should never be -900. - for (int i = 1; i <= NumSpecTotal; ++i) { - data(i, 1) = -900.0_rt; - data(i, 2) = -900.0_rt; - } + case Cl36: + if (T9 > part_fun::Cl36_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Cl36_pf_array, logpf, dlogpf_dT9); } - }; + break; -} + case Cl37: + if (T9 > part_fun::Cl37_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Cl37_pf_array, logpf, dlogpf_dT9); + } + break; -// get the partition function for nucleus inuc. Here pf_cache -// should already contain the index into the temp / pf arrays + case Ar36: + if (T9 > part_fun::Ar36_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ar36_pf_array, logpf, dlogpf_dT9); + } + break; -AMREX_GPU_DEVICE AMREX_INLINE -void get_partition_function(const int inuc, - [[maybe_unused]] const amrex::Real T9, - const part_fun::pf_cache_t& pf_cache, - amrex::Real& logpf, amrex::Real& dlogpf_dT9) { + case Ar37: + if (T9 > part_fun::Ar37_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ar37_pf_array, logpf, dlogpf_dT9); + } + break; - logpf = 0.0_rt; - dlogpf_dT9 = 0.0_rt; + case Ar38: + if (T9 > part_fun::Ar38_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ar38_pf_array, logpf, dlogpf_dT9); + } + break; - // inuc is the 1-based index for the species + case Ar39: + if (T9 > part_fun::Ar39_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ar39_pf_array, logpf, dlogpf_dT9); + } + break; - switch (inuc) { + case Ar40: + if (T9 > part_fun::Ar40_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ar40_pf_array, logpf, dlogpf_dT9); + } + break; + + case K37: + if (T9 > part_fun::K37_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::K37_pf_array, logpf, dlogpf_dT9); + } + break; + + case K38: + if (T9 > part_fun::K38_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::K38_pf_array, logpf, dlogpf_dT9); + } + break; + + case K39: + if (T9 > part_fun::K39_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::K39_pf_array, logpf, dlogpf_dT9); + } + break; + + case K40: + if (T9 > part_fun::K40_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::K40_pf_array, logpf, dlogpf_dT9); + } + break; + + case K41: + if (T9 > part_fun::K41_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::K41_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ca40: + if (T9 > part_fun::Ca40_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ca40_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ca41: + if (T9 > part_fun::Ca41_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ca41_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ca42: + if (T9 > part_fun::Ca42_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ca42_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ca43: + if (T9 > part_fun::Ca43_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ca43_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ca44: + if (T9 > part_fun::Ca44_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ca44_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ca45: + if (T9 > part_fun::Ca45_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ca45_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ca46: + if (T9 > part_fun::Ca46_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ca46_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ca47: + if (T9 > part_fun::Ca47_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ca47_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ca48: + if (T9 > part_fun::Ca48_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ca48_pf_array, logpf, dlogpf_dT9); + } + break; + + case Sc43: + if (T9 > part_fun::Sc43_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Sc43_pf_array, logpf, dlogpf_dT9); + } + break; + + case Sc44: + if (T9 > part_fun::Sc44_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Sc44_pf_array, logpf, dlogpf_dT9); + } + break; + + case Sc45: + if (T9 > part_fun::Sc45_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Sc45_pf_array, logpf, dlogpf_dT9); + } + break; + + case Sc46: + if (T9 > part_fun::Sc46_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Sc46_pf_array, logpf, dlogpf_dT9); + } + break; + + case Sc47: + if (T9 > part_fun::Sc47_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Sc47_pf_array, logpf, dlogpf_dT9); + } + break; + + case Sc48: + if (T9 > part_fun::Sc48_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Sc48_pf_array, logpf, dlogpf_dT9); + } + break; + + case Sc49: + if (T9 > part_fun::Sc49_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Sc49_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ti44: + if (T9 > part_fun::Ti44_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ti44_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ti45: + if (T9 > part_fun::Ti45_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ti45_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ti46: + if (T9 > part_fun::Ti46_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ti46_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ti47: + if (T9 > part_fun::Ti47_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ti47_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ti48: + if (T9 > part_fun::Ti48_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ti48_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ti49: + if (T9 > part_fun::Ti49_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ti49_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ti50: + if (T9 > part_fun::Ti50_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ti50_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ti51: + if (T9 > part_fun::Ti51_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ti51_pf_array, logpf, dlogpf_dT9); + } + break; + + case V46: + if (T9 > part_fun::V46_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::V46_pf_array, logpf, dlogpf_dT9); + } + break; + + case V47: + if (T9 > part_fun::V47_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::V47_pf_array, logpf, dlogpf_dT9); + } + break; + + case V48: + if (T9 > part_fun::V48_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::V48_pf_array, logpf, dlogpf_dT9); + } + break; + + case V49: + if (T9 > part_fun::V49_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::V49_pf_array, logpf, dlogpf_dT9); + } + break; + + case V50: + if (T9 > part_fun::V50_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::V50_pf_array, logpf, dlogpf_dT9); + } + break; + + case V51: + if (T9 > part_fun::V51_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::V51_pf_array, logpf, dlogpf_dT9); + } + break; + + case V52: + if (T9 > part_fun::V52_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::V52_pf_array, logpf, dlogpf_dT9); + } + break; + + case Cr48: + if (T9 > part_fun::Cr48_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Cr48_pf_array, logpf, dlogpf_dT9); + } + break; + + case Cr49: + if (T9 > part_fun::Cr49_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Cr49_pf_array, logpf, dlogpf_dT9); + } + break; + + case Cr50: + if (T9 > part_fun::Cr50_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Cr50_pf_array, logpf, dlogpf_dT9); + } + break; + + case Cr51: + if (T9 > part_fun::Cr51_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Cr51_pf_array, logpf, dlogpf_dT9); + } + break; + + case Cr52: + if (T9 > part_fun::Cr52_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Cr52_pf_array, logpf, dlogpf_dT9); + } + break; + + case Cr53: + if (T9 > part_fun::Cr53_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Cr53_pf_array, logpf, dlogpf_dT9); + } + break; + + case Cr54: + if (T9 > part_fun::Cr54_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Cr54_pf_array, logpf, dlogpf_dT9); + } + break; + + case Mn50: + if (T9 > part_fun::Mn50_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Mn50_pf_array, logpf, dlogpf_dT9); + } + break; + + case Mn51: + if (T9 > part_fun::Mn51_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Mn51_pf_array, logpf, dlogpf_dT9); + } + break; + + case Mn52: + if (T9 > part_fun::Mn52_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Mn52_pf_array, logpf, dlogpf_dT9); + } + break; + + case Mn53: + if (T9 > part_fun::Mn53_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Mn53_pf_array, logpf, dlogpf_dT9); + } + break; + + case Mn54: + if (T9 > part_fun::Mn54_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Mn54_pf_array, logpf, dlogpf_dT9); + } + break; + + case Mn55: + if (T9 > part_fun::Mn55_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Mn55_pf_array, logpf, dlogpf_dT9); + } + break; + + case Fe52: + if (T9 > part_fun::Fe52_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Fe52_pf_array, logpf, dlogpf_dT9); + } + break; + + case Fe53: + if (T9 > part_fun::Fe53_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Fe53_pf_array, logpf, dlogpf_dT9); + } + break; + + case Fe54: + if (T9 > part_fun::Fe54_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Fe54_pf_array, logpf, dlogpf_dT9); + } + break; + + case Fe55: + if (T9 > part_fun::Fe55_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Fe55_pf_array, logpf, dlogpf_dT9); + } + break; + + case Fe56: + if (T9 > part_fun::Fe56_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Fe56_pf_array, logpf, dlogpf_dT9); + } + break; + + case Fe57: + if (T9 > part_fun::Fe57_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Fe57_pf_array, logpf, dlogpf_dT9); + } + break; + + case Fe58: + if (T9 > part_fun::Fe58_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Fe58_pf_array, logpf, dlogpf_dT9); + } + break; + + case Co53: + if (T9 > part_fun::Co53_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Co53_pf_array, logpf, dlogpf_dT9); + } + break; + + case Co54: + if (T9 > part_fun::Co54_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Co54_pf_array, logpf, dlogpf_dT9); + } + break; + + case Co55: + if (T9 > part_fun::Co55_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Co55_pf_array, logpf, dlogpf_dT9); + } + break; + + case Co56: + if (T9 > part_fun::Co56_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Co56_pf_array, logpf, dlogpf_dT9); + } + break; + + case Co57: + if (T9 > part_fun::Co57_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Co57_pf_array, logpf, dlogpf_dT9); + } + break; + + case Co58: + if (T9 > part_fun::Co58_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Co58_pf_array, logpf, dlogpf_dT9); + } + break; + + case Co59: + if (T9 > part_fun::Co59_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Co59_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ni56: + if (T9 > part_fun::Ni56_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ni56_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ni57: + if (T9 > part_fun::Ni57_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ni57_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ni58: + if (T9 > part_fun::Ni58_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ni58_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ni59: + if (T9 > part_fun::Ni59_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ni59_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ni60: + if (T9 > part_fun::Ni60_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ni60_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ni61: + if (T9 > part_fun::Ni61_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ni61_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ni62: + if (T9 > part_fun::Ni62_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ni62_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ni63: + if (T9 > part_fun::Ni63_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ni63_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ni64: + if (T9 > part_fun::Ni64_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ni64_pf_array, logpf, dlogpf_dT9); + } + break; + + case Cu57: + if (T9 > part_fun::Cu57_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Cu57_pf_array, logpf, dlogpf_dT9); + } + break; + + case Cu58: + if (T9 > part_fun::Cu58_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Cu58_pf_array, logpf, dlogpf_dT9); + } + break; + + case Cu59: + if (T9 > part_fun::Cu59_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Cu59_pf_array, logpf, dlogpf_dT9); + } + break; + + case Cu60: + if (T9 > part_fun::Cu60_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Cu60_pf_array, logpf, dlogpf_dT9); + } + break; + + case Cu61: + if (T9 > part_fun::Cu61_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Cu61_pf_array, logpf, dlogpf_dT9); + } + break; + + case Cu62: + if (T9 > part_fun::Cu62_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Cu62_pf_array, logpf, dlogpf_dT9); + } + break; + + case Cu63: + if (T9 > part_fun::Cu63_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Cu63_pf_array, logpf, dlogpf_dT9); + } + break; + + case Cu64: + if (T9 > part_fun::Cu64_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Cu64_pf_array, logpf, dlogpf_dT9); + } + break; + + case Cu65: + if (T9 > part_fun::Cu65_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Cu65_pf_array, logpf, dlogpf_dT9); + } + break; + + case Zn59: + if (T9 > part_fun::Zn59_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Zn59_pf_array, logpf, dlogpf_dT9); + } + break; + + case Zn60: + if (T9 > part_fun::Zn60_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Zn60_pf_array, logpf, dlogpf_dT9); + } + break; + + case Zn61: + if (T9 > part_fun::Zn61_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Zn61_pf_array, logpf, dlogpf_dT9); + } + break; + + case Zn62: + if (T9 > part_fun::Zn62_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Zn62_pf_array, logpf, dlogpf_dT9); + } + break; + + case Zn63: + if (T9 > part_fun::Zn63_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Zn63_pf_array, logpf, dlogpf_dT9); + } + break; + + case Zn64: + if (T9 > part_fun::Zn64_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Zn64_pf_array, logpf, dlogpf_dT9); + } + break; + + case Zn65: + if (T9 > part_fun::Zn65_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Zn65_pf_array, logpf, dlogpf_dT9); + } + break; + + case Zn66: + if (T9 > part_fun::Zn66_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Zn66_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ga62: + if (T9 > part_fun::Ga62_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ga62_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ga63: + if (T9 > part_fun::Ga63_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ga63_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ga64: + if (T9 > part_fun::Ga64_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ga64_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ge63: + if (T9 > part_fun::Ge63_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ge63_pf_array, logpf, dlogpf_dT9); + } + break; + + case Ge64: + if (T9 > part_fun::Ge64_pf_threshold_T9) { + part_fun::interpolate_pf(T9, pf_cache.index_temp_array_1, part_fun::temp_array_1, part_fun::Ge64_pf_array, logpf, dlogpf_dT9); + } + break; default: diff --git a/networks/sn160/pynucastro-info.txt b/networks/sn160/pynucastro-info.txt index 204ad605a..07cff37ec 100644 --- a/networks/sn160/pynucastro-info.txt +++ b/networks/sn160/pynucastro-info.txt @@ -1 +1 @@ -pynucastro version: 2.12.0 +pynucastro version: 3.1.0-1-ga50a4ed0d diff --git a/networks/sn160/reaclib_rates.H b/networks/sn160/reaclib_rates.H index 640e68ae6..081cad76b 100644 --- a/networks/sn160/reaclib_rates.H +++ b/networks/sn160/reaclib_rates.H @@ -8,83589 +8,42622 @@ #include #include -using namespace Rates; -using namespace Species; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Be7_to_Li7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { +namespace reaclib_rates { - // Be7 --> Li7 + using namespace Rates; + using namespace Species; - rate = 0.0; - drate_dT = 0.0; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Be7_to_Li7_electron_capture_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // Be7 --> Li7 - // ecw - ln_set_rate = -23.8328 + 3.02033 * tfactors.T913 - + -0.0742132 * tfactors.T9 + -0.00792386 * tfactors.T953 + -0.650113 * tfactors.lnT9; + rate = 0.0; + drate_dT = 0.0; - ln_set_rate += log_scor; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 3.02033 * tfactors.T923i - + -0.0742132 + (5.0/3.0) * -0.00792386 * tfactors.T923 + -0.650113 * tfactors.T9i; + // ecw + ln_set_rate = -23.8328 + 3.02033 * tfactors.T913 + + -0.0742132 * tfactors.T9 + -0.00792386 * tfactors.T953 + -0.650113 * tfactors.lnT9; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_C14_to_N14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // C14 --> N14 - - rate = 0.0; - drate_dT = 0.0; + ln_set_rate += log_scor; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 3.02033 * tfactors.T923i + + -0.0742132 + (5.0/3.0) * -0.00792386 * tfactors.T923 + -0.650113 * tfactors.T9i; - // wc12w - ln_set_rate = -26.2827; - amrex::ignore_unused(tfactors); - - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C14_to_N14_beta_neg_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // C14 --> N14 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_N13_to_C13_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // N13 --> C13 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // wc12w + ln_set_rate = -26.2827; + amrex::ignore_unused(tfactors); - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // wc12w - ln_set_rate = -6.7601; - amrex::ignore_unused(tfactors); + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N13_to_C13_beta_pos_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // N13 --> C13 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_O14_to_N14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // O14 --> N14 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // wc12w + ln_set_rate = -6.7601; + amrex::ignore_unused(tfactors); - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // wc12w - ln_set_rate = -4.62354; - amrex::ignore_unused(tfactors); + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O14_to_N14_beta_pos_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // O14 --> N14 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_O15_to_N15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // O15 --> N15 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // wc12w + ln_set_rate = -4.62354; + amrex::ignore_unused(tfactors); - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // wc12w - ln_set_rate = -5.17053; - amrex::ignore_unused(tfactors); + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O15_to_N15_beta_pos_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // O15 --> N15 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_F17_to_O17_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // F17 --> O17 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // wc12w + ln_set_rate = -5.17053; + amrex::ignore_unused(tfactors); - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // wc12w - ln_set_rate = -4.53318; - amrex::ignore_unused(tfactors); + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F17_to_O17_beta_pos_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // F17 --> O17 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_F18_to_O18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // F18 --> O18 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // wc12w + ln_set_rate = -4.53318; + amrex::ignore_unused(tfactors); - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // wc12w - ln_set_rate = -9.15982; - amrex::ignore_unused(tfactors); + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F18_to_O18_beta_pos_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // F18 --> O18 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ne18_to_F18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ne18 --> F18 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // wc12w + ln_set_rate = -9.15982; + amrex::ignore_unused(tfactors); - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // wc12w - ln_set_rate = -0.879336; - amrex::ignore_unused(tfactors); + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne18_to_F18_beta_pos_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ne18 --> F18 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ne19_to_F19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ne19 --> F19 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // wc12w + ln_set_rate = -0.879336; + amrex::ignore_unused(tfactors); - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // wc12w - ln_set_rate = -3.21142; - amrex::ignore_unused(tfactors); + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne19_to_F19_beta_pos_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ne19 --> F19 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Zn59_to_Cu59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Zn59 --> Cu59 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // wc12w + ln_set_rate = -3.21142; + amrex::ignore_unused(tfactors); - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // wc12w - ln_set_rate = 1.33624; - amrex::ignore_unused(tfactors); + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn59_to_Cu59_beta_pos_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Zn59 --> Cu59 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ge63_to_Ga63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ge63 --> Ga63 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // wc12w + ln_set_rate = 1.33624; + amrex::ignore_unused(tfactors); - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // wc12w - ln_set_rate = 1.53061; - amrex::ignore_unused(tfactors); + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ge63_to_Ga63_beta_pos_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ge63 --> Ga63 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_d_to_n_p_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // d --> n + p + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // wc12w + ln_set_rate = 1.53061; + amrex::ignore_unused(tfactors); - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // an06n - ln_set_rate = 34.6293 + -25.815 * tfactors.T9i + -2.70618 * tfactors.T913 - + 0.11718 * tfactors.T9 + -0.00312788 * tfactors.T953 + 1.96913 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 25.815 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.70618 * tfactors.T923i - + 0.11718 + (5.0/3.0) * -0.00312788 * tfactors.T923 + 1.96913 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_B8_to_He4_He4_beta_pos_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // an06n - ln_set_rate = 31.1075 + -25.815 * tfactors.T9i + -0.0102082 * tfactors.T913 - + -0.0893959 * tfactors.T9 + 0.00696704 * tfactors.T953 + 2.5 * tfactors.lnT9; + // B8 --> He4 + He4 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 25.815 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.0102082 * tfactors.T923i - + -0.0893959 + (5.0/3.0) * 0.00696704 * tfactors.T923 + 2.5 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // wc12w + ln_set_rate = -0.105148; + amrex::ignore_unused(tfactors); - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // an06n - ln_set_rate = 33.0154 + -25.815 * tfactors.T9i + -2.30472 * tfactors.T913 - + -0.887862 * tfactors.T9 + 0.137663 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 25.815 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.30472 * tfactors.T923i - + -0.887862 + (5.0/3.0) * 0.137663 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn59_to_p_Ni58_beta_pos_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Zn59 --> p + Ni58 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He3_to_p_d_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // He3 --> p + d + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // wc12w + ln_set_rate = -5.57052; + amrex::ignore_unused(tfactors); - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // de04 - ln_set_rate = 32.4383 + -63.7435 * tfactors.T9i + -3.7208 * tfactors.T913i + 0.198654 * tfactors.T913 - + 1.83333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 63.7435 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -3.7208 * tfactors.T943i + (1.0/3.0) * 0.198654 * tfactors.T923i - + 1.83333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_p_n_to_d_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // de04n - ln_set_rate = 31.032 + -63.7435 * tfactors.T9i + -3.7208 * tfactors.T913i + 0.871782 * tfactors.T913 - + 0.833333 * tfactors.lnT9; + // p + n --> d - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 63.7435 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -3.7208 * tfactors.T943i + (1.0/3.0) * 0.871782 * tfactors.T923i - + 0.833333 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // an06n + ln_set_rate = 12.3687 + -2.70618 * tfactors.T913 + + 0.11718 * tfactors.T9 + -0.00312788 * tfactors.T953 + 0.469127 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -2.70618 * tfactors.T923i + + 0.11718 + (5.0/3.0) * -0.00312788 * tfactors.T923 + 0.469127 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_to_n_He3_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // He4 --> n + He3 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // an06n + ln_set_rate = 10.7548 + -2.30472 * tfactors.T913 + + -0.887862 * tfactors.T9 + 0.137663 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ka02n - ln_set_rate = 33.0131 + -238.79 * tfactors.T9i + -1.50147 * tfactors.T913 - + 2.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -2.30472 * tfactors.T923i + + -0.887862 + (5.0/3.0) * 0.137663 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 238.79 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.50147 * tfactors.T923i - + 2.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // an06n + ln_set_rate = 8.84688 + -0.0102082 * tfactors.T913 + + -0.0893959 * tfactors.T9 + 0.00696704 * tfactors.T953 + 1.0 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // ka02n - ln_set_rate = 29.4845 + -238.79 * tfactors.T9i - + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.0102082 * tfactors.T923i + + -0.0893959 + (5.0/3.0) * 0.00696704 * tfactors.T923 + 1.0 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 238.79 * tfactors.T9i * tfactors.T9i - + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_p_p_to_d_beta_pos_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // p + p --> d -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_to_d_d_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // He4 --> d + d + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // bet+w + ln_set_rate = -34.7863 + -3.51193 * tfactors.T913i + 3.10086 * tfactors.T913 + + -0.198314 * tfactors.T9 + 0.0126251 * tfactors.T953 + -1.02517 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // nacrn - ln_set_rate = 28.2984 + -276.744 * tfactors.T9i + -4.26166 * tfactors.T913i + -0.119233 * tfactors.T913 - + 0.778829 * tfactors.T9 + -0.0925203 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -3.51193 * tfactors.T943i + (1.0/3.0) * 3.10086 * tfactors.T923i + + -0.198314 + (5.0/3.0) * 0.0126251 * tfactors.T923 + -1.02517 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 276.744 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -4.26166 * tfactors.T943i + (1.0/3.0) * -0.119233 * tfactors.T923i - + 0.778829 + (5.0/3.0) * -0.0925203 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_p_p_to_d_electron_capture_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // p + p --> d -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Li6_to_He4_d_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Li6 --> He4 + d + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ecw + ln_set_rate = -43.6499 + -0.00246064 * tfactors.T9i + -2.7507 * tfactors.T913i + -0.424877 * tfactors.T913 + + 0.015987 * tfactors.T9 + -0.000690875 * tfactors.T953 + -0.207625 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // tu19r - ln_set_rate = 27.5672 + -24.9919 * tfactors.T9i; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.00246064 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.7507 * tfactors.T943i + (1.0/3.0) * -0.424877 * tfactors.T923i + + 0.015987 + (5.0/3.0) * -0.000690875 * tfactors.T923 + -0.207625 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 24.9919 * tfactors.T9i * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_d_p_to_He3_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // tu19n - ln_set_rate = 22.7676 + -17.1028 * tfactors.T9i + -7.55198 * tfactors.T913i + 5.77546 * tfactors.T913 - + -0.487854 * tfactors.T9 + 0.032833 * tfactors.T953 + 0.376948 * tfactors.lnT9; + // d + p --> He3 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 17.1028 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -7.55198 * tfactors.T943i + (1.0/3.0) * 5.77546 * tfactors.T923i - + -0.487854 + (5.0/3.0) * 0.032833 * tfactors.T923 + 0.376948 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // de04 + ln_set_rate = 8.93525 + -3.7208 * tfactors.T913i + 0.198654 * tfactors.T913 + + 0.333333 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -3.7208 * tfactors.T943i + (1.0/3.0) * 0.198654 * tfactors.T923i + + 0.333333 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Li7_to_n_Li6_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Li7 --> n + Li6 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // de04n + ln_set_rate = 7.52898 + -3.7208 * tfactors.T913i + 0.871782 * tfactors.T913 + + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // jz10n - ln_set_rate = 32.2347 + -84.1369 * tfactors.T9i - + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -3.7208 * tfactors.T943i + (1.0/3.0) * 0.871782 * tfactors.T923i + + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 84.1369 * tfactors.T9i * tfactors.T9i - + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_d_d_to_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // d + d --> He4 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Be7_to_p_Li6_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Be7 --> p + Li6 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // nacrn + ln_set_rate = 3.78177 + -4.26166 * tfactors.T913i + -0.119233 * tfactors.T913 + + 0.778829 * tfactors.T9 + -0.0925203 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // nacrn - ln_set_rate = 37.4661 + -65.0548 * tfactors.T9i + -8.4372 * tfactors.T913i + -0.515473 * tfactors.T913 - + 0.0285578 * tfactors.T9 + 0.00879731 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -4.26166 * tfactors.T943i + (1.0/3.0) * -0.119233 * tfactors.T923i + + 0.778829 + (5.0/3.0) * -0.0925203 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 65.0548 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -8.4372 * tfactors.T943i + (1.0/3.0) * -0.515473 * tfactors.T923i - + 0.0285578 + (5.0/3.0) * 0.00879731 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_d_He4_to_Li6_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // d + He4 --> Li6 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Be7_to_He4_He3_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Be7 --> He4 + He3 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // tu19r + ln_set_rate = 4.12313 + -7.889 * tfactors.T9i + + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // cd08n - ln_set_rate = 38.7379 + -18.4059 * tfactors.T9i + -12.8271 * tfactors.T913i + -0.0308225 * tfactors.T913 - + -0.654685 * tfactors.T9 + 0.0896331 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 7.889 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 18.4059 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -12.8271 * tfactors.T943i + (1.0/3.0) * -0.0308225 * tfactors.T923i - + -0.654685 + (5.0/3.0) * 0.0896331 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // tu19n + ln_set_rate = -0.676485 + 6.3911e-05 * tfactors.T9i + -7.55198 * tfactors.T913i + 5.77546 * tfactors.T913 + + -0.487854 * tfactors.T9 + 0.032833 * tfactors.T953 + -1.12305 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // cd08n - ln_set_rate = 40.8355 + -18.4059 * tfactors.T9i + -12.8271 * tfactors.T913i + -3.8126 * tfactors.T913 - + 0.0942285 * tfactors.T9 + -0.00301018 * tfactors.T953 + 2.83333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -6.3911e-05 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -7.55198 * tfactors.T943i + (1.0/3.0) * 5.77546 * tfactors.T923i + + -0.487854 + (5.0/3.0) * 0.032833 * tfactors.T923 + -1.12305 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 18.4059 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -12.8271 * tfactors.T943i + (1.0/3.0) * -3.8126 * tfactors.T923i - + 0.0942285 + (5.0/3.0) * -0.00301018 * tfactors.T923 + 2.83333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_He3_n_to_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // He3 + n --> He4 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_B8_to_p_Be7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // B8 --> p + Be7 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ka02n + ln_set_rate = 9.04572 + -1.50147 * tfactors.T913 + + 1.0 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // nacrr - ln_set_rate = 31.0163 + -8.93482 * tfactors.T9i; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.50147 * tfactors.T923i + + 1.0 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 8.93482 * tfactors.T9i * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ka02n + ln_set_rate = 5.51711; + amrex::ignore_unused(tfactors); - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // nacrn - ln_set_rate = 35.8138 + -1.58982 * tfactors.T9i + -10.264 * tfactors.T913i + -0.203472 * tfactors.T913 - + 0.121083 * tfactors.T9 + -0.00700063 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.58982 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -10.264 * tfactors.T943i + (1.0/3.0) * -0.203472 * tfactors.T923i - + 0.121083 + (5.0/3.0) * -0.00700063 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_He3_p_to_He4_beta_pos_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // He3 + p --> He4 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_B8_to_He4_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // B8 --> He4 + He4 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // bet+w + ln_set_rate = -27.7611 + -4.30107e-12 * tfactors.T9i + -6.141 * tfactors.T913i + -1.93473e-09 * tfactors.T913 + + 2.04145e-10 * tfactors.T9 + -1.80372e-11 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // wc12w - ln_set_rate = -0.105148; - amrex::ignore_unused(tfactors); + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 4.30107e-12 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -6.141 * tfactors.T943i + (1.0/3.0) * -1.93473e-09 * tfactors.T923i + + 2.04145e-10 + (5.0/3.0) * -1.80372e-11 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_He3_He4_to_Be7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // He3 + He4 --> Be7 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_B10_to_p_Be9_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // B10 --> p + Be9 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // cd08n + ln_set_rate = 17.7075 + -12.8271 * tfactors.T913i + -3.8126 * tfactors.T913 + + 0.0942285 * tfactors.T9 + -0.00301018 * tfactors.T953 + 1.33333 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // nacrr - ln_set_rate = 37.9538 + -87.9663 * tfactors.T9i; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -12.8271 * tfactors.T943i + (1.0/3.0) * -3.8126 * tfactors.T923i + + 0.0942285 + (5.0/3.0) * -0.00301018 * tfactors.T923 + 1.33333 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 87.9663 * tfactors.T9i * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // cd08n + ln_set_rate = 15.6099 + -12.8271 * tfactors.T913i + -0.0308225 * tfactors.T913 + + -0.654685 * tfactors.T9 + 0.0896331 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // nacrr - ln_set_rate = 30.6751 + -79.0223 * tfactors.T9i; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -12.8271 * tfactors.T943i + (1.0/3.0) * -0.0308225 * tfactors.T923i + + -0.654685 + (5.0/3.0) * 0.0896331 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 79.0223 * tfactors.T9i * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Li6_n_to_Li7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // nacrn - ln_set_rate = 39.2789 + -76.4272 * tfactors.T9i + -10.361 * tfactors.T913i + 0.695179 * tfactors.T913 - + 0.342365 * tfactors.T9 + -0.356569 * tfactors.T953 + 0.833333 * tfactors.lnT9; + // Li6 + n --> Li7 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 76.4272 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -10.361 * tfactors.T943i + (1.0/3.0) * 0.695179 * tfactors.T923i - + 0.342365 + (5.0/3.0) * -0.356569 * tfactors.T923 + 0.833333 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // jz10n + ln_set_rate = 9.04782; + amrex::ignore_unused(tfactors); - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_B10_to_He4_Li6_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // B10 --> He4 + Li6 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Li6_p_to_Be7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // cf88n - ln_set_rate = 38.6952 + -51.7561 * tfactors.T9i + -18.79 * tfactors.T913i + 0.234225 * tfactors.T913 - + 3.23344 * tfactors.T9 + -1.14529 * tfactors.T953 + 0.833333 * tfactors.lnT9; + // Li6 + p --> Be7 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 51.7561 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -18.79 * tfactors.T943i + (1.0/3.0) * 0.234225 * tfactors.T923i - + 3.23344 + (5.0/3.0) * -1.14529 * tfactors.T923 + 0.833333 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nacrn + ln_set_rate = 14.2792 + -8.4372 * tfactors.T913i + -0.515473 * tfactors.T913 + + 0.0285578 * tfactors.T9 + 0.00879731 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // cf88r - ln_set_rate = 24.5212 + -55.4692 * tfactors.T9i + 3.33334 * tfactors.T913i + 3.25335 * tfactors.T913 - + 0.374434 * tfactors.T9 + -0.0706244 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -8.4372 * tfactors.T943i + (1.0/3.0) * -0.515473 * tfactors.T923i + + 0.0285578 + (5.0/3.0) * 0.00879731 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 55.4692 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 3.33334 * tfactors.T943i + (1.0/3.0) * 3.25335 * tfactors.T923i - + 0.374434 + (5.0/3.0) * -0.0706244 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Li6_He4_to_B10_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Li6 + He4 --> B10 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_B11_to_n_B10_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // B11 --> n + B10 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // cf88r + ln_set_rate = 1.04267 + -3.71313 * tfactors.T9i + 3.33334 * tfactors.T913i + 3.25335 * tfactors.T913 + + 0.374434 * tfactors.T9 + -0.0706244 * tfactors.T953 + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // wagn - ln_set_rate = 35.2227 + -132.928 * tfactors.T9i + 2.65756e-10 * tfactors.T913i + -9.63588e-10 * tfactors.T913 - + 1.07466e-10 * tfactors.T9 + -9.87569e-12 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.71313 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 3.33334 * tfactors.T943i + (1.0/3.0) * 3.25335 * tfactors.T923i + + 0.374434 + (5.0/3.0) * -0.0706244 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 132.928 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.65756e-10 * tfactors.T943i + (1.0/3.0) * -9.63588e-10 * tfactors.T923i - + 1.07466e-10 + (5.0/3.0) * -9.87569e-12 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // cf88n + ln_set_rate = 15.2167 + -18.79 * tfactors.T913i + 0.234225 * tfactors.T913 + + 3.23344 * tfactors.T9 + -1.14529 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -18.79 * tfactors.T943i + (1.0/3.0) * 0.234225 * tfactors.T923i + + 3.23344 + (5.0/3.0) * -1.14529 * tfactors.T923 + -0.666667 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_B11_to_He4_Li7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // B11 --> He4 + Li7 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Li7_He4_to_B11_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // nacrn - ln_set_rate = 42.8425 + -100.541 * tfactors.T9i + -19.163 * tfactors.T913i + 0.0587651 * tfactors.T913 - + 0.773338 * tfactors.T9 + -0.201519 * tfactors.T953 + 0.833333 * tfactors.lnT9; + // Li7 + He4 --> B11 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 100.541 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -19.163 * tfactors.T943i + (1.0/3.0) * 0.0587651 * tfactors.T923i - + 0.773338 + (5.0/3.0) * -0.201519 * tfactors.T923 + 0.833333 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nacrr + ln_set_rate = 10.6937 + -6.44203 * tfactors.T9i + + 0.190698 * tfactors.T9 + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // nacrr - ln_set_rate = 35.1078 + -106.983 * tfactors.T9i - + 0.190698 * tfactors.T9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 6.44203 * tfactors.T9i * tfactors.T9i + + 0.190698 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 106.983 * tfactors.T9i * tfactors.T9i - + 0.190698; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nacrr + ln_set_rate = 5.81084 + -2.95915 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // nacrr - ln_set_rate = 30.2249 + -103.501 * tfactors.T9i; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.95915 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 103.501 * tfactors.T9i * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nacrn + ln_set_rate = 18.4284 + -19.163 * tfactors.T913i + 0.0587651 * tfactors.T913 + + 0.773338 * tfactors.T9 + -0.201519 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -19.163 * tfactors.T943i + (1.0/3.0) * 0.0587651 * tfactors.T923i + + 0.773338 + (5.0/3.0) * -0.201519 * tfactors.T923 + -0.666667 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_C12_to_p_B11_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // C12 --> p + B11 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Be7_p_to_B8_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // nw00n - ln_set_rate = 43.578 + -185.173 * tfactors.T9i + -12.095 * tfactors.T913i + -1.95046 * tfactors.T913 - + 9.56928 * tfactors.T9 + -10.0637 * tfactors.T953 + 0.833333 * tfactors.lnT9; + // Be7 + p --> B8 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 185.173 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -12.095 * tfactors.T943i + (1.0/3.0) * -1.95046 * tfactors.T923i - + 9.56928 + (5.0/3.0) * -10.0637 * tfactors.T923 + 0.833333 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nacrr + ln_set_rate = 7.73399 + -7.345 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // nw00r - ln_set_rate = 33.6351 + -186.885 * tfactors.T9i; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 7.345 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 186.885 * tfactors.T9i * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nacrn + ln_set_rate = 12.5315 + -10.264 * tfactors.T913i + -0.203472 * tfactors.T913 + + 0.121083 * tfactors.T9 + -0.00700063 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // nw00n - ln_set_rate = 50.5262 + -185.173 * tfactors.T9i + -12.095 * tfactors.T913i + -6.68421 * tfactors.T913 - + -0.0148736 * tfactors.T9 + 0.0364288 * tfactors.T953 + 2.83333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -10.264 * tfactors.T943i + (1.0/3.0) * -0.203472 * tfactors.T923i + + 0.121083 + (5.0/3.0) * -0.00700063 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 185.173 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -12.095 * tfactors.T943i + (1.0/3.0) * -6.68421 * tfactors.T923i - + -0.0148736 + (5.0/3.0) * 0.0364288 * tfactors.T923 + 2.83333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Be9_p_to_B10_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Be9 + p --> B10 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_C13_to_n_C12_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // C13 --> n + C12 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // nacrr + ln_set_rate = 7.68698 + -2.59506 * tfactors.T9i + + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 30.8808 + -57.4077 * tfactors.T9i + 1.49573 * tfactors.T913i + -0.841102 * tfactors.T913 - + 0.0340543 * tfactors.T9 + -0.0026392 * tfactors.T953 + 3.1662 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.59506 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 57.4077 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.49573 * tfactors.T943i + (1.0/3.0) * -0.841102 * tfactors.T923i - + 0.0340543 + (5.0/3.0) * -0.0026392 * tfactors.T923 + 3.1662 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nacrn + ln_set_rate = 16.2908 + -10.361 * tfactors.T913i + 0.695179 * tfactors.T913 + + 0.342365 * tfactors.T9 + -0.356569 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -10.361 * tfactors.T943i + (1.0/3.0) * 0.695179 * tfactors.T923i + + 0.342365 + (5.0/3.0) * -0.356569 * tfactors.T923 + -0.666667 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_C14_to_n_C13_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // C14 --> n + C13 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // nacrr + ln_set_rate = 14.9657 + -11.5391 * tfactors.T9i + + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 59.5926 + -95.0156 * tfactors.T9i + 18.3578 * tfactors.T913i + -46.5786 * tfactors.T913 - + 2.58472 * tfactors.T9 + -0.118622 * tfactors.T953 + 21.4142 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 11.5391 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 95.0156 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 18.3578 * tfactors.T943i + (1.0/3.0) * -46.5786 * tfactors.T923i - + 2.58472 + (5.0/3.0) * -0.118622 * tfactors.T923 + 21.4142 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_B10_n_to_B11_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // B10 + n --> B11 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_N13_to_p_C12_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // N13 --> p + C12 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // wagn + ln_set_rate = 11.1004 + -1.9027e-12 * tfactors.T9i + 2.65756e-10 * tfactors.T913i + -9.63588e-10 * tfactors.T913 + + 1.07466e-10 * tfactors.T9 + -9.87569e-12 * tfactors.T953 + 3.12603e-10 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ls09r - ln_set_rate = 40.4354 + -26.326 * tfactors.T9i + -5.10735 * tfactors.T913i + -2.24111 * tfactors.T913 - + 0.148883 * tfactors.T9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.9027e-12 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.65756e-10 * tfactors.T943i + (1.0/3.0) * -9.63588e-10 * tfactors.T923i + + 1.07466e-10 + (5.0/3.0) * -9.87569e-12 * tfactors.T923 + 3.12603e-10 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 26.326 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -5.10735 * tfactors.T943i + (1.0/3.0) * -2.24111 * tfactors.T923i - + 0.148883; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_B11_p_to_C12_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // ls09n - ln_set_rate = 40.0408 + -22.5475 * tfactors.T9i + -13.692 * tfactors.T913i + -0.230881 * tfactors.T913 - + 4.44362 * tfactors.T9 + -3.15898 * tfactors.T953 + 0.833333 * tfactors.lnT9; + // B11 + p --> C12 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 22.5475 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -13.692 * tfactors.T943i + (1.0/3.0) * -0.230881 * tfactors.T923i - + 4.44362 + (5.0/3.0) * -3.15898 * tfactors.T923 + 0.833333 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nw00n + ln_set_rate = 25.5647 + -12.095 * tfactors.T913i + -6.68421 * tfactors.T913 + + -0.0148736 * tfactors.T9 + 0.0364288 * tfactors.T953 + 1.33333 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -12.095 * tfactors.T943i + (1.0/3.0) * -6.68421 * tfactors.T923i + + -0.0148736 + (5.0/3.0) * 0.0364288 * tfactors.T923 + 1.33333 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_N14_to_n_N13_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // N14 --> n + N13 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // nw00n + ln_set_rate = 18.6165 + -12.095 * tfactors.T913i + -1.95046 * tfactors.T913 + + 9.56928 * tfactors.T9 + -10.0637 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // wiesr - ln_set_rate = 19.5584 + -125.474 * tfactors.T9i + 9.44873e-10 * tfactors.T913i + -2.33713e-09 * tfactors.T913 - + 1.97507e-10 * tfactors.T9 + -1.49747e-11 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -12.095 * tfactors.T943i + (1.0/3.0) * -1.95046 * tfactors.T923i + + 9.56928 + (5.0/3.0) * -10.0637 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 125.474 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 9.44873e-10 * tfactors.T943i + (1.0/3.0) * -2.33713e-09 * tfactors.T923i - + 1.97507e-10 + (5.0/3.0) * -1.49747e-11 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nw00r + ln_set_rate = 8.67352 + -1.71197 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // wiesn - ln_set_rate = 37.1268 + -122.484 * tfactors.T9i + 1.72241e-10 * tfactors.T913i + -5.62522e-10 * tfactors.T913 - + 5.59212e-11 * tfactors.T9 + -4.6549e-12 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.71197 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 122.484 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.72241e-10 * tfactors.T943i + (1.0/3.0) * -5.62522e-10 * tfactors.T923i - + 5.59212e-11 + (5.0/3.0) * -4.6549e-12 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C12_n_to_C13_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // C12 + n --> C13 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_N14_to_p_C13_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // N14 --> p + C13 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ks03 + ln_set_rate = 7.98821 + -0.00836732 * tfactors.T9i + 1.49573 * tfactors.T913i + -0.841102 * tfactors.T913 + + 0.0340543 * tfactors.T9 + -0.0026392 * tfactors.T953 + 1.6662 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // nacrr - ln_set_rate = 37.1528 + -93.4071 * tfactors.T9i + -0.196703 * tfactors.T913 - + 0.142126 * tfactors.T9 + -0.0238912 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.00836732 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.49573 * tfactors.T943i + (1.0/3.0) * -0.841102 * tfactors.T923i + + 0.0340543 + (5.0/3.0) * -0.0026392 * tfactors.T923 + 1.6662 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 93.4071 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.196703 * tfactors.T923i - + 0.142126 + (5.0/3.0) * -0.0238912 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C12_p_to_N13_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // nacrr - ln_set_rate = 38.3716 + -101.18 * tfactors.T9i; + // C12 + p --> N13 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 101.18 * tfactors.T9i * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ls09n + ln_set_rate = 17.1482 + -13.692 * tfactors.T913i + -0.230881 * tfactors.T913 + + 4.44362 * tfactors.T9 + -3.15898 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // nacrn - ln_set_rate = 41.7046 + -87.6256 * tfactors.T9i + -13.72 * tfactors.T913i + -0.450018 * tfactors.T913 - + 3.70823 * tfactors.T9 + -1.70545 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -13.692 * tfactors.T943i + (1.0/3.0) * -0.230881 * tfactors.T923i + + 4.44362 + (5.0/3.0) * -3.15898 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 87.6256 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -13.72 * tfactors.T943i + (1.0/3.0) * -0.450018 * tfactors.T923i - + 3.70823 + (5.0/3.0) * -1.70545 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ls09r + ln_set_rate = 17.5428 + -3.77849 * tfactors.T9i + -5.10735 * tfactors.T913i + -2.24111 * tfactors.T913 + + 0.148883 * tfactors.T9 + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.77849 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -5.10735 * tfactors.T943i + (1.0/3.0) * -2.24111 * tfactors.T923i + + 0.148883 + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_N15_to_n_N14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // N15 --> n + N14 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C12_He4_to_O16_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // ks03 - ln_set_rate = 34.1728 + -125.726 * tfactors.T9i + 1.396 * tfactors.T913i + -3.47552 * tfactors.T913 - + 0.351773 * tfactors.T9 + -0.0229344 * tfactors.T953 + 2.52161 * tfactors.lnT9; + // C12 + He4 --> O16 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 125.726 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.396 * tfactors.T943i + (1.0/3.0) * -3.47552 * tfactors.T923i - + 0.351773 + (5.0/3.0) * -0.0229344 * tfactors.T923 + 2.52161 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nac2 + ln_set_rate = 254.634 + -1.84097 * tfactors.T9i + 103.411 * tfactors.T913i + -420.567 * tfactors.T913 + + 64.0874 * tfactors.T9 + -12.4624 * tfactors.T953 + 137.303 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.84097 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 103.411 * tfactors.T943i + (1.0/3.0) * -420.567 * tfactors.T923i + + 64.0874 + (5.0/3.0) * -12.4624 * tfactors.T923 + 137.303 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_N15_to_p_C14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // N15 --> p + C14 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // nac2 + ln_set_rate = 69.6526 + -1.39254 * tfactors.T9i + 58.9128 * tfactors.T913i + -148.273 * tfactors.T913 + + 9.08324 * tfactors.T9 + -0.541041 * tfactors.T953 + 70.3554 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // il10r - ln_set_rate = 40.0115 + -119.975 * tfactors.T9i + -10.658 * tfactors.T913i + 1.73644 * tfactors.T913 - + -0.350498 * tfactors.T9 + 0.0279902 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.39254 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 58.9128 * tfactors.T943i + (1.0/3.0) * -148.273 * tfactors.T923i + + 9.08324 + (5.0/3.0) * -0.541041 * tfactors.T923 + 70.3554 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 119.975 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -10.658 * tfactors.T943i + (1.0/3.0) * 1.73644 * tfactors.T923i - + -0.350498 + (5.0/3.0) * 0.0279902 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C13_n_to_C14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // il10n - ln_set_rate = 43.0281 + -118.452 * tfactors.T9i + -13.9619 * tfactors.T913i + -4.34315 * tfactors.T913 - + 6.64922 * tfactors.T9 + -3.22592 * tfactors.T953 + 0.833333 * tfactors.lnT9; + // C13 + n --> C14 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 118.452 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -13.9619 * tfactors.T943i + (1.0/3.0) * -4.34315 * tfactors.T923i - + 6.64922 + (5.0/3.0) * -3.22592 * tfactors.T923 + 0.833333 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ks03 + ln_set_rate = 35.3048 + -0.133687 * tfactors.T9i + 18.3578 * tfactors.T913i + -46.5786 * tfactors.T913 + + 2.58472 * tfactors.T9 + -0.118622 * tfactors.T953 + 19.9142 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.133687 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 18.3578 * tfactors.T943i + (1.0/3.0) * -46.5786 * tfactors.T923i + + 2.58472 + (5.0/3.0) * -0.118622 * tfactors.T923 + 19.9142 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_O14_to_p_N13_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // O14 --> p + N13 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C13_p_to_N14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // lg06r - ln_set_rate = 35.2849 + -59.8313 * tfactors.T9i + 1.57122 * tfactors.T913i; + // C13 + p --> N14 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 59.8313 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.57122 * tfactors.T943i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nacrn + ln_set_rate = 18.5155 + -13.72 * tfactors.T913i + -0.450018 * tfactors.T913 + + 3.70823 * tfactors.T9 + -1.70545 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // lg06n - ln_set_rate = 42.4234 + -53.7053 * tfactors.T9i + -15.1676 * tfactors.T913i + 0.0955166 * tfactors.T913 - + 3.0659 * tfactors.T9 + -0.507339 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -13.72 * tfactors.T943i + (1.0/3.0) * -0.450018 * tfactors.T923i + + 3.70823 + (5.0/3.0) * -1.70545 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 53.7053 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -15.1676 * tfactors.T943i + (1.0/3.0) * 0.0955166 * tfactors.T923i - + 3.0659 + (5.0/3.0) * -0.507339 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nacrr + ln_set_rate = 13.9637 + -5.78147 * tfactors.T9i + -0.196703 * tfactors.T913 + + 0.142126 * tfactors.T9 + -0.0238912 * tfactors.T953 + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.78147 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.196703 * tfactors.T923i + + 0.142126 + (5.0/3.0) * -0.0238912 * tfactors.T923 + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_O15_to_n_O14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // O15 --> n + O14 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // nacrr + ln_set_rate = 15.1825 + -13.5543 * tfactors.T9i + + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // rpsmr - ln_set_rate = 32.7811 + -153.419 * tfactors.T9i + -1.38986 * tfactors.T913i + 1.74662 * tfactors.T913 - + -0.0276897 * tfactors.T9 + 0.00321014 * tfactors.T953 + 0.438778 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 13.5543 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 153.419 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.38986 * tfactors.T943i + (1.0/3.0) * 1.74662 * tfactors.T923i - + -0.0276897 + (5.0/3.0) * 0.00321014 * tfactors.T923 + 0.438778 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C14_p_to_N15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // C14 + p --> N15 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_O15_to_p_N14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // O15 --> p + N14 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // il10r + ln_set_rate = 17.1024 + -1.52341 * tfactors.T9i + -10.658 * tfactors.T913i + 1.73644 * tfactors.T913 + + -0.350498 * tfactors.T9 + 0.0279902 * tfactors.T953 + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // im05r - ln_set_rate = 30.7435 + -89.5667 * tfactors.T9i - + 1.5682 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.52341 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -10.658 * tfactors.T943i + (1.0/3.0) * 1.73644 * tfactors.T923i + + -0.350498 + (5.0/3.0) * 0.0279902 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 89.5667 * tfactors.T9i * tfactors.T9i - + 1.5682 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10n + ln_set_rate = 20.119 + -13.9619 * tfactors.T913i + -4.34315 * tfactors.T913 + + 6.64922 * tfactors.T9 + -3.22592 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // im05r - ln_set_rate = 31.6622 + -87.6737 * tfactors.T9i; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -13.9619 * tfactors.T943i + (1.0/3.0) * -4.34315 * tfactors.T923i + + 6.64922 + (5.0/3.0) * -3.22592 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 87.6737 * tfactors.T9i * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C14_He4_to_O18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // im05n - ln_set_rate = 44.1246 + -84.6757 * tfactors.T9i + -15.193 * tfactors.T913i + -4.63975 * tfactors.T913 - + 9.73458 * tfactors.T9 + -9.55051 * tfactors.T953 + 1.83333 * tfactors.lnT9; + // C14 + He4 --> O18 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 84.6757 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -15.193 * tfactors.T943i + (1.0/3.0) * -4.63975 * tfactors.T923i - + 9.73458 + (5.0/3.0) * -9.55051 * tfactors.T923 + 1.83333 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = 11.8309 + -10.3983 * tfactors.T9i + -3.83188 * tfactors.T913 + + 1.64358 * tfactors.T9 + -0.177785 * tfactors.T953 + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // im05n - ln_set_rate = 41.0177 + -84.6757 * tfactors.T9i + -15.193 * tfactors.T913i + -0.161954 * tfactors.T913 - + -7.52123 * tfactors.T9 + -0.987565 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 10.3983 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -3.83188 * tfactors.T923i + + 1.64358 + (5.0/3.0) * -0.177785 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 84.6757 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -15.193 * tfactors.T943i + (1.0/3.0) * -0.161954 * tfactors.T923i - + -7.52123 + (5.0/3.0) * -0.987565 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = -23.805 + -2.06876 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.06876 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_O16_to_n_O15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // O16 --> n + O15 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // il10n + ln_set_rate = 18.4877 + -31.7222 * tfactors.T913i + 11.3923 * tfactors.T913 + + -9.92249 * tfactors.T9 + -2.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // rpsmr - ln_set_rate = 32.3869 + -181.759 * tfactors.T9i + -1.11761 * tfactors.T913i + 1.0167 * tfactors.T913 - + 0.0449976 * tfactors.T9 + -0.00204682 * tfactors.T953 + 0.710783 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -31.7222 * tfactors.T943i + (1.0/3.0) * 11.3923 * tfactors.T923i + + -9.92249 + (5.0/3.0) * -2.0 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 181.759 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.11761 * tfactors.T943i + (1.0/3.0) * 1.0167 * tfactors.T923i - + 0.0449976 + (5.0/3.0) * -0.00204682 * tfactors.T923 + 0.710783 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N13_n_to_N14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // N13 + n --> N14 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_O16_to_p_N15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // O16 --> p + N15 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // wiesn + ln_set_rate = 13.9377 + -0.0054652 * tfactors.T9i + 1.72241e-10 * tfactors.T913i + -5.62522e-10 * tfactors.T913 + + 5.59212e-11 * tfactors.T9 + -4.6549e-12 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // li10r - ln_set_rate = 38.8465 + -150.962 * tfactors.T9i - + 0.0459037 * tfactors.T9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0054652 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.72241e-10 * tfactors.T943i + (1.0/3.0) * -5.62522e-10 * tfactors.T923i + + 5.59212e-11 + (5.0/3.0) * -4.6549e-12 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 150.962 * tfactors.T9i * tfactors.T9i - + 0.0459037; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // wiesr + ln_set_rate = -3.63074 + -2.99547 * tfactors.T9i + 9.44873e-10 * tfactors.T913i + -2.33713e-09 * tfactors.T913 + + 1.97507e-10 * tfactors.T9 + -1.49747e-11 * tfactors.T953 + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // li10r - ln_set_rate = 30.8927 + -143.656 * tfactors.T9i; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.99547 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 9.44873e-10 * tfactors.T943i + (1.0/3.0) * -2.33713e-09 * tfactors.T923i + + 1.97507e-10 + (5.0/3.0) * -1.49747e-11 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 143.656 * tfactors.T9i * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N13_p_to_O14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // li10n - ln_set_rate = 44.3197 + -140.732 * tfactors.T9i + -15.24 * tfactors.T913i + 0.334926 * tfactors.T913 - + 4.59088 * tfactors.T9 + -4.78468 * tfactors.T953 + 0.833333 * tfactors.lnT9; + // N13 + p --> O14 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 140.732 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -15.24 * tfactors.T943i + (1.0/3.0) * 0.334926 * tfactors.T923i - + 4.59088 + (5.0/3.0) * -4.78468 * tfactors.T923 + 0.833333 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // lg06r + ln_set_rate = 10.9971 + -6.12602 * tfactors.T9i + 1.57122 * tfactors.T913i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 6.12602 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.57122 * tfactors.T943i + + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_O16_to_He4_C12_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // O16 --> He4 + C12 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // lg06n + ln_set_rate = 18.1356 + -15.1676 * tfactors.T913i + 0.0955166 * tfactors.T913 + + 3.0659 * tfactors.T9 + -0.507339 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // nac2 - ln_set_rate = 94.3131 + -84.503 * tfactors.T9i + 58.9128 * tfactors.T913i + -148.273 * tfactors.T913 - + 9.08324 * tfactors.T9 + -0.541041 * tfactors.T953 + 71.8554 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -15.1676 * tfactors.T943i + (1.0/3.0) * 0.0955166 * tfactors.T923i + + 3.0659 + (5.0/3.0) * -0.507339 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 84.503 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 58.9128 * tfactors.T943i + (1.0/3.0) * -148.273 * tfactors.T923i - + 9.08324 + (5.0/3.0) * -0.541041 * tfactors.T923 + 71.8554 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N14_n_to_N15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // nac2 - ln_set_rate = 279.295 + -84.9515 * tfactors.T9i + 103.411 * tfactors.T913i + -420.567 * tfactors.T913 - + 64.0874 * tfactors.T9 + -12.4624 * tfactors.T953 + 138.803 * tfactors.lnT9; + // N14 + n --> N15 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 84.9515 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 103.411 * tfactors.T943i + (1.0/3.0) * -420.567 * tfactors.T923i - + 64.0874 + (5.0/3.0) * -12.4624 * tfactors.T923 + 138.803 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ks03 + ln_set_rate = 10.1651 + -0.0114078 * tfactors.T9i + 1.396 * tfactors.T913i + -3.47552 * tfactors.T913 + + 0.351773 * tfactors.T9 + -0.0229344 * tfactors.T953 + 1.02161 * tfactors.lnT9; + + ln_set_rate += log_scor; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0114078 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.396 * tfactors.T943i + (1.0/3.0) * -3.47552 * tfactors.T923i + + 0.351773 + (5.0/3.0) * -0.0229344 * tfactors.T923 + 1.02161 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N14_p_to_O15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_O17_to_n_O16_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // N14 + p --> O15 - // O17 --> n + O16 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // im05r + ln_set_rate = 6.73578 + -4.891 * tfactors.T9i + + 0.0682 * tfactors.lnT9; - // ks03 - ln_set_rate = 29.0385 + -48.0574 * tfactors.T9i + -2.11246 * tfactors.T913i + 4.87742 * tfactors.T913 - + -0.314426 * tfactors.T9 + 0.0169515 * tfactors.T953 + 0.515216 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 4.891 * tfactors.T9i * tfactors.T9i + + 0.0682 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 48.0574 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.11246 * tfactors.T943i + (1.0/3.0) * 4.87742 * tfactors.T923i - + -0.314426 + (5.0/3.0) * 0.0169515 * tfactors.T923 + 0.515216 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // im05r + ln_set_rate = 7.65444 + -2.998 * tfactors.T9i + + -1.5 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_O18_to_n_O17_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.998 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - // O18 --> n + O17 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // im05n + ln_set_rate = 20.1169 + -15.193 * tfactors.T913i + -4.63975 * tfactors.T913 + + 9.73458 * tfactors.T9 + -9.55051 * tfactors.T953 + 0.333333 * tfactors.lnT9; - // bb92n - ln_set_rate = 29.682 + -93.3549 * tfactors.T9i + 7.48144e-11 * tfactors.T913i + -2.47239e-10 * tfactors.T913 - + 2.48052e-11 * tfactors.T9 + -2.07736e-12 * tfactors.T953 + 1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -15.193 * tfactors.T943i + (1.0/3.0) * -4.63975 * tfactors.T923i + + 9.73458 + (5.0/3.0) * -9.55051 * tfactors.T923 + 0.333333 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 93.3549 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 7.48144e-11 * tfactors.T943i + (1.0/3.0) * -2.47239e-10 * tfactors.T923i - + 2.48052e-11 + (5.0/3.0) * -2.07736e-12 * tfactors.T923 + 1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // im05n + ln_set_rate = 17.01 + -15.193 * tfactors.T913i + -0.161954 * tfactors.T913 + + -7.52123 * tfactors.T9 + -0.987565 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // bb92r - ln_set_rate = 45.5915 + -95.4845 * tfactors.T9i + 16.8052 * tfactors.T913i + -30.138 * tfactors.T913 - + 1.14711 * tfactors.T9 + -0.0220312 * tfactors.T953 + 15.2452 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -15.193 * tfactors.T943i + (1.0/3.0) * -0.161954 * tfactors.T923i + + -7.52123 + (5.0/3.0) * -0.987565 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 95.4845 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 16.8052 * tfactors.T943i + (1.0/3.0) * -30.138 * tfactors.T923i - + 1.14711 + (5.0/3.0) * -0.0220312 * tfactors.T923 + 15.2452 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N14_He4_to_F18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_O18_to_He4_C14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // N14 + He4 --> F18 - // O18 --> He4 + C14 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // il10r + ln_set_rate = 13.8995 + -10.9656 * tfactors.T9i + -5.6227 * tfactors.T913i + + -1.5 * tfactors.lnT9; - // il10r - ln_set_rate = 36.546 + -82.6514 * tfactors.T9i + -3.83188 * tfactors.T913 - + 1.64358 * tfactors.T9 + -0.177785 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 10.9656 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -5.6227 * tfactors.T943i + + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 82.6514 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -3.83188 * tfactors.T923i - + 1.64358 + (5.0/3.0) * -0.177785 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // il10r + ln_set_rate = 0.196838 + -5.16034 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // il10r - ln_set_rate = 0.910093 + -74.3219 * tfactors.T9i; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.16034 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 74.3219 * tfactors.T9i * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // il10n + ln_set_rate = 21.5339 + -36.2504 * tfactors.T913i + + -5.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // il10n - ln_set_rate = 43.2028 + -72.2531 * tfactors.T9i + -31.7222 * tfactors.T913i + 11.3923 * tfactors.T913 - + -9.92249 * tfactors.T9 + -2.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -36.2504 * tfactors.T943i + + (5.0/3.0) * -5.0 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 72.2531 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.7222 * tfactors.T943i + (1.0/3.0) * 11.3923 * tfactors.T923i - + -9.92249 + (5.0/3.0) * -2.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N15_p_to_O16_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_F17_to_p_O16_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // N15 + p --> O16 - // F17 --> p + O16 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // li10r + ln_set_rate = 14.5444 + -10.2295 * tfactors.T9i + + 0.0459037 * tfactors.T9 + -1.5 * tfactors.lnT9; - // ia08n - ln_set_rate = 40.9135 + -6.96583 * tfactors.T9i + -16.696 * tfactors.T913i + -1.16252 * tfactors.T913 - + 0.267703 * tfactors.T9 + -0.0338411 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 10.2295 * tfactors.T9i * tfactors.T9i + + 0.0459037 + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 6.96583 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -16.696 * tfactors.T943i + (1.0/3.0) * -1.16252 * tfactors.T923i - + 0.267703 + (5.0/3.0) * -0.0338411 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // li10r + ln_set_rate = 6.59056 + -2.92315 * tfactors.T9i + + -1.5 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_F18_to_n_F17_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.92315 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - // F18 --> n + F17 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // li10n + ln_set_rate = 20.0176 + -15.24 * tfactors.T913i + 0.334926 * tfactors.T913 + + 4.59088 * tfactors.T9 + -4.78468 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // rpsmr - ln_set_rate = 27.7411 + -106.154 * tfactors.T9i + -2.71353 * tfactors.T913i + 6.19871 * tfactors.T913 - + -0.26836 * tfactors.T9 + 0.0115489 * tfactors.T953 + -1.02002 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -15.24 * tfactors.T943i + (1.0/3.0) * 0.334926 * tfactors.T923i + + 4.59088 + (5.0/3.0) * -4.78468 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 106.154 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.71353 * tfactors.T943i + (1.0/3.0) * 6.19871 * tfactors.T923i - + -0.26836 + (5.0/3.0) * 0.0115489 * tfactors.T923 + -1.02002 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N15_He4_to_F19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_F18_to_p_O17_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // N15 + He4 --> F19 - // F18 --> p + O17 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // il10r + ln_set_rate = -28.7989 + -4.19986 * tfactors.T9i + 35.4292 * tfactors.T913 + + -5.5767 * tfactors.T9 + 0.441293 * tfactors.T953 + -1.5 * tfactors.lnT9; - // il10r - ln_set_rate = 33.7037 + -71.2889 * tfactors.T9i + 2.31435 * tfactors.T913 - + -0.302835 * tfactors.T9 + 0.020133 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 4.19986 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 35.4292 * tfactors.T923i + + -5.5767 + (5.0/3.0) * 0.441293 * tfactors.T923 + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 71.2889 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.31435 * tfactors.T923i - + -0.302835 + (5.0/3.0) * 0.020133 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // il10r + ln_set_rate = 3.5342 + -6.98462 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // il10r - ln_set_rate = 11.2362 + -65.8069 * tfactors.T9i; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 6.98462 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 65.8069 * tfactors.T9i * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // il10r + ln_set_rate = -9.41892 + -4.17795 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // il10n - ln_set_rate = 40.2061 + -65.0606 * tfactors.T9i + -16.4035 * tfactors.T913i + 4.31885 * tfactors.T913 - + -0.709921 * tfactors.T9 + -2.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 4.17795 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 65.0606 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -16.4035 * tfactors.T943i + (1.0/3.0) * 4.31885 * tfactors.T923i - + -0.709921 + (5.0/3.0) * -2.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // il10n + ln_set_rate = 25.3916 + -36.2324 * tfactors.T913i + + -2.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_F18_to_He4_N14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -36.2324 * tfactors.T943i + + (5.0/3.0) * -2.0 * tfactors.T923 + -0.666667 * tfactors.T9i; - // F18 --> He4 + N14 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + } - // il10r - ln_set_rate = 38.6146 + -62.1948 * tfactors.T9i + -5.6227 * tfactors.T913i; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O14_n_to_O15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // O14 + n --> O15 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 62.1948 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -5.6227 * tfactors.T943i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // rpsmr + ln_set_rate = 9.87196 + 0.0160481 * tfactors.T9i + -1.38986 * tfactors.T913i + 1.74662 * tfactors.T913 + + -0.0276897 * tfactors.T9 + 0.00321014 * tfactors.T953 + -1.06122 * tfactors.lnT9; - // il10r - ln_set_rate = 24.9119 + -56.3896 * tfactors.T9i; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.0160481 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.38986 * tfactors.T943i + (1.0/3.0) * 1.74662 * tfactors.T923i + + -0.0276897 + (5.0/3.0) * 0.00321014 * tfactors.T923 + -1.06122 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 56.3896 * tfactors.T9i * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // il10n - ln_set_rate = 46.249 + -51.2292 * tfactors.T9i + -36.2504 * tfactors.T913i - + -5.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O14_He4_to_Ne18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // O14 + He4 --> Ne18 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 51.2292 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.2504 * tfactors.T943i - + (5.0/3.0) * -5.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // wh87n + ln_set_rate = 26.4429 + -39.38 * tfactors.T913i + -0.0772187 * tfactors.T913 + + -0.635361 * tfactors.T9 + 0.106236 * tfactors.T953 + -0.666667 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_F19_to_n_F18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.38 * tfactors.T943i + (1.0/3.0) * -0.0772187 * tfactors.T923i + + -0.635361 + (5.0/3.0) * 0.106236 * tfactors.T923 + -0.666667 * tfactors.T9i; - // F19 --> n + F18 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // wh87r + ln_set_rate = -4.69948 + -12.159 * tfactors.T9i + + 5.0 * tfactors.lnT9; - // rpsmr - ln_set_rate = 24.8451 + -120.998 * tfactors.T9i + -6.65988 * tfactors.T913i + 18.3243 * tfactors.T913 - + -1.47263 * tfactors.T9 + 0.0955082 * tfactors.T953 + -5.25505 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 12.159 * tfactors.T9i * tfactors.T9i + + 5.0 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 120.998 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -6.65988 * tfactors.T943i + (1.0/3.0) * 18.3243 * tfactors.T923i - + -1.47263 + (5.0/3.0) * 0.0955082 * tfactors.T923 + -5.25505 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // wh87r + ln_set_rate = 3.52636 + -22.61 * tfactors.T9i + + -1.5 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_F19_to_p_O18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 22.61 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - // F19 --> p + O18 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // wh87r + ln_set_rate = -2.15417 + -11.73 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // il10r - ln_set_rate = 30.2003 + -99.501 * tfactors.T9i + 3.99059 * tfactors.T913 - + -0.593127 * tfactors.T9 + 0.0877534 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 11.73 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 99.501 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 3.99059 * tfactors.T923i - + -0.593127 + (5.0/3.0) * 0.0877534 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // il10r - ln_set_rate = 28.008 + -94.4325 * tfactors.T9i; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O15_n_to_O16_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // O15 + n --> O16 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 94.4325 * tfactors.T9i * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // rpsmr + ln_set_rate = 8.08476 + 0.0135346 * tfactors.T9i + -1.11761 * tfactors.T913i + 1.0167 * tfactors.T913 + + 0.0449976 * tfactors.T9 + -0.00204682 * tfactors.T953 + -0.789217 * tfactors.lnT9; - // il10r - ln_set_rate = -12.0764 + -93.0204 * tfactors.T9i; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.0135346 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.11761 * tfactors.T943i + (1.0/3.0) * 1.0167 * tfactors.T923i + + 0.0449976 + (5.0/3.0) * -0.00204682 * tfactors.T923 + -0.789217 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 93.0204 * tfactors.T9i * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // il10n - ln_set_rate = 42.8485 + -92.7757 * tfactors.T9i + -16.7246 * tfactors.T913i - + -3.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O15_He4_to_Ne19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // O15 + He4 --> Ne19 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 92.7757 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -16.7246 * tfactors.T943i - + (5.0/3.0) * -3.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // dc11r + ln_set_rate = -32.2496 + -4.20439 * tfactors.T9i + -3.24609 * tfactors.T913i + 44.4647 * tfactors.T913 + + -9.79962 * tfactors.T9 + 0.841782 * tfactors.T953 + -1.5 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_F19_to_He4_N15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 4.20439 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -3.24609 * tfactors.T943i + (1.0/3.0) * 44.4647 * tfactors.T923i + + -9.79962 + (5.0/3.0) * 0.841782 * tfactors.T923 + -1.5 * tfactors.T9i; - // F19 --> He4 + N15 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // dc11r + ln_set_rate = -0.0452465 + -5.88439 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // il10r - ln_set_rate = -4.06142 + -50.7773 * tfactors.T9i + 35.4292 * tfactors.T913 - + -5.5767 * tfactors.T9 + 0.441293 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.88439 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 50.7773 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 35.4292 * tfactors.T923i - + -5.5767 + (5.0/3.0) * 0.441293 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // dc11n + ln_set_rate = 26.2914 + -39.578 * tfactors.T913i + + -3.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // il10r - ln_set_rate = 28.2717 + -53.5621 * tfactors.T9i; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.578 * tfactors.T943i + + (5.0/3.0) * -3.0 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 53.5621 * tfactors.T9i * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // il10r - ln_set_rate = 15.3186 + -50.7554 * tfactors.T9i; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O16_n_to_O17_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // O16 + n --> O17 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 50.7554 * tfactors.T9i * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ks03 + ln_set_rate = 7.21546 + 0.0235015 * tfactors.T9i + -2.11246 * tfactors.T913i + 4.87742 * tfactors.T913 + + -0.314426 * tfactors.T9 + 0.0169515 * tfactors.T953 + -0.984784 * tfactors.lnT9; - // il10n - ln_set_rate = 50.1291 + -46.5774 * tfactors.T9i + -36.2324 * tfactors.T913i - + -2.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.0235015 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.11246 * tfactors.T943i + (1.0/3.0) * 4.87742 * tfactors.T923i + + -0.314426 + (5.0/3.0) * 0.0169515 * tfactors.T923 + -0.984784 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 46.5774 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.2324 * tfactors.T943i - + (5.0/3.0) * -2.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O16_p_to_F17_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ne18_to_p_F17_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // O16 + p --> F17 - // Ne18 --> p + F17 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ia08n + ln_set_rate = 19.0904 + -16.696 * tfactors.T913i + -1.16252 * tfactors.T913 + + 0.267703 * tfactors.T9 + -0.0338411 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // cb09 - ln_set_rate = 52.9895 + -50.492 * tfactors.T9i + -21.3249 * tfactors.T913i + -0.230774 * tfactors.T913 - + 0.917931 * tfactors.T9 + -0.0440377 * tfactors.T953 + -5.86014 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -16.696 * tfactors.T943i + (1.0/3.0) * -1.16252 * tfactors.T923i + + 0.267703 + (5.0/3.0) * -0.0338411 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 50.492 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -21.3249 * tfactors.T943i + (1.0/3.0) * -0.230774 * tfactors.T923i - + 0.917931 + (5.0/3.0) * -0.0440377 * tfactors.T923 + -5.86014 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // cb09 - ln_set_rate = 17.5646 + -45.5647 * tfactors.T9i + -14.2191 * tfactors.T913i + 34.0647 * tfactors.T913 - + -16.5698 * tfactors.T9 + 2.48116 * tfactors.T953 + -0.63376 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O16_He4_to_Ne20_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // O16 + He4 --> Ne20 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 45.5647 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -14.2191 * tfactors.T943i + (1.0/3.0) * 34.0647 * tfactors.T923i - + -16.5698 + (5.0/3.0) * 2.48116 * tfactors.T923 + -0.63376 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // co10r + ln_set_rate = 3.88571 + -10.3585 * tfactors.T9i + + -1.5 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ne18_to_He4_O14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 10.3585 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - // Ne18 --> He4 + O14 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // co10n + ln_set_rate = 23.903 + -39.7262 * tfactors.T913i + -0.210799 * tfactors.T913 + + 0.442879 * tfactors.T9 + -0.0797753 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // wh87r - ln_set_rate = 20.0156 + -71.5044 * tfactors.T9i - + 6.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.7262 * tfactors.T943i + (1.0/3.0) * -0.210799 * tfactors.T923i + + 0.442879 + (5.0/3.0) * -0.0797753 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 71.5044 * tfactors.T9i * tfactors.T9i - + 6.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // co10r + ln_set_rate = 9.50848 + -12.7643 * tfactors.T9i + -3.65925 * tfactors.T913 + + 0.714224 * tfactors.T9 + -0.00107508 * tfactors.T953 + -1.5 * tfactors.lnT9; - // wh87r - ln_set_rate = 28.2415 + -81.9554 * tfactors.T9i; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 12.7643 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -3.65925 * tfactors.T923i + + 0.714224 + (5.0/3.0) * -0.00107508 * tfactors.T923 + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 81.9554 * tfactors.T9i * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // wh87r - ln_set_rate = 22.5609 + -71.0754 * tfactors.T9i; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O17_n_to_O18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // O17 + n --> O18 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 71.0754 * tfactors.T9i * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // bb92n + ln_set_rate = 4.27026 + -5.69067e-13 * tfactors.T9i + 7.48144e-11 * tfactors.T913i + -2.47239e-10 * tfactors.T913 + + 2.48052e-11 * tfactors.T9 + -2.07736e-12 * tfactors.T953 + 8.43048e-11 * tfactors.lnT9; - // wh87n - ln_set_rate = 51.158 + -59.3454 * tfactors.T9i + -39.38 * tfactors.T913i + -0.0772187 * tfactors.T913 - + -0.635361 * tfactors.T9 + 0.106236 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.69067e-13 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 7.48144e-11 * tfactors.T943i + (1.0/3.0) * -2.47239e-10 * tfactors.T923i + + 2.48052e-11 + (5.0/3.0) * -2.07736e-12 * tfactors.T923 + 8.43048e-11 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 59.3454 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.38 * tfactors.T943i + (1.0/3.0) * -0.0772187 * tfactors.T923i - + -0.635361 + (5.0/3.0) * 0.106236 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // bb92r + ln_set_rate = 20.1798 + -2.12961 * tfactors.T9i + 16.8052 * tfactors.T913i + -30.138 * tfactors.T913 + + 1.14711 * tfactors.T9 + -0.0220312 * tfactors.T953 + 13.7452 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ne19_to_n_Ne18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.12961 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 16.8052 * tfactors.T943i + (1.0/3.0) * -30.138 * tfactors.T923i + + 1.14711 + (5.0/3.0) * -0.0220312 * tfactors.T923 + 13.7452 * tfactors.T9i; - // Ne19 --> n + Ne18 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + } - // ths8r - ln_set_rate = 32.1805 + -135.042 * tfactors.T9i + 0.937162 * tfactors.T913 - + -0.0221952 * tfactors.T9 + -0.00101206 * tfactors.T953 + 1.5 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O17_p_to_F18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // O17 + p --> F18 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 135.042 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.937162 * tfactors.T923i - + -0.0221952 + (5.0/3.0) * -0.00101206 * tfactors.T923 + 1.5 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // il10r + ln_set_rate = 9.39048 + -6.22828 * tfactors.T9i + 2.31435 * tfactors.T913 + + -0.302835 * tfactors.T9 + 0.020133 * tfactors.T953 + -1.5 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ne19_to_p_F18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 6.22828 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.31435 * tfactors.T923i + + -0.302835 + (5.0/3.0) * 0.020133 * tfactors.T923 + -1.5 * tfactors.T9i; - // Ne19 --> p + F18 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // il10r + ln_set_rate = -13.077 + -0.746296 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // il10n - ln_set_rate = 81.4385 + -74.3988 * tfactors.T9i + -21.4023 * tfactors.T913i + -93.766 * tfactors.T913 - + 179.258 * tfactors.T9 + -202.561 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.746296 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 74.3988 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -21.4023 * tfactors.T943i + (1.0/3.0) * -93.766 * tfactors.T923i - + 179.258 + (5.0/3.0) * -202.561 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // il10n + ln_set_rate = 15.8929 + -16.4035 * tfactors.T913i + 4.31885 * tfactors.T913 + + -0.709921 * tfactors.T9 + -2.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // il10r - ln_set_rate = 18.1729 + -77.2902 * tfactors.T9i + 13.1683 * tfactors.T913 - + -1.92023 * tfactors.T9 + 0.16901 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -16.4035 * tfactors.T943i + (1.0/3.0) * 4.31885 * tfactors.T923i + + -0.709921 + (5.0/3.0) * -2.0 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 77.2902 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 13.1683 * tfactors.T923i - + -1.92023 + (5.0/3.0) * 0.16901 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // il10r - ln_set_rate = -5.41887 + -74.7977 * tfactors.T9i + 22.4903 * tfactors.T913 - + 0.307872 * tfactors.T9 + -0.296226 * tfactors.T953; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O17_He4_to_Ne21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // O17 + He4 --> Ne21 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 74.7977 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 22.4903 * tfactors.T923i - + 0.307872 + (5.0/3.0) * -0.296226 * tfactors.T923; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // be13r + ln_set_rate = -25.0898 + -5.50926 * tfactors.T9i + 123.363 * tfactors.T913i + -87.4351 * tfactors.T913 + + -3.40974e-06 * tfactors.T9 + -57.0469 * tfactors.T953 + 82.2218 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ne19_to_He4_O15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.50926 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 123.363 * tfactors.T943i + (1.0/3.0) * -87.4351 * tfactors.T923i + + -3.40974e-06 + (5.0/3.0) * -57.0469 * tfactors.T923 + 82.2218 * tfactors.T9i; - // Ne19 --> He4 + O15 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // be13r + ln_set_rate = -117.134 + -13.6759 * tfactors.T9i + 3.31162e-08 * tfactors.T913i + 130.258 * tfactors.T913 + + -7.92551e-05 * tfactors.T9 + -4.13772 * tfactors.T953 + -42.7753 * tfactors.lnT9; - // dc11r - ln_set_rate = -7.51212 + -45.1578 * tfactors.T9i + -3.24609 * tfactors.T913i + 44.4647 * tfactors.T913 - + -9.79962 * tfactors.T9 + 0.841782 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 13.6759 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 3.31162e-08 * tfactors.T943i + (1.0/3.0) * 130.258 * tfactors.T923i + + -7.92551e-05 + (5.0/3.0) * -4.13772 * tfactors.T923 + -42.7753 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 45.1578 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -3.24609 * tfactors.T943i + (1.0/3.0) * 44.4647 * tfactors.T923i - + -9.79962 + (5.0/3.0) * 0.841782 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // be13r + ln_set_rate = 2.14 + -5.99952 * tfactors.T9i + 2.87641 * tfactors.T913i + -3.54489 * tfactors.T913 + + -2.11222e-08 * tfactors.T9 + -3.90649e-09 * tfactors.T953 + 4.75778 * tfactors.lnT9; - // dc11r - ln_set_rate = 24.6922 + -46.8378 * tfactors.T9i; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.99952 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.87641 * tfactors.T943i + (1.0/3.0) * -3.54489 * tfactors.T923i + + -2.11222e-08 + (5.0/3.0) * -3.90649e-09 * tfactors.T923 + 4.75778 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 46.8378 * tfactors.T9i * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // dc11n - ln_set_rate = 51.0289 + -40.9534 * tfactors.T9i + -39.578 * tfactors.T913i - + -3.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O18_p_to_F19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // O18 + p --> F19 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 40.9534 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.578 * tfactors.T943i - + (5.0/3.0) * -3.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // il10n + ln_set_rate = 19.917 + -16.7246 * tfactors.T913i + + -3.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ne20_to_n_Ne19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -16.7246 * tfactors.T943i + + (5.0/3.0) * -3.0 * tfactors.T923 + -0.666667 * tfactors.T9i; - // Ne20 --> n + Ne19 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // il10r + ln_set_rate = 7.26876 + -6.7253 * tfactors.T9i + 3.99059 * tfactors.T913 + + -0.593127 * tfactors.T9 + 0.0877534 * tfactors.T953 + -1.5 * tfactors.lnT9; - // ths8r - ln_set_rate = 30.7283 + -195.706 * tfactors.T9i + 1.57592 * tfactors.T913 - + -0.11175 * tfactors.T9 + 0.00226473 * tfactors.T953 + 1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 6.7253 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 3.99059 * tfactors.T923i + + -0.593127 + (5.0/3.0) * 0.0877534 * tfactors.T923 + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 195.706 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.57592 * tfactors.T923i - + -0.11175 + (5.0/3.0) * 0.00226473 * tfactors.T923 + 1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // il10r + ln_set_rate = 5.07648 + -1.65681 * tfactors.T9i + + -1.5 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ne20_to_p_F19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.65681 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - // Ne20 --> p + F19 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // il10r + ln_set_rate = -35.0079 + -0.244743 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // nacrr - ln_set_rate = 18.691 + -156.781 * tfactors.T9i + 31.6442 * tfactors.T913i + -58.6563 * tfactors.T913 - + 67.7365 * tfactors.T9 + -22.9721 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.244743 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 156.781 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 31.6442 * tfactors.T943i + (1.0/3.0) * -58.6563 * tfactors.T923i - + 67.7365 + (5.0/3.0) * -22.9721 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // nacrr - ln_set_rate = 36.7036 + -150.75 * tfactors.T9i + -11.3832 * tfactors.T913i + 5.47872 * tfactors.T913 - + -1.07203 * tfactors.T9 + 0.11196 * tfactors.T953; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O18_He4_to_Ne22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // O18 + He4 --> Ne22 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 150.75 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -11.3832 * tfactors.T943i + (1.0/3.0) * 5.47872 * tfactors.T923i - + -1.07203 + (5.0/3.0) * 0.11196 * tfactors.T923; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // il10r + ln_set_rate = -31.9126 + -2.00306 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // nacrn - ln_set_rate = 42.6027 + -149.037 * tfactors.T9i + -18.116 * tfactors.T913i + -1.4622 * tfactors.T913 - + 6.95113 * tfactors.T9 + -2.90366 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.00306 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 149.037 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -18.116 * tfactors.T943i + (1.0/3.0) * -1.4622 * tfactors.T923i - + 6.95113 + (5.0/3.0) * -2.90366 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // il10r + ln_set_rate = -81.3036 + -0.676112 * tfactors.T9i + + -1.5 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ne20_to_He4_O16_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.676112 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - // Ne20 --> He4 + O16 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // il10r + ln_set_rate = 14.9748 + -31.0468 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // co10r - ln_set_rate = 28.6431 + -65.246 * tfactors.T9i; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 31.0468 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 65.246 * tfactors.T9i * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // il10r + ln_set_rate = 82.2053 + -1.58534 * tfactors.T9i + -44.3823 * tfactors.T913i + -46.6617 * tfactors.T913 + + 7.88059 * tfactors.T9 + -0.590829 * tfactors.T953 + -1.5 * tfactors.lnT9; - // co10n - ln_set_rate = 48.6604 + -54.8875 * tfactors.T9i + -39.7262 * tfactors.T913i + -0.210799 * tfactors.T913 - + 0.442879 * tfactors.T9 + -0.0797753 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.58534 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -44.3823 * tfactors.T943i + (1.0/3.0) * -46.6617 * tfactors.T923i + + 7.88059 + (5.0/3.0) * -0.590829 * tfactors.T923 + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 54.8875 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.7262 * tfactors.T943i + (1.0/3.0) * -0.210799 * tfactors.T923i - + 0.442879 + (5.0/3.0) * -0.0797753 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // co10r - ln_set_rate = 34.2658 + -67.6518 * tfactors.T9i + -3.65925 * tfactors.T913 - + 0.714224 * tfactors.T9 + -0.00107508 * tfactors.T953; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F17_n_to_F18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // F17 + n --> F18 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 67.6518 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -3.65925 * tfactors.T923i - + 0.714224 + (5.0/3.0) * -0.00107508 * tfactors.T923; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // rpsmr + ln_set_rate = 3.42798 + 0.0273799 * tfactors.T9i + -2.71353 * tfactors.T913i + 6.19871 * tfactors.T913 + + -0.26836 * tfactors.T9 + 0.0115489 * tfactors.T953 + -2.52002 * tfactors.lnT9; + + ln_set_rate += log_scor; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.0273799 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.71353 * tfactors.T943i + (1.0/3.0) * 6.19871 * tfactors.T923i + + -0.26836 + (5.0/3.0) * 0.0115489 * tfactors.T923 + -2.52002 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F17_p_to_Ne18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ne21_to_n_Ne20_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // F17 + p --> Ne18 - // Ne21 --> n + Ne20 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // cb09 + ln_set_rate = -7.84708 + -0.0323504 * tfactors.T9i + -14.2191 * tfactors.T913i + 34.0647 * tfactors.T913 + + -16.5698 * tfactors.T9 + 2.48116 * tfactors.T953 + -2.13376 * tfactors.lnT9; - // ka02n - ln_set_rate = 30.8228 + -78.458 * tfactors.T9i - + 1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0323504 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -14.2191 * tfactors.T943i + (1.0/3.0) * 34.0647 * tfactors.T923i + + -16.5698 + (5.0/3.0) * 2.48116 * tfactors.T923 + -2.13376 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 78.458 * tfactors.T9i * tfactors.T9i - + 1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // cb09 + ln_set_rate = 27.5778 + -4.95969 * tfactors.T9i + -21.3249 * tfactors.T913i + -0.230774 * tfactors.T913 + + 0.917931 * tfactors.T9 + -0.0440377 * tfactors.T953 + -7.36014 * tfactors.lnT9; - // ka02r - ln_set_rate = 34.9807 + -80.162 * tfactors.T9i; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 4.95969 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -21.3249 * tfactors.T943i + (1.0/3.0) * -0.230774 * tfactors.T923i + + 0.917931 + (5.0/3.0) * -0.0440377 * tfactors.T923 + -7.36014 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 80.162 * tfactors.T9i * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F17_He4_to_Na21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ne21_to_He4_O17_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // F17 + He4 --> Na21 - // Ne21 --> He4 + O17 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // rpsmr + ln_set_rate = 41.1529 + -1.72817 * tfactors.T9i + 15.559 * tfactors.T913i + -68.3231 * tfactors.T913 + + 2.54275 * tfactors.T9 + -0.0989207 * tfactors.T953 + 36.8877 * tfactors.lnT9; - // be13r - ln_set_rate = 0.0906657 + -90.782 * tfactors.T9i + 123.363 * tfactors.T913i + -87.4351 * tfactors.T913 - + -3.40974e-06 * tfactors.T9 + -57.0469 * tfactors.T953 + 83.7218 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.72817 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 15.559 * tfactors.T943i + (1.0/3.0) * -68.3231 * tfactors.T923i + + 2.54275 + (5.0/3.0) * -0.0989207 * tfactors.T923 + 36.8877 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 90.782 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 123.363 * tfactors.T943i + (1.0/3.0) * -87.4351 * tfactors.T923i - + -3.40974e-06 + (5.0/3.0) * -57.0469 * tfactors.T923 + 83.7218 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // be13r - ln_set_rate = -91.954 + -98.9487 * tfactors.T9i + 3.31162e-08 * tfactors.T913i + 130.258 * tfactors.T913 - + -7.92551e-05 * tfactors.T9 + -4.13772 * tfactors.T953 + -41.2753 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F18_n_to_F19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // F18 + n --> F19 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 98.9487 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 3.31162e-08 * tfactors.T943i + (1.0/3.0) * 130.258 * tfactors.T923i - + -7.92551e-05 + (5.0/3.0) * -4.13772 * tfactors.T923 + -41.2753 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // rpsmr + ln_set_rate = 0.814964 + 0.0604483 * tfactors.T9i + -6.65988 * tfactors.T913i + 18.3243 * tfactors.T913 + + -1.47263 * tfactors.T9 + 0.0955082 * tfactors.T953 + -6.75505 * tfactors.lnT9; - // be13r - ln_set_rate = 27.3205 + -91.2722 * tfactors.T9i + 2.87641 * tfactors.T913i + -3.54489 * tfactors.T913 - + -2.11222e-08 * tfactors.T9 + -3.90649e-09 * tfactors.T953 + 6.25778 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.0604483 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -6.65988 * tfactors.T943i + (1.0/3.0) * 18.3243 * tfactors.T923i + + -1.47263 + (5.0/3.0) * 0.0955082 * tfactors.T923 + -6.75505 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 91.2722 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.87641 * tfactors.T943i + (1.0/3.0) * -3.54489 * tfactors.T923i - + -2.11222e-08 + (5.0/3.0) * -3.90649e-09 * tfactors.T923 + 6.25778 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F18_p_to_Ne19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ne22_to_n_Ne21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // F18 + p --> Ne19 - // Ne22 --> n + Ne21 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // il10r + ln_set_rate = -5.85727 + -2.89147 * tfactors.T9i + 13.1683 * tfactors.T913 + + -1.92023 * tfactors.T9 + 0.16901 * tfactors.T953 + -1.5 * tfactors.lnT9; - // ks03 - ln_set_rate = 48.5428 + -120.224 * tfactors.T9i + -0.238173 * tfactors.T913i + -12.2336 * tfactors.T913 - + 1.14968 * tfactors.T9 + -0.0768882 * tfactors.T953 + 4.13636 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.89147 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 13.1683 * tfactors.T923i + + -1.92023 + (5.0/3.0) * 0.16901 * tfactors.T923 + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 120.224 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.238173 * tfactors.T943i + (1.0/3.0) * -12.2336 * tfactors.T923i - + 1.14968 + (5.0/3.0) * -0.0768882 * tfactors.T923 + 4.13636 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // il10r + ln_set_rate = -29.449 + -0.39895 * tfactors.T9i + 22.4903 * tfactors.T913 + + 0.307872 * tfactors.T9 + -0.296226 * tfactors.T953 + -1.5 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ne22_to_He4_O18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.39895 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 22.4903 * tfactors.T923i + + 0.307872 + (5.0/3.0) * -0.296226 * tfactors.T923 + -1.5 * tfactors.T9i; - // Ne22 --> He4 + O18 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // il10n + ln_set_rate = 57.4084 + -21.4023 * tfactors.T913i + -93.766 * tfactors.T913 + + 179.258 * tfactors.T9 + -202.561 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // il10r - ln_set_rate = 106.996 + -113.779 * tfactors.T9i + -44.3823 * tfactors.T913i + -46.6617 * tfactors.T913 - + 7.88059 * tfactors.T9 + -0.590829 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -21.4023 * tfactors.T943i + (1.0/3.0) * -93.766 * tfactors.T923i + + 179.258 + (5.0/3.0) * -202.561 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 113.779 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -44.3823 * tfactors.T943i + (1.0/3.0) * -46.6617 * tfactors.T923i - + 7.88059 + (5.0/3.0) * -0.590829 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // il10r - ln_set_rate = -7.12154 + -114.197 * tfactors.T9i; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F18_He4_to_Na22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // F18 + He4 --> Na22 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 114.197 * tfactors.T9i * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // rpsmr + ln_set_rate = 35.3786 + -1.82957 * tfactors.T9i + 18.8956 * tfactors.T913i + -65.6134 * tfactors.T913 + + 1.71114 * tfactors.T9 + -0.0260999 * tfactors.T953 + 37.8396 * tfactors.lnT9; - // il10r - ln_set_rate = -56.5125 + -112.87 * tfactors.T9i; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.82957 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 18.8956 * tfactors.T943i + (1.0/3.0) * -65.6134 * tfactors.T923i + + 1.71114 + (5.0/3.0) * -0.0260999 * tfactors.T923 + 37.8396 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 112.87 * tfactors.T9i * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // il10r - ln_set_rate = 39.7659 + -143.24 * tfactors.T9i; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F19_p_to_Ne20_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // F19 + p --> Ne20 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 143.24 * tfactors.T9i * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // nacrr + ln_set_rate = -5.63093 + -7.74414 * tfactors.T9i + 31.6442 * tfactors.T913i + -58.6563 * tfactors.T913 + + 67.7365 * tfactors.T9 + -22.9721 * tfactors.T953 + -1.5 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Na21_to_p_Ne20_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 7.74414 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 31.6442 * tfactors.T943i + (1.0/3.0) * -58.6563 * tfactors.T923i + + 67.7365 + (5.0/3.0) * -22.9721 * tfactors.T923 + -1.5 * tfactors.T9i; - // Na21 --> p + Ne20 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // nacrr + ln_set_rate = 12.3816 + -1.71383 * tfactors.T9i + -11.3832 * tfactors.T913i + 5.47872 * tfactors.T913 + + -1.07203 * tfactors.T9 + 0.11196 * tfactors.T953 + -1.5 * tfactors.lnT9; - // ly18 - ln_set_rate = 230.123 + -28.3722 * tfactors.T9i + 15.325 * tfactors.T913i + -294.859 * tfactors.T913 - + 107.692 * tfactors.T9 + -46.2072 * tfactors.T953 + 59.3398 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.71383 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -11.3832 * tfactors.T943i + (1.0/3.0) * 5.47872 * tfactors.T923i + + -1.07203 + (5.0/3.0) * 0.11196 * tfactors.T923 + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 28.3722 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 15.325 * tfactors.T943i + (1.0/3.0) * -294.859 * tfactors.T923i - + 107.692 + (5.0/3.0) * -46.2072 * tfactors.T923 + 59.3398 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // nacrn + ln_set_rate = 18.2807 + -18.116 * tfactors.T913i + -1.4622 * tfactors.T913 + + 6.95113 * tfactors.T9 + -2.90366 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ly18 - ln_set_rate = 28.0772 + -37.0575 * tfactors.T9i + 20.5893 * tfactors.T913i + -17.5841 * tfactors.T913 - + 0.243226 * tfactors.T9 + -0.000231418 * tfactors.T953 + 14.3398 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -18.116 * tfactors.T943i + (1.0/3.0) * -1.4622 * tfactors.T923i + + 6.95113 + (5.0/3.0) * -2.90366 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 37.0575 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 20.5893 * tfactors.T943i + (1.0/3.0) * -17.5841 * tfactors.T923i - + 0.243226 + (5.0/3.0) * -0.000231418 * tfactors.T923 + 14.3398 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // ly18 - ln_set_rate = 252.265 + -32.6731 * tfactors.T9i + 258.57 * tfactors.T913i + -506.387 * tfactors.T913 - + 22.1576 * tfactors.T9 + -0.721182 * tfactors.T953 + 231.788 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F19_He4_to_Na23_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // F19 + He4 --> Na23 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 32.6731 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 258.57 * tfactors.T943i + (1.0/3.0) * -506.387 * tfactors.T923i - + 22.1576 + (5.0/3.0) * -0.721182 * tfactors.T923 + 231.788 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // rpsmr + ln_set_rate = 52.7856 + -2.11408 * tfactors.T9i + 39.7219 * tfactors.T913i + -100.401 * tfactors.T913 + + 3.15808 * tfactors.T9 + -0.0629822 * tfactors.T953 + 54.4823 * tfactors.lnT9; - // ly18 - ln_set_rate = 195320.0 + -89.3596 * tfactors.T9i + 21894.7 * tfactors.T913i + -319153.0 * tfactors.T913 - + 224369.0 * tfactors.T9 + -188049.0 * tfactors.T953 + 48704.9 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.11408 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 39.7219 * tfactors.T943i + (1.0/3.0) * -100.401 * tfactors.T923i + + 3.15808 + (5.0/3.0) * -0.0629822 * tfactors.T923 + 54.4823 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 89.3596 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 21894.7 * tfactors.T943i + (1.0/3.0) * -319153.0 * tfactors.T923i - + 224369.0 + (5.0/3.0) * -188049.0 * tfactors.T923 + 48704.9 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne18_n_to_Ne19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Na21_to_He4_F17_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ne18 + n --> Ne19 - // Na21 --> He4 + F17 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 9.249 + 0.937162 * tfactors.T913 + + -0.0221952 * tfactors.T9 + -0.00101206 * tfactors.T953; - // rpsmr - ln_set_rate = 66.3334 + -77.8653 * tfactors.T9i + 15.559 * tfactors.T913i + -68.3231 * tfactors.T913 - + 2.54275 * tfactors.T9 + -0.0989207 * tfactors.T953 + 38.3877 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.937162 * tfactors.T923i + + -0.0221952 + (5.0/3.0) * -0.00101206 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 77.8653 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 15.559 * tfactors.T943i + (1.0/3.0) * -68.3231 * tfactors.T923i - + 2.54275 + (5.0/3.0) * -0.0989207 * tfactors.T923 + 38.3877 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne19_n_to_Ne20_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Na22_to_n_Na21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ne19 + n --> Ne20 - // Na22 --> n + Na21 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 6.40633 + 1.57592 * tfactors.T913 + + -0.11175 * tfactors.T9 + 0.00226473 * tfactors.T953; - // ths8r - ln_set_rate = 30.6596 + -128.457 * tfactors.T9i + 1.31089 * tfactors.T913 - + -0.164931 * tfactors.T9 + 0.00903374 * tfactors.T953 + 1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 1.57592 * tfactors.T923i + + -0.11175 + (5.0/3.0) * 0.00226473 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 128.457 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.31089 * tfactors.T923i - + -0.164931 + (5.0/3.0) * 0.00903374 * tfactors.T923 + 1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne19_He4_to_Mg23_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Na22_to_p_Ne21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ne19 + He4 --> Mg23 - // Na22 --> p + Ne21 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 37.1998 + -46.6346 * tfactors.T913i + -1.1007 * tfactors.T913 + + -0.794097 * tfactors.T9 + 0.0813036 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // il10r - ln_set_rate = 24.8334 + -79.6093 * tfactors.T9i; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -46.6346 * tfactors.T943i + (1.0/3.0) * -1.1007 * tfactors.T923i + + -0.794097 + (5.0/3.0) * 0.0813036 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 79.6093 * tfactors.T9i * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // il10r - ln_set_rate = -24.579 + -78.4059 * tfactors.T9i; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne20_n_to_Ne21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Ne20 + n --> Ne21 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 78.4059 * tfactors.T9i * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ka02r + ln_set_rate = 12.7344 + -1.70393 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // il10n - ln_set_rate = 42.146 + -78.2097 * tfactors.T9i + -19.2096 * tfactors.T913i - + -1.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.70393 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 78.2097 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -19.2096 * tfactors.T943i - + (5.0/3.0) * -1.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ka02n + ln_set_rate = 8.57651; + amrex::ignore_unused(tfactors); - // il10r - ln_set_rate = -16.4098 + -82.4235 * tfactors.T9i + 21.1176 * tfactors.T913i + 34.0411 * tfactors.T913 - + -4.45593 * tfactors.T9 + 0.328613 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 82.4235 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 21.1176 * tfactors.T943i + (1.0/3.0) * 34.0411 * tfactors.T923i - + -4.45593 + (5.0/3.0) * 0.328613 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Na22_to_He4_F18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Na22 --> He4 + F18 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne20_p_to_Na21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // rpsmr - ln_set_rate = 59.3224 + -100.236 * tfactors.T9i + 18.8956 * tfactors.T913i + -65.6134 * tfactors.T913 - + 1.71114 * tfactors.T9 + -0.0260999 * tfactors.T953 + 39.3396 * tfactors.lnT9; + // Ne20 + p --> Na21 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 100.236 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 18.8956 * tfactors.T943i + (1.0/3.0) * -65.6134 * tfactors.T923i - + 1.71114 + (5.0/3.0) * -0.0260999 * tfactors.T923 + 39.3396 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ly18 + ln_set_rate = 195297.0 + -61.14 * tfactors.T9i + 21894.7 * tfactors.T913i + -319153.0 * tfactors.T913 + + 224369.0 * tfactors.T9 + -188049.0 * tfactors.T953 + 48703.4 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 61.14 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 21894.7 * tfactors.T943i + (1.0/3.0) * -319153.0 * tfactors.T923i + + 224369.0 + (5.0/3.0) * -188049.0 * tfactors.T923 + 48703.4 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Na23_to_n_Na22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Na23 --> n + Na22 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // ly18 + ln_set_rate = 207.877 + -0.152711 * tfactors.T9i + 15.325 * tfactors.T913i + -294.859 * tfactors.T913 + + 107.692 * tfactors.T9 + -46.2072 * tfactors.T953 + 57.8398 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 37.0665 + -144.113 * tfactors.T9i + 1.02148 * tfactors.T913 - + -0.334638 * tfactors.T9 + 0.0258708 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.152711 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 15.325 * tfactors.T943i + (1.0/3.0) * -294.859 * tfactors.T923i + + 107.692 + (5.0/3.0) * -46.2072 * tfactors.T923 + 57.8398 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 144.113 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.02148 * tfactors.T923i - + -0.334638 + (5.0/3.0) * 0.0258708 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ly18 + ln_set_rate = 5.83103 + -8.838 * tfactors.T9i + 20.5893 * tfactors.T913i + -17.5841 * tfactors.T913 + + 0.243226 * tfactors.T9 + -0.000231418 * tfactors.T953 + 12.8398 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 8.838 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 20.5893 * tfactors.T943i + (1.0/3.0) * -17.5841 * tfactors.T923i + + 0.243226 + (5.0/3.0) * -0.000231418 * tfactors.T923 + 12.8398 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Na23_to_p_Ne22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Na23 --> p + Ne22 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // ly18 + ln_set_rate = 230.019 + -4.45358 * tfactors.T9i + 258.57 * tfactors.T913i + -506.387 * tfactors.T913 + + 22.1576 * tfactors.T9 + -0.721182 * tfactors.T953 + 230.288 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ke17r - ln_set_rate = 21.6534 + -103.776 * tfactors.T9i - + 1.18923 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 4.45358 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 258.57 * tfactors.T943i + (1.0/3.0) * -506.387 * tfactors.T923i + + 22.1576 + (5.0/3.0) * -0.721182 * tfactors.T923 + 230.288 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 103.776 * tfactors.T9i * tfactors.T9i - + 1.18923 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne20_He4_to_Mg24_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // ke17r - ln_set_rate = 0.818178 + -102.466 * tfactors.T9i - + 0.009812 * tfactors.lnT9; + // Ne20 + He4 --> Mg24 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 102.466 * tfactors.T9i * tfactors.T9i - + 0.009812 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = -8.79827 + -12.7809 * tfactors.T9i + 16.9229 * tfactors.T913 + + -2.57325 * tfactors.T9 + 0.208997 * tfactors.T953 + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // ke17r - ln_set_rate = 18.1624 + -102.855 * tfactors.T9i - + 4.73558 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 12.7809 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 16.9229 * tfactors.T923i + + -2.57325 + (5.0/3.0) * 0.208997 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 102.855 * tfactors.T9i * tfactors.T9i - + 4.73558 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = 1.98307 + -9.22026 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // ke17r - ln_set_rate = 36.29 + -110.779 * tfactors.T9i - + 0.732533 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 9.22026 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 110.779 * tfactors.T9i * tfactors.T9i - + 0.732533 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = -38.7055 + -2.50605 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // ke17r - ln_set_rate = 33.8935 + -106.655 * tfactors.T9i - + 1.65623 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.50605 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 106.655 * tfactors.T9i * tfactors.T9i - + 1.65623 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10n + ln_set_rate = 24.5058 + -46.2525 * tfactors.T913i + 5.58901 * tfactors.T913 + + 7.61843 * tfactors.T9 + -3.683 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // ke17r - ln_set_rate = 18.2467 + -104.673 * tfactors.T9i - + -2.79964 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -46.2525 * tfactors.T943i + (1.0/3.0) * 5.58901 * tfactors.T923i + + 7.61843 + (5.0/3.0) * -3.683 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 104.673 * tfactors.T9i * tfactors.T9i - + -2.79964 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne21_n_to_Ne22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ne21 + n --> Ne22 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Na23_to_He4_F19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Na23 --> He4 + F19 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ks03 + ln_set_rate = 23.5205 + 0.0482005 * tfactors.T9i + -0.238173 * tfactors.T913i + -12.2336 * tfactors.T913 + + 1.14968 * tfactors.T9 + -0.0768882 * tfactors.T953 + 2.63636 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // rpsmr - ln_set_rate = 76.8979 + -123.578 * tfactors.T9i + 39.7219 * tfactors.T913i + -100.401 * tfactors.T913 - + 3.15808 * tfactors.T9 + -0.0629822 * tfactors.T953 + 55.9823 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.0482005 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.238173 * tfactors.T943i + (1.0/3.0) * -12.2336 * tfactors.T923i + + 1.14968 + (5.0/3.0) * -0.0768882 * tfactors.T923 + 2.63636 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 123.578 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 39.7219 * tfactors.T943i + (1.0/3.0) * -100.401 * tfactors.T923i - + 3.15808 + (5.0/3.0) * -0.0629822 * tfactors.T923 + 55.9823 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne21_p_to_Na22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ne21 + p --> Na22 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mg23_to_p_Na22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mg23 --> p + Na22 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // il10n + ln_set_rate = 19.0696 + -19.2096 * tfactors.T913i + + -1.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // il10r - ln_set_rate = 7.95641 + -88.7434 * tfactors.T9i; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -19.2096 * tfactors.T943i + + (5.0/3.0) * -1.0 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 88.7434 * tfactors.T9i * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = -39.4862 + -4.21385 * tfactors.T9i + 21.1176 * tfactors.T913i + 34.0411 * tfactors.T913 + + -4.45593 * tfactors.T9 + 0.328613 * tfactors.T953 + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10r - ln_set_rate = -1.07519 + -88.4655 * tfactors.T9i; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 4.21385 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 21.1176 * tfactors.T943i + (1.0/3.0) * 34.0411 * tfactors.T923i + + -4.45593 + (5.0/3.0) * 0.328613 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 88.4655 * tfactors.T9i * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = 1.75704 + -1.39957 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10r - ln_set_rate = 12.9256 + -90.3923 * tfactors.T9i + 4.86658 * tfactors.T913i + 16.4592 * tfactors.T913 - + -1.95129 * tfactors.T9 + 0.132972 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.39957 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 90.3923 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 4.86658 * tfactors.T943i + (1.0/3.0) * 16.4592 * tfactors.T923i - + -1.95129 + (5.0/3.0) * 0.132972 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = -47.6554 + -0.19618 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.19618 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mg23_to_He4_Ne19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Mg23 --> He4 + Ne19 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne21_He4_to_Mg25_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // ths8r - ln_set_rate = 61.3121 + -111.985 * tfactors.T9i + -46.6346 * tfactors.T913i + -1.1007 * tfactors.T913 - + -0.794097 * tfactors.T9 + 0.0813036 * tfactors.T953 + 0.833333 * tfactors.lnT9; + // Ne21 + He4 --> Mg25 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 111.985 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -46.6346 * tfactors.T943i + (1.0/3.0) * -1.1007 * tfactors.T923i - + -0.794097 + (5.0/3.0) * 0.0813036 * tfactors.T923 + 0.833333 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // cf88r + ln_set_rate = 26.2429 + -22.049 * tfactors.T9i + -29.4583 * tfactors.T913 + + 14.6328 * tfactors.T9 + -3.47392 * tfactors.T953 + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 22.049 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -29.4583 * tfactors.T923i + + 14.6328 + (5.0/3.0) * -3.47392 * tfactors.T923 + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mg24_to_n_Mg23_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Mg24 --> n + Mg23 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // cf88n + ln_set_rate = 36.6927 + -46.89 * tfactors.T913i + -0.72642 * tfactors.T913 + + -0.76406 * tfactors.T9 + 0.0797483 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 32.0344 + -191.835 * tfactors.T9i + 2.66964 * tfactors.T913 - + -0.448904 * tfactors.T9 + 0.0326505 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -46.89 * tfactors.T943i + (1.0/3.0) * -0.72642 * tfactors.T923i + + -0.76406 + (5.0/3.0) * 0.0797483 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 191.835 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.66964 * tfactors.T923i - + -0.448904 + (5.0/3.0) * 0.0326505 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne22_p_to_Na23_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ne22 + p --> Na23 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mg24_to_p_Na23_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mg24 --> p + Na23 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ke17r + ln_set_rate = -0.599331 + -1.72007 * tfactors.T9i + + -0.310765 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // il10r - ln_set_rate = 34.0876 + -138.968 * tfactors.T9i + -0.360588 * tfactors.T913 - + 1.4187 * tfactors.T9 + -0.184061 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.72007 * tfactors.T9i * tfactors.T9i + + -0.310765 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 138.968 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.360588 * tfactors.T923i - + 1.4187 + (5.0/3.0) * -0.184061 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ke17r + ln_set_rate = -21.4345 + -0.410962 * tfactors.T9i + + -1.49019 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10r - ln_set_rate = 20.0024 + -137.3 * tfactors.T9i; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.410962 * tfactors.T9i * tfactors.T9i + + -1.49019 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 137.3 * tfactors.T9i * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ke17r + ln_set_rate = -4.09035 + -0.799756 * tfactors.T9i + + 3.23558 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10n - ln_set_rate = 43.9357 + -135.688 * tfactors.T9i + -20.6428 * tfactors.T913i + 1.52954 * tfactors.T913 - + 2.7487 * tfactors.T9 + -1.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.799756 * tfactors.T9i * tfactors.T9i + + 3.23558 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 135.688 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -20.6428 * tfactors.T943i + (1.0/3.0) * 1.52954 * tfactors.T923i - + 2.7487 + (5.0/3.0) * -1.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ke17r + ln_set_rate = 14.0373 + -8.72377 * tfactors.T9i + + -0.767467 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 8.72377 * tfactors.T9i * tfactors.T9i + + -0.767467 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mg24_to_He4_Ne20_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Mg24 --> He4 + Ne20 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // ke17r + ln_set_rate = 11.6408 + -4.59936 * tfactors.T9i + + 0.156226 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // il10r - ln_set_rate = 16.0203 + -120.895 * tfactors.T9i + 16.9229 * tfactors.T913 - + -2.57325 * tfactors.T9 + 0.208997 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 4.59936 * tfactors.T9i * tfactors.T9i + + 0.156226 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 120.895 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 16.9229 * tfactors.T923i - + -2.57325 + (5.0/3.0) * 0.208997 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ke17r + ln_set_rate = -4.00597 + -2.6179 * tfactors.T9i + + -4.29964 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10r - ln_set_rate = 26.8017 + -117.334 * tfactors.T9i; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.6179 * tfactors.T9i * tfactors.T9i + + -4.29964 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 117.334 * tfactors.T9i * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne22_He4_to_Mg26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // il10r - ln_set_rate = -13.8869 + -110.62 * tfactors.T9i; + // Ne22 + He4 --> Mg26 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 110.62 * tfactors.T9i * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // li12r + ln_set_rate = -29.3146 + -6.44772 * tfactors.T9i + 43.2654 * tfactors.T913 + + -18.5982 * tfactors.T9 + 2.80101 * tfactors.T953 + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10n - ln_set_rate = 49.3244 + -108.114 * tfactors.T9i + -46.2525 * tfactors.T913i + 5.58901 * tfactors.T913 - + 7.61843 * tfactors.T9 + -3.683 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 6.44772 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 43.2654 * tfactors.T923i + + -18.5982 + (5.0/3.0) * 2.80101 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 108.114 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -46.2525 * tfactors.T943i + (1.0/3.0) * 5.58901 * tfactors.T923i - + 7.61843 + (5.0/3.0) * -3.683 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // li12r + ln_set_rate = -23.7527 + -3.88217 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.88217 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mg25_to_n_Mg24_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Mg25 --> n + Mg24 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // li12r + ln_set_rate = -42.864 + -2.22115 * tfactors.T9i + + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 86.4748 + -84.9032 * tfactors.T9i + -0.142939 * tfactors.T913i + -57.7499 * tfactors.T913 - + 7.01981 * tfactors.T9 + -0.582057 * tfactors.T953 + 14.3133 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.22115 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 84.9032 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.142939 * tfactors.T943i + (1.0/3.0) * -57.7499 * tfactors.T923i - + 7.01981 + (5.0/3.0) * -0.582057 * tfactors.T923 + 14.3133 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // li12r + ln_set_rate = -92.4077 + -0.910477 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.910477 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mg25_to_He4_Ne21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Mg25 --> He4 + Ne21 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // li12r + ln_set_rate = -34.7254 + -6.36421 * tfactors.T9i + 35.9878 * tfactors.T913 + + -4.10684 * tfactors.T9 + 0.259345 * tfactors.T953 + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // cf88r - ln_set_rate = 50.668 + -136.725 * tfactors.T9i + -29.4583 * tfactors.T913 - + 14.6328 * tfactors.T9 + -3.47392 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 6.36421 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 35.9878 * tfactors.T923i + + -4.10684 + (5.0/3.0) * 0.259345 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 136.725 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -29.4583 * tfactors.T923i - + 14.6328 + (5.0/3.0) * -3.47392 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na21_n_to_Na22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // cf88n - ln_set_rate = 61.1178 + -114.676 * tfactors.T9i + -46.89 * tfactors.T913i + -0.72642 * tfactors.T913 - + -0.76406 * tfactors.T9 + 0.0797483 * tfactors.T953 + 0.833333 * tfactors.lnT9; + // Na21 + n --> Na22 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 114.676 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -46.89 * tfactors.T943i + (1.0/3.0) * -0.72642 * tfactors.T923i - + -0.76406 + (5.0/3.0) * 0.0797483 * tfactors.T923 + 0.833333 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 7.58321 + 1.31089 * tfactors.T913 + + -0.164931 * tfactors.T9 + 0.00903374 * tfactors.T953; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 1.31089 * tfactors.T923i + + -0.164931 + (5.0/3.0) * 0.00903374 * tfactors.T923; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mg26_to_n_Mg25_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Mg26 --> n + Mg25 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na21_He4_to_Al25_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // ks03 - ln_set_rate = 63.7787 + -128.778 * tfactors.T9i + 9.392 * tfactors.T913i + -36.6784 * tfactors.T913 - + 3.09567 * tfactors.T9 + -0.223882 * tfactors.T953 + 13.8852 * tfactors.lnT9; + // Na21 + He4 --> Al25 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 128.778 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 9.392 * tfactors.T943i + (1.0/3.0) * -36.6784 * tfactors.T923i - + 3.09567 + (5.0/3.0) * -0.223882 * tfactors.T923 + 13.8852 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 35.3006 + -49.9709 * tfactors.T913i + 1.63835 * tfactors.T913 + + -1.18562 * tfactors.T9 + 0.101965 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -49.9709 * tfactors.T943i + (1.0/3.0) * 1.63835 * tfactors.T923i + + -1.18562 + (5.0/3.0) * 0.101965 * tfactors.T923 + -0.666667 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mg26_to_He4_Ne22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Mg26 --> He4 + Ne22 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na22_n_to_Na23_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // li12r - ln_set_rate = -67.5662 + -124.09 * tfactors.T9i; + // Na22 + n --> Na23 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 124.09 * tfactors.T9i * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 12.8678 + 1.02148 * tfactors.T913 + + -0.334638 * tfactors.T9 + 0.0258708 * tfactors.T953; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // li12r - ln_set_rate = -9.88392 + -129.544 * tfactors.T9i + 35.9878 * tfactors.T913 - + -4.10684 * tfactors.T9 + 0.259345 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 1.02148 * tfactors.T923i + + -0.334638 + (5.0/3.0) * 0.0258708 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 129.544 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 35.9878 * tfactors.T923i - + -4.10684 + (5.0/3.0) * 0.259345 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na22_p_to_Mg23_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // li12r - ln_set_rate = -4.47312 + -129.627 * tfactors.T9i + 43.2654 * tfactors.T913 - + -18.5982 * tfactors.T9 + 2.80101 * tfactors.T953; + // Na22 + p --> Mg23 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 129.627 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 43.2654 * tfactors.T923i - + -18.5982 + (5.0/3.0) * 2.80101 * tfactors.T923; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = -11.2731 + -2.42669 * tfactors.T9i + 4.86658 * tfactors.T913i + 16.4592 * tfactors.T913 + + -1.95129 * tfactors.T9 + 0.132972 * tfactors.T953 + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // li12r - ln_set_rate = 1.08878 + -127.062 * tfactors.T9i; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.42669 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 4.86658 * tfactors.T943i + (1.0/3.0) * 16.4592 * tfactors.T923i + + -1.95129 + (5.0/3.0) * 0.132972 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 127.062 * tfactors.T9i * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = -16.2423 + -0.777841 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // li12r - ln_set_rate = -18.0225 + -125.401 * tfactors.T9i; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.777841 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 125.401 * tfactors.T9i * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = -25.2739 + -0.499888 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.499888 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Al25_to_p_Mg24_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Al25 --> p + Mg24 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na22_He4_to_Al26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // il10r - ln_set_rate = 30.093 + -28.8453 * tfactors.T9i + -1.57811 * tfactors.T913 - + 1.52232 * tfactors.T9 + -0.183001 * tfactors.T953; + // Na22 + He4 --> Al26 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 28.8453 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.57811 * tfactors.T923i - + 1.52232 + (5.0/3.0) * -0.183001 * tfactors.T923; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 36.3797 + -50.0924 * tfactors.T913i + -0.390826 * tfactors.T913 + + -0.99531 * tfactors.T9 + 0.101354 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10n - ln_set_rate = 41.7494 + -26.3608 * tfactors.T9i + -22.0227 * tfactors.T913i + 0.361297 * tfactors.T913 - + 2.61292 * tfactors.T9 + -1.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -50.0924 * tfactors.T943i + (1.0/3.0) * -0.390826 * tfactors.T923i + + -0.99531 + (5.0/3.0) * 0.101354 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 26.3608 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -22.0227 * tfactors.T943i + (1.0/3.0) * 0.361297 * tfactors.T923i - + 2.61292 + (5.0/3.0) * -1.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na23_p_to_Mg24_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Na23 + p --> Mg24 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Al25_to_He4_Na21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Al25 --> He4 + Na21 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // il10r + ln_set_rate = 9.0594 + -3.28029 * tfactors.T9i + -0.360588 * tfactors.T913 + + 1.4187 * tfactors.T9 + -0.184061 * tfactors.T953 + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 59.7257 + -106.262 * tfactors.T9i + -49.9709 * tfactors.T913i + 1.63835 * tfactors.T913 - + -1.18562 * tfactors.T9 + 0.101965 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.28029 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.360588 * tfactors.T923i + + 1.4187 + (5.0/3.0) * -0.184061 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 106.262 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -49.9709 * tfactors.T943i + (1.0/3.0) * 1.63835 * tfactors.T923i - + -1.18562 + (5.0/3.0) * 0.101965 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = -5.02585 + -1.61219 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.61219 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Al26_to_n_Al25_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Al26 --> n + Al25 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // il10n + ln_set_rate = 18.9075 + -20.6428 * tfactors.T913i + 1.52954 * tfactors.T913 + + 2.7487 * tfactors.T9 + -1.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 30.9667 + -131.891 * tfactors.T9i + 1.17141 * tfactors.T913 - + -0.162515 * tfactors.T9 + 0.0126275 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -20.6428 * tfactors.T943i + (1.0/3.0) * 1.52954 * tfactors.T923i + + 2.7487 + (5.0/3.0) * -1.0 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 131.891 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.17141 * tfactors.T923i - + -0.162515 + (5.0/3.0) * 0.0126275 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na23_He4_to_Al27_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Na23 + He4 --> Al27 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Al26_to_p_Mg25_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Al26 --> p + Mg25 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 44.7724 + -50.2042 * tfactors.T913i + -1.64239 * tfactors.T913 + + -1.59995 * tfactors.T9 + 0.184933 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // il10r - ln_set_rate = 25.2686 + -76.4067 * tfactors.T9i + 8.46334 * tfactors.T913 - + -0.907024 * tfactors.T9 + 0.0642981 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -50.2042 * tfactors.T943i + (1.0/3.0) * -1.64239 * tfactors.T923i + + -1.59995 + (5.0/3.0) * 0.184933 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 76.4067 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 8.46334 * tfactors.T923i - + -0.907024 + (5.0/3.0) * 0.0642981 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg23_n_to_Mg24_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // il10r - ln_set_rate = 27.2591 + -73.903 * tfactors.T9i + -88.9297 * tfactors.T913 - + 302.948 * tfactors.T9 + -346.461 * tfactors.T953; + // Mg23 + n --> Mg24 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 73.903 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -88.9297 * tfactors.T923i - + 302.948 + (5.0/3.0) * -346.461 * tfactors.T923; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 7.00613 + 2.66964 * tfactors.T913 + + -0.448904 * tfactors.T9 + 0.0326505 * tfactors.T953; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10r - ln_set_rate = -14.1555 + -73.6126 * tfactors.T9i; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 2.66964 * tfactors.T923i + + -0.448904 + (5.0/3.0) * 0.0326505 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 73.6126 * tfactors.T9i * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg24_n_to_Mg25_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Mg24 + n --> Mg25 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Al26_to_He4_Na22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Al26 --> He4 + Na22 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ks03 + ln_set_rate = 64.622 + 0.161296 * tfactors.T9i + -0.142939 * tfactors.T913i + -57.7499 * tfactors.T913 + + 7.01981 * tfactors.T9 + -0.582057 * tfactors.T953 + 12.8133 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 60.7692 + -109.695 * tfactors.T9i + -50.0924 * tfactors.T913i + -0.390826 * tfactors.T913 - + -0.99531 * tfactors.T9 + 0.101354 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.161296 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.142939 * tfactors.T943i + (1.0/3.0) * -57.7499 * tfactors.T923i + + 7.01981 + (5.0/3.0) * -0.582057 * tfactors.T923 + 12.8133 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 109.695 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -50.0924 * tfactors.T943i + (1.0/3.0) * -0.390826 * tfactors.T923i - + -0.99531 + (5.0/3.0) * 0.101354 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg24_p_to_Al25_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Mg24 + p --> Al25 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Al27_to_n_Al26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Al27 --> n + Al26 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // il10r + ln_set_rate = 8.24021 + -2.48451 * tfactors.T9i + -1.57811 * tfactors.T913 + + 1.52232 * tfactors.T9 + -0.183001 * tfactors.T953 + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 39.0178 + -151.532 * tfactors.T9i + -0.171158 * tfactors.T913i + -1.77283 * tfactors.T913 - + 0.206192 * tfactors.T9 + -0.0191705 * tfactors.T953 + 1.63961 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.48451 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.57811 * tfactors.T923i + + 1.52232 + (5.0/3.0) * -0.183001 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 151.532 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.171158 * tfactors.T943i + (1.0/3.0) * -1.77283 * tfactors.T923i - + 0.206192 + (5.0/3.0) * -0.0191705 * tfactors.T923 + 1.63961 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10n + ln_set_rate = 19.8966 + -22.0227 * tfactors.T913i + 0.361297 * tfactors.T913 + + 2.61292 * tfactors.T9 + -1.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -22.0227 * tfactors.T943i + (1.0/3.0) * 0.361297 * tfactors.T923i + + 2.61292 + (5.0/3.0) * -1.0 * tfactors.T923 + -0.666667 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Al27_to_p_Mg26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Al27 --> p + Mg26 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg24_He4_to_Si28_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // il10r - ln_set_rate = 27.118 + -99.3406 * tfactors.T9i + 6.78105 * tfactors.T913 - + -1.25771 * tfactors.T9 + 0.140754 * tfactors.T953; + // Mg24 + He4 --> Si28 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 99.3406 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 6.78105 * tfactors.T923i - + -1.25771 + (5.0/3.0) * 0.140754 * tfactors.T923; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // st08r + ln_set_rate = 8.03977 + -15.629 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10r - ln_set_rate = -5.3594 + -96.8701 * tfactors.T9i + 35.6312 * tfactors.T913 - + -5.27265 * tfactors.T9 + 0.392932 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 15.629 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 96.8701 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 35.6312 * tfactors.T923i - + -5.27265 + (5.0/3.0) * 0.392932 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // st08r + ln_set_rate = -50.5494 + -12.8332 * tfactors.T9i + 21.3721 * tfactors.T913i + 37.7649 * tfactors.T913 + + -4.10635 * tfactors.T9 + 0.249618 * tfactors.T953 + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10r - ln_set_rate = -62.6356 + -96.4509 * tfactors.T9i + 251.281 * tfactors.T913 - + -730.009 * tfactors.T9 + -224.016 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 12.8332 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 21.3721 * tfactors.T943i + (1.0/3.0) * 37.7649 * tfactors.T923i + + -4.10635 + (5.0/3.0) * 0.249618 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 96.4509 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 251.281 * tfactors.T923i - + -730.009 + (5.0/3.0) * -224.016 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg25_n_to_Mg26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Mg25 + n --> Mg26 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Al27_to_He4_Na23_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Al27 --> He4 + Na23 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ks03 + ln_set_rate = 38.34 + -0.0457591 * tfactors.T9i + 9.392 * tfactors.T913i + -36.6784 * tfactors.T913 + + 3.09567 * tfactors.T9 + -0.223882 * tfactors.T953 + 12.3852 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 69.2185 + -117.109 * tfactors.T9i + -50.2042 * tfactors.T913i + -1.64239 * tfactors.T913 - + -1.59995 * tfactors.T9 + 0.184933 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0457591 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 9.392 * tfactors.T943i + (1.0/3.0) * -36.6784 * tfactors.T923i + + 3.09567 + (5.0/3.0) * -0.223882 * tfactors.T923 + 12.3852 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 117.109 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -50.2042 * tfactors.T943i + (1.0/3.0) * -1.64239 * tfactors.T923i - + -1.59995 + (5.0/3.0) * 0.184933 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg25_p_to_Al26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Mg25 + p --> Al26 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Si28_to_p_Al27_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Si28 --> p + Al27 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // il10r + ln_set_rate = 4.21826 + -0.71983 * tfactors.T9i + -88.9297 * tfactors.T913 + + 302.948 * tfactors.T9 + -346.461 * tfactors.T953 + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // il10n - ln_set_rate = 46.5494 + -134.445 * tfactors.T9i + -23.2205 * tfactors.T913i - + -2.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.71983 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -88.9297 * tfactors.T923i + + 302.948 + (5.0/3.0) * -346.461 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 134.445 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -23.2205 * tfactors.T943i - + (5.0/3.0) * -2.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = -37.1963 + -0.429366 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10r - ln_set_rate = 111.466 + -134.832 * tfactors.T9i + -26.8327 * tfactors.T913i + -116.137 * tfactors.T913 - + 0.00950567 * tfactors.T9 + 0.00999755 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.429366 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 134.832 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -26.8327 * tfactors.T943i + (1.0/3.0) * -116.137 * tfactors.T923i - + 0.00950567 + (5.0/3.0) * 0.00999755 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = 2.22778 + -3.22353 * tfactors.T9i + 8.46334 * tfactors.T913 + + -0.907024 * tfactors.T9 + 0.0642981 * tfactors.T953 + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10r - ln_set_rate = 11.7765 + -136.349 * tfactors.T9i + 23.8634 * tfactors.T913 - + -3.70135 * tfactors.T9 + 0.28964 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.22353 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 8.46334 * tfactors.T923i + + -0.907024 + (5.0/3.0) * 0.0642981 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 136.349 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 23.8634 * tfactors.T923i - + -3.70135 + (5.0/3.0) * 0.28964 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg25_He4_to_Si29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Mg25 + He4 --> Si29 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Si28_to_He4_Mg24_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Si28 --> He4 + Mg24 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // cf88n + ln_set_rate = 40.3715 + -53.41 * tfactors.T913i + -1.83266 * tfactors.T913 + + -0.573073 * tfactors.T9 + 0.0462678 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // st08r - ln_set_rate = 32.9006 + -131.488 * tfactors.T9i; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -53.41 * tfactors.T943i + (1.0/3.0) * -1.83266 * tfactors.T923i + + -0.573073 + (5.0/3.0) * 0.0462678 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 131.488 * tfactors.T9i * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg26_p_to_Al27_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // st08r - ln_set_rate = -25.6886 + -128.693 * tfactors.T9i + 21.3721 * tfactors.T913i + 37.7649 * tfactors.T913 - + -4.10635 * tfactors.T9 + 0.249618 * tfactors.T953; + // Mg26 + p --> Al27 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 128.693 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 21.3721 * tfactors.T943i + (1.0/3.0) * 37.7649 * tfactors.T923i - + -4.10635 + (5.0/3.0) * 0.249618 * tfactors.T923; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = -27.2168 + -0.888689 * tfactors.T9i + 35.6312 * tfactors.T913 + + -5.27265 * tfactors.T9 + 0.392932 * tfactors.T953 + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.888689 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 35.6312 * tfactors.T923i + + -5.27265 + (5.0/3.0) * 0.392932 * tfactors.T923 + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Si29_to_n_Si28_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Si29 --> n + Si28 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // il10r + ln_set_rate = -84.493 + -0.469464 * tfactors.T9i + 251.281 * tfactors.T913 + + -730.009 * tfactors.T9 + -224.016 * tfactors.T953 + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ka02 - ln_set_rate = 31.7355 + -98.3365 * tfactors.T9i - + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.469464 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 251.281 * tfactors.T923i + + -730.009 + (5.0/3.0) * -224.016 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 98.3365 * tfactors.T9i * tfactors.T9i - + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = 5.26056 + -3.35921 * tfactors.T9i + 6.78105 * tfactors.T913 + + -1.25771 * tfactors.T9 + 0.140754 * tfactors.T953 + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // ka02r - ln_set_rate = 29.8758 + -98.7165 * tfactors.T9i + 7.68863 * tfactors.T913 - + -1.7991 * tfactors.T9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.35921 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 6.78105 * tfactors.T923i + + -1.25771 + (5.0/3.0) * 0.140754 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 98.7165 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 7.68863 * tfactors.T923i - + -1.7991; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg26_He4_to_Si30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Mg26 + He4 --> Si30 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Si29_to_He4_Mg25_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Si29 --> He4 + Mg25 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // cf88r + ln_set_rate = 1.32941 + -18.7164 * tfactors.T9i + -1.87411 * tfactors.T913 + + 3.41299 * tfactors.T9 + -0.43226 * tfactors.T953 + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // cf88n - ln_set_rate = 66.3395 + -129.123 * tfactors.T9i + -53.41 * tfactors.T913i + -1.83266 * tfactors.T913 - + -0.573073 * tfactors.T9 + 0.0462678 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 18.7164 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.87411 * tfactors.T923i + + 3.41299 + (5.0/3.0) * -0.43226 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 129.123 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -53.41 * tfactors.T943i + (1.0/3.0) * -1.83266 * tfactors.T923i - + -0.573073 + (5.0/3.0) * 0.0462678 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // cf88n + ln_set_rate = 45.8787 + -53.7518 * tfactors.T913i + -4.8647 * tfactors.T913 + + -1.51467 * tfactors.T9 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -53.7518 * tfactors.T943i + (1.0/3.0) * -4.8647 * tfactors.T923i + + -1.51467 + -0.666667 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Si30_to_n_Si29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Si30 --> n + Si29 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al25_n_to_Al26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // ka02n - ln_set_rate = 36.1504 + -123.112 * tfactors.T9i + 0.650904 * tfactors.T913 - + 1.5 * tfactors.lnT9; + // Al25 + n --> Al26 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 123.112 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.650904 * tfactors.T923i - + 1.5 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 7.92587 + 1.17141 * tfactors.T913 + + -0.162515 * tfactors.T9 + 0.0126275 * tfactors.T953; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // ka02r - ln_set_rate = 33.9492 + -123.292 * tfactors.T9i + 5.50678 * tfactors.T913 - + -2.85656 * tfactors.T9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 1.17141 * tfactors.T923i + + -0.162515 + (5.0/3.0) * 0.0126275 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 123.292 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.50678 * tfactors.T923i - + -2.85656; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al25_He4_to_P29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Al25 + He4 --> P29 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Si30_to_He4_Mg26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Si30 --> He4 + Mg26 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 37.9099 + -56.3424 * tfactors.T913i + 0.542998 * tfactors.T913 + + -0.721716 * tfactors.T9 + 0.0469712 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // cf88r - ln_set_rate = 26.2068 + -142.235 * tfactors.T9i + -1.87411 * tfactors.T913 - + 3.41299 * tfactors.T9 + -0.43226 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -56.3424 * tfactors.T943i + (1.0/3.0) * 0.542998 * tfactors.T923i + + -0.721716 + (5.0/3.0) * 0.0469712 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 142.235 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.87411 * tfactors.T923i - + 3.41299 + (5.0/3.0) * -0.43226 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al26_n_to_Al27_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // cf88n - ln_set_rate = 70.7561 + -123.518 * tfactors.T9i + -53.7518 * tfactors.T913i + -4.8647 * tfactors.T913 - + -1.51467 * tfactors.T9 + 0.833333 * tfactors.lnT9; + // Al26 + n --> Al27 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 123.518 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -53.7518 * tfactors.T943i + (1.0/3.0) * -4.8647 * tfactors.T923i - + -1.51467 + 0.833333 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ks03 + ln_set_rate = 14.7625 + 0.00350938 * tfactors.T9i + -0.171158 * tfactors.T913i + -1.77283 * tfactors.T913 + + 0.206192 * tfactors.T9 + -0.0191705 * tfactors.T953 + 0.139609 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.00350938 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.171158 * tfactors.T943i + (1.0/3.0) * -1.77283 * tfactors.T923i + + 0.206192 + (5.0/3.0) * -0.0191705 * tfactors.T923 + 0.139609 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Si31_to_n_Si30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Si31 --> n + Si30 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al26_He4_to_P30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // ks03 - ln_set_rate = 13.0759 + -76.3737 * tfactors.T9i + -12.3502 * tfactors.T913i + 34.6486 * tfactors.T913 - + -1.89409 * tfactors.T9 + 0.0781979 * tfactors.T953 + -12.9601 * tfactors.lnT9; + // Al26 + He4 --> P30 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 76.3737 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -12.3502 * tfactors.T943i + (1.0/3.0) * 34.6486 * tfactors.T923i - + -1.89409 + (5.0/3.0) * 0.0781979 * tfactors.T923 + -12.9601 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 42.9778 + -56.4422 * tfactors.T913i + -2.44848 * tfactors.T913 + + -1.17578 * tfactors.T9 + 0.150757 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -56.4422 * tfactors.T943i + (1.0/3.0) * -2.44848 * tfactors.T923i + + -1.17578 + (5.0/3.0) * 0.150757 * tfactors.T923 + -0.666667 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Si32_to_n_Si31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Si32 --> n + Si31 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al27_p_to_Si28_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // rath - ln_set_rate = 36.9895 + -106.811 * tfactors.T9i + 0.154735 * tfactors.T913i + 0.304696 * tfactors.T913 - + 0.0236238 * tfactors.T9 + -0.00396359 * tfactors.T953 + 1.06783 * tfactors.lnT9; + // Al27 + p --> Si28 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 106.811 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 0.154735 * tfactors.T943i + (1.0/3.0) * 0.304696 * tfactors.T923i - + 0.0236238 + (5.0/3.0) * -0.00396359 * tfactors.T923 + 1.06783 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = -13.6664 + -1.90396 * tfactors.T9i + 23.8634 * tfactors.T913 + + -3.70135 * tfactors.T9 + 0.28964 * tfactors.T953 + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.90396 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 23.8634 * tfactors.T923i + + -3.70135 + (5.0/3.0) * 0.28964 * tfactors.T923 + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_P29_to_p_Si28_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // P29 --> p + Si28 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // il10r + ln_set_rate = 86.0234 + -0.387313 * tfactors.T9i + -26.8327 * tfactors.T913i + -116.137 * tfactors.T913 + + 0.00950567 * tfactors.T9 + 0.00999755 * tfactors.T953 + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // il10n - ln_set_rate = 39.1379 + -31.8984 * tfactors.T9i + -23.8173 * tfactors.T913i + 7.08203 * tfactors.T913 - + -1.44753 * tfactors.T9 + 0.0804296 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.387313 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -26.8327 * tfactors.T943i + (1.0/3.0) * -116.137 * tfactors.T923i + + 0.00950567 + (5.0/3.0) * 0.00999755 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 31.8984 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -23.8173 * tfactors.T943i + (1.0/3.0) * 7.08203 * tfactors.T923i - + -1.44753 + (5.0/3.0) * 0.0804296 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10n + ln_set_rate = 21.1065 + -23.2205 * tfactors.T913i + + -2.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10r - ln_set_rate = 28.6997 + -36.0408 * tfactors.T9i; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -23.2205 * tfactors.T943i + + (5.0/3.0) * -2.0 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 36.0408 * tfactors.T9i * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al27_He4_to_P31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Al27 + He4 --> P31 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_P29_to_He4_Al25_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // P29 --> He4 + Al25 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 47.2333 + -56.5351 * tfactors.T913i + -0.896208 * tfactors.T913 + + -1.72024 * tfactors.T9 + 0.185409 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 63.8779 + -121.399 * tfactors.T9i + -56.3424 * tfactors.T913i + 0.542998 * tfactors.T913 - + -0.721716 * tfactors.T9 + 0.0469712 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -56.5351 * tfactors.T943i + (1.0/3.0) * -0.896208 * tfactors.T923i + + -1.72024 + (5.0/3.0) * 0.185409 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 121.399 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -56.3424 * tfactors.T943i + (1.0/3.0) * 0.542998 * tfactors.T923i - + -0.721716 + (5.0/3.0) * 0.0469712 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si28_n_to_Si29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Si28 + n --> Si29 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_P30_to_n_P29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // P30 --> n + P29 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ka02r + ln_set_rate = 6.9158 + -0.38 * tfactors.T9i + 7.68863 * tfactors.T913 + + -1.7991 * tfactors.T9 + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 32.0379 + -131.355 * tfactors.T9i + 0.15555 * tfactors.T913 - + 0.155359 * tfactors.T9 + -0.0208019 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.38 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 7.68863 * tfactors.T923i + + -1.7991 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 131.355 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.15555 * tfactors.T923i - + 0.155359 + (5.0/3.0) * -0.0208019 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ka02 + ln_set_rate = 8.77553; + amrex::ignore_unused(tfactors); - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_P30_to_p_Si29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // P30 --> p + Si29 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si28_p_to_P29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // il10r - ln_set_rate = 22.0015 + -68.2607 * tfactors.T9i + 14.0921 * tfactors.T913 - + -3.92096 * tfactors.T9 + 0.447706 * tfactors.T953; + // Si28 + p --> P29 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 68.2607 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 14.0921 * tfactors.T923i - + -3.92096 + (5.0/3.0) * 0.447706 * tfactors.T923; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10n + ln_set_rate = 16.1779 + -23.8173 * tfactors.T913i + 7.08203 * tfactors.T913 + + -1.44753 * tfactors.T9 + 0.0804296 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10r - ln_set_rate = 9.77935 + -66.1716 * tfactors.T9i; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -23.8173 * tfactors.T943i + (1.0/3.0) * 7.08203 * tfactors.T923i + + -1.44753 + (5.0/3.0) * 0.0804296 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 66.1716 * tfactors.T9i * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = 5.73975 + -4.14232 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10n - ln_set_rate = 39.7677 + -64.9214 * tfactors.T9i + -23.9101 * tfactors.T913i + 10.7796 * tfactors.T913 - + -3.04181 * tfactors.T9 + 0.274565 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 4.14232 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 64.9214 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -23.9101 * tfactors.T943i + (1.0/3.0) * 10.7796 * tfactors.T923i - + -3.04181 + (5.0/3.0) * 0.274565 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si28_He4_to_S32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Si28 + He4 --> S32 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_P30_to_He4_Al26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // P30 --> He4 + Al26 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 47.9212 + -59.4896 * tfactors.T913i + 4.47205 * tfactors.T913 + + -4.78989 * tfactors.T9 + 0.557201 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 69.1545 + -120.863 * tfactors.T9i + -56.4422 * tfactors.T913i + -2.44848 * tfactors.T913 - + -1.17578 * tfactors.T9 + 0.150757 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -59.4896 * tfactors.T943i + (1.0/3.0) * 4.47205 * tfactors.T923i + + -4.78989 + (5.0/3.0) * 0.557201 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 120.863 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -56.4422 * tfactors.T943i + (1.0/3.0) * -2.44848 * tfactors.T923i - + -1.17578 + (5.0/3.0) * 0.150757 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si29_n_to_Si30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Si29 + n --> Si30 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_P31_to_n_P30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // P31 --> n + P30 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ka02r + ln_set_rate = 9.60115 + -0.179366 * tfactors.T9i + 5.50678 * tfactors.T913 + + -2.85656 * tfactors.T9 + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 36.8808 + -142.87 * tfactors.T9i + 0.909911 * tfactors.T913 - + -0.162367 * tfactors.T9 + 0.00668293 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.179366 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.50678 * tfactors.T923i + + -2.85656 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 142.87 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.909911 * tfactors.T923i - + -0.162367 + (5.0/3.0) * 0.00668293 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ka02n + ln_set_rate = 11.8023 + 0.650904 * tfactors.T913; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.650904 * tfactors.T923i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_P31_to_p_Si30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // P31 --> p + Si30 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si29_p_to_P30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // de20r - ln_set_rate = 18.7213 + -85.9282 * tfactors.T9i - + 6.49034 * tfactors.lnT9; + // Si29 + p --> P30 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 85.9282 * tfactors.T9i * tfactors.T9i - + 6.49034 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = -1.24791 + -3.33929 * tfactors.T9i + 14.0921 * tfactors.T913 + + -3.92096 * tfactors.T9 + 0.447706 * tfactors.T953 + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // de20r - ln_set_rate = 4.04359 + -85.6217 * tfactors.T9i - + 2.80331 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.33929 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 14.0921 * tfactors.T923i + + -3.92096 + (5.0/3.0) * 0.447706 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 85.6217 * tfactors.T9i * tfactors.T9i - + 2.80331 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = -13.4701 + -1.25026 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // de20r - ln_set_rate = -1115.38 + -180.553 * tfactors.T9i - + -895.258 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.25026 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 180.553 * tfactors.T9i * tfactors.T9i - + -895.258 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10n + ln_set_rate = 16.5182 + -23.9101 * tfactors.T913i + 10.7796 * tfactors.T913 + + -3.04181 * tfactors.T9 + 0.274565 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // de20r - ln_set_rate = 32.9288 + -90.2661 * tfactors.T9i - + -0.070816 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -23.9101 * tfactors.T943i + (1.0/3.0) * 10.7796 * tfactors.T923i + + -3.04181 + (5.0/3.0) * 0.274565 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 90.2661 * tfactors.T9i * tfactors.T9i - + -0.070816 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si29_He4_to_S33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // de20r - ln_set_rate = -11.8961 + -85.2694 * tfactors.T9i - + -0.128387 * tfactors.lnT9; + // Si29 + He4 --> S33 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 85.2694 * tfactors.T9i * tfactors.T9i - + -0.128387 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 49.5657 + -59.5755 * tfactors.T913i + 1.06274 * tfactors.T913 + + -3.07529 * tfactors.T9 + 0.372011 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // de20r - ln_set_rate = 35.3329 + -91.3175 * tfactors.T9i - + 0.3809 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -59.5755 * tfactors.T943i + (1.0/3.0) * 1.06274 * tfactors.T923i + + -3.07529 + (5.0/3.0) * 0.372011 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 91.3175 * tfactors.T9i * tfactors.T9i - + 0.3809 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si30_n_to_Si31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // de20r - ln_set_rate = 31.761 + -89.8588 * tfactors.T9i - + 2.7883 * tfactors.lnT9; + // Si30 + n --> Si31 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 89.8588 * tfactors.T9i * tfactors.T9i - + 2.7883 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ks03 + ln_set_rate = -9.19438 + 0.0685821 * tfactors.T9i + -12.3502 * tfactors.T913i + 34.6486 * tfactors.T913 + + -1.89409 * tfactors.T9 + 0.0781979 * tfactors.T953 + -14.4601 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // de20r - ln_set_rate = -311.303 + -85.8097 * tfactors.T9i - + -77.047 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.0685821 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -12.3502 * tfactors.T943i + (1.0/3.0) * 34.6486 * tfactors.T923i + + -1.89409 + (5.0/3.0) * 0.0781979 * tfactors.T923 + -14.4601 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 85.8097 * tfactors.T9i * tfactors.T9i - + -77.047 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si30_p_to_P31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Si30 + p --> P31 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_P31_to_He4_Al27_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // P31 --> He4 + Al27 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // de20r + ln_set_rate = 12.3695 + -6.64105 * tfactors.T9i + + -1.1191 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 73.2168 + -112.206 * tfactors.T9i + -56.5351 * tfactors.T913i + -0.896208 * tfactors.T913 - + -1.72024 * tfactors.T9 + 0.185409 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 6.64105 * tfactors.T9i * tfactors.T9i + + -1.1191 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 112.206 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -56.5351 * tfactors.T943i + (1.0/3.0) * -0.896208 * tfactors.T923i - + -1.72024 + (5.0/3.0) * 0.185409 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // de20r + ln_set_rate = 8.79766 + -5.18231 * tfactors.T9i + + 1.2883 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.18231 * tfactors.T9i * tfactors.T9i + + 1.2883 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_P32_to_n_P31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // P32 --> n + P31 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // de20r + ln_set_rate = -334.266 + -1.13327 * tfactors.T9i + + -78.547 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ka02r - ln_set_rate = 32.7384 + -92.3401 * tfactors.T9i + 2.13185 * tfactors.T913; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.13327 * tfactors.T9i * tfactors.T9i + + -78.547 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 92.3401 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.13185 * tfactors.T923i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // de20r + ln_set_rate = -4.24208 + -1.25174 * tfactors.T9i + + 4.99034 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // ka02n - ln_set_rate = 35.7859 + -92.0933 * tfactors.T9i + 0.327031 * tfactors.T913 - + 2.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.25174 * tfactors.T9i * tfactors.T9i + + 4.99034 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 92.0933 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.327031 * tfactors.T923i - + 2.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // de20r + ln_set_rate = -18.9198 + -0.945261 * tfactors.T9i + + 1.30331 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.945261 * tfactors.T9i * tfactors.T9i + + 1.30331 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_P32_to_p_Si31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // P32 --> p + Si31 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // de20r + ln_set_rate = -1138.34 + -95.8769 * tfactors.T9i + + -896.758 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // rath - ln_set_rate = 124.914 + -103.703 * tfactors.T9i + 123.4 * tfactors.T913i + -231.734 * tfactors.T913 - + 14.2724 * tfactors.T9 + -0.867645 * tfactors.T953 + 109.969 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 95.8769 * tfactors.T9i * tfactors.T9i + + -896.758 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 103.703 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 123.4 * tfactors.T943i + (1.0/3.0) * -231.734 * tfactors.T923i - + 14.2724 + (5.0/3.0) * -0.867645 * tfactors.T923 + 109.969 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // de20r + ln_set_rate = 9.96544 + -5.58963 * tfactors.T9i + + -1.57082 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.58963 * tfactors.T9i * tfactors.T9i + + -1.57082 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_P33_to_n_P32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // P33 --> n + P32 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // de20r + ln_set_rate = -34.8594 + -0.592934 * tfactors.T9i + + -1.62839 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // rath - ln_set_rate = 34.9128 + -117.195 * tfactors.T9i + -6.14814 * tfactors.T913i + 9.5582 * tfactors.T913 - + -0.244744 * tfactors.T9 + -0.012887 * tfactors.T953 + -3.92926 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.592934 * tfactors.T9i * tfactors.T9i + + -1.62839 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 117.195 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -6.14814 * tfactors.T943i + (1.0/3.0) * 9.5582 * tfactors.T923i - + -0.244744 + (5.0/3.0) * -0.012887 * tfactors.T923 + -3.92926 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si30_He4_to_S34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Si30 + He4 --> S34 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_P33_to_p_Si32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // P33 --> p + Si32 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 47.5008 + -59.6559 * tfactors.T913i + 3.70141 * tfactors.T913 + + -3.12537 * tfactors.T9 + 0.307626 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // rath - ln_set_rate = 201.719 + -114.648 * tfactors.T9i + 174.94 * tfactors.T913i + -365.37 * tfactors.T913 - + 23.1636 * tfactors.T9 + -1.3429 * tfactors.T953 + 161.575 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -59.6559 * tfactors.T943i + (1.0/3.0) * 3.70141 * tfactors.T923i + + -3.12537 + (5.0/3.0) * 0.307626 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 114.648 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 174.94 * tfactors.T943i + (1.0/3.0) * -365.37 * tfactors.T923i - + 23.1636 + (5.0/3.0) * -1.3429 * tfactors.T923 + 161.575 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si31_n_to_Si32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Si31 + n --> Si32 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_S32_to_p_P31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // S32 --> p + P31 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // rath + ln_set_rate = 11.9451 + -0.0144696 * tfactors.T9i + 0.154735 * tfactors.T913i + 0.304696 * tfactors.T913 + + 0.0236238 * tfactors.T9 + -0.00396359 * tfactors.T953 + -0.432171 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // il10r - ln_set_rate = 25.1729 + -106.637 * tfactors.T9i + 8.09341 * tfactors.T913 - + -0.615971 * tfactors.T9 + 0.031159 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0144696 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 0.154735 * tfactors.T943i + (1.0/3.0) * 0.304696 * tfactors.T923i + + 0.0236238 + (5.0/3.0) * -0.00396359 * tfactors.T923 + -0.432171 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 106.637 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 8.09341 * tfactors.T923i - + -0.615971 + (5.0/3.0) * 0.031159 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si31_p_to_P32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // il10r - ln_set_rate = 21.6829 + -105.119 * tfactors.T9i; + // Si31 + p --> P32 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 105.119 * tfactors.T9i * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // rath + ln_set_rate = 100.968 + -3.38247 * tfactors.T9i + 123.4 * tfactors.T913i + -231.734 * tfactors.T913 + + 14.2724 * tfactors.T9 + -0.867645 * tfactors.T953 + 108.469 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10n - ln_set_rate = 43.6109 + -102.86 * tfactors.T9i + -25.3278 * tfactors.T913i + 6.4931 * tfactors.T913 - + -9.27513 * tfactors.T9 + -0.610439 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.38247 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 123.4 * tfactors.T943i + (1.0/3.0) * -231.734 * tfactors.T923i + + 14.2724 + (5.0/3.0) * -0.867645 * tfactors.T923 + 108.469 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 102.86 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -25.3278 * tfactors.T943i + (1.0/3.0) * 6.4931 * tfactors.T923i - + -9.27513 + (5.0/3.0) * -0.610439 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si31_He4_to_S35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Si31 + He4 --> S35 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_S32_to_He4_Si28_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // S32 --> He4 + Si28 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // rath + ln_set_rate = -73.2581 + -1.94072 * tfactors.T9i + -98.5176 * tfactors.T913i + 171.207 * tfactors.T913 + + -14.3839 * tfactors.T9 + 0.960708 * tfactors.T953 + -61.9936 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 72.813 + -80.626 * tfactors.T9i + -59.4896 * tfactors.T913i + 4.47205 * tfactors.T913 - + -4.78989 * tfactors.T9 + 0.557201 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.94072 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -98.5176 * tfactors.T943i + (1.0/3.0) * 171.207 * tfactors.T923i + + -14.3839 + (5.0/3.0) * 0.960708 * tfactors.T923 + -61.9936 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 80.626 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -59.4896 * tfactors.T943i + (1.0/3.0) * 4.47205 * tfactors.T923i - + -4.78989 + (5.0/3.0) * 0.557201 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si32_p_to_P33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Si32 + p --> P33 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_S33_to_n_S32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // S33 --> n + S32 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // rath + ln_set_rate = 178.753 + -3.87095 * tfactors.T9i + 174.94 * tfactors.T913i + -365.37 * tfactors.T913 + + 23.1636 * tfactors.T9 + -1.3429 * tfactors.T953 + 160.075 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 34.7199 + -100.079 * tfactors.T9i + -15.0178 * tfactors.T913i + 16.3567 * tfactors.T913 - + -0.436839 * tfactors.T9 + -0.00574462 * tfactors.T953 + -8.28034 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.87095 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 174.94 * tfactors.T943i + (1.0/3.0) * -365.37 * tfactors.T923i + + 23.1636 + (5.0/3.0) * -1.3429 * tfactors.T923 + 160.075 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 100.079 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -15.0178 * tfactors.T943i + (1.0/3.0) * 16.3567 * tfactors.T923i - + -0.436839 + (5.0/3.0) * -0.00574462 * tfactors.T923 + -8.28034 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si32_He4_to_S36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Si32 + He4 --> S36 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_S33_to_p_P32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // S33 --> p + P32 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // rath + ln_set_rate = -152.93 + -0.462221 * tfactors.T9i + -232.306 * tfactors.T913i + 393.438 * tfactors.T913 + + -25.2071 * tfactors.T9 + 1.4457 * tfactors.T953 + -171.471 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // rath - ln_set_rate = 130.726 + -114.848 * tfactors.T9i + 147.624 * tfactors.T913i + -261.318 * tfactors.T913 - + 14.2732 * tfactors.T9 + -0.776243 * tfactors.T953 + 128.247 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.462221 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -232.306 * tfactors.T943i + (1.0/3.0) * 393.438 * tfactors.T923i + + -25.2071 + (5.0/3.0) * 1.4457 * tfactors.T923 + -171.471 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 114.848 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 147.624 * tfactors.T943i + (1.0/3.0) * -261.318 * tfactors.T923i - + 14.2732 + (5.0/3.0) * -0.776243 * tfactors.T923 + 128.247 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P29_n_to_P30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // P29 + n --> P30 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_S33_to_He4_Si29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // S33 --> He4 + Si29 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 8.78841 + 0.15555 * tfactors.T913 + + 0.155359 * tfactors.T9 + -0.0208019 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 73.7708 + -82.576 * tfactors.T9i + -59.5755 * tfactors.T913i + 1.06274 * tfactors.T913 - + -3.07529 * tfactors.T9 + 0.372011 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.15555 * tfactors.T923i + + 0.155359 + (5.0/3.0) * -0.0208019 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 82.576 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -59.5755 * tfactors.T943i + (1.0/3.0) * 1.06274 * tfactors.T923i - + -3.07529 + (5.0/3.0) * 0.372011 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P29_He4_to_Cl33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // P29 + He4 --> Cl33 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_S34_to_n_S33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // S34 --> n + S33 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 41.9979 + -62.3802 * tfactors.T913i + 0.593062 * tfactors.T913 + + -1.14226 * tfactors.T9 + 0.0934776 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 20.868 + -132.246 * tfactors.T9i + -23.1351 * tfactors.T913i + 43.3623 * tfactors.T913 - + -2.74733 * tfactors.T9 + 0.159045 * tfactors.T953 + -18.1332 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -62.3802 * tfactors.T943i + (1.0/3.0) * 0.593062 * tfactors.T923i + + -1.14226 + (5.0/3.0) * 0.0934776 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 132.246 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -23.1351 * tfactors.T943i + (1.0/3.0) * 43.3623 * tfactors.T923i - + -2.74733 + (5.0/3.0) * 0.159045 * tfactors.T923 + -18.1332 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P30_n_to_P31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // P30 + n --> P31 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_S34_to_p_P33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // S34 --> p + P33 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 12.8187 + 0.909911 * tfactors.T913 + + -0.162367 * tfactors.T9 + 0.00668293 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // rath - ln_set_rate = 198.208 + -130.135 * tfactors.T9i + 161.691 * tfactors.T913i + -350.015 * tfactors.T913 - + 24.3597 * tfactors.T9 + -1.56396 * tfactors.T953 + 151.463 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.909911 * tfactors.T923i + + -0.162367 + (5.0/3.0) * 0.00668293 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 130.135 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 161.691 * tfactors.T943i + (1.0/3.0) * -350.015 * tfactors.T923i - + 24.3597 + (5.0/3.0) * -1.56396 * tfactors.T923 + 151.463 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P30_He4_to_Cl34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // P30 + He4 --> Cl34 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_S34_to_He4_Si30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // S34 --> He4 + Si30 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 45.3321 + -62.4643 * tfactors.T913i + -3.19028 * tfactors.T913 + + -0.832633 * tfactors.T9 + 0.0987525 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 72.4051 + -91.9515 * tfactors.T9i + -59.6559 * tfactors.T913i + 3.70141 * tfactors.T913 - + -3.12537 * tfactors.T9 + 0.307626 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -62.4643 * tfactors.T943i + (1.0/3.0) * -3.19028 * tfactors.T923i + + -0.832633 + (5.0/3.0) * 0.0987525 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 91.9515 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -59.6559 * tfactors.T943i + (1.0/3.0) * 3.70141 * tfactors.T923i - + -3.12537 + (5.0/3.0) * 0.307626 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P31_n_to_P32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // P31 + n --> P32 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_S35_to_n_S34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // S35 --> n + S34 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ka02r + ln_set_rate = 9.48567 + -0.246803 * tfactors.T9i + 2.13185 * tfactors.T913 + + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 63.6891 + -81.2902 * tfactors.T9i + 25.2182 * tfactors.T913i + -59.2704 * tfactors.T913 - + 4.22256 * tfactors.T9 + -0.274247 * tfactors.T953 + 26.032 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.246803 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.13185 * tfactors.T923i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 81.2902 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 25.2182 * tfactors.T943i + (1.0/3.0) * -59.2704 * tfactors.T923i - + 4.22256 + (5.0/3.0) * -0.274247 * tfactors.T923 + 26.032 * tfactors.T9i; + // ka02n + ln_set_rate = 12.5332 + 0.327031 * tfactors.T913 + + 1.0 * tfactors.lnT9; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + ln_set_rate += log_scor; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.327031 * tfactors.T923i + + 1.0 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P31_p_to_S32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_S35_to_He4_Si31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // P31 + p --> S32 - // S35 --> He4 + Si31 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // il10r + ln_set_rate = 0.821556 + -3.77704 * tfactors.T9i + 8.09341 * tfactors.T913 + + -0.615971 * tfactors.T9 + 0.031159 * tfactors.T953 + -1.5 * tfactors.lnT9; - // rath - ln_set_rate = -48.3481 + -98.5134 * tfactors.T9i + -98.5176 * tfactors.T913i + 171.207 * tfactors.T913 - + -14.3839 * tfactors.T9 + 0.960708 * tfactors.T953 + -60.4936 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.77704 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 8.09341 * tfactors.T923i + + -0.615971 + (5.0/3.0) * 0.031159 * tfactors.T923 + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 98.5134 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -98.5176 * tfactors.T943i + (1.0/3.0) * 171.207 * tfactors.T923i - + -14.3839 + (5.0/3.0) * 0.960708 * tfactors.T923 + -60.4936 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // il10r + ln_set_rate = -2.66839 + -2.25958 * tfactors.T9i + + -1.5 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_S36_to_n_S35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.25958 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - // S36 --> n + S35 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // il10n + ln_set_rate = 19.2596 + -25.3278 * tfactors.T913i + 6.4931 * tfactors.T913 + + -9.27513 * tfactors.T9 + -0.610439 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 40.1077 + -114.757 * tfactors.T9i + -2.51293 * tfactors.T913 - + 0.668068 * tfactors.T9 + -0.0786735 * tfactors.T953 + 1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -25.3278 * tfactors.T943i + (1.0/3.0) * 6.4931 * tfactors.T923i + + -9.27513 + (5.0/3.0) * -0.610439 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 114.757 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.51293 * tfactors.T923i - + 0.668068 + (5.0/3.0) * -0.0786735 * tfactors.T923 + 1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P31_He4_to_Cl35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_S36_to_He4_Si32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // P31 + He4 --> Cl35 - // S36 --> He4 + Si32 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 50.451 + -62.5433 * tfactors.T913i + -2.95026 * tfactors.T913 + + -0.89652 * tfactors.T9 + 0.0774126 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // rath - ln_set_rate = -128.015 + -104.996 * tfactors.T9i + -232.306 * tfactors.T913i + 393.438 * tfactors.T913 - + -25.2071 * tfactors.T9 + 1.4457 * tfactors.T953 + -169.971 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -62.5433 * tfactors.T943i + (1.0/3.0) * -2.95026 * tfactors.T923i + + -0.89652 + (5.0/3.0) * 0.0774126 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 104.996 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -232.306 * tfactors.T943i + (1.0/3.0) * 393.438 * tfactors.T923i - + -25.2071 + (5.0/3.0) * 1.4457 * tfactors.T923 + -169.971 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P32_n_to_P33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cl33_to_p_S32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // P32 + n --> P33 - // Cl33 --> p + S32 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // rath + ln_set_rate = 10.8477 + 0.0572362 * tfactors.T9i + -6.14814 * tfactors.T913i + 9.5582 * tfactors.T913 + + -0.244744 * tfactors.T9 + -0.012887 * tfactors.T953 + -5.42926 * tfactors.lnT9; - // il10r - ln_set_rate = 91.6078 + -29.4248 * tfactors.T9i + -33.7204 * tfactors.T913i + -32.7355 * tfactors.T913 - + 3.92526 * tfactors.T9 + -0.250479 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.0572362 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -6.14814 * tfactors.T943i + (1.0/3.0) * 9.5582 * tfactors.T923i + + -0.244744 + (5.0/3.0) * -0.012887 * tfactors.T923 + -5.42926 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 29.4248 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -33.7204 * tfactors.T943i + (1.0/3.0) * -32.7355 * tfactors.T923i - + 3.92526 + (5.0/3.0) * -0.250479 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // il10n - ln_set_rate = 74.7432 + -26.4211 * tfactors.T9i + -29.7741 * tfactors.T913i + -87.4473 * tfactors.T913 - + 182.189 * tfactors.T9 + -128.625 * tfactors.T953 + 0.833333 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P32_p_to_S33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // P32 + p --> S33 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 26.4211 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -29.7741 * tfactors.T943i + (1.0/3.0) * -87.4473 * tfactors.T923i - + 182.189 + (5.0/3.0) * -128.625 * tfactors.T923 + 0.833333 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // rath + ln_set_rate = 107.354 + -3.79249 * tfactors.T9i + 147.624 * tfactors.T913i + -261.318 * tfactors.T913 + + 14.2732 * tfactors.T9 + -0.776243 * tfactors.T953 + 126.747 * tfactors.lnT9; - // il10r - ln_set_rate = -4.96497 + -27.2952 * tfactors.T9i; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.79249 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 147.624 * tfactors.T943i + (1.0/3.0) * -261.318 * tfactors.T923i + + 14.2732 + (5.0/3.0) * -0.776243 * tfactors.T923 + 126.747 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 27.2952 * tfactors.T9i * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P32_He4_to_Cl36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cl33_to_He4_P29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // P32 + He4 --> Cl36 - // Cl33 --> He4 + P29 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // rath + ln_set_rate = -119.479 + -1.48992 * tfactors.T9i + -158.272 * tfactors.T913i + 281.836 * tfactors.T913 + + -20.652 * tfactors.T9 + 1.28543 * tfactors.T953 + -112.725 * tfactors.lnT9; - // ths8r - ln_set_rate = 66.203 + -75.1475 * tfactors.T9i + -62.3802 * tfactors.T913i + 0.593062 * tfactors.T913 - + -1.14226 * tfactors.T9 + 0.0934776 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.48992 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -158.272 * tfactors.T943i + (1.0/3.0) * 281.836 * tfactors.T923i + + -20.652 + (5.0/3.0) * 1.28543 * tfactors.T923 + -112.725 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 75.1475 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -62.3802 * tfactors.T943i + (1.0/3.0) * 0.593062 * tfactors.T923i - + -1.14226 + (5.0/3.0) * 0.0934776 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P33_p_to_S34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cl34_to_n_Cl33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // P33 + p --> S34 - // Cl34 --> n + Cl33 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // rath + ln_set_rate = 173.854 + -3.84298 * tfactors.T9i + 161.691 * tfactors.T913i + -350.015 * tfactors.T913 + + 24.3597 * tfactors.T9 + -1.56396 * tfactors.T953 + 149.963 * tfactors.lnT9; - // ths8r - ln_set_rate = 33.1968 + -133.541 * tfactors.T9i + 0.921411 * tfactors.T913 - + -0.0823764 * tfactors.T9 + 0.000852746 * tfactors.T953 + 1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.84298 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 161.691 * tfactors.T943i + (1.0/3.0) * -350.015 * tfactors.T923i + + 24.3597 + (5.0/3.0) * -1.56396 * tfactors.T923 + 149.963 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 133.541 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.921411 * tfactors.T923i - + -0.0823764 + (5.0/3.0) * 0.000852746 * tfactors.T923 + 1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P33_He4_to_Cl37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cl34_to_p_S33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // P33 + He4 --> Cl37 - // Cl34 --> p + S33 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // rath + ln_set_rate = 50.9267 + -3.38505 * tfactors.T9i + 21.2001 * tfactors.T913i + -84.0086 * tfactors.T913 + + 1.39426 * tfactors.T9 + 0.0896178 * tfactors.T953 + 47.8178 * tfactors.lnT9; - // ths8r - ln_set_rate = 61.5381 + -59.679 * tfactors.T9i + -26.777 * tfactors.T913i + -5.96882 * tfactors.T913 - + -1.0706 * tfactors.T9 + 0.19692 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.38505 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 21.2001 * tfactors.T943i + (1.0/3.0) * -84.0086 * tfactors.T923i + + 1.39426 + (5.0/3.0) * 0.0896178 * tfactors.T923 + 47.8178 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 59.679 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -26.777 * tfactors.T943i + (1.0/3.0) * -5.96882 * tfactors.T923i - + -1.0706 + (5.0/3.0) * 0.19692 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S32_n_to_S33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cl34_to_He4_P30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // S32 + n --> S33 - // Cl34 --> He4 + P30 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ks03 + ln_set_rate = 12.4466 + 0.198828 * tfactors.T9i + -15.0178 * tfactors.T913i + 16.3567 * tfactors.T913 + + -0.436839 * tfactors.T9 + -0.00574462 * tfactors.T953 + -9.78034 * tfactors.lnT9; - // ths8r - ln_set_rate = 71.335 + -77.3338 * tfactors.T9i + -62.4643 * tfactors.T913i + -3.19028 * tfactors.T913 - + -0.832633 * tfactors.T9 + 0.0987525 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.198828 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -15.0178 * tfactors.T943i + (1.0/3.0) * 16.3567 * tfactors.T923i + + -0.436839 + (5.0/3.0) * -0.00574462 * tfactors.T923 + -9.78034 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 77.3338 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -62.4643 * tfactors.T943i + (1.0/3.0) * -3.19028 * tfactors.T923i - + -0.832633 + (5.0/3.0) * 0.0987525 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cl35_to_n_Cl34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cl35 --> n + Cl34 + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S32_p_to_Cl33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - rate = 0.0; - drate_dT = 0.0; + // S32 + p --> Cl33 - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + rate = 0.0; + drate_dT = 0.0; - // ths8r - ln_set_rate = 34.9299 + -146.74 * tfactors.T9i + 0.990222 * tfactors.T913 - + -0.146686 * tfactors.T9 + 0.00560251 * tfactors.T953 + 1.5 * tfactors.lnT9; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - ln_set_rate += log_scor; + // il10n + ln_set_rate = 52.47 + -29.7741 * tfactors.T913i + -87.4473 * tfactors.T913 + + 182.189 * tfactors.T9 + -128.625 * tfactors.T953 + -0.666667 * tfactors.lnT9; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 146.74 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.990222 * tfactors.T923i - + -0.146686 + (5.0/3.0) * 0.00560251 * tfactors.T923 + 1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -29.7741 * tfactors.T943i + (1.0/3.0) * -87.4473 * tfactors.T923i + + 182.189 + (5.0/3.0) * -128.625 * tfactors.T923 + -0.666667 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cl35_to_p_S34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Cl35 --> p + S34 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // il10r + ln_set_rate = 69.3346 + -3.00371 * tfactors.T9i + -33.7204 * tfactors.T913i + -32.7355 * tfactors.T913 + + 3.92526 * tfactors.T9 + -0.250479 * tfactors.T953 + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // se19r - ln_set_rate = 22.7104 + -77.1013 * tfactors.T9i; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.00371 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -33.7204 * tfactors.T943i + (1.0/3.0) * -32.7355 * tfactors.T923i + + 3.92526 + (5.0/3.0) * -0.250479 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 77.1013 * tfactors.T9i * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = -27.2382 + -0.874107 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // se19r - ln_set_rate = -37.7488 + -101.622 * tfactors.T9i + 454.53 * tfactors.T913i + -375.557 * tfactors.T913 - + 12.6533 * tfactors.T9 + -0.408677 * tfactors.T953 + 246.618 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.874107 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 101.622 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 454.53 * tfactors.T943i + (1.0/3.0) * -375.557 * tfactors.T923i - + 12.6533 + (5.0/3.0) * -0.408677 * tfactors.T923 + 246.618 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S32_He4_to_Ar36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // se19r - ln_set_rate = 14.5754 + -75.9594 * tfactors.T9i; + // S32 + He4 --> Ar36 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 75.9594 * tfactors.T9i * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 48.901 + -65.3709 * tfactors.T913i + 5.68294 * tfactors.T913 + + -5.00388 * tfactors.T9 + 0.571407 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // se19r - ln_set_rate = 30.5303 + -79.6891 * tfactors.T9i; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -65.3709 * tfactors.T943i + (1.0/3.0) * 5.68294 * tfactors.T923i + + -5.00388 + (5.0/3.0) * 0.571407 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 79.6891 * tfactors.T9i * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S33_n_to_S34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // se19r - ln_set_rate = 7.39781 + -75.3374 * tfactors.T9i; + // S33 + n --> S34 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 75.3374 * tfactors.T9i * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ks03 + ln_set_rate = -4.17932 + 0.24641 * tfactors.T9i + -23.1351 * tfactors.T913i + 43.3623 * tfactors.T913 + + -2.74733 * tfactors.T9 + 0.159045 * tfactors.T953 + -19.6332 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // se19r - ln_set_rate = 29.2773 + -79.0392 * tfactors.T9i; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.24641 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -23.1351 * tfactors.T943i + (1.0/3.0) * 43.3623 * tfactors.T923i + + -2.74733 + (5.0/3.0) * 0.159045 * tfactors.T923 + -19.6332 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 79.0392 * tfactors.T9i * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S33_p_to_Cl34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // se19r - ln_set_rate = 4.33927 + -75.1053 * tfactors.T9i; + // S33 + p --> Cl34 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 75.1053 * tfactors.T9i * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 36.4908 + -26.777 * tfactors.T913i + -5.96882 * tfactors.T913 + + -1.0706 * tfactors.T9 + 0.19692 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // se19r - ln_set_rate = 28.0819 + -78.5751 * tfactors.T9i; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -26.777 * tfactors.T943i + (1.0/3.0) * -5.96882 * tfactors.T923i + + -1.0706 + (5.0/3.0) * 0.19692 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 78.5751 * tfactors.T9i * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S33_He4_to_Ar37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // S33 + He4 --> Ar37 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cl35_to_He4_P31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cl35 --> He4 + P31 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 49.9315 + -65.4446 * tfactors.T913i + 3.59607 * tfactors.T913 + + -3.40501 * tfactors.T9 + 0.363961 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 74.6679 + -81.2033 * tfactors.T9i + -62.5433 * tfactors.T913i + -2.95026 * tfactors.T913 - + -0.89652 * tfactors.T9 + 0.0774126 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -65.4446 * tfactors.T943i + (1.0/3.0) * 3.59607 * tfactors.T923i + + -3.40501 + (5.0/3.0) * 0.363961 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 81.2033 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -62.5433 * tfactors.T943i + (1.0/3.0) * -2.95026 * tfactors.T923i - + -0.89652 + (5.0/3.0) * 0.0774126 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S34_n_to_S35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // S34 + n --> S35 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cl36_to_n_Cl35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cl36 --> n + Cl35 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ks03 + ln_set_rate = 41.4131 + -0.229262 * tfactors.T9i + 25.2182 * tfactors.T913i + -59.2704 * tfactors.T913 + + 4.22256 * tfactors.T9 + -0.274247 * tfactors.T953 + 24.532 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 26.2181 + -99.453 * tfactors.T9i + -11.2145 * tfactors.T913i + 23.5701 * tfactors.T913 - + -1.44059 * tfactors.T9 + 0.0755834 * tfactors.T953 + -8.8832 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.229262 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 25.2182 * tfactors.T943i + (1.0/3.0) * -59.2704 * tfactors.T923i + + 4.22256 + (5.0/3.0) * -0.274247 * tfactors.T923 + 24.532 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 99.453 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -11.2145 * tfactors.T943i + (1.0/3.0) * 23.5701 * tfactors.T923i - + -1.44059 + (5.0/3.0) * 0.0755834 * tfactors.T923 + -8.8832 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S34_p_to_Cl35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // S34 + p --> Cl35 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cl36_to_p_S35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cl36 --> p + S35 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // se19r + ln_set_rate = -7.70046 + -2.02615 * tfactors.T9i + + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 58.5526 + -92.4237 * tfactors.T9i + -26.7922 * tfactors.T913i + -1.83516 * tfactors.T913 - + -2.03932 * tfactors.T9 + 0.322305 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.02615 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 92.4237 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -26.7922 * tfactors.T943i + (1.0/3.0) * -1.83516 * tfactors.T923i - + -2.03932 + (5.0/3.0) * 0.322305 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // se19r + ln_set_rate = 8.25443 + -5.75583 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.75583 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cl36_to_He4_P32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Cl36 --> He4 + P32 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // se19r + ln_set_rate = -14.8781 + -1.40414 * tfactors.T9i + + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // rath - ln_set_rate = -95.0744 + -90.1599 * tfactors.T9i + -158.272 * tfactors.T913i + 281.836 * tfactors.T913 - + -20.652 * tfactors.T9 + 1.28543 * tfactors.T953 + -111.225 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.40414 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 90.1599 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -158.272 * tfactors.T943i + (1.0/3.0) * 281.836 * tfactors.T923i - + -20.652 + (5.0/3.0) * 1.28543 * tfactors.T923 + -111.225 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // se19r + ln_set_rate = 7.00142 + -5.10598 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.10598 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cl37_to_n_Cl36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Cl37 --> n + Cl36 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // se19r + ln_set_rate = -17.9366 + -1.17205 * tfactors.T9i + + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 38.6282 + -119.659 * tfactors.T9i + -0.17256 * tfactors.T913i + -0.577904 * tfactors.T913 - + 0.229273 * tfactors.T9 + -0.0412624 * tfactors.T953 + 1.28554 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.17205 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 119.659 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.17256 * tfactors.T943i + (1.0/3.0) * -0.577904 * tfactors.T923i - + 0.229273 + (5.0/3.0) * -0.0412624 * tfactors.T923 + 1.28554 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // se19r + ln_set_rate = 5.80604 + -4.6418 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 4.6418 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cl37_to_p_S36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Cl37 --> p + S36 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // se19r + ln_set_rate = 0.43449 + -3.16803 * tfactors.T9i + + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 56.2542 + -97.3203 * tfactors.T9i + -26.7991 * tfactors.T913i + 0.0770118 * tfactors.T913 - + -1.71514 * tfactors.T9 + 0.205981 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.16803 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 97.3203 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -26.7991 * tfactors.T943i + (1.0/3.0) * 0.0770118 * tfactors.T923i - + -1.71514 + (5.0/3.0) * 0.205981 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // se19r + ln_set_rate = -60.0247 + -27.689 * tfactors.T9i + 454.53 * tfactors.T913i + -375.557 * tfactors.T913 + + 12.6533 * tfactors.T9 + -0.408677 * tfactors.T953 + 245.118 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 27.689 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 454.53 * tfactors.T943i + (1.0/3.0) * -375.557 * tfactors.T923i + + 12.6533 + (5.0/3.0) * -0.408677 * tfactors.T923 + 245.118 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cl37_to_He4_P33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Cl37 --> He4 + P33 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S34_He4_to_Ar38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // rath - ln_set_rate = 75.154 + -94.4688 * tfactors.T9i + 21.2001 * tfactors.T913i + -84.0086 * tfactors.T913 - + 1.39426 * tfactors.T9 + 0.0896178 * tfactors.T953 + 49.3178 * tfactors.lnT9; + // S34 + He4 --> Ar38 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 94.4688 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 21.2001 * tfactors.T943i + (1.0/3.0) * -84.0086 * tfactors.T923i - + 1.39426 + (5.0/3.0) * 0.0896178 * tfactors.T923 + 49.3178 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // cn18 + ln_set_rate = 228.729 + -17.9675 * tfactors.T9i + 635.332 * tfactors.T913i + -902.05 * tfactors.T913 + + 42.5623 * tfactors.T9 + -2.08434 * tfactors.T953 + 477.35 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 17.9675 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 635.332 * tfactors.T943i + (1.0/3.0) * -902.05 * tfactors.T923i + + 42.5623 + (5.0/3.0) * -2.08434 * tfactors.T923 + 477.35 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ar36_to_p_Cl35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Ar36 --> p + Cl35 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S35_n_to_S36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // il10r - ln_set_rate = 17.2028 + -102.37 * tfactors.T9i + 18.0179 * tfactors.T913 - + -2.86304 * tfactors.T9 + 0.250854 * tfactors.T953; + // S35 + n --> S36 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 102.37 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 18.0179 * tfactors.T923i - + -2.86304 + (5.0/3.0) * 0.250854 * tfactors.T923; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 15.0579 + -2.51293 * tfactors.T913 + + 0.668068 * tfactors.T9 + -0.0786735 * tfactors.T953; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10r - ln_set_rate = 16.0169 + -100.729 * tfactors.T9i; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -2.51293 * tfactors.T923i + + 0.668068 + (5.0/3.0) * -0.0786735 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 100.729 * tfactors.T9i * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S35_p_to_Cl36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // il10r - ln_set_rate = -17.4751 + -99.2838 * tfactors.T9i; + // S35 + p --> Cl36 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 99.2838 * tfactors.T9i * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 35.1122 + -26.7922 * tfactors.T913i + -1.83516 * tfactors.T913 + + -2.03932 * tfactors.T9 + 0.322305 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10n - ln_set_rate = 60.7366 + -98.7191 * tfactors.T9i + -27.8971 * tfactors.T913i + -16.2304 * tfactors.T913 - + 35.255 * tfactors.T9 + -25.8411 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -26.7922 * tfactors.T943i + (1.0/3.0) * -1.83516 * tfactors.T923i + + -2.03932 + (5.0/3.0) * 0.322305 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 98.7191 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -27.8971 * tfactors.T943i + (1.0/3.0) * -16.2304 * tfactors.T923i - + 35.255 + (5.0/3.0) * -25.8411 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S35_He4_to_Ar39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // S35 + He4 --> Ar39 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ar36_to_He4_S32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ar36 --> He4 + S32 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 50.161 + -65.58 * tfactors.T913i + 0.163229 * tfactors.T913 + + -2.20138 * tfactors.T9 + 0.232938 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 73.8164 + -77.0627 * tfactors.T9i + -65.3709 * tfactors.T913i + 5.68294 * tfactors.T913 - + -5.00388 * tfactors.T9 + 0.571407 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -65.58 * tfactors.T943i + (1.0/3.0) * 0.163229 * tfactors.T923i + + -2.20138 + (5.0/3.0) * 0.232938 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 77.0627 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -65.3709 * tfactors.T943i + (1.0/3.0) * 5.68294 * tfactors.T923i - + -5.00388 + (5.0/3.0) * 0.571407 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S36_p_to_Cl37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // S36 + p --> Cl37 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ar37_to_n_Ar36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ar37 --> n + Ar36 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 33.9758 + -26.7991 * tfactors.T913i + 0.0770118 * tfactors.T913 + + -1.71514 * tfactors.T9 + 0.205981 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 34.2933 + -101.941 * tfactors.T9i + -3.1764 * tfactors.T913i + 5.13191 * tfactors.T913 - + -0.00639688 * tfactors.T9 + -0.0292833 * tfactors.T953 + -1.24683 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -26.7991 * tfactors.T943i + (1.0/3.0) * 0.0770118 * tfactors.T923i + + -1.71514 + (5.0/3.0) * 0.205981 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 101.941 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -3.1764 * tfactors.T943i + (1.0/3.0) * 5.13191 * tfactors.T923i - + -0.00639688 + (5.0/3.0) * -0.0292833 * tfactors.T923 + -1.24683 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S36_He4_to_Ar40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // S36 + He4 --> Ar40 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ar37_to_p_Cl36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ar37 --> p + Cl36 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 49.9867 + -65.6425 * tfactors.T913i + 4.12861 * tfactors.T913 + + -3.33119 * tfactors.T9 + 0.31889 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 57.9101 + -101.131 * tfactors.T9i + -27.9044 * tfactors.T913i + -0.481331 * tfactors.T913 - + -1.50793 * tfactors.T9 + 0.182531 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -65.6425 * tfactors.T943i + (1.0/3.0) * 4.12861 * tfactors.T923i + + -3.33119 + (5.0/3.0) * 0.31889 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 101.131 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -27.9044 * tfactors.T943i + (1.0/3.0) * -0.481331 * tfactors.T923i - + -1.50793 + (5.0/3.0) * 0.182531 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl33_n_to_Cl34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cl33 + n --> Cl34 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ar37_to_He4_S33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ar37 --> He4 + S33 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 8.14947 + 0.921411 * tfactors.T913 + + -0.0823764 * tfactors.T9 + 0.000852746 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 74.852 + -78.7549 * tfactors.T9i + -65.4446 * tfactors.T913i + 3.59607 * tfactors.T913 - + -3.40501 * tfactors.T9 + 0.363961 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.921411 * tfactors.T923i + + -0.0823764 + (5.0/3.0) * 0.000852746 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 78.7549 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -65.4446 * tfactors.T943i + (1.0/3.0) * 3.59607 * tfactors.T923i - + -3.40501 + (5.0/3.0) * 0.363961 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl33_He4_to_K37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cl33 + He4 --> K37 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ar38_to_n_Ar37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ar38 --> n + Ar37 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 46.6859 + -68.1442 * tfactors.T913i + -2.72746 * tfactors.T913 + + -0.317537 * tfactors.T9 + 0.0162782 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 39.8454 + -137.376 * tfactors.T9i + -0.825362 * tfactors.T913 - + 0.336634 * tfactors.T9 + -0.0509617 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -68.1442 * tfactors.T943i + (1.0/3.0) * -2.72746 * tfactors.T923i + + -0.317537 + (5.0/3.0) * 0.0162782 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 137.376 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.825362 * tfactors.T923i - + 0.336634 + (5.0/3.0) * -0.0509617 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl34_n_to_Cl35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cl34 + n --> Cl35 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ar38_to_p_Cl37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ar38 --> p + Cl37 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 12.6539 + 0.990222 * tfactors.T913 + + -0.146686 * tfactors.T9 + 0.00560251 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 59.0616 + -118.853 * tfactors.T9i + -27.9113 * tfactors.T913i + 0.282028 * tfactors.T913 - + -1.80122 * tfactors.T9 + 0.21751 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.990222 * tfactors.T923i + + -0.146686 + (5.0/3.0) * 0.00560251 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 118.853 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -27.9113 * tfactors.T943i + (1.0/3.0) * 0.282028 * tfactors.T923i - + -1.80122 + (5.0/3.0) * 0.21751 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl34_He4_to_K38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cl34 + He4 --> K38 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ar38_to_He4_S34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ar38 --> He4 + S34 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 47.9589 + -68.2165 * tfactors.T913i + -2.18792 * tfactors.T913 + + -1.25322 * tfactors.T9 + 0.140901 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // cn18 - ln_set_rate = 253.654 + -101.617 * tfactors.T9i + 635.332 * tfactors.T913i + -902.05 * tfactors.T913 - + 42.5623 * tfactors.T9 + -2.08434 * tfactors.T953 + 478.85 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -68.2165 * tfactors.T943i + (1.0/3.0) * -2.18792 * tfactors.T923i + + -1.25322 + (5.0/3.0) * 0.140901 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 101.617 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 635.332 * tfactors.T943i + (1.0/3.0) * -902.05 * tfactors.T923i - + 42.5623 + (5.0/3.0) * -2.08434 * tfactors.T923 + 478.85 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl35_n_to_Cl36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cl35 + n --> Cl36 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ar39_to_n_Ar38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ar39 --> n + Ar38 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ks03 + ln_set_rate = 2.77768 + 0.10548 * tfactors.T9i + -11.2145 * tfactors.T913i + 23.5701 * tfactors.T913 + + -1.44059 * tfactors.T9 + 0.0755834 * tfactors.T953 + -10.3832 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 36.3134 + -76.6032 * tfactors.T9i + 2.38837 * tfactors.T913i + -4.76536 * tfactors.T913 - + 0.701311 * tfactors.T9 + -0.0705226 * tfactors.T953 + 3.30517 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.10548 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -11.2145 * tfactors.T943i + (1.0/3.0) * 23.5701 * tfactors.T923i + + -1.44059 + (5.0/3.0) * 0.0755834 * tfactors.T923 + -10.3832 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 76.6032 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.38837 * tfactors.T943i + (1.0/3.0) * -4.76536 * tfactors.T923i - + 0.701311 + (5.0/3.0) * -0.0705226 * tfactors.T923 + 3.30517 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl35_p_to_Ar36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cl35 + p --> Ar36 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ar39_to_He4_S35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ar39 --> He4 + S35 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // il10r + ln_set_rate = -42.5249 + -0.564651 * tfactors.T9i + + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 74.3976 + -79.1493 * tfactors.T9i + -65.58 * tfactors.T913i + 0.163229 * tfactors.T913 - + -2.20138 * tfactors.T9 + 0.232938 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.564651 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 79.1493 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -65.58 * tfactors.T943i + (1.0/3.0) * 0.163229 * tfactors.T923i - + -2.20138 + (5.0/3.0) * 0.232938 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10n + ln_set_rate = 35.6868 + -27.8971 * tfactors.T913i + -16.2304 * tfactors.T913 + + 35.255 * tfactors.T9 + -25.8411 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -27.8971 * tfactors.T943i + (1.0/3.0) * -16.2304 * tfactors.T923i + + 35.255 + (5.0/3.0) * -25.8411 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ar40_to_n_Ar39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // il10r + ln_set_rate = -7.84699 + -3.65092 * tfactors.T9i + 18.0179 * tfactors.T913 + + -2.86304 * tfactors.T9 + 0.250854 * tfactors.T953 + -1.5 * tfactors.lnT9; - // Ar40 --> n + Ar39 + ln_set_rate += log_scor; - rate = 0.0; - drate_dT = 0.0; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.65092 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 18.0179 * tfactors.T923i + + -2.86304 + (5.0/3.0) * 0.250854 * tfactors.T923 + -1.5 * tfactors.T9i; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // ks03 - ln_set_rate = 41.5737 + -114.56 * tfactors.T9i + 2.09789 * tfactors.T913i + -4.77242 * tfactors.T913 - + 0.64032 * tfactors.T9 + -0.0694485 * tfactors.T953 + 3.01561 * tfactors.lnT9; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - ln_set_rate += log_scor; + // il10r + ln_set_rate = -9.03294 + -2.00996 * tfactors.T9i + + -1.5 * tfactors.lnT9; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 114.56 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.09789 * tfactors.T943i + (1.0/3.0) * -4.77242 * tfactors.T923i - + 0.64032 + (5.0/3.0) * -0.0694485 * tfactors.T923 + 3.01561 * tfactors.T9i; + ln_set_rate += log_scor; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.00996 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl35_He4_to_K39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ar40_to_He4_S36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Cl35 + He4 --> K39 - // Ar40 --> He4 + S36 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 52.718 + -68.2848 * tfactors.T913i + 0.0178545 * tfactors.T913 + + -2.06783 * tfactors.T9 + 0.199659 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 74.9207 + -78.9192 * tfactors.T9i + -65.6425 * tfactors.T913i + 4.12861 * tfactors.T913 - + -3.33119 * tfactors.T9 + 0.31889 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -68.2848 * tfactors.T943i + (1.0/3.0) * 0.0178545 * tfactors.T923i + + -2.06783 + (5.0/3.0) * 0.199659 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 78.9192 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -65.6425 * tfactors.T943i + (1.0/3.0) * 4.12861 * tfactors.T923i - + -3.33119 + (5.0/3.0) * 0.31889 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl36_n_to_Cl37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_K37_to_p_Ar36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Cl36 + n --> Cl37 - // K37 --> p + Ar36 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ks03 + ln_set_rate = 14.7404 + -0.00175231 * tfactors.T9i + -0.17256 * tfactors.T913i + -0.577904 * tfactors.T913 + + 0.229273 * tfactors.T9 + -0.0412624 * tfactors.T953 + -0.214457 * tfactors.lnT9; - // il10r - ln_set_rate = 26.976 + -25.1829 * tfactors.T9i; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.00175231 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.17256 * tfactors.T943i + (1.0/3.0) * -0.577904 * tfactors.T923i + + 0.229273 + (5.0/3.0) * -0.0412624 * tfactors.T923 + -0.214457 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 25.1829 * tfactors.T9i * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // il10r - ln_set_rate = 25.4611 + -30.5381 * tfactors.T9i + 7.50962 * tfactors.T913 - + -1.68675 * tfactors.T9 + 0.189725 * tfactors.T953; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl36_p_to_Ar37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Cl36 + p --> Ar37 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 30.5381 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 7.50962 * tfactors.T923i - + -1.68675 + (5.0/3.0) * 0.189725 * tfactors.T923; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ths8r + ln_set_rate = 34.0223 + -27.9044 * tfactors.T913i + -0.481331 * tfactors.T913 + + -1.50793 * tfactors.T9 + 0.182531 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // il10n - ln_set_rate = 43.7706 + -21.5578 * tfactors.T9i + -28.9682 * tfactors.T913i - + -1.0 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -27.9044 * tfactors.T943i + (1.0/3.0) * -0.481331 * tfactors.T923i + + -1.50793 + (5.0/3.0) * 0.182531 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 21.5578 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -28.9682 * tfactors.T943i - + (5.0/3.0) * -1.0 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl36_He4_to_K40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_K37_to_He4_Cl33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Cl36 + He4 --> K40 - // K37 --> He4 + Cl33 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 55.7157 + -68.3499 * tfactors.T913i + -4.69433 * tfactors.T913 + + -1.24812 * tfactors.T9 + 0.169306 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 71.6063 + -72.1995 * tfactors.T9i + -68.1442 * tfactors.T913i + -2.72746 * tfactors.T913 - + -0.317537 * tfactors.T9 + 0.0162782 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -68.3499 * tfactors.T943i + (1.0/3.0) * -4.69433 * tfactors.T923i + + -1.24812 + (5.0/3.0) * 0.169306 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 72.1995 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -68.1442 * tfactors.T943i + (1.0/3.0) * -2.72746 * tfactors.T923i - + -0.317537 + (5.0/3.0) * 0.0162782 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl37_p_to_Ar38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_K38_to_n_K37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Cl37 + p --> Ar38 - // K38 --> n + K37 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 34.0095 + -27.9113 * tfactors.T913i + 0.282028 * tfactors.T913 + + -1.80122 * tfactors.T9 + 0.21751 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 32.0874 + -140.087 * tfactors.T9i + 0.538174 * tfactors.T913 - + -0.0208079 * tfactors.T9 + -0.00404949 * tfactors.T953 + 1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -27.9113 * tfactors.T943i + (1.0/3.0) * 0.282028 * tfactors.T923i + + -1.80122 + (5.0/3.0) * 0.21751 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 140.087 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.538174 * tfactors.T923i - + -0.0208079 + (5.0/3.0) * -0.00404949 * tfactors.T923 + 1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl37_He4_to_K41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_K38_to_p_Ar37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Cl37 + He4 --> K41 - // K38 --> p + Ar37 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 51.2462 + -68.4116 * tfactors.T913i + 3.55194 * tfactors.T913 + + -2.84942 * tfactors.T9 + 0.24958 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 60.8316 + -59.6703 * tfactors.T9i + -28.9954 * tfactors.T913i + -5.57966 * tfactors.T913 - + -1.27516 * tfactors.T9 + 0.217568 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -68.4116 * tfactors.T943i + (1.0/3.0) * 3.55194 * tfactors.T923i + + -2.84942 + (5.0/3.0) * 0.24958 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 59.6703 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -28.9954 * tfactors.T943i + (1.0/3.0) * -5.57966 * tfactors.T923i - + -1.27516 + (5.0/3.0) * 0.217568 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar36_n_to_Ar37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_K38_to_He4_Cl34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ar36 + n --> Ar37 - // K38 --> He4 + Cl34 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ks03 + ln_set_rate = 12.0149 + 0.0317044 * tfactors.T9i + -3.1764 * tfactors.T913i + 5.13191 * tfactors.T913 + + -0.00639688 * tfactors.T9 + -0.0292833 * tfactors.T953 + -2.74683 * tfactors.lnT9; - // ths8r - ln_set_rate = 70.9382 + -78.7462 * tfactors.T9i + -68.2165 * tfactors.T913i + -2.18792 * tfactors.T913 - + -1.25322 * tfactors.T9 + 0.140901 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.0317044 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -3.1764 * tfactors.T943i + (1.0/3.0) * 5.13191 * tfactors.T923i + + -0.00639688 + (5.0/3.0) * -0.0292833 * tfactors.T923 + -2.74683 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 78.7462 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -68.2165 * tfactors.T943i + (1.0/3.0) * -2.18792 * tfactors.T923i - + -1.25322 + (5.0/3.0) * 0.140901 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar36_p_to_K37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_K39_to_n_K38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ar36 + p --> K37 - // K39 --> n + K38 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // il10r + ln_set_rate = 3.18278 + -8.98031 * tfactors.T9i + 7.50962 * tfactors.T913 + + -1.68675 * tfactors.T9 + 0.189725 * tfactors.T953 + -1.5 * tfactors.lnT9; - // ths8r - ln_set_rate = 37.986 + -151.759 * tfactors.T9i + -0.161985 * tfactors.T913 - + 0.187817 * tfactors.T9 + -0.0320464 * tfactors.T953 + 1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 8.98031 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 7.50962 * tfactors.T923i + + -1.68675 + (5.0/3.0) * 0.189725 * tfactors.T923 + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 151.759 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.161985 * tfactors.T923i - + 0.187817 + (5.0/3.0) * -0.0320464 * tfactors.T923 + 1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // il10r + ln_set_rate = 4.69769 + -3.6251 * tfactors.T9i + + -1.5 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_K39_to_p_Ar38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.6251 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - // K39 --> p + Ar38 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // il10n + ln_set_rate = 21.4923 + -28.9682 * tfactors.T913i + + -1.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 57.5639 + -74.0533 * tfactors.T9i + -29.0021 * tfactors.T913i + -0.525968 * tfactors.T913 - + -1.94216 * tfactors.T9 + 0.267346 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -28.9682 * tfactors.T943i + + (5.0/3.0) * -1.0 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 74.0533 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -29.0021 * tfactors.T943i + (1.0/3.0) * -0.525968 * tfactors.T923i - + -1.94216 + (5.0/3.0) * 0.267346 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar36_He4_to_Ca40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_K39_to_He4_Cl35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ar36 + He4 --> Ca40 - // K39 --> He4 + Cl35 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 52.3486 + -71.0046 * tfactors.T913i + 4.0656 * tfactors.T913 + + -5.26509 * tfactors.T9 + 0.683546 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 77.6477 + -83.7658 * tfactors.T9i + -68.2848 * tfactors.T913i + 0.0178545 * tfactors.T913 - + -2.06783 * tfactors.T9 + 0.199659 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -71.0046 * tfactors.T943i + (1.0/3.0) * 4.0656 * tfactors.T923i + + -5.26509 + (5.0/3.0) * 0.683546 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 83.7658 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -68.2848 * tfactors.T943i + (1.0/3.0) * 0.0178545 * tfactors.T923i - + -2.06783 + (5.0/3.0) * 0.199659 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar37_n_to_Ar38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_K40_to_n_K39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ar37 + n --> Ar38 - // K40 --> n + K39 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 14.7933 + -0.825362 * tfactors.T913 + + 0.336634 * tfactors.T9 + -0.0509617 * tfactors.T953; - // ks03 - ln_set_rate = 40.473 + -90.4754 * tfactors.T9i + -2.2227 * tfactors.T913i + -1.88579 * tfactors.T913 - + 0.714904 * tfactors.T9 + -0.0774902 * tfactors.T953 + 0.640527 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.825362 * tfactors.T923i + + 0.336634 + (5.0/3.0) * -0.0509617 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 90.4754 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.2227 * tfactors.T943i + (1.0/3.0) * -1.88579 * tfactors.T923i - + 0.714904 + (5.0/3.0) * -0.0774902 * tfactors.T923 + 0.640527 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar37_p_to_K38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_K40_to_p_Ar39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ar37 + p --> K38 - // K40 --> p + Ar39 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 37.7254 + -28.9954 * tfactors.T913i + -5.57966 * tfactors.T913 + + -1.27516 * tfactors.T9 + 0.217568 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 59.5373 + -87.9872 * tfactors.T9i + -29.0085 * tfactors.T913i + -2.81753 * tfactors.T913 - + -0.757962 * tfactors.T9 + 0.099462 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -28.9954 * tfactors.T943i + (1.0/3.0) * -5.57966 * tfactors.T923i + + -1.27516 + (5.0/3.0) * 0.217568 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 87.9872 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -29.0085 * tfactors.T943i + (1.0/3.0) * -2.81753 * tfactors.T923i - + -0.757962 + (5.0/3.0) * 0.099462 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar37_He4_to_Ca41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_K40_to_He4_Cl36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ar37 + He4 --> Ca41 - // K40 --> He4 + Cl36 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 52.7522 + -71.0688 * tfactors.T913i + 2.71847 * tfactors.T913 + + -3.17333 * tfactors.T9 + 0.335323 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 80.0619 + -74.7128 * tfactors.T9i + -68.3499 * tfactors.T913i + -4.69433 * tfactors.T913 - + -1.24812 * tfactors.T9 + 0.169306 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -71.0688 * tfactors.T943i + (1.0/3.0) * 2.71847 * tfactors.T923i + + -3.17333 + (5.0/3.0) * 0.335323 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 74.7128 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -68.3499 * tfactors.T943i + (1.0/3.0) * -4.69433 * tfactors.T923i - + -1.24812 + (5.0/3.0) * 0.169306 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar38_n_to_Ar39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_K41_to_n_K40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ar38 + n --> Ar39 - // K41 --> n + K40 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ks03 + ln_set_rate = 14.726 + -0.0331959 * tfactors.T9i + 2.38837 * tfactors.T913i + -4.76536 * tfactors.T913 + + 0.701311 * tfactors.T9 + -0.0705226 * tfactors.T953 + 1.80517 * tfactors.lnT9; - // ks03 - ln_set_rate = 41.9339 + -117.19 * tfactors.T9i + 1.90527 * tfactors.T913i + -4.8523 * tfactors.T913 - + 0.552061 * tfactors.T9 + -0.0570777 * tfactors.T953 + 2.96777 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0331959 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.38837 * tfactors.T943i + (1.0/3.0) * -4.76536 * tfactors.T923i + + 0.701311 + (5.0/3.0) * -0.0705226 * tfactors.T923 + 1.80517 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 117.19 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.90527 * tfactors.T943i + (1.0/3.0) * -4.8523 * tfactors.T923i - + 0.552061 + (5.0/3.0) * -0.0570777 * tfactors.T923 + 2.96777 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar38_p_to_K39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_K41_to_p_Ar40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ar38 + p --> K39 - // K41 --> p + Ar40 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 35.2834 + -29.0021 * tfactors.T913i + -0.525968 * tfactors.T913 + + -1.94216 * tfactors.T9 + 0.267346 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 56.6932 + -90.6097 * tfactors.T9i + -29.0146 * tfactors.T913i + 0.65181 * tfactors.T913 - + -1.50557 * tfactors.T9 + 0.139974 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -29.0021 * tfactors.T943i + (1.0/3.0) * -0.525968 * tfactors.T923i + + -1.94216 + (5.0/3.0) * 0.267346 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 90.6097 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -29.0146 * tfactors.T943i + (1.0/3.0) * 0.65181 * tfactors.T923i - + -1.50557 + (5.0/3.0) * 0.139974 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar38_He4_to_Ca42_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_K41_to_He4_Cl37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ar38 + He4 --> Ca42 - // K41 --> He4 + Cl37 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 52.6394 + -71.1296 * tfactors.T913i + 2.75299 * tfactors.T913 + + -2.43406 * tfactors.T9 + 0.199511 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 76.1843 + -72.2085 * tfactors.T9i + -68.4116 * tfactors.T913i + 3.55194 * tfactors.T913 - + -2.84942 * tfactors.T9 + 0.24958 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -71.1296 * tfactors.T943i + (1.0/3.0) * 2.75299 * tfactors.T923i + + -2.43406 + (5.0/3.0) * 0.199511 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 72.2085 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -68.4116 * tfactors.T943i + (1.0/3.0) * 3.55194 * tfactors.T923i - + -2.84942 + (5.0/3.0) * 0.24958 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar39_n_to_Ar40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ca40_to_p_K39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ar39 + n --> Ar40 - // Ca40 --> p + K39 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ks03 + ln_set_rate = 15.8265 + -0.0317703 * tfactors.T9i + 2.09789 * tfactors.T913i + -4.77242 * tfactors.T913 + + 0.64032 * tfactors.T9 + -0.0694485 * tfactors.T953 + 1.51561 * tfactors.lnT9; - // lo18r - ln_set_rate = 2786.44 + -101.871 * tfactors.T9i + 802.18 * tfactors.T913i + -4010.27 * tfactors.T913 - + 1137.69 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0317703 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.09789 * tfactors.T943i + (1.0/3.0) * -4.77242 * tfactors.T923i + + 0.64032 + (5.0/3.0) * -0.0694485 * tfactors.T923 + 1.51561 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 101.871 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 802.18 * tfactors.T943i + (1.0/3.0) * -4010.27 * tfactors.T923i - + 1137.69 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // lo18r - ln_set_rate = 613.153 + -109.213 * tfactors.T9i + 641.844 * tfactors.T913i + -1248.49 * tfactors.T913 - + 566.426 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar39_p_to_K40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Ar39 + p --> K40 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 109.213 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 641.844 * tfactors.T943i + (1.0/3.0) * -1248.49 * tfactors.T923i - + 566.426 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ths8r + ln_set_rate = 35.9873 + -29.0085 * tfactors.T913i + -2.81753 * tfactors.T913 + + -0.757962 * tfactors.T9 + 0.099462 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // lo18r - ln_set_rate = 127.306 + -98.3134 * tfactors.T9i + 41.1723 * tfactors.T913i + -149.299 * tfactors.T913 - + 10.5229 * tfactors.T9 + -0.68208 * tfactors.T953 + 60.7367 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -29.0085 * tfactors.T943i + (1.0/3.0) * -2.81753 * tfactors.T923i + + -0.757962 + (5.0/3.0) * 0.099462 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 98.3134 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 41.1723 * tfactors.T943i + (1.0/3.0) * -149.299 * tfactors.T923i - + 10.5229 + (5.0/3.0) * -0.68208 * tfactors.T923 + 60.7367 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar39_He4_to_Ca43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ca40_to_He4_Ar36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ar39 + He4 --> Ca43 - // Ca40 --> He4 + Ar36 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 53.0126 + -71.1879 * tfactors.T913i + 2.58821 * tfactors.T913 + + -3.67809 * tfactors.T9 + 0.431537 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 77.2826 + -81.6916 * tfactors.T9i + -71.0046 * tfactors.T913i + 4.0656 * tfactors.T913 - + -5.26509 * tfactors.T9 + 0.683546 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -71.1879 * tfactors.T943i + (1.0/3.0) * 2.58821 * tfactors.T923i + + -3.67809 + (5.0/3.0) * 0.431537 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 81.6916 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -71.0046 * tfactors.T943i + (1.0/3.0) * 4.0656 * tfactors.T923i - + -5.26509 + (5.0/3.0) * 0.683546 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar40_p_to_K41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ca41_to_n_Ca40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ar40 + p --> K41 - // Ca41 --> n + Ca40 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 34.4108 + -29.0146 * tfactors.T913i + 0.65181 * tfactors.T913 + + -1.50557 * tfactors.T9 + 0.139974 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ks03 - ln_set_rate = 24.6353 + -96.9664 * tfactors.T9i + -9.18636 * tfactors.T913i + 21.0095 * tfactors.T913 - + -1.33326 * tfactors.T9 + 0.0769347 * tfactors.T953 + -7.16245 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -29.0146 * tfactors.T943i + (1.0/3.0) * 0.65181 * tfactors.T923i + + -1.50557 + (5.0/3.0) * 0.139974 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 96.9664 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -9.18636 * tfactors.T943i + (1.0/3.0) * 21.0095 * tfactors.T923i - + -1.33326 + (5.0/3.0) * 0.0769347 * tfactors.T923 + -7.16245 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar40_He4_to_Ca44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ca41_to_p_K40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ar40 + He4 --> Ca44 - // Ca41 --> p + K40 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 51.2366 + -71.2432 * tfactors.T913i + 6.75101 * tfactors.T913 + + -5.53183 * tfactors.T9 + 0.667023 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 58.8838 + -103.182 * tfactors.T9i + -30.0795 * tfactors.T913i + 0.0447475 * tfactors.T913 - + -1.69565 * tfactors.T9 + 0.20173 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -71.2432 * tfactors.T943i + (1.0/3.0) * 6.75101 * tfactors.T923i + + -5.53183 + (5.0/3.0) * 0.667023 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 103.182 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -30.0795 * tfactors.T943i + (1.0/3.0) * 0.0447475 * tfactors.T923i - + -1.69565 + (5.0/3.0) * 0.20173 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K37_n_to_K38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ca41_to_He4_Ar37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // K37 + n --> K38 - // Ca41 --> He4 + Ar37 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 8.98129 + 0.538174 * tfactors.T913 + + -0.0208079 * tfactors.T9 + -0.00404949 * tfactors.T953; - // ths8r - ln_set_rate = 76.9971 + -76.764 * tfactors.T9i + -71.0688 * tfactors.T913i + 2.71847 * tfactors.T913 - + -3.17333 * tfactors.T9 + 0.335323 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.538174 * tfactors.T923i + + -0.0208079 + (5.0/3.0) * -0.00404949 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 76.764 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -71.0688 * tfactors.T943i + (1.0/3.0) * 2.71847 * tfactors.T923i - + -3.17333 + (5.0/3.0) * 0.335323 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K38_n_to_K39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ca42_to_n_Ca41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // K38 + n --> K39 - // Ca42 --> n + Ca41 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 13.7596 + -0.161985 * tfactors.T913 + + 0.187817 * tfactors.T9 + -0.0320464 * tfactors.T953; - // ks03 - ln_set_rate = 46.1952 + -133.264 * tfactors.T9i + 3.7037 * tfactors.T913i + -9.99246 * tfactors.T913 - + 1.05894 * tfactors.T9 + -0.0978564 * tfactors.T953 + 4.93604 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.161985 * tfactors.T923i + + 0.187817 + (5.0/3.0) * -0.0320464 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 133.264 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 3.7037 * tfactors.T943i + (1.0/3.0) * -9.99246 * tfactors.T923i - + 1.05894 + (5.0/3.0) * -0.0978564 * tfactors.T923 + 4.93604 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K39_n_to_K40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ca42_to_p_K41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // K39 + n --> K40 - // Ca42 --> p + K41 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ks03 + ln_set_rate = 17.6161 + 0.0316194 * tfactors.T9i + -2.2227 * tfactors.T913i + -1.88579 * tfactors.T913 + + 0.714904 * tfactors.T9 + -0.0774902 * tfactors.T953 + -0.859473 * tfactors.lnT9; - // SM86n - ln_set_rate = 57.2573 + -119.259 * tfactors.T9i + -30.08 * tfactors.T913i + 2.93877 * tfactors.T913 - + 2.77388 * tfactors.T9 + -4.8284 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.0316194 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.2227 * tfactors.T943i + (1.0/3.0) * -1.88579 * tfactors.T923i + + 0.714904 + (5.0/3.0) * -0.0774902 * tfactors.T923 + -0.859473 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 119.259 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -30.08 * tfactors.T943i + (1.0/3.0) * 2.93877 * tfactors.T923i - + 2.77388 + (5.0/3.0) * -4.8284 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // SM86r - ln_set_rate = 41.0777 + -131.259 * tfactors.T9i + -1.68317 * tfactors.T913 - + 0.692171 * tfactors.T9 + -0.0831029 * tfactors.T953; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K39_p_to_Ca40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // K39 + p --> Ca40 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 131.259 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.68317 * tfactors.T923i - + 0.692171 + (5.0/3.0) * -0.0831029 * tfactors.T923; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // lo18r + ln_set_rate = 2761.38 + -5.22234 * tfactors.T9i + 802.18 * tfactors.T913i + -4010.27 * tfactors.T913 + + 1136.19 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ca42_to_He4_Ar38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.22234 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 802.18 * tfactors.T943i + (1.0/3.0) * -4010.27 * tfactors.T923i + + 1136.19 * tfactors.T9i; - // Ca42 --> He4 + Ar38 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // lo18r + ln_set_rate = 588.099 + -12.5647 * tfactors.T9i + 641.844 * tfactors.T913i + -1248.49 * tfactors.T913 + + 564.926 * tfactors.lnT9; - // ths8r - ln_set_rate = 77.5813 + -72.6145 * tfactors.T9i + -71.1296 * tfactors.T913i + 2.75299 * tfactors.T913 - + -2.43406 * tfactors.T9 + 0.199511 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 12.5647 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 641.844 * tfactors.T943i + (1.0/3.0) * -1248.49 * tfactors.T923i + + 564.926 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 72.6145 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -71.1296 * tfactors.T943i + (1.0/3.0) * 2.75299 * tfactors.T923i - + -2.43406 + (5.0/3.0) * 0.199511 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } + + // lo18r + ln_set_rate = 102.252 + -1.66508 * tfactors.T9i + 41.1723 * tfactors.T913i + -149.299 * tfactors.T913 + + 10.5229 * tfactors.T9 + -0.68208 * tfactors.T953 + 59.2367 * tfactors.lnT9; + + ln_set_rate += log_scor; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.66508 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 41.1723 * tfactors.T943i + (1.0/3.0) * -149.299 * tfactors.T923i + + 10.5229 + (5.0/3.0) * -0.68208 * tfactors.T923 + 59.2367 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K39_He4_to_Sc43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ca43_to_n_Ca42_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // K39 + He4 --> Sc43 - // Ca43 --> n + Ca42 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 54.1202 + -73.8006 * tfactors.T913i + 1.87885 * tfactors.T913 + + -2.75862 * tfactors.T9 + 0.279678 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ks03 - ln_set_rate = 37.587 + -92.0254 * tfactors.T9i + -2.75867 * tfactors.T913i + 0.860871 * tfactors.T913 - + 0.583467 * tfactors.T9 + -0.094473 * tfactors.T953 + -0.09357 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -73.8006 * tfactors.T943i + (1.0/3.0) * 1.87885 * tfactors.T923i + + -2.75862 + (5.0/3.0) * 0.279678 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 92.0254 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.75867 * tfactors.T943i + (1.0/3.0) * 0.860871 * tfactors.T923i - + 0.583467 + (5.0/3.0) * -0.094473 * tfactors.T923 + -0.09357 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K40_n_to_K41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ca43_to_He4_Ar39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // K40 + n --> K41 - // Ca43 --> He4 + Ar39 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ks03 + ln_set_rate = 17.4542 + -0.0277342 * tfactors.T9i + 1.90527 * tfactors.T913i + -4.8523 * tfactors.T913 + + 0.552061 * tfactors.T9 + -0.0570777 * tfactors.T953 + 1.46777 * tfactors.lnT9; - // ths8r - ln_set_rate = 77.9582 + -88.096 * tfactors.T9i + -71.1879 * tfactors.T913i + 2.58821 * tfactors.T913 - + -3.67809 * tfactors.T9 + 0.431537 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0277342 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.90527 * tfactors.T943i + (1.0/3.0) * -4.8523 * tfactors.T923i + + 0.552061 + (5.0/3.0) * -0.0570777 * tfactors.T923 + 1.46777 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 88.096 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -71.1879 * tfactors.T943i + (1.0/3.0) * 2.58821 * tfactors.T923i - + -3.67809 + (5.0/3.0) * 0.431537 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K40_p_to_Ca41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ca44_to_n_Ca43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // K40 + p --> Ca41 - // Ca44 --> n + Ca43 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 35.0973 + -30.0795 * tfactors.T913i + 0.0447475 * tfactors.T913 + + -1.69565 * tfactors.T9 + 0.20173 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ks03 - ln_set_rate = 36.4384 + -129.179 * tfactors.T9i + -1.26512 * tfactors.T913i + 6.74718 * tfactors.T913 - + -0.673582 * tfactors.T9 + 0.0412245 * tfactors.T953 + -0.80362 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -30.0795 * tfactors.T943i + (1.0/3.0) * 0.0447475 * tfactors.T923i + + -1.69565 + (5.0/3.0) * 0.20173 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 129.179 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.26512 * tfactors.T943i + (1.0/3.0) * 6.74718 * tfactors.T923i - + -0.673582 + (5.0/3.0) * 0.0412245 * tfactors.T923 + -0.80362 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K40_He4_to_Sc44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ca44_to_He4_Ar40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // K40 + He4 --> Sc44 - // Ca44 --> He4 + Ar40 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 55.9694 + -73.858 * tfactors.T913i + -1.10691 * tfactors.T913 + + -2.42921 * tfactors.T9 + 0.294 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 76.1857 + -102.74 * tfactors.T9i + -71.2432 * tfactors.T913i + 6.75101 * tfactors.T913 - + -5.53183 * tfactors.T9 + 0.667023 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -73.858 * tfactors.T943i + (1.0/3.0) * -1.10691 * tfactors.T923i + + -2.42921 + (5.0/3.0) * 0.294 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 102.74 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -71.2432 * tfactors.T943i + (1.0/3.0) * 6.75101 * tfactors.T923i - + -5.53183 + (5.0/3.0) * 0.667023 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K41_p_to_Ca42_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ca45_to_n_Ca44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // K41 + p --> Ca42 - // Ca45 --> n + Ca44 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // SM86n + ln_set_rate = 32.2014 + -30.08 * tfactors.T913i + 2.93877 * tfactors.T913 + + 2.77388 * tfactors.T9 + -4.8284 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ks03 - ln_set_rate = 23.6235 + -85.8488 * tfactors.T9i + -17.5809 * tfactors.T913i + 30.835 * tfactors.T913 - + -1.52658 * tfactors.T9 + 0.0495163 * tfactors.T953 + -13.0794 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -30.08 * tfactors.T943i + (1.0/3.0) * 2.93877 * tfactors.T923i + + 2.77388 + (5.0/3.0) * -4.8284 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 85.8488 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -17.5809 * tfactors.T943i + (1.0/3.0) * 30.835 * tfactors.T923i - + -1.52658 + (5.0/3.0) * 0.0495163 * tfactors.T923 + -13.0794 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } + + // SM86r + ln_set_rate = 16.0218 + -12.0 * tfactors.T9i + -1.68317 * tfactors.T913 + + 0.692171 * tfactors.T9 + -0.0831029 * tfactors.T953 + -1.5 * tfactors.lnT9; + + ln_set_rate += log_scor; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 12.0 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.68317 * tfactors.T923i + + 0.692171 + (5.0/3.0) * -0.0831029 * tfactors.T923 + -1.5 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K41_He4_to_Sc45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ca46_to_n_Ca45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // K41 + He4 --> Sc45 - // Ca46 --> n + Ca45 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 54.8015 + -73.9127 * tfactors.T913i + 0.81435 * tfactors.T913 + + -2.90813 * tfactors.T9 + 0.335176 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ks03 - ln_set_rate = 48.3638 + -120.708 * tfactors.T9i + 5.01526 * tfactors.T913i + -14.4226 * tfactors.T913 - + 1.37087 * tfactors.T9 + -0.111582 * tfactors.T953 + 6.37661 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -73.9127 * tfactors.T943i + (1.0/3.0) * 0.81435 * tfactors.T923i + + -2.90813 + (5.0/3.0) * 0.335176 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 120.708 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 5.01526 * tfactors.T943i + (1.0/3.0) * -14.4226 * tfactors.T923i - + 1.37087 + (5.0/3.0) * -0.111582 * tfactors.T923 + 6.37661 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca40_n_to_Ca41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ca47_to_n_Ca46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca40 + n --> Ca41 - // Ca47 --> n + Ca46 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ks03 + ln_set_rate = 3.04601 + 0.0855375 * tfactors.T9i + -9.18636 * tfactors.T913i + 21.0095 * tfactors.T913 + + -1.33326 * tfactors.T9 + 0.0769347 * tfactors.T953 + -8.66245 * tfactors.lnT9; - // ks03 - ln_set_rate = 20.7079 + -84.2309 * tfactors.T9i + -19.7417 * tfactors.T913i + 35.2401 * tfactors.T913 - + -1.61262 * tfactors.T9 + 0.0443701 * tfactors.T953 + -15.2507 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.0855375 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -9.18636 * tfactors.T943i + (1.0/3.0) * 21.0095 * tfactors.T923i + + -1.33326 + (5.0/3.0) * 0.0769347 * tfactors.T923 + -8.66245 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 84.2309 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -19.7417 * tfactors.T943i + (1.0/3.0) * 35.2401 * tfactors.T923i - + -1.61262 + (5.0/3.0) * 0.0443701 * tfactors.T923 + -15.2507 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca40_He4_to_Ti44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ca48_to_n_Ca47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca40 + He4 --> Ti44 - // Ca48 --> n + Ca47 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // chw0 + ln_set_rate = 53.75 + -76.4273 * tfactors.T913i + 3.87451 * tfactors.T913 + + -3.61477 * tfactors.T9 + 0.367451 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 40.9752 + -115.41 * tfactors.T9i + -2.88636 * tfactors.T913 - + 0.79581 * tfactors.T9 + -0.0872236 * tfactors.T953 + 1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -76.4273 * tfactors.T943i + (1.0/3.0) * 3.87451 * tfactors.T923i + + -3.61477 + (5.0/3.0) * 0.367451 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 115.41 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.88636 * tfactors.T923i - + 0.79581 + (5.0/3.0) * -0.0872236 * tfactors.T923 + 1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca41_n_to_Ca42_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Sc43_to_p_Ca42_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca41 + n --> Ca42 - // Sc43 --> p + Ca42 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ks03 + ln_set_rate = 20.4461 + -0.0409481 * tfactors.T9i + 3.7037 * tfactors.T913i + -9.99246 * tfactors.T913 + + 1.05894 * tfactors.T9 + -0.0978564 * tfactors.T953 + 3.43604 * tfactors.lnT9; - // ths8r - ln_set_rate = 57.4102 + -57.2082 * tfactors.T9i + -31.1381 * tfactors.T913i + -0.151667 * tfactors.T913 - + -1.76926 * tfactors.T9 + 0.219569 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0409481 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 3.7037 * tfactors.T943i + (1.0/3.0) * -9.99246 * tfactors.T923i + + 1.05894 + (5.0/3.0) * -0.0978564 * tfactors.T923 + 3.43604 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 57.2082 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.1381 * tfactors.T943i + (1.0/3.0) * -0.151667 * tfactors.T923i - + -1.76926 + (5.0/3.0) * 0.219569 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca41_He4_to_Ti45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Sc43_to_He4_K39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca41 + He4 --> Ti45 - // Sc43 --> He4 + K39 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 54.6305 + -76.4839 * tfactors.T913i + 3.03748 * tfactors.T913 + + -2.59814 * tfactors.T9 + 0.210582 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 78.3727 + -55.7693 * tfactors.T9i + -73.8006 * tfactors.T913i + 1.87885 * tfactors.T913 - + -2.75862 * tfactors.T9 + 0.279678 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -76.4839 * tfactors.T943i + (1.0/3.0) * 3.03748 * tfactors.T923i + + -2.59814 + (5.0/3.0) * 0.210582 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 55.7693 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -73.8006 * tfactors.T943i + (1.0/3.0) * 1.87885 * tfactors.T923i - + -2.75862 + (5.0/3.0) * 0.279678 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca42_n_to_Ca43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Sc44_to_n_Sc43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca42 + n --> Ca43 - // Sc44 --> n + Sc43 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ks03 + ln_set_rate = 15.996 + 0.0365498 * tfactors.T9i + -2.75867 * tfactors.T913i + 0.860871 * tfactors.T913 + + 0.583467 * tfactors.T9 + -0.094473 * tfactors.T953 + -1.59357 * tfactors.lnT9; - // ths8r - ln_set_rate = 39.9046 + -112.558 * tfactors.T9i + -0.575865 * tfactors.T913 - + 0.0565199 * tfactors.T9 + -0.0129886 * tfactors.T953 + 1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.0365498 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.75867 * tfactors.T943i + (1.0/3.0) * 0.860871 * tfactors.T923i + + 0.583467 + (5.0/3.0) * -0.094473 * tfactors.T923 + -1.59357 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 112.558 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.575865 * tfactors.T923i - + 0.0565199 + (5.0/3.0) * -0.0129886 * tfactors.T923 + 1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca42_p_to_Sc43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Sc44_to_p_Ca43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca42 + p --> Sc43 - // Sc44 --> p + Ca43 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 35.8192 + -31.1381 * tfactors.T913i + -0.151667 * tfactors.T913 + + -1.76926 * tfactors.T9 + 0.219569 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 59.0796 + -77.7087 * tfactors.T9i + -31.1437 * tfactors.T913i + 1.02701 * tfactors.T913 - + -1.81612 * tfactors.T9 + 0.197287 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -31.1381 * tfactors.T943i + (1.0/3.0) * -0.151667 * tfactors.T923i + + -1.76926 + (5.0/3.0) * 0.219569 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 77.7087 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.1437 * tfactors.T943i + (1.0/3.0) * 1.02701 * tfactors.T923i - + -1.81612 + (5.0/3.0) * 0.197287 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca42_He4_to_Ti46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Sc44_to_He4_K40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca42 + He4 --> Ti46 - // Sc44 --> He4 + K40 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 54.833 + -76.5379 * tfactors.T913i + 2.80099 * tfactors.T913 + + -2.34788 * tfactors.T9 + 0.150014 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 81.5063 + -77.8175 * tfactors.T9i + -73.858 * tfactors.T913i + -1.10691 * tfactors.T913 - + -2.42921 * tfactors.T9 + 0.294 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -76.5379 * tfactors.T943i + (1.0/3.0) * 2.80099 * tfactors.T923i + + -2.34788 + (5.0/3.0) * 0.150014 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 77.8175 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -73.858 * tfactors.T943i + (1.0/3.0) * -1.10691 * tfactors.T923i - + -2.42921 + (5.0/3.0) * 0.294 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca43_n_to_Ca44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Sc45_to_n_Sc44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca43 + n --> Ca44 - // Sc45 --> n + Sc44 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ks03 + ln_set_rate = 10.6877 + -0.00587516 * tfactors.T9i + -1.26512 * tfactors.T913i + 6.74718 * tfactors.T913 + + -0.673582 * tfactors.T9 + 0.0412245 * tfactors.T953 + -2.30362 * tfactors.lnT9; - // ths8r - ln_set_rate = 40.2726 + -131.398 * tfactors.T9i + -1.31922 * tfactors.T913 - + 0.167096 * tfactors.T9 + -0.0191676 * tfactors.T953 + 1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.00587516 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.26512 * tfactors.T943i + (1.0/3.0) * 6.74718 * tfactors.T923i + + -0.673582 + (5.0/3.0) * 0.0412245 * tfactors.T923 + -2.30362 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 131.398 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.31922 * tfactors.T923i - + 0.167096 + (5.0/3.0) * -0.0191676 * tfactors.T923 + 1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca43_p_to_Sc44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Sc45_to_p_Ca44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca43 + p --> Sc44 - // Sc45 --> p + Ca44 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 34.9383 + -31.1437 * tfactors.T913i + 1.02701 * tfactors.T913 + + -1.81612 * tfactors.T9 + 0.197287 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 56.5963 + -79.935 * tfactors.T9i + -31.1491 * tfactors.T913i + 0.402181 * tfactors.T913 - + -1.30287 * tfactors.T9 + 0.135535 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -31.1437 * tfactors.T943i + (1.0/3.0) * 1.02701 * tfactors.T923i + + -1.81612 + (5.0/3.0) * 0.197287 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 79.935 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.1491 * tfactors.T943i + (1.0/3.0) * 0.402181 * tfactors.T923i - + -1.30287 + (5.0/3.0) * 0.135535 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca43_He4_to_Ti47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Sc45_to_He4_K41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca43 + He4 --> Ti47 - // Sc45 --> He4 + K41 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 60.4703 + -76.5897 * tfactors.T913i + -7.46117 * tfactors.T913 + + -0.574977 * tfactors.T9 + 0.115742 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 79.0608 + -92.0658 * tfactors.T9i + -73.9127 * tfactors.T913i + 0.81435 * tfactors.T913 - + -2.90813 * tfactors.T9 + 0.335176 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -76.5897 * tfactors.T943i + (1.0/3.0) * -7.46117 * tfactors.T923i + + -0.574977 + (5.0/3.0) * 0.115742 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 92.0658 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -73.9127 * tfactors.T943i + (1.0/3.0) * 0.81435 * tfactors.T923i - + -2.90813 + (5.0/3.0) * 0.335176 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca44_n_to_Ca45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Sc46_to_n_Sc45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca44 + n --> Ca45 - // Sc46 --> n + Sc45 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ks03 + ln_set_rate = 2.03089 + 0.19047 * tfactors.T9i + -17.5809 * tfactors.T913i + 30.835 * tfactors.T913 + + -1.52658 * tfactors.T9 + 0.0495163 * tfactors.T953 + -14.5794 * tfactors.lnT9; - // ks03 - ln_set_rate = 30.1819 + -101.612 * tfactors.T9i + -6.18502 * tfactors.T913i + 16.5806 * tfactors.T913 - + -1.45949 * tfactors.T9 + 0.0995696 * tfactors.T953 + -5.03696 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.19047 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -17.5809 * tfactors.T943i + (1.0/3.0) * 30.835 * tfactors.T923i + + -1.52658 + (5.0/3.0) * 0.0495163 * tfactors.T923 + -14.5794 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 101.612 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -6.18502 * tfactors.T943i + (1.0/3.0) * 16.5806 * tfactors.T923i - + -1.45949 + (5.0/3.0) * 0.0995696 * tfactors.T923 + -5.03696 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca44_p_to_Sc45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Sc46_to_p_Ca45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca44 + p --> Sc45 - // Sc46 --> p + Ca45 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 35.0037 + -31.1491 * tfactors.T913i + 0.402181 * tfactors.T913 + + -1.30287 * tfactors.T9 + 0.135535 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 62.541 + -95.5531 * tfactors.T9i + -31.1543 * tfactors.T913i + -6.97397 * tfactors.T913 - + -0.344025 * tfactors.T9 + 0.128258 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -31.1491 * tfactors.T943i + (1.0/3.0) * 0.402181 * tfactors.T923i + + -1.30287 + (5.0/3.0) * 0.135535 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 95.5531 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.1543 * tfactors.T943i + (1.0/3.0) * -6.97397 * tfactors.T923i - + -0.344025 + (5.0/3.0) * 0.128258 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca44_He4_to_Ti48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Sc47_to_n_Sc46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca44 + He4 --> Ti48 - // Sc47 --> n + Sc46 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 55.9169 + -76.6391 * tfactors.T913i + 2.70825 * tfactors.T913 + + -4.48808 * tfactors.T9 + 0.582872 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // rath - ln_set_rate = 41.5248 + -123.539 * tfactors.T9i + 1.157 * tfactors.T913i + -3.39674 * tfactors.T913 - + 0.179575 * tfactors.T9 + -0.00780135 * tfactors.T953 + 2.28349 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -76.6391 * tfactors.T943i + (1.0/3.0) * 2.70825 * tfactors.T923i + + -4.48808 + (5.0/3.0) * 0.582872 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 123.539 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.157 * tfactors.T943i + (1.0/3.0) * -3.39674 * tfactors.T923i - + 0.179575 + (5.0/3.0) * -0.00780135 * tfactors.T923 + 2.28349 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca45_n_to_Ca46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Sc47_to_p_Ca46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca45 + n --> Ca46 - // Sc47 --> p + Ca46 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ks03 + ln_set_rate = 22.6116 + -0.0524788 * tfactors.T9i + 5.01526 * tfactors.T913i + -14.4226 * tfactors.T913 + + 1.37087 * tfactors.T9 + -0.111582 * tfactors.T953 + 4.87661 * tfactors.lnT9; - // ths8r - ln_set_rate = 55.9566 + -98.4759 * tfactors.T9i + -31.1593 * tfactors.T913i + 0.979497 * tfactors.T913 - + -1.14947 * tfactors.T9 + 0.064347 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0524788 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 5.01526 * tfactors.T943i + (1.0/3.0) * -14.4226 * tfactors.T923i + + 1.37087 + (5.0/3.0) * -0.111582 * tfactors.T923 + 4.87661 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 98.4759 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.1593 * tfactors.T943i + (1.0/3.0) * 0.979497 * tfactors.T923i - + -1.14947 + (5.0/3.0) * 0.064347 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca45_p_to_Sc46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Sc48_to_n_Sc47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca45 + p --> Sc46 - // Sc48 --> n + Sc47 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 38.986 + -31.1543 * tfactors.T913i + -6.97397 * tfactors.T913 + + -0.344025 * tfactors.T9 + 0.128258 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // rath - ln_set_rate = 37.5173 + -95.5526 * tfactors.T9i + 0.297987 * tfactors.T913i + 0.438296 * tfactors.T913 - + 0.0468739 * tfactors.T9 + -0.0255895 * tfactors.T953 + 1.27272 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -31.1543 * tfactors.T943i + (1.0/3.0) * -6.97397 * tfactors.T923i + + -0.344025 + (5.0/3.0) * 0.128258 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 95.5526 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 0.297987 * tfactors.T943i + (1.0/3.0) * 0.438296 * tfactors.T923i - + 0.0468739 + (5.0/3.0) * -0.0255895 * tfactors.T923 + 1.27272 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca45_He4_to_Ti49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Sc48_to_p_Ca47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca45 + He4 --> Ti49 - // Sc48 --> p + Ca47 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 57.6604 + -76.6866 * tfactors.T913i + -9.95306 * tfactors.T913 + + 1.72367 * tfactors.T9 + -0.226004 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 52.7642 + -109.604 * tfactors.T9i + -31.164 * tfactors.T913i + -2.03245 * tfactors.T913 - + 0.0494826 * tfactors.T9 + 0.00201831 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -76.6866 * tfactors.T943i + (1.0/3.0) * -9.95306 * tfactors.T923i + + 1.72367 + (5.0/3.0) * -0.226004 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 109.604 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.164 * tfactors.T943i + (1.0/3.0) * -2.03245 * tfactors.T923i - + 0.0494826 + (5.0/3.0) * 0.00201831 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca46_n_to_Ca47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Sc49_to_n_Sc48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca46 + n --> Ca47 - // Sc49 --> n + Sc48 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ks03 + ln_set_rate = -0.886174 + 0.206974 * tfactors.T9i + -19.7417 * tfactors.T913i + 35.2401 * tfactors.T913 + + -1.61262 * tfactors.T9 + 0.0443701 * tfactors.T953 + -16.7507 * tfactors.lnT9; - // rath - ln_set_rate = 41.8913 + -117.592 * tfactors.T9i + 2.32858 * tfactors.T913i + -6.44325 * tfactors.T913 - + 0.608389 * tfactors.T9 + -0.0534156 * tfactors.T953 + 3.63196 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.206974 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -19.7417 * tfactors.T943i + (1.0/3.0) * 35.2401 * tfactors.T923i + + -1.61262 + (5.0/3.0) * 0.0443701 * tfactors.T923 + -16.7507 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 117.592 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.32858 * tfactors.T943i + (1.0/3.0) * -6.44325 * tfactors.T923i - + 0.608389 + (5.0/3.0) * -0.0534156 * tfactors.T923 + 3.63196 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca46_p_to_Sc47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Sc49_to_p_Ca48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca46 + p --> Sc47 - // Sc49 --> p + Ca48 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 34.3625 + -31.1593 * tfactors.T913i + 0.979497 * tfactors.T913 + + -1.14947 * tfactors.T9 + 0.064347 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 55.4528 + -111.719 * tfactors.T9i + -31.1685 * tfactors.T913i + 2.20987 * tfactors.T913 - + -2.24347 * tfactors.T9 + 0.239302 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -31.1593 * tfactors.T943i + (1.0/3.0) * 0.979497 * tfactors.T923i + + -1.14947 + (5.0/3.0) * 0.064347 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 111.719 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.1685 * tfactors.T943i + (1.0/3.0) * 2.20987 * tfactors.T923i - + -2.24347 + (5.0/3.0) * 0.239302 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca46_He4_to_Ti50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ti44_to_p_Sc43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca46 + He4 --> Ti50 - // Ti44 --> p + Sc43 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 62.9052 + -76.732 * tfactors.T913i + -13.6546 * tfactors.T913 + + 1.61796 * tfactors.T9 + -0.159 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 62.5939 + -100.373 * tfactors.T9i + -32.1734 * tfactors.T913i + -1.77078 * tfactors.T913 - + -2.21706 * tfactors.T9 + 0.298499 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -76.732 * tfactors.T943i + (1.0/3.0) * -13.6546 * tfactors.T923i + + 1.61796 + (5.0/3.0) * -0.159 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 100.373 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -32.1734 * tfactors.T943i + (1.0/3.0) * -1.77078 * tfactors.T923i - + -2.21706 + (5.0/3.0) * 0.298499 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca47_n_to_Ca48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ti44_to_He4_Ca40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca47 + n --> Ca48 - // Ti44 --> He4 + Ca40 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 15.2216 + -2.88636 * tfactors.T913 + + 0.79581 * tfactors.T9 + -0.0872236 * tfactors.T953; - // chw0 - ln_set_rate = 78.6991 + -59.4974 * tfactors.T9i + -76.4273 * tfactors.T913i + 3.87451 * tfactors.T913 - + -3.61477 * tfactors.T9 + 0.367451 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -2.88636 * tfactors.T923i + + 0.79581 + (5.0/3.0) * -0.0872236 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 59.4974 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -76.4273 * tfactors.T943i + (1.0/3.0) * 3.87451 * tfactors.T923i - + -3.61477 + (5.0/3.0) * 0.367451 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca47_p_to_Sc48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ti45_to_n_Ti44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca47 + p --> Sc48 - // Ti45 --> n + Ti44 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 29.5755 + -31.164 * tfactors.T913i + -2.03245 * tfactors.T913 + + 0.0494826 * tfactors.T9 + 0.00201831 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 36.8432 + -110.575 * tfactors.T9i + 1.01203 * tfactors.T913 - + -0.201174 * tfactors.T9 + 0.00360954 * tfactors.T953 + 1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -31.164 * tfactors.T943i + (1.0/3.0) * -2.03245 * tfactors.T923i + + 0.0494826 + (5.0/3.0) * 0.00201831 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 110.575 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.01203 * tfactors.T923i - + -0.201174 + (5.0/3.0) * 0.00360954 * tfactors.T923 + 1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca47_He4_to_Ti51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ti45_to_p_Sc44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca47 + He4 --> Ti51 - // Ti45 --> p + Sc44 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 50.6782 + -76.7758 * tfactors.T913i + -1.97823 * tfactors.T913 + + -0.552991 * tfactors.T9 + 0.0318371 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 58.3467 + -98.3901 * tfactors.T9i + -32.179 * tfactors.T913i + 1.40668 * tfactors.T913 - + -2.02828 * tfactors.T9 + 0.230326 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -76.7758 * tfactors.T943i + (1.0/3.0) * -1.97823 * tfactors.T923i + + -0.552991 + (5.0/3.0) * 0.0318371 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 98.3901 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -32.179 * tfactors.T943i + (1.0/3.0) * 1.40668 * tfactors.T923i - + -2.02828 + (5.0/3.0) * 0.230326 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca48_p_to_Sc49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ti45_to_He4_Ca41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca48 + p --> Sc49 - // Ti45 --> He4 + Ca41 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 33.8574 + -31.1685 * tfactors.T913i + 2.20987 * tfactors.T913 + + -2.24347 * tfactors.T9 + 0.239302 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 79.5829 + -73.0258 * tfactors.T9i + -76.4839 * tfactors.T913i + 3.03748 * tfactors.T913 - + -2.59814 * tfactors.T9 + 0.210582 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -31.1685 * tfactors.T943i + (1.0/3.0) * 2.20987 * tfactors.T923i + + -2.24347 + (5.0/3.0) * 0.239302 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 73.0258 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -76.4839 * tfactors.T943i + (1.0/3.0) * 3.03748 * tfactors.T923i - + -2.59814 + (5.0/3.0) * 0.210582 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc43_n_to_Sc44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ti46_to_n_Ti45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Sc43 + n --> Sc44 - // Ti46 --> n + Ti45 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 15.7633 + -0.575865 * tfactors.T913 + + 0.0565199 * tfactors.T9 + -0.0129886 * tfactors.T953; - // ths8r - ln_set_rate = 42.8852 + -153.052 * tfactors.T9i + -1.55633 * tfactors.T913 - + 0.300783 * tfactors.T9 + -0.0373696 * tfactors.T953 + 1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.575865 * tfactors.T923i + + 0.0565199 + (5.0/3.0) * -0.0129886 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 153.052 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.55633 * tfactors.T923i - + 0.300783 + (5.0/3.0) * -0.0373696 * tfactors.T923 + 1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc43_p_to_Ti44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ti46_to_p_Sc45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Sc43 + p --> Ti44 - // Ti46 --> p + Sc45 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 36.8432 + -32.1734 * tfactors.T913i + -1.77078 * tfactors.T913 + + -2.21706 * tfactors.T9 + 0.298499 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 60.5905 + -120.044 * tfactors.T9i + -32.1843 * tfactors.T913i + 1.38642 * tfactors.T913 - + -1.64811 * tfactors.T9 + 0.157323 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -32.1734 * tfactors.T943i + (1.0/3.0) * -1.77078 * tfactors.T923i + + -2.21706 + (5.0/3.0) * 0.298499 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 120.044 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -32.1843 * tfactors.T943i + (1.0/3.0) * 1.38642 * tfactors.T923i - + -1.64811 + (5.0/3.0) * 0.157323 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc43_He4_to_V47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ti46_to_He4_Ca42_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Sc43 + He4 --> V47 - // Ti46 --> He4 + Ca42 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 59.0195 + -79.122 * tfactors.T913i + -7.07006 * tfactors.T913 + + 0.424183 * tfactors.T9 + -0.0665231 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 79.7886 + -92.8507 * tfactors.T9i + -76.5379 * tfactors.T913i + 2.80099 * tfactors.T913 - + -2.34788 * tfactors.T9 + 0.150014 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -79.122 * tfactors.T943i + (1.0/3.0) * -7.07006 * tfactors.T923i + + 0.424183 + (5.0/3.0) * -0.0665231 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 92.8507 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -76.5379 * tfactors.T943i + (1.0/3.0) * 2.80099 * tfactors.T923i - + -2.34788 + (5.0/3.0) * 0.150014 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc44_n_to_Sc45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ti47_to_n_Ti46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Sc44 + n --> Sc45 - // Ti47 --> n + Ti46 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 17.0705 + -1.31922 * tfactors.T913 + + 0.167096 * tfactors.T9 + -0.0191676 * tfactors.T953; - // ks03 - ln_set_rate = 34.1579 + -102.963 * tfactors.T9i + -7.30817 * tfactors.T913i + 10.713 * tfactors.T913 - + -0.537251 * tfactors.T9 + 0.0187304 * tfactors.T953 + -3.88893 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.31922 * tfactors.T923i + + 0.167096 + (5.0/3.0) * -0.0191676 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 102.963 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -7.30817 * tfactors.T943i + (1.0/3.0) * 10.713 * tfactors.T923i - + -0.537251 + (5.0/3.0) * 0.0187304 * tfactors.T923 + -3.88893 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc44_p_to_Ti45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ti47_to_p_Sc46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Sc44 + p --> Ti45 - // Ti47 --> p + Sc46 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 35.1446 + -32.179 * tfactors.T913i + 1.40668 * tfactors.T913 + + -2.02828 * tfactors.T9 + 0.230326 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // rath - ln_set_rate = 158.586 + -126.911 * tfactors.T9i + 212.079 * tfactors.T913i + -358.599 * tfactors.T913 - + 19.2793 * tfactors.T9 + -1.01913 * tfactors.T953 + 177.754 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -32.179 * tfactors.T943i + (1.0/3.0) * 1.40668 * tfactors.T923i + + -2.02828 + (5.0/3.0) * 0.230326 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 126.911 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 212.079 * tfactors.T943i + (1.0/3.0) * -358.599 * tfactors.T923i - + 19.2793 + (5.0/3.0) * -1.01913 * tfactors.T923 + 177.754 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc44_He4_to_V48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ti47_to_He4_Ca43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Sc44 + He4 --> V48 - // Ti47 --> He4 + Ca43 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 56.6322 + -79.1731 * tfactors.T913i + -4.22583 * tfactors.T913 + + -0.427863 * tfactors.T9 + 0.0235817 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 85.7166 + -103.845 * tfactors.T9i + -76.5897 * tfactors.T913i + -7.46117 * tfactors.T913 - + -0.574977 * tfactors.T9 + 0.115742 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -79.1731 * tfactors.T943i + (1.0/3.0) * -4.22583 * tfactors.T923i + + -0.427863 + (5.0/3.0) * 0.0235817 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 103.845 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -76.5897 * tfactors.T943i + (1.0/3.0) * -7.46117 * tfactors.T923i - + -0.574977 + (5.0/3.0) * 0.115742 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc45_n_to_Sc46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ti48_to_n_Ti47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Sc45 + n --> Sc46 - // Ti48 --> n + Ti47 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ks03 + ln_set_rate = 6.62692 + 0.0466836 * tfactors.T9i + -6.18502 * tfactors.T913i + 16.5806 * tfactors.T913 + + -1.45949 * tfactors.T9 + 0.0995696 * tfactors.T953 + -6.53696 * tfactors.lnT9; - // ks03 - ln_set_rate = 40.3394 + -134.911 * tfactors.T9i + -2.34945 * tfactors.T913i + 3.2238 * tfactors.T913 - + -0.0455487 * tfactors.T9 + -0.0153771 * tfactors.T953 + -0.60785 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.0466836 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -6.18502 * tfactors.T943i + (1.0/3.0) * 16.5806 * tfactors.T923i + + -1.45949 + (5.0/3.0) * 0.0995696 * tfactors.T923 + -6.53696 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 134.911 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.34945 * tfactors.T943i + (1.0/3.0) * 3.2238 * tfactors.T923i - + -0.0455487 + (5.0/3.0) * -0.0153771 * tfactors.T923 + -0.60785 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc45_p_to_Ti46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ti48_to_p_Sc47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Sc45 + p --> Ti46 - // Ti48 --> p + Sc47 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 34.8383 + -32.1843 * tfactors.T913i + 1.38642 * tfactors.T913 + + -1.64811 * tfactors.T9 + 0.157323 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // rath - ln_set_rate = 76.1705 + -137.87 * tfactors.T9i + 155.189 * tfactors.T913i + -211.783 * tfactors.T913 - + 9.70286 * tfactors.T9 + -0.48757 * tfactors.T953 + 118.807 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -32.1843 * tfactors.T943i + (1.0/3.0) * 1.38642 * tfactors.T923i + + -1.64811 + (5.0/3.0) * 0.157323 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 137.87 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 155.189 * tfactors.T943i + (1.0/3.0) * -211.783 * tfactors.T923i - + 9.70286 + (5.0/3.0) * -0.48757 * tfactors.T923 + 118.807 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc45_He4_to_V49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ti48_to_He4_Ca44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Sc45 + He4 --> V49 - // Ti48 --> He4 + Ca44 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 60.1427 + -79.222 * tfactors.T913i + -5.31022 * tfactors.T913 + + -1.37323 * tfactors.T9 + 0.21679 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 80.8784 + -109.595 * tfactors.T9i + -76.6391 * tfactors.T913i + 2.70825 * tfactors.T913 - + -4.48808 * tfactors.T9 + 0.582872 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -79.222 * tfactors.T943i + (1.0/3.0) * -5.31022 * tfactors.T923i + + -1.37323 + (5.0/3.0) * 0.21679 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 109.595 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -76.6391 * tfactors.T943i + (1.0/3.0) * 2.70825 * tfactors.T923i - + -4.48808 + (5.0/3.0) * 0.582872 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc46_n_to_Sc47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ti49_to_n_Ti48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Sc46 + n --> Sc47 - // Ti49 --> n + Ti48 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // rath + ln_set_rate = 17.7335 + -0.0211697 * tfactors.T9i + 1.157 * tfactors.T913i + -3.39674 * tfactors.T913 + + 0.179575 * tfactors.T9 + -0.00780135 * tfactors.T953 + 0.783491 * tfactors.lnT9; - // ks03 - ln_set_rate = 4.8075 + -94.1668 * tfactors.T9i + -32.4895 * tfactors.T913i + 67.9234 * tfactors.T913 - + -4.27126 * tfactors.T9 + 0.230364 * tfactors.T953 + -27.9521 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0211697 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.157 * tfactors.T943i + (1.0/3.0) * -3.39674 * tfactors.T923i + + 0.179575 + (5.0/3.0) * -0.00780135 * tfactors.T923 + 0.783491 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 94.1668 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -32.4895 * tfactors.T943i + (1.0/3.0) * 67.9234 * tfactors.T923i - + -4.27126 + (5.0/3.0) * 0.230364 * tfactors.T923 + -27.9521 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc46_p_to_Ti47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ti49_to_p_Sc48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Sc46 + p --> Ti47 - // Ti49 --> p + Sc48 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // rath + ln_set_rate = 134.507 + -5.50507 * tfactors.T9i + 212.079 * tfactors.T913i + -358.599 * tfactors.T913 + + 19.2793 * tfactors.T9 + -1.01913 * tfactors.T953 + 176.254 * tfactors.lnT9; - // rath - ln_set_rate = 125.332 + -137.251 * tfactors.T9i + 198.826 * tfactors.T913i + -313.844 * tfactors.T913 - + 17.0251 * tfactors.T9 + -0.945704 * tfactors.T953 + 160.904 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.50507 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 212.079 * tfactors.T943i + (1.0/3.0) * -358.599 * tfactors.T923i + + 19.2793 + (5.0/3.0) * -1.01913 * tfactors.T923 + 176.254 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 137.251 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 198.826 * tfactors.T943i + (1.0/3.0) * -313.844 * tfactors.T923i - + 17.0251 + (5.0/3.0) * -0.945704 * tfactors.T923 + 160.904 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc46_He4_to_V50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ti49_to_He4_Ca45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Sc46 + He4 --> V50 - // Ti49 --> He4 + Ca45 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // rath + ln_set_rate = -953.322 + 15.73 * tfactors.T9i + -1681.31 * tfactors.T913i + 2743.27 * tfactors.T913 + + -162.405 * tfactors.T9 + 9.24681 * tfactors.T953 + -1292.78 * tfactors.lnT9; - // ths8r - ln_set_rate = 82.6247 + -118.039 * tfactors.T9i + -76.6866 * tfactors.T913i + -9.95306 * tfactors.T913 - + 1.72367 * tfactors.T9 + -0.226004 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -15.73 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1681.31 * tfactors.T943i + (1.0/3.0) * 2743.27 * tfactors.T923i + + -162.405 + (5.0/3.0) * 9.24681 * tfactors.T923 + -1292.78 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 118.039 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -76.6866 * tfactors.T943i + (1.0/3.0) * -9.95306 * tfactors.T923i - + 1.72367 + (5.0/3.0) * -0.226004 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc47_n_to_Sc48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ti50_to_n_Ti49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Sc47 + n --> Sc48 - // Ti50 --> n + Ti49 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // rath + ln_set_rate = 14.3286 + -0.0127821 * tfactors.T9i + 0.297987 * tfactors.T913i + 0.438296 * tfactors.T913 + + 0.0468739 * tfactors.T9 + -0.0255895 * tfactors.T953 + -0.227277 * tfactors.lnT9; - // ks03 - ln_set_rate = 39.3875 + -126.916 * tfactors.T9i + -2.8384 * tfactors.T913i + 4.10103 * tfactors.T913 - + -0.0325714 * tfactors.T9 + -0.0305035 * tfactors.T953 + -0.8012 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0127821 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 0.297987 * tfactors.T943i + (1.0/3.0) * 0.438296 * tfactors.T923i + + 0.0468739 + (5.0/3.0) * -0.0255895 * tfactors.T923 + -0.227277 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 126.916 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.8384 * tfactors.T943i + (1.0/3.0) * 4.10103 * tfactors.T923i - + -0.0325714 + (5.0/3.0) * -0.0305035 * tfactors.T923 + -0.8012 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc47_p_to_Ti48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ti50_to_p_Sc49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Sc47 + p --> Ti48 - // Ti50 --> p + Sc49 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // rath + ln_set_rate = 50.4169 + -5.06842 * tfactors.T9i + 155.189 * tfactors.T913i + -211.783 * tfactors.T913 + + 9.70286 * tfactors.T9 + -0.48757 * tfactors.T953 + 117.307 * tfactors.lnT9; - // rath - ln_set_rate = 132.698 + -146.58 * tfactors.T9i + 195.561 * tfactors.T913i + -317.373 * tfactors.T913 - + 17.5352 * tfactors.T9 + -0.999861 * tfactors.T953 + 160.884 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.06842 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 155.189 * tfactors.T943i + (1.0/3.0) * -211.783 * tfactors.T923i + + 9.70286 + (5.0/3.0) * -0.48757 * tfactors.T923 + 117.307 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 146.58 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 195.561 * tfactors.T943i + (1.0/3.0) * -317.373 * tfactors.T923i - + 17.5352 + (5.0/3.0) * -0.999861 * tfactors.T923 + 160.884 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc47_He4_to_V51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ti50_to_He4_Ca46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Sc47 + He4 --> V51 - // Ti50 --> He4 + Ca46 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // rath + ln_set_rate = -1038.06 + 15.2937 * tfactors.T9i + -1682.84 * tfactors.T913i + 2838.54 * tfactors.T913 + + -171.874 * tfactors.T9 + 9.93236 * tfactors.T953 + -1317.42 * tfactors.lnT9; - // ths8r - ln_set_rate = 87.8722 + -124.36 * tfactors.T9i + -76.732 * tfactors.T913i + -13.6546 * tfactors.T913 - + 1.61796 * tfactors.T9 + -0.159 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -15.2937 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1682.84 * tfactors.T943i + (1.0/3.0) * 2838.54 * tfactors.T923i + + -171.874 + (5.0/3.0) * 9.93236 * tfactors.T923 + -1317.42 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 124.36 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -76.732 * tfactors.T943i + (1.0/3.0) * -13.6546 * tfactors.T923i - + 1.61796 + (5.0/3.0) * -0.159 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc48_n_to_Sc49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ti51_to_n_Ti50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Sc48 + n --> Sc49 - // Ti51 --> n + Ti50 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // rath + ln_set_rate = 17.731 + -0.026995 * tfactors.T9i + 2.32858 * tfactors.T913i + -6.44325 * tfactors.T913 + + 0.608389 * tfactors.T9 + -0.0534156 * tfactors.T953 + 2.13196 * tfactors.lnT9; - // ks03 - ln_set_rate = 62.6945 + -73.9572 * tfactors.T9i + 7.07296 * tfactors.T913i + -37.8514 * tfactors.T913 - + 4.03187 * tfactors.T9 + -0.339274 * tfactors.T953 + 12.9094 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.026995 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.32858 * tfactors.T943i + (1.0/3.0) * -6.44325 * tfactors.T923i + + 0.608389 + (5.0/3.0) * -0.0534156 * tfactors.T923 + 2.13196 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 73.9572 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 7.07296 * tfactors.T943i + (1.0/3.0) * -37.8514 * tfactors.T923i - + 4.03187 + (5.0/3.0) * -0.339274 * tfactors.T923 + 12.9094 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc48_p_to_Ti49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ti51_to_He4_Ca47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Sc48 + p --> Ti49 - // Ti51 --> He4 + Ca47 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // rath + ln_set_rate = 101.172 + -5.49324 * tfactors.T9i + 198.826 * tfactors.T913i + -313.844 * tfactors.T913 + + 17.0251 * tfactors.T9 + -0.945704 * tfactors.T953 + 159.404 * tfactors.lnT9; - // ths8r - ln_set_rate = 76.3409 + -113.871 * tfactors.T9i + -76.7758 * tfactors.T913i + -1.97823 * tfactors.T913 - + -0.552991 * tfactors.T9 + 0.0318371 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.49324 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 198.826 * tfactors.T943i + (1.0/3.0) * -313.844 * tfactors.T923i + + 17.0251 + (5.0/3.0) * -0.945704 * tfactors.T923 + 159.404 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 113.871 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -76.7758 * tfactors.T943i + (1.0/3.0) * -1.97823 * tfactors.T923i - + -0.552991 + (5.0/3.0) * 0.0318371 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc48_He4_to_V52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_V46_to_p_Ti45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Sc48 + He4 --> V52 - // V46 --> p + Ti45 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // rath + ln_set_rate = -957.316 + 15.0869 * tfactors.T9i + -1642.74 * tfactors.T913i + 2707.58 * tfactors.T913 + + -162.101 * tfactors.T9 + 9.30824 * tfactors.T953 + -1268.27 * tfactors.lnT9; - // ths8r - ln_set_rate = 63.199 + -62.1566 * tfactors.T9i + -33.1981 * tfactors.T913i + -1.66837 * tfactors.T913 - + -2.50285 * tfactors.T9 + 0.349152 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -15.0869 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1642.74 * tfactors.T943i + (1.0/3.0) * 2707.58 * tfactors.T923i + + -162.101 + (5.0/3.0) * 9.30824 * tfactors.T923 + -1268.27 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 62.1566 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -33.1981 * tfactors.T943i + (1.0/3.0) * -1.66837 * tfactors.T923i - + -2.50285 + (5.0/3.0) * 0.349152 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc49_p_to_Ti50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_V47_to_n_V46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Sc49 + p --> Ti50 - // V47 --> n + V46 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // rath + ln_set_rate = 106.943 + -5.43496 * tfactors.T9i + 195.561 * tfactors.T913i + -317.373 * tfactors.T913 + + 17.5352 * tfactors.T9 + -0.999861 * tfactors.T953 + 159.384 * tfactors.lnT9; - // ths8r - ln_set_rate = 38.0277 + -150.863 * tfactors.T9i + -0.692996 * tfactors.T913 - + 0.316873 * tfactors.T9 + -0.0417235 * tfactors.T953 + 1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.43496 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 195.561 * tfactors.T943i + (1.0/3.0) * -317.373 * tfactors.T923i + + 17.5352 + (5.0/3.0) * -0.999861 * tfactors.T923 + 159.384 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 150.863 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.692996 * tfactors.T923i - + 0.316873 + (5.0/3.0) * -0.0417235 * tfactors.T923 + 1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti44_n_to_Ti45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_V47_to_p_Ti46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ti44 + n --> Ti45 - // V47 --> p + Ti46 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 15.2506 + 1.01203 * tfactors.T913 + + -0.201174 * tfactors.T9 + 0.00360954 * tfactors.T953; - // ths8r - ln_set_rate = 58.0555 + -59.9674 * tfactors.T9i + -33.2034 * tfactors.T913i + 0.505619 * tfactors.T913 - + -1.73654 * tfactors.T9 + 0.207342 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 1.01203 * tfactors.T923i + + -0.201174 + (5.0/3.0) * 0.00360954 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 59.9674 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -33.2034 * tfactors.T943i + (1.0/3.0) * 0.505619 * tfactors.T923i - + -1.73654 + (5.0/3.0) * 0.207342 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti44_He4_to_Cr48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_V47_to_He4_Sc43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ti44 + He4 --> Cr48 - // V47 --> He4 + Sc43 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 64.7958 + -81.667 * tfactors.T913i + -10.6333 * tfactors.T913 + + -0.672613 * tfactors.T9 + 0.161209 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 84.6713 + -95.6099 * tfactors.T9i + -79.122 * tfactors.T913i + -7.07006 * tfactors.T913 - + 0.424183 * tfactors.T9 + -0.0665231 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -81.667 * tfactors.T943i + (1.0/3.0) * -10.6333 * tfactors.T923i + + -0.672613 + (5.0/3.0) * 0.161209 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 95.6099 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -79.122 * tfactors.T943i + (1.0/3.0) * -7.07006 * tfactors.T923i - + 0.424183 + (5.0/3.0) * -0.0665231 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti45_n_to_Ti46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_V48_to_n_V47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ti45 + n --> Ti46 - // V48 --> n + V47 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 17.133 + -1.55633 * tfactors.T913 + + 0.300783 * tfactors.T9 + -0.0373696 * tfactors.T953; - // ths8r - ln_set_rate = 40.4146 + -122.366 * tfactors.T9i + -2.40159 * tfactors.T913 - + 0.594573 * tfactors.T9 + -0.0682896 * tfactors.T953 + 1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.55633 * tfactors.T923i + + 0.300783 + (5.0/3.0) * -0.0373696 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 122.366 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.40159 * tfactors.T923i - + 0.594573 + (5.0/3.0) * -0.0682896 * tfactors.T923 + 1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti45_p_to_V46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_V48_to_p_Ti47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ti45 + p --> V46 - // V48 --> p + Ti47 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 37.4468 + -33.1981 * tfactors.T913i + -1.66837 * tfactors.T913 + + -2.50285 * tfactors.T9 + 0.349152 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 58.4638 + -79.2815 * tfactors.T9i + -33.2084 * tfactors.T913i + 1.06738 * tfactors.T913 - + -1.55342 * tfactors.T9 + 0.159225 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -33.1981 * tfactors.T943i + (1.0/3.0) * -1.66837 * tfactors.T923i + + -2.50285 + (5.0/3.0) * 0.349152 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 79.2815 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -33.2084 * tfactors.T943i + (1.0/3.0) * 1.06738 * tfactors.T923i - + -1.55342 + (5.0/3.0) * 0.159225 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti45_He4_to_Cr49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_V48_to_He4_Sc44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ti45 + He4 --> Cr49 - // V48 --> He4 + Sc44 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 64.023 + -81.7175 * tfactors.T913i + -10.1755 * tfactors.T913 + + 0.364167 * tfactors.T9 + -0.000317666 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 81.006 + -105.418 * tfactors.T9i + -79.1731 * tfactors.T913i + -4.22583 * tfactors.T913 - + -0.427863 * tfactors.T9 + 0.0235817 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -81.7175 * tfactors.T943i + (1.0/3.0) * -10.1755 * tfactors.T923i + + 0.364167 + (5.0/3.0) * -0.000317666 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 105.418 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -79.1731 * tfactors.T943i + (1.0/3.0) * -4.22583 * tfactors.T923i - + -0.427863 + (5.0/3.0) * 0.0235817 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti46_n_to_Ti47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_V49_to_n_V48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ti46 + n --> Ti47 - // V49 --> n + V48 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ks03 + ln_set_rate = 12.2761 + 0.0882347 * tfactors.T9i + -7.30817 * tfactors.T913i + 10.713 * tfactors.T913 + + -0.537251 * tfactors.T9 + 0.0187304 * tfactors.T953 + -5.38893 * tfactors.lnT9; - // ths8r - ln_set_rate = 41.6761 + -134.066 * tfactors.T9i + -0.917026 * tfactors.T913 - + -0.109162 * tfactors.T9 + 0.0127488 * tfactors.T953 + 1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.0882347 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -7.30817 * tfactors.T943i + (1.0/3.0) * 10.713 * tfactors.T923i + + -0.537251 + (5.0/3.0) * 0.0187304 * tfactors.T923 + -5.38893 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 134.066 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.917026 * tfactors.T923i - + -0.109162 + (5.0/3.0) * 0.0127488 * tfactors.T923 + 1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti46_p_to_V47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_V49_to_p_Ti48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ti46 + p --> V47 - // V49 --> p + Ti48 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 35.7683 + -33.2034 * tfactors.T913i + 0.505619 * tfactors.T913 + + -1.73654 * tfactors.T9 + 0.207342 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 56.8861 + -78.4254 * tfactors.T9i + -33.2133 * tfactors.T913i + 0.564373 * tfactors.T913 - + -1.18789 * tfactors.T9 + 0.110892 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -33.2034 * tfactors.T943i + (1.0/3.0) * 0.505619 * tfactors.T923i + + -1.73654 + (5.0/3.0) * 0.207342 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 78.4254 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -33.2133 * tfactors.T943i + (1.0/3.0) * 0.564373 * tfactors.T923i - + -1.18789 + (5.0/3.0) * 0.110892 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti46_He4_to_Cr50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_V49_to_He4_Sc45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ti46 + He4 --> Cr50 - // V49 --> He4 + Sc45 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 57.0372 + -81.7658 * tfactors.T913i + 3.48637 * tfactors.T913 + + -3.9188 * tfactors.T9 + 0.440356 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 85.107 + -108.085 * tfactors.T9i + -79.222 * tfactors.T913i + -5.31022 * tfactors.T913 - + -1.37323 * tfactors.T9 + 0.21679 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -81.7658 * tfactors.T943i + (1.0/3.0) * 3.48637 * tfactors.T923i + + -3.9188 + (5.0/3.0) * 0.440356 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 108.085 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -79.222 * tfactors.T943i + (1.0/3.0) * -5.31022 * tfactors.T923i - + -1.37323 + (5.0/3.0) * 0.21679 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti47_n_to_Ti48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_V50_to_n_V49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ti47 + n --> Ti48 - // V50 --> n + V49 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ks03 + ln_set_rate = 14.8734 + 0.0181751 * tfactors.T9i + -2.34945 * tfactors.T913i + 3.2238 * tfactors.T913 + + -0.0455487 * tfactors.T9 + -0.0153771 * tfactors.T953 + -2.10785 * tfactors.lnT9; - // ths8r - ln_set_rate = 40.7345 + -108.339 * tfactors.T9i + -1.8725 * tfactors.T913 - + 0.291609 * tfactors.T9 + -0.0370216 * tfactors.T953 + 1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.0181751 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.34945 * tfactors.T943i + (1.0/3.0) * 3.2238 * tfactors.T923i + + -0.0455487 + (5.0/3.0) * -0.0153771 * tfactors.T923 + -2.10785 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 108.339 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.8725 * tfactors.T923i - + 0.291609 + (5.0/3.0) * -0.0370216 * tfactors.T923 + 1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti47_p_to_V48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_V50_to_p_Ti49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ti47 + p --> V48 - // V50 --> p + Ti49 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 35.1951 + -33.2084 * tfactors.T913i + 1.06738 * tfactors.T913 + + -1.55342 * tfactors.T9 + 0.159225 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 57.1941 + -92.2758 * tfactors.T9i + -33.2179 * tfactors.T913i + 3.05321 * tfactors.T913 - + -2.48884 * tfactors.T9 + 0.254524 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -33.2084 * tfactors.T943i + (1.0/3.0) * 1.06738 * tfactors.T923i + + -1.55342 + (5.0/3.0) * 0.159225 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 92.2758 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -33.2179 * tfactors.T943i + (1.0/3.0) * 3.05321 * tfactors.T923i - + -2.48884 + (5.0/3.0) * 0.254524 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti47_He4_to_Cr51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_V50_to_He4_Sc46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ti47 + He4 --> Cr51 - // V50 --> He4 + Sc46 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 63.333 + -81.8123 * tfactors.T913i + -8.91821 * tfactors.T913 + + -0.0329369 * tfactors.T9 + 0.039179 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // rath - ln_set_rate = -928.723 + -98.9689 * tfactors.T9i + -1681.31 * tfactors.T913i + 2743.27 * tfactors.T913 - + -162.405 * tfactors.T9 + 9.24681 * tfactors.T953 + -1291.28 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -81.8123 * tfactors.T943i + (1.0/3.0) * -8.91821 * tfactors.T923i + + -0.0329369 + (5.0/3.0) * 0.039179 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 98.9689 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1681.31 * tfactors.T943i + (1.0/3.0) * 2743.27 * tfactors.T923i - + -162.405 + (5.0/3.0) * 9.24681 * tfactors.T923 + -1291.28 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti48_n_to_Ti49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_V51_to_n_V50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ti48 + n --> Ti49 - // V51 --> n + V50 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ks03 + ln_set_rate = -16.7879 + 0.320502 * tfactors.T9i + -32.4895 * tfactors.T913i + 67.9234 * tfactors.T913 + + -4.27126 * tfactors.T9 + 0.230364 * tfactors.T953 + -29.4521 * tfactors.lnT9; - // ks03 - ln_set_rate = 50.6387 + -128.363 * tfactors.T9i + 10.9535 * tfactors.T913i + -23.1254 * tfactors.T913 - + 1.53091 * tfactors.T9 + -0.0992995 * tfactors.T953 + 11.122 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.320502 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -32.4895 * tfactors.T943i + (1.0/3.0) * 67.9234 * tfactors.T923i + + -4.27126 + (5.0/3.0) * 0.230364 * tfactors.T923 + -29.4521 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 128.363 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 10.9535 * tfactors.T943i + (1.0/3.0) * -23.1254 * tfactors.T923i - + 1.53091 + (5.0/3.0) * -0.0992995 * tfactors.T923 + 11.122 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti48_p_to_V49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_V51_to_p_Ti50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ti48 + p --> V49 - // V51 --> p + Ti50 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 35.2907 + -33.2133 * tfactors.T913i + 0.564373 * tfactors.T913 + + -1.18789 * tfactors.T9 + 0.110892 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 56.7227 + -93.575 * tfactors.T9i + -33.2224 * tfactors.T913i + 0.579407 * tfactors.T913 - + -0.949378 * tfactors.T9 + 0.0567069 * tfactors.T953 + 0.833333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -33.2133 * tfactors.T943i + (1.0/3.0) * 0.564373 * tfactors.T923i + + -1.18789 + (5.0/3.0) * 0.110892 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 93.575 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -33.2224 * tfactors.T943i + (1.0/3.0) * 0.579407 * tfactors.T923i - + -0.949378 + (5.0/3.0) * 0.0567069 * tfactors.T923 + 0.833333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti48_He4_to_Cr52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_V51_to_He4_Sc47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ti48 + He4 --> Cr52 - // V51 --> He4 + Sc47 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 56.6787 + -81.8569 * tfactors.T913i + 4.92305 * tfactors.T913 + + -5.04112 * tfactors.T9 + 0.6175 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // rath - ln_set_rate = -1013.09 + -104.128 * tfactors.T9i + -1682.84 * tfactors.T913i + 2838.54 * tfactors.T913 - + -171.874 * tfactors.T9 + 9.93236 * tfactors.T953 + -1315.92 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -81.8569 * tfactors.T943i + (1.0/3.0) * 4.92305 * tfactors.T923i + + -5.04112 + (5.0/3.0) * 0.6175 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 104.128 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1682.84 * tfactors.T943i + (1.0/3.0) * 2838.54 * tfactors.T923i - + -171.874 + (5.0/3.0) * 9.93236 * tfactors.T923 + -1315.92 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti49_n_to_Ti50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_V52_to_n_V51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ti49 + n --> Ti50 - // V52 --> n + V51 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ks03 + ln_set_rate = 13.6326 + 0.0289531 * tfactors.T9i + -2.8384 * tfactors.T913i + 4.10103 * tfactors.T913 + + -0.0325714 * tfactors.T9 + -0.0305035 * tfactors.T953 + -2.3012 * tfactors.lnT9; - // ks03 - ln_set_rate = 27.2469 + -84.8349 * tfactors.T9i + -4.14102 * tfactors.T913i + 17.4073 * tfactors.T913 - + -1.59715 * tfactors.T9 + 0.114181 * tfactors.T953 + -4.43987 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.0289531 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.8384 * tfactors.T943i + (1.0/3.0) * 4.10103 * tfactors.T923i + + -0.0325714 + (5.0/3.0) * -0.0305035 * tfactors.T923 + -2.3012 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 84.8349 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -4.14102 * tfactors.T943i + (1.0/3.0) * 17.4073 * tfactors.T923i - + -1.59715 + (5.0/3.0) * 0.114181 * tfactors.T923 + -4.43987 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti49_p_to_V50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_V52_to_p_Ti51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ti49 + p --> V50 - // V52 --> p + Ti51 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 34.0041 + -33.2179 * tfactors.T913i + 3.05321 * tfactors.T913 + + -2.48884 * tfactors.T9 + 0.254524 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // rath - ln_set_rate = 153.463 + -110.28 * tfactors.T9i + 220.953 * tfactors.T913i + -370.119 * tfactors.T913 - + 21.0839 * tfactors.T9 + -1.22336 * tfactors.T953 + 183.832 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -33.2179 * tfactors.T943i + (1.0/3.0) * 3.05321 * tfactors.T923i + + -2.48884 + (5.0/3.0) * 0.254524 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 110.28 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 220.953 * tfactors.T943i + (1.0/3.0) * -370.119 * tfactors.T923i - + 21.0839 + (5.0/3.0) * -1.22336 * tfactors.T923 + 183.832 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti49_He4_to_Cr53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_V52_to_He4_Sc48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ti49 + He4 --> Cr53 - // V52 --> He4 + Sc48 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 65.4688 + -81.8999 * tfactors.T913i + -15.3695 * tfactors.T913 + + 2.51758 * tfactors.T9 + -0.283455 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // rath - ln_set_rate = -931.725 + -93.6357 * tfactors.T9i + -1642.74 * tfactors.T913i + 2707.58 * tfactors.T913 - + -162.101 * tfactors.T9 + 9.30824 * tfactors.T953 + -1266.77 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -81.8999 * tfactors.T943i + (1.0/3.0) * -15.3695 * tfactors.T923i + + 2.51758 + (5.0/3.0) * -0.283455 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 93.6357 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1642.74 * tfactors.T943i + (1.0/3.0) * 2707.58 * tfactors.T923i - + -162.101 + (5.0/3.0) * 9.30824 * tfactors.T923 + -1266.77 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cr48_to_p_V47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr48 --> p + V47 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti50_n_to_Ti51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // nfisn - ln_set_rate = 48.892 + -93.8243 * tfactors.T9i + -45.9868 * tfactors.T913i + 13.6822 * tfactors.T913 - + -0.376902 * tfactors.T9 + -0.0194875 * tfactors.T953 + -6.92325 * tfactors.lnT9; + // Ti50 + n --> Ti51 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 93.8243 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -45.9868 * tfactors.T943i + (1.0/3.0) * 13.6822 * tfactors.T923i - + -0.376902 + (5.0/3.0) * -0.0194875 * tfactors.T923 + -6.92325 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ks03 + ln_set_rate = 40.4047 + -0.00979462 * tfactors.T9i + 7.07296 * tfactors.T913i + -37.8514 * tfactors.T913 + + 4.03187 * tfactors.T9 + -0.339274 * tfactors.T953 + 11.4094 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // nfisn - ln_set_rate = 65.6231 + -94.5854 * tfactors.T9i + -110.655 * tfactors.T913i + 83.0232 * tfactors.T913 - + -19.7762 * tfactors.T9 + 3.03961 * tfactors.T953 + -47.9742 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.00979462 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 7.07296 * tfactors.T943i + (1.0/3.0) * -37.8514 * tfactors.T923i + + 4.03187 + (5.0/3.0) * -0.339274 * tfactors.T923 + 11.4094 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 94.5854 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -110.655 * tfactors.T943i + (1.0/3.0) * 83.0232 * tfactors.T923i - + -19.7762 + (5.0/3.0) * 3.03961 * tfactors.T923 + -47.9742 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti50_p_to_V51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // nfisn - ln_set_rate = 67.7403 + -100.13 * tfactors.T9i + -34.0548 * tfactors.T913i + -3.41973 * tfactors.T913 - + 1.16501 * tfactors.T9 + -0.105543 * tfactors.T953 + -6.20886 * tfactors.lnT9; + // Ti50 + p --> V51 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 100.13 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -34.0548 * tfactors.T943i + (1.0/3.0) * -3.41973 * tfactors.T923i - + 1.16501 + (5.0/3.0) * -0.105543 * tfactors.T923 + -6.20886 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 35.1261 + -33.2224 * tfactors.T913i + 0.579407 * tfactors.T913 + + -0.949378 * tfactors.T9 + 0.0567069 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // nfisn - ln_set_rate = 536.523 + -99.3659 * tfactors.T9i + 317.171 * tfactors.T913i + -911.679 * tfactors.T913 - + 94.4245 * tfactors.T9 + -10.1973 * tfactors.T953 + 332.227 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -33.2224 * tfactors.T943i + (1.0/3.0) * 0.579407 * tfactors.T923i + + -0.949378 + (5.0/3.0) * 0.0567069 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 99.3659 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 317.171 * tfactors.T943i + (1.0/3.0) * -911.679 * tfactors.T923i - + 94.4245 + (5.0/3.0) * -10.1973 * tfactors.T923 + 332.227 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti50_He4_to_Cr54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ti50 + He4 --> Cr54 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cr48_to_He4_Ti44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr48 --> He4 + Ti44 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 63.4244 + -81.9411 * tfactors.T913i + -6.28155 * tfactors.T913 + + -2.0416 * tfactors.T9 + 0.332085 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 89.7573 + -89.3041 * tfactors.T9i + -81.667 * tfactors.T913i + -10.6333 * tfactors.T913 - + -0.672613 * tfactors.T9 + 0.161209 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -81.9411 * tfactors.T943i + (1.0/3.0) * -6.28155 * tfactors.T923i + + -2.0416 + (5.0/3.0) * 0.332085 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 89.3041 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -81.667 * tfactors.T943i + (1.0/3.0) * -10.6333 * tfactors.T923i - + -0.672613 + (5.0/3.0) * 0.161209 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti51_p_to_V52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ti51 + p --> V52 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cr49_to_n_Cr48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr49 --> n + Cr48 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // rath + ln_set_rate = 130.346 + -5.83918 * tfactors.T9i + 220.953 * tfactors.T913i + -370.119 * tfactors.T913 + + 21.0839 * tfactors.T9 + -1.22336 * tfactors.T953 + 182.332 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 37.7375 + -122.806 * tfactors.T9i + -0.000452357 * tfactors.T913 - + 0.0412838 * tfactors.T9 + -0.0160865 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.83918 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 220.953 * tfactors.T943i + (1.0/3.0) * -370.119 * tfactors.T923i + + 21.0839 + (5.0/3.0) * -1.22336 * tfactors.T923 + 182.332 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 122.806 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.000452357 * tfactors.T923i - + 0.0412838 + (5.0/3.0) * -0.0160865 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V46_n_to_V47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // V46 + n --> V47 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cr49_to_p_V48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr49 --> p + V48 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 15.7405 + -0.692996 * tfactors.T913 + + 0.316873 * tfactors.T9 + -0.0417235 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 58.5971 + -94.5079 * tfactors.T9i + -34.2123 * tfactors.T913i + 2.51264 * tfactors.T913 - + -2.09211 * tfactors.T9 + 0.219444 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.692996 * tfactors.T923i + + 0.316873 + (5.0/3.0) * -0.0417235 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 94.5079 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -34.2123 * tfactors.T943i + (1.0/3.0) * 2.51264 * tfactors.T923i - + -2.09211 + (5.0/3.0) * 0.219444 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V46_He4_to_Mn50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // V46 + He4 --> Mn50 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cr49_to_He4_Ti45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr49 --> He4 + Ti45 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 54.311 + -84.2255 * tfactors.T913i + -4.85634 * tfactors.T913 + + 0.0528515 * tfactors.T9 + -0.0425496 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 89.275 + -101.535 * tfactors.T9i + -81.7175 * tfactors.T913i + -10.1755 * tfactors.T913 - + 0.364167 * tfactors.T9 + -0.000317666 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -84.2255 * tfactors.T943i + (1.0/3.0) * -4.85634 * tfactors.T923i + + 0.0528515 + (5.0/3.0) * -0.0425496 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 101.535 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -81.7175 * tfactors.T943i + (1.0/3.0) * -10.1755 * tfactors.T923i - + 0.364167 + (5.0/3.0) * -0.000317666 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V47_n_to_V48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // V47 + n --> V48 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cr50_to_n_Cr49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr50 --> n + Cr49 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 17.5513 + -2.40159 * tfactors.T913 + + 0.594573 * tfactors.T9 + -0.0682896 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 43.3027 + -150.862 * tfactors.T9i + -1.98927 * tfactors.T913 - + 0.465124 * tfactors.T9 + -0.0582249 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -2.40159 * tfactors.T923i + + 0.594573 + (5.0/3.0) * -0.0682896 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 150.862 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.98927 * tfactors.T923i - + 0.465124 + (5.0/3.0) * -0.0582249 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V47_p_to_Cr48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // V47 + p --> Cr48 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cr50_to_p_V49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr50 --> p + V49 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // nfisn + ln_set_rate = 42.6798 + -6.0593 * tfactors.T9i + -34.0548 * tfactors.T913i + -3.41973 * tfactors.T913 + + 1.16501 * tfactors.T9 + -0.105543 * tfactors.T953 + -7.70886 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 60.9884 + -111.305 * tfactors.T9i + -34.217 * tfactors.T913i + 1.28258 * tfactors.T913 - + -1.5098 * tfactors.T9 + 0.142011 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 6.0593 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -34.0548 * tfactors.T943i + (1.0/3.0) * -3.41973 * tfactors.T923i + + 1.16501 + (5.0/3.0) * -0.105543 * tfactors.T923 + -7.70886 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 111.305 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -34.217 * tfactors.T943i + (1.0/3.0) * 1.28258 * tfactors.T923i - + -1.5098 + (5.0/3.0) * 0.142011 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nfisn + ln_set_rate = 511.463 + -5.29491 * tfactors.T9i + 317.171 * tfactors.T913i + -911.679 * tfactors.T913 + + 94.4245 * tfactors.T9 + -10.1973 * tfactors.T953 + 330.727 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.29491 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 317.171 * tfactors.T943i + (1.0/3.0) * -911.679 * tfactors.T923i + + 94.4245 + (5.0/3.0) * -10.1973 * tfactors.T923 + 330.727 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cr50_to_He4_Ti46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Cr50 --> He4 + Ti46 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // nfisn + ln_set_rate = 23.8315 + 0.246665 * tfactors.T9i + -45.9868 * tfactors.T913i + 13.6822 * tfactors.T913 + + -0.376902 * tfactors.T9 + -0.0194875 * tfactors.T953 + -8.42325 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 82.0042 + -99.346 * tfactors.T9i + -81.7658 * tfactors.T913i + 3.48637 * tfactors.T913 - + -3.9188 * tfactors.T9 + 0.440356 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.246665 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -45.9868 * tfactors.T943i + (1.0/3.0) * 13.6822 * tfactors.T923i + + -0.376902 + (5.0/3.0) * -0.0194875 * tfactors.T923 + -8.42325 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 99.346 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -81.7658 * tfactors.T943i + (1.0/3.0) * 3.48637 * tfactors.T923i - + -3.9188 + (5.0/3.0) * 0.440356 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nfisn + ln_set_rate = 40.5626 + -0.514414 * tfactors.T9i + -110.655 * tfactors.T913i + 83.0232 * tfactors.T913 + + -19.7762 * tfactors.T9 + 3.03961 * tfactors.T953 + -49.4742 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.514414 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -110.655 * tfactors.T943i + (1.0/3.0) * 83.0232 * tfactors.T923i + + -19.7762 + (5.0/3.0) * 3.03961 * tfactors.T923 + -49.4742 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cr51_to_n_Cr50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Cr51 --> n + Cr50 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ks03 - ln_set_rate = 36.7032 + -107.484 * tfactors.T9i + 0.815037 * tfactors.T913i + -0.708732 * tfactors.T913 - + 0.386295 * tfactors.T9 + -0.0615661 * tfactors.T953 + 1.54546 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 107.484 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 0.815037 * tfactors.T943i + (1.0/3.0) * -0.708732 * tfactors.T923i - + 0.386295 + (5.0/3.0) * -0.0615661 * tfactors.T923 + 1.54546 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V47_He4_to_Mn51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // V47 + He4 --> Mn51 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cr51_to_p_V50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr51 --> p + V50 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 56.8618 + -84.2732 * tfactors.T913i + -2.98061 * tfactors.T913 + + -0.531361 * tfactors.T9 + 0.023612 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 58.751 + -110.431 * tfactors.T9i + -34.2216 * tfactors.T913i + 2.39774 * tfactors.T913 - + -2.15306 * tfactors.T9 + 0.232283 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -84.2732 * tfactors.T943i + (1.0/3.0) * -2.98061 * tfactors.T923i + + -0.531361 + (5.0/3.0) * 0.023612 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 110.431 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -34.2216 * tfactors.T943i + (1.0/3.0) * 2.39774 * tfactors.T923i - + -2.15306 + (5.0/3.0) * 0.232283 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V48_n_to_V49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // V48 + n --> V49 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cr51_to_He4_Ti47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr51 --> He4 + Ti47 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 17.8835 + -0.917026 * tfactors.T913 + + -0.109162 * tfactors.T9 + 0.0127488 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 88.0149 + -103.76 * tfactors.T9i + -81.8123 * tfactors.T913i + -8.91821 * tfactors.T913 - + -0.0329369 * tfactors.T9 + 0.039179 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.917026 * tfactors.T923i + + -0.109162 + (5.0/3.0) * 0.0127488 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 103.76 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -81.8123 * tfactors.T943i + (1.0/3.0) * -8.91821 * tfactors.T923i - + -0.0329369 + (5.0/3.0) * 0.039179 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V48_p_to_Cr49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // V48 + p --> Cr49 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cr52_to_n_Cr51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr52 --> n + Cr51 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 34.5168 + -34.2123 * tfactors.T913i + 2.51264 * tfactors.T913 + + -2.09211 * tfactors.T9 + 0.219444 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 45.8814 + -139.784 * tfactors.T9i + 6.95563 * tfactors.T913i + -11.4485 * tfactors.T913 - + 0.736956 * tfactors.T9 + -0.0695323 * tfactors.T953 + 6.81244 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -34.2123 * tfactors.T943i + (1.0/3.0) * 2.51264 * tfactors.T923i + + -2.09211 + (5.0/3.0) * 0.219444 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 139.784 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 6.95563 * tfactors.T943i + (1.0/3.0) * -11.4485 * tfactors.T923i - + 0.736956 + (5.0/3.0) * -0.0695323 * tfactors.T923 + 6.81244 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V48_He4_to_Mn52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // V48 + He4 --> Mn52 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cr52_to_p_V51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr52 --> p + V51 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 62.5923 + -84.3192 * tfactors.T913i + -8.32959 * tfactors.T913 + + 0.33994 * tfactors.T9 + -0.0359909 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 59.9066 + -121.899 * tfactors.T9i + -34.2261 * tfactors.T913i + 3.30454 * tfactors.T913 - + -2.61654 * tfactors.T9 + 0.283602 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -84.3192 * tfactors.T943i + (1.0/3.0) * -8.32959 * tfactors.T923i + + 0.33994 + (5.0/3.0) * -0.0359909 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 121.899 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -34.2261 * tfactors.T943i + (1.0/3.0) * 3.30454 * tfactors.T923i - + -2.61654 + (5.0/3.0) * 0.283602 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V49_n_to_V50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // V49 + n --> V50 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cr52_to_He4_Ti48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr52 --> He4 + Ti48 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 17.5445 + -1.8725 * tfactors.T913 + + 0.291609 * tfactors.T9 + -0.0370216 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 81.6507 + -108.55 * tfactors.T9i + -81.8569 * tfactors.T913i + 4.92305 * tfactors.T913 - + -5.04112 * tfactors.T9 + 0.6175 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.8725 * tfactors.T923i + + 0.291609 + (5.0/3.0) * -0.0370216 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 108.55 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -81.8569 * tfactors.T943i + (1.0/3.0) * 4.92305 * tfactors.T923i - + -5.04112 + (5.0/3.0) * 0.6175 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V49_p_to_Cr50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // V49 + p --> Cr50 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cr53_to_n_Cr52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr53 --> n + Cr52 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 35.2335 + -34.217 * tfactors.T913i + 1.28258 * tfactors.T913 + + -1.5098 * tfactors.T9 + 0.142011 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 49.6092 + -92.163 * tfactors.T9i + 5.71728 * tfactors.T913i + -20.4149 * tfactors.T913 - + 1.95304 * tfactors.T9 + -0.175538 * tfactors.T953 + 8.68293 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -34.217 * tfactors.T943i + (1.0/3.0) * 1.28258 * tfactors.T923i + + -1.5098 + (5.0/3.0) * 0.142011 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 92.163 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 5.71728 * tfactors.T943i + (1.0/3.0) * -20.4149 * tfactors.T923i - + 1.95304 + (5.0/3.0) * -0.175538 * tfactors.T923 + 8.68293 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V49_He4_to_Mn53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // V49 + He4 --> Mn53 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cr53_to_p_V52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr53 --> p + V52 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 62.4555 + -84.3633 * tfactors.T913i + -5.28933 * tfactors.T913 + + -1.3103 * tfactors.T9 + 0.187088 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // rath - ln_set_rate = 153.532 + -135.214 * tfactors.T9i + 224.733 * tfactors.T913i + -373.356 * tfactors.T913 - + 21.346 * tfactors.T9 + -1.24075 * tfactors.T953 + 186.049 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -84.3633 * tfactors.T943i + (1.0/3.0) * -5.28933 * tfactors.T923i + + -1.3103 + (5.0/3.0) * 0.187088 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 135.214 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 224.733 * tfactors.T943i + (1.0/3.0) * -373.356 * tfactors.T923i - + 21.346 + (5.0/3.0) * -1.24075 * tfactors.T923 + 186.049 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V50_n_to_V51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // V50 + n --> V51 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cr53_to_He4_Ti49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr53 --> He4 + Ti49 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ks03 + ln_set_rate = 26.4771 + -0.118554 * tfactors.T9i + 10.9535 * tfactors.T913i + -23.1254 * tfactors.T913 + + 1.53091 * tfactors.T9 + -0.0992995 * tfactors.T953 + 9.62203 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 91.1363 + -106.191 * tfactors.T9i + -81.8999 * tfactors.T913i + -15.3695 * tfactors.T913 - + 2.51758 * tfactors.T9 + -0.283455 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.118554 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 10.9535 * tfactors.T943i + (1.0/3.0) * -23.1254 * tfactors.T923i + + 1.53091 + (5.0/3.0) * -0.0992995 * tfactors.T923 + 9.62203 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 106.191 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -81.8999 * tfactors.T943i + (1.0/3.0) * -15.3695 * tfactors.T923i - + 2.51758 + (5.0/3.0) * -0.283455 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V50_p_to_Cr51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // V50 + p --> Cr51 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cr54_to_n_Cr53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr54 --> n + Cr53 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 34.5894 + -34.2216 * tfactors.T913i + 2.39774 * tfactors.T913 + + -2.15306 * tfactors.T9 + 0.232283 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 35.9433 + -112.797 * tfactors.T9i + -1.26805 * tfactors.T913i + 6.34126 * tfactors.T913 - + -0.39287 * tfactors.T9 + 0.000487041 * tfactors.T953 + -0.96456 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -34.2216 * tfactors.T943i + (1.0/3.0) * 2.39774 * tfactors.T923i + + -2.15306 + (5.0/3.0) * 0.232283 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 112.797 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.26805 * tfactors.T943i + (1.0/3.0) * 6.34126 * tfactors.T923i - + -0.39287 + (5.0/3.0) * 0.000487041 * tfactors.T923 + -0.96456 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V50_He4_to_Mn54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // V50 + He4 --> Mn54 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cr54_to_He4_Ti50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr54 --> He4 + Ti50 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 63.3156 + -84.4058 * tfactors.T913i + -6.25173 * tfactors.T913 + + -1.31339 * tfactors.T9 + 0.208695 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 88.401 + -92.0329 * tfactors.T9i + -81.9411 * tfactors.T913i + -6.28155 * tfactors.T913 - + -2.0416 * tfactors.T9 + 0.332085 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -84.4058 * tfactors.T943i + (1.0/3.0) * -6.25173 * tfactors.T923i + + -1.31339 + (5.0/3.0) * 0.208695 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 92.0329 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -81.9411 * tfactors.T943i + (1.0/3.0) * -6.28155 * tfactors.T923i - + -2.0416 + (5.0/3.0) * 0.332085 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V51_n_to_V52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // V51 + n --> V52 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mn50_to_p_Cr49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn50 --> p + Cr49 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ks03 + ln_set_rate = 3.43672 + 0.00903385 * tfactors.T9i + -4.14102 * tfactors.T913i + 17.4073 * tfactors.T913 + + -1.59715 * tfactors.T9 + 0.114181 * tfactors.T953 + -5.93987 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 61.8556 + -53.2101 * tfactors.T9i + -35.2018 * tfactors.T913i + 0.168579 * tfactors.T913 - + -2.87983 * tfactors.T9 + 0.378768 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.00903385 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -4.14102 * tfactors.T943i + (1.0/3.0) * 17.4073 * tfactors.T923i + + -1.59715 + (5.0/3.0) * 0.114181 * tfactors.T923 + -5.93987 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 53.2101 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -35.2018 * tfactors.T943i + (1.0/3.0) * 0.168579 * tfactors.T923i - + -2.87983 + (5.0/3.0) * 0.378768 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V51_p_to_Cr52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // V51 + p --> Cr52 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mn50_to_He4_V46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn50 --> He4 + V46 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 34.1505 + -34.2261 * tfactors.T913i + 3.30454 * tfactors.T913 + + -2.61654 * tfactors.T9 + 0.283602 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 79.278 + -92.5891 * tfactors.T9i + -84.2255 * tfactors.T913i + -4.85634 * tfactors.T913 - + 0.0528515 * tfactors.T9 + -0.0425496 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -34.2261 * tfactors.T943i + (1.0/3.0) * 3.30454 * tfactors.T923i + + -2.61654 + (5.0/3.0) * 0.283602 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 92.5891 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.2255 * tfactors.T943i + (1.0/3.0) * -4.85634 * tfactors.T923i - + 0.0528515 + (5.0/3.0) * -0.0425496 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V51_He4_to_Mn55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // V51 + He4 --> Mn55 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mn51_to_n_Mn50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn51 --> n + Mn50 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 61.6131 + -84.4467 * tfactors.T913i + -1.29542 * tfactors.T913 + + -3.56909 * tfactors.T9 + 0.513926 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 37.3277 + -158.817 * tfactors.T9i + -0.538879 * tfactors.T913 - + 0.284528 * tfactors.T9 + -0.0459849 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -84.4467 * tfactors.T943i + (1.0/3.0) * -1.29542 * tfactors.T923i + + -3.56909 + (5.0/3.0) * 0.513926 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 158.817 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.538879 * tfactors.T923i - + 0.284528 + (5.0/3.0) * -0.0459849 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V52_p_to_Cr53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // V52 + p --> Cr53 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mn51_to_p_Cr50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn51 --> p + Cr50 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // rath + ln_set_rate = 129.295 + -6.02127 * tfactors.T9i + 224.733 * tfactors.T913i + -373.356 * tfactors.T913 + + 21.346 * tfactors.T9 + -1.24075 * tfactors.T953 + 184.549 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 57.7375 + -61.1651 * tfactors.T9i + -35.2065 * tfactors.T913i + 0.884621 * tfactors.T913 - + -1.76421 * tfactors.T9 + 0.202494 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 6.02127 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 224.733 * tfactors.T943i + (1.0/3.0) * -373.356 * tfactors.T923i + + 21.346 + (5.0/3.0) * -1.24075 * tfactors.T923 + 184.549 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 61.1651 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -35.2065 * tfactors.T943i + (1.0/3.0) * 0.884621 * tfactors.T923i - + -1.76421 + (5.0/3.0) * 0.202494 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr48_n_to_Cr49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cr48 + n --> Cr49 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mn51_to_He4_V47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn51 --> He4 + V47 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 15.8544 + -0.000452357 * tfactors.T913 + + 0.0412838 * tfactors.T9 + -0.0160865 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 81.4259 + -100.544 * tfactors.T9i + -84.2732 * tfactors.T913i + -2.98061 * tfactors.T913 - + -0.531361 * tfactors.T9 + 0.023612 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.000452357 * tfactors.T923i + + 0.0412838 + (5.0/3.0) * -0.0160865 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 100.544 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.2732 * tfactors.T943i + (1.0/3.0) * -2.98061 * tfactors.T923i - + -0.531361 + (5.0/3.0) * 0.023612 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr48_He4_to_Fe52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cr48 + He4 --> Fe52 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mn52_to_n_Mn51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn52 --> n + Mn51 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 65.1754 + -86.7459 * tfactors.T913i + -9.79373 * tfactors.T913 + + -0.772169 * tfactors.T9 + 0.155883 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 40.109 + -122.258 * tfactors.T9i + -1.83611 * tfactors.T913 - + 0.460384 * tfactors.T9 + -0.0584947 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -86.7459 * tfactors.T943i + (1.0/3.0) * -9.79373 * tfactors.T923i + + -0.772169 + (5.0/3.0) * 0.155883 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 122.258 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.83611 * tfactors.T923i - + 0.460384 + (5.0/3.0) * -0.0584947 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr49_n_to_Cr50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cr49 + n --> Cr50 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mn52_to_p_Cr51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn52 --> p + Cr51 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 17.8355 + -1.98927 * tfactors.T913 + + 0.465124 * tfactors.T9 + -0.0582249 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 58.4561 + -75.9585 * tfactors.T9i + -35.2111 * tfactors.T913i + 1.49375 * tfactors.T913 - + -1.48209 * tfactors.T9 + 0.131902 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.98927 * tfactors.T923i + + 0.465124 + (5.0/3.0) * -0.0582249 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 75.9585 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -35.2111 * tfactors.T943i + (1.0/3.0) * 1.49375 * tfactors.T923i - + -1.48209 + (5.0/3.0) * 0.131902 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr49_p_to_Mn50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cr49 + p --> Mn50 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mn52_to_He4_V48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn52 --> He4 + V48 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 36.3884 + -35.2018 * tfactors.T913i + 0.168579 * tfactors.T913 + + -2.87983 * tfactors.T9 + 0.378768 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 87.1966 + -100.437 * tfactors.T9i + -84.3192 * tfactors.T913i + -8.32959 * tfactors.T913 - + 0.33994 * tfactors.T9 + -0.0359909 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -35.2018 * tfactors.T943i + (1.0/3.0) * 0.168579 * tfactors.T923i + + -2.87983 + (5.0/3.0) * 0.378768 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 100.437 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.3192 * tfactors.T943i + (1.0/3.0) * -8.32959 * tfactors.T923i - + 0.33994 + (5.0/3.0) * -0.0359909 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr49_He4_to_Fe53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cr49 + He4 --> Fe53 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mn53_to_n_Mn52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn53 --> n + Mn52 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 65.1467 + -86.7913 * tfactors.T913i + -6.51572 * tfactors.T913 + + -1.21249 * tfactors.T9 + 0.185473 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 41.2568 + -139.878 * tfactors.T9i + -0.91084 * tfactors.T913 - + 0.162511 * tfactors.T9 + -0.0279619 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -86.7913 * tfactors.T943i + (1.0/3.0) * -6.51572 * tfactors.T923i + + -1.21249 + (5.0/3.0) * 0.185473 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 139.878 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.91084 * tfactors.T923i - + 0.162511 + (5.0/3.0) * -0.0279619 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr50_n_to_Cr51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cr50 + n --> Cr51 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mn53_to_p_Cr52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn53 --> p + Cr52 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ks03 + ln_set_rate = 15.1066 + -0.0225613 * tfactors.T9i + 0.815037 * tfactors.T913i + -0.708732 * tfactors.T913 + + 0.386295 * tfactors.T9 + -0.0615661 * tfactors.T953 + 0.0454627 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 57.2932 + -76.1248 * tfactors.T9i + -35.2154 * tfactors.T913i + 0.73019 * tfactors.T913 - + -1.26018 * tfactors.T9 + 0.121141 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0225613 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 0.815037 * tfactors.T943i + (1.0/3.0) * -0.708732 * tfactors.T923i + + 0.386295 + (5.0/3.0) * -0.0615661 * tfactors.T923 + 0.0454627 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 76.1248 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -35.2154 * tfactors.T943i + (1.0/3.0) * 0.73019 * tfactors.T923i - + -1.26018 + (5.0/3.0) * 0.121141 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr50_p_to_Mn51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cr50 + p --> Mn51 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mn53_to_He4_V49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn53 --> He4 + V49 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 35.8532 + -35.2065 * tfactors.T913i + 0.884621 * tfactors.T913 + + -1.76421 * tfactors.T9 + 0.202494 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 87.4299 + -106.249 * tfactors.T9i + -84.3633 * tfactors.T913i + -5.28933 * tfactors.T913 - + -1.3103 * tfactors.T9 + 0.187088 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -35.2065 * tfactors.T943i + (1.0/3.0) * 0.884621 * tfactors.T923i + + -1.76421 + (5.0/3.0) * 0.202494 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 106.249 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.3633 * tfactors.T943i + (1.0/3.0) * -5.28933 * tfactors.T923i - + -1.3103 + (5.0/3.0) * 0.187088 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr50_He4_to_Fe54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cr50 + He4 --> Fe54 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mn54_to_n_Mn53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn54 --> n + Mn53 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 59.7193 + -86.8349 * tfactors.T913i + 2.37343 * tfactors.T913 + + -3.65677 * tfactors.T9 + 0.412128 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 41.1614 + -103.73 * tfactors.T9i + -1.70171 * tfactors.T913 - + 0.386422 * tfactors.T9 + -0.0536858 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -86.8349 * tfactors.T943i + (1.0/3.0) * 2.37343 * tfactors.T923i + + -3.65677 + (5.0/3.0) * 0.412128 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 103.73 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.70171 * tfactors.T923i - + 0.386422 + (5.0/3.0) * -0.0536858 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr51_n_to_Cr52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cr51 + n --> Cr52 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mn54_to_p_Cr53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn54 --> p + Cr53 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ks03 + ln_set_rate = 20.1253 + -0.0860167 * tfactors.T9i + 6.95563 * tfactors.T913i + -11.4485 * tfactors.T913 + + 0.736956 * tfactors.T9 + -0.0695323 * tfactors.T953 + 5.31244 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 57.3213 + -87.7254 * tfactors.T9i + -35.2197 * tfactors.T913i + 3.74805 * tfactors.T913 - + -2.77987 * tfactors.T9 + 0.296885 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0860167 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 6.95563 * tfactors.T943i + (1.0/3.0) * -11.4485 * tfactors.T923i + + 0.736956 + (5.0/3.0) * -0.0695323 * tfactors.T923 + 5.31244 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 87.7254 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -35.2197 * tfactors.T943i + (1.0/3.0) * 3.74805 * tfactors.T923i - + -2.77987 + (5.0/3.0) * 0.296885 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr51_p_to_Mn52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cr51 + p --> Mn52 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mn54_to_He4_V50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn54 --> He4 + V50 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 35.265 + -35.2111 * tfactors.T913i + 1.49375 * tfactors.T913 + + -1.48209 * tfactors.T9 + 0.131902 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 88.9113 + -101.641 * tfactors.T9i + -84.4058 * tfactors.T913i + -6.25173 * tfactors.T913 - + -1.31339 * tfactors.T9 + 0.208695 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -35.2111 * tfactors.T943i + (1.0/3.0) * 1.49375 * tfactors.T923i + + -1.48209 + (5.0/3.0) * 0.131902 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 101.641 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.4058 * tfactors.T943i + (1.0/3.0) * -6.25173 * tfactors.T923i - + -1.31339 + (5.0/3.0) * 0.208695 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr51_He4_to_Fe55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cr51 + He4 --> Fe55 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mn55_to_n_Mn54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn55 --> n + Mn54 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 61.6085 + -86.8771 * tfactors.T913i + -0.0873902 * tfactors.T913 + + -3.40716 * tfactors.T9 + 0.441679 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 42.3029 + -118.673 * tfactors.T9i + -2.56572 * tfactors.T913 - + 0.352447 * tfactors.T9 + -0.0375878 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -86.8771 * tfactors.T943i + (1.0/3.0) * -0.0873902 * tfactors.T923i + + -3.40716 + (5.0/3.0) * 0.441679 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 118.673 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.56572 * tfactors.T923i - + 0.352447 + (5.0/3.0) * -0.0375878 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr52_n_to_Cr53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cr52 + n --> Cr53 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mn55_to_p_Cr54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn55 --> p + Cr54 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ks03 + ln_set_rate = 27.3183 + -0.0314027 * tfactors.T9i + 5.71728 * tfactors.T913i + -20.4149 * tfactors.T913 + + 1.95304 * tfactors.T9 + -0.175538 * tfactors.T953 + 7.18293 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 56.8219 + -93.6136 * tfactors.T9i + -35.2237 * tfactors.T913i + 2.60768 * tfactors.T913 - + -1.7864 * tfactors.T9 + 0.134189 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0314027 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 5.71728 * tfactors.T943i + (1.0/3.0) * -20.4149 * tfactors.T923i + + 1.95304 + (5.0/3.0) * -0.175538 * tfactors.T923 + 7.18293 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 93.6136 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -35.2237 * tfactors.T943i + (1.0/3.0) * 2.60768 * tfactors.T923i - + -1.7864 + (5.0/3.0) * 0.134189 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr52_p_to_Mn53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cr52 + p --> Mn53 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Mn55_to_He4_V51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn55 --> He4 + V51 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 35.6954 + -35.2154 * tfactors.T913i + 0.73019 * tfactors.T913 + + -1.26018 * tfactors.T9 + 0.121141 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 86.8796 + -92.0714 * tfactors.T9i + -84.4467 * tfactors.T913i + -1.29542 * tfactors.T913 - + -3.56909 * tfactors.T9 + 0.513926 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -35.2154 * tfactors.T943i + (1.0/3.0) * 0.73019 * tfactors.T923i + + -1.26018 + (5.0/3.0) * 0.121141 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 92.0714 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.4467 * tfactors.T943i + (1.0/3.0) * -1.29542 * tfactors.T923i - + -3.56909 + (5.0/3.0) * 0.513926 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr52_He4_to_Fe56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cr52 + He4 --> Fe56 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Fe52_to_p_Mn51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe52 --> p + Mn51 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 58.0146 + -86.9175 * tfactors.T913i + 5.655 * tfactors.T913 + + -4.53625 * tfactors.T9 + 0.479806 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 61.728 + -85.6325 * tfactors.T9i + -36.1825 * tfactors.T913i + 0.873042 * tfactors.T913 - + -2.89731 * tfactors.T9 + 0.364394 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -86.9175 * tfactors.T943i + (1.0/3.0) * 5.655 * tfactors.T923i + + -4.53625 + (5.0/3.0) * 0.479806 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 85.6325 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.1825 * tfactors.T943i + (1.0/3.0) * 0.873042 * tfactors.T923i - + -2.89731 + (5.0/3.0) * 0.364394 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr53_n_to_Cr54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cr53 + n --> Cr54 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Fe52_to_He4_Cr48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe52 --> He4 + Cr48 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ks03 + ln_set_rate = 10.8793 + -0.00984544 * tfactors.T9i + -1.26805 * tfactors.T913i + 6.34126 * tfactors.T913 + + -0.39287 * tfactors.T9 + 0.000487041 * tfactors.T953 + -2.46456 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 90.1474 + -92.109 * tfactors.T9i + -86.7459 * tfactors.T913i + -9.79373 * tfactors.T913 - + -0.772169 * tfactors.T9 + 0.155883 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.00984544 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.26805 * tfactors.T943i + (1.0/3.0) * 6.34126 * tfactors.T923i + + -0.39287 + (5.0/3.0) * 0.000487041 * tfactors.T923 + -2.46456 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 92.109 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -86.7459 * tfactors.T943i + (1.0/3.0) * -9.79373 * tfactors.T923i - + -0.772169 + (5.0/3.0) * 0.155883 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr53_p_to_Mn54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cr53 + p --> Mn54 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Fe53_to_n_Fe52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe53 --> n + Fe52 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 34.2032 + -35.2197 * tfactors.T913i + 3.74805 * tfactors.T913 + + -2.77987 * tfactors.T9 + 0.296885 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 37.4863 + -123.994 * tfactors.T9i + -0.344319 * tfactors.T913 - + 0.178277 * tfactors.T9 + -0.0334326 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -35.2197 * tfactors.T943i + (1.0/3.0) * 3.74805 * tfactors.T923i + + -2.77987 + (5.0/3.0) * 0.296885 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 123.994 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.344319 * tfactors.T923i - + 0.178277 + (5.0/3.0) * -0.0334326 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr53_He4_to_Fe57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cr53 + He4 --> Fe57 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Fe53_to_p_Mn52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe53 --> p + Mn52 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 65.95 + -86.9567 * tfactors.T913i + -12.0579 * tfactors.T913 + + 1.33466 * tfactors.T9 + -0.14709 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 59.5946 + -87.3685 * tfactors.T9i + -36.187 * tfactors.T913i + 1.79171 * tfactors.T913 - + -1.77786 * tfactors.T9 + 0.179936 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -86.9567 * tfactors.T943i + (1.0/3.0) * -12.0579 * tfactors.T923i + + 1.33466 + (5.0/3.0) * -0.14709 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 87.3685 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.187 * tfactors.T943i + (1.0/3.0) * 1.79171 * tfactors.T923i - + -1.77786 + (5.0/3.0) * 0.179936 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr54_p_to_Mn55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cr54 + p --> Mn55 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Fe53_to_He4_Cr49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe53 --> He4 + Cr49 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 34.9354 + -35.2237 * tfactors.T913i + 2.60768 * tfactors.T913 + + -1.7864 * tfactors.T9 + 0.134189 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 89.8334 + -93.2974 * tfactors.T9i + -86.7913 * tfactors.T913i + -6.51572 * tfactors.T913 - + -1.21249 * tfactors.T9 + 0.185473 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -35.2237 * tfactors.T943i + (1.0/3.0) * 2.60768 * tfactors.T923i + + -1.7864 + (5.0/3.0) * 0.134189 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 93.2974 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -86.7913 * tfactors.T943i + (1.0/3.0) * -6.51572 * tfactors.T923i - + -1.21249 + (5.0/3.0) * 0.185473 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr54_He4_to_Fe58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cr54 + He4 --> Fe58 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Fe54_to_n_Fe53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe54 --> n + Fe53 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 63.2926 + -86.9945 * tfactors.T913i + -1.05674 * tfactors.T913 + + -4.13443 * tfactors.T9 + 0.599141 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 42.2106 + -155.251 * tfactors.T9i + -1.10421 * tfactors.T913 - + 0.379905 * tfactors.T9 + -0.0581878 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -86.9945 * tfactors.T943i + (1.0/3.0) * -1.05674 * tfactors.T923i + + -4.13443 + (5.0/3.0) * 0.599141 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 155.251 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.10421 * tfactors.T923i - + 0.379905 + (5.0/3.0) * -0.0581878 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn50_n_to_Mn51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Mn50 + n --> Mn51 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Fe54_to_p_Mn53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe54 --> p + Mn53 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 15.4434 + -0.538879 * tfactors.T913 + + 0.284528 * tfactors.T9 + -0.0459849 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 61.3432 + -102.741 * tfactors.T9i + -36.1913 * tfactors.T913i + 1.44056 * tfactors.T913 - + -1.50734 * tfactors.T9 + 0.142124 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.538879 * tfactors.T923i + + 0.284528 + (5.0/3.0) * -0.0459849 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 102.741 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.1913 * tfactors.T943i + (1.0/3.0) * 1.44056 * tfactors.T923i - + -1.50734 + (5.0/3.0) * 0.142124 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn50_He4_to_Co54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Mn50 + He4 --> Co54 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Fe54_to_He4_Cr50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe54 --> He4 + Cr50 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 54.3174 + -89.2309 * tfactors.T913i + -1.30702 * tfactors.T913 + + -1.30543 * tfactors.T9 + 0.141679 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 84.6959 + -97.6852 * tfactors.T9i + -86.8349 * tfactors.T913i + 2.37343 * tfactors.T913 - + -3.65677 * tfactors.T9 + 0.412128 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -89.2309 * tfactors.T943i + (1.0/3.0) * -1.30702 * tfactors.T923i + + -1.30543 + (5.0/3.0) * 0.141679 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 97.6852 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -86.8349 * tfactors.T943i + (1.0/3.0) * 2.37343 * tfactors.T923i - + -3.65677 + (5.0/3.0) * 0.412128 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn51_n_to_Mn52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Mn51 + n --> Mn52 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Fe55_to_n_Fe54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe55 --> n + Fe54 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 17.2055 + -1.83611 * tfactors.T913 + + 0.460384 * tfactors.T9 + -0.0584947 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 21.4833 + -107.843 * tfactors.T9i + -8.66617 * tfactors.T913i + 26.4472 * tfactors.T913 - + -1.9222 * tfactors.T9 + 0.0986404 * tfactors.T953 + -8.28317 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.83611 * tfactors.T923i + + 0.460384 + (5.0/3.0) * -0.0584947 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 107.843 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -8.66617 * tfactors.T943i + (1.0/3.0) * 26.4472 * tfactors.T923i - + -1.9222 + (5.0/3.0) * 0.0986404 * tfactors.T923 + -8.28317 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn51_p_to_Fe52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Mn51 + p --> Fe52 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Fe55_to_p_Mn54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe55 --> p + Mn54 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 36.2596 + -36.1825 * tfactors.T913i + 0.873042 * tfactors.T913 + + -2.89731 * tfactors.T9 + 0.364394 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 59.7879 + -106.912 * tfactors.T9i + -36.1955 * tfactors.T913i + 1.08481 * tfactors.T913 - + -1.46703 * tfactors.T9 + 0.13789 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -36.1825 * tfactors.T943i + (1.0/3.0) * 0.873042 * tfactors.T923i + + -2.89731 + (5.0/3.0) * 0.364394 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 106.912 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.1955 * tfactors.T943i + (1.0/3.0) * 1.08481 * tfactors.T923i - + -1.46703 + (5.0/3.0) * 0.13789 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn51_He4_to_Co55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Mn51 + He4 --> Co55 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Fe55_to_He4_Cr51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe55 --> He4 + Cr51 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 65.9219 + -89.274 * tfactors.T913i + -10.4373 * tfactors.T913 + + 1.00492 * tfactors.T9 + -0.125548 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 87.2804 + -98.1216 * tfactors.T9i + -86.8771 * tfactors.T913i + -0.0873902 * tfactors.T913 - + -3.40716 * tfactors.T9 + 0.441679 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -89.274 * tfactors.T943i + (1.0/3.0) * -10.4373 * tfactors.T923i + + 1.00492 + (5.0/3.0) * -0.125548 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 98.1216 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -86.8771 * tfactors.T943i + (1.0/3.0) * -0.0873902 * tfactors.T923i - + -3.40716 + (5.0/3.0) * 0.441679 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn52_n_to_Mn53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Mn52 + n --> Mn53 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Fe56_to_n_Fe55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe56 --> n + Fe55 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 17.0941 + -0.91084 * tfactors.T913 + + 0.162511 * tfactors.T9 + -0.0279619 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 46.7852 + -130.023 * tfactors.T9i + 8.06062 * tfactors.T913i + -14.4809 * tfactors.T913 - + 0.94252 * tfactors.T9 + -0.0776007 * tfactors.T953 + 7.97093 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.91084 * tfactors.T923i + + 0.162511 + (5.0/3.0) * -0.0279619 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 130.023 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 8.06062 * tfactors.T943i + (1.0/3.0) * -14.4809 * tfactors.T923i - + 0.94252 + (5.0/3.0) * -0.0776007 * tfactors.T923 + 7.97093 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn52_p_to_Fe53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Mn52 + p --> Fe53 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Fe56_to_p_Mn55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe56 --> p + Mn55 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 35.4319 + -36.187 * tfactors.T913i + 1.79171 * tfactors.T913 + + -1.77786 * tfactors.T9 + 0.179936 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 61.6593 + -118.177 * tfactors.T9i + -36.1995 * tfactors.T913i + 1.15346 * tfactors.T913 - + -1.94437 * tfactors.T9 + 0.218429 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -36.187 * tfactors.T943i + (1.0/3.0) * 1.79171 * tfactors.T923i + + -1.77786 + (5.0/3.0) * 0.179936 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 118.177 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.1995 * tfactors.T943i + (1.0/3.0) * 1.15346 * tfactors.T923i - + -1.94437 + (5.0/3.0) * 0.218429 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn52_He4_to_Co56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Mn52 + He4 --> Co56 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Fe56_to_He4_Cr52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe56 --> He4 + Cr52 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 63.5657 + -89.3157 * tfactors.T913i + -1.95982 * tfactors.T913 + + -2.45671 * tfactors.T9 + 0.296095 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 82.9955 + -88.349 * tfactors.T9i + -86.9175 * tfactors.T913i + 5.655 * tfactors.T913 - + -4.53625 * tfactors.T9 + 0.479806 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -89.3157 * tfactors.T943i + (1.0/3.0) * -1.95982 * tfactors.T923i + + -2.45671 + (5.0/3.0) * 0.296095 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 88.349 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -86.9175 * tfactors.T943i + (1.0/3.0) * 5.655 * tfactors.T923i - + -4.53625 + (5.0/3.0) * 0.479806 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn53_n_to_Mn54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Mn53 + n --> Mn54 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Fe57_to_n_Fe56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe57 --> n + Fe56 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 17.3501 + -1.70171 * tfactors.T913 + + 0.386422 * tfactors.T9 + -0.0536858 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 58.8201 + -88.7916 * tfactors.T9i + 9.79414 * tfactors.T913i + -33.7366 * tfactors.T913 - + 2.97173 * tfactors.T9 + -0.236498 * tfactors.T953 + 13.3711 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.70171 * tfactors.T923i + + 0.386422 + (5.0/3.0) * -0.0536858 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 88.7916 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 9.79414 * tfactors.T943i + (1.0/3.0) * -33.7366 * tfactors.T923i - + 2.97173 + (5.0/3.0) * -0.236498 * tfactors.T923 + 13.3711 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn53_p_to_Fe54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Mn53 + p --> Fe54 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Fe57_to_He4_Cr53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe57 --> He4 + Cr53 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 35.586 + -36.1913 * tfactors.T913i + 1.44056 * tfactors.T913 + + -1.50734 * tfactors.T9 + 0.142124 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 91.6261 + -84.9485 * tfactors.T9i + -86.9567 * tfactors.T913i + -12.0579 * tfactors.T913 - + 1.33466 * tfactors.T9 + -0.14709 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -36.1913 * tfactors.T943i + (1.0/3.0) * 1.44056 * tfactors.T923i + + -1.50734 + (5.0/3.0) * 0.142124 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 84.9485 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -86.9567 * tfactors.T943i + (1.0/3.0) * -12.0579 * tfactors.T923i - + 1.33466 + (5.0/3.0) * -0.14709 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn53_He4_to_Co57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Mn53 + He4 --> Co57 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Fe58_to_n_Fe57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe58 --> n + Fe57 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 62.0252 + -89.3558 * tfactors.T913i + 0.000882861 * tfactors.T913 + + -2.79327 * tfactors.T9 + 0.309057 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 44.6221 + -116.581 * tfactors.T9i + 2.1643 * tfactors.T913i + -7.49584 * tfactors.T913 - + 0.656354 * tfactors.T9 + -0.0549855 * tfactors.T953 + 3.88149 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -89.3558 * tfactors.T943i + (1.0/3.0) * 0.000882861 * tfactors.T923i + + -2.79327 + (5.0/3.0) * 0.309057 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 116.581 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.1643 * tfactors.T943i + (1.0/3.0) * -7.49584 * tfactors.T923i - + 0.656354 + (5.0/3.0) * -0.0549855 * tfactors.T923 + 3.88149 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn54_n_to_Mn55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Mn54 + n --> Mn55 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Fe58_to_He4_Cr54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe58 --> He4 + Cr54 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 18.4705 + -2.56572 * tfactors.T913 + + 0.352447 * tfactors.T9 + -0.0375878 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 88.2775 + -88.7256 * tfactors.T9i + -86.9945 * tfactors.T913i + -1.05674 * tfactors.T913 - + -4.13443 * tfactors.T9 + 0.599141 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -2.56572 * tfactors.T923i + + 0.352447 + (5.0/3.0) * -0.0375878 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 88.7256 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -86.9945 * tfactors.T943i + (1.0/3.0) * -1.05674 * tfactors.T923i - + -4.13443 + (5.0/3.0) * 0.599141 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn54_p_to_Fe55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Mn54 + p --> Fe55 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Co53_to_p_Fe52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Co53 --> p + Fe52 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 35.55 + -36.1955 * tfactors.T913i + 1.08481 * tfactors.T913 + + -1.46703 * tfactors.T9 + 0.13789 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 60.8857 + -18.5925 * tfactors.T9i + -37.1457 * tfactors.T913i + -5.67417 * tfactors.T913 - + -0.559644 * tfactors.T9 + 0.102768 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -36.1955 * tfactors.T943i + (1.0/3.0) * 1.08481 * tfactors.T923i + + -1.46703 + (5.0/3.0) * 0.13789 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 18.5925 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -37.1457 * tfactors.T943i + (1.0/3.0) * -5.67417 * tfactors.T923i - + -0.559644 + (5.0/3.0) * 0.102768 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn54_He4_to_Co58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Mn54 + He4 --> Co58 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Co54_to_n_Co53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Co54 --> n + Co53 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 67.6083 + -89.3946 * tfactors.T913i + -8.26476 * tfactors.T913 + + -0.766622 * tfactors.T9 + 0.135181 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 36.9609 + -155.918 * tfactors.T9i + -1.14795 * tfactors.T913 - + 0.413083 * tfactors.T9 + -0.0515627 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -89.3946 * tfactors.T943i + (1.0/3.0) * -8.26476 * tfactors.T923i + + -0.766622 + (5.0/3.0) * 0.135181 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 155.918 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.14795 * tfactors.T923i - + 0.413083 + (5.0/3.0) * -0.0515627 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn55_p_to_Fe56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Mn55 + p --> Fe56 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Co54_to_p_Fe53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Co54 --> p + Fe53 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 36.1888 + -36.1995 * tfactors.T913i + 1.15346 * tfactors.T913 + + -1.94437 * tfactors.T9 + 0.218429 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 62.6311 + -50.5166 * tfactors.T9i + -37.1501 * tfactors.T913i + 0.211459 * tfactors.T913 - + -2.79493 * tfactors.T9 + 0.358657 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -36.1995 * tfactors.T943i + (1.0/3.0) * 1.15346 * tfactors.T923i + + -1.94437 + (5.0/3.0) * 0.218429 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 50.5166 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -37.1501 * tfactors.T943i + (1.0/3.0) * 0.211459 * tfactors.T923i - + -2.79493 + (5.0/3.0) * 0.358657 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn55_He4_to_Co59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Mn55 + He4 --> Co59 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Co54_to_He4_Mn50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Co54 --> He4 + Mn50 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 60.0838 + -89.432 * tfactors.T913i + 5.33428 * tfactors.T913 + + -5.11461 * tfactors.T9 + 0.613808 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 79.294 + -90.6038 * tfactors.T9i + -89.2309 * tfactors.T913i + -1.30702 * tfactors.T913 - + -1.30543 * tfactors.T9 + 0.141679 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -89.432 * tfactors.T943i + (1.0/3.0) * 5.33428 * tfactors.T923i + + -5.11461 + (5.0/3.0) * 0.613808 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 90.6038 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -89.2309 * tfactors.T943i + (1.0/3.0) * -1.30702 * tfactors.T923i - + -1.30543 + (5.0/3.0) * 0.141679 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe52_n_to_Fe53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Fe52 + n --> Fe53 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Co55_to_n_Co54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Co55 --> n + Co54 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 15.8885 + -0.344319 * tfactors.T913 + + 0.178277 * tfactors.T9 + -0.0334326 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 35.9749 + -163.499 * tfactors.T9i + 0.433187 * tfactors.T913 - + 0.0888642 * tfactors.T9 + -0.0315521 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.344319 * tfactors.T923i + + 0.178277 + (5.0/3.0) * -0.0334326 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 163.499 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.433187 * tfactors.T923i - + 0.0888642 + (5.0/3.0) * -0.0315521 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe52_p_to_Co53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Fe52 + p --> Co53 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Co55_to_p_Fe54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Co55 --> p + Fe54 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 39.2879 + -37.1457 * tfactors.T913i + -5.67417 * tfactors.T913 + + -0.559644 * tfactors.T9 + 0.102768 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 57.8292 + -58.766 * tfactors.T9i + -37.1544 * tfactors.T913i + 0.950364 * tfactors.T913 - + -1.77529 * tfactors.T9 + 0.198562 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -37.1457 * tfactors.T943i + (1.0/3.0) * -5.67417 * tfactors.T923i + + -0.559644 + (5.0/3.0) * 0.102768 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 58.766 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -37.1544 * tfactors.T943i + (1.0/3.0) * 0.950364 * tfactors.T923i - + -1.77529 + (5.0/3.0) * 0.198562 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe52_He4_to_Ni56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Fe52 + He4 --> Ni56 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Co55_to_He4_Mn51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Co55 --> He4 + Mn51 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 66.6417 + -91.6819 * tfactors.T913i + -9.51885 * tfactors.T913 + + -0.533014 * tfactors.T9 + 0.0892607 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 90.613 + -95.2861 * tfactors.T9i + -89.274 * tfactors.T913i + -10.4373 * tfactors.T913 - + 1.00492 * tfactors.T9 + -0.125548 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -91.6819 * tfactors.T943i + (1.0/3.0) * -9.51885 * tfactors.T923i + + -0.533014 + (5.0/3.0) * 0.0892607 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 95.2861 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -89.274 * tfactors.T943i + (1.0/3.0) * -10.4373 * tfactors.T923i - + 1.00492 + (5.0/3.0) * -0.125548 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe53_n_to_Fe54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Fe53 + n --> Fe54 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Co56_to_n_Co55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Co56 --> n + Co55 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 16.4534 + -1.10421 * tfactors.T913 + + 0.379905 * tfactors.T9 + -0.0581878 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 40.626 + -117.009 * tfactors.T9i + -1.86357 * tfactors.T913 - + 0.616591 * tfactors.T9 + -0.0839313 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.10421 * tfactors.T923i + + 0.379905 + (5.0/3.0) * -0.0581878 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 117.009 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.86357 * tfactors.T923i - + 0.616591 + (5.0/3.0) * -0.0839313 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe53_p_to_Co54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Fe53 + p --> Co54 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Co56_to_p_Fe55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Co56 --> p + Fe55 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 36.8739 + -37.1501 * tfactors.T913i + 0.211459 * tfactors.T913 + + -2.79493 * tfactors.T9 + 0.358657 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 58.6011 + -67.8743 * tfactors.T9i + -37.1585 * tfactors.T913i + 1.66198 * tfactors.T913 - + -1.60842 * tfactors.T9 + 0.148916 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -37.1501 * tfactors.T943i + (1.0/3.0) * 0.211459 * tfactors.T923i + + -2.79493 + (5.0/3.0) * 0.358657 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 67.8743 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -37.1585 * tfactors.T943i + (1.0/3.0) * 1.66198 * tfactors.T923i - + -1.60842 + (5.0/3.0) * 0.148916 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe53_He4_to_Ni57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Fe53 + He4 --> Ni57 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Co56_to_He4_Mn52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Co56 --> He4 + Mn52 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 69.0636 + -91.7231 * tfactors.T913i + -10.1816 * tfactors.T913 + + -0.0406303 * tfactors.T9 + 0.0345056 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 88.9143 + -90.0372 * tfactors.T9i + -89.3157 * tfactors.T913i + -1.95982 * tfactors.T913 - + -2.45671 * tfactors.T9 + 0.296095 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -91.7231 * tfactors.T943i + (1.0/3.0) * -10.1816 * tfactors.T923i + + -0.0406303 + (5.0/3.0) * 0.0345056 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 90.0372 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -89.3157 * tfactors.T943i + (1.0/3.0) * -1.95982 * tfactors.T923i - + -2.45671 + (5.0/3.0) * 0.296095 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe54_n_to_Fe55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Fe54 + n --> Fe55 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Co57_to_n_Co56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Co57 --> n + Co56 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ks03 + ln_set_rate = -0.80864 + 0.0591716 * tfactors.T9i + -8.66617 * tfactors.T913i + 26.4472 * tfactors.T913 + + -1.9222 * tfactors.T9 + 0.0986404 * tfactors.T953 + -9.78317 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 41.1522 + -132.015 * tfactors.T9i + -1.37855 * tfactors.T913 - + 0.299896 * tfactors.T9 + -0.04382 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.0591716 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -8.66617 * tfactors.T943i + (1.0/3.0) * 26.4472 * tfactors.T923i + + -1.9222 + (5.0/3.0) * 0.0986404 * tfactors.T923 + -9.78317 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 132.015 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.37855 * tfactors.T923i - + 0.299896 + (5.0/3.0) * -0.04382 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe54_p_to_Co55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Fe54 + p --> Co55 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Co57_to_p_Fe56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Co57 --> p + Fe56 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 36.2304 + -37.1544 * tfactors.T913i + 0.950364 * tfactors.T913 + + -1.77529 * tfactors.T9 + 0.198562 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 57.6663 + -69.9498 * tfactors.T9i + -37.1625 * tfactors.T913i + 1.06776 * tfactors.T913 - + -1.31689 * tfactors.T9 + 0.122089 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -37.1544 * tfactors.T943i + (1.0/3.0) * 0.950364 * tfactors.T923i + + -1.77529 + (5.0/3.0) * 0.198562 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 69.9498 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -37.1625 * tfactors.T943i + (1.0/3.0) * 1.06776 * tfactors.T923i - + -1.31689 + (5.0/3.0) * 0.122089 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe54_He4_to_Ni58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Fe54 + He4 --> Ni58 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Co57_to_He4_Mn53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Co57 --> He4 + Mn53 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 60.2478 + -91.7628 * tfactors.T913i + 4.23027 * tfactors.T913 + + -3.31305 * tfactors.T9 + 0.271293 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 87.0081 + -82.174 * tfactors.T9i + -89.3558 * tfactors.T913i + 0.000882861 * tfactors.T913 - + -2.79327 * tfactors.T9 + 0.309057 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -91.7628 * tfactors.T943i + (1.0/3.0) * 4.23027 * tfactors.T923i + + -3.31305 + (5.0/3.0) * 0.271293 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 82.174 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -89.3558 * tfactors.T943i + (1.0/3.0) * 0.000882861 * tfactors.T923i - + -2.79327 + (5.0/3.0) * 0.309057 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe55_n_to_Fe56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Fe55 + n --> Fe56 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Co58_to_n_Co57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Co58 --> n + Co57 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ks03 + ln_set_rate = 21.7202 + -0.0955677 * tfactors.T9i + 8.06062 * tfactors.T913i + -14.4809 * tfactors.T913 + + 0.94252 * tfactors.T9 + -0.0776007 * tfactors.T953 + 6.47093 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 41.1458 + -99.4851 * tfactors.T9i + -1.03654 * tfactors.T913 - + 0.342218 * tfactors.T9 + -0.0638367 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0955677 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 8.06062 * tfactors.T943i + (1.0/3.0) * -14.4809 * tfactors.T923i + + 0.94252 + (5.0/3.0) * -0.0776007 * tfactors.T923 + 6.47093 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 99.4851 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.03654 * tfactors.T923i - + 0.342218 + (5.0/3.0) * -0.0638367 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe55_p_to_Co56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Fe55 + p --> Co56 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Co58_to_p_Fe57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Co58 --> p + Fe57 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 35.7333 + -37.1585 * tfactors.T913i + 1.66198 * tfactors.T913 + + -1.60842 * tfactors.T9 + 0.148916 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 58.0324 + -80.7059 * tfactors.T9i + -37.1663 * tfactors.T913i + 3.48503 * tfactors.T913 - + -2.56204 * tfactors.T9 + 0.272972 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -37.1585 * tfactors.T943i + (1.0/3.0) * 1.66198 * tfactors.T923i + + -1.60842 + (5.0/3.0) * 0.148916 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 80.7059 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -37.1663 * tfactors.T943i + (1.0/3.0) * 3.48503 * tfactors.T923i - + -2.56204 + (5.0/3.0) * 0.272972 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe55_He4_to_Ni59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Fe55 + He4 --> Ni59 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Co58_to_He4_Mn54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Co58 --> He4 + Mn54 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 60.7732 + -91.8012 * tfactors.T913i + 4.12067 * tfactors.T913 + + -4.13271 * tfactors.T9 + 0.450006 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 92.9296 + -77.929 * tfactors.T9i + -89.3946 * tfactors.T913i + -8.26476 * tfactors.T913 - + -0.766622 * tfactors.T9 + 0.135181 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -91.8012 * tfactors.T943i + (1.0/3.0) * 4.12067 * tfactors.T923i + + -4.13271 + (5.0/3.0) * 0.450006 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 77.929 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -89.3946 * tfactors.T943i + (1.0/3.0) * -8.26476 * tfactors.T923i - + -0.766622 + (5.0/3.0) * 0.135181 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe56_n_to_Fe57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Fe56 + n --> Fe57 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Co59_to_n_Co58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Co59 --> n + Co58 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ks03 + ln_set_rate = 35.834 + -0.0600873 * tfactors.T9i + 9.79414 * tfactors.T913i + -33.7366 * tfactors.T913 + + 2.97173 * tfactors.T9 + -0.236498 * tfactors.T953 + 11.8711 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 41.4007 + -121.312 * tfactors.T9i + -2.18418 * tfactors.T913 - + 0.328629 * tfactors.T9 + -0.0407234 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0600873 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 9.79414 * tfactors.T943i + (1.0/3.0) * -33.7366 * tfactors.T923i + + 2.97173 + (5.0/3.0) * -0.236498 * tfactors.T923 + 11.8711 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 121.312 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.18418 * tfactors.T923i - + 0.328629 + (5.0/3.0) * -0.0407234 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe56_p_to_Co57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Fe56 + p --> Co57 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Co59_to_p_Fe58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Co59 --> p + Fe58 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 36.0665 + -37.1625 * tfactors.T913i + 1.06776 * tfactors.T913 + + -1.31689 * tfactors.T9 + 0.122089 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 57.8189 + -85.4551 * tfactors.T9i + -37.17 * tfactors.T913i + 1.63285 * tfactors.T913 - + -1.16636 * tfactors.T9 + 0.0508619 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -37.1625 * tfactors.T943i + (1.0/3.0) * 1.06776 * tfactors.T923i + + -1.31689 + (5.0/3.0) * 0.122089 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 85.4551 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -37.17 * tfactors.T943i + (1.0/3.0) * 1.63285 * tfactors.T923i - + -1.16636 + (5.0/3.0) * 0.0508619 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe56_He4_to_Ni60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Fe56 + He4 --> Ni60 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Co59_to_He4_Mn55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Co59 --> He4 + Mn55 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 60.6673 + -91.8383 * tfactors.T913i + 3.63237 * tfactors.T913 + + -2.73367 * tfactors.T9 + 0.179684 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 84.7829 + -80.5671 * tfactors.T9i + -89.432 * tfactors.T913i + 5.33428 * tfactors.T913 - + -5.11461 * tfactors.T9 + 0.613808 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -91.8383 * tfactors.T943i + (1.0/3.0) * 3.63237 * tfactors.T923i + + -2.73367 + (5.0/3.0) * 0.179684 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 80.5671 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -89.432 * tfactors.T943i + (1.0/3.0) * 5.33428 * tfactors.T923i - + -5.11461 + (5.0/3.0) * 0.613808 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe57_n_to_Fe58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Fe57 + n --> Fe58 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ni56_to_p_Co55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ni56 --> p + Co55 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ks03 + ln_set_rate = 20.2493 + -0.0214497 * tfactors.T9i + 2.1643 * tfactors.T913i + -7.49584 * tfactors.T913 + + 0.656354 * tfactors.T9 + -0.0549855 * tfactors.T953 + 2.38149 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 63.1318 + -83.1473 * tfactors.T9i + -38.1053 * tfactors.T913i + -0.210947 * tfactors.T913 - + -2.68377 * tfactors.T9 + 0.355814 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0214497 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.1643 * tfactors.T943i + (1.0/3.0) * -7.49584 * tfactors.T923i + + 0.656354 + (5.0/3.0) * -0.0549855 * tfactors.T923 + 2.38149 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 83.1473 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -38.1053 * tfactors.T943i + (1.0/3.0) * -0.210947 * tfactors.T923i - + -2.68377 + (5.0/3.0) * 0.355814 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe57_p_to_Co58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Fe57 + p --> Co58 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ni56_to_He4_Fe52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ni56 --> He4 + Fe52 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 35.269 + -37.1663 * tfactors.T913i + 3.48503 * tfactors.T913 + + -2.56204 * tfactors.T9 + 0.272972 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 91.6226 + -92.801 * tfactors.T9i + -91.6819 * tfactors.T913i + -9.51885 * tfactors.T913 - + -0.533014 * tfactors.T9 + 0.0892607 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -37.1663 * tfactors.T943i + (1.0/3.0) * 3.48503 * tfactors.T923i + + -2.56204 + (5.0/3.0) * 0.272972 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 92.801 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -91.6819 * tfactors.T943i + (1.0/3.0) * -9.51885 * tfactors.T923i - + -0.533014 + (5.0/3.0) * 0.0892607 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe57_He4_to_Ni61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Fe57 + He4 --> Ni61 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ni57_to_n_Ni56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ni57 --> n + Ni56 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 66.184 + -91.8742 * tfactors.T913i + -4.07595 * tfactors.T913 + + -1.93027 * tfactors.T9 + 0.240619 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 38.3694 + -118.941 * tfactors.T9i + -1.19665 * tfactors.T913 - + 0.507179 * tfactors.T9 + -0.074604 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -91.8742 * tfactors.T943i + (1.0/3.0) * -4.07595 * tfactors.T923i + + -1.93027 + (5.0/3.0) * 0.240619 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 118.941 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.19665 * tfactors.T923i - + 0.507179 + (5.0/3.0) * -0.074604 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe58_p_to_Co59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Fe58 + p --> Co59 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ni57_to_p_Co56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ni57 --> p + Co56 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 36.2182 + -37.17 * tfactors.T913i + 1.63285 * tfactors.T913 + + -1.16636 * tfactors.T9 + 0.0508619 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 60.0839 + -85.0794 * tfactors.T9i + -38.1094 * tfactors.T913i + 2.57091 * tfactors.T913 - + -2.07795 * tfactors.T9 + 0.20757 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -37.17 * tfactors.T943i + (1.0/3.0) * 1.63285 * tfactors.T923i + + -1.16636 + (5.0/3.0) * 0.0508619 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 85.0794 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -38.1094 * tfactors.T943i + (1.0/3.0) * 2.57091 * tfactors.T923i - + -2.07795 + (5.0/3.0) * 0.20757 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe58_He4_to_Ni62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Fe58 + He4 --> Ni62 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ni57_to_He4_Fe53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ni57 --> He4 + Fe53 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 59.393 + -91.9089 * tfactors.T913i + 8.18581 * tfactors.T913 + + -6.00824 * tfactors.T9 + 0.693434 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 94.7397 + -87.7481 * tfactors.T9i + -91.7231 * tfactors.T913i + -10.1816 * tfactors.T913 - + -0.0406303 * tfactors.T9 + 0.0345056 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -91.9089 * tfactors.T943i + (1.0/3.0) * 8.18581 * tfactors.T923i + + -6.00824 + (5.0/3.0) * 0.693434 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 87.7481 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -91.7231 * tfactors.T943i + (1.0/3.0) * -10.1816 * tfactors.T923i - + -0.0406303 + (5.0/3.0) * 0.0345056 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co53_n_to_Co54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co53 + n --> Co54 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ni58_to_n_Ni57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ni58 --> n + Ni57 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 11.2037 + -1.14795 * tfactors.T913 + + 0.413083 * tfactors.T9 + -0.0515627 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 42.3391 + -141.772 * tfactors.T9i + -1.90814 * tfactors.T913 - + 0.493188 * tfactors.T9 + -0.0684633 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.14795 * tfactors.T923i + + 0.413083 + (5.0/3.0) * -0.0515627 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 141.772 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.90814 * tfactors.T923i - + 0.493188 + (5.0/3.0) * -0.0684633 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co53_He4_to_Cu57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co53 + He4 --> Cu57 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ni58_to_p_Co57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ni58 --> p + Co57 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 56.9319 + -94.0605 * tfactors.T913i + -2.61232 * tfactors.T913 + + -0.4397 * tfactors.T9 + -0.00420698 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 61.775 + -94.8373 * tfactors.T9i + -38.1133 * tfactors.T913i + 1.77414 * tfactors.T913 - + -1.48268 * tfactors.T9 + 0.121073 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -94.0605 * tfactors.T943i + (1.0/3.0) * -2.61232 * tfactors.T923i + + -0.4397 + (5.0/3.0) * -0.00420698 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 94.8373 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -38.1133 * tfactors.T943i + (1.0/3.0) * 1.77414 * tfactors.T923i - + -1.48268 + (5.0/3.0) * 0.121073 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co54_n_to_Co55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co54 + n --> Co55 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ni58_to_He4_Fe54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ni58 --> He4 + Fe54 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 14.3761 + 0.433187 * tfactors.T913 + + 0.0888642 * tfactors.T9 + -0.0315521 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 85.2327 + -74.2705 * tfactors.T9i + -91.7628 * tfactors.T913i + 4.23027 * tfactors.T913 - + -3.31305 * tfactors.T9 + 0.271293 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.433187 * tfactors.T923i + + 0.0888642 + (5.0/3.0) * -0.0315521 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 74.2705 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -91.7628 * tfactors.T943i + (1.0/3.0) * 4.23027 * tfactors.T923i - + -3.31305 + (5.0/3.0) * 0.271293 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co54_He4_to_Cu58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co54 + He4 --> Cu58 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ni59_to_n_Ni58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ni59 --> n + Ni58 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 55.6899 + -94.1012 * tfactors.T913i + 7.09095 * tfactors.T913 + + -5.85934 * tfactors.T9 + 0.728369 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 30.9258 + -104.3 * tfactors.T9i + -11.785 * tfactors.T913i + 19.5347 * tfactors.T913 - + -0.857179 * tfactors.T9 + 0.00111653 * tfactors.T953 + -7.85642 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -94.1012 * tfactors.T943i + (1.0/3.0) * 7.09095 * tfactors.T923i + + -5.85934 + (5.0/3.0) * 0.728369 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 104.3 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -11.785 * tfactors.T943i + (1.0/3.0) * 19.5347 * tfactors.T923i - + -0.857179 + (5.0/3.0) * 0.00111653 * tfactors.T923 + -7.85642 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co55_n_to_Co56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co55 + n --> Co56 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ni59_to_p_Co58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ni59 --> p + Co58 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 17.065 + -1.86357 * tfactors.T913 + + 0.616591 * tfactors.T9 + -0.0839313 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 60.0091 + -99.7842 * tfactors.T9i + -38.1171 * tfactors.T913i + 1.68645 * tfactors.T913 - + -1.51404 * tfactors.T9 + 0.126766 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.86357 * tfactors.T923i + + 0.616591 + (5.0/3.0) * -0.0839313 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 99.7842 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -38.1171 * tfactors.T943i + (1.0/3.0) * 1.68645 * tfactors.T923i - + -1.51404 + (5.0/3.0) * 0.126766 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co55_p_to_Ni56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co55 + p --> Ni56 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ni59_to_He4_Fe55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ni59 --> He4 + Fe55 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 37.3736 + -38.1053 * tfactors.T913i + -0.210947 * tfactors.T913 + + -2.68377 * tfactors.T9 + 0.355814 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 85.76 + -70.8014 * tfactors.T9i + -91.8012 * tfactors.T913i + 4.12067 * tfactors.T913 - + -4.13271 * tfactors.T9 + 0.450006 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -38.1053 * tfactors.T943i + (1.0/3.0) * -0.210947 * tfactors.T923i + + -2.68377 + (5.0/3.0) * 0.355814 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 70.8014 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -91.8012 * tfactors.T943i + (1.0/3.0) * 4.12067 * tfactors.T923i - + -4.13271 + (5.0/3.0) * 0.450006 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co55_He4_to_Cu59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co55 + He4 --> Cu59 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ni60_to_n_Ni59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ni60 --> n + Ni59 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 65.2921 + -94.1404 * tfactors.T913i + -2.62786 * tfactors.T913 + + -2.12066 * tfactors.T9 + 0.237999 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 50.6431 + -132.266 * tfactors.T9i + 9.92411 * tfactors.T913i + -20.503 * tfactors.T913 - + 1.39981 * tfactors.T9 + -0.101641 * tfactors.T953 + 10.082 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -94.1404 * tfactors.T943i + (1.0/3.0) * -2.62786 * tfactors.T923i + + -2.12066 + (5.0/3.0) * 0.237999 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 132.266 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 9.92411 * tfactors.T943i + (1.0/3.0) * -20.503 * tfactors.T923i - + 1.39981 + (5.0/3.0) * -0.101641 * tfactors.T923 + 10.082 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co56_n_to_Co57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co56 + n --> Co57 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ni60_to_p_Co59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ni60 --> p + Co59 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 17.3552 + -1.37855 * tfactors.T913 + + 0.299896 * tfactors.T9 + -0.04382 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 61.717 + -110.622 * tfactors.T9i + -38.1208 * tfactors.T913i + 2.42609 * tfactors.T913 - + -1.5885 * tfactors.T9 + 0.110313 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.37855 * tfactors.T923i + + 0.299896 + (5.0/3.0) * -0.04382 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 110.622 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -38.1208 * tfactors.T943i + (1.0/3.0) * 2.42609 * tfactors.T923i - + -1.5885 + (5.0/3.0) * 0.110313 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co56_p_to_Ni57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co56 + p --> Ni57 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ni60_to_He4_Fe56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ni60 --> He4 + Fe56 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 35.5937 + -38.1094 * tfactors.T913i + 2.57091 * tfactors.T913 + + -2.07795 * tfactors.T9 + 0.20757 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 85.6559 + -73.0113 * tfactors.T9i + -91.8383 * tfactors.T913i + 3.63237 * tfactors.T913 - + -2.73367 * tfactors.T9 + 0.179684 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -38.1094 * tfactors.T943i + (1.0/3.0) * 2.57091 * tfactors.T923i + + -2.07795 + (5.0/3.0) * 0.20757 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 73.0113 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -91.8383 * tfactors.T943i + (1.0/3.0) * 3.63237 * tfactors.T923i - + -2.73367 + (5.0/3.0) * 0.179684 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co56_He4_to_Cu60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co56 + He4 --> Cu60 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ni61_to_n_Ni60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ni61 --> n + Ni60 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 65.4774 + -94.1784 * tfactors.T913i + -1.94118 * tfactors.T913 + + -2.35306 * tfactors.T9 + 0.265186 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 27.8859 + -90.6506 * tfactors.T9i + -9.46323 * tfactors.T913i + 19.9252 * tfactors.T913 - + -0.985724 * tfactors.T9 + 0.0164222 * tfactors.T953 + -7.25824 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -94.1784 * tfactors.T943i + (1.0/3.0) * -1.94118 * tfactors.T923i + + -2.35306 + (5.0/3.0) * 0.265186 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 90.6506 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -9.46323 * tfactors.T943i + (1.0/3.0) * 19.9252 * tfactors.T923i - + -0.985724 + (5.0/3.0) * 0.0164222 * tfactors.T923 + -7.25824 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co57_n_to_Co58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co57 + n --> Co58 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ni61_to_He4_Fe57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ni61 --> He4 + Fe57 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 16.9961 + -1.03654 * tfactors.T913 + + 0.342218 * tfactors.T9 + -0.0638367 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 90.4812 + -75.031 * tfactors.T9i + -91.8742 * tfactors.T913i + -4.07595 * tfactors.T913 - + -1.93027 * tfactors.T9 + 0.240619 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.03654 * tfactors.T923i + + 0.342218 + (5.0/3.0) * -0.0638367 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 75.031 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -91.8742 * tfactors.T943i + (1.0/3.0) * -4.07595 * tfactors.T923i - + -1.93027 + (5.0/3.0) * 0.240619 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co57_p_to_Ni58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co57 + p --> Ni58 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ni62_to_n_Ni61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ni62 --> n + Ni61 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 36.0159 + -38.1133 * tfactors.T913i + 1.77414 * tfactors.T913 + + -1.48268 * tfactors.T9 + 0.121073 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 36.808 + -122.947 * tfactors.T9i + -2.82482 * tfactors.T913i + 7.69552 * tfactors.T913 - + -0.605244 * tfactors.T9 + 0.0243914 * tfactors.T953 + -1.62147 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -38.1133 * tfactors.T943i + (1.0/3.0) * 1.77414 * tfactors.T923i + + -1.48268 + (5.0/3.0) * 0.121073 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 122.947 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.82482 * tfactors.T943i + (1.0/3.0) * 7.69552 * tfactors.T923i - + -0.605244 + (5.0/3.0) * 0.0243914 * tfactors.T923 + -1.62147 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co57_He4_to_Cu61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co57 + He4 --> Cu61 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ni62_to_He4_Fe58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ni62 --> He4 + Fe58 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 63.6068 + -94.2152 * tfactors.T913i + 0.976269 * tfactors.T913 + + -2.37283 * tfactors.T9 + 0.195501 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 84.385 + -81.4356 * tfactors.T9i + -91.9089 * tfactors.T913i + 8.18581 * tfactors.T913 - + -6.00824 * tfactors.T9 + 0.693434 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -94.2152 * tfactors.T943i + (1.0/3.0) * 0.976269 * tfactors.T923i + + -2.37283 + (5.0/3.0) * 0.195501 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 81.4356 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -91.9089 * tfactors.T943i + (1.0/3.0) * 8.18581 * tfactors.T923i - + -6.00824 + (5.0/3.0) * 0.693434 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co58_n_to_Co59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co58 + n --> Co59 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ni63_to_n_Ni62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ni63 --> n + Ni62 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 18.1906 + -2.18418 * tfactors.T913 + + 0.328629 * tfactors.T9 + -0.0407234 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 28.7618 + -79.3664 * tfactors.T9i + -1.2799 * tfactors.T913i + 10.7874 * tfactors.T913 - + -0.552819 * tfactors.T9 + -0.0106439 * tfactors.T953 + -2.03486 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -2.18418 * tfactors.T923i + + 0.328629 + (5.0/3.0) * -0.0407234 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 79.3664 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.2799 * tfactors.T943i + (1.0/3.0) * 10.7874 * tfactors.T923i - + -0.552819 + (5.0/3.0) * -0.0106439 * tfactors.T923 + -2.03486 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co58_p_to_Ni59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co58 + p --> Ni59 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ni64_to_n_Ni63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ni64 --> n + Ni63 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 36.1058 + -38.1171 * tfactors.T913i + 1.68645 * tfactors.T913 + + -1.51404 * tfactors.T9 + 0.126766 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 53.9025 + -112.129 * tfactors.T9i + 7.01558 * tfactors.T913i + -23.8529 * tfactors.T913 - + 2.50513 * tfactors.T9 + -0.227209 * tfactors.T953 + 9.15703 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -38.1171 * tfactors.T943i + (1.0/3.0) * 1.68645 * tfactors.T923i + + -1.51404 + (5.0/3.0) * 0.126766 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 112.129 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 7.01558 * tfactors.T943i + (1.0/3.0) * -23.8529 * tfactors.T923i - + 2.50513 + (5.0/3.0) * -0.227209 * tfactors.T923 + 9.15703 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co58_He4_to_Cu62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co58 + He4 --> Cu62 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cu57_to_p_Ni56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cu57 --> p + Ni56 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 63.7079 + -94.2508 * tfactors.T913i + 1.47146 * tfactors.T913 + + -2.87996 * tfactors.T9 + 0.26554 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // wienr - ln_set_rate = 18.6884 + -12.8235 * tfactors.T9i + -0.0409988 * tfactors.T913 - + 0.0619696 * tfactors.T9 + -0.0172498 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -94.2508 * tfactors.T943i + (1.0/3.0) * 1.47146 * tfactors.T923i + + -2.87996 + (5.0/3.0) * 0.26554 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 12.8235 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.0409988 * tfactors.T923i - + 0.0619696 + (5.0/3.0) * -0.0172498 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co59_p_to_Ni60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // wienr - ln_set_rate = 9.42903 + -11.9135 * tfactors.T9i + -0.0409988 * tfactors.T913 - + 0.0619696 * tfactors.T9 + -0.0172498 * tfactors.T953; + // Co59 + p --> Ni60 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 11.9135 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.0409988 * tfactors.T923i - + 0.0619696 + (5.0/3.0) * -0.0172498 * tfactors.T923; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 35.957 + -38.1208 * tfactors.T913i + 2.42609 * tfactors.T913 + + -1.5885 * tfactors.T9 + 0.110313 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // wienn - ln_set_rate = 43.8092 + -8.05352 * tfactors.T9i + -39.3 * tfactors.T913i + -0.0409988 * tfactors.T913 - + 0.0619696 * tfactors.T9 + -0.0172498 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -38.1208 * tfactors.T943i + (1.0/3.0) * 2.42609 * tfactors.T923i + + -1.5885 + (5.0/3.0) * 0.110313 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 8.05352 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.3 * tfactors.T943i + (1.0/3.0) * -0.0409988 * tfactors.T923i - + 0.0619696 + (5.0/3.0) * -0.0172498 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co59_He4_to_Cu63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // wienr - ln_set_rate = 30.7567 + -29.2535 * tfactors.T9i + -0.0409988 * tfactors.T913 - + 0.0619696 * tfactors.T9 + -0.0172498 * tfactors.T953; + // Co59 + He4 --> Cu63 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 29.2535 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.0409988 * tfactors.T923i - + 0.0619696 + (5.0/3.0) * -0.0172498 * tfactors.T923; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 63.425 + -94.2852 * tfactors.T913i + 1.64751 * tfactors.T913 + + -2.1637 * tfactors.T9 + 0.119598 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // wienr - ln_set_rate = 30.9323 + -27.8535 * tfactors.T9i + -0.0409988 * tfactors.T913 - + 0.0619696 * tfactors.T9 + -0.0172498 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -94.2852 * tfactors.T943i + (1.0/3.0) * 1.64751 * tfactors.T923i + + -2.1637 + (5.0/3.0) * 0.119598 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 27.8535 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.0409988 * tfactors.T923i - + 0.0619696 + (5.0/3.0) * -0.0172498 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni56_n_to_Ni57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni56 + n --> Ni57 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cu57_to_He4_Co53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cu57 --> He4 + Co53 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 16.0765 + -1.19665 * tfactors.T913 + + 0.507179 * tfactors.T9 + -0.074604 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 82.608 + -82.2721 * tfactors.T9i + -94.0605 * tfactors.T913i + -2.61232 * tfactors.T913 - + -0.4397 * tfactors.T9 + -0.00420698 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.19665 * tfactors.T923i + + 0.507179 + (5.0/3.0) * -0.074604 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 82.2721 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -94.0605 * tfactors.T943i + (1.0/3.0) * -2.61232 * tfactors.T923i - + -0.4397 + (5.0/3.0) * -0.00420698 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni56_p_to_Cu57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni56 + p --> Cu57 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cu58_to_n_Cu57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cu58 --> n + Cu57 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // wienr + ln_set_rate = -3.60454 + -4.77 * tfactors.T9i + -0.0409988 * tfactors.T913 + + 0.0619696 * tfactors.T9 + -0.0172498 * tfactors.T953 + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 34.7381 + -144.172 * tfactors.T9i + -0.954817 * tfactors.T913 - + 0.394641 * tfactors.T9 + -0.0489206 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 4.77 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.0409988 * tfactors.T923i + + 0.0619696 + (5.0/3.0) * -0.0172498 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 144.172 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.954817 * tfactors.T923i - + 0.394641 + (5.0/3.0) * -0.0489206 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // wienr + ln_set_rate = -12.8639 + -3.86 * tfactors.T9i + -0.0409988 * tfactors.T913 + + 0.0619696 * tfactors.T9 + -0.0172498 * tfactors.T953 + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.86 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.0409988 * tfactors.T923i + + 0.0619696 + (5.0/3.0) * -0.0172498 * tfactors.T923 + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cu58_to_p_Ni57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Cu58 --> p + Ni57 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // wienn + ln_set_rate = 21.5163 + -39.3 * tfactors.T913i + -0.0409988 * tfactors.T913 + + 0.0619696 * tfactors.T9 + -0.0172498 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 61.6936 + -33.294 * tfactors.T9i + -39.0487 * tfactors.T913i + -0.339241 * tfactors.T913 - + -2.87307 * tfactors.T9 + 0.382369 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.3 * tfactors.T943i + (1.0/3.0) * -0.0409988 * tfactors.T923i + + 0.0619696 + (5.0/3.0) * -0.0172498 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 33.294 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.0487 * tfactors.T943i + (1.0/3.0) * -0.339241 * tfactors.T923i - + -2.87307 + (5.0/3.0) * 0.382369 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // wienr + ln_set_rate = 8.46379 + -21.2 * tfactors.T9i + -0.0409988 * tfactors.T913 + + 0.0619696 * tfactors.T9 + -0.0172498 * tfactors.T953 + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 21.2 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.0409988 * tfactors.T923i + + 0.0619696 + (5.0/3.0) * -0.0172498 * tfactors.T923 + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cu58_to_He4_Co54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Cu58 --> He4 + Co54 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // wienr + ln_set_rate = 8.63941 + -19.8 * tfactors.T9i + -0.0409988 * tfactors.T913 + + 0.0619696 * tfactors.T9 + -0.0172498 * tfactors.T953 + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 79.5762 + -70.5255 * tfactors.T9i + -94.1012 * tfactors.T913i + 7.09095 * tfactors.T913 - + -5.85934 * tfactors.T9 + 0.728369 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 19.8 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.0409988 * tfactors.T923i + + 0.0619696 + (5.0/3.0) * -0.0172498 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 70.5255 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -94.1012 * tfactors.T943i + (1.0/3.0) * 7.09095 * tfactors.T923i - + -5.85934 + (5.0/3.0) * 0.728369 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni56_He4_to_Zn60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni56 + He4 --> Zn60 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cu59_to_n_Cu58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cu59 --> n + Cu58 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 61.0733 + -96.4898 * tfactors.T913i + 6.47209 * tfactors.T913 + + -5.2029 * tfactors.T9 + 0.533391 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 37.1783 + -148.149 * tfactors.T9i + -0.307504 * tfactors.T913 - + 0.342948 * tfactors.T9 + -0.0507762 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -96.4898 * tfactors.T943i + (1.0/3.0) * 6.47209 * tfactors.T923i + + -5.2029 + (5.0/3.0) * 0.533391 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 148.149 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.307504 * tfactors.T923i - + 0.342948 + (5.0/3.0) * -0.0507762 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni57_n_to_Ni58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni57 + n --> Ni58 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cu59_to_p_Ni58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cu59 --> p + Ni58 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 17.2731 + -1.90814 * tfactors.T913 + + 0.493188 * tfactors.T9 + -0.0684633 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // si13n - ln_set_rate = 58.96 + -39.67 * tfactors.T9i + -39.0526 * tfactors.T913i + 1.0436 * tfactors.T913 - + -2.10834 * tfactors.T9 + 0.239559 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.90814 * tfactors.T923i + + 0.493188 + (5.0/3.0) * -0.0684633 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 39.67 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.0526 * tfactors.T943i + (1.0/3.0) * 1.0436 * tfactors.T923i - + -2.10834 + (5.0/3.0) * 0.239559 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni57_p_to_Cu58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni57 + p --> Cu58 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cu59_to_He4_Co55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cu59 --> He4 + Co55 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 37.7262 + -39.0487 * tfactors.T913i + -0.339241 * tfactors.T913 + + -2.87307 * tfactors.T9 + 0.382369 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 90.972 + -55.1745 * tfactors.T9i + -94.1404 * tfactors.T913i + -2.62786 * tfactors.T913 - + -2.12066 * tfactors.T9 + 0.237999 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.0487 * tfactors.T943i + (1.0/3.0) * -0.339241 * tfactors.T923i + + -2.87307 + (5.0/3.0) * 0.382369 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 55.1745 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -94.1404 * tfactors.T943i + (1.0/3.0) * -2.62786 * tfactors.T923i - + -2.12066 + (5.0/3.0) * 0.237999 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni57_He4_to_Zn61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni57 + He4 --> Zn61 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cu60_to_n_Cu59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cu60 --> n + Cu59 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 61.4873 + -96.5275 * tfactors.T913i + 5.42001 * tfactors.T913 + + -3.93988 * tfactors.T9 + 0.358068 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 38.1923 + -116.72 * tfactors.T9i + -0.952104 * tfactors.T913 - + 0.520444 * tfactors.T9 + -0.0746175 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -96.5275 * tfactors.T943i + (1.0/3.0) * 5.42001 * tfactors.T923i + + -3.93988 + (5.0/3.0) * 0.358068 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 116.72 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.952104 * tfactors.T923i - + 0.520444 + (5.0/3.0) * -0.0746175 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni58_n_to_Ni59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni58 + n --> Ni59 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cu60_to_p_Ni59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cu60 --> p + Ni59 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ks03 + ln_set_rate = 8.63197 + 0.13279 * tfactors.T9i + -11.785 * tfactors.T913i + 19.5347 * tfactors.T913 + + -0.857179 * tfactors.T9 + 0.00111653 * tfactors.T953 + -9.35642 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 59.5059 + -51.9582 * tfactors.T9i + -39.0563 * tfactors.T913i + 2.1481 * tfactors.T913 - + -1.76507 * tfactors.T9 + 0.1629 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.13279 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -11.785 * tfactors.T943i + (1.0/3.0) * 19.5347 * tfactors.T923i + + -0.857179 + (5.0/3.0) * 0.00111653 * tfactors.T923 + -9.35642 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 51.9582 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.0563 * tfactors.T943i + (1.0/3.0) * 2.1481 * tfactors.T923i - + -1.76507 + (5.0/3.0) * 0.1629 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni58_p_to_Cu59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni58 + p --> Cu59 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cu60_to_He4_Co56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cu60 --> He4 + Co56 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // si13n + ln_set_rate = 36.6662 + -39.0526 * tfactors.T913i + 1.0436 * tfactors.T913 + + -2.10834 * tfactors.T9 + 0.239559 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 91.0538 + -54.8853 * tfactors.T9i + -94.1784 * tfactors.T913i + -1.94118 * tfactors.T913 - + -2.35306 * tfactors.T9 + 0.265186 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.0526 * tfactors.T943i + (1.0/3.0) * 1.0436 * tfactors.T923i + + -2.10834 + (5.0/3.0) * 0.239559 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 54.8853 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -94.1784 * tfactors.T943i + (1.0/3.0) * -1.94118 * tfactors.T923i - + -2.35306 + (5.0/3.0) * 0.265186 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni58_He4_to_Zn62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni58 + He4 --> Zn62 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cu61_to_n_Cu60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cu61 --> n + Cu60 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 62.8584 + -96.5638 * tfactors.T913i + 2.81593 * tfactors.T913 + + -2.43398 * tfactors.T9 + 0.140051 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 39.249 + -135.899 * tfactors.T9i + -0.586034 * tfactors.T913 - + 0.320768 * tfactors.T9 + -0.0484658 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -96.5638 * tfactors.T943i + (1.0/3.0) * 2.81593 * tfactors.T923i + + -2.43398 + (5.0/3.0) * 0.140051 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 135.899 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.586034 * tfactors.T923i - + 0.320768 + (5.0/3.0) * -0.0484658 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni59_n_to_Ni60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni59 + n --> Ni60 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cu61_to_p_Ni60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cu61 --> p + Ni60 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ks03 + ln_set_rate = 25.5762 + -0.110079 * tfactors.T9i + 9.92411 * tfactors.T913i + -20.503 * tfactors.T913 + + 1.39981 * tfactors.T9 + -0.101641 * tfactors.T953 + 8.58204 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // si13n - ln_set_rate = 59.2863 + -55.7078 * tfactors.T9i + -39.06 * tfactors.T913i + 1.28239 * tfactors.T913 - + -1.76356 * tfactors.T9 + 0.18327 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.110079 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 9.92411 * tfactors.T943i + (1.0/3.0) * -20.503 * tfactors.T923i + + 1.39981 + (5.0/3.0) * -0.101641 * tfactors.T923 + 8.58204 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 55.7078 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.06 * tfactors.T943i + (1.0/3.0) * 1.28239 * tfactors.T923i - + -1.76356 + (5.0/3.0) * 0.18327 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni59_p_to_Cu60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni59 + p --> Cu60 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cu61_to_He4_Co57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cu61 --> He4 + Co57 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 36.0485 + -39.0563 * tfactors.T913i + 2.1481 * tfactors.T913 + + -1.76507 * tfactors.T9 + 0.1629 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 89.2903 + -58.7692 * tfactors.T9i + -94.2152 * tfactors.T913i + 0.976269 * tfactors.T913 - + -2.37283 * tfactors.T9 + 0.195501 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.0563 * tfactors.T943i + (1.0/3.0) * 2.1481 * tfactors.T923i + + -1.76507 + (5.0/3.0) * 0.1629 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 58.7692 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -94.2152 * tfactors.T943i + (1.0/3.0) * 0.976269 * tfactors.T923i - + -2.37283 + (5.0/3.0) * 0.195501 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni59_He4_to_Zn63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni59 + He4 --> Zn63 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cu62_to_n_Cu61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cu62 --> n + Cu61 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 63.0533 + -96.5991 * tfactors.T913i + 2.66136 * tfactors.T913 + + -2.36841 * tfactors.T9 + 0.148474 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 40.3353 + -103.112 * tfactors.T9i + -0.404348 * tfactors.T913 - + 0.218353 * tfactors.T9 + -0.0562018 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -96.5991 * tfactors.T943i + (1.0/3.0) * 2.66136 * tfactors.T923i + + -2.36841 + (5.0/3.0) * 0.148474 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 103.112 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.404348 * tfactors.T923i - + 0.218353 + (5.0/3.0) * -0.0562018 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni60_n_to_Ni61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni60 + n --> Ni61 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cu62_to_p_Ni61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cu62 --> p + Ni61 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ks03 + ln_set_rate = 5.59123 + 0.0884361 * tfactors.T9i + -9.46323 * tfactors.T913i + 19.9252 * tfactors.T913 + + -0.985724 * tfactors.T9 + 0.0164222 * tfactors.T953 + -8.75824 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // si13n - ln_set_rate = 61.0341 + -68.0711 * tfactors.T9i + -39.0635 * tfactors.T913i + 2.03251 * tfactors.T913 - + -1.66085 * tfactors.T9 + 0.123527 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.0884361 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -9.46323 * tfactors.T943i + (1.0/3.0) * 19.9252 * tfactors.T923i + + -0.985724 + (5.0/3.0) * 0.0164222 * tfactors.T923 + -8.75824 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 68.0711 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.0635 * tfactors.T943i + (1.0/3.0) * 2.03251 * tfactors.T923i - + -1.66085 + (5.0/3.0) * 0.123527 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni60_p_to_Cu61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni60 + p --> Cu61 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cu62_to_He4_Co58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cu62 --> He4 + Co58 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // si13n + ln_set_rate = 36.9916 + -39.06 * tfactors.T913i + 1.28239 * tfactors.T913 + + -1.76356 * tfactors.T9 + 0.18327 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 89.2108 + -62.396 * tfactors.T9i + -94.2508 * tfactors.T913i + 1.47146 * tfactors.T913 - + -2.87996 * tfactors.T9 + 0.26554 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.06 * tfactors.T943i + (1.0/3.0) * 1.28239 * tfactors.T923i + + -1.76356 + (5.0/3.0) * 0.18327 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 62.396 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -94.2508 * tfactors.T943i + (1.0/3.0) * 1.47146 * tfactors.T923i - + -2.87996 + (5.0/3.0) * 0.26554 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni60_He4_to_Zn64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni60 + He4 --> Zn64 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cu63_to_n_Cu62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cu63 --> n + Cu62 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 64.093 + -96.6332 * tfactors.T913i + 1.06508 * tfactors.T913 + + -1.52905 * tfactors.T9 + 0.0316173 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 40.4014 + -125.944 * tfactors.T9i + -0.723484 * tfactors.T913 - + 0.215177 * tfactors.T9 + -0.0473749 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -96.6332 * tfactors.T943i + (1.0/3.0) * 1.06508 * tfactors.T923i + + -1.52905 + (5.0/3.0) * 0.0316173 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 125.944 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.723484 * tfactors.T923i - + 0.215177 + (5.0/3.0) * -0.0473749 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni61_n_to_Ni62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni61 + n --> Ni62 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cu63_to_p_Ni62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cu63 --> p + Ni62 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ks03 + ln_set_rate = 11.7403 + 0.0180561 * tfactors.T9i + -2.82482 * tfactors.T913i + 7.69552 * tfactors.T913 + + -0.605244 * tfactors.T9 + 0.0243914 * tfactors.T953 + -3.12147 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // si13n - ln_set_rate = 59.8332 + -71.0475 * tfactors.T9i + -39.0669 * tfactors.T913i + 1.33156 * tfactors.T913 - + -1.30043 * tfactors.T9 + 0.0961101 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.0180561 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.82482 * tfactors.T943i + (1.0/3.0) * 7.69552 * tfactors.T923i + + -0.605244 + (5.0/3.0) * 0.0243914 * tfactors.T923 + -3.12147 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 71.0475 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.0669 * tfactors.T943i + (1.0/3.0) * 1.33156 * tfactors.T923i - + -1.30043 + (5.0/3.0) * 0.0961101 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni61_p_to_Cu62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni61 + p --> Cu62 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cu63_to_He4_Co59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cu63 --> He4 + Co59 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // si13n + ln_set_rate = 37.065 + -39.0635 * tfactors.T913i + 2.03251 * tfactors.T913 + + -1.66085 * tfactors.T9 + 0.123527 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 89.1118 + -67.0281 * tfactors.T9i + -94.2852 * tfactors.T913i + 1.64751 * tfactors.T913 - + -2.1637 * tfactors.T9 + 0.119598 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.0635 * tfactors.T943i + (1.0/3.0) * 2.03251 * tfactors.T923i + + -1.66085 + (5.0/3.0) * 0.123527 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 67.0281 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -94.2852 * tfactors.T943i + (1.0/3.0) * 1.64751 * tfactors.T923i - + -2.1637 + (5.0/3.0) * 0.119598 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni61_He4_to_Zn65_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni61 + He4 --> Zn65 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cu64_to_n_Cu63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cu64 --> n + Cu63 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 63.8838 + -96.6663 * tfactors.T913i + 2.54794 * tfactors.T913 + + -2.65791 * tfactors.T9 + 0.204247 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 51.3753 + -91.9819 * tfactors.T9i + 11.3982 * tfactors.T913i + -24.4222 * tfactors.T913 - + 1.95364 * tfactors.T9 + -0.18693 * tfactors.T953 + 11.7458 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -96.6663 * tfactors.T943i + (1.0/3.0) * 2.54794 * tfactors.T923i + + -2.65791 + (5.0/3.0) * 0.204247 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 91.9819 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 11.3982 * tfactors.T943i + (1.0/3.0) * -24.4222 * tfactors.T923i - + 1.95364 + (5.0/3.0) * -0.18693 * tfactors.T923 + 11.7458 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni62_n_to_Ni63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni62 + n --> Ni63 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cu64_to_p_Ni63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cu64 --> p + Ni63 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ks03 + ln_set_rate = 5.77316 + -0.0229255 * tfactors.T9i + -1.2799 * tfactors.T913i + 10.7874 * tfactors.T913 + + -0.552819 * tfactors.T9 + -0.0106439 * tfactors.T953 + -3.53486 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 63.5721 + -83.5601 * tfactors.T9i + -39.0703 * tfactors.T913i + -4.4238 * tfactors.T913 - + -0.152239 * tfactors.T9 + 0.0171937 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0229255 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.2799 * tfactors.T943i + (1.0/3.0) * 10.7874 * tfactors.T923i + + -0.552819 + (5.0/3.0) * -0.0106439 * tfactors.T923 + -3.53486 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 83.5601 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.0703 * tfactors.T943i + (1.0/3.0) * -4.4238 * tfactors.T923i - + -0.152239 + (5.0/3.0) * 0.0171937 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni62_p_to_Cu63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni62 + p --> Cu63 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cu65_to_n_Cu64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cu65 --> n + Cu64 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // si13n + ln_set_rate = 37.5377 + -39.0669 * tfactors.T913i + 1.33156 * tfactors.T913 + + -1.30043 * tfactors.T9 + 0.0961101 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 42.2436 + -115.009 * tfactors.T9i + -2.31276 * tfactors.T913 - + 0.434599 * tfactors.T9 + -0.0715678 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.0669 * tfactors.T943i + (1.0/3.0) * 1.33156 * tfactors.T923i + + -1.30043 + (5.0/3.0) * 0.0961101 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 115.009 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.31276 * tfactors.T923i - + 0.434599 + (5.0/3.0) * -0.0715678 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni62_He4_to_Zn66_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni62 + He4 --> Zn66 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Cu65_to_p_Ni64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cu65 --> p + Ni64 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 64.6647 + -96.6983 * tfactors.T913i + 0.80536 * tfactors.T913 + + -1.39385 * tfactors.T9 + 0.000644409 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // si13n - ln_set_rate = 59.9637 + -86.4924 * tfactors.T9i + -39.0735 * tfactors.T913i + 1.76823 * tfactors.T913 - + -1.38855 * tfactors.T9 + 0.0515179 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -96.6983 * tfactors.T943i + (1.0/3.0) * 0.80536 * tfactors.T923i + + -1.39385 + (5.0/3.0) * 0.000644409 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 86.4924 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.0735 * tfactors.T943i + (1.0/3.0) * 1.76823 * tfactors.T923i - + -1.38855 + (5.0/3.0) * 0.0515179 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni63_n_to_Ni64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni63 + n --> Ni64 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Zn59_to_p_Cu58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Zn59 --> p + Cu58 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ks03 + ln_set_rate = 29.5272 + -0.0604252 * tfactors.T9i + 7.01558 * tfactors.T913i + -23.8529 * tfactors.T913 + + 2.50513 * tfactors.T9 + -0.227209 * tfactors.T953 + 7.65703 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // nfisn - ln_set_rate = 58.3404 + -31.0762 * tfactors.T9i + -209.408 * tfactors.T913i + 176.007 * tfactors.T913 - + -6.98867 * tfactors.T9 + 0.295678 * tfactors.T953 + -109.048 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0604252 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 7.01558 * tfactors.T943i + (1.0/3.0) * -23.8529 * tfactors.T923i + + 2.50513 + (5.0/3.0) * -0.227209 * tfactors.T923 + 7.65703 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 31.0762 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -209.408 * tfactors.T943i + (1.0/3.0) * 176.007 * tfactors.T923i - + -6.98867 + (5.0/3.0) * 0.295678 * tfactors.T923 + -109.048 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni63_p_to_Cu64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // nfisn - ln_set_rate = 16.5896 + -32.4274 * tfactors.T9i + -142.882 * tfactors.T913i + 138.901 * tfactors.T913 - + -5.7482 * tfactors.T9 + 0.223571 * tfactors.T953 + -83.1553 * tfactors.lnT9; + // Ni63 + p --> Cu64 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 32.4274 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -142.882 * tfactors.T943i + (1.0/3.0) * 138.901 * tfactors.T923i - + -5.7482 + (5.0/3.0) * 0.223571 * tfactors.T923 + -83.1553 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 40.2954 + -39.0703 * tfactors.T913i + -4.4238 * tfactors.T913 + + -0.152239 * tfactors.T9 + 0.0171937 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // nfisn - ln_set_rate = 56.5341 + -33.5916 * tfactors.T9i + -36.2109 * tfactors.T913i + -10.0201 * tfactors.T913 - + 0.882265 * tfactors.T9 + -0.0954725 * tfactors.T953 + 4.78794 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.0703 * tfactors.T943i + (1.0/3.0) * -4.4238 * tfactors.T923i + + -0.152239 + (5.0/3.0) * 0.0171937 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 33.5916 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.2109 * tfactors.T943i + (1.0/3.0) * -10.0201 * tfactors.T923i - + 0.882265 + (5.0/3.0) * -0.0954725 * tfactors.T923 + 4.78794 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni64_p_to_Cu65_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni64 + p --> Cu65 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Zn59_to_p_Ni58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Zn59 --> p + Ni58 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // si13n + ln_set_rate = 37.6675 + -39.0735 * tfactors.T913i + 1.76823 * tfactors.T913 + + -1.38855 * tfactors.T9 + 0.0515179 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // wc12w - ln_set_rate = -5.57052; - amrex::ignore_unused(tfactors); + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.0735 * tfactors.T943i + (1.0/3.0) * 1.76823 * tfactors.T923i + + -1.38855 + (5.0/3.0) * 0.0515179 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu57_n_to_Cu58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu57 + n --> Cu58 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Zn60_to_n_Zn59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Zn60 --> n + Zn59 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 10.7707 + -0.954817 * tfactors.T913 + + 0.394641 * tfactors.T9 + -0.0489206 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 33.8125 + -174.051 * tfactors.T9i + 0.65324 * tfactors.T913 - + -0.0259697 * tfactors.T9 + -0.00407906 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.954817 * tfactors.T923i + + 0.394641 + (5.0/3.0) * -0.0489206 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 174.051 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.65324 * tfactors.T923i - + -0.0259697 + (5.0/3.0) * -0.00407906 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu58_n_to_Cu59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu58 + n --> Cu59 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Zn60_to_p_Cu59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Zn60 --> p + Cu59 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 13.7859 + -0.307504 * tfactors.T913 + + 0.342948 * tfactors.T9 + -0.0507762 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 62.2929 + -59.4094 * tfactors.T9i + -39.9808 * tfactors.T913i + 1.17311 * tfactors.T913 - + -2.90486 * tfactors.T9 + 0.339644 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.307504 * tfactors.T923i + + 0.342948 + (5.0/3.0) * -0.0507762 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 59.4094 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.9808 * tfactors.T943i + (1.0/3.0) * 1.17311 * tfactors.T923i - + -2.90486 + (5.0/3.0) * 0.339644 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu58_p_to_Zn59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu58 + p --> Zn59 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Zn60_to_He4_Ni56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Zn60 --> He4 + Ni56 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // nfisn + ln_set_rate = -6.80287 + 1.08057 * tfactors.T9i + -142.882 * tfactors.T913i + 138.901 * tfactors.T913 + + -5.7482 * tfactors.T9 + 0.223571 * tfactors.T953 + -84.6553 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 86.0619 + -31.4367 * tfactors.T9i + -96.4898 * tfactors.T913i + 6.47209 * tfactors.T913 - + -5.2029 * tfactors.T9 + 0.533391 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -1.08057 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -142.882 * tfactors.T943i + (1.0/3.0) * 138.901 * tfactors.T923i + + -5.7482 + (5.0/3.0) * 0.223571 * tfactors.T923 + -84.6553 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 31.4367 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -96.4898 * tfactors.T943i + (1.0/3.0) * 6.47209 * tfactors.T923i - + -5.2029 + (5.0/3.0) * 0.533391 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nfisn + ln_set_rate = 33.1417 + -0.0837118 * tfactors.T9i + -36.2109 * tfactors.T913i + -10.0201 * tfactors.T913 + + 0.882265 * tfactors.T9 + -0.0954725 * tfactors.T953 + 3.28794 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0837118 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.2109 * tfactors.T943i + (1.0/3.0) * -10.0201 * tfactors.T923i + + 0.882265 + (5.0/3.0) * -0.0954725 * tfactors.T923 + 3.28794 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Zn61_to_n_Zn60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Zn61 --> n + Zn60 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // nfisn + ln_set_rate = 34.9479 + 2.4317 * tfactors.T9i + -209.408 * tfactors.T913i + 176.007 * tfactors.T913 + + -6.98867 * tfactors.T9 + 0.295678 * tfactors.T953 + -110.548 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 35.7839 + -118.702 * tfactors.T9i + 0.0559751 * tfactors.T913 - + 0.208641 * tfactors.T9 + -0.0357451 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -2.4317 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -209.408 * tfactors.T943i + (1.0/3.0) * 176.007 * tfactors.T923i + + -6.98867 + (5.0/3.0) * 0.295678 * tfactors.T923 + -110.548 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 118.702 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.0559751 * tfactors.T923i - + 0.208641 + (5.0/3.0) * -0.0357451 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu58_He4_to_Ga62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu58 + He4 --> Ga62 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Zn61_to_p_Cu60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Zn61 --> p + Cu60 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 77.8609 + -98.8498 * tfactors.T913i + -21.411 * tfactors.T913 + + 1.84489 * tfactors.T9 + -0.142549 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 59.9142 + -61.3919 * tfactors.T9i + -39.9846 * tfactors.T913i + 3.2392 * tfactors.T913 - + -2.37211 * tfactors.T9 + 0.239391 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -98.8498 * tfactors.T943i + (1.0/3.0) * -21.411 * tfactors.T923i + + 1.84489 + (5.0/3.0) * -0.142549 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 61.3919 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.9846 * tfactors.T943i + (1.0/3.0) * 3.2392 * tfactors.T923i - + -2.37211 + (5.0/3.0) * 0.239391 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu59_n_to_Cu60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu59 + n --> Cu60 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Zn61_to_He4_Ni57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Zn61 --> He4 + Ni57 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 14.7349 + -0.952104 * tfactors.T913 + + 0.520444 * tfactors.T9 + -0.0746175 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 86.4776 + -31.1979 * tfactors.T9i + -96.5275 * tfactors.T913i + 5.42001 * tfactors.T913 - + -3.93988 * tfactors.T9 + 0.358068 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.952104 * tfactors.T923i + + 0.520444 + (5.0/3.0) * -0.0746175 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 31.1979 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -96.5275 * tfactors.T943i + (1.0/3.0) * 5.42001 * tfactors.T923i - + -3.93988 + (5.0/3.0) * 0.358068 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu59_p_to_Zn60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu59 + p --> Zn60 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Zn62_to_n_Zn61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Zn62 --> n + Zn61 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 37.226 + -39.9808 * tfactors.T913i + 1.17311 * tfactors.T913 + + -2.90486 * tfactors.T9 + 0.339644 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 38.7699 + -149.667 * tfactors.T9i + 0.174908 * tfactors.T913 - + 0.222207 * tfactors.T9 + -0.0495297 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.9808 * tfactors.T943i + (1.0/3.0) * 1.17311 * tfactors.T923i + + -2.90486 + (5.0/3.0) * 0.339644 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 149.667 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.174908 * tfactors.T923i - + 0.222207 + (5.0/3.0) * -0.0495297 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu59_He4_to_Ga63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu59 + He4 --> Ga63 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Zn62_to_p_Cu61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Zn62 --> p + Cu61 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 68.0149 + -98.8858 * tfactors.T913i + -2.92113 * tfactors.T913 + + -2.38226 * tfactors.T9 + 0.272994 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 61.6372 + -75.1596 * tfactors.T9i + -39.9882 * tfactors.T913i + 2.26956 * tfactors.T913 - + -1.69006 * tfactors.T9 + 0.132363 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -98.8858 * tfactors.T943i + (1.0/3.0) * -2.92113 * tfactors.T923i + + -2.38226 + (5.0/3.0) * 0.272994 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 75.1596 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.9882 * tfactors.T943i + (1.0/3.0) * 2.26956 * tfactors.T923i - + -1.69006 + (5.0/3.0) * 0.132363 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu60_n_to_Cu61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu60 + n --> Cu61 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Zn62_to_He4_Ni58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Zn62 --> He4 + Ni58 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 15.3449 + -0.586034 * tfactors.T913 + + 0.320768 * tfactors.T9 + -0.0484658 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 87.8504 + -39.0915 * tfactors.T9i + -96.5638 * tfactors.T913i + 2.81593 * tfactors.T913 - + -2.43398 * tfactors.T9 + 0.140051 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.586034 * tfactors.T923i + + 0.320768 + (5.0/3.0) * -0.0484658 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 39.0915 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -96.5638 * tfactors.T943i + (1.0/3.0) * 2.81593 * tfactors.T923i - + -2.43398 + (5.0/3.0) * 0.140051 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu60_p_to_Zn61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu60 + p --> Zn61 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Zn63_to_n_Zn62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Zn63 --> n + Zn62 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 36.0101 + -39.9846 * tfactors.T913i + 3.2392 * tfactors.T913 + + -2.37211 * tfactors.T9 + 0.239391 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 38.7908 + -105.751 * tfactors.T9i + -0.365196 * tfactors.T913 - + 0.230327 * tfactors.T9 + -0.0605553 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.9846 * tfactors.T943i + (1.0/3.0) * 3.2392 * tfactors.T923i + + -2.37211 + (5.0/3.0) * 0.239391 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 105.751 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.365196 * tfactors.T923i - + 0.230327 + (5.0/3.0) * -0.0605553 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu60_He4_to_Ga64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu60 + He4 --> Ga64 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Zn63_to_p_Cu62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Zn63 --> p + Cu62 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 66.2816 + -98.9207 * tfactors.T913i + 0.933671 * tfactors.T913 + + -3.79958 * tfactors.T9 + 0.446216 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 59.9432 + -77.7984 * tfactors.T9i + -39.9917 * tfactors.T913i + 2.6186 * tfactors.T913 - + -1.69105 * tfactors.T9 + 0.132898 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -98.9207 * tfactors.T943i + (1.0/3.0) * 0.933671 * tfactors.T923i + + -3.79958 + (5.0/3.0) * 0.446216 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 77.7984 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.9917 * tfactors.T943i + (1.0/3.0) * 2.6186 * tfactors.T923i - + -1.69105 + (5.0/3.0) * 0.132898 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu61_n_to_Cu62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu61 + n --> Cu62 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Zn63_to_He4_Ni59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Zn63 --> He4 + Ni59 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 16.3662 + -0.404348 * tfactors.T913 + + 0.218353 * tfactors.T9 + -0.0562018 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 88.047 + -40.4102 * tfactors.T9i + -96.5991 * tfactors.T913i + 2.66136 * tfactors.T913 - + -2.36841 * tfactors.T9 + 0.148474 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.404348 * tfactors.T923i + + 0.218353 + (5.0/3.0) * -0.0562018 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 40.4102 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -96.5991 * tfactors.T943i + (1.0/3.0) * 2.66136 * tfactors.T923i - + -2.36841 + (5.0/3.0) * 0.148474 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu61_p_to_Zn62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu61 + p --> Zn62 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Zn64_to_n_Zn63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Zn64 --> n + Zn63 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 36.5695 + -39.9882 * tfactors.T913i + 2.26956 * tfactors.T913 + + -1.69006 * tfactors.T9 + 0.132363 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 41.3222 + -137.651 * tfactors.T9i + -0.526805 * tfactors.T913 - + 0.294653 * tfactors.T9 + -0.0660418 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.9882 * tfactors.T943i + (1.0/3.0) * 2.26956 * tfactors.T923i + + -1.69006 + (5.0/3.0) * 0.132363 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 137.651 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.526805 * tfactors.T923i - + 0.294653 + (5.0/3.0) * -0.0660418 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu62_n_to_Cu63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu62 + n --> Cu63 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Zn64_to_p_Cu63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Zn64 --> p + Cu63 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 17.0073 + -0.723484 * tfactors.T913 + + 0.215177 * tfactors.T9 + -0.0473749 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 62.194 + -89.5055 * tfactors.T9i + -39.995 * tfactors.T913i + 1.69705 * tfactors.T913 - + -1.11391 * tfactors.T9 + 0.0416287 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.723484 * tfactors.T923i + + 0.215177 + (5.0/3.0) * -0.0473749 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 89.5055 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.995 * tfactors.T943i + (1.0/3.0) * 1.69705 * tfactors.T923i - + -1.11391 + (5.0/3.0) * 0.0416287 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu62_p_to_Zn63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu62 + p --> Zn63 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Zn64_to_He4_Ni60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Zn64 --> He4 + Ni60 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 36.5491 + -39.9917 * tfactors.T913i + 2.6186 * tfactors.T913 + + -1.69105 * tfactors.T9 + 0.132898 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 89.0883 + -45.912 * tfactors.T9i + -96.6332 * tfactors.T913i + 1.06508 * tfactors.T913 - + -1.52905 * tfactors.T9 + 0.0316173 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.9917 * tfactors.T943i + (1.0/3.0) * 2.6186 * tfactors.T923i + + -1.69105 + (5.0/3.0) * 0.132898 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 45.912 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -96.6332 * tfactors.T943i + (1.0/3.0) * 1.06508 * tfactors.T923i - + -1.52905 + (5.0/3.0) * 0.0316173 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu63_n_to_Cu64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu63 + n --> Cu64 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Zn65_to_n_Zn64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Zn65 --> n + Zn64 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ks03 + ln_set_rate = 27.4055 + -0.117212 * tfactors.T9i + 11.3982 * tfactors.T913i + -24.4222 * tfactors.T913 + + 1.95364 * tfactors.T9 + -0.18693 * tfactors.T953 + 10.2458 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 34.9923 + -92.5665 * tfactors.T9i + -3.1973 * tfactors.T913i + 6.0545 * tfactors.T913 - + 0.171155 * tfactors.T9 + -0.0905702 * tfactors.T953 + -1.39286 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.117212 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 11.3982 * tfactors.T943i + (1.0/3.0) * -24.4222 * tfactors.T923i + + 1.95364 + (5.0/3.0) * -0.18693 * tfactors.T923 + 10.2458 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 92.5665 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -3.1973 * tfactors.T943i + (1.0/3.0) * 6.0545 * tfactors.T923i - + 0.171155 + (5.0/3.0) * -0.0905702 * tfactors.T923 + -1.39286 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu63_p_to_Zn64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu63 + p --> Zn64 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Zn65_to_p_Cu64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Zn65 --> p + Cu64 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 37.1256 + -39.995 * tfactors.T913i + 1.69705 * tfactors.T913 + + -1.11391 * tfactors.T9 + 0.0416287 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 61.97 + -90.2404 * tfactors.T9i + -39.9983 * tfactors.T913i + -2.9846 * tfactors.T913 - + 0.0709769 * tfactors.T9 + -0.0519569 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.995 * tfactors.T943i + (1.0/3.0) * 1.69705 * tfactors.T923i + + -1.11391 + (5.0/3.0) * 0.0416287 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 90.2404 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.9983 * tfactors.T943i + (1.0/3.0) * -2.9846 * tfactors.T923i - + 0.0709769 + (5.0/3.0) * -0.0519569 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu64_n_to_Cu65_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu64 + n --> Cu65 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Zn65_to_He4_Ni61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Zn65 --> He4 + Ni61 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 18.8488 + -2.31276 * tfactors.T913 + + 0.434599 * tfactors.T9 + -0.0715678 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 88.4751 + -47.7597 * tfactors.T9i + -96.6663 * tfactors.T913i + 2.54794 * tfactors.T913 - + -2.65791 * tfactors.T9 + 0.204247 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -2.31276 * tfactors.T923i + + 0.434599 + (5.0/3.0) * -0.0715678 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 47.7597 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -96.6663 * tfactors.T943i + (1.0/3.0) * 2.54794 * tfactors.T923i - + -2.65791 + (5.0/3.0) * 0.204247 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu64_p_to_Zn65_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu64 + p --> Zn65 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Zn66_to_n_Zn65_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Zn66 --> n + Zn65 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 38.9806 + -39.9983 * tfactors.T913i + -2.9846 * tfactors.T913 + + 0.0709769 * tfactors.T9 + -0.0519569 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 53.0981 + -128.372 * tfactors.T9i + 5.38411 * tfactors.T913i + -18.0063 * tfactors.T913 - + 1.89109 * tfactors.T9 + -0.191482 * tfactors.T953 + 7.34419 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.9983 * tfactors.T943i + (1.0/3.0) * -2.9846 * tfactors.T923i + + 0.0709769 + (5.0/3.0) * -0.0519569 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 128.372 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 5.38411 * tfactors.T943i + (1.0/3.0) * -18.0063 * tfactors.T923i - + 1.89109 + (5.0/3.0) * -0.191482 * tfactors.T923 + 7.34419 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu65_p_to_Zn66_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu65 + p --> Zn66 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Zn66_to_p_Cu65_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Zn66 --> p + Cu65 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 36.8752 + -40.0015 * tfactors.T913i + 2.89473 * tfactors.T913 + + -1.70171 * tfactors.T9 + 0.092664 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 61.9444 + -103.567 * tfactors.T9i + -40.0015 * tfactors.T913i + 2.89473 * tfactors.T913 - + -1.70171 * tfactors.T9 + 0.092664 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -40.0015 * tfactors.T943i + (1.0/3.0) * 2.89473 * tfactors.T923i + + -1.70171 + (5.0/3.0) * 0.092664 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 103.567 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -40.0015 * tfactors.T943i + (1.0/3.0) * 2.89473 * tfactors.T923i - + -1.70171 + (5.0/3.0) * 0.092664 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn59_n_to_Zn60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Zn59 + n --> Zn60 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Zn66_to_He4_Ni62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Zn66 --> He4 + Ni62 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 8.74563 + 0.65324 * tfactors.T913 + + -0.0259697 * tfactors.T9 + -0.00407906 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 89.663 + -53.1283 * tfactors.T9i + -96.6983 * tfactors.T913i + 0.80536 * tfactors.T913 - + -1.39385 * tfactors.T9 + 0.000644409 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.65324 * tfactors.T923i + + -0.0259697 + (5.0/3.0) * -0.00407906 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 53.1283 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -96.6983 * tfactors.T943i + (1.0/3.0) * 0.80536 * tfactors.T923i - + -1.39385 + (5.0/3.0) * 0.000644409 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn59_He4_to_Ge63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Zn59 + He4 --> Ge63 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ga62_to_p_Zn61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ga62 --> p + Zn61 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 76.3883 + -101.146 * tfactors.T913i + -14.3723 * tfactors.T913 + + 0.893059 * tfactors.T9 + -0.0564743 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // nfisn - ln_set_rate = 5.18997 + -48.9859 * tfactors.T9i + 207.487 * tfactors.T913i + -181.718 * tfactors.T913 - + 5.86358 * tfactors.T9 + -0.221479 * tfactors.T953 + 121.305 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -101.146 * tfactors.T943i + (1.0/3.0) * -14.3723 * tfactors.T923i + + 0.893059 + (5.0/3.0) * -0.0564743 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 48.9859 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 207.487 * tfactors.T943i + (1.0/3.0) * -181.718 * tfactors.T923i - + 5.86358 + (5.0/3.0) * -0.221479 * tfactors.T923 + 121.305 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn60_n_to_Zn61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // nfisn - ln_set_rate = 11301.2 + -125.341 * tfactors.T9i + 6932.15 * tfactors.T913i + -20433.4 * tfactors.T913 - + 2726.25 * tfactors.T9 + -416.477 * tfactors.T953 + 7005.24 * tfactors.lnT9; + // Zn60 + n --> Zn61 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 125.341 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 6932.15 * tfactors.T943i + (1.0/3.0) * -20433.4 * tfactors.T923i - + 2726.25 + (5.0/3.0) * -416.477 * tfactors.T923 + 7005.24 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 13.4892 + 0.0559751 * tfactors.T913 + + 0.208641 * tfactors.T9 + -0.0357451 * tfactors.T953; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // nfisn - ln_set_rate = 60.6455 + -34.2325 * tfactors.T9i + -36.9213 * tfactors.T913i + -12.8434 * tfactors.T913 - + 1.30735 * tfactors.T9 + -0.136745 * tfactors.T953 + 5.41008 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.0559751 * tfactors.T923i + + 0.208641 + (5.0/3.0) * -0.0357451 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 34.2325 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.9213 * tfactors.T943i + (1.0/3.0) * -12.8434 * tfactors.T923i - + 1.30735 + (5.0/3.0) * -0.136745 * tfactors.T923 + 5.41008 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn60_He4_to_Ge64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Zn60 + He4 --> Ge64 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ga62_to_He4_Cu58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ga62 --> He4 + Cu58 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 61.1229 + -101.182 * tfactors.T913i + 10.4963 * tfactors.T913 + + -7.04215 * tfactors.T9 + 0.732883 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 103.952 + -32.0666 * tfactors.T9i + -98.8498 * tfactors.T913i + -21.411 * tfactors.T913 - + 1.84489 * tfactors.T9 + -0.142549 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -101.182 * tfactors.T943i + (1.0/3.0) * 10.4963 * tfactors.T923i + + -7.04215 + (5.0/3.0) * 0.732883 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 32.0666 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -98.8498 * tfactors.T943i + (1.0/3.0) * -21.411 * tfactors.T923i - + 1.84489 + (5.0/3.0) * -0.142549 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn61_n_to_Zn62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Zn61 + n --> Zn62 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ga63_to_n_Ga62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ga63 --> n + Ga62 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 13.7022 + 0.174908 * tfactors.T913 + + 0.222207 * tfactors.T9 + -0.0495297 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 35.9806 + -146.426 * tfactors.T9i + -0.413123 * tfactors.T913 - + 0.505609 * tfactors.T9 + -0.0792987 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.174908 * tfactors.T923i + + 0.222207 + (5.0/3.0) * -0.0495297 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 146.426 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.413123 * tfactors.T923i - + 0.505609 + (5.0/3.0) * -0.0792987 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn61_p_to_Ga62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Zn61 + p --> Ga62 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ga63_to_p_Zn62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ga63 --> p + Zn62 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // nfisn + ln_set_rate = 11276.1 + -91.1775 * tfactors.T9i + 6932.15 * tfactors.T913i + -20433.4 * tfactors.T913 + + 2726.25 * tfactors.T9 + -416.477 * tfactors.T953 + 7003.74 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // nfisn - ln_set_rate = -16.133 + -52.7571 * tfactors.T9i + 181.058 * tfactors.T913i + -128.039 * tfactors.T913 - + 5.3613 * tfactors.T9 + -0.329542 * tfactors.T953 + 88.9371 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 91.1775 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 6932.15 * tfactors.T943i + (1.0/3.0) * -20433.4 * tfactors.T923i + + 2726.25 + (5.0/3.0) * -416.477 * tfactors.T923 + 7003.74 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 52.7571 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 181.058 * tfactors.T943i + (1.0/3.0) * -128.039 * tfactors.T923i - + 5.3613 + (5.0/3.0) * -0.329542 * tfactors.T923 + 88.9371 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nfisn + ln_set_rate = 35.5778 + -0.068885 * tfactors.T9i + -36.9213 * tfactors.T913i + -12.8434 * tfactors.T913 + + 1.30735 * tfactors.T9 + -0.136745 * tfactors.T953 + 3.91008 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // nfisn - ln_set_rate = 59.4822 + -31.1177 * tfactors.T9i + -31.4331 * tfactors.T913i + -19.7752 * tfactors.T913 - + 1.69239 * tfactors.T9 + -0.16473 * tfactors.T953 + 9.1608 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.068885 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.9213 * tfactors.T943i + (1.0/3.0) * -12.8434 * tfactors.T923i + + 1.30735 + (5.0/3.0) * -0.136745 * tfactors.T923 + 3.91008 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 31.1177 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.4331 * tfactors.T943i + (1.0/3.0) * -19.7752 * tfactors.T923i - + 1.69239 + (5.0/3.0) * -0.16473 * tfactors.T923 + 9.1608 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nfisn + ln_set_rate = -19.8777 + -14.8223 * tfactors.T9i + 207.487 * tfactors.T913i + -181.718 * tfactors.T913 + + 5.86358 * tfactors.T9 + -0.221479 * tfactors.T953 + 119.805 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // nfisn - ln_set_rate = 7911.23 + -90.8719 * tfactors.T9i + 4643.34 * tfactors.T913i + -14105.9 * tfactors.T913 - + 1925.65 * tfactors.T9 + -299.872 * tfactors.T953 + 4770.14 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 14.8223 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 207.487 * tfactors.T943i + (1.0/3.0) * -181.718 * tfactors.T923i + + 5.86358 + (5.0/3.0) * -0.221479 * tfactors.T923 + 119.805 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 90.8719 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 4643.34 * tfactors.T943i + (1.0/3.0) * -14105.9 * tfactors.T923i - + 1925.65 + (5.0/3.0) * -299.872 * tfactors.T923 + 4770.14 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn62_n_to_Zn63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // nfisn - ln_set_rate = 69.6876 + -52.939 * tfactors.T9i + 516.062 * tfactors.T913i + -567.538 * tfactors.T913 - + 23.7454 * tfactors.T9 + -1.02526 * tfactors.T953 + 329.36 * tfactors.lnT9; + // Zn62 + n --> Zn63 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 52.939 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 516.062 * tfactors.T943i + (1.0/3.0) * -567.538 * tfactors.T923i - + 23.7454 + (5.0/3.0) * -1.02526 * tfactors.T923 + 329.36 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 16.4953 + -0.365196 * tfactors.T913 + + 0.230327 * tfactors.T9 + -0.0605553 * tfactors.T953; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.365196 * tfactors.T923i + + 0.230327 + (5.0/3.0) * -0.0605553 * tfactors.T923; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ga63_to_He4_Cu59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Ga63 --> He4 + Cu59 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn62_p_to_Ga63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // ths8r - ln_set_rate = 93.0086 + -30.3432 * tfactors.T9i + -98.8858 * tfactors.T913i + -2.92113 * tfactors.T913 - + -2.38226 * tfactors.T9 + 0.272994 * tfactors.T953 + 0.833333 * tfactors.lnT9; + // Zn62 + p --> Ga63 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 30.3432 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -98.8858 * tfactors.T943i + (1.0/3.0) * -2.92113 * tfactors.T923i - + -2.38226 + (5.0/3.0) * 0.272994 * tfactors.T923 + 0.833333 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nfisn + ln_set_rate = 37.1867 + -0.194242 * tfactors.T9i + -31.4331 * tfactors.T913i + -19.7752 * tfactors.T913 + + 1.69239 * tfactors.T9 + -0.16473 * tfactors.T953 + 7.6608 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.194242 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.4331 * tfactors.T943i + (1.0/3.0) * -19.7752 * tfactors.T923i + + 1.69239 + (5.0/3.0) * -0.16473 * tfactors.T923 + 7.6608 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ga64_to_n_Ga63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Ga64 --> n + Ga63 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // nfisn + ln_set_rate = 7888.93 + -59.9484 * tfactors.T9i + 4643.34 * tfactors.T913i + -14105.9 * tfactors.T913 + + 1925.65 * tfactors.T9 + -299.872 * tfactors.T953 + 4768.64 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 37.8755 + -120.206 * tfactors.T9i + 1.0342 * tfactors.T913 - + 0.0882306 * tfactors.T9 + -0.0437444 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 59.9484 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 4643.34 * tfactors.T943i + (1.0/3.0) * -14105.9 * tfactors.T923i + + 1925.65 + (5.0/3.0) * -299.872 * tfactors.T923 + 4768.64 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 120.206 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.0342 * tfactors.T923i - + 0.0882306 + (5.0/3.0) * -0.0437444 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nfisn + ln_set_rate = 47.3921 + -22.0155 * tfactors.T9i + 516.062 * tfactors.T913i + -567.538 * tfactors.T913 + + 23.7454 * tfactors.T9 + -1.02526 * tfactors.T953 + 327.86 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 22.0155 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 516.062 * tfactors.T943i + (1.0/3.0) * -567.538 * tfactors.T923i + + 23.7454 + (5.0/3.0) * -1.02526 * tfactors.T923 + 327.86 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ga64_to_p_Zn63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Ga64 --> p + Zn63 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // nfisn + ln_set_rate = -38.4285 + -21.8336 * tfactors.T9i + 181.058 * tfactors.T913i + -128.039 * tfactors.T913 + + 5.3613 * tfactors.T9 + -0.329542 * tfactors.T953 + 87.4371 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 61.9074 + -45.3767 * tfactors.T9i + -40.9093 * tfactors.T913i + 2.88162 * tfactors.T913 - + -2.11741 * tfactors.T9 + 0.191601 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 21.8336 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 181.058 * tfactors.T943i + (1.0/3.0) * -128.039 * tfactors.T923i + + 5.3613 + (5.0/3.0) * -0.329542 * tfactors.T923 + 87.4371 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 45.3767 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -40.9093 * tfactors.T943i + (1.0/3.0) * 2.88162 * tfactors.T923i - + -2.11741 + (5.0/3.0) * 0.191601 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn63_n_to_Zn64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Zn63 + n --> Zn64 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ga64_to_He4_Cu60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ga64 --> He4 + Cu60 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 16.2538 + -0.526805 * tfactors.T913 + + 0.294653 * tfactors.T9 + -0.0660418 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 92.8863 + -33.8287 * tfactors.T9i + -98.9207 * tfactors.T913i + 0.933671 * tfactors.T913 - + -3.79958 * tfactors.T9 + 0.446216 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.526805 * tfactors.T923i + + 0.294653 + (5.0/3.0) * -0.0660418 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 33.8287 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -98.9207 * tfactors.T943i + (1.0/3.0) * 0.933671 * tfactors.T923i - + -3.79958 + (5.0/3.0) * 0.446216 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn63_p_to_Ga64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Zn63 + p --> Ga64 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ge63_to_p_Ga62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ge63 --> p + Ga62 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 36.839 + -40.9093 * tfactors.T913i + 2.88162 * tfactors.T913 + + -2.11741 * tfactors.T9 + 0.191601 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // nfisn - ln_set_rate = 9653.53 + -138.896 * tfactors.T9i + 6926.61 * tfactors.T913i + -18459.0 * tfactors.T913 - + 2374.61 * tfactors.T9 + -366.508 * tfactors.T953 + 6588.46 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -40.9093 * tfactors.T943i + (1.0/3.0) * 2.88162 * tfactors.T923i + + -2.11741 + (5.0/3.0) * 0.191601 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 138.896 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 6926.61 * tfactors.T943i + (1.0/3.0) * -18459.0 * tfactors.T923i - + 2374.61 + (5.0/3.0) * -366.508 * tfactors.T923 + 6588.46 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn64_n_to_Zn65_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // nfisn - ln_set_rate = 52.0997 + -25.9182 * tfactors.T9i + -45.5057 * tfactors.T913i + 1.9831 * tfactors.T913 - + -0.147339 * tfactors.T9 + -0.0169469 * tfactors.T953 + -0.96033 * tfactors.lnT9; + // Zn64 + n --> Zn65 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 25.9182 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -45.5057 * tfactors.T943i + (1.0/3.0) * 1.9831 * tfactors.T923i - + -0.147339 + (5.0/3.0) * -0.0169469 * tfactors.T923 + -0.96033 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ks03 + ln_set_rate = 13.1015 + 0.0293385 * tfactors.T9i + -3.1973 * tfactors.T913i + 6.0545 * tfactors.T913 + + 0.171155 * tfactors.T9 + -0.0905702 * tfactors.T953 + -2.89286 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // nfisn - ln_set_rate = 290.665 + -26.1495 * tfactors.T9i + -8.15451 * tfactors.T913i + -301.681 * tfactors.T913 - + 33.0147 * tfactors.T9 + -2.8672 * tfactors.T953 + 72.2354 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.0293385 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -3.1973 * tfactors.T943i + (1.0/3.0) * 6.0545 * tfactors.T923i + + 0.171155 + (5.0/3.0) * -0.0905702 * tfactors.T923 + -2.89286 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 26.1495 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -8.15451 * tfactors.T943i + (1.0/3.0) * -301.681 * tfactors.T923i - + 33.0147 + (5.0/3.0) * -2.8672 * tfactors.T923 + 72.2354 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn65_n_to_Zn66_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // nfisn - ln_set_rate = 45.3582 + -27.0759 * tfactors.T9i + -107.856 * tfactors.T913i + 80.6244 * tfactors.T913 - + -2.84514 * tfactors.T9 + 0.087641 * tfactors.T953 + -55.0078 * tfactors.lnT9; + // Zn65 + n --> Zn66 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 27.0759 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -107.856 * tfactors.T943i + (1.0/3.0) * 80.6244 * tfactors.T923i - + -2.84514 + (5.0/3.0) * 0.087641 * tfactors.T923 + -55.0078 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ks03 + ln_set_rate = 27.6235 + -0.0461963 * tfactors.T9i + 5.38411 * tfactors.T913i + -18.0063 * tfactors.T913 + + 1.89109 * tfactors.T9 + -0.191482 * tfactors.T953 + 5.84419 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // nfisn - ln_set_rate = 76.0205 + -30.5116 * tfactors.T9i + 11.0703 * tfactors.T913i + -66.0297 * tfactors.T913 - + 2.89115 * tfactors.T9 + -0.129107 * tfactors.T953 + 30.8214 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0461963 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 5.38411 * tfactors.T943i + (1.0/3.0) * -18.0063 * tfactors.T923i + + 1.89109 + (5.0/3.0) * -0.191482 * tfactors.T923 + 5.84419 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 30.5116 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 11.0703 * tfactors.T943i + (1.0/3.0) * -66.0297 * tfactors.T923i - + 2.89115 + (5.0/3.0) * -0.129107 * tfactors.T923 + 30.8214 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ga62_n_to_Ga63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ga62 + n --> Ga63 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ge63_to_He4_Zn59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ge63 --> He4 + Zn59 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 13.6851 + -0.413123 * tfactors.T913 + + 0.505609 * tfactors.T9 + -0.0792987 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 101.382 + -24.5389 * tfactors.T9i + -101.146 * tfactors.T913i + -14.3723 * tfactors.T913 - + 0.893059 * tfactors.T9 + -0.0564743 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.413123 * tfactors.T923i + + 0.505609 + (5.0/3.0) * -0.0792987 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 24.5389 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -101.146 * tfactors.T943i + (1.0/3.0) * -14.3723 * tfactors.T923i - + 0.893059 + (5.0/3.0) * -0.0564743 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ga62_p_to_Ge63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ga62 + p --> Ge63 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ge64_to_n_Ge63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ge64 --> n + Ge63 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // nfisn + ln_set_rate = 23.0628 + -1.09614 * tfactors.T9i + -107.856 * tfactors.T913i + 80.6244 * tfactors.T913 + + -2.84514 * tfactors.T9 + 0.087641 * tfactors.T953 + -56.5078 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 33.4278 + -179.145 * tfactors.T9i + 0.20987 * tfactors.T913 - + 0.182208 * tfactors.T9 + -0.0339886 * tfactors.T953 + 1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.09614 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -107.856 * tfactors.T943i + (1.0/3.0) * 80.6244 * tfactors.T923i + + -2.84514 + (5.0/3.0) * 0.087641 * tfactors.T923 + -56.5078 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 179.145 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.20987 * tfactors.T923i - + 0.182208 + (5.0/3.0) * -0.0339886 * tfactors.T923 + 1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nfisn + ln_set_rate = 268.37 + -0.169689 * tfactors.T9i + -8.15451 * tfactors.T913i + -301.681 * tfactors.T913 + + 33.0147 * tfactors.T9 + -2.8672 * tfactors.T953 + 70.7354 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.169689 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -8.15451 * tfactors.T943i + (1.0/3.0) * -301.681 * tfactors.T923i + + 33.0147 + (5.0/3.0) * -2.8672 * tfactors.T923 + 70.7354 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ge64_to_p_Ga63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Ge64 --> p + Ga63 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // nfisn + ln_set_rate = 29.8043 + 0.0615986 * tfactors.T9i + -45.5057 * tfactors.T913i + 1.9831 * tfactors.T913 + + -0.147339 * tfactors.T9 + -0.0169469 * tfactors.T953 + -2.46033 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 63.0475 + -58.6907 * tfactors.T9i + -41.8134 * tfactors.T913i + 1.45084 * tfactors.T913 - + -3.1328 * tfactors.T9 + 0.353318 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.0615986 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -45.5057 * tfactors.T943i + (1.0/3.0) * 1.9831 * tfactors.T923i + + -0.147339 + (5.0/3.0) * -0.0169469 * tfactors.T923 + -2.46033 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 58.6907 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -41.8134 * tfactors.T943i + (1.0/3.0) * 1.45084 * tfactors.T923i - + -3.1328 + (5.0/3.0) * 0.353318 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nfisn + ln_set_rate = 9631.23 + -112.916 * tfactors.T9i + 6926.61 * tfactors.T913i + -18459.0 * tfactors.T913 + + 2374.61 * tfactors.T9 + -366.508 * tfactors.T953 + 6586.96 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 112.916 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 6926.61 * tfactors.T943i + (1.0/3.0) * -18459.0 * tfactors.T923i + + 2374.61 + (5.0/3.0) * -366.508 * tfactors.T923 + 6586.96 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Ge64_to_He4_Zn60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Ge64 --> He4 + Zn60 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // nfisn + ln_set_rate = 53.7251 + -4.53179 * tfactors.T9i + 11.0703 * tfactors.T913i + -66.0297 * tfactors.T913 + + 2.89115 * tfactors.T9 + -0.129107 * tfactors.T953 + 29.3214 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 86.1182 + -29.6245 * tfactors.T9i + -101.182 * tfactors.T913i + 10.4963 * tfactors.T913 - + -7.04215 * tfactors.T9 + 0.732883 * tfactors.T953 + 0.833333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 4.53179 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 11.0703 * tfactors.T943i + (1.0/3.0) * -66.0297 * tfactors.T923i + + 2.89115 + (5.0/3.0) * -0.129107 * tfactors.T923 + 29.3214 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 29.6245 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -101.182 * tfactors.T943i + (1.0/3.0) * 10.4963 * tfactors.T923i - + -7.04215 + (5.0/3.0) * 0.732883 * tfactors.T923 + 0.833333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ga63_n_to_Ga64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ga63 + n --> Ga64 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Li6_to_n_p_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Li6 --> n + p + He4 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 12.8071 + 1.0342 * tfactors.T913 + + 0.0882306 * tfactors.T9 + -0.0437444 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // cf88r - ln_set_rate = 33.4196 + -62.2896 * tfactors.T9i + 1.44987 * tfactors.T913i + -1.42759 * tfactors.T913 - + 0.0454035 * tfactors.T9 + 0.00471161 * tfactors.T953 + 2.0 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 1.0342 * tfactors.T923i + + 0.0882306 + (5.0/3.0) * -0.0437444 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 62.2896 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.44987 * tfactors.T943i + (1.0/3.0) * -1.42759 * tfactors.T923i - + 0.0454035 + (5.0/3.0) * 0.00471161 * tfactors.T923 + 2.0 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ga63_p_to_Ge64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ga63 + p --> Ge64 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_Be9_to_n_He4_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Be9 --> n + He4 + He4 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 37.9791 + -41.8134 * tfactors.T913i + 1.45084 * tfactors.T913 + + -3.1328 * tfactors.T9 + 0.353318 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ac12n - ln_set_rate = 37.273 + -18.2597 * tfactors.T9i + -13.3317 * tfactors.T913i + 13.2237 * tfactors.T913 - + -9.06339 * tfactors.T9 + 2.33333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -41.8134 * tfactors.T943i + (1.0/3.0) * 1.45084 * tfactors.T923i + + -3.1328 + (5.0/3.0) * 0.353318 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 18.2597 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -13.3317 * tfactors.T943i + (1.0/3.0) * 13.2237 * tfactors.T923i - + -9.06339 + 2.33333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ge63_n_to_Ge64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // ac12r - ln_set_rate = 38.6902 + -19.2792 * tfactors.T9i + -1.56673 * tfactors.T913i + -5.43497 * tfactors.T913 - + 0.673807 * tfactors.T9 + -0.041014 * tfactors.T953 + 1.5 * tfactors.lnT9; + // Ge63 + n --> Ge64 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 19.2792 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.56673 * tfactors.T943i + (1.0/3.0) * -5.43497 * tfactors.T923i - + 0.673807 + (5.0/3.0) * -0.041014 * tfactors.T923 + 1.5 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 8.35941 + 0.20987 * tfactors.T913 + + 0.182208 * tfactors.T9 + -0.0339886 * tfactors.T953; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.20987 * tfactors.T923i + + 0.182208 + (5.0/3.0) * -0.0339886 * tfactors.T923; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_C12_to_He4_He4_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // C12 --> 3 He4 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_d_d_to_n_He3_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // fy05r - ln_set_rate = 22.394 + -88.5493 * tfactors.T9i + -13.49 * tfactors.T913i + 21.4259 * tfactors.T913 - + -1.34769 * tfactors.T9 + 0.0879816 * tfactors.T953 + -10.1653 * tfactors.lnT9; + // d + d --> n + He3 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 88.5493 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -13.49 * tfactors.T943i + (1.0/3.0) * 21.4259 * tfactors.T923i - + -1.34769 + (5.0/3.0) * 0.0879816 * tfactors.T923 + -10.1653 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // gi17n + ln_set_rate = 19.0876 + -0.00019002 * tfactors.T9i + -4.2292 * tfactors.T913i + 1.6932 * tfactors.T913 + + -0.0855529 * tfactors.T9 + -1.35709e-25 * tfactors.T953 + -0.734513 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // fy05r - ln_set_rate = 34.9561 + -85.4472 * tfactors.T9i + -23.57 * tfactors.T913i + 20.4886 * tfactors.T913 - + -12.9882 * tfactors.T9 + -20.0 * tfactors.T953 + 0.83333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.00019002 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -4.2292 * tfactors.T943i + (1.0/3.0) * 1.6932 * tfactors.T923i + + -0.0855529 + (5.0/3.0) * -1.35709e-25 * tfactors.T923 + -0.734513 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 85.4472 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -23.57 * tfactors.T943i + (1.0/3.0) * 20.4886 * tfactors.T923i - + -12.9882 + (5.0/3.0) * -20.0 * tfactors.T923 + 0.83333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_He3_d_to_p_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // fy05n - ln_set_rate = 45.7734 + -84.4227 * tfactors.T9i + -37.06 * tfactors.T913i + 29.3493 * tfactors.T913 - + -115.507 * tfactors.T9 + -10.0 * tfactors.T953 + 1.66667 * tfactors.lnT9; + // He3 + d --> p + He4 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 84.4227 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -37.06 * tfactors.T943i + (1.0/3.0) * 29.3493 * tfactors.T923i - + -115.507 + (5.0/3.0) * -10.0 * tfactors.T923 + 1.66667 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // de04 + ln_set_rate = 41.2969 + -7.182 * tfactors.T913i + -17.1349 * tfactors.T913 + + 1.36908 * tfactors.T9 + -0.0814423 * tfactors.T953 + 3.35395 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -7.182 * tfactors.T943i + (1.0/3.0) * -17.1349 * tfactors.T923i + + 1.36908 + (5.0/3.0) * -0.0814423 * tfactors.T923 + 3.35395 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_p_to_d_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // n + p --> d + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // de04 + ln_set_rate = 24.6839 + -7.182 * tfactors.T913i + 0.473288 * tfactors.T913 + + 1.46847 * tfactors.T9 + -27.9603 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // an06n - ln_set_rate = 12.3687 + -2.70618 * tfactors.T913 - + 0.11718 * tfactors.T9 + -0.00312788 * tfactors.T953 + 0.469127 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -7.182 * tfactors.T943i + (1.0/3.0) * 0.473288 * tfactors.T923i + + 1.46847 + (5.0/3.0) * -27.9603 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -2.70618 * tfactors.T923i - + 0.11718 + (5.0/3.0) * -0.00312788 * tfactors.T923 + 0.469127 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Li6_p_to_He4_He3_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // an06n - ln_set_rate = 10.7548 + -2.30472 * tfactors.T913 - + -0.887862 * tfactors.T9 + 0.137663 * tfactors.T953; + // Li6 + p --> He4 + He3 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -2.30472 * tfactors.T923i - + -0.887862 + (5.0/3.0) * 0.137663 * tfactors.T923; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // pt05n + ln_set_rate = 24.3475 + -8.39481 * tfactors.T913i + -0.165254 * tfactors.T913 + + -0.16936 * tfactors.T9 + 0.0533676 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // an06n - ln_set_rate = 8.84688 + -0.0102082 * tfactors.T913 - + -0.0893959 * tfactors.T9 + 0.00696704 * tfactors.T953 + 1.0 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -8.39481 * tfactors.T943i + (1.0/3.0) * -0.165254 * tfactors.T923i + + -0.16936 + (5.0/3.0) * 0.0533676 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.0102082 * tfactors.T923i - + -0.0893959 + (5.0/3.0) * 0.00696704 * tfactors.T923 + 1.0 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Li6_d_to_n_Be7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Li6 + d --> n + Be7 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_p_to_d_reaclib_beta_pos(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // p + p --> d + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // mafon + ln_set_rate = 28.0095 + -4.77456e-12 * tfactors.T9i + -10.259 * tfactors.T913i + -2.01559e-09 * tfactors.T913 + + 1.99542e-10 * tfactors.T9 + -1.65595e-11 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // bet+w - ln_set_rate = -34.7863 + -3.51193 * tfactors.T913i + 3.10086 * tfactors.T913 - + -0.198314 * tfactors.T9 + 0.0126251 * tfactors.T953 + -1.02517 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 4.77456e-12 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -10.259 * tfactors.T943i + (1.0/3.0) * -2.01559e-09 * tfactors.T923i + + 1.99542e-10 + (5.0/3.0) * -1.65595e-11 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -3.51193 * tfactors.T943i + (1.0/3.0) * 3.10086 * tfactors.T923i - + -0.198314 + (5.0/3.0) * 0.0126251 * tfactors.T923 + -1.02517 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Li6_d_to_p_Li7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Li6 + d --> p + Li7 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_p_to_d_reaclib_electron_capture(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // p + p --> d + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // mafon + ln_set_rate = 28.0231 + -10.135 * tfactors.T913i + + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ecw - ln_set_rate = -43.6499 + -0.00246064 * tfactors.T9i + -2.7507 * tfactors.T913i + -0.424877 * tfactors.T913 - + 0.015987 * tfactors.T9 + -0.000690875 * tfactors.T953 + -0.207625 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -10.135 * tfactors.T943i + + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.00246064 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.7507 * tfactors.T943i + (1.0/3.0) * -0.424877 * tfactors.T923i - + 0.015987 + (5.0/3.0) * -0.000690875 * tfactors.T923 + -0.207625 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Li7_p_to_He4_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Li7 + p --> He4 + He4 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_d_to_He3_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // d + p --> He3 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // de04r + ln_set_rate = 21.8999 + -26.1527 * tfactors.T9i + + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // de04 - ln_set_rate = 8.93525 + -3.7208 * tfactors.T913i + 0.198654 * tfactors.T913 - + 0.333333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 26.1527 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -3.7208 * tfactors.T943i + (1.0/3.0) * 0.198654 * tfactors.T923i - + 0.333333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // de04 + ln_set_rate = 20.4438 + -8.4727 * tfactors.T913i + 0.297934 * tfactors.T913 + + 0.0582335 * tfactors.T9 + -0.00413383 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // de04n - ln_set_rate = 7.52898 + -3.7208 * tfactors.T913i + 0.871782 * tfactors.T913 - + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -8.4727 * tfactors.T943i + (1.0/3.0) * 0.297934 * tfactors.T923i + + 0.0582335 + (5.0/3.0) * -0.00413383 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -3.7208 * tfactors.T943i + (1.0/3.0) * 0.871782 * tfactors.T923i - + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // de04r + ln_set_rate = 14.2538 + -4.478 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 4.478 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_d_d_to_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // d + d --> He4 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // de04 + ln_set_rate = 11.9576 + -8.4727 * tfactors.T913i + 0.417943 * tfactors.T913 + + 5.34565 * tfactors.T9 + -4.8684 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // nacrn - ln_set_rate = 3.78177 + -4.26166 * tfactors.T913i + -0.119233 * tfactors.T913 - + 0.778829 * tfactors.T9 + -0.0925203 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -8.4727 * tfactors.T943i + (1.0/3.0) * 0.417943 * tfactors.T923i + + 5.34565 + (5.0/3.0) * -4.8684 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -4.26166 * tfactors.T943i + (1.0/3.0) * -0.119233 * tfactors.T923i - + 0.778829 + (5.0/3.0) * -0.0925203 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Be7_n_to_p_Li7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Be7 + n --> p + Li7 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_d_to_Li6_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // d + He4 --> Li6 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // db18 + ln_set_rate = 21.7899 + 0.000728098 * tfactors.T9i + -0.30254 * tfactors.T913i + -0.3602 * tfactors.T913 + + 0.17472 * tfactors.T9 + -0.0223 * tfactors.T953 + -0.4581 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // tu19r - ln_set_rate = 4.12313 + -7.889 * tfactors.T9i - + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.000728098 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.30254 * tfactors.T943i + (1.0/3.0) * -0.3602 * tfactors.T923i + + 0.17472 + (5.0/3.0) * -0.0223 * tfactors.T923 + -0.4581 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 7.889 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Be7_n_to_He4_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // tu19n - ln_set_rate = -0.676485 + 6.3911e-05 * tfactors.T9i + -7.55198 * tfactors.T913i + 5.77546 * tfactors.T913 - + -0.487854 * tfactors.T9 + 0.032833 * tfactors.T953 + -1.12305 * tfactors.lnT9; + // Be7 + n --> He4 + He4 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -6.3911e-05 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -7.55198 * tfactors.T943i + (1.0/3.0) * 5.77546 * tfactors.T923i - + -0.487854 + (5.0/3.0) * 0.032833 * tfactors.T923 + -1.12305 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // wagn + ln_set_rate = 18.1614 + -0.00210045 * tfactors.T913 + + 0.000176541 * tfactors.T9 + -1.36797e-05 * tfactors.T953 + 1.00083 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.00210045 * tfactors.T923i + + 0.000176541 + (5.0/3.0) * -1.36797e-05 * tfactors.T923 + 1.00083 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_He3_to_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // He3 + n --> He4 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Be9_p_to_He4_Li6_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // ka02n - ln_set_rate = 9.04572 + -1.50147 * tfactors.T913 - + 1.0 * tfactors.lnT9; + // Be9 + p --> He4 + Li6 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.50147 * tfactors.T923i - + 1.0 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // cf88n + ln_set_rate = 26.0751 + -10.359 * tfactors.T913i + 0.102577 * tfactors.T913 + + 4.43544 * tfactors.T9 + -5.97105 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // ka02n - ln_set_rate = 5.51711; - amrex::ignore_unused(tfactors); + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -10.359 * tfactors.T943i + (1.0/3.0) * 0.102577 * tfactors.T923i + + 4.43544 + (5.0/3.0) * -5.97105 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // cf88r + ln_set_rate = 20.3228 + -5.16 * tfactors.T9i + + -0.75 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.16 * tfactors.T9i * tfactors.T9i + + -0.75 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_He3_to_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // He3 + p --> He4 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // cf88r + ln_set_rate = 19.927 + -3.046 * tfactors.T9i + + -1.0 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // bet+w - ln_set_rate = -27.7611 + -4.30107e-12 * tfactors.T9i + -6.141 * tfactors.T913i + -1.93473e-09 * tfactors.T913 - + 2.04145e-10 * tfactors.T9 + -1.80372e-11 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.046 * tfactors.T9i * tfactors.T9i + + -1.0 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 4.30107e-12 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -6.141 * tfactors.T943i + (1.0/3.0) * -1.93473e-09 * tfactors.T923i - + 2.04145e-10 + (5.0/3.0) * -1.80372e-11 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Be9_He4_to_n_C12_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Be9 + He4 --> n + C12 + + rate = 0.0; + drate_dT = 0.0; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_He3_to_Be7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // He3 + He4 --> Be7 + // cf88r + ln_set_rate = 11.744 + -4.179 * tfactors.T9i + + -1.5 * tfactors.lnT9; - rate = 0.0; - drate_dT = 0.0; + ln_set_rate += log_scor; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 4.179 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - // cd08n - ln_set_rate = 17.7075 + -12.8271 * tfactors.T913i + -3.8126 * tfactors.T913 - + 0.0942285 * tfactors.T9 + -0.00301018 * tfactors.T953 + 1.33333 * tfactors.lnT9; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - ln_set_rate += log_scor; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -12.8271 * tfactors.T943i + (1.0/3.0) * -3.8126 * tfactors.T923i - + 0.0942285 + (5.0/3.0) * -0.00301018 * tfactors.T923 + 1.33333 * tfactors.T9i; + // cf88r + ln_set_rate = -1.48281 + -1.834 * tfactors.T9i + + -1.5 * tfactors.lnT9; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + ln_set_rate += log_scor; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.834 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - // cd08n - ln_set_rate = 15.6099 + -12.8271 * tfactors.T913i + -0.0308225 * tfactors.T913 - + -0.654685 * tfactors.T9 + 0.0896331 * tfactors.T953 + -0.666667 * tfactors.lnT9; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - ln_set_rate += log_scor; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -12.8271 * tfactors.T943i + (1.0/3.0) * -0.0308225 * tfactors.T923i - + -0.654685 + (5.0/3.0) * 0.0896331 * tfactors.T923 + -0.666667 * tfactors.T9i; + // cf88r + ln_set_rate = -9.51959 + -1.184 * tfactors.T9i + + -1.5 * tfactors.lnT9; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + ln_set_rate += log_scor; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.184 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; -} + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Li6_to_Li7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // cf88n + ln_set_rate = 31.464 + -23.87 * tfactors.T913i + 0.566698 * tfactors.T913 + + 44.0957 * tfactors.T9 + -314.232 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // Li6 + n --> Li7 + ln_set_rate += log_scor; - rate = 0.0; - drate_dT = 0.0; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -23.87 * tfactors.T943i + (1.0/3.0) * 0.566698 * tfactors.T923i + + 44.0957 + (5.0/3.0) * -314.232 * tfactors.T923 + -0.666667 * tfactors.T9i; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // jz10n - ln_set_rate = 9.04782; - amrex::ignore_unused(tfactors); + // cf88r + ln_set_rate = 19.2962 + -12.732 * tfactors.T9i; - ln_set_rate += log_scor; + ln_set_rate += log_scor; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 12.732 * tfactors.T9i * tfactors.T9i; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_B10_n_to_He4_Li7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Li6_to_Be7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // B10 + n --> He4 + Li7 - // Li6 + p --> Be7 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // cf88n + ln_set_rate = 20.0438; + amrex::ignore_unused(tfactors); - // nacrn - ln_set_rate = 14.2792 + -8.4372 * tfactors.T913i + -0.515473 * tfactors.T913 - + 0.0285578 * tfactors.T9 + 0.00879731 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -8.4372 * tfactors.T943i + (1.0/3.0) * -0.515473 * tfactors.T923i - + 0.0285578 + (5.0/3.0) * 0.00879731 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_B10_p_to_He4_Be7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Li6_to_B10_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // B10 + p --> He4 + Be7 - // Li6 + He4 --> B10 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // nacrr + ln_set_rate = -6.45503 + -0.560753 * tfactors.T9i + 0.532995 * tfactors.T913i + 22.8893 * tfactors.T913 + + -3.08149 * tfactors.T9 + 0.218269 * tfactors.T953 + -1.5 * tfactors.lnT9; - // cf88r - ln_set_rate = 1.04267 + -3.71313 * tfactors.T9i + 3.33334 * tfactors.T913i + 3.25335 * tfactors.T913 - + 0.374434 * tfactors.T9 + -0.0706244 * tfactors.T953 + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.560753 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 0.532995 * tfactors.T943i + (1.0/3.0) * 22.8893 * tfactors.T923i + + -3.08149 + (5.0/3.0) * 0.218269 * tfactors.T923 + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.71313 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 3.33334 * tfactors.T943i + (1.0/3.0) * 3.25335 * tfactors.T923i - + 0.374434 + (5.0/3.0) * -0.0706244 * tfactors.T923 + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // nacrn + ln_set_rate = 44.213 + -12.9754 * tfactors.T913i + -44.3224 * tfactors.T913 + + 62.9626 * tfactors.T9 + -49.5228 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // cf88n - ln_set_rate = 15.2167 + -18.79 * tfactors.T913i + 0.234225 * tfactors.T913 - + 3.23344 * tfactors.T9 + -1.14529 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -12.9754 * tfactors.T943i + (1.0/3.0) * -44.3224 * tfactors.T923i + + 62.9626 + (5.0/3.0) * -49.5228 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -18.79 * tfactors.T943i + (1.0/3.0) * 0.234225 * tfactors.T923i - + 3.23344 + (5.0/3.0) * -1.14529 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_B10_He4_to_n_N13_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Li7_to_B11_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // B10 + He4 --> n + N13 - // Li7 + He4 --> B11 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // cf88n + ln_set_rate = 30.5042 + -27.8719 * tfactors.T913i + -0.599503 * tfactors.T913 + + 0.122849 * tfactors.T9 + -0.0393717 * tfactors.T953 + -0.507333 * tfactors.lnT9; - // nacrr - ln_set_rate = 10.6937 + -6.44203 * tfactors.T9i - + 0.190698 * tfactors.T9 + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -27.8719 * tfactors.T943i + (1.0/3.0) * -0.599503 * tfactors.T923i + + 0.122849 + (5.0/3.0) * -0.0393717 * tfactors.T923 + -0.507333 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 6.44203 * tfactors.T9i * tfactors.T9i - + 0.190698 + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // nacrr - ln_set_rate = 5.81084 + -2.95915 * tfactors.T9i - + -1.5 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_B10_He4_to_p_C13_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // B10 + He4 --> p + C13 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.95915 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // wagn + ln_set_rate = 34.498 + -27.99 * tfactors.T913i + + -0.666667 * tfactors.lnT9; - // nacrn - ln_set_rate = 18.4284 + -19.163 * tfactors.T913i + 0.0587651 * tfactors.T913 - + 0.773338 * tfactors.T9 + -0.201519 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -27.99 * tfactors.T943i + + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -19.163 * tfactors.T943i + (1.0/3.0) * 0.0587651 * tfactors.T923i - + 0.773338 + (5.0/3.0) * -0.201519 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_B11_He4_to_n_N14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Be7_to_B8_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // B11 + He4 --> n + N14 - // Be7 + p --> B8 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // cf88n + ln_set_rate = 29.5726 + -28.234 * tfactors.T913i + -0.325987 * tfactors.T913 + + 30.135 * tfactors.T9 + -78.4165 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // nacrr - ln_set_rate = 7.73399 + -7.345 * tfactors.T9i - + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -28.234 * tfactors.T943i + (1.0/3.0) * -0.325987 * tfactors.T923i + + 30.135 + (5.0/3.0) * -78.4165 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 7.345 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // cf88r + ln_set_rate = 15.3084 + -8.596 * tfactors.T9i + + 0.6 * tfactors.lnT9; - // nacrn - ln_set_rate = 12.5315 + -10.264 * tfactors.T913i + -0.203472 * tfactors.T913 - + 0.121083 * tfactors.T9 + -0.00700063 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 8.596 * tfactors.T9i * tfactors.T9i + + 0.6 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -10.264 * tfactors.T943i + (1.0/3.0) * -0.203472 * tfactors.T923i - + 0.121083 + (5.0/3.0) * -0.00700063 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // cf88r + ln_set_rate = 7.44425 + -5.178 * tfactors.T9i + + -1.5 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Be9_to_B10_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.178 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - // Be9 + p --> B10 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // cf88r + ln_set_rate = 0.582216 + -2.827 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // nacrr - ln_set_rate = 7.68698 + -2.59506 * tfactors.T9i - + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.827 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.59506 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // nacrn - ln_set_rate = 16.2908 + -10.361 * tfactors.T913i + 0.695179 * tfactors.T913 - + 0.342365 * tfactors.T9 + -0.356569 * tfactors.T953 + -0.666667 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_B11_He4_to_p_C14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // B11 + He4 --> p + C14 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -10.361 * tfactors.T943i + (1.0/3.0) * 0.695179 * tfactors.T923i - + 0.342365 + (5.0/3.0) * -0.356569 * tfactors.T923 + -0.666667 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // bb92r + ln_set_rate = 5.48852 + -5.147 * tfactors.T9i + -5.81643e-09 * tfactors.T913i + 1.24374e-08 * tfactors.T913 + + -9.55069e-10 * tfactors.T9 + 6.81706e-11 * tfactors.T953 + -1.5 * tfactors.lnT9; - // nacrr - ln_set_rate = 14.9657 + -11.5391 * tfactors.T9i - + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.147 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -5.81643e-09 * tfactors.T943i + (1.0/3.0) * 1.24374e-08 * tfactors.T923i + + -9.55069e-10 + (5.0/3.0) * 6.81706e-11 * tfactors.T923 + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 11.5391 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // bb92r + ln_set_rate = 6.1942 + -5.157 * tfactors.T9i + -2.8504e-09 * tfactors.T913i + 5.85721e-09 * tfactors.T913 + + -4.34052e-10 * tfactors.T9 + 3.01373e-11 * tfactors.T953 + -1.5 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_B10_to_B11_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.157 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.8504e-09 * tfactors.T943i + (1.0/3.0) * 5.85721e-09 * tfactors.T923i + + -4.34052e-10 + (5.0/3.0) * 3.01373e-11 * tfactors.T923 + -1.5 * tfactors.T9i; - // B10 + n --> B11 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // bb92n + ln_set_rate = 178.316 + -0.19519 * tfactors.T9i + 4.28912 * tfactors.T913i + -214.72 * tfactors.T913 + + 57.4073 * tfactors.T9 + -25.5329 * tfactors.T953 + 53.0473 * tfactors.lnT9; - // wagn - ln_set_rate = 11.1004 + -1.9027e-12 * tfactors.T9i + 2.65756e-10 * tfactors.T913i + -9.63588e-10 * tfactors.T913 - + 1.07466e-10 * tfactors.T9 + -9.87569e-12 * tfactors.T953 + 3.12603e-10 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.19519 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 4.28912 * tfactors.T943i + (1.0/3.0) * -214.72 * tfactors.T923i + + 57.4073 + (5.0/3.0) * -25.5329 * tfactors.T923 + 53.0473 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.9027e-12 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.65756e-10 * tfactors.T943i + (1.0/3.0) * -9.63588e-10 * tfactors.T923i - + 1.07466e-10 + (5.0/3.0) * -9.87569e-12 * tfactors.T923 + 3.12603e-10 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // bb92r + ln_set_rate = 15.4137 + -11.26 * tfactors.T9i + -1.87598e-08 * tfactors.T913i + 3.26423e-08 * tfactors.T913 + + -2.18782e-09 * tfactors.T9 + 1.43323e-10 * tfactors.T953 + 0.6 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_B11_to_C12_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 11.26 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.87598e-08 * tfactors.T943i + (1.0/3.0) * 3.26423e-08 * tfactors.T923i + + -2.18782e-09 + (5.0/3.0) * 1.43323e-10 * tfactors.T923 + 0.6 * tfactors.T9i; - // B11 + p --> C12 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // bb92r + ln_set_rate = -5.21398 + -2.868 * tfactors.T9i + 2.62625e-09 * tfactors.T913i + -6.58921e-09 * tfactors.T913 + + 5.62244e-10 * tfactors.T9 + -4.28925e-11 * tfactors.T953 + -1.5 * tfactors.lnT9; - // nw00n - ln_set_rate = 25.5647 + -12.095 * tfactors.T913i + -6.68421 * tfactors.T913 - + -0.0148736 * tfactors.T9 + 0.0364288 * tfactors.T953 + 1.33333 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.868 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.62625e-09 * tfactors.T943i + (1.0/3.0) * -6.58921e-09 * tfactors.T923i + + 5.62244e-10 + (5.0/3.0) * -4.28925e-11 * tfactors.T923 + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -12.095 * tfactors.T943i + (1.0/3.0) * -6.68421 * tfactors.T923i - + -0.0148736 + (5.0/3.0) * 0.0364288 * tfactors.T923 + 1.33333 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // nw00n - ln_set_rate = 18.6165 + -12.095 * tfactors.T913i + -1.95046 * tfactors.T913 - + 9.56928 * tfactors.T9 + -10.0637 * tfactors.T953 + -0.666667 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // C12 + C12 --> p + Na23 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -12.095 * tfactors.T943i + (1.0/3.0) * -1.95046 * tfactors.T923i - + 9.56928 + (5.0/3.0) * -10.0637 * tfactors.T923 + -0.666667 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // cf88r + ln_set_rate = 60.9649 + -84.165 * tfactors.T913i + -1.4191 * tfactors.T913 + + -0.114619 * tfactors.T9 + -0.070307 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // nw00r - ln_set_rate = 8.67352 + -1.71197 * tfactors.T9i - + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -84.165 * tfactors.T943i + (1.0/3.0) * -1.4191 * tfactors.T923i + + -0.114619 + (5.0/3.0) * -0.070307 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.71197 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_C12_to_C13_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // C12 + C12 --> He4 + Ne20 - // C12 + n --> C13 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // cf88r + ln_set_rate = 61.2863 + -84.165 * tfactors.T913i + -1.56627 * tfactors.T913 + + -0.0736084 * tfactors.T9 + -0.072797 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ks03 - ln_set_rate = 7.98821 + -0.00836732 * tfactors.T9i + 1.49573 * tfactors.T913i + -0.841102 * tfactors.T913 - + 0.0340543 * tfactors.T9 + -0.0026392 * tfactors.T953 + 1.6662 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -84.165 * tfactors.T943i + (1.0/3.0) * -1.56627 * tfactors.T923i + + -0.0736084 + (5.0/3.0) * -0.072797 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.00836732 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.49573 * tfactors.T943i + (1.0/3.0) * -0.841102 * tfactors.T923i - + 0.0340543 + (5.0/3.0) * -0.0026392 * tfactors.T923 + 1.6662 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C13_p_to_n_N13_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_C12_to_N13_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // C13 + p --> n + N13 - // C12 + p --> N13 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // nacrn + ln_set_rate = 17.7625 + -34.8483 * tfactors.T9i + 1.26126 * tfactors.T913 + + -0.204952 * tfactors.T9 + 0.0310523 * tfactors.T953; - // ls09n - ln_set_rate = 17.1482 + -13.692 * tfactors.T913i + -0.230881 * tfactors.T913 - + 4.44362 * tfactors.T9 + -3.15898 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 34.8483 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.26126 * tfactors.T923i + + -0.204952 + (5.0/3.0) * 0.0310523 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -13.692 * tfactors.T943i + (1.0/3.0) * -0.230881 * tfactors.T923i - + 4.44362 + (5.0/3.0) * -3.15898 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // ls09r - ln_set_rate = 17.5428 + -3.77849 * tfactors.T9i + -5.10735 * tfactors.T913i + -2.24111 * tfactors.T913 - + 0.148883 * tfactors.T9 + -1.5 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C13_d_to_n_N14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // C13 + d --> n + N14 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.77849 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -5.10735 * tfactors.T943i + (1.0/3.0) * -2.24111 * tfactors.T923i - + 0.148883 + -1.5 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // bb92n + ln_set_rate = 27.1993 + -0.00261944 * tfactors.T9i + -16.8935 * tfactors.T913i + 4.06445 * tfactors.T913 + + -1.1715 * tfactors.T9 + 0.118556 * tfactors.T953 + -1.13937 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_C12_to_O16_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.00261944 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -16.8935 * tfactors.T943i + (1.0/3.0) * 4.06445 * tfactors.T923i + + -1.1715 + (5.0/3.0) * 0.118556 * tfactors.T923 + -1.13937 * tfactors.T9i; - // C12 + He4 --> O16 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + } - // nac2 - ln_set_rate = 254.634 + -1.84097 * tfactors.T9i + 103.411 * tfactors.T913i + -420.567 * tfactors.T913 - + 64.0874 * tfactors.T9 + -12.4624 * tfactors.T953 + 137.303 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C13_He4_to_n_O16_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // C13 + He4 --> n + O16 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.84097 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 103.411 * tfactors.T943i + (1.0/3.0) * -420.567 * tfactors.T923i - + 64.0874 + (5.0/3.0) * -12.4624 * tfactors.T923 + 137.303 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // gl12 + ln_set_rate = 62.5775 + -0.0277331 * tfactors.T9i + -32.3917 * tfactors.T913i + -48.934 * tfactors.T913 + + 44.1843 * tfactors.T9 + -20.8743 * tfactors.T953 + 2.02494 * tfactors.lnT9; - // nac2 - ln_set_rate = 69.6526 + -1.39254 * tfactors.T9i + 58.9128 * tfactors.T913i + -148.273 * tfactors.T913 - + 9.08324 * tfactors.T9 + -0.541041 * tfactors.T953 + 70.3554 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0277331 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -32.3917 * tfactors.T943i + (1.0/3.0) * -48.934 * tfactors.T923i + + 44.1843 + (5.0/3.0) * -20.8743 * tfactors.T923 + 2.02494 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.39254 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 58.9128 * tfactors.T943i + (1.0/3.0) * -148.273 * tfactors.T923i - + 9.08324 + (5.0/3.0) * -0.541041 * tfactors.T923 + 70.3554 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // gl12 + ln_set_rate = 79.3008 + -0.30489 * tfactors.T9i + 7.43132 * tfactors.T913i + -84.8689 * tfactors.T913 + + 3.65083 * tfactors.T9 + -0.148015 * tfactors.T953 + 37.6008 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_C13_to_C14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.30489 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 7.43132 * tfactors.T943i + (1.0/3.0) * -84.8689 * tfactors.T923i + + 3.65083 + (5.0/3.0) * -0.148015 * tfactors.T923 + 37.6008 * tfactors.T9i; - // C13 + n --> C14 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + } - // ks03 - ln_set_rate = 35.3048 + -0.133687 * tfactors.T9i + 18.3578 * tfactors.T913i + -46.5786 * tfactors.T913 - + 2.58472 * tfactors.T9 + -0.118622 * tfactors.T953 + 19.9142 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_C14_d_to_n_N15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // C14 + d --> n + N15 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.133687 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 18.3578 * tfactors.T943i + (1.0/3.0) * -46.5786 * tfactors.T923i - + 2.58472 + (5.0/3.0) * -0.118622 * tfactors.T923 + 19.9142 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // bk92 + ln_set_rate = 33.5637 + -16.939 * tfactors.T913i + -4.14392 * tfactors.T913 + + 0.438623 * tfactors.T9 + -0.0354193 * tfactors.T953 + 0.333333 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_C13_to_N14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -16.939 * tfactors.T943i + (1.0/3.0) * -4.14392 * tfactors.T923i + + 0.438623 + (5.0/3.0) * -0.0354193 * tfactors.T923 + 0.333333 * tfactors.T9i; - // C13 + p --> N14 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // bk92 + ln_set_rate = 30.6841 + -16.939 * tfactors.T913i + -0.582342 * tfactors.T913 + + -8.17066 * tfactors.T9 + 1.70865 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // nacrn - ln_set_rate = 18.5155 + -13.72 * tfactors.T913i + -0.450018 * tfactors.T913 - + 3.70823 * tfactors.T9 + -1.70545 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -16.939 * tfactors.T943i + (1.0/3.0) * -0.582342 * tfactors.T923i + + -8.17066 + (5.0/3.0) * 1.70865 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -13.72 * tfactors.T943i + (1.0/3.0) * -0.450018 * tfactors.T923i - + 3.70823 + (5.0/3.0) * -1.70545 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // nacrr - ln_set_rate = 13.9637 + -5.78147 * tfactors.T9i + -0.196703 * tfactors.T913 - + 0.142126 * tfactors.T9 + -0.0238912 * tfactors.T953 + -1.5 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N13_He4_to_p_O16_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // N13 + He4 --> p + O16 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.78147 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.196703 * tfactors.T923i - + 0.142126 + (5.0/3.0) * -0.0238912 * tfactors.T923 + -1.5 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // cf88n + ln_set_rate = 40.4644 + -35.829 * tfactors.T913i + -0.530275 * tfactors.T913 + + -0.982462 * tfactors.T9 + 0.0808059 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // nacrr - ln_set_rate = 15.1825 + -13.5543 * tfactors.T9i - + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -35.829 * tfactors.T943i + (1.0/3.0) * -0.530275 * tfactors.T923i + + -0.982462 + (5.0/3.0) * 0.0808059 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 13.5543 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N14_n_to_p_C14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_C14_to_N15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // N14 + n --> p + C14 - // C14 + p --> N15 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // cf88 + ln_set_rate = 4.13728 + 12.3428 * tfactors.T913 + + -2.70025 * tfactors.T9 + 0.236625 * tfactors.T953 + 1.0 * tfactors.lnT9; - // il10r - ln_set_rate = 17.1024 + -1.52341 * tfactors.T9i + -10.658 * tfactors.T913i + 1.73644 * tfactors.T913 - + -0.350498 * tfactors.T9 + 0.0279902 * tfactors.T953 + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 12.3428 * tfactors.T923i + + -2.70025 + (5.0/3.0) * 0.236625 * tfactors.T923 + 1.0 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.52341 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -10.658 * tfactors.T943i + (1.0/3.0) * 1.73644 * tfactors.T923i - + -0.350498 + (5.0/3.0) * 0.0279902 * tfactors.T923 + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // cf88n + ln_set_rate = 13.6622 + -4.33989 * tfactors.T913 + + 11.4311 * tfactors.T9 + -11.7764 * tfactors.T953; - // il10n - ln_set_rate = 20.119 + -13.9619 * tfactors.T913i + -4.34315 * tfactors.T913 - + 6.64922 * tfactors.T9 + -3.22592 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -4.33989 * tfactors.T923i + + 11.4311 + (5.0/3.0) * -11.7764 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -13.9619 * tfactors.T943i + (1.0/3.0) * -4.34315 * tfactors.T923i - + 6.64922 + (5.0/3.0) * -3.22592 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N14_p_to_n_O14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_C14_to_O18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // N14 + p --> n + O14 - // C14 + He4 --> O18 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // nacr + ln_set_rate = 11.3432 + -68.7567 * tfactors.T9i + 5.48024 * tfactors.T913 + + -0.764072 * tfactors.T9 + 0.0587804 * tfactors.T953; - // il10r - ln_set_rate = 11.8309 + -10.3983 * tfactors.T9i + -3.83188 * tfactors.T913 - + 1.64358 * tfactors.T9 + -0.177785 * tfactors.T953 + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 68.7567 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.48024 * tfactors.T923i + + -0.764072 + (5.0/3.0) * 0.0587804 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 10.3983 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -3.83188 * tfactors.T923i - + 1.64358 + (5.0/3.0) * -0.177785 * tfactors.T923 + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // il10r - ln_set_rate = -23.805 + -2.06876 * tfactors.T9i - + -1.5 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N14_He4_to_n_F17_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // N14 + He4 --> n + F17 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.06876 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // nacr + ln_set_rate = 19.2094 + -54.9473 * tfactors.T9i + -0.712285 * tfactors.T913 + + 0.240317 * tfactors.T9 + -0.0201705 * tfactors.T953; - // il10n - ln_set_rate = 18.4877 + -31.7222 * tfactors.T913i + 11.3923 * tfactors.T913 - + -9.92249 * tfactors.T9 + -2.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 54.9473 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.712285 * tfactors.T923i + + 0.240317 + (5.0/3.0) * -0.0201705 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -31.7222 * tfactors.T943i + (1.0/3.0) * 11.3923 * tfactors.T923i - + -9.92249 + (5.0/3.0) * -2.0 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_N13_to_N14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // N13 + n --> N14 + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N15_p_to_n_O15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - rate = 0.0; - drate_dT = 0.0; + // N15 + p --> n + O15 - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + rate = 0.0; + drate_dT = 0.0; - // wiesn - ln_set_rate = 13.9377 + -0.0054652 * tfactors.T9i + 1.72241e-10 * tfactors.T913i + -5.62522e-10 * tfactors.T913 - + 5.59212e-11 * tfactors.T9 + -4.6549e-12 * tfactors.T953; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - ln_set_rate += log_scor; + // nacrn + ln_set_rate = 18.3942 + -41.0335 * tfactors.T9i + 0.331392 * tfactors.T913 + + 0.0171473 * tfactors.T9; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0054652 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.72241e-10 * tfactors.T943i + (1.0/3.0) * -5.62522e-10 * tfactors.T923i - + 5.59212e-11 + (5.0/3.0) * -4.6549e-12 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // wiesr - ln_set_rate = -3.63074 + -2.99547 * tfactors.T9i + 9.44873e-10 * tfactors.T913i + -2.33713e-09 * tfactors.T913 - + 1.97507e-10 * tfactors.T9 + -1.49747e-11 * tfactors.T953 + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 41.0335 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.331392 * tfactors.T923i + + 0.0171473; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.99547 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 9.44873e-10 * tfactors.T943i + (1.0/3.0) * -2.33713e-09 * tfactors.T923i - + 1.97507e-10 + (5.0/3.0) * -1.49747e-11 * tfactors.T923 + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_N15_p_to_He4_C12_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // N15 + p --> He4 + C12 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_N13_to_O14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // N13 + p --> O14 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // nacrn + ln_set_rate = 27.4764 + -15.253 * tfactors.T913i + 1.59318 * tfactors.T913 + + 2.4479 * tfactors.T9 + -2.19708 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // lg06r - ln_set_rate = 10.9971 + -6.12602 * tfactors.T9i + 1.57122 * tfactors.T913i - + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -15.253 * tfactors.T943i + (1.0/3.0) * 1.59318 * tfactors.T923i + + 2.4479 + (5.0/3.0) * -2.19708 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 6.12602 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.57122 * tfactors.T943i - + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nacrr + ln_set_rate = -6.57522 + -1.1638 * tfactors.T9i + 22.7105 * tfactors.T913 + + -2.90707 * tfactors.T9 + 0.205754 * tfactors.T953 + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // lg06n - ln_set_rate = 18.1356 + -15.1676 * tfactors.T913i + 0.0955166 * tfactors.T913 - + 3.0659 * tfactors.T9 + -0.507339 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.1638 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 22.7105 * tfactors.T923i + + -2.90707 + (5.0/3.0) * 0.205754 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -15.1676 * tfactors.T943i + (1.0/3.0) * 0.0955166 * tfactors.T923i - + 3.0659 + (5.0/3.0) * -0.507339 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nacrr + ln_set_rate = 20.8972 + -7.406 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 7.406 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_N14_to_N15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // N14 + n --> N15 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // nacrr + ln_set_rate = -4.87347 + -2.02117 * tfactors.T9i + 30.8497 * tfactors.T913 + + -8.50433 * tfactors.T9 + -1.54426 * tfactors.T953 + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 10.1651 + -0.0114078 * tfactors.T9i + 1.396 * tfactors.T913i + -3.47552 * tfactors.T913 - + 0.351773 * tfactors.T9 + -0.0229344 * tfactors.T953 + 1.02161 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.02117 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 30.8497 * tfactors.T923i + + -8.50433 + (5.0/3.0) * -1.54426 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0114078 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.396 * tfactors.T943i + (1.0/3.0) * -3.47552 * tfactors.T923i - + 0.351773 + (5.0/3.0) * -0.0229344 * tfactors.T923 + 1.02161 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O14_He4_to_p_F17_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // O14 + He4 --> p + F17 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_N14_to_O15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // N14 + p --> O15 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // Ha96r + ln_set_rate = 12.1289 + -12.0223 * tfactors.T9i + + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // im05r - ln_set_rate = 6.73578 + -4.891 * tfactors.T9i - + 0.0682 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 12.0223 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 4.891 * tfactors.T9i * tfactors.T9i - + 0.0682 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // Ha96r + ln_set_rate = 18.6518 + -26.0 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // im05r - ln_set_rate = 7.65444 + -2.998 * tfactors.T9i - + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 26.0 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.998 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // Ha96n + ln_set_rate = 40.8358 + -39.388 * tfactors.T913i + -17.4673 * tfactors.T913 + + 35.3029 * tfactors.T9 + -24.8162 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // im05n - ln_set_rate = 20.1169 + -15.193 * tfactors.T913i + -4.63975 * tfactors.T913 - + 9.73458 * tfactors.T9 + -9.55051 * tfactors.T953 + 0.333333 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.388 * tfactors.T943i + (1.0/3.0) * -17.4673 * tfactors.T923i + + 35.3029 + (5.0/3.0) * -24.8162 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -15.193 * tfactors.T943i + (1.0/3.0) * -4.63975 * tfactors.T923i - + 9.73458 + (5.0/3.0) * -9.55051 * tfactors.T923 + 0.333333 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // Ha96r + ln_set_rate = 16.3087 + -22.51 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // im05n - ln_set_rate = 17.01 + -15.193 * tfactors.T913i + -0.161954 * tfactors.T913 - + -7.52123 * tfactors.T9 + -0.987565 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 22.51 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -15.193 * tfactors.T943i + (1.0/3.0) * -0.161954 * tfactors.T923i - + -7.52123 + (5.0/3.0) * -0.987565 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // Ha96r + ln_set_rate = 11.1184 + -13.6 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 13.6 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_N14_to_F18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // N14 + He4 --> F18 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // Ha96r + ln_set_rate = -106.091 + -0.453036 * tfactors.T9i + + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // il10r - ln_set_rate = 13.8995 + -10.9656 * tfactors.T9i + -5.6227 * tfactors.T913i - + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.453036 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 10.9656 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -5.6227 * tfactors.T943i - + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O15_n_to_He4_C12_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // il10r - ln_set_rate = 0.196838 + -5.16034 * tfactors.T9i - + -1.5 * tfactors.lnT9; + // O15 + n --> He4 + C12 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.16034 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // cf88n + ln_set_rate = 17.3699 + 0.124787 * tfactors.T913 + + 0.0588937 * tfactors.T9 + -0.00679206 * tfactors.T953; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10n - ln_set_rate = 21.5339 + -36.2504 * tfactors.T913i - + -5.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.124787 * tfactors.T923i + + 0.0588937 + (5.0/3.0) * -0.00679206 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -36.2504 * tfactors.T943i - + (5.0/3.0) * -5.0 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O16_C12_to_p_Al27_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // O16 + C12 --> p + Al27 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_N15_to_O16_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // N15 + p --> O16 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // cf88r + ln_set_rate = 68.5253 + 0.205134 * tfactors.T9i + -119.242 * tfactors.T913i + 13.3667 * tfactors.T913 + + 0.295425 * tfactors.T9 + -0.267288 * tfactors.T953 + -9.91729 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // li10r - ln_set_rate = 14.5444 + -10.2295 * tfactors.T9i - + 0.0459037 * tfactors.T9 + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.205134 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -119.242 * tfactors.T943i + (1.0/3.0) * 13.3667 * tfactors.T923i + + 0.295425 + (5.0/3.0) * -0.267288 * tfactors.T923 + -9.91729 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 10.2295 * tfactors.T9i * tfactors.T9i - + 0.0459037 + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O16_C12_to_He4_Mg24_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // li10r - ln_set_rate = 6.59056 + -2.92315 * tfactors.T9i - + -1.5 * tfactors.lnT9; + // O16 + C12 --> He4 + Mg24 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.92315 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // cf88r + ln_set_rate = 48.5341 + 0.37204 * tfactors.T9i + -133.413 * tfactors.T913i + 50.1572 * tfactors.T913 + + -3.15987 * tfactors.T9 + 0.0178251 * tfactors.T953 + -23.7027 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // li10n - ln_set_rate = 20.0176 + -15.24 * tfactors.T913i + 0.334926 * tfactors.T913 - + 4.59088 * tfactors.T9 + -4.78468 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.37204 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -133.413 * tfactors.T943i + (1.0/3.0) * 50.1572 * tfactors.T923i + + -3.15987 + (5.0/3.0) * 0.0178251 * tfactors.T923 + -23.7027 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -15.24 * tfactors.T943i + (1.0/3.0) * 0.334926 * tfactors.T923i - + 4.59088 + (5.0/3.0) * -4.78468 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // O16 + O16 --> p + P31 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_N15_to_F19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // N15 + He4 --> F19 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // cf88r + ln_set_rate = 85.2628 + 0.223453 * tfactors.T9i + -145.844 * tfactors.T913i + 8.72612 * tfactors.T913 + + -0.554035 * tfactors.T9 + -0.137562 * tfactors.T953 + -6.88807 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // il10r - ln_set_rate = -28.7989 + -4.19986 * tfactors.T9i + 35.4292 * tfactors.T913 - + -5.5767 * tfactors.T9 + 0.441293 * tfactors.T953 + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.223453 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -145.844 * tfactors.T943i + (1.0/3.0) * 8.72612 * tfactors.T923i + + -0.554035 + (5.0/3.0) * -0.137562 * tfactors.T923 + -6.88807 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 4.19986 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 35.4292 * tfactors.T923i - + -5.5767 + (5.0/3.0) * 0.441293 * tfactors.T923 + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // il10r - ln_set_rate = 3.5342 + -6.98462 * tfactors.T9i - + -1.5 * tfactors.lnT9; + // O16 + O16 --> He4 + Si28 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 6.98462 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // cf88r + ln_set_rate = 97.2435 + -0.268514 * tfactors.T9i + -119.324 * tfactors.T913i + -32.2497 * tfactors.T913 + + 1.46214 * tfactors.T9 + -0.200893 * tfactors.T953 + 13.2148 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10r - ln_set_rate = -9.41892 + -4.17795 * tfactors.T9i - + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.268514 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -119.324 * tfactors.T943i + (1.0/3.0) * -32.2497 * tfactors.T923i + + 1.46214 + (5.0/3.0) * -0.200893 * tfactors.T923 + 13.2148 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 4.17795 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O17_n_to_He4_C14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // il10n - ln_set_rate = 25.3916 + -36.2324 * tfactors.T913i - + -2.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + // O17 + n --> He4 + C14 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -36.2324 * tfactors.T943i - + (5.0/3.0) * -2.0 * tfactors.T923 + -0.666667 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // kg91r + ln_set_rate = 13.73 + -1.961 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.961 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_O14_to_O15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // O14 + n --> O15 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // kg91n + ln_set_rate = 10.345; + amrex::ignore_unused(tfactors); - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // rpsmr - ln_set_rate = 9.87196 + 0.0160481 * tfactors.T9i + -1.38986 * tfactors.T913i + 1.74662 * tfactors.T913 - + -0.0276897 * tfactors.T9 + 0.00321014 * tfactors.T953 + -1.06122 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.0160481 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.38986 * tfactors.T943i + (1.0/3.0) * 1.74662 * tfactors.T923i - + -0.0276897 + (5.0/3.0) * 0.00321014 * tfactors.T923 + -1.06122 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // kg91r + ln_set_rate = 18.0922 + -2.759 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.759 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_O14_to_Ne18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // O14 + He4 --> Ne18 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O17_p_to_He4_N14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // wh87n - ln_set_rate = 26.4429 + -39.38 * tfactors.T913i + -0.0772187 * tfactors.T913 - + -0.635361 * tfactors.T9 + 0.106236 * tfactors.T953 + -0.666667 * tfactors.lnT9; + // O17 + p --> He4 + N14 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.38 * tfactors.T943i + (1.0/3.0) * -0.0772187 * tfactors.T923i - + -0.635361 + (5.0/3.0) * 0.106236 * tfactors.T923 + -0.666667 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = -7.20763 + -0.753395 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // wh87r - ln_set_rate = -4.69948 + -12.159 * tfactors.T9i - + 5.0 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.753395 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 12.159 * tfactors.T9i * tfactors.T9i - + 5.0 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10n + ln_set_rate = 19.579 + -16.9078 * tfactors.T913i + + -2.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // wh87r - ln_set_rate = 3.52636 + -22.61 * tfactors.T9i - + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -16.9078 * tfactors.T943i + + (5.0/3.0) * -2.0 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 22.61 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = 10.174 + -4.95865 * tfactors.T9i + 5.10182 * tfactors.T913 + + 0.379373 * tfactors.T9 + -0.0672515 * tfactors.T953 + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // wh87r - ln_set_rate = -2.15417 + -11.73 * tfactors.T9i - + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 4.95865 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.10182 * tfactors.T923i + + 0.379373 + (5.0/3.0) * -0.0672515 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 11.73 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = 5.5336 + -2.11477 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.11477 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_O15_to_O16_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // O15 + n --> O16 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O17_He4_to_n_Ne20_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // rpsmr - ln_set_rate = 8.08476 + 0.0135346 * tfactors.T9i + -1.11761 * tfactors.T913i + 1.0167 * tfactors.T913 - + 0.0449976 * tfactors.T9 + -0.00204682 * tfactors.T953 + -0.789217 * tfactors.lnT9; + // O17 + He4 --> n + Ne20 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.0135346 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.11761 * tfactors.T943i + (1.0/3.0) * 1.0167 * tfactors.T923i - + 0.0449976 + (5.0/3.0) * -0.00204682 * tfactors.T923 + -0.789217 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nacrr + ln_set_rate = 1.80342 + -13.8 * tfactors.T9i + 12.6501 * tfactors.T913 + + -1.10938 * tfactors.T9 + 0.0696232 * tfactors.T953 + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 13.8 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 12.6501 * tfactors.T923i + + -1.10938 + (5.0/3.0) * 0.0696232 * tfactors.T923 + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_O15_to_Ne19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // O15 + He4 --> Ne19 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // nacrr + ln_set_rate = 7.45588 + -8.55 * tfactors.T9i + + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // dc11r - ln_set_rate = -32.2496 + -4.20439 * tfactors.T9i + -3.24609 * tfactors.T913i + 44.4647 * tfactors.T913 - + -9.79962 * tfactors.T9 + 0.841782 * tfactors.T953 + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 8.55 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 4.20439 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -3.24609 * tfactors.T943i + (1.0/3.0) * 44.4647 * tfactors.T923i - + -9.79962 + (5.0/3.0) * 0.841782 * tfactors.T923 + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nacrn + ln_set_rate = 40.621 + -39.918 * tfactors.T913i + + 0.227017 * tfactors.T9 + -0.900234 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // dc11r - ln_set_rate = -0.0452465 + -5.88439 * tfactors.T9i - + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.918 * tfactors.T943i + + 0.227017 + (5.0/3.0) * -0.900234 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.88439 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O18_p_to_He4_N15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // dc11n - ln_set_rate = 26.2914 + -39.578 * tfactors.T913i - + -3.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + // O18 + p --> He4 + N15 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.578 * tfactors.T943i - + (5.0/3.0) * -3.0 * tfactors.T923 + -0.666667 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = -27.9044 + -0.245884 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.245884 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_O16_to_O17_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // O16 + n --> O17 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // il10n + ln_set_rate = 26.9671 + -16.6979 * tfactors.T913i + + -3.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 7.21546 + 0.0235015 * tfactors.T9i + -2.11246 * tfactors.T913i + 4.87742 * tfactors.T913 - + -0.314426 * tfactors.T9 + 0.0169515 * tfactors.T953 + -0.984784 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -16.6979 * tfactors.T943i + + (5.0/3.0) * -3.0 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.0235015 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.11246 * tfactors.T943i + (1.0/3.0) * 4.87742 * tfactors.T923i - + -0.314426 + (5.0/3.0) * 0.0169515 * tfactors.T923 + -0.984784 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = 8.94352 + -5.32335 * tfactors.T9i + 11.6568 * tfactors.T913 + + -2.16303 * tfactors.T9 + 0.209965 * tfactors.T953 + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.32335 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 11.6568 * tfactors.T923i + + -2.16303 + (5.0/3.0) * 0.209965 * tfactors.T923 + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_O16_to_F17_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // O16 + p --> F17 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // il10r + ln_set_rate = 10.2725 + -1.663 * tfactors.T9i + + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ia08n - ln_set_rate = 19.0904 + -16.696 * tfactors.T913i + -1.16252 * tfactors.T913 - + 0.267703 * tfactors.T9 + -0.0338411 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.663 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -16.696 * tfactors.T943i + (1.0/3.0) * -1.16252 * tfactors.T923i - + 0.267703 + (5.0/3.0) * -0.0338411 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_O18_He4_to_n_Ne21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // O18 + He4 --> n + Ne21 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_O16_to_Ne20_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // O16 + He4 --> Ne20 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // nacr + ln_set_rate = 2.51575 + -8.41969 * tfactors.T9i + 6.51299 * tfactors.T913 + + -0.334277 * tfactors.T9 + 2.0 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // co10r - ln_set_rate = 3.88571 + -10.3585 * tfactors.T9i - + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 8.41969 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 6.51299 * tfactors.T923i + + -0.334277 + 2.0 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 10.3585 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nacr + ln_set_rate = 1.3415 + -15.444 * tfactors.T9i + 11.656 * tfactors.T913 + + -1.24869 * tfactors.T9 + 1.0 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // co10n - ln_set_rate = 23.903 + -39.7262 * tfactors.T913i + -0.210799 * tfactors.T913 - + 0.442879 * tfactors.T9 + -0.0797753 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 15.444 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 11.656 * tfactors.T923i + + -1.24869 + 1.0 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.7262 * tfactors.T943i + (1.0/3.0) * -0.210799 * tfactors.T923i - + 0.442879 + (5.0/3.0) * -0.0797753 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nacrn + ln_set_rate = 2.82796 + -8.085 * tfactors.T9i; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // co10r - ln_set_rate = 9.50848 + -12.7643 * tfactors.T9i + -3.65925 * tfactors.T913 - + 0.714224 * tfactors.T9 + -0.00107508 * tfactors.T953 + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 8.085 * tfactors.T9i * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 12.7643 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -3.65925 * tfactors.T923i - + 0.714224 + (5.0/3.0) * -0.00107508 * tfactors.T923 + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F17_n_to_p_O17_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // F17 + n --> p + O17 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_O17_to_O18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // O17 + n --> O18 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // wagn + ln_set_rate = 19.0085; + amrex::ignore_unused(tfactors); - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // bb92n - ln_set_rate = 4.27026 + -5.69067e-13 * tfactors.T9i + 7.48144e-11 * tfactors.T913i + -2.47239e-10 * tfactors.T913 - + 2.48052e-11 * tfactors.T9 + -2.07736e-12 * tfactors.T953 + 8.43048e-11 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.69067e-13 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 7.48144e-11 * tfactors.T943i + (1.0/3.0) * -2.47239e-10 * tfactors.T923i - + 2.48052e-11 + (5.0/3.0) * -2.07736e-12 * tfactors.T923 + 8.43048e-11 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F18_n_to_p_O18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // bb92r - ln_set_rate = 20.1798 + -2.12961 * tfactors.T9i + 16.8052 * tfactors.T913i + -30.138 * tfactors.T913 - + 1.14711 * tfactors.T9 + -0.0220312 * tfactors.T953 + 13.7452 * tfactors.lnT9; + // F18 + n --> p + O18 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.12961 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 16.8052 * tfactors.T943i + (1.0/3.0) * -30.138 * tfactors.T923i - + 1.14711 + (5.0/3.0) * -0.0220312 * tfactors.T923 + 13.7452 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // wagn + ln_set_rate = 19.0085; + amrex::ignore_unused(tfactors); - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_O17_to_F18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // O17 + p --> F18 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F18_n_to_He4_N15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // il10r - ln_set_rate = 9.39048 + -6.22828 * tfactors.T9i + 2.31435 * tfactors.T913 - + -0.302835 * tfactors.T9 + 0.020133 * tfactors.T953 + -1.5 * tfactors.lnT9; + // F18 + n --> He4 + N15 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 6.22828 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.31435 * tfactors.T923i - + -0.302835 + (5.0/3.0) * 0.020133 * tfactors.T923 + -1.5 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // cf88n + ln_set_rate = 18.8011 + 1.74308 * tfactors.T913 + + -1.15123 * tfactors.T9 + 0.135196 * tfactors.T953; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10r - ln_set_rate = -13.077 + -0.746296 * tfactors.T9i - + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 1.74308 * tfactors.T923i + + -1.15123 + (5.0/3.0) * 0.135196 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.746296 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F18_p_to_He4_O15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // il10n - ln_set_rate = 15.8929 + -16.4035 * tfactors.T913i + 4.31885 * tfactors.T913 - + -0.709921 * tfactors.T9 + -2.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + // F18 + p --> He4 + O15 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -16.4035 * tfactors.T943i + (1.0/3.0) * 4.31885 * tfactors.T923i - + -0.709921 + (5.0/3.0) * -2.0 * tfactors.T923 + -0.666667 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = 1.75704 + -3.01675 * tfactors.T9i + 13.3223 * tfactors.T913 + + -1.36696 * tfactors.T9 + 0.0757363 * tfactors.T953 + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.01675 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 13.3223 * tfactors.T923i + + -1.36696 + (5.0/3.0) * 0.0757363 * tfactors.T923 + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_O17_to_Ne21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // O17 + He4 --> Ne21 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // il10r + ln_set_rate = -31.7388 + -0.376432 * tfactors.T9i + 61.738 * tfactors.T913 + + -108.29 * tfactors.T9 + -34.2365 * tfactors.T953 + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // be13r - ln_set_rate = -25.0898 + -5.50926 * tfactors.T9i + 123.363 * tfactors.T913i + -87.4351 * tfactors.T913 - + -3.40974e-06 * tfactors.T9 + -57.0469 * tfactors.T953 + 82.2218 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.376432 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 61.738 * tfactors.T923i + + -108.29 + (5.0/3.0) * -34.2365 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.50926 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 123.363 * tfactors.T943i + (1.0/3.0) * -87.4351 * tfactors.T923i - + -3.40974e-06 + (5.0/3.0) * -57.0469 * tfactors.T923 + 82.2218 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10n + ln_set_rate = 62.0058 + -21.4023 * tfactors.T913i + -80.8891 * tfactors.T913 + + 134.6 * tfactors.T9 + -126.504 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // be13r - ln_set_rate = -117.134 + -13.6759 * tfactors.T9i + 3.31162e-08 * tfactors.T913i + 130.258 * tfactors.T913 - + -7.92551e-05 * tfactors.T9 + -4.13772 * tfactors.T953 + -42.7753 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -21.4023 * tfactors.T943i + (1.0/3.0) * -80.8891 * tfactors.T923i + + 134.6 + (5.0/3.0) * -126.504 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 13.6759 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 3.31162e-08 * tfactors.T943i + (1.0/3.0) * 130.258 * tfactors.T923i - + -7.92551e-05 + (5.0/3.0) * -4.13772 * tfactors.T923 + -42.7753 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F18_He4_to_p_Ne21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // be13r - ln_set_rate = 2.14 + -5.99952 * tfactors.T9i + 2.87641 * tfactors.T913i + -3.54489 * tfactors.T913 - + -2.11222e-08 * tfactors.T9 + -3.90649e-09 * tfactors.T953 + 4.75778 * tfactors.lnT9; + // F18 + He4 --> p + Ne21 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.99952 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.87641 * tfactors.T943i + (1.0/3.0) * -3.54489 * tfactors.T923i - + -2.11222e-08 + (5.0/3.0) * -3.90649e-09 * tfactors.T923 + 4.75778 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // rpsmr + ln_set_rate = 49.7863 + -1.84559 * tfactors.T9i + 21.4461 * tfactors.T913i + -73.252 * tfactors.T913 + + 2.42329 * tfactors.T9 + -0.077278 * tfactors.T953 + 40.7604 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.84559 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 21.4461 * tfactors.T943i + (1.0/3.0) * -73.252 * tfactors.T923i + + 2.42329 + (5.0/3.0) * -0.077278 * tfactors.T923 + 40.7604 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_O18_to_F19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // O18 + p --> F19 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F19_p_to_n_Ne19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // il10n - ln_set_rate = 19.917 + -16.7246 * tfactors.T913i - + -3.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + // F19 + p --> n + Ne19 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -16.7246 * tfactors.T943i - + (5.0/3.0) * -3.0 * tfactors.T923 + -0.666667 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nacr + ln_set_rate = 15.6732 + -46.6617 * tfactors.T9i + 4.34441 * tfactors.T913 + + -1.71268 * tfactors.T9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10r - ln_set_rate = 7.26876 + -6.7253 * tfactors.T9i + 3.99059 * tfactors.T913 - + -0.593127 * tfactors.T9 + 0.0877534 * tfactors.T953 + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 46.6617 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 4.34441 * tfactors.T923i + + -1.71268; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 6.7253 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 3.99059 * tfactors.T923i - + -0.593127 + (5.0/3.0) * 0.0877534 * tfactors.T923 + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nacr + ln_set_rate = 20.353 + -46.6617 * tfactors.T9i + -1.58171 * tfactors.T913 + + 0.0324472 * tfactors.T9 + 1.0 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10r - ln_set_rate = 5.07648 + -1.65681 * tfactors.T9i - + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 46.6617 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.58171 * tfactors.T923i + + 0.0324472 + 1.0 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.65681 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F19_p_to_He4_O16_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // il10r - ln_set_rate = -35.0079 + -0.244743 * tfactors.T9i - + -1.5 * tfactors.lnT9; + // F19 + p --> He4 + O16 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.244743 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nacr + ln_set_rate = -52.7043 + -0.12765 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.12765 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_O18_to_Ne22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // O18 + He4 --> Ne22 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // nacr + ln_set_rate = 26.2916 + -18.116 * tfactors.T913i + + 1.86674 * tfactors.T9 + -7.5666 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // il10r - ln_set_rate = -31.9126 + -2.00306 * tfactors.T9i - + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -18.116 * tfactors.T943i + + 1.86674 + (5.0/3.0) * -7.5666 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.00306 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nacrr + ln_set_rate = 14.3586 + -3.286 * tfactors.T9i + + -0.21103 * tfactors.T9 + 2.87702 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10r - ln_set_rate = -81.3036 + -0.676112 * tfactors.T9i - + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.286 * tfactors.T9i * tfactors.T9i + + -0.21103 + 2.87702 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.676112 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nacr + ln_set_rate = 15.1955 + -3.75185 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10r - ln_set_rate = 14.9748 + -31.0468 * tfactors.T9i - + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.75185 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 31.0468 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // nacr + ln_set_rate = 8.239 + -2.46828 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10r - ln_set_rate = 82.2053 + -1.58534 * tfactors.T9i + -44.3823 * tfactors.T913i + -46.6617 * tfactors.T913 - + 7.88059 * tfactors.T9 + -0.590829 * tfactors.T953 + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.46828 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.58534 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -44.3823 * tfactors.T943i + (1.0/3.0) * -46.6617 * tfactors.T923i - + 7.88059 + (5.0/3.0) * -0.590829 * tfactors.T923 + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_F19_He4_to_p_Ne22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // F19 + He4 --> p + Ne22 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_F17_to_F18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // F17 + n --> F18 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // da18r + ln_set_rate = 52.9317 + -2.8444 * tfactors.T9i + -38.7722 * tfactors.T913i + -13.3654 * tfactors.T913 + + 0.863648 * tfactors.T9 + -0.0451491 * tfactors.T953 + 1.33333 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // rpsmr - ln_set_rate = 3.42798 + 0.0273799 * tfactors.T9i + -2.71353 * tfactors.T913i + 6.19871 * tfactors.T913 - + -0.26836 * tfactors.T9 + 0.0115489 * tfactors.T953 + -2.52002 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.8444 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -38.7722 * tfactors.T943i + (1.0/3.0) * -13.3654 * tfactors.T923i + + 0.863648 + (5.0/3.0) * -0.0451491 * tfactors.T923 + 1.33333 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.0273799 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.71353 * tfactors.T943i + (1.0/3.0) * 6.19871 * tfactors.T923i - + -0.26836 + (5.0/3.0) * 0.0115489 * tfactors.T923 + -2.52002 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // da18r + ln_set_rate = 51.6709 + -45.7808 * tfactors.T9i + -34.5008 * tfactors.T913i + 56.9316 * tfactors.T913 + + 2.09613 * tfactors.T9 + -32.496 * tfactors.T953 + 0.333333 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 45.7808 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -34.5008 * tfactors.T943i + (1.0/3.0) * 56.9316 * tfactors.T923i + + 2.09613 + (5.0/3.0) * -32.496 * tfactors.T923 + 0.333333 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_F17_to_Ne18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // F17 + p --> Ne18 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // da18r + ln_set_rate = 29430.6 + -133.026 * tfactors.T9i + 12625.1 * tfactors.T913i + -49107.1 * tfactors.T913 + + 9227.53 * tfactors.T9 + -2086.65 * tfactors.T953 + 14520.2 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // cb09 - ln_set_rate = -7.84708 + -0.0323504 * tfactors.T9i + -14.2191 * tfactors.T913i + 34.0647 * tfactors.T913 - + -16.5698 * tfactors.T9 + 2.48116 * tfactors.T953 + -2.13376 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 133.026 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 12625.1 * tfactors.T943i + (1.0/3.0) * -49107.1 * tfactors.T923i + + 9227.53 + (5.0/3.0) * -2086.65 * tfactors.T923 + 14520.2 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0323504 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -14.2191 * tfactors.T943i + (1.0/3.0) * 34.0647 * tfactors.T923i - + -16.5698 + (5.0/3.0) * 2.48116 * tfactors.T923 + -2.13376 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne18_n_to_p_F18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // cb09 - ln_set_rate = 27.5778 + -4.95969 * tfactors.T9i + -21.3249 * tfactors.T913i + -0.230774 * tfactors.T913 - + 0.917931 * tfactors.T9 + -0.0440377 * tfactors.T953 + -7.36014 * tfactors.lnT9; + // Ne18 + n --> p + F18 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 4.95969 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -21.3249 * tfactors.T943i + (1.0/3.0) * -0.230774 * tfactors.T923i - + 0.917931 + (5.0/3.0) * -0.0440377 * tfactors.T923 + -7.36014 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 18.5429 + 0.590026 * tfactors.T913 + + 0.0742242 * tfactors.T9 + -0.0116856 * tfactors.T953; + + ln_set_rate += log_scor; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.590026 * tfactors.T923i + + 0.0742242 + (5.0/3.0) * -0.0116856 * tfactors.T923; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne18_n_to_He4_O15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_F17_to_Na21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ne18 + n --> He4 + O15 - // F17 + He4 --> Na21 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 18.0529 + 0.377325 * tfactors.T913 + + 0.0968945 * tfactors.T9 + -0.007769 * tfactors.T953; - // rpsmr - ln_set_rate = 41.1529 + -1.72817 * tfactors.T9i + 15.559 * tfactors.T913i + -68.3231 * tfactors.T913 - + 2.54275 * tfactors.T9 + -0.0989207 * tfactors.T953 + 36.8877 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.377325 * tfactors.T923i + + 0.0968945 + (5.0/3.0) * -0.007769 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.72817 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 15.559 * tfactors.T943i + (1.0/3.0) * -68.3231 * tfactors.T923i - + 2.54275 + (5.0/3.0) * -0.0989207 * tfactors.T923 + 36.8877 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne18_He4_to_p_Na21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_F18_to_F19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ne18 + He4 --> p + Na21 - // F18 + n --> F19 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // mo14r + ln_set_rate = -23.5811 + -5.76874 * tfactors.T9i + 8.5632e-08 * tfactors.T913i + 24.8579 * tfactors.T913 + + 0.0823845 * tfactors.T9 + -0.365374 * tfactors.T953 + -2.21415e-06 * tfactors.lnT9; - // rpsmr - ln_set_rate = 0.814964 + 0.0604483 * tfactors.T9i + -6.65988 * tfactors.T913i + 18.3243 * tfactors.T913 - + -1.47263 * tfactors.T9 + 0.0955082 * tfactors.T953 + -6.75505 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.76874 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 8.5632e-08 * tfactors.T943i + (1.0/3.0) * 24.8579 * tfactors.T923i + + 0.0823845 + (5.0/3.0) * -0.365374 * tfactors.T923 + -2.21415e-06 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.0604483 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -6.65988 * tfactors.T943i + (1.0/3.0) * 18.3243 * tfactors.T923i - + -1.47263 + (5.0/3.0) * 0.0955082 * tfactors.T923 + -6.75505 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // mo14r + ln_set_rate = -22.4389 + -10.2598 * tfactors.T9i + 4.73034e-07 * tfactors.T913i + 36.29 * tfactors.T913 + + -6.56565 * tfactors.T9 + -2.96287e-06 * tfactors.T953 + -9.00373e-07 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_F18_to_Ne19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 10.2598 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 4.73034e-07 * tfactors.T943i + (1.0/3.0) * 36.29 * tfactors.T923i + + -6.56565 + (5.0/3.0) * -2.96287e-06 * tfactors.T923 + -9.00373e-07 * tfactors.T9i; - // F18 + p --> Ne19 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // mo14r + ln_set_rate = -37.3979 + -3.8681 * tfactors.T9i + 7.09521e-06 * tfactors.T913i + 34.1789 * tfactors.T913 + + -1.72974 * tfactors.T9 + -0.0395081 * tfactors.T953 + -7.82759e-07 * tfactors.lnT9; - // il10r - ln_set_rate = -5.85727 + -2.89147 * tfactors.T9i + 13.1683 * tfactors.T913 - + -1.92023 * tfactors.T9 + 0.16901 * tfactors.T953 + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.8681 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 7.09521e-06 * tfactors.T943i + (1.0/3.0) * 34.1789 * tfactors.T923i + + -1.72974 + (5.0/3.0) * -0.0395081 * tfactors.T923 + -7.82759e-07 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.89147 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 13.1683 * tfactors.T923i - + -1.92023 + (5.0/3.0) * 0.16901 * tfactors.T923 + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // il10r - ln_set_rate = -29.449 + -0.39895 * tfactors.T9i + 22.4903 * tfactors.T913 - + 0.307872 * tfactors.T9 + -0.296226 * tfactors.T953 + -1.5 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne19_n_to_He4_O16_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Ne19 + n --> He4 + O16 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.39895 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 22.4903 * tfactors.T923i - + 0.307872 + (5.0/3.0) * -0.296226 * tfactors.T923 + -1.5 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ths8r + ln_set_rate = 17.6409 + 1.70736 * tfactors.T913 + + -0.132579 * tfactors.T9 + 0.00454218 * tfactors.T953; - // il10n - ln_set_rate = 57.4084 + -21.4023 * tfactors.T913i + -93.766 * tfactors.T913 - + 179.258 * tfactors.T9 + -202.561 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 1.70736 * tfactors.T923i + + -0.132579 + (5.0/3.0) * 0.00454218 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -21.4023 * tfactors.T943i + (1.0/3.0) * -93.766 * tfactors.T923i - + 179.258 + (5.0/3.0) * -202.561 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne19_He4_to_p_Na22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_F18_to_Na22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ne19 + He4 --> p + Na22 - // F18 + He4 --> Na22 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 43.1874 + -46.6346 * tfactors.T913i + 0.866532 * tfactors.T913 + + -0.893541 * tfactors.T9 + 0.0747971 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // rpsmr - ln_set_rate = 35.3786 + -1.82957 * tfactors.T9i + 18.8956 * tfactors.T913i + -65.6134 * tfactors.T913 - + 1.71114 * tfactors.T9 + -0.0260999 * tfactors.T953 + 37.8396 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -46.6346 * tfactors.T943i + (1.0/3.0) * 0.866532 * tfactors.T923i + + -0.893541 + (5.0/3.0) * 0.0747971 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.82957 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 18.8956 * tfactors.T943i + (1.0/3.0) * -65.6134 * tfactors.T923i - + 1.71114 + (5.0/3.0) * -0.0260999 * tfactors.T923 + 37.8396 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne20_p_to_He4_F17_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_F19_to_Ne20_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ne20 + p --> He4 + F17 - // F19 + p --> Ne20 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // nacr + ln_set_rate = 41.563 + -47.9266 * tfactors.T9i + -43.18 * tfactors.T913i + 4.46827 * tfactors.T913 + + -1.63915 * tfactors.T9 + 0.123483 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // nacrr - ln_set_rate = -5.63093 + -7.74414 * tfactors.T9i + 31.6442 * tfactors.T913i + -58.6563 * tfactors.T913 - + 67.7365 * tfactors.T9 + -22.9721 * tfactors.T953 + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 47.9266 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -43.18 * tfactors.T943i + (1.0/3.0) * 4.46827 * tfactors.T923i + + -1.63915 + (5.0/3.0) * 0.123483 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 7.74414 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 31.6442 * tfactors.T943i + (1.0/3.0) * -58.6563 * tfactors.T923i - + 67.7365 + (5.0/3.0) * -22.9721 * tfactors.T923 + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // nacrr - ln_set_rate = 12.3816 + -1.71383 * tfactors.T9i + -11.3832 * tfactors.T913i + 5.47872 * tfactors.T913 - + -1.07203 * tfactors.T9 + 0.11196 * tfactors.T953 + -1.5 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne20_C12_to_p_P31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Ne20 + C12 --> p + P31 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.71383 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -11.3832 * tfactors.T943i + (1.0/3.0) * 5.47872 * tfactors.T923i - + -1.07203 + (5.0/3.0) * 0.11196 * tfactors.T923 + -1.5 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // rolfr + ln_set_rate = -268.136 + -38.7624 * tfactors.T9i + 361.154 * tfactors.T913i + -92.643 * tfactors.T913 + + -9.98738 * tfactors.T9 + 0.892737 * tfactors.T953 + 161.042 * tfactors.lnT9; - // nacrn - ln_set_rate = 18.2807 + -18.116 * tfactors.T913i + -1.4622 * tfactors.T913 - + 6.95113 * tfactors.T9 + -2.90366 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 38.7624 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 361.154 * tfactors.T943i + (1.0/3.0) * -92.643 * tfactors.T923i + + -9.98738 + (5.0/3.0) * 0.892737 * tfactors.T923 + 161.042 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -18.116 * tfactors.T943i + (1.0/3.0) * -1.4622 * tfactors.T923i - + 6.95113 + (5.0/3.0) * -2.90366 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne20_C12_to_He4_Si28_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_F19_to_Na23_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ne20 + C12 --> He4 + Si28 - // F19 + He4 --> Na23 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // rolfr + ln_set_rate = -308.905 + -47.2175 * tfactors.T9i + 514.197 * tfactors.T913i + -200.896 * tfactors.T913 + + -6.42713 * tfactors.T9 + 0.758256 * tfactors.T953 + 236.359 * tfactors.lnT9; - // rpsmr - ln_set_rate = 52.7856 + -2.11408 * tfactors.T9i + 39.7219 * tfactors.T913i + -100.401 * tfactors.T913 - + 3.15808 * tfactors.T9 + -0.0629822 * tfactors.T953 + 54.4823 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 47.2175 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 514.197 * tfactors.T943i + (1.0/3.0) * -200.896 * tfactors.T923i + + -6.42713 + (5.0/3.0) * 0.758256 * tfactors.T923 + 236.359 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.11408 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 39.7219 * tfactors.T943i + (1.0/3.0) * -100.401 * tfactors.T923i - + 3.15808 + (5.0/3.0) * -0.0629822 * tfactors.T923 + 54.4823 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne21_He4_to_n_Mg24_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ne18_to_Ne19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ne21 + He4 --> n + Mg24 - // Ne18 + n --> Ne19 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // nacrr + ln_set_rate = -7.26831 + -13.2638 * tfactors.T9i + 18.0748 * tfactors.T913 + + -0.981883 * tfactors.T9 + -1.5 * tfactors.lnT9; - // ths8r - ln_set_rate = 9.249 + 0.937162 * tfactors.T913 - + -0.0221952 * tfactors.T9 + -0.00101206 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 13.2638 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 18.0748 * tfactors.T923i + + -0.981883 + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.937162 * tfactors.T923i - + -0.0221952 + (5.0/3.0) * -0.00101206 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // nacrn + ln_set_rate = 43.9762 + -46.88 * tfactors.T913i + -0.536629 * tfactors.T913 + + 0.144715 * tfactors.T9 + -0.197624 * tfactors.T953 + -0.666667 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ne19_to_Ne20_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -46.88 * tfactors.T943i + (1.0/3.0) * -0.536629 * tfactors.T923i + + 0.144715 + (5.0/3.0) * -0.197624 * tfactors.T923 + -0.666667 * tfactors.T9i; - // Ne19 + n --> Ne20 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + } - // ths8r - ln_set_rate = 6.40633 + 1.57592 * tfactors.T913 - + -0.11175 * tfactors.T9 + 0.00226473 * tfactors.T953; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ne22_He4_to_n_Mg25_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Ne22 + He4 --> n + Mg25 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 1.57592 * tfactors.T923i - + -0.11175 + (5.0/3.0) * 0.00226473 * tfactors.T923; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // li12r + ln_set_rate = -27.5027 + -7.38607 * tfactors.T9i + 35.987 * tfactors.T913 + + -4.12183 * tfactors.T9 + 0.263326 * tfactors.T953 + -1.5 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ne19_to_Mg23_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 7.38607 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 35.987 * tfactors.T923i + + -4.12183 + (5.0/3.0) * 0.263326 * tfactors.T923 + -1.5 * tfactors.T9i; - // Ne19 + He4 --> Mg23 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // li12n + ln_set_rate = -10.4729 + -5.55032 * tfactors.T9i + 15.4898 * tfactors.T913 + + -30.8154 * tfactors.T9 + -3.0 * tfactors.T953 + 2.0 * tfactors.lnT9; - // ths8r - ln_set_rate = 37.1998 + -46.6346 * tfactors.T913i + -1.1007 * tfactors.T913 - + -0.794097 * tfactors.T9 + 0.0813036 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.55032 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 15.4898 * tfactors.T923i + + -30.8154 + (5.0/3.0) * -3.0 * tfactors.T923 + 2.0 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -46.6346 * tfactors.T943i + (1.0/3.0) * -1.1007 * tfactors.T923i - + -0.794097 + (5.0/3.0) * 0.0813036 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // li12n + ln_set_rate = -52.326 + -5.55032 * tfactors.T9i + 88.2725 * tfactors.T913 + + -40.1578 * tfactors.T9 + -3.0 * tfactors.T953; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ne20_to_Ne21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.55032 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 88.2725 * tfactors.T923i + + -40.1578 + (5.0/3.0) * -3.0 * tfactors.T923; - // Ne20 + n --> Ne21 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + } - // ka02r - ln_set_rate = 12.7344 + -1.70393 * tfactors.T9i - + -1.5 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na21_n_to_p_Ne21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Na21 + n --> p + Ne21 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.70393 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ths8r + ln_set_rate = 17.9167 + 2.17917 * tfactors.T913 + + -0.303135 * tfactors.T9 + 0.019321 * tfactors.T953; - // ka02n - ln_set_rate = 8.57651; - amrex::ignore_unused(tfactors); + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 2.17917 * tfactors.T923i + + -0.303135 + (5.0/3.0) * 0.019321 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na21_n_to_He4_F18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ne20_to_Na21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Na21 + n --> He4 + F18 - // Ne20 + p --> Na21 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 15.7482 + 1.06229 * tfactors.T913 + + 0.212448 * tfactors.T9 + -0.020685 * tfactors.T953; - // ly18 - ln_set_rate = 195297.0 + -61.14 * tfactors.T9i + 21894.7 * tfactors.T913i + -319153.0 * tfactors.T913 - + 224369.0 * tfactors.T9 + -188049.0 * tfactors.T953 + 48703.4 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 1.06229 * tfactors.T923i + + 0.212448 + (5.0/3.0) * -0.020685 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 61.14 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 21894.7 * tfactors.T943i + (1.0/3.0) * -319153.0 * tfactors.T923i - + 224369.0 + (5.0/3.0) * -188049.0 * tfactors.T923 + 48703.4 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // ly18 - ln_set_rate = 207.877 + -0.152711 * tfactors.T9i + 15.325 * tfactors.T913i + -294.859 * tfactors.T913 - + 107.692 * tfactors.T9 + -46.2072 * tfactors.T953 + 57.8398 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na22_n_to_p_Ne22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Na22 + n --> p + Ne22 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.152711 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 15.325 * tfactors.T943i + (1.0/3.0) * -294.859 * tfactors.T923i - + 107.692 + (5.0/3.0) * -46.2072 * tfactors.T923 + 57.8398 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // cf88n + ln_set_rate = 19.6489 + -0.0514777 * tfactors.T913 + + 0.0274055 * tfactors.T9 + -0.00690277 * tfactors.T953; - // ly18 - ln_set_rate = 5.83103 + -8.838 * tfactors.T9i + 20.5893 * tfactors.T913i + -17.5841 * tfactors.T913 - + 0.243226 * tfactors.T9 + -0.000231418 * tfactors.T953 + 12.8398 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.0514777 * tfactors.T923i + + 0.0274055 + (5.0/3.0) * -0.00690277 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 8.838 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 20.5893 * tfactors.T943i + (1.0/3.0) * -17.5841 * tfactors.T923i - + 0.243226 + (5.0/3.0) * -0.000231418 * tfactors.T923 + 12.8398 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // ly18 - ln_set_rate = 230.019 + -4.45358 * tfactors.T9i + 258.57 * tfactors.T913i + -506.387 * tfactors.T913 - + 22.1576 * tfactors.T9 + -0.721182 * tfactors.T953 + 230.288 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na22_n_to_He4_F19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Na22 + n --> He4 + F19 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 4.45358 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 258.57 * tfactors.T943i + (1.0/3.0) * -506.387 * tfactors.T923i - + 22.1576 + (5.0/3.0) * -0.721182 * tfactors.T923 + 230.288 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // cf88 + ln_set_rate = 6.59038 + 6.22036 * tfactors.T913 + + -0.0209891 * tfactors.T9 + -0.0689843 * tfactors.T953 + 1.0 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_Mg24_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 6.22036 * tfactors.T923i + + -0.0209891 + (5.0/3.0) * -0.0689843 * tfactors.T923 + 1.0 * tfactors.T9i; - // Ne20 + He4 --> Mg24 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // cf88n + ln_set_rate = 15.0061 + -0.0532251 * tfactors.T913 + + 1.00044 * tfactors.T9 + -0.13238 * tfactors.T953; - // il10r - ln_set_rate = -8.79827 + -12.7809 * tfactors.T9i + 16.9229 * tfactors.T913 - + -2.57325 * tfactors.T9 + 0.208997 * tfactors.T953 + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.0532251 * tfactors.T923i + + 1.00044 + (5.0/3.0) * -0.13238 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 12.7809 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 16.9229 * tfactors.T923i - + -2.57325 + (5.0/3.0) * 0.208997 * tfactors.T923 + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // il10r - ln_set_rate = 1.98307 + -9.22026 * tfactors.T9i - + -1.5 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na22_He4_to_p_Mg25_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Na22 + He4 --> p + Mg25 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 9.22026 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ths8r + ln_set_rate = 44.973 + -50.0924 * tfactors.T913i + 0.807739 * tfactors.T913 + + -0.956029 * tfactors.T9 + 0.0793321 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // il10r - ln_set_rate = -38.7055 + -2.50605 * tfactors.T9i - + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -50.0924 * tfactors.T943i + (1.0/3.0) * 0.807739 * tfactors.T923i + + -0.956029 + (5.0/3.0) * 0.0793321 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.50605 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // il10n - ln_set_rate = 24.5058 + -46.2525 * tfactors.T913i + 5.58901 * tfactors.T913 - + 7.61843 * tfactors.T9 + -3.683 * tfactors.T953 + -0.666667 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na23_p_to_n_Mg23_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Na23 + p --> n + Mg23 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -46.2525 * tfactors.T943i + (1.0/3.0) * 5.58901 * tfactors.T923i - + 7.61843 + (5.0/3.0) * -3.683 * tfactors.T923 + -0.666667 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // nacr + ln_set_rate = 19.4638 + -56.1542 * tfactors.T9i + 0.993488 * tfactors.T913 + + -0.257094 * tfactors.T9 + 0.0284334 * tfactors.T953; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ne21_to_Ne22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 56.1542 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.993488 * tfactors.T923i + + -0.257094 + (5.0/3.0) * 0.0284334 * tfactors.T923; - // Ne21 + n --> Ne22 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + } - // ks03 - ln_set_rate = 23.5205 + 0.0482005 * tfactors.T9i + -0.238173 * tfactors.T913i + -12.2336 * tfactors.T913 - + 1.14968 * tfactors.T9 + -0.0768882 * tfactors.T953 + 2.63636 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na23_p_to_He4_Ne20_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Na23 + p --> He4 + Ne20 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.0482005 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.238173 * tfactors.T943i + (1.0/3.0) * -12.2336 * tfactors.T923i - + 1.14968 + (5.0/3.0) * -0.0768882 * tfactors.T923 + 2.63636 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // il10r + ln_set_rate = -6.58736 + -2.31577 * tfactors.T9i + 19.7297 * tfactors.T913 + + -2.20987 * tfactors.T9 + 0.153374 * tfactors.T953 + -1.5 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ne21_to_Na22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.31577 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 19.7297 * tfactors.T923i + + -2.20987 + (5.0/3.0) * 0.153374 * tfactors.T923 + -1.5 * tfactors.T9i; - // Ne21 + p --> Na22 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // il10r + ln_set_rate = 0.0178295 + -1.86103 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // il10n - ln_set_rate = 19.0696 + -19.2096 * tfactors.T913i - + -1.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.86103 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -19.2096 * tfactors.T943i - + (5.0/3.0) * -1.0 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // il10n + ln_set_rate = 18.9756 + -20.0024 * tfactors.T913i + 11.5988 * tfactors.T913 + + -1.37398 * tfactors.T9 + -1.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // il10r - ln_set_rate = -39.4862 + -4.21385 * tfactors.T9i + 21.1176 * tfactors.T913i + 34.0411 * tfactors.T913 - + -4.45593 * tfactors.T9 + 0.328613 * tfactors.T953 + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -20.0024 * tfactors.T943i + (1.0/3.0) * 11.5988 * tfactors.T923i + + -1.37398 + (5.0/3.0) * -1.0 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 4.21385 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 21.1176 * tfactors.T943i + (1.0/3.0) * 34.0411 * tfactors.T923i - + -4.45593 + (5.0/3.0) * 0.328613 * tfactors.T923 + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // il10r - ln_set_rate = 1.75704 + -1.39957 * tfactors.T9i - + -1.5 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Na23_He4_to_p_Mg26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Na23 + He4 --> p + Mg26 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.39957 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ths8r + ln_set_rate = 44.527 + -50.2042 * tfactors.T913i + 1.76141 * tfactors.T913 + + -1.36813 * tfactors.T9 + 0.123087 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // il10r - ln_set_rate = -47.6554 + -0.19618 * tfactors.T9i - + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -50.2042 * tfactors.T943i + (1.0/3.0) * 1.76141 * tfactors.T923i + + -1.36813 + (5.0/3.0) * 0.123087 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.19618 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg23_n_to_He4_Ne20_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ne21_to_Mg25_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Mg23 + n --> He4 + Ne20 - // Ne21 + He4 --> Mg25 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 17.7448 + 1.83199 * tfactors.T913 + + -0.290485 * tfactors.T9 + 0.0242929 * tfactors.T953; - // cf88r - ln_set_rate = 26.2429 + -22.049 * tfactors.T9i + -29.4583 * tfactors.T913 - + 14.6328 * tfactors.T9 + -3.47392 * tfactors.T953 + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 1.83199 * tfactors.T923i + + -0.290485 + (5.0/3.0) * 0.0242929 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 22.049 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -29.4583 * tfactors.T923i - + 14.6328 + (5.0/3.0) * -3.47392 * tfactors.T923 + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // cf88n - ln_set_rate = 36.6927 + -46.89 * tfactors.T913i + -0.72642 * tfactors.T913 - + -0.76406 * tfactors.T9 + 0.0797483 * tfactors.T953 + -0.666667 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg23_n_to_C12_C12_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Mg23 + n --> C12 + C12 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -46.89 * tfactors.T943i + (1.0/3.0) * -0.72642 * tfactors.T923i - + -0.76406 + (5.0/3.0) * 0.0797483 * tfactors.T923 + -0.666667 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // cf88r + ln_set_rate = -12.8267 + 11.4826 * tfactors.T913 + + 1.82849 * tfactors.T9 + -0.34844 * tfactors.T953; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ne22_to_Na23_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 11.4826 * tfactors.T923i + + 1.82849 + (5.0/3.0) * -0.34844 * tfactors.T923; - // Ne22 + p --> Na23 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + } - // ke17r - ln_set_rate = -0.599331 + -1.72007 * tfactors.T9i - + -0.310765 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg23_He4_to_p_Al26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Mg23 + He4 --> p + Al26 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.72007 * tfactors.T9i * tfactors.T9i - + -0.310765 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ths8r + ln_set_rate = 46.215 + -53.203 * tfactors.T913i + 0.71292 * tfactors.T913 + + -0.892548 * tfactors.T9 + 0.0709813 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ke17r - ln_set_rate = -21.4345 + -0.410962 * tfactors.T9i - + -1.49019 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -53.203 * tfactors.T943i + (1.0/3.0) * 0.71292 * tfactors.T923i + + -0.892548 + (5.0/3.0) * 0.0709813 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.410962 * tfactors.T9i * tfactors.T9i - + -1.49019 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // ke17r - ln_set_rate = -4.09035 + -0.799756 * tfactors.T9i - + 3.23558 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg24_p_to_He4_Na21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Mg24 + p --> He4 + Na21 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.799756 * tfactors.T9i * tfactors.T9i - + 3.23558 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // nacr + ln_set_rate = 42.3867 + -79.897 * tfactors.T9i + -49.9621 * tfactors.T913i + 5.90498 * tfactors.T913 + + -1.6598 * tfactors.T9 + 0.117817 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ke17r - ln_set_rate = 14.0373 + -8.72377 * tfactors.T9i - + -0.767467 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 79.897 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -49.9621 * tfactors.T943i + (1.0/3.0) * 5.90498 * tfactors.T923i + + -1.6598 + (5.0/3.0) * 0.117817 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 8.72377 * tfactors.T9i * tfactors.T9i - + -0.767467 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // ke17r - ln_set_rate = 11.6408 + -4.59936 * tfactors.T9i - + 0.156226 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg25_He4_to_n_Si28_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Mg25 + He4 --> n + Si28 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 4.59936 * tfactors.T9i * tfactors.T9i - + 0.156226 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // nacrn + ln_set_rate = 45.7613 + -53.415 * tfactors.T913i + -1.46489 * tfactors.T913 + + 1.7777 * tfactors.T9 + -0.903499 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ke17r - ln_set_rate = -4.00597 + -2.6179 * tfactors.T9i - + -4.29964 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -53.415 * tfactors.T943i + (1.0/3.0) * -1.46489 * tfactors.T923i + + 1.7777 + (5.0/3.0) * -0.903499 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.6179 * tfactors.T9i * tfactors.T9i - + -4.29964 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // nacr + ln_set_rate = 38.337 + -53.416 * tfactors.T913i + 8.01209 * tfactors.T913 + + -2.64791 * tfactors.T9 + 0.218637 * tfactors.T953 + 0.333333 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ne22_to_Mg26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -53.416 * tfactors.T943i + (1.0/3.0) * 8.01209 * tfactors.T923i + + -2.64791 + (5.0/3.0) * 0.218637 * tfactors.T923 + 0.333333 * tfactors.T9i; - // Ne22 + He4 --> Mg26 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + } - // li12r - ln_set_rate = -29.3146 + -6.44772 * tfactors.T9i + 43.2654 * tfactors.T913 - + -18.5982 * tfactors.T9 + 2.80101 * tfactors.T953 + -1.5 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mg26_He4_to_n_Si29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Mg26 + He4 --> n + Si29 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 6.44772 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 43.2654 * tfactors.T923i - + -18.5982 + (5.0/3.0) * 2.80101 * tfactors.T923 + -1.5 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // nacrn + ln_set_rate = 45.8397 + -53.505 * tfactors.T913i + 0.045598 * tfactors.T913 + + -0.194481 * tfactors.T9 + -0.0748153 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // li12r - ln_set_rate = -23.7527 + -3.88217 * tfactors.T9i - + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -53.505 * tfactors.T943i + (1.0/3.0) * 0.045598 * tfactors.T923i + + -0.194481 + (5.0/3.0) * -0.0748153 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.88217 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // nacrr + ln_set_rate = 15.7057 + -18.73 * tfactors.T9i + -9.54056 * tfactors.T913 + + 4.71712 * tfactors.T9 + -0.461053 * tfactors.T953 + -1.5 * tfactors.lnT9; - // li12r - ln_set_rate = -42.864 + -2.22115 * tfactors.T9i - + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 18.73 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -9.54056 * tfactors.T923i + + 4.71712 + (5.0/3.0) * -0.461053 * tfactors.T923 + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.22115 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // li12r - ln_set_rate = -92.4077 + -0.910477 * tfactors.T9i - + -1.5 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al25_n_to_p_Mg25_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Al25 + n --> p + Mg25 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.910477 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ths8r + ln_set_rate = 18.4104 + 2.28536 * tfactors.T913 + + -0.38512 * tfactors.T9 + 0.0288056 * tfactors.T953; - // li12r - ln_set_rate = -34.7254 + -6.36421 * tfactors.T9i + 35.9878 * tfactors.T913 - + -4.10684 * tfactors.T9 + 0.259345 * tfactors.T953 + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 2.28536 * tfactors.T923i + + -0.38512 + (5.0/3.0) * 0.0288056 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 6.36421 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 35.9878 * tfactors.T923i - + -4.10684 + (5.0/3.0) * 0.259345 * tfactors.T923 + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al25_n_to_He4_Na22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Na21_to_Na22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Al25 + n --> He4 + Na22 - // Na21 + n --> Na22 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 8.93927 + 2.92382 * tfactors.T913 + + 0.706669 * tfactors.T9 + -0.0950292 * tfactors.T953; - // ths8r - ln_set_rate = 7.58321 + 1.31089 * tfactors.T913 - + -0.164931 * tfactors.T9 + 0.00903374 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 2.92382 * tfactors.T923i + + 0.706669 + (5.0/3.0) * -0.0950292 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 1.31089 * tfactors.T923i - + -0.164931 + (5.0/3.0) * 0.00903374 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al25_He4_to_p_Si28_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Na21_to_Al25_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Al25 + He4 --> p + Si28 - // Na21 + He4 --> Al25 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 47.6167 + -56.3424 * tfactors.T913i + 0.553763 * tfactors.T913 + + -0.84072 * tfactors.T9 + 0.0634219 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 35.3006 + -49.9709 * tfactors.T913i + 1.63835 * tfactors.T913 - + -1.18562 * tfactors.T9 + 0.101965 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -56.3424 * tfactors.T943i + (1.0/3.0) * 0.553763 * tfactors.T923i + + -0.84072 + (5.0/3.0) * 0.0634219 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -49.9709 * tfactors.T943i + (1.0/3.0) * 1.63835 * tfactors.T923i - + -1.18562 + (5.0/3.0) * 0.101965 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al26_n_to_p_Mg26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Na22_to_Na23_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Al26 + n --> p + Mg26 - // Na22 + n --> Na23 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ol11r + ln_set_rate = 13.565 + -0.203581 * tfactors.T9i + 3.87515 * tfactors.T913 + + 0.228327 * tfactors.T9 + -0.045872 * tfactors.T953 + -1.5 * tfactors.lnT9; - // ths8r - ln_set_rate = 12.8678 + 1.02148 * tfactors.T913 - + -0.334638 * tfactors.T9 + 0.0258708 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.203581 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 3.87515 * tfactors.T923i + + 0.228327 + (5.0/3.0) * -0.045872 * tfactors.T923 + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 1.02148 * tfactors.T923i - + -0.334638 + (5.0/3.0) * 0.0258708 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ol11r + ln_set_rate = 12.501 + -0.0608268 * tfactors.T9i + + -1.5 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Na22_to_Mg23_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0608268 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - // Na22 + p --> Mg23 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ol11n + ln_set_rate = 11.1387 + 7.36773 * tfactors.T913 + + -2.42424 * tfactors.T9 + 0.313743 * tfactors.T953; - // il10r - ln_set_rate = -11.2731 + -2.42669 * tfactors.T9i + 4.86658 * tfactors.T913i + 16.4592 * tfactors.T913 - + -1.95129 * tfactors.T9 + 0.132972 * tfactors.T953 + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 7.36773 * tfactors.T923i + + -2.42424 + (5.0/3.0) * 0.313743 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.42669 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 4.86658 * tfactors.T943i + (1.0/3.0) * 16.4592 * tfactors.T923i - + -1.95129 + (5.0/3.0) * 0.132972 * tfactors.T923 + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // il10r - ln_set_rate = -16.2423 + -0.777841 * tfactors.T9i - + -1.5 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al26_n_to_He4_Na23_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Al26 + n --> He4 + Na23 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.777841 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ol11r + ln_set_rate = 13.62 + -0.0661138 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // il10r - ln_set_rate = -25.2739 + -0.499888 * tfactors.T9i - + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.0661138 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.499888 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ol11n + ln_set_rate = 11.6414 + 5.07134 * tfactors.T913 + + -0.557537 * tfactors.T9 + 0.0451737 * tfactors.T953; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Na22_to_Al26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 5.07134 * tfactors.T923i + + -0.557537 + (5.0/3.0) * 0.0451737 * tfactors.T923; - // Na22 + He4 --> Al26 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ol11r + ln_set_rate = 14.7127 + -0.41015 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // ths8r - ln_set_rate = 36.3797 + -50.0924 * tfactors.T913i + -0.390826 * tfactors.T913 - + -0.99531 * tfactors.T9 + 0.101354 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.41015 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -50.0924 * tfactors.T943i + (1.0/3.0) * -0.390826 * tfactors.T923i - + -0.99531 + (5.0/3.0) * 0.101354 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al26_He4_to_p_Si29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Na23_to_Mg24_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Al26 + He4 --> p + Si29 - // Na23 + p --> Mg24 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 47.7092 + -56.4422 * tfactors.T913i + 0.705353 * tfactors.T913 + + -0.957427 * tfactors.T9 + 0.0756045 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // il10r - ln_set_rate = 9.0594 + -3.28029 * tfactors.T9i + -0.360588 * tfactors.T913 - + 1.4187 * tfactors.T9 + -0.184061 * tfactors.T953 + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -56.4422 * tfactors.T943i + (1.0/3.0) * 0.705353 * tfactors.T923i + + -0.957427 + (5.0/3.0) * 0.0756045 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.28029 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.360588 * tfactors.T923i - + 1.4187 + (5.0/3.0) * -0.184061 * tfactors.T923 + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // il10r - ln_set_rate = -5.02585 + -1.61219 * tfactors.T9i - + -1.5 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al27_p_to_He4_Mg24_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Al27 + p --> He4 + Mg24 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.61219 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // il10r + ln_set_rate = -7.02789 + -4.2425 * tfactors.T9i + 18.0416 * tfactors.T913 + + -1.54137 * tfactors.T9 + 0.0847506 * tfactors.T953 + -1.5 * tfactors.lnT9; - // il10n - ln_set_rate = 18.9075 + -20.6428 * tfactors.T913i + 1.52954 * tfactors.T913 - + 2.7487 * tfactors.T9 + -1.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 4.2425 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 18.0416 * tfactors.T923i + + -1.54137 + (5.0/3.0) * 0.0847506 * tfactors.T923 + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -20.6428 * tfactors.T943i + (1.0/3.0) * 1.52954 * tfactors.T923i - + 2.7487 + (5.0/3.0) * -1.0 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // il10r + ln_set_rate = -26.8683 + -0.963012 * tfactors.T9i + 5.18642 * tfactors.T913i + -34.7936 * tfactors.T913 + + 168.225 * tfactors.T9 + -115.825 * tfactors.T953 + -1.5 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Na23_to_Al27_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.963012 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 5.18642 * tfactors.T943i + (1.0/3.0) * -34.7936 * tfactors.T923i + + 168.225 + (5.0/3.0) * -115.825 * tfactors.T923 + -1.5 * tfactors.T9i; - // Na23 + He4 --> Al27 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // il10n + ln_set_rate = 29.4576 + -26.4162 * tfactors.T913i + + -2.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 44.7724 + -50.2042 * tfactors.T913i + -1.64239 * tfactors.T913 - + -1.59995 * tfactors.T9 + 0.184933 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -26.4162 * tfactors.T943i + + (5.0/3.0) * -2.0 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -50.2042 * tfactors.T943i + (1.0/3.0) * -1.64239 * tfactors.T923i - + -1.59995 + (5.0/3.0) * 0.184933 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al27_He4_to_n_P30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Mg23_to_Mg24_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Al27 + He4 --> n + P30 - // Mg23 + n --> Mg24 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // nacr + ln_set_rate = 6.09163 + -30.667 * tfactors.T9i + 5.40982 * tfactors.T913 + + -0.265676 * tfactors.T9 + 1.0 * tfactors.lnT9; - // ths8r - ln_set_rate = 7.00613 + 2.66964 * tfactors.T913 - + -0.448904 * tfactors.T9 + 0.0326505 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 30.667 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.40982 * tfactors.T923i + + -0.265676 + 1.0 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 2.66964 * tfactors.T923i - + -0.448904 + (5.0/3.0) * 0.0326505 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Mg24_to_Mg25_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mg24 + n --> Mg25 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // nacr + ln_set_rate = 11.3074 + -30.667 * tfactors.T9i + 0.311974 * tfactors.T913 + + -2.02044 * tfactors.T9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 64.622 + 0.161296 * tfactors.T9i + -0.142939 * tfactors.T913i + -57.7499 * tfactors.T913 - + 7.01981 * tfactors.T9 + -0.582057 * tfactors.T953 + 12.8133 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 30.667 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.311974 * tfactors.T923i + + -2.02044; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.161296 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.142939 * tfactors.T943i + (1.0/3.0) * -57.7499 * tfactors.T923i - + 7.01981 + (5.0/3.0) * -0.582057 * tfactors.T923 + 12.8133 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Al27_He4_to_p_Si30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Al27 + He4 --> p + Si30 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Mg24_to_Al25_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mg24 + p --> Al25 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 47.4856 + -56.5351 * tfactors.T913i + 1.60477 * tfactors.T913 + + -1.40594 * tfactors.T9 + 0.127353 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // il10r - ln_set_rate = 8.24021 + -2.48451 * tfactors.T9i + -1.57811 * tfactors.T913 - + 1.52232 * tfactors.T9 + -0.183001 * tfactors.T953 + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -56.5351 * tfactors.T943i + (1.0/3.0) * 1.60477 * tfactors.T923i + + -1.40594 + (5.0/3.0) * 0.127353 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.48451 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.57811 * tfactors.T923i - + 1.52232 + (5.0/3.0) * -0.183001 * tfactors.T923 + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si31_p_to_n_P31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // il10n - ln_set_rate = 19.8966 + -22.0227 * tfactors.T913i + 0.361297 * tfactors.T913 - + 2.61292 * tfactors.T9 + -1.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + // Si31 + p --> n + P31 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -22.0227 * tfactors.T943i + (1.0/3.0) * 0.361297 * tfactors.T923i - + 2.61292 + (5.0/3.0) * -1.0 * tfactors.T923 + -0.666667 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // rath + ln_set_rate = 80.5195 + -3.3832 * tfactors.T9i + 119.352 * tfactors.T913i + -198.709 * tfactors.T913 + + 10.5994 * tfactors.T9 + -0.583506 * tfactors.T953 + 100.693 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.3832 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 119.352 * tfactors.T943i + (1.0/3.0) * -198.709 * tfactors.T923i + + 10.5994 + (5.0/3.0) * -0.583506 * tfactors.T923 + 100.693 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_Si28_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Mg24 + He4 --> Si28 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Si31_He4_to_n_S34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // st08r - ln_set_rate = 8.03977 + -15.629 * tfactors.T9i - + -1.5 * tfactors.lnT9; + // Si31 + He4 --> n + S34 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 15.629 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // rath + ln_set_rate = -5.10649 + -2.7438 * tfactors.T9i + -22.4045 * tfactors.T913i + 23.4647 * tfactors.T913 + + -4.73922 * tfactors.T9 + 0.371237 * tfactors.T953 + 4.62837 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // st08r - ln_set_rate = -50.5494 + -12.8332 * tfactors.T9i + 21.3721 * tfactors.T913i + 37.7649 * tfactors.T913 - + -4.10635 * tfactors.T9 + 0.249618 * tfactors.T953 + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.7438 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -22.4045 * tfactors.T943i + (1.0/3.0) * 23.4647 * tfactors.T923i + + -4.73922 + (5.0/3.0) * 0.371237 * tfactors.T923 + 4.62837 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 12.8332 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 21.3721 * tfactors.T943i + (1.0/3.0) * 37.7649 * tfactors.T923i - + -4.10635 + (5.0/3.0) * 0.249618 * tfactors.T923 + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P29_n_to_p_Si29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // P29 + n --> p + Si29 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Mg25_to_Mg26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mg25 + n --> Mg26 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 18.5351 + 1.48018 * tfactors.T913 + + -0.177129 * tfactors.T9 + 0.0127163 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 38.34 + -0.0457591 * tfactors.T9i + 9.392 * tfactors.T913i + -36.6784 * tfactors.T913 - + 3.09567 * tfactors.T9 + -0.223882 * tfactors.T953 + 12.3852 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 1.48018 * tfactors.T923i + + -0.177129 + (5.0/3.0) * 0.0127163 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0457591 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 9.392 * tfactors.T943i + (1.0/3.0) * -36.6784 * tfactors.T923i - + 3.09567 + (5.0/3.0) * -0.223882 * tfactors.T923 + 12.3852 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P29_n_to_He4_Al26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // P29 + n --> He4 + Al26 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Mg25_to_Al26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mg25 + p --> Al26 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = -39.2446 + 41.9938 * tfactors.T913 + + -4.54859 * tfactors.T9 + 0.243841 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // il10r - ln_set_rate = 4.21826 + -0.71983 * tfactors.T9i + -88.9297 * tfactors.T913 - + 302.948 * tfactors.T9 + -346.461 * tfactors.T953 + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 41.9938 * tfactors.T923i + + -4.54859 + (5.0/3.0) * 0.243841 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.71983 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -88.9297 * tfactors.T923i - + 302.948 + (5.0/3.0) * -346.461 * tfactors.T923 + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P29_He4_to_p_S32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // il10r - ln_set_rate = -37.1963 + -0.429366 * tfactors.T9i - + -1.5 * tfactors.lnT9; + // P29 + He4 --> p + S32 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.429366 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 50.2824 + -62.3802 * tfactors.T913i + 0.459085 * tfactors.T913 + + -0.870169 * tfactors.T9 + 0.0631143 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10r - ln_set_rate = 2.22778 + -3.22353 * tfactors.T9i + 8.46334 * tfactors.T913 - + -0.907024 * tfactors.T9 + 0.0642981 * tfactors.T953 + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -62.3802 * tfactors.T943i + (1.0/3.0) * 0.459085 * tfactors.T923i + + -0.870169 + (5.0/3.0) * 0.0631143 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.22353 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 8.46334 * tfactors.T923i - + -0.907024 + (5.0/3.0) * 0.0642981 * tfactors.T923 + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P30_n_to_p_Si30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // P30 + n --> p + Si30 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mg25_to_Si29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mg25 + He4 --> Si29 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 18.3359 + 1.88379 * tfactors.T913 + + -0.330243 * tfactors.T9 + 0.0239836 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // cf88n - ln_set_rate = 40.3715 + -53.41 * tfactors.T913i + -1.83266 * tfactors.T913 - + -0.573073 * tfactors.T9 + 0.0462678 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 1.88379 * tfactors.T923i + + -0.330243 + (5.0/3.0) * 0.0239836 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -53.41 * tfactors.T943i + (1.0/3.0) * -1.83266 * tfactors.T923i - + -0.573073 + (5.0/3.0) * 0.0462678 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P30_He4_to_p_S33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // P30 + He4 --> p + S33 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Mg26_to_Al27_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mg26 + p --> Al27 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 49.813 + -62.4643 * tfactors.T913i + 0.492934 * tfactors.T913 + + -0.841855 * tfactors.T9 + 0.059263 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // il10r - ln_set_rate = -27.2168 + -0.888689 * tfactors.T9i + 35.6312 * tfactors.T913 - + -5.27265 * tfactors.T9 + 0.392932 * tfactors.T953 + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -62.4643 * tfactors.T943i + (1.0/3.0) * 0.492934 * tfactors.T923i + + -0.841855 + (5.0/3.0) * 0.059263 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.888689 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 35.6312 * tfactors.T923i - + -5.27265 + (5.0/3.0) * 0.392932 * tfactors.T923 + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P31_p_to_He4_Si28_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // il10r - ln_set_rate = -84.493 + -0.469464 * tfactors.T9i + 251.281 * tfactors.T913 - + -730.009 * tfactors.T9 + -224.016 * tfactors.T953 + -1.5 * tfactors.lnT9; + // P31 + p --> He4 + Si28 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.469464 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 251.281 * tfactors.T923i - + -730.009 + (5.0/3.0) * -224.016 * tfactors.T923 + -1.5 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = -10.893 + -3.42575 * tfactors.T9i + 21.521 * tfactors.T913 + + -1.90355 * tfactors.T9 + 0.092724 * tfactors.T953 + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10r - ln_set_rate = 5.26056 + -3.35921 * tfactors.T9i + 6.78105 * tfactors.T913 - + -1.25771 * tfactors.T9 + 0.140754 * tfactors.T953 + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.42575 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 21.521 * tfactors.T923i + + -1.90355 + (5.0/3.0) * 0.092724 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.35921 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 6.78105 * tfactors.T923i - + -1.25771 + (5.0/3.0) * 0.140754 * tfactors.T923 + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // il10r + ln_set_rate = -12.919 + -1.87716 * tfactors.T9i + + -1.5 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; -} + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.87716 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mg26_to_Si30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - // Mg26 + He4 --> Si30 + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - rate = 0.0; - drate_dT = 0.0; + // il10n + ln_set_rate = 60.8829 + -31.932 * tfactors.T913i + -77.0334 * tfactors.T913 + + -43.6847 * tfactors.T9 + -4.28955 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // cf88r - ln_set_rate = 1.32941 + -18.7164 * tfactors.T9i + -1.87411 * tfactors.T913 - + 3.41299 * tfactors.T9 + -0.43226 * tfactors.T953 + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -31.932 * tfactors.T943i + (1.0/3.0) * -77.0334 * tfactors.T923i + + -43.6847 + (5.0/3.0) * -4.28955 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 18.7164 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.87411 * tfactors.T923i - + 3.41299 + (5.0/3.0) * -0.43226 * tfactors.T923 + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P31_He4_to_p_S34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // cf88n - ln_set_rate = 45.8787 + -53.7518 * tfactors.T913i + -4.8647 * tfactors.T913 - + -1.51467 * tfactors.T9 + -0.666667 * tfactors.lnT9; + // P31 + He4 --> p + S34 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -53.7518 * tfactors.T943i + (1.0/3.0) * -4.8647 * tfactors.T923i - + -1.51467 + -0.666667 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 49.0993 + -62.5433 * tfactors.T913i + 1.69339 * tfactors.T913 + + -1.27872 * tfactors.T9 + 0.106616 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += log_scor; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -62.5433 * tfactors.T943i + (1.0/3.0) * 1.69339 * tfactors.T923i + + -1.27872 + (5.0/3.0) * 0.106616 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P32_n_to_p_Si32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Al25_to_Al26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // P32 + n --> p + Si32 - // Al25 + n --> Al26 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // rath + ln_set_rate = -33.9397 + 0.296332 * tfactors.T9i + -31.4944 * tfactors.T913i + 82.7906 * tfactors.T913 + + -5.28792 * tfactors.T9 + 0.278753 * tfactors.T953 + -31.7623 * tfactors.lnT9; - // ths8r - ln_set_rate = 7.92587 + 1.17141 * tfactors.T913 - + -0.162515 * tfactors.T9 + 0.0126275 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -0.296332 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.4944 * tfactors.T943i + (1.0/3.0) * 82.7906 * tfactors.T923i + + -5.28792 + (5.0/3.0) * 0.278753 * tfactors.T923 + -31.7623 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 1.17141 * tfactors.T923i - + -0.162515 + (5.0/3.0) * 0.0126275 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P32_p_to_n_S32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Al25_to_P29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // P32 + p --> n + S32 - // Al25 + He4 --> P29 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // rath + ln_set_rate = 82.294 + -3.56696 * tfactors.T9i + 124.605 * tfactors.T913i + -206.844 * tfactors.T913 + + 11.0016 * tfactors.T9 + -0.612898 * tfactors.T953 + 104.905 * tfactors.lnT9; - // ths8r - ln_set_rate = 37.9099 + -56.3424 * tfactors.T913i + 0.542998 * tfactors.T913 - + -0.721716 * tfactors.T9 + 0.0469712 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.56696 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 124.605 * tfactors.T943i + (1.0/3.0) * -206.844 * tfactors.T923i + + 11.0016 + (5.0/3.0) * -0.612898 * tfactors.T923 + 104.905 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -56.3424 * tfactors.T943i + (1.0/3.0) * 0.542998 * tfactors.T923i - + -0.721716 + (5.0/3.0) * 0.0469712 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P32_p_to_He4_Si29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Al26_to_Al27_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // P32 + p --> He4 + Si29 - // Al26 + n --> Al27 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // rath + ln_set_rate = 118.233 + -3.89928 * tfactors.T9i + 160.025 * tfactors.T913i + -285.126 * tfactors.T913 + + 16.3226 * tfactors.T9 + -0.928477 * tfactors.T953 + 138.458 * tfactors.lnT9; - // ks03 - ln_set_rate = 14.7625 + 0.00350938 * tfactors.T9i + -0.171158 * tfactors.T913i + -1.77283 * tfactors.T913 - + 0.206192 * tfactors.T9 + -0.0191705 * tfactors.T953 + 0.139609 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.89928 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 160.025 * tfactors.T943i + (1.0/3.0) * -285.126 * tfactors.T923i + + 16.3226 + (5.0/3.0) * -0.928477 * tfactors.T923 + 138.458 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.00350938 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.171158 * tfactors.T943i + (1.0/3.0) * -1.77283 * tfactors.T923i - + 0.206192 + (5.0/3.0) * -0.0191705 * tfactors.T923 + 0.139609 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_P33_p_to_He4_Si30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Al26_to_P30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // P33 + p --> He4 + Si30 - // Al26 + He4 --> P30 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // rath + ln_set_rate = 81.5654 + -3.41491 * tfactors.T9i + 110.297 * tfactors.T913i + -193.863 * tfactors.T913 + + 11.4977 * tfactors.T9 + -0.687235 * tfactors.T953 + 94.819 * tfactors.lnT9; - // ths8r - ln_set_rate = 42.9778 + -56.4422 * tfactors.T913i + -2.44848 * tfactors.T913 - + -1.17578 * tfactors.T9 + 0.150757 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.41491 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 110.297 * tfactors.T943i + (1.0/3.0) * -193.863 * tfactors.T923i + + 11.4977 + (5.0/3.0) * -0.687235 * tfactors.T923 + 94.819 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -56.4422 * tfactors.T943i + (1.0/3.0) * -2.44848 * tfactors.T923i - + -1.17578 + (5.0/3.0) * 0.150757 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S32_n_to_He4_Si29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Al27_to_Si28_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // S32 + n --> He4 + Si29 - // Al27 + p --> Si28 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -0.947538 + 9.48125 * tfactors.T913 + + 0.4472 * tfactors.T9 + -0.119237 * tfactors.T953; - // il10r - ln_set_rate = -13.6664 + -1.90396 * tfactors.T9i + 23.8634 * tfactors.T913 - + -3.70135 * tfactors.T9 + 0.28964 * tfactors.T953 + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 9.48125 * tfactors.T923i + + 0.4472 + (5.0/3.0) * -0.119237 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.90396 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 23.8634 * tfactors.T923i - + -3.70135 + (5.0/3.0) * 0.28964 * tfactors.T923 + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // il10r - ln_set_rate = 86.0234 + -0.387313 * tfactors.T9i + -26.8327 * tfactors.T913i + -116.137 * tfactors.T913 - + 0.00950567 * tfactors.T9 + 0.00999755 * tfactors.T953 + -1.5 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S33_n_to_p_P33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // S33 + n --> p + P33 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.387313 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -26.8327 * tfactors.T943i + (1.0/3.0) * -116.137 * tfactors.T923i - + 0.00950567 + (5.0/3.0) * 0.00999755 * tfactors.T923 + -1.5 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ths8r + ln_set_rate = 5.10143 + 8.02978 * tfactors.T913 + + -0.479244 * tfactors.T9 + 0.0134889 * tfactors.T953; - // il10n - ln_set_rate = 21.1065 + -23.2205 * tfactors.T913i - + -2.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 8.02978 * tfactors.T923i + + -0.479244 + (5.0/3.0) * 0.0134889 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -23.2205 * tfactors.T943i - + (5.0/3.0) * -2.0 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S33_n_to_He4_Si30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Al27_to_P31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // S33 + n --> He4 + Si30 - // Al27 + He4 --> P31 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 17.1798 + -0.725571 * tfactors.T913 + + 0.430731 * tfactors.T9 + -0.0323663 * tfactors.T953; - // ths8r - ln_set_rate = 47.2333 + -56.5351 * tfactors.T913i + -0.896208 * tfactors.T913 - + -1.72024 * tfactors.T9 + 0.185409 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.725571 * tfactors.T923i + + 0.430731 + (5.0/3.0) * -0.0323663 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -56.5351 * tfactors.T943i + (1.0/3.0) * -0.896208 * tfactors.T923i - + -1.72024 + (5.0/3.0) * 0.185409 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S34_He4_to_n_Ar37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Si28_to_Si29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // S34 + He4 --> n + Ar37 - // Si28 + n --> Si29 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // SM93 + ln_set_rate = 18.5358 + -53.7288 * tfactors.T9i + -1.69894 * tfactors.T913 + + 0.371187 * tfactors.T9 + -0.0457242 * tfactors.T953 + 1.0 * tfactors.lnT9; - // ka02r - ln_set_rate = 6.9158 + -0.38 * tfactors.T9i + 7.68863 * tfactors.T913 - + -1.7991 * tfactors.T9 + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 53.7288 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.69894 * tfactors.T923i + + 0.371187 + (5.0/3.0) * -0.0457242 * tfactors.T923 + 1.0 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.38 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 7.68863 * tfactors.T923i - + -1.7991 + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // SM93 + ln_set_rate = 18.5358 + -53.7288 * tfactors.T9i + 0.522368 * tfactors.T913 + + -1.03944 * tfactors.T9 + 0.142735 * tfactors.T953; - // ka02 - ln_set_rate = 8.77553; - amrex::ignore_unused(tfactors); + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 53.7288 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.522368 * tfactors.T923i + + -1.03944 + (5.0/3.0) * 0.142735 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S34_He4_to_p_Cl37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Si28_to_P29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // S34 + He4 --> p + Cl37 - // Si28 + p --> P29 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // SM93 + ln_set_rate = 80.8229 + -35.2081 * tfactors.T9i + -47.5185 * tfactors.T913i + -32.046 * tfactors.T913 + + 4.43077 * tfactors.T9 + -0.368628 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // il10n - ln_set_rate = 16.1779 + -23.8173 * tfactors.T913i + 7.08203 * tfactors.T913 - + -1.44753 * tfactors.T9 + 0.0804296 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 35.2081 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -47.5185 * tfactors.T943i + (1.0/3.0) * -32.046 * tfactors.T923i + + 4.43077 + (5.0/3.0) * -0.368628 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -23.8173 * tfactors.T943i + (1.0/3.0) * 7.08203 * tfactors.T923i - + -1.44753 + (5.0/3.0) * 0.0804296 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // il10r - ln_set_rate = 5.73975 + -4.14232 * tfactors.T9i - + -1.5 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S35_n_to_He4_Si32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // S35 + n --> He4 + Si32 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 4.14232 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ths8r + ln_set_rate = -30.1276 + 32.5444 * tfactors.T913 + + -2.95994 * tfactors.T9 + 0.119682 * tfactors.T953; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Si28_to_S32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 32.5444 * tfactors.T923i + + -2.95994 + (5.0/3.0) * 0.119682 * tfactors.T923; - // Si28 + He4 --> S32 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + } - // ths8r - ln_set_rate = 47.9212 + -59.4896 * tfactors.T913i + 4.47205 * tfactors.T913 - + -4.78989 * tfactors.T9 + 0.557201 * tfactors.T953 + -0.666667 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S35_p_to_He4_P32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // S35 + p --> He4 + P32 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -59.4896 * tfactors.T943i + (1.0/3.0) * 4.47205 * tfactors.T923i - + -4.78989 + (5.0/3.0) * 0.557201 * tfactors.T923 + -0.666667 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ths8r + ln_set_rate = -30.5654 + -26.7922 * tfactors.T913i + 56.581 * tfactors.T913 + + -10.5304 * tfactors.T9 + 0.9493 * tfactors.T953 + -0.666667 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Si29_to_Si30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -26.7922 * tfactors.T943i + (1.0/3.0) * 56.581 * tfactors.T923i + + -10.5304 + (5.0/3.0) * 0.9493 * tfactors.T923 + -0.666667 * tfactors.T9i; - // Si29 + n --> Si30 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + } - // ka02r - ln_set_rate = 9.60115 + -0.179366 * tfactors.T9i + 5.50678 * tfactors.T913 - + -2.85656 * tfactors.T9 + -1.5 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S35_He4_to_n_Ar38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // S35 + He4 --> n + Ar38 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.179366 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.50678 * tfactors.T923i - + -2.85656 + -1.5 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ths8r + ln_set_rate = 51.1473 + -65.58 * tfactors.T913i + 0.762185 * tfactors.T913 + + -0.938779 * tfactors.T9 + 0.0668864 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ka02n - ln_set_rate = 11.8023 + 0.650904 * tfactors.T913; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -65.58 * tfactors.T943i + (1.0/3.0) * 0.762185 * tfactors.T923i + + -0.938779 + (5.0/3.0) * 0.0668864 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.650904 * tfactors.T923i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_S36_p_to_He4_P33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Si29_to_P30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // S36 + p --> He4 + P33 - // Si29 + p --> P30 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -14.1346 + -26.7991 * tfactors.T913i + 44.6374 * tfactors.T913 + + -9.82916 * tfactors.T9 + 0.995523 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // il10r - ln_set_rate = -1.24791 + -3.33929 * tfactors.T9i + 14.0921 * tfactors.T913 - + -3.92096 * tfactors.T9 + 0.447706 * tfactors.T953 + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -26.7991 * tfactors.T943i + (1.0/3.0) * 44.6374 * tfactors.T923i + + -9.82916 + (5.0/3.0) * 0.995523 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.33929 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 14.0921 * tfactors.T923i - + -3.92096 + (5.0/3.0) * 0.447706 * tfactors.T923 + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // il10r - ln_set_rate = -13.4701 + -1.25026 * tfactors.T9i - + -1.5 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl33_n_to_p_S33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Cl33 + n --> p + S33 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.25026 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ths8r + ln_set_rate = 18.5772 + 1.39633 * tfactors.T913 + + -0.136457 * tfactors.T9 + 0.00585594 * tfactors.T953; - // il10n - ln_set_rate = 16.5182 + -23.9101 * tfactors.T913i + 10.7796 * tfactors.T913 - + -3.04181 * tfactors.T9 + 0.274565 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 1.39633 * tfactors.T923i + + -0.136457 + (5.0/3.0) * 0.00585594 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -23.9101 * tfactors.T943i + (1.0/3.0) * 10.7796 * tfactors.T923i - + -3.04181 + (5.0/3.0) * 0.274565 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl33_n_to_He4_P30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Si29_to_S33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Cl33 + n --> He4 + P30 - // Si29 + He4 --> S33 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 15.9018 + 1.33535 * tfactors.T913 + + -0.149988 * tfactors.T9 + 0.0279218 * tfactors.T953; - // ths8r - ln_set_rate = 49.5657 + -59.5755 * tfactors.T913i + 1.06274 * tfactors.T913 - + -3.07529 * tfactors.T9 + 0.372011 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 1.33535 * tfactors.T923i + + -0.149988 + (5.0/3.0) * 0.0279218 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -59.5755 * tfactors.T943i + (1.0/3.0) * 1.06274 * tfactors.T923i - + -3.07529 + (5.0/3.0) * 0.372011 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl33_He4_to_p_Ar36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Si30_to_Si31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Cl33 + He4 --> p + Ar36 - // Si30 + n --> Si31 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 52.1588 + -68.1442 * tfactors.T913i + 0.291238 * tfactors.T913 + + -0.791384 * tfactors.T9 + 0.0524823 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ks03 - ln_set_rate = -9.19438 + 0.0685821 * tfactors.T9i + -12.3502 * tfactors.T913i + 34.6486 * tfactors.T913 - + -1.89409 * tfactors.T9 + 0.0781979 * tfactors.T953 + -14.4601 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -68.1442 * tfactors.T943i + (1.0/3.0) * 0.291238 * tfactors.T923i + + -0.791384 + (5.0/3.0) * 0.0524823 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.0685821 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -12.3502 * tfactors.T943i + (1.0/3.0) * 34.6486 * tfactors.T923i - + -1.89409 + (5.0/3.0) * 0.0781979 * tfactors.T923 + -14.4601 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl34_n_to_p_S34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Si30_to_P31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Cl34 + n --> p + S34 - // Si30 + p --> P31 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 18.4445 + 0.847427 * tfactors.T913 + + 0.000125282 * tfactors.T9 + -0.00573985 * tfactors.T953; - // de20r - ln_set_rate = 12.3695 + -6.64105 * tfactors.T9i - + -1.1191 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.847427 * tfactors.T923i + + 0.000125282 + (5.0/3.0) * -0.00573985 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 6.64105 * tfactors.T9i * tfactors.T9i - + -1.1191 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // de20r - ln_set_rate = 8.79766 + -5.18231 * tfactors.T9i - + 1.2883 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl34_n_to_He4_P31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Cl34 + n --> He4 + P31 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.18231 * tfactors.T9i * tfactors.T9i - + 1.2883 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ths8r + ln_set_rate = 18.8653 + -0.466069 * tfactors.T913 + + 0.167169 * tfactors.T9 + -0.00537463 * tfactors.T953; - // de20r - ln_set_rate = -334.266 + -1.13327 * tfactors.T9i - + -78.547 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.466069 * tfactors.T923i + + 0.167169 + (5.0/3.0) * -0.00537463 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.13327 * tfactors.T9i * tfactors.T9i - + -78.547 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // de20r - ln_set_rate = -4.24208 + -1.25174 * tfactors.T9i - + 4.99034 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl34_He4_to_p_Ar37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Cl34 + He4 --> p + Ar37 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.25174 * tfactors.T9i * tfactors.T9i - + 4.99034 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ths8r + ln_set_rate = 52.795 + -68.2165 * tfactors.T913i + 0.330057 * tfactors.T913 + + -0.873334 * tfactors.T9 + 0.0592127 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // de20r - ln_set_rate = -18.9198 + -0.945261 * tfactors.T9i - + 1.30331 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -68.2165 * tfactors.T943i + (1.0/3.0) * 0.330057 * tfactors.T923i + + -0.873334 + (5.0/3.0) * 0.0592127 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.945261 * tfactors.T9i * tfactors.T9i - + 1.30331 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // de20r - ln_set_rate = -1138.34 + -95.8769 * tfactors.T9i - + -896.758 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl35_n_to_p_S35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Cl35 + n --> p + S35 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 95.8769 * tfactors.T9i * tfactors.T9i - + -896.758 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ths8r + ln_set_rate = 7.51079 + 6.51754 * tfactors.T913 + + -0.295846 * tfactors.T9 + -0.00271436 * tfactors.T953; - // de20r - ln_set_rate = 9.96544 + -5.58963 * tfactors.T9i - + -1.57082 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 6.51754 * tfactors.T923i + + -0.295846 + (5.0/3.0) * -0.00271436 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.58963 * tfactors.T9i * tfactors.T9i - + -1.57082 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // de20r - ln_set_rate = -34.8594 + -0.592934 * tfactors.T9i - + -1.62839 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl35_n_to_He4_P32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Cl35 + n --> He4 + P32 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.592934 * tfactors.T9i * tfactors.T9i - + -1.62839 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ths8r + ln_set_rate = -32.0685 + 35.1367 * tfactors.T913 + + -3.30169 * tfactors.T9 + 0.150699 * tfactors.T953; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Si30_to_S34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 35.1367 * tfactors.T923i + + -3.30169 + (5.0/3.0) * 0.150699 * tfactors.T923; - // Si30 + He4 --> S34 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + } - // ths8r - ln_set_rate = 47.5008 + -59.6559 * tfactors.T913i + 3.70141 * tfactors.T913 - + -3.12537 * tfactors.T9 + 0.307626 * tfactors.T953 + -0.666667 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl35_p_to_He4_S32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Cl35 + p --> He4 + S32 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -59.6559 * tfactors.T943i + (1.0/3.0) * 3.70141 * tfactors.T923i - + -3.12537 + (5.0/3.0) * 0.307626 * tfactors.T923 + -0.666667 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // il10r + ln_set_rate = -1.01202 + -3.93495 * tfactors.T9i + + -1.5 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Si31_to_Si32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.93495 * tfactors.T9i * tfactors.T9i + + -1.5 * tfactors.T9i; - // Si31 + n --> Si32 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // il10r + ln_set_rate = -57.5294 + -0.532931 * tfactors.T9i + 25.5338 * tfactors.T913 + + 6.45824 * tfactors.T9 + -0.950294 * tfactors.T953 + -1.5 * tfactors.lnT9; - // rath - ln_set_rate = 11.9451 + -0.0144696 * tfactors.T9i + 0.154735 * tfactors.T913i + 0.304696 * tfactors.T913 - + 0.0236238 * tfactors.T9 + -0.00396359 * tfactors.T953 + -0.432171 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.532931 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 25.5338 * tfactors.T923i + + 6.45824 + (5.0/3.0) * -0.950294 * tfactors.T923 + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0144696 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 0.154735 * tfactors.T943i + (1.0/3.0) * 0.304696 * tfactors.T923i - + 0.0236238 + (5.0/3.0) * -0.00396359 * tfactors.T923 + -0.432171 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // il10n + ln_set_rate = 32.12 + -30.9147 * tfactors.T913i + -1.2345 * tfactors.T913 + + 22.5118 * tfactors.T9 + -33.0589 * tfactors.T953 + -0.666667 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Si31_to_P32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -30.9147 * tfactors.T943i + (1.0/3.0) * -1.2345 * tfactors.T923i + + 22.5118 + (5.0/3.0) * -33.0589 * tfactors.T923 + -0.666667 * tfactors.T9i; - // Si31 + p --> P32 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // il10r + ln_set_rate = 2.29121 + -6.00976 * tfactors.T9i + 5.33756 * tfactors.T913 + + 1.64418 * tfactors.T9 + -0.246167 * tfactors.T953 + -1.5 * tfactors.lnT9; - // rath - ln_set_rate = 100.968 + -3.38247 * tfactors.T9i + 123.4 * tfactors.T913i + -231.734 * tfactors.T913 - + 14.2724 * tfactors.T9 + -0.867645 * tfactors.T953 + 108.469 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 6.00976 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.33756 * tfactors.T923i + + 1.64418 + (5.0/3.0) * -0.246167 * tfactors.T923 + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.38247 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 123.4 * tfactors.T943i + (1.0/3.0) * -231.734 * tfactors.T923i - + 14.2724 + (5.0/3.0) * -0.867645 * tfactors.T923 + 108.469 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl35_He4_to_p_Ar38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Si31_to_S35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Cl35 + He4 --> p + Ar38 - // Si31 + He4 --> S35 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 51.1272 + -68.2848 * tfactors.T913i + 2.5993 * tfactors.T913 + + -1.59144 * tfactors.T9 + 0.137745 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // rath - ln_set_rate = -73.2581 + -1.94072 * tfactors.T9i + -98.5176 * tfactors.T913i + 171.207 * tfactors.T913 - + -14.3839 * tfactors.T9 + 0.960708 * tfactors.T953 + -61.9936 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -68.2848 * tfactors.T943i + (1.0/3.0) * 2.5993 * tfactors.T923i + + -1.59144 + (5.0/3.0) * 0.137745 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.94072 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -98.5176 * tfactors.T943i + (1.0/3.0) * 171.207 * tfactors.T923i - + -14.3839 + (5.0/3.0) * 0.960708 * tfactors.T923 + -61.9936 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl36_n_to_p_S36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Si32_to_P33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Cl36 + n --> p + S36 - // Si32 + p --> P33 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 15.1404 + 2.26066 * tfactors.T913 + + -0.487956 * tfactors.T9 + 0.0471708 * tfactors.T953; - // rath - ln_set_rate = 178.753 + -3.87095 * tfactors.T9i + 174.94 * tfactors.T913i + -365.37 * tfactors.T913 - + 23.1636 * tfactors.T9 + -1.3429 * tfactors.T953 + 160.075 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 2.26066 * tfactors.T923i + + -0.487956 + (5.0/3.0) * 0.0471708 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.87095 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 174.94 * tfactors.T943i + (1.0/3.0) * -365.37 * tfactors.T923i - + 23.1636 + (5.0/3.0) * -1.3429 * tfactors.T923 + 160.075 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl36_n_to_He4_P33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Si32_to_S36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Cl36 + n --> He4 + P33 - // Si32 + He4 --> S36 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 11.4695 + -0.927614 * tfactors.T913 + + 1.68083 * tfactors.T9 + -0.183233 * tfactors.T953; - // rath - ln_set_rate = -152.93 + -0.462221 * tfactors.T9i + -232.306 * tfactors.T913i + 393.438 * tfactors.T913 - + -25.2071 * tfactors.T9 + 1.4457 * tfactors.T953 + -171.471 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.927614 * tfactors.T923i + + 1.68083 + (5.0/3.0) * -0.183233 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.462221 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -232.306 * tfactors.T943i + (1.0/3.0) * 393.438 * tfactors.T923i - + -25.2071 + (5.0/3.0) * 1.4457 * tfactors.T923 + -171.471 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cl36_p_to_He4_S33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_P29_to_P30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Cl36 + p --> He4 + S33 - // P29 + n --> P30 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 24.6393 + -27.9044 * tfactors.T913i + 7.06482 * tfactors.T913 + + -1.77458 * tfactors.T9 + 0.192878 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 8.78841 + 0.15555 * tfactors.T913 - + 0.155359 * tfactors.T9 + -0.0208019 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -27.9044 * tfactors.T943i + (1.0/3.0) * 7.06482 * tfactors.T923i + + -1.77458 + (5.0/3.0) * 0.192878 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.15555 * tfactors.T923i - + 0.155359 + (5.0/3.0) * -0.0208019 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar36_n_to_p_Cl36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_P29_to_Cl33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ar36 + n --> p + Cl36 - // P29 + He4 --> Cl33 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -22.6757 + 34.7356 * tfactors.T913 + + -5.0791 * tfactors.T9 + 0.381814 * tfactors.T953; - // ths8r - ln_set_rate = 41.9979 + -62.3802 * tfactors.T913i + 0.593062 * tfactors.T913 - + -1.14226 * tfactors.T9 + 0.0934776 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 34.7356 * tfactors.T923i + + -5.0791 + (5.0/3.0) * 0.381814 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -62.3802 * tfactors.T943i + (1.0/3.0) * 0.593062 * tfactors.T923i - + -1.14226 + (5.0/3.0) * 0.0934776 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar36_n_to_He4_S33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_P30_to_P31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ar36 + n --> He4 + S33 - // P30 + n --> P31 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 3.04033 + 5.44923 * tfactors.T913 + + 1.17359 * tfactors.T9 + -0.175811 * tfactors.T953; - // ths8r - ln_set_rate = 12.8187 + 0.909911 * tfactors.T913 - + -0.162367 * tfactors.T9 + 0.00668293 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 5.44923 * tfactors.T923i + + 1.17359 + (5.0/3.0) * -0.175811 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.909911 * tfactors.T923i - + -0.162367 + (5.0/3.0) * 0.00668293 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar37_n_to_p_Cl37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_P30_to_Cl34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ar37 + n --> p + Cl37 - // P30 + He4 --> Cl34 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 16.2094 + 1.64495 * tfactors.T913 + + -0.154677 * tfactors.T9 + 0.0083347 * tfactors.T953; - // ths8r - ln_set_rate = 45.3321 + -62.4643 * tfactors.T913i + -3.19028 * tfactors.T913 - + -0.832633 * tfactors.T9 + 0.0987525 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 1.64495 * tfactors.T923i + + -0.154677 + (5.0/3.0) * 0.0083347 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -62.4643 * tfactors.T943i + (1.0/3.0) * -3.19028 * tfactors.T923i - + -0.832633 + (5.0/3.0) * 0.0987525 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar39_n_to_He4_S36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_P31_to_P32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ar39 + n --> He4 + S36 - // P31 + n --> P32 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 13.3069 + -1.97008 * tfactors.T913 + + 1.52238 * tfactors.T9 + -0.159721 * tfactors.T953; - // ka02r - ln_set_rate = 9.48567 + -0.246803 * tfactors.T9i + 2.13185 * tfactors.T913 - + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.97008 * tfactors.T923i + + 1.52238 + (5.0/3.0) * -0.159721 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.246803 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.13185 * tfactors.T923i - + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // ka02n - ln_set_rate = 12.5332 + 0.327031 * tfactors.T913 - + 1.0 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar39_p_to_He4_Cl36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // Ar39 + p --> He4 + Cl36 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.327031 * tfactors.T923i - + 1.0 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; + + // ths8r + ln_set_rate = 8.20001 + -29.0085 * tfactors.T913i + 15.2414 * tfactors.T913 + + -1.01027 * tfactors.T9 + -0.0165013 * tfactors.T953 + -0.666667 * tfactors.lnT9; + + ln_set_rate += log_scor; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -29.0085 * tfactors.T943i + (1.0/3.0) * 15.2414 * tfactors.T923i + + -1.01027 + (5.0/3.0) * -0.0165013 * tfactors.T923 + -0.666667 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ar40_p_to_He4_Cl37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_P31_to_S32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ar40 + p --> He4 + Cl37 - // P31 + p --> S32 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 16.62 + -29.0146 * tfactors.T913i + 15.2952 * tfactors.T913 + + -3.22171 * tfactors.T9 + 0.283382 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // il10r - ln_set_rate = 0.821556 + -3.77704 * tfactors.T9i + 8.09341 * tfactors.T913 - + -0.615971 * tfactors.T9 + 0.031159 * tfactors.T953 + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -29.0146 * tfactors.T943i + (1.0/3.0) * 15.2952 * tfactors.T923i + + -3.22171 + (5.0/3.0) * 0.283382 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.77704 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 8.09341 * tfactors.T923i - + -0.615971 + (5.0/3.0) * 0.031159 * tfactors.T923 + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // il10r - ln_set_rate = -2.66839 + -2.25958 * tfactors.T9i - + -1.5 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K37_n_to_p_Ar37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // K37 + n --> p + Ar37 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.25958 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ths8r + ln_set_rate = 19.3703 + 0.399131 * tfactors.T913 + + 0.0819317 * tfactors.T9 + -0.0133489 * tfactors.T953; - // il10n - ln_set_rate = 19.2596 + -25.3278 * tfactors.T913i + 6.4931 * tfactors.T913 - + -9.27513 * tfactors.T9 + -0.610439 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.399131 * tfactors.T923i + + 0.0819317 + (5.0/3.0) * -0.0133489 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -25.3278 * tfactors.T943i + (1.0/3.0) * 6.4931 * tfactors.T923i - + -9.27513 + (5.0/3.0) * -0.610439 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K37_n_to_He4_Cl34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_P31_to_Cl35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // K37 + n --> He4 + Cl34 - // P31 + He4 --> Cl35 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 15.9641 + 1.35231 * tfactors.T913 + + -0.147095 * tfactors.T9 + 0.0306549 * tfactors.T953; - // ths8r - ln_set_rate = 50.451 + -62.5433 * tfactors.T913i + -2.95026 * tfactors.T913 - + -0.89652 * tfactors.T9 + 0.0774126 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 1.35231 * tfactors.T923i + + -0.147095 + (5.0/3.0) * 0.0306549 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -62.5433 * tfactors.T943i + (1.0/3.0) * -2.95026 * tfactors.T923i - + -0.89652 + (5.0/3.0) * 0.0774126 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K37_He4_to_p_Ca40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_P32_to_P33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // K37 + He4 --> p + Ca40 - // P32 + n --> P33 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 54.2966 + -73.6776 * tfactors.T913i + 0.493294 * tfactors.T913 + + -0.902307 * tfactors.T9 + 0.0641391 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // rath - ln_set_rate = 10.8477 + 0.0572362 * tfactors.T9i + -6.14814 * tfactors.T913i + 9.5582 * tfactors.T913 - + -0.244744 * tfactors.T9 + -0.012887 * tfactors.T953 + -5.42926 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -73.6776 * tfactors.T943i + (1.0/3.0) * 0.493294 * tfactors.T923i + + -0.902307 + (5.0/3.0) * 0.0641391 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.0572362 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -6.14814 * tfactors.T943i + (1.0/3.0) * 9.5582 * tfactors.T923i - + -0.244744 + (5.0/3.0) * -0.012887 * tfactors.T923 + -5.42926 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K38_n_to_p_Ar38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_P32_to_S33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // K38 + n --> p + Ar38 - // P32 + p --> S33 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 19.6025 + -0.5015 * tfactors.T913 + + 0.324921 * tfactors.T9 + -0.0393691 * tfactors.T953; - // rath - ln_set_rate = 107.354 + -3.79249 * tfactors.T9i + 147.624 * tfactors.T913i + -261.318 * tfactors.T913 - + 14.2732 * tfactors.T9 + -0.776243 * tfactors.T953 + 126.747 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.5015 * tfactors.T923i + + 0.324921 + (5.0/3.0) * -0.0393691 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.79249 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 147.624 * tfactors.T943i + (1.0/3.0) * -261.318 * tfactors.T923i - + 14.2732 + (5.0/3.0) * -0.776243 * tfactors.T923 + 126.747 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K38_n_to_He4_Cl35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_P32_to_Cl36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // K38 + n --> He4 + Cl35 - // P32 + He4 --> Cl36 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 17.5346 + 1.15173 * tfactors.T913 + + -0.190157 * tfactors.T9 + 0.0305104 * tfactors.T953; - // rath - ln_set_rate = -119.479 + -1.48992 * tfactors.T9i + -158.272 * tfactors.T913i + 281.836 * tfactors.T913 - + -20.652 * tfactors.T9 + 1.28543 * tfactors.T953 + -112.725 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 1.15173 * tfactors.T923i + + -0.190157 + (5.0/3.0) * 0.0305104 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.48992 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -158.272 * tfactors.T943i + (1.0/3.0) * 281.836 * tfactors.T923i - + -20.652 + (5.0/3.0) * 1.28543 * tfactors.T923 + -112.725 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K38_He4_to_p_Ca41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_P33_to_S34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // K38 + He4 --> p + Ca41 - // P33 + p --> S34 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 54.4204 + -73.7407 * tfactors.T913i + 0.600725 * tfactors.T913 + + -0.957475 * tfactors.T9 + 0.0689286 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // rath - ln_set_rate = 173.854 + -3.84298 * tfactors.T9i + 161.691 * tfactors.T913i + -350.015 * tfactors.T913 - + 24.3597 * tfactors.T9 + -1.56396 * tfactors.T953 + 149.963 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -73.7407 * tfactors.T943i + (1.0/3.0) * 0.600725 * tfactors.T923i + + -0.957475 + (5.0/3.0) * 0.0689286 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.84298 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 161.691 * tfactors.T943i + (1.0/3.0) * -350.015 * tfactors.T923i - + 24.3597 + (5.0/3.0) * -1.56396 * tfactors.T923 + 149.963 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K39_n_to_p_Ar39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_P33_to_Cl37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // K39 + n --> p + Ar39 - // P33 + He4 --> Cl37 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -15.2094 + 26.5209 * tfactors.T913 + + -3.63684 * tfactors.T9 + 0.276163 * tfactors.T953; - // rath - ln_set_rate = 50.9267 + -3.38505 * tfactors.T9i + 21.2001 * tfactors.T913i + -84.0086 * tfactors.T913 - + 1.39426 * tfactors.T9 + 0.0896178 * tfactors.T953 + 47.8178 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 26.5209 * tfactors.T923i + + -3.63684 + (5.0/3.0) * 0.276163 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.38505 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 21.2001 * tfactors.T943i + (1.0/3.0) * -84.0086 * tfactors.T923i - + 1.39426 + (5.0/3.0) * 0.0896178 * tfactors.T923 + 47.8178 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K39_n_to_He4_Cl36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_S32_to_S33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // K39 + n --> He4 + Cl36 - // S32 + n --> S33 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -18.3419 + 20.3122 * tfactors.T913 + + -0.37149 * tfactors.T9 + -0.0867942 * tfactors.T953; - // ks03 - ln_set_rate = 12.4466 + 0.198828 * tfactors.T9i + -15.0178 * tfactors.T913i + 16.3567 * tfactors.T913 - + -0.436839 * tfactors.T9 + -0.00574462 * tfactors.T953 + -9.78034 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 20.3122 * tfactors.T923i + + -0.37149 + (5.0/3.0) * -0.0867942 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.198828 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -15.0178 * tfactors.T943i + (1.0/3.0) * 16.3567 * tfactors.T923i - + -0.436839 + (5.0/3.0) * -0.00574462 * tfactors.T923 + -9.78034 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K39_p_to_He4_Ar36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_S32_to_Cl33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // K39 + p --> He4 + Ar36 - // S32 + p --> Cl33 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 20.5166 + -30.0732 * tfactors.T913i + 7.03263 * tfactors.T913 + + -1.10085 * tfactors.T9 + 0.133768 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // il10n - ln_set_rate = 52.47 + -29.7741 * tfactors.T913i + -87.4473 * tfactors.T913 - + 182.189 * tfactors.T9 + -128.625 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -30.0732 * tfactors.T943i + (1.0/3.0) * 7.03263 * tfactors.T923i + + -1.10085 + (5.0/3.0) * 0.133768 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -29.7741 * tfactors.T943i + (1.0/3.0) * -87.4473 * tfactors.T923i - + 182.189 + (5.0/3.0) * -128.625 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // il10r - ln_set_rate = 69.3346 + -3.00371 * tfactors.T9i + -33.7204 * tfactors.T913i + -32.7355 * tfactors.T913 - + 3.92526 * tfactors.T9 + -0.250479 * tfactors.T953 + -1.5 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K40_n_to_p_Ar40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // K40 + n --> p + Ar40 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.00371 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -33.7204 * tfactors.T943i + (1.0/3.0) * -32.7355 * tfactors.T923i - + 3.92526 + (5.0/3.0) * -0.250479 * tfactors.T923 + -1.5 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ths8r + ln_set_rate = 14.133 + -0.499903 * tfactors.T913 + + 0.849663 * tfactors.T9 + -0.0834774 * tfactors.T953; - // il10r - ln_set_rate = -27.2382 + -0.874107 * tfactors.T9i - + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.499903 * tfactors.T923i + + 0.849663 + (5.0/3.0) * -0.0834774 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.874107 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K40_n_to_He4_Cl37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_S32_to_Ar36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // K40 + n --> He4 + Cl37 - // S32 + He4 --> Ar36 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 16.0992 + -0.86425 * tfactors.T913 + + 0.646211 * tfactors.T9 + -0.0583195 * tfactors.T953; - // ths8r - ln_set_rate = 48.901 + -65.3709 * tfactors.T913i + 5.68294 * tfactors.T913 - + -5.00388 * tfactors.T9 + 0.571407 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.86425 * tfactors.T923i + + 0.646211 + (5.0/3.0) * -0.0583195 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -65.3709 * tfactors.T943i + (1.0/3.0) * 5.68294 * tfactors.T923i - + -5.00388 + (5.0/3.0) * 0.571407 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K40_p_to_n_Ca40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_S33_to_S34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // K40 + p --> n + Ca40 - // S33 + n --> S34 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 32.1312 + -30.0795 * tfactors.T913i + 2.76095 * tfactors.T913 + + -1.51745 * tfactors.T9 + 0.191236 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ks03 - ln_set_rate = -4.17932 + 0.24641 * tfactors.T9i + -23.1351 * tfactors.T913i + 43.3623 * tfactors.T913 - + -2.74733 * tfactors.T9 + 0.159045 * tfactors.T953 + -19.6332 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -30.0795 * tfactors.T943i + (1.0/3.0) * 2.76095 * tfactors.T923i + + -1.51745 + (5.0/3.0) * 0.191236 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.24641 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -23.1351 * tfactors.T943i + (1.0/3.0) * 43.3623 * tfactors.T923i - + -2.74733 + (5.0/3.0) * 0.159045 * tfactors.T923 + -19.6332 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K40_p_to_He4_Ar37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_S33_to_Cl34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // K40 + p --> He4 + Ar37 - // S33 + p --> Cl34 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 23.7792 + -30.0795 * tfactors.T913i + 8.28189 * tfactors.T913 + + -2.15178 * tfactors.T9 + 0.242064 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 36.4908 + -26.777 * tfactors.T913i + -5.96882 * tfactors.T913 - + -1.0706 * tfactors.T9 + 0.19692 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -30.0795 * tfactors.T943i + (1.0/3.0) * 8.28189 * tfactors.T923i + + -2.15178 + (5.0/3.0) * 0.242064 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -26.777 * tfactors.T943i + (1.0/3.0) * -5.96882 * tfactors.T923i - + -1.0706 + (5.0/3.0) * 0.19692 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K40_He4_to_p_Ca43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_S33_to_Ar37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // K40 + He4 --> p + Ca43 - // S33 + He4 --> Ar37 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 43.3098 + -73.858 * tfactors.T913i + 16.1645 * tfactors.T913 + + -5.93343 * tfactors.T9 + 0.650563 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 49.9315 + -65.4446 * tfactors.T913i + 3.59607 * tfactors.T913 - + -3.40501 * tfactors.T9 + 0.363961 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -73.858 * tfactors.T943i + (1.0/3.0) * 16.1645 * tfactors.T923i + + -5.93343 + (5.0/3.0) * 0.650563 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -65.4446 * tfactors.T943i + (1.0/3.0) * 3.59607 * tfactors.T923i - + -3.40501 + (5.0/3.0) * 0.363961 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K41_p_to_n_Ca41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_S34_to_S35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // K41 + p --> n + Ca41 - // S34 + n --> S35 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // SM86 + ln_set_rate = 8.69806 + -13.9718 * tfactors.T9i + 6.52588 * tfactors.T913 + + -1.55272 * tfactors.T9 + 0.150334 * tfactors.T953 + 1.0 * tfactors.lnT9; - // ks03 - ln_set_rate = 41.4131 + -0.229262 * tfactors.T9i + 25.2182 * tfactors.T913i + -59.2704 * tfactors.T913 - + 4.22256 * tfactors.T9 + -0.274247 * tfactors.T953 + 24.532 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 13.9718 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 6.52588 * tfactors.T923i + + -1.55272 + (5.0/3.0) * 0.150334 * tfactors.T923 + 1.0 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.229262 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 25.2182 * tfactors.T943i + (1.0/3.0) * -59.2704 * tfactors.T923i - + 4.22256 + (5.0/3.0) * -0.274247 * tfactors.T923 + 24.532 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // SM86 + ln_set_rate = 15.9784 + -13.9718 * tfactors.T9i + -2.82146 * tfactors.T913 + + 1.71734 * tfactors.T9 + -0.187775 * tfactors.T953; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_S34_to_Cl35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 13.9718 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.82146 * tfactors.T923i + + 1.71734 + (5.0/3.0) * -0.187775 * tfactors.T923; - // S34 + p --> Cl35 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + } - // se19r - ln_set_rate = -7.70046 + -2.02615 * tfactors.T9i - + -1.5 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K41_p_to_He4_Ar38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // K41 + p --> He4 + Ar38 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.02615 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // tb18 + ln_set_rate = 64.4107 + -0.681143 * tfactors.T9i + 9.28681 * tfactors.T913i + -73.161 * tfactors.T913 + + 4.26053 * tfactors.T9 + -0.235892 * tfactors.T953 + 31.8226 * tfactors.lnT9; - // se19r - ln_set_rate = 8.25443 + -5.75583 * tfactors.T9i - + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.681143 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 9.28681 * tfactors.T943i + (1.0/3.0) * -73.161 * tfactors.T923i + + 4.26053 + (5.0/3.0) * -0.235892 * tfactors.T923 + 31.8226 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.75583 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // se19r - ln_set_rate = -14.8781 + -1.40414 * tfactors.T9i - + -1.5 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K41_He4_to_n_Sc44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // K41 + He4 --> n + Sc44 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.40414 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // SM91 + ln_set_rate = 12.8237 + -39.3393 * tfactors.T9i + -7.79828 * tfactors.T913 + + 4.55188 * tfactors.T9 + -0.667478 * tfactors.T953 + 1.0 * tfactors.lnT9; - // se19r - ln_set_rate = 7.00142 + -5.10598 * tfactors.T9i - + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 39.3393 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -7.79828 * tfactors.T923i + + 4.55188 + (5.0/3.0) * -0.667478 * tfactors.T923 + 1.0 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.10598 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // SM91 + ln_set_rate = 12.4167 + -39.3393 * tfactors.T9i + -2.89121 * tfactors.T913 + + 2.26347 * tfactors.T9 + -0.251579 * tfactors.T953; - // se19r - ln_set_rate = -17.9366 + -1.17205 * tfactors.T9i - + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 39.3393 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.89121 * tfactors.T923i + + 2.26347 + (5.0/3.0) * -0.251579 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.17205 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // se19r - ln_set_rate = 5.80604 + -4.6418 * tfactors.T9i - + -1.5 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_K41_He4_to_p_Ca44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // K41 + He4 --> p + Ca44 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 4.6418 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // SM91n + ln_set_rate = 55.5 + -73.9 * tfactors.T913i + -0.410794 * tfactors.T913 + + 0.365336 * tfactors.T9 + -0.607187 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // se19r - ln_set_rate = 0.43449 + -3.16803 * tfactors.T9i - + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -73.9 * tfactors.T943i + (1.0/3.0) * -0.410794 * tfactors.T923i + + 0.365336 + (5.0/3.0) * -0.607187 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.16803 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // SM91n + ln_set_rate = 48.7841 + -73.9 * tfactors.T913i + 5.43181 * tfactors.T913 + + -2.12763 * tfactors.T9 + 0.134461 * tfactors.T953 + 0.333333 * tfactors.lnT9; - // se19r - ln_set_rate = -60.0247 + -27.689 * tfactors.T9i + 454.53 * tfactors.T913i + -375.557 * tfactors.T913 - + 12.6533 * tfactors.T9 + -0.408677 * tfactors.T953 + 245.118 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -73.9 * tfactors.T943i + (1.0/3.0) * 5.43181 * tfactors.T923i + + -2.12763 + (5.0/3.0) * 0.134461 * tfactors.T923 + 0.333333 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 27.689 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 454.53 * tfactors.T943i + (1.0/3.0) * -375.557 * tfactors.T923i - + 12.6533 + (5.0/3.0) * -0.408677 * tfactors.T923 + 245.118 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca40_n_to_He4_Ar37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_S34_to_Ar38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca40 + n --> He4 + Ar37 - // S34 + He4 --> Ar38 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -9.43576 + 13.8882 * tfactors.T913 + + 0.260223 * tfactors.T9 + -0.108063 * tfactors.T953; - // cn18 - ln_set_rate = 228.729 + -17.9675 * tfactors.T9i + 635.332 * tfactors.T913i + -902.05 * tfactors.T913 - + 42.5623 * tfactors.T9 + -2.08434 * tfactors.T953 + 477.35 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 13.8882 * tfactors.T923i + + 0.260223 + (5.0/3.0) * -0.108063 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 17.9675 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 635.332 * tfactors.T943i + (1.0/3.0) * -902.05 * tfactors.T923i - + 42.5623 + (5.0/3.0) * -2.08434 * tfactors.T923 + 477.35 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca41_n_to_He4_Ar38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_S35_to_S36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca41 + n --> He4 + Ar38 - // S35 + n --> S36 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ta18 + ln_set_rate = 16.972 + -1.36064e-05 * tfactors.T9i + -0.0142 * tfactors.T913i + -0.10052 * tfactors.T913 + + 0.27737 * tfactors.T9 + -0.00483 * tfactors.T953 + -0.2165 * tfactors.lnT9; - // ths8r - ln_set_rate = 15.0579 + -2.51293 * tfactors.T913 - + 0.668068 * tfactors.T9 + -0.0786735 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.36064e-05 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.0142 * tfactors.T943i + (1.0/3.0) * -0.10052 * tfactors.T923i + + 0.27737 + (5.0/3.0) * -0.00483 * tfactors.T923 + -0.2165 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -2.51293 * tfactors.T923i - + 0.668068 + (5.0/3.0) * -0.0786735 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca42_n_to_He4_Ar39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_S35_to_Cl36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca42 + n --> He4 + Ar39 - // S35 + p --> Cl36 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -88.517 + 88.8565 * tfactors.T913 + + -12.9534 * tfactors.T9 + 0.93832 * tfactors.T953; - // ths8r - ln_set_rate = 35.1122 + -26.7922 * tfactors.T913i + -1.83516 * tfactors.T913 - + -2.03932 * tfactors.T9 + 0.322305 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 88.8565 * tfactors.T923i + + -12.9534 + (5.0/3.0) * 0.93832 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -26.7922 * tfactors.T943i + (1.0/3.0) * -1.83516 * tfactors.T923i - + -2.03932 + (5.0/3.0) * 0.322305 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca42_p_to_He4_K39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_S35_to_Ar39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca42 + p --> He4 + K39 - // S35 + He4 --> Ar39 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -78.212 + -31.1381 * tfactors.T913i + 117.868 * tfactors.T913 + + -27.0455 * tfactors.T9 + 2.75661 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 50.161 + -65.58 * tfactors.T913i + 0.163229 * tfactors.T913 - + -2.20138 * tfactors.T9 + 0.232938 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -31.1381 * tfactors.T943i + (1.0/3.0) * 117.868 * tfactors.T923i + + -27.0455 + (5.0/3.0) * 2.75661 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -65.58 * tfactors.T943i + (1.0/3.0) * 0.163229 * tfactors.T923i - + -2.20138 + (5.0/3.0) * 0.232938 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca43_n_to_He4_Ar40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_S36_to_Cl37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca43 + n --> He4 + Ar40 - // S36 + p --> Cl37 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 0.325905 + 4.3289 * tfactors.T913 + + 1.46375 * tfactors.T9 + -0.180625 * tfactors.T953; - // ths8r - ln_set_rate = 33.9758 + -26.7991 * tfactors.T913i + 0.0770118 * tfactors.T913 - + -1.71514 * tfactors.T9 + 0.205981 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 4.3289 * tfactors.T923i + + 1.46375 + (5.0/3.0) * -0.180625 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -26.7991 * tfactors.T943i + (1.0/3.0) * 0.0770118 * tfactors.T923i - + -1.71514 + (5.0/3.0) * 0.205981 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca43_He4_to_n_Ti46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_S36_to_Ar40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca43 + He4 --> n + Ti46 - // S36 + He4 --> Ar40 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 53.4643 + -76.5897 * tfactors.T913i + 3.69244 * tfactors.T913 + + -1.90131 * tfactors.T9 + 0.171994 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 49.9867 + -65.6425 * tfactors.T913i + 4.12861 * tfactors.T913 - + -3.33119 * tfactors.T9 + 0.31889 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -76.5897 * tfactors.T943i + (1.0/3.0) * 3.69244 * tfactors.T923i + + -1.90131 + (5.0/3.0) * 0.171994 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -65.6425 * tfactors.T943i + (1.0/3.0) * 4.12861 * tfactors.T923i - + -3.33119 + (5.0/3.0) * 0.31889 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca45_He4_to_n_Ti48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cl33_to_Cl34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca45 + He4 --> n + Ti48 - // Cl33 + n --> Cl34 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 57.1268 + -76.6866 * tfactors.T913i + -0.885239 * tfactors.T913 + + -0.554755 * tfactors.T9 + 0.0189393 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 8.14947 + 0.921411 * tfactors.T913 - + -0.0823764 * tfactors.T9 + 0.000852746 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -76.6866 * tfactors.T943i + (1.0/3.0) * -0.885239 * tfactors.T923i + + -0.554755 + (5.0/3.0) * 0.0189393 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.921411 * tfactors.T923i - + -0.0823764 + (5.0/3.0) * 0.000852746 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca47_p_to_n_Sc47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cl33_to_K37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca47 + p --> n + Sc47 - // Cl33 + He4 --> K37 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 34.8341 + -31.164 * tfactors.T913i + -0.314533 * tfactors.T913 + + -0.0979736 * tfactors.T9 + 0.00385901 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 46.6859 + -68.1442 * tfactors.T913i + -2.72746 * tfactors.T913 - + -0.317537 * tfactors.T9 + 0.0162782 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -31.164 * tfactors.T943i + (1.0/3.0) * -0.314533 * tfactors.T923i + + -0.0979736 + (5.0/3.0) * 0.00385901 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -68.1442 * tfactors.T943i + (1.0/3.0) * -2.72746 * tfactors.T923i - + -0.317537 + (5.0/3.0) * 0.0162782 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ca47_He4_to_n_Ti50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cl34_to_Cl35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ca47 + He4 --> n + Ti50 - // Cl34 + n --> Cl35 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 57.426 + -76.7758 * tfactors.T913i + -0.981924 * tfactors.T913 + + -0.52791 * tfactors.T9 + 0.0150723 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 12.6539 + 0.990222 * tfactors.T913 - + -0.146686 * tfactors.T9 + 0.00560251 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -76.7758 * tfactors.T943i + (1.0/3.0) * -0.981924 * tfactors.T923i + + -0.52791 + (5.0/3.0) * 0.0150723 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.990222 * tfactors.T923i - + -0.146686 + (5.0/3.0) * 0.00560251 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc43_n_to_p_Ca43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cl34_to_K38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Sc43 + n --> p + Ca43 - // Cl34 + He4 --> K38 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 19.4535 + -0.494422 * tfactors.T913 + + 0.261414 * tfactors.T9 + -0.0285528 * tfactors.T953; - // ths8r - ln_set_rate = 47.9589 + -68.2165 * tfactors.T913i + -2.18792 * tfactors.T913 - + -1.25322 * tfactors.T9 + 0.140901 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.494422 * tfactors.T923i + + 0.261414 + (5.0/3.0) * -0.0285528 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -68.2165 * tfactors.T943i + (1.0/3.0) * -2.18792 * tfactors.T923i - + -1.25322 + (5.0/3.0) * 0.140901 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc43_n_to_He4_K40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cl35_to_Cl36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Sc43 + n --> He4 + K40 - // Cl35 + n --> Cl36 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 10.3424 + -0.653091 * tfactors.T913 + + 1.79632 * tfactors.T9 + -0.19216 * tfactors.T953; - // ks03 - ln_set_rate = 2.77768 + 0.10548 * tfactors.T9i + -11.2145 * tfactors.T913i + 23.5701 * tfactors.T913 - + -1.44059 * tfactors.T9 + 0.0755834 * tfactors.T953 + -10.3832 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.653091 * tfactors.T923i + + 1.79632 + (5.0/3.0) * -0.19216 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.10548 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -11.2145 * tfactors.T943i + (1.0/3.0) * 23.5701 * tfactors.T923i - + -1.44059 + (5.0/3.0) * 0.0755834 * tfactors.T923 + -10.3832 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cl35_to_Ar36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cl35 + p --> Ar36 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc43_p_to_He4_Ca40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // il10r - ln_set_rate = -42.5249 + -0.564651 * tfactors.T9i - + -1.5 * tfactors.lnT9; + // Sc43 + p --> He4 + Ca40 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.564651 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 34.8559 + -32.1734 * tfactors.T913i + 0.0296879 * tfactors.T913 + + -0.95232 * tfactors.T9 + 0.129022 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10n - ln_set_rate = 35.6868 + -27.8971 * tfactors.T913i + -16.2304 * tfactors.T913 - + 35.255 * tfactors.T9 + -25.8411 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -32.1734 * tfactors.T943i + (1.0/3.0) * 0.0296879 * tfactors.T923i + + -0.95232 + (5.0/3.0) * 0.129022 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -27.8971 * tfactors.T943i + (1.0/3.0) * -16.2304 * tfactors.T923i - + 35.255 + (5.0/3.0) * -25.8411 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc43_He4_to_p_Ti46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // il10r - ln_set_rate = -7.84699 + -3.65092 * tfactors.T9i + 18.0179 * tfactors.T913 - + -2.86304 * tfactors.T9 + 0.250854 * tfactors.T953 + -1.5 * tfactors.lnT9; + // Sc43 + He4 --> p + Ti46 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.65092 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 18.0179 * tfactors.T923i - + -2.86304 + (5.0/3.0) * 0.250854 * tfactors.T923 + -1.5 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 57.3723 + -79.122 * tfactors.T913i + -0.495539 * tfactors.T913 + + -0.618414 * tfactors.T9 + 0.0175873 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10r - ln_set_rate = -9.03294 + -2.00996 * tfactors.T9i - + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -79.122 * tfactors.T943i + (1.0/3.0) * -0.495539 * tfactors.T923i + + -0.618414 + (5.0/3.0) * 0.0175873 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.00996 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc44_n_to_p_Ca44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Sc44 + n --> p + Ca44 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cl35_to_K39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cl35 + He4 --> K39 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 20.9033 + -1.95318 * tfactors.T913 + + 0.326277 * tfactors.T9 + -0.0205095 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 52.718 + -68.2848 * tfactors.T913i + 0.0178545 * tfactors.T913 - + -2.06783 * tfactors.T9 + 0.199659 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.95318 * tfactors.T923i + + 0.326277 + (5.0/3.0) * -0.0205095 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -68.2848 * tfactors.T943i + (1.0/3.0) * 0.0178545 * tfactors.T923i - + -2.06783 + (5.0/3.0) * 0.199659 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc44_p_to_He4_Ca41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Sc44 + p --> He4 + Ca41 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cl36_to_Cl37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cl36 + n --> Cl37 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 19.102 + -32.179 * tfactors.T913i + 13.8907 * tfactors.T913 + + -3.30408 * tfactors.T9 + 0.332186 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 14.7404 + -0.00175231 * tfactors.T9i + -0.17256 * tfactors.T913i + -0.577904 * tfactors.T913 - + 0.229273 * tfactors.T9 + -0.0412624 * tfactors.T953 + -0.214457 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -32.179 * tfactors.T943i + (1.0/3.0) * 13.8907 * tfactors.T923i + + -3.30408 + (5.0/3.0) * 0.332186 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.00175231 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.17256 * tfactors.T943i + (1.0/3.0) * -0.577904 * tfactors.T923i - + 0.229273 + (5.0/3.0) * -0.0412624 * tfactors.T923 + -0.214457 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc44_He4_to_p_Ti47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Sc44 + He4 --> p + Ti47 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cl36_to_Ar37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cl36 + p --> Ar37 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 59.5285 + -79.1731 * tfactors.T913i + -3.93328 * tfactors.T913 + + 0.112908 * tfactors.T9 + -0.0385366 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 34.0223 + -27.9044 * tfactors.T913i + -0.481331 * tfactors.T913 - + -1.50793 * tfactors.T9 + 0.182531 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -79.1731 * tfactors.T943i + (1.0/3.0) * -3.93328 * tfactors.T923i + + 0.112908 + (5.0/3.0) * -0.0385366 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -27.9044 * tfactors.T943i + (1.0/3.0) * -0.481331 * tfactors.T923i - + -1.50793 + (5.0/3.0) * 0.182531 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc45_n_to_p_Ca45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Sc45 + n --> p + Ca45 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cl36_to_K40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cl36 + He4 --> K40 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = -3.98017 + 14.7265 * tfactors.T913 + + -1.41914 * tfactors.T9 + 0.0785177 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 55.7157 + -68.3499 * tfactors.T913i + -4.69433 * tfactors.T913 - + -1.24812 * tfactors.T9 + 0.169306 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 14.7265 * tfactors.T923i + + -1.41914 + (5.0/3.0) * 0.0785177 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -68.3499 * tfactors.T943i + (1.0/3.0) * -4.69433 * tfactors.T923i - + -1.24812 + (5.0/3.0) * 0.169306 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc45_p_to_He4_Ca42_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Sc45 + p --> He4 + Ca42 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cl37_to_Ar38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cl37 + p --> Ar38 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 17.8284 + -32.1843 * tfactors.T913i + 14.0733 * tfactors.T913 + + -3.38786 * tfactors.T9 + 0.349494 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 34.0095 + -27.9113 * tfactors.T913i + 0.282028 * tfactors.T913 - + -1.80122 * tfactors.T9 + 0.21751 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -32.1843 * tfactors.T943i + (1.0/3.0) * 14.0733 * tfactors.T923i + + -3.38786 + (5.0/3.0) * 0.349494 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -27.9113 * tfactors.T943i + (1.0/3.0) * 0.282028 * tfactors.T923i - + -1.80122 + (5.0/3.0) * 0.21751 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc45_He4_to_p_Ti48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Sc45 + He4 --> p + Ti48 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cl37_to_K41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cl37 + He4 --> K41 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 57.207 + -79.222 * tfactors.T913i + 0.0710184 * tfactors.T913 + + -1.47173 * tfactors.T9 + 0.15944 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 51.2462 + -68.4116 * tfactors.T913i + 3.55194 * tfactors.T913 - + -2.84942 * tfactors.T9 + 0.24958 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -79.222 * tfactors.T943i + (1.0/3.0) * 0.0710184 * tfactors.T923i + + -1.47173 + (5.0/3.0) * 0.15944 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -68.4116 * tfactors.T943i + (1.0/3.0) * 3.55194 * tfactors.T923i - + -2.84942 + (5.0/3.0) * 0.24958 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc46_n_to_p_Ca46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Sc46 + n --> p + Ca46 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ar36_to_Ar37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ar36 + n --> Ar37 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // rath + ln_set_rate = 74.17 + -0.632473 * tfactors.T9i + 65.2318 * tfactors.T913i + -132.177 * tfactors.T913 + + 8.05925 * tfactors.T9 + -0.425861 * tfactors.T953 + 59.0907 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 12.0149 + 0.0317044 * tfactors.T9i + -3.1764 * tfactors.T913i + 5.13191 * tfactors.T913 - + -0.00639688 * tfactors.T9 + -0.0292833 * tfactors.T953 + -2.74683 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 0.632473 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 65.2318 * tfactors.T943i + (1.0/3.0) * -132.177 * tfactors.T923i + + 8.05925 + (5.0/3.0) * -0.425861 * tfactors.T923 + 59.0907 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.0317044 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -3.1764 * tfactors.T943i + (1.0/3.0) * 5.13191 * tfactors.T923i - + -0.00639688 + (5.0/3.0) * -0.0292833 * tfactors.T923 + -2.74683 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc46_p_to_n_Ti46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Sc46 + p --> n + Ti46 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ar36_to_K37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ar36 + p --> K37 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // rath + ln_set_rate = 120.144 + -5.3851 * tfactors.T9i + 200.092 * tfactors.T913i + -329.451 * tfactors.T913 + + 18.1752 * tfactors.T9 + -1.01788 * tfactors.T953 + 164.827 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // il10r - ln_set_rate = 3.18278 + -8.98031 * tfactors.T9i + 7.50962 * tfactors.T913 - + -1.68675 * tfactors.T9 + 0.189725 * tfactors.T953 + -1.5 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.3851 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 200.092 * tfactors.T943i + (1.0/3.0) * -329.451 * tfactors.T923i + + 18.1752 + (5.0/3.0) * -1.01788 * tfactors.T923 + 164.827 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 8.98031 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 7.50962 * tfactors.T923i - + -1.68675 + (5.0/3.0) * 0.189725 * tfactors.T923 + -1.5 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc46_p_to_He4_Ca43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // il10r - ln_set_rate = 4.69769 + -3.6251 * tfactors.T9i - + -1.5 * tfactors.lnT9; + // Sc46 + p --> He4 + Ca43 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.6251 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // rath + ln_set_rate = 70.6373 + -5.26809 * tfactors.T9i + 189.856 * tfactors.T913i + -278.908 * tfactors.T913 + + 13.9142 * tfactors.T9 + -0.770736 * tfactors.T953 + 153.141 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // il10n - ln_set_rate = 21.4923 + -28.9682 * tfactors.T913i - + -1.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.26809 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 189.856 * tfactors.T943i + (1.0/3.0) * -278.908 * tfactors.T923i + + 13.9142 + (5.0/3.0) * -0.770736 * tfactors.T923 + 153.141 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -28.9682 * tfactors.T943i - + (5.0/3.0) * -1.0 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc46_He4_to_n_V49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Sc46 + He4 --> n + V49 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ar36_to_Ca40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ar36 + He4 --> Ca40 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // rath + ln_set_rate = -907.911 + 14.6583 * tfactors.T9i + -1592.71 * tfactors.T913i + 2609.63 * tfactors.T913 + + -155.96 * tfactors.T9 + 8.94971 * tfactors.T953 + -1223.97 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 52.3486 + -71.0046 * tfactors.T913i + 4.0656 * tfactors.T913 - + -5.26509 * tfactors.T9 + 0.683546 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -14.6583 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1592.71 * tfactors.T943i + (1.0/3.0) * 2609.63 * tfactors.T923i + + -155.96 + (5.0/3.0) * 8.94971 * tfactors.T923 + -1223.97 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -71.0046 * tfactors.T943i + (1.0/3.0) * 4.0656 * tfactors.T923i - + -5.26509 + (5.0/3.0) * 0.683546 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc46_He4_to_p_Ti49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Sc46 + He4 --> p + Ti49 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ar37_to_Ar38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ar37 + n --> Ar38 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // rath + ln_set_rate = -938.441 + 14.7159 * tfactors.T9i + -1603.15 * tfactors.T913i + 2650.58 * tfactors.T913 + + -159.776 * tfactors.T9 + 9.24163 * tfactors.T953 + -1237.15 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 14.7933 + -0.825362 * tfactors.T913 - + 0.336634 * tfactors.T9 + -0.0509617 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -14.7159 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1603.15 * tfactors.T943i + (1.0/3.0) * 2650.58 * tfactors.T923i + + -159.776 + (5.0/3.0) * 9.24163 * tfactors.T923 + -1237.15 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.825362 * tfactors.T923i - + 0.336634 + (5.0/3.0) * -0.0509617 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc47_p_to_He4_Ca44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Sc47 + p --> He4 + Ca44 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ar37_to_K38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ar37 + p --> K38 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // rath + ln_set_rate = 74.4575 + -5.79201 * tfactors.T9i + 224.282 * tfactors.T913i + -318.978 * tfactors.T913 + + 15.9466 * tfactors.T9 + -0.877308 * tfactors.T953 + 174.938 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 37.7254 + -28.9954 * tfactors.T913i + -5.57966 * tfactors.T913 - + -1.27516 * tfactors.T9 + 0.217568 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.79201 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 224.282 * tfactors.T943i + (1.0/3.0) * -318.978 * tfactors.T923i + + 15.9466 + (5.0/3.0) * -0.877308 * tfactors.T923 + 174.938 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -28.9954 * tfactors.T943i + (1.0/3.0) * -5.57966 * tfactors.T923i - + -1.27516 + (5.0/3.0) * 0.217568 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc47_He4_to_p_Ti50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Sc47 + He4 --> p + Ti50 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ar37_to_Ca41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ar37 + He4 --> Ca41 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // rath + ln_set_rate = -980.428 + 14.926 * tfactors.T9i + -1637.36 * tfactors.T913i + 2730.59 * tfactors.T913 + + -164.393 * tfactors.T9 + 9.47988 * tfactors.T953 + -1271.98 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 52.7522 + -71.0688 * tfactors.T913i + 2.71847 * tfactors.T913 - + -3.17333 * tfactors.T9 + 0.335323 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -14.926 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1637.36 * tfactors.T943i + (1.0/3.0) * 2730.59 * tfactors.T923i + + -164.393 + (5.0/3.0) * 9.47988 * tfactors.T923 + -1271.98 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -71.0688 * tfactors.T943i + (1.0/3.0) * 2.71847 * tfactors.T923i - + -3.17333 + (5.0/3.0) * 0.335323 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc48_n_to_p_Ca48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Sc48 + n --> p + Ca48 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ar38_to_Ar39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ar38 + n --> Ar39 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // rath + ln_set_rate = 193.674 + -1.20143 * tfactors.T9i + 149.725 * tfactors.T913i + -359.287 * tfactors.T913 + + 24.8127 * tfactors.T9 + -1.57647 * tfactors.T953 + 151.916 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 14.726 + -0.0331959 * tfactors.T9i + 2.38837 * tfactors.T913i + -4.76536 * tfactors.T913 - + 0.701311 * tfactors.T9 + -0.0705226 * tfactors.T953 + 1.80517 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.20143 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 149.725 * tfactors.T943i + (1.0/3.0) * -359.287 * tfactors.T923i + + 24.8127 + (5.0/3.0) * -1.57647 * tfactors.T923 + 151.916 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0331959 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.38837 * tfactors.T943i + (1.0/3.0) * -4.76536 * tfactors.T923i - + 0.701311 + (5.0/3.0) * -0.0705226 * tfactors.T923 + 1.80517 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc48_p_to_n_Ti48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Sc48 + p --> n + Ti48 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ar38_to_K39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ar38 + p --> K39 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // rath + ln_set_rate = 118.891 + -5.45559 * tfactors.T9i + 201.123 * tfactors.T913i + -329.189 * tfactors.T913 + + 18.2769 * tfactors.T9 + -1.03382 * tfactors.T953 + 164.945 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 35.2834 + -29.0021 * tfactors.T913i + -0.525968 * tfactors.T913 - + -1.94216 * tfactors.T9 + 0.267346 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.45559 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 201.123 * tfactors.T943i + (1.0/3.0) * -329.189 * tfactors.T923i + + 18.2769 + (5.0/3.0) * -1.03382 * tfactors.T923 + 164.945 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -29.0021 * tfactors.T943i + (1.0/3.0) * -0.525968 * tfactors.T923i - + -1.94216 + (5.0/3.0) * 0.267346 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc48_p_to_He4_Ca45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Sc48 + p --> He4 + Ca45 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ar38_to_Ca42_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ar38 + He4 --> Ca42 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // rath + ln_set_rate = 72.7227 + -5.86977 * tfactors.T9i + 239.338 * tfactors.T913i + -335.863 * tfactors.T913 + + 14.1283 * tfactors.T9 + -0.596544 * tfactors.T953 + 190.967 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 52.6394 + -71.1296 * tfactors.T913i + 2.75299 * tfactors.T913 - + -2.43406 * tfactors.T9 + 0.199511 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.86977 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 239.338 * tfactors.T943i + (1.0/3.0) * -335.863 * tfactors.T923i + + 14.1283 + (5.0/3.0) * -0.596544 * tfactors.T923 + 190.967 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -71.1296 * tfactors.T943i + (1.0/3.0) * 2.75299 * tfactors.T923i - + -2.43406 + (5.0/3.0) * 0.199511 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc48_He4_to_n_V51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Sc48 + He4 --> n + V51 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ar39_to_Ar40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ar39 + n --> Ar40 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // rath + ln_set_rate = -925.664 + 14.9263 * tfactors.T9i + -1621.99 * tfactors.T913i + 2659.5 * tfactors.T913 + + -158.959 * tfactors.T9 + 9.12514 * tfactors.T953 + -1247.44 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 15.8265 + -0.0317703 * tfactors.T9i + 2.09789 * tfactors.T913i + -4.77242 * tfactors.T913 - + 0.64032 * tfactors.T9 + -0.0694485 * tfactors.T953 + 1.51561 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -14.9263 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1621.99 * tfactors.T943i + (1.0/3.0) * 2659.5 * tfactors.T923i + + -158.959 + (5.0/3.0) * 9.12514 * tfactors.T923 + -1247.44 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0317703 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.09789 * tfactors.T943i + (1.0/3.0) * -4.77242 * tfactors.T923i - + 0.64032 + (5.0/3.0) * -0.0694485 * tfactors.T923 + 1.51561 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc48_He4_to_p_Ti51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Sc48 + He4 --> p + Ti51 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ar39_to_K40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ar39 + p --> K40 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // rath + ln_set_rate = -846.099 + 17.271 * tfactors.T9i + -1740.8 * tfactors.T913i + 2683.45 * tfactors.T913 + + -154.78 * tfactors.T9 + 8.68561 * tfactors.T953 + -1291.82 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 35.9873 + -29.0085 * tfactors.T913i + -2.81753 * tfactors.T913 - + -0.757962 * tfactors.T9 + 0.099462 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -17.271 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1740.8 * tfactors.T943i + (1.0/3.0) * 2683.45 * tfactors.T923i + + -154.78 + (5.0/3.0) * 8.68561 * tfactors.T923 + -1291.82 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -29.0085 * tfactors.T943i + (1.0/3.0) * -2.81753 * tfactors.T923i - + -0.757962 + (5.0/3.0) * 0.099462 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc49_p_to_n_Ti49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Sc49 + p --> n + Ti49 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ar39_to_Ca43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ar39 + He4 --> Ca43 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // rath + ln_set_rate = 120.282 + -5.52132 * tfactors.T9i + 204.555 * tfactors.T913i + -334.141 * tfactors.T913 + + 18.5078 * tfactors.T9 + -1.04158 * tfactors.T953 + 167.483 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 53.0126 + -71.1879 * tfactors.T913i + 2.58821 * tfactors.T913 - + -3.67809 * tfactors.T9 + 0.431537 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.52132 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 204.555 * tfactors.T943i + (1.0/3.0) * -334.141 * tfactors.T923i + + 18.5078 + (5.0/3.0) * -1.04158 * tfactors.T923 + 167.483 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -71.1879 * tfactors.T943i + (1.0/3.0) * 2.58821 * tfactors.T923i - + -3.67809 + (5.0/3.0) * 0.431537 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Sc49_p_to_He4_Ca46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Sc49 + p --> He4 + Ca46 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ar40_to_K41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ar40 + p --> K41 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // rath + ln_set_rate = 73.2396 + -5.66716 * tfactors.T9i + 218.203 * tfactors.T913i + -316.114 * tfactors.T913 + + 14.9186 * tfactors.T9 + -0.720017 * tfactors.T953 + 174.788 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 34.4108 + -29.0146 * tfactors.T913i + 0.65181 * tfactors.T913 - + -1.50557 * tfactors.T9 + 0.139974 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.66716 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 218.203 * tfactors.T943i + (1.0/3.0) * -316.114 * tfactors.T923i + + 14.9186 + (5.0/3.0) * -0.720017 * tfactors.T923 + 174.788 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -29.0146 * tfactors.T943i + (1.0/3.0) * 0.65181 * tfactors.T923i - + -1.50557 + (5.0/3.0) * 0.139974 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti44_n_to_p_Sc44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ti44 + n --> p + Sc44 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ar40_to_Ca44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Ar40 + He4 --> Ca44 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 10.2889 + 4.3491 * tfactors.T913 + + 0.421585 * tfactors.T9 + -0.0855256 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 51.2366 + -71.2432 * tfactors.T913i + 6.75101 * tfactors.T913 - + -5.53183 * tfactors.T9 + 0.667023 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 4.3491 * tfactors.T923i + + 0.421585 + (5.0/3.0) * -0.0855256 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -71.2432 * tfactors.T943i + (1.0/3.0) * 6.75101 * tfactors.T923i - + -5.53183 + (5.0/3.0) * 0.667023 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti44_n_to_He4_Ca41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ti44 + n --> He4 + Ca41 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_K37_to_K38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // K37 + n --> K38 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 7.51125 + 2.68094 * tfactors.T913 + + 1.34285 * tfactors.T9 + -0.18134 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 8.98129 + 0.538174 * tfactors.T913 - + -0.0208079 * tfactors.T9 + -0.00404949 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 2.68094 * tfactors.T923i + + 1.34285 + (5.0/3.0) * -0.18134 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.538174 * tfactors.T923i - + -0.0208079 + (5.0/3.0) * -0.00404949 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti44_He4_to_p_V47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ti44 + He4 --> p + V47 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_K38_to_K39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // K38 + n --> K39 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // chw0r + ln_set_rate = -76.5154 + -10.7931 * tfactors.T9i + 70.2835 * tfactors.T913 + + -7.99061 * tfactors.T9 + 0.486213 * tfactors.T953 + -1.5 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 13.7596 + -0.161985 * tfactors.T913 - + 0.187817 * tfactors.T9 + -0.0320464 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 10.7931 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 70.2835 * tfactors.T923i + + -7.99061 + (5.0/3.0) * 0.486213 * tfactors.T923 + -1.5 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.161985 * tfactors.T923i - + 0.187817 + (5.0/3.0) * -0.0320464 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti45_n_to_p_Sc45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ti45 + n --> p + Sc45 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_K39_to_K40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // K39 + n --> K40 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 20.2443 + -1.6182 * tfactors.T913 + + 0.577281 * tfactors.T9 + -0.0582774 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 17.6161 + 0.0316194 * tfactors.T9i + -2.2227 * tfactors.T913i + -1.88579 * tfactors.T913 - + 0.714904 * tfactors.T9 + -0.0774902 * tfactors.T953 + -0.859473 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.6182 * tfactors.T923i + + 0.577281 + (5.0/3.0) * -0.0582774 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.0316194 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.2227 * tfactors.T943i + (1.0/3.0) * -1.88579 * tfactors.T923i - + 0.714904 + (5.0/3.0) * -0.0774902 * tfactors.T923 + -0.859473 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti45_n_to_He4_Ca42_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ti45 + n --> He4 + Ca42 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_K39_to_Ca40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // K39 + p --> Ca40 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 16.4413 + -1.31041 * tfactors.T913 + + 0.516347 * tfactors.T9 + -0.0189198 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // lo18r - ln_set_rate = 2761.38 + -5.22234 * tfactors.T9i + 802.18 * tfactors.T913i + -4010.27 * tfactors.T913 - + 1136.19 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.31041 * tfactors.T923i + + 0.516347 + (5.0/3.0) * -0.0189198 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.22234 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 802.18 * tfactors.T943i + (1.0/3.0) * -4010.27 * tfactors.T923i - + 1136.19 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti45_He4_to_p_V48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // lo18r - ln_set_rate = 588.099 + -12.5647 * tfactors.T9i + 641.844 * tfactors.T913i + -1248.49 * tfactors.T913 - + 564.926 * tfactors.lnT9; + // Ti45 + He4 --> p + V48 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 12.5647 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 641.844 * tfactors.T943i + (1.0/3.0) * -1248.49 * tfactors.T923i - + 564.926 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 54.1979 + -81.7175 * tfactors.T913i + 5.07471 * tfactors.T913 + + -2.34907 * tfactors.T9 + 0.226169 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // lo18r - ln_set_rate = 102.252 + -1.66508 * tfactors.T9i + 41.1723 * tfactors.T913i + -149.299 * tfactors.T913 - + 10.5229 * tfactors.T9 + -0.68208 * tfactors.T953 + 59.2367 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -81.7175 * tfactors.T943i + (1.0/3.0) * 5.07471 * tfactors.T923i + + -2.34907 + (5.0/3.0) * 0.226169 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.66508 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 41.1723 * tfactors.T943i + (1.0/3.0) * -149.299 * tfactors.T923i - + 10.5229 + (5.0/3.0) * -0.68208 * tfactors.T923 + 59.2367 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti47_n_to_p_Sc47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ti47 + n --> p + Sc47 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_K39_to_Sc43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // K39 + He4 --> Sc43 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = -22.6984 + 30.6942 * tfactors.T913 + + -3.81514 * tfactors.T9 + 0.263484 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 54.1202 + -73.8006 * tfactors.T913i + 1.87885 * tfactors.T913 - + -2.75862 * tfactors.T9 + 0.279678 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 30.6942 * tfactors.T923i + + -3.81514 + (5.0/3.0) * 0.263484 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -73.8006 * tfactors.T943i + (1.0/3.0) * 1.87885 * tfactors.T923i - + -2.75862 + (5.0/3.0) * 0.279678 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti47_n_to_He4_Ca44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ti47 + n --> He4 + Ca44 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_K40_to_K41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // K40 + n --> K41 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = -3.94695 + 4.6504 * tfactors.T913 + + 2.25932 * tfactors.T9 + -0.286843 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 17.4542 + -0.0277342 * tfactors.T9i + 1.90527 * tfactors.T913i + -4.8523 * tfactors.T913 - + 0.552061 * tfactors.T9 + -0.0570777 * tfactors.T953 + 1.46777 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 4.6504 * tfactors.T923i + + 2.25932 + (5.0/3.0) * -0.286843 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0277342 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.90527 * tfactors.T943i + (1.0/3.0) * -4.8523 * tfactors.T923i - + 0.552061 + (5.0/3.0) * -0.0570777 * tfactors.T923 + 1.46777 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti49_n_to_He4_Ca46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ti49 + n --> He4 + Ca46 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_K40_to_Ca41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // K40 + p --> Ca41 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = -106.775 + 100.098 * tfactors.T913 + + -14.6121 * tfactors.T9 + 1.09235 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 35.0973 + -30.0795 * tfactors.T913i + 0.0447475 * tfactors.T913 - + -1.69565 * tfactors.T9 + 0.20173 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 100.098 * tfactors.T923i + + -14.6121 + (5.0/3.0) * 1.09235 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -30.0795 * tfactors.T943i + (1.0/3.0) * 0.0447475 * tfactors.T923i - + -1.69565 + (5.0/3.0) * 0.20173 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti49_He4_to_n_Cr52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ti49 + He4 --> n + Cr52 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_K40_to_Sc44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // K40 + He4 --> Sc44 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 58.814 + -81.8999 * tfactors.T913i + -0.331496 * tfactors.T913 + + -0.758416 * tfactors.T9 + 0.0413394 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 55.9694 + -73.858 * tfactors.T913i + -1.10691 * tfactors.T913 - + -2.42921 * tfactors.T9 + 0.294 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -81.8999 * tfactors.T943i + (1.0/3.0) * -0.331496 * tfactors.T923i + + -0.758416 + (5.0/3.0) * 0.0413394 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -73.858 * tfactors.T943i + (1.0/3.0) * -1.10691 * tfactors.T923i - + -2.42921 + (5.0/3.0) * 0.294 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti51_n_to_He4_Ca48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ti51 + n --> He4 + Ca48 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_K41_to_Ca42_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // K41 + p --> Ca42 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // rath + ln_set_rate = 72.4516 + -12.4162 * tfactors.T9i + 343.859 * tfactors.T913i + -441.137 * tfactors.T913 + + 18.781 * tfactors.T9 + -0.911515 * tfactors.T953 + 254.789 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // SM86n - ln_set_rate = 32.2014 + -30.08 * tfactors.T913i + 2.93877 * tfactors.T913 - + 2.77388 * tfactors.T9 + -4.8284 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 12.4162 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 343.859 * tfactors.T943i + (1.0/3.0) * -441.137 * tfactors.T923i + + 18.781 + (5.0/3.0) * -0.911515 * tfactors.T923 + 254.789 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -30.08 * tfactors.T943i + (1.0/3.0) * 2.93877 * tfactors.T923i - + 2.77388 + (5.0/3.0) * -4.8284 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti51_p_to_n_V51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // SM86r - ln_set_rate = 16.0218 + -12.0 * tfactors.T9i + -1.68317 * tfactors.T913 - + 0.692171 * tfactors.T9 + -0.0831029 * tfactors.T953 + -1.5 * tfactors.lnT9; + // Ti51 + p --> n + V51 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 12.0 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.68317 * tfactors.T923i - + 0.692171 + (5.0/3.0) * -0.0831029 * tfactors.T923 + -1.5 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // rath + ln_set_rate = 121.807 + -5.7807 * tfactors.T9i + 213.317 * tfactors.T913i + -345.382 * tfactors.T913 + + 19.0423 * tfactors.T9 + -1.06972 * tfactors.T953 + 173.788 * tfactors.lnT9; + + ln_set_rate += log_scor; + + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.7807 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 213.317 * tfactors.T943i + (1.0/3.0) * -345.382 * tfactors.T923i + + 19.0423 + (5.0/3.0) * -1.06972 * tfactors.T923 + 173.788 * tfactors.T9i; + + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } + + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ti51_He4_to_n_Cr54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_K41_to_Sc45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ti51 + He4 --> n + Cr54 - // K41 + He4 --> Sc45 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // rath + ln_set_rate = -987.778 + 15.8616 * tfactors.T9i + -1722.81 * tfactors.T913i + 2829.38 * tfactors.T913 + + -169.068 * tfactors.T9 + 9.70315 * tfactors.T953 + -1326.98 * tfactors.lnT9; - // ths8r - ln_set_rate = 54.8015 + -73.9127 * tfactors.T913i + 0.81435 * tfactors.T913 - + -2.90813 * tfactors.T9 + 0.335176 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -15.8616 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1722.81 * tfactors.T943i + (1.0/3.0) * 2829.38 * tfactors.T923i + + -169.068 + (5.0/3.0) * 9.70315 * tfactors.T923 + -1326.98 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -73.9127 * tfactors.T943i + (1.0/3.0) * 0.81435 * tfactors.T923i - + -2.90813 + (5.0/3.0) * 0.335176 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V46_n_to_p_Ti46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ca40_to_Ca41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // V46 + n --> p + Ti46 - // Ca40 + n --> Ca41 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 21.15 + -0.663329 * tfactors.T913 + + 0.174849 * tfactors.T9 + -0.0157869 * tfactors.T953; - // ks03 - ln_set_rate = 3.04601 + 0.0855375 * tfactors.T9i + -9.18636 * tfactors.T913i + 21.0095 * tfactors.T913 - + -1.33326 * tfactors.T9 + 0.0769347 * tfactors.T953 + -8.66245 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.663329 * tfactors.T923i + + 0.174849 + (5.0/3.0) * -0.0157869 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.0855375 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -9.18636 * tfactors.T943i + (1.0/3.0) * 21.0095 * tfactors.T923i - + -1.33326 + (5.0/3.0) * 0.0769347 * tfactors.T923 + -8.66245 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V46_n_to_He4_Sc43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ca40_to_Ti44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // V46 + n --> He4 + Sc43 - // Ca40 + He4 --> Ti44 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 7.52435 + 6.99126 * tfactors.T913 + + -0.552826 * tfactors.T9 + 0.0272052 * tfactors.T953; - // chw0 - ln_set_rate = 53.75 + -76.4273 * tfactors.T913i + 3.87451 * tfactors.T913 - + -3.61477 * tfactors.T9 + 0.367451 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 6.99126 * tfactors.T923i + + -0.552826 + (5.0/3.0) * 0.0272052 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -76.4273 * tfactors.T943i + (1.0/3.0) * 3.87451 * tfactors.T923i - + -3.61477 + (5.0/3.0) * 0.367451 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V46_He4_to_p_Cr49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ca41_to_Ca42_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // V46 + He4 --> p + Cr49 - // Ca41 + n --> Ca42 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 59.798 + -84.2255 * tfactors.T913i + -1.09776 * tfactors.T913 + + -0.495216 * tfactors.T9 + 0.0124719 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ks03 - ln_set_rate = 20.4461 + -0.0409481 * tfactors.T9i + 3.7037 * tfactors.T913i + -9.99246 * tfactors.T913 - + 1.05894 * tfactors.T9 + -0.0978564 * tfactors.T953 + 3.43604 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -84.2255 * tfactors.T943i + (1.0/3.0) * -1.09776 * tfactors.T923i + + -0.495216 + (5.0/3.0) * 0.0124719 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0409481 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 3.7037 * tfactors.T943i + (1.0/3.0) * -9.99246 * tfactors.T923i - + 1.05894 + (5.0/3.0) * -0.0978564 * tfactors.T923 + 3.43604 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V47_n_to_p_Ti47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ca41_to_Ti45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // V47 + n --> p + Ti47 - // Ca41 + He4 --> Ti45 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 20.3911 + -0.897943 * tfactors.T913 + + 0.233018 * tfactors.T9 + -0.0170844 * tfactors.T953; - // ths8r - ln_set_rate = 54.6305 + -76.4839 * tfactors.T913i + 3.03748 * tfactors.T913 - + -2.59814 * tfactors.T9 + 0.210582 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.897943 * tfactors.T923i + + 0.233018 + (5.0/3.0) * -0.0170844 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -76.4839 * tfactors.T943i + (1.0/3.0) * 3.03748 * tfactors.T923i - + -2.59814 + (5.0/3.0) * 0.210582 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V47_n_to_He4_Sc44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ca42_to_Ca43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // V47 + n --> He4 + Sc44 - // Ca42 + n --> Ca43 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -34.4416 + 31.743 * tfactors.T913 + + -1.66241 * tfactors.T9 + -0.0278854 * tfactors.T953; - // ks03 - ln_set_rate = 15.996 + 0.0365498 * tfactors.T9i + -2.75867 * tfactors.T913i + 0.860871 * tfactors.T913 - + 0.583467 * tfactors.T9 + -0.094473 * tfactors.T953 + -1.59357 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 31.743 * tfactors.T923i + + -1.66241 + (5.0/3.0) * -0.0278854 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.0365498 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.75867 * tfactors.T943i + (1.0/3.0) * 0.860871 * tfactors.T923i - + 0.583467 + (5.0/3.0) * -0.094473 * tfactors.T923 + -1.59357 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V47_He4_to_p_Cr50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ca42_to_Sc43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // V47 + He4 --> p + Cr50 - // Ca42 + p --> Sc43 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 59.9106 + -84.2732 * tfactors.T913i + -1.10027 * tfactors.T913 + + -0.487084 * tfactors.T9 + 0.00453269 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 35.8192 + -31.1381 * tfactors.T913i + -0.151667 * tfactors.T913 - + -1.76926 * tfactors.T9 + 0.219569 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -84.2732 * tfactors.T943i + (1.0/3.0) * -1.10027 * tfactors.T923i + + -0.487084 + (5.0/3.0) * 0.00453269 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -31.1381 * tfactors.T943i + (1.0/3.0) * -0.151667 * tfactors.T923i - + -1.76926 + (5.0/3.0) * 0.219569 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V48_n_to_p_Ti48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ca42_to_Ti46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // V48 + n --> p + Ti48 - // Ca42 + He4 --> Ti46 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 19.5486 + -0.307045 * tfactors.T913 + + 0.0615476 * tfactors.T9 + -0.00172407 * tfactors.T953; - // ths8r - ln_set_rate = 54.833 + -76.5379 * tfactors.T913i + 2.80099 * tfactors.T913 - + -2.34788 * tfactors.T9 + 0.150014 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.307045 * tfactors.T923i + + 0.0615476 + (5.0/3.0) * -0.00172407 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -76.5379 * tfactors.T943i + (1.0/3.0) * 2.80099 * tfactors.T923i - + -2.34788 + (5.0/3.0) * 0.150014 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V48_n_to_He4_Sc45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ca43_to_Ca44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // V48 + n --> He4 + Sc45 - // Ca43 + n --> Ca44 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -5.87552 + 8.18067 * tfactors.T913 + + 1.50465 * tfactors.T9 + -0.224564 * tfactors.T953; - // ks03 - ln_set_rate = 10.6877 + -0.00587516 * tfactors.T9i + -1.26512 * tfactors.T913i + 6.74718 * tfactors.T913 - + -0.673582 * tfactors.T9 + 0.0412245 * tfactors.T953 + -2.30362 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 8.18067 * tfactors.T923i + + 1.50465 + (5.0/3.0) * -0.224564 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.00587516 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.26512 * tfactors.T943i + (1.0/3.0) * 6.74718 * tfactors.T923i - + -0.673582 + (5.0/3.0) * 0.0412245 * tfactors.T923 + -2.30362 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V48_He4_to_p_Cr51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ca43_to_Sc44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // V48 + He4 --> p + Cr51 - // Ca43 + p --> Sc44 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 60.9483 + -84.3192 * tfactors.T913i + -1.84683 * tfactors.T913 + + -0.459124 * tfactors.T9 + 0.00700566 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 34.9383 + -31.1437 * tfactors.T913i + 1.02701 * tfactors.T913 - + -1.81612 * tfactors.T9 + 0.197287 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -84.3192 * tfactors.T943i + (1.0/3.0) * -1.84683 * tfactors.T923i + + -0.459124 + (5.0/3.0) * 0.00700566 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -31.1437 * tfactors.T943i + (1.0/3.0) * 1.02701 * tfactors.T923i - + -1.81612 + (5.0/3.0) * 0.197287 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V49_n_to_p_Ti49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ca43_to_Ti47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // V49 + n --> p + Ti49 - // Ca43 + He4 --> Ti47 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 15.9391 + -2.17107 * tfactors.T913 + + 1.10014 * tfactors.T9 + -0.0944408 * tfactors.T953; - // ths8r - ln_set_rate = 60.4703 + -76.5897 * tfactors.T913i + -7.46117 * tfactors.T913 - + -0.574977 * tfactors.T9 + 0.115742 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -2.17107 * tfactors.T923i + + 1.10014 + (5.0/3.0) * -0.0944408 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -76.5897 * tfactors.T943i + (1.0/3.0) * -7.46117 * tfactors.T923i - + -0.574977 + (5.0/3.0) * 0.115742 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V49_p_to_He4_Ti46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ca44_to_Ca45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // V49 + p --> He4 + Ti46 - // Ca44 + n --> Ca45 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -20.0996 + -34.217 * tfactors.T913i + 47.2584 * tfactors.T913 + + -9.18871 * tfactors.T9 + 0.87823 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ks03 - ln_set_rate = 2.03089 + 0.19047 * tfactors.T9i + -17.5809 * tfactors.T913i + 30.835 * tfactors.T913 - + -1.52658 * tfactors.T9 + 0.0495163 * tfactors.T953 + -14.5794 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -34.217 * tfactors.T943i + (1.0/3.0) * 47.2584 * tfactors.T923i + + -9.18871 + (5.0/3.0) * 0.87823 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.19047 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -17.5809 * tfactors.T943i + (1.0/3.0) * 30.835 * tfactors.T923i - + -1.52658 + (5.0/3.0) * 0.0495163 * tfactors.T923 + -14.5794 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V49_He4_to_p_Cr52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ca44_to_Sc45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // V49 + He4 --> p + Cr52 - // Ca44 + p --> Sc45 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 57.428 + -84.3633 * tfactors.T913i + 2.73419 * tfactors.T913 + + -2.05655 * tfactors.T9 + 0.203834 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 35.0037 + -31.1491 * tfactors.T913i + 0.402181 * tfactors.T913 - + -1.30287 * tfactors.T9 + 0.135535 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -84.3633 * tfactors.T943i + (1.0/3.0) * 2.73419 * tfactors.T923i + + -2.05655 + (5.0/3.0) * 0.203834 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -31.1491 * tfactors.T943i + (1.0/3.0) * 0.402181 * tfactors.T923i - + -1.30287 + (5.0/3.0) * 0.135535 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V50_n_to_p_Ti50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ca44_to_Ti48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // V50 + n --> p + Ti50 - // Ca44 + He4 --> Ti48 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 2.14011 + 13.156 * tfactors.T913 + + -2.27428 * tfactors.T9 + 0.204692 * tfactors.T953; - // ths8r - ln_set_rate = 55.9169 + -76.6391 * tfactors.T913i + 2.70825 * tfactors.T913 - + -4.48808 * tfactors.T9 + 0.582872 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 13.156 * tfactors.T923i + + -2.27428 + (5.0/3.0) * 0.204692 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -76.6391 * tfactors.T943i + (1.0/3.0) * 2.70825 * tfactors.T923i - + -4.48808 + (5.0/3.0) * 0.582872 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V50_n_to_He4_Sc47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ca45_to_Ca46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // V50 + n --> He4 + Sc47 - // Ca45 + n --> Ca46 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -71.6649 + 66.0687 * tfactors.T913 + + -8.06344 * tfactors.T9 + 0.527546 * tfactors.T953; - // ks03 - ln_set_rate = 22.6116 + -0.0524788 * tfactors.T9i + 5.01526 * tfactors.T913i + -14.4226 * tfactors.T913 - + 1.37087 * tfactors.T9 + -0.111582 * tfactors.T953 + 4.87661 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 66.0687 * tfactors.T923i + + -8.06344 + (5.0/3.0) * 0.527546 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0524788 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 5.01526 * tfactors.T943i + (1.0/3.0) * -14.4226 * tfactors.T923i - + 1.37087 + (5.0/3.0) * -0.111582 * tfactors.T923 + 4.87661 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V50_p_to_n_Cr50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ca45_to_Sc46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // V50 + p --> n + Cr50 - // Ca45 + p --> Sc46 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 17.9003 + -34.2216 * tfactors.T913i + 18.9337 * tfactors.T913 + + -4.3348 * tfactors.T9 + 0.409807 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 38.986 + -31.1543 * tfactors.T913i + -6.97397 * tfactors.T913 - + -0.344025 * tfactors.T9 + 0.128258 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -34.2216 * tfactors.T943i + (1.0/3.0) * 18.9337 * tfactors.T923i + + -4.3348 + (5.0/3.0) * 0.409807 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -31.1543 * tfactors.T943i + (1.0/3.0) * -6.97397 * tfactors.T923i - + -0.344025 + (5.0/3.0) * 0.128258 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V50_p_to_He4_Ti47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ca45_to_Ti49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // V50 + p --> He4 + Ti47 - // Ca45 + He4 --> Ti49 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -50.621 + -34.2216 * tfactors.T913i + 78.8919 * tfactors.T913 + + -16.0561 * tfactors.T9 + 1.55251 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 57.6604 + -76.6866 * tfactors.T913i + -9.95306 * tfactors.T913 - + 1.72367 * tfactors.T9 + -0.226004 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -34.2216 * tfactors.T943i + (1.0/3.0) * 78.8919 * tfactors.T923i + + -16.0561 + (5.0/3.0) * 1.55251 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -76.6866 * tfactors.T943i + (1.0/3.0) * -9.95306 * tfactors.T923i - + 1.72367 + (5.0/3.0) * -0.226004 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V50_He4_to_p_Cr53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ca46_to_Ca47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // V50 + He4 --> p + Cr53 - // Ca46 + n --> Ca47 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 43.0514 + -84.4058 * tfactors.T913i + 13.5454 * tfactors.T913 + + -3.26175 * tfactors.T9 + 0.249401 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ks03 - ln_set_rate = -0.886174 + 0.206974 * tfactors.T9i + -19.7417 * tfactors.T913i + 35.2401 * tfactors.T913 - + -1.61262 * tfactors.T9 + 0.0443701 * tfactors.T953 + -16.7507 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -84.4058 * tfactors.T943i + (1.0/3.0) * 13.5454 * tfactors.T923i + + -3.26175 + (5.0/3.0) * 0.249401 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.206974 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -19.7417 * tfactors.T943i + (1.0/3.0) * 35.2401 * tfactors.T923i - + -1.61262 + (5.0/3.0) * 0.0443701 * tfactors.T923 + -16.7507 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V51_p_to_He4_Ti48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ca46_to_Sc47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // V51 + p --> He4 + Ti48 - // Ca46 + p --> Sc47 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -13.7548 + -34.2261 * tfactors.T913i + 38.6574 * tfactors.T913 + + -7.18743 * tfactors.T9 + 0.692255 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 34.3625 + -31.1593 * tfactors.T913i + 0.979497 * tfactors.T913 - + -1.14947 * tfactors.T9 + 0.064347 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -34.2261 * tfactors.T943i + (1.0/3.0) * 38.6574 * tfactors.T923i + + -7.18743 + (5.0/3.0) * 0.692255 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -31.1593 * tfactors.T943i + (1.0/3.0) * 0.979497 * tfactors.T923i - + -1.14947 + (5.0/3.0) * 0.064347 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V52_n_to_He4_Sc49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ca46_to_Ti50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // V52 + n --> He4 + Sc49 - // Ca46 + He4 --> Ti50 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // rath + ln_set_rate = -13.0046 + -2.2017 * tfactors.T9i + 174.784 * tfactors.T913i + -175.991 * tfactors.T913 + + 2.92402 * tfactors.T9 + 0.0459501 * tfactors.T953 + 127.478 * tfactors.lnT9; - // ths8r - ln_set_rate = 62.9052 + -76.732 * tfactors.T913i + -13.6546 * tfactors.T913 - + 1.61796 * tfactors.T9 + -0.159 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 2.2017 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 174.784 * tfactors.T943i + (1.0/3.0) * -175.991 * tfactors.T923i + + 2.92402 + (5.0/3.0) * 0.0459501 * tfactors.T923 + 127.478 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -76.732 * tfactors.T943i + (1.0/3.0) * -13.6546 * tfactors.T923i - + 1.61796 + (5.0/3.0) * -0.159 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V52_p_to_n_Cr52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ca47_to_Ca48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // V52 + p --> n + Cr52 - // Ca47 + n --> Ca48 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // rath + ln_set_rate = 130.283 + -6.04059 * tfactors.T9i + 225.572 * tfactors.T913i + -367.914 * tfactors.T913 + + 20.4967 * tfactors.T9 + -1.16016 * tfactors.T953 + 184.15 * tfactors.lnT9; - // ths8r - ln_set_rate = 15.2216 + -2.88636 * tfactors.T913 - + 0.79581 * tfactors.T9 + -0.0872236 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 6.04059 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 225.572 * tfactors.T943i + (1.0/3.0) * -367.914 * tfactors.T923i + + 20.4967 + (5.0/3.0) * -1.16016 * tfactors.T923 + 184.15 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -2.88636 * tfactors.T923i - + 0.79581 + (5.0/3.0) * -0.0872236 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V52_p_to_He4_Ti49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ca47_to_Sc48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // V52 + p --> He4 + Ti49 - // Ca47 + p --> Sc48 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // rath + ln_set_rate = 60.9203 + -5.89339 * tfactors.T9i + 209.633 * tfactors.T913i + -291.46 * tfactors.T913 + + 13.4258 * tfactors.T9 + -0.668366 * tfactors.T953 + 164.685 * tfactors.lnT9; - // ths8r - ln_set_rate = 29.5755 + -31.164 * tfactors.T913i + -2.03245 * tfactors.T913 - + 0.0494826 * tfactors.T9 + 0.00201831 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.89339 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 209.633 * tfactors.T943i + (1.0/3.0) * -291.46 * tfactors.T923i + + 13.4258 + (5.0/3.0) * -0.668366 * tfactors.T923 + 164.685 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -31.164 * tfactors.T943i + (1.0/3.0) * -2.03245 * tfactors.T923i - + 0.0494826 + (5.0/3.0) * 0.00201831 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_V52_He4_to_n_Mn55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ca47_to_Ti51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // V52 + He4 --> n + Mn55 - // Ca47 + He4 --> Ti51 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // rath + ln_set_rate = -1026.77 + 16.489 * tfactors.T9i + -1790.25 * tfactors.T913i + 2939.64 * tfactors.T913 + + -175.533 * tfactors.T9 + 10.0701 * tfactors.T953 + -1379.09 * tfactors.lnT9; - // ths8r - ln_set_rate = 50.6782 + -76.7758 * tfactors.T913i + -1.97823 * tfactors.T913 - + -0.552991 * tfactors.T9 + 0.0318371 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = -16.489 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1790.25 * tfactors.T943i + (1.0/3.0) * 2939.64 * tfactors.T923i + + -175.533 + (5.0/3.0) * 10.0701 * tfactors.T923 + -1379.09 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -76.7758 * tfactors.T943i + (1.0/3.0) * -1.97823 * tfactors.T923i - + -0.552991 + (5.0/3.0) * 0.0318371 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr48_n_to_p_V48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ca48_to_Sc49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Cr48 + n --> p + V48 - // Ca48 + p --> Sc49 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 16.9 + 0.783544 * tfactors.T913 + + 0.521131 * tfactors.T9 + -0.0677724 * tfactors.T953; - // ths8r - ln_set_rate = 33.8574 + -31.1685 * tfactors.T913i + 2.20987 * tfactors.T913 - + -2.24347 * tfactors.T9 + 0.239302 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.783544 * tfactors.T923i + + 0.521131 + (5.0/3.0) * -0.0677724 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -31.1685 * tfactors.T943i + (1.0/3.0) * 2.20987 * tfactors.T923i - + -2.24347 + (5.0/3.0) * 0.239302 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr48_n_to_He4_Ti45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Sc43_to_Sc44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Cr48 + n --> He4 + Ti45 - // Sc43 + n --> Sc44 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -27.4028 + 29.3634 * tfactors.T913 + + -2.63599 * tfactors.T9 + 0.159116 * tfactors.T953; - // ths8r - ln_set_rate = 15.7633 + -0.575865 * tfactors.T913 - + 0.0565199 * tfactors.T9 + -0.0129886 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 29.3634 * tfactors.T923i + + -2.63599 + (5.0/3.0) * 0.159116 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.575865 * tfactors.T923i - + 0.0565199 + (5.0/3.0) * -0.0129886 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr48_He4_to_p_Mn51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Sc43_to_Ti44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Cr48 + He4 --> p + Mn51 - // Sc43 + p --> Ti44 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 59.2276 + -86.7459 * tfactors.T913i + 1.05653 * tfactors.T913 + + -1.15757 * tfactors.T9 + 0.0877546 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 36.8432 + -32.1734 * tfactors.T913i + -1.77078 * tfactors.T913 - + -2.21706 * tfactors.T9 + 0.298499 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -86.7459 * tfactors.T943i + (1.0/3.0) * 1.05653 * tfactors.T923i + + -1.15757 + (5.0/3.0) * 0.0877546 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -32.1734 * tfactors.T943i + (1.0/3.0) * -1.77078 * tfactors.T923i - + -2.21706 + (5.0/3.0) * 0.298499 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr49_n_to_p_V49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Sc43_to_V47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Cr49 + n --> p + V49 - // Sc43 + He4 --> V47 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 21.1065 + -1.62261 * tfactors.T913 + + 0.507111 * tfactors.T9 + -0.0492268 * tfactors.T953; - // ths8r - ln_set_rate = 59.0195 + -79.122 * tfactors.T913i + -7.07006 * tfactors.T913 - + 0.424183 * tfactors.T9 + -0.0665231 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.62261 * tfactors.T923i + + 0.507111 + (5.0/3.0) * -0.0492268 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -79.122 * tfactors.T943i + (1.0/3.0) * -7.07006 * tfactors.T923i - + 0.424183 + (5.0/3.0) * -0.0665231 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr49_n_to_He4_Ti46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Sc44_to_Sc45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Cr49 + n --> He4 + Ti46 - // Sc44 + n --> Sc45 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 13.4786 + -2.81456 * tfactors.T913 + + 1.61029 * tfactors.T9 + -0.138467 * tfactors.T953; - // ths8r - ln_set_rate = 17.0705 + -1.31922 * tfactors.T913 - + 0.167096 * tfactors.T9 + -0.0191676 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -2.81456 * tfactors.T923i + + 1.61029 + (5.0/3.0) * -0.138467 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.31922 * tfactors.T923i - + 0.167096 + (5.0/3.0) * -0.0191676 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr49_He4_to_p_Mn52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Sc44_to_Ti45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Cr49 + He4 --> p + Mn52 - // Sc44 + p --> Ti45 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 52.5075 + -86.7913 * tfactors.T913i + 10.6892 * tfactors.T913 + + -4.01586 * tfactors.T9 + 0.411275 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 35.1446 + -32.179 * tfactors.T913i + 1.40668 * tfactors.T913 - + -2.02828 * tfactors.T9 + 0.230326 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -86.7913 * tfactors.T943i + (1.0/3.0) * 10.6892 * tfactors.T923i + + -4.01586 + (5.0/3.0) * 0.411275 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -32.179 * tfactors.T943i + (1.0/3.0) * 1.40668 * tfactors.T923i - + -2.02828 + (5.0/3.0) * 0.230326 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr50_n_to_He4_Ti47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Sc44_to_V48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Cr50 + n --> He4 + Ti47 - // Sc44 + He4 --> V48 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -108.708 + 104.649 * tfactors.T913 + + -15.3856 * tfactors.T9 + 1.13897 * tfactors.T953; - // ths8r - ln_set_rate = 56.6322 + -79.1731 * tfactors.T913i + -4.22583 * tfactors.T913 - + -0.427863 * tfactors.T9 + 0.0235817 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 104.649 * tfactors.T923i + + -15.3856 + (5.0/3.0) * 1.13897 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -79.1731 * tfactors.T943i + (1.0/3.0) * -4.22583 * tfactors.T923i - + -0.427863 + (5.0/3.0) * 0.0235817 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr51_n_to_p_V51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Sc45_to_Sc46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Cr51 + n --> p + V51 - // Sc45 + n --> Sc46 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 15.1388 + -0.462299 * tfactors.T913 + + 0.925265 * tfactors.T9 + -0.103818 * tfactors.T953; - // ks03 - ln_set_rate = 6.62692 + 0.0466836 * tfactors.T9i + -6.18502 * tfactors.T913i + 16.5806 * tfactors.T913 - + -1.45949 * tfactors.T9 + 0.0995696 * tfactors.T953 + -6.53696 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.462299 * tfactors.T923i + + 0.925265 + (5.0/3.0) * -0.103818 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.0466836 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -6.18502 * tfactors.T943i + (1.0/3.0) * 16.5806 * tfactors.T923i - + -1.45949 + (5.0/3.0) * 0.0995696 * tfactors.T923 + -6.53696 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr51_n_to_He4_Ti48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Sc45_to_Ti46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Cr51 + n --> He4 + Ti48 - // Sc45 + p --> Ti46 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -0.304828 + 1.94389 * tfactors.T913 + + 2.5871 * tfactors.T9 + -0.307303 * tfactors.T953; - // ths8r - ln_set_rate = 34.8383 + -32.1843 * tfactors.T913i + 1.38642 * tfactors.T913 - + -1.64811 * tfactors.T9 + 0.157323 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 1.94389 * tfactors.T923i + + 2.5871 + (5.0/3.0) * -0.307303 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -32.1843 * tfactors.T943i + (1.0/3.0) * 1.38642 * tfactors.T923i - + -1.64811 + (5.0/3.0) * 0.157323 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr53_n_to_He4_Ti50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Sc45_to_V49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Cr53 + n --> He4 + Ti50 - // Sc45 + He4 --> V49 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -23.5895 + 21.17 * tfactors.T913 + + -0.195248 * tfactors.T9 + -0.121068 * tfactors.T953; - // ths8r - ln_set_rate = 60.1427 + -79.222 * tfactors.T913i + -5.31022 * tfactors.T913 - + -1.37323 * tfactors.T9 + 0.21679 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 21.17 * tfactors.T923i + + -0.195248 + (5.0/3.0) * -0.121068 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -79.222 * tfactors.T943i + (1.0/3.0) * -5.31022 * tfactors.T923i - + -1.37323 + (5.0/3.0) * 0.21679 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cr54_p_to_He4_V51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Sc46_to_Sc47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Cr54 + p --> He4 + V51 - // Sc46 + n --> Sc47 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -94.698 + -35.2237 * tfactors.T913i + 131.726 * tfactors.T913 + + -29.7395 * tfactors.T9 + 3.03809 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // rath - ln_set_rate = 17.7335 + -0.0211697 * tfactors.T9i + 1.157 * tfactors.T913i + -3.39674 * tfactors.T913 - + 0.179575 * tfactors.T9 + -0.00780135 * tfactors.T953 + 0.783491 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -35.2237 * tfactors.T943i + (1.0/3.0) * 131.726 * tfactors.T923i + + -29.7395 + (5.0/3.0) * 3.03809 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0211697 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.157 * tfactors.T943i + (1.0/3.0) * -3.39674 * tfactors.T923i - + 0.179575 + (5.0/3.0) * -0.00780135 * tfactors.T923 + 0.783491 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn50_n_to_p_Cr50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Sc46_to_Ti47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Mn50 + n --> p + Cr50 - // Sc46 + p --> Ti47 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 21.5859 + -1.04612 * tfactors.T913 + + 0.340541 * tfactors.T9 + -0.0370932 * tfactors.T953; - // rath - ln_set_rate = 134.507 + -5.50507 * tfactors.T9i + 212.079 * tfactors.T913i + -358.599 * tfactors.T913 - + 19.2793 * tfactors.T9 + -1.01913 * tfactors.T953 + 176.254 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.04612 * tfactors.T923i + + 0.340541 + (5.0/3.0) * -0.0370932 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.50507 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 212.079 * tfactors.T943i + (1.0/3.0) * -358.599 * tfactors.T923i - + 19.2793 + (5.0/3.0) * -1.01913 * tfactors.T923 + 176.254 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn50_n_to_He4_V47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Sc46_to_V50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Mn50 + n --> He4 + V47 - // Sc46 + He4 --> V50 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 12.7581 + 0.0723126 * tfactors.T913 + + 0.772457 * tfactors.T9 + -0.0591176 * tfactors.T953; - // rath - ln_set_rate = -953.322 + 15.73 * tfactors.T9i + -1681.31 * tfactors.T913i + 2743.27 * tfactors.T913 - + -162.405 * tfactors.T9 + 9.24681 * tfactors.T953 + -1292.78 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.0723126 * tfactors.T923i + + 0.772457 + (5.0/3.0) * -0.0591176 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -15.73 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1681.31 * tfactors.T943i + (1.0/3.0) * 2743.27 * tfactors.T923i - + -162.405 + (5.0/3.0) * 9.24681 * tfactors.T923 + -1292.78 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn50_He4_to_p_Fe53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Sc47_to_Sc48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Mn50 + He4 --> p + Fe53 - // Sc47 + n --> Sc48 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 62.6721 + -89.2309 * tfactors.T913i + -1.4758 * tfactors.T913 + + -0.437831 * tfactors.T9 + -0.00354594 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // rath - ln_set_rate = 14.3286 + -0.0127821 * tfactors.T9i + 0.297987 * tfactors.T913i + 0.438296 * tfactors.T913 - + 0.0468739 * tfactors.T9 + -0.0255895 * tfactors.T953 + -0.227277 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -89.2309 * tfactors.T943i + (1.0/3.0) * -1.4758 * tfactors.T923i + + -0.437831 + (5.0/3.0) * -0.00354594 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0127821 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 0.297987 * tfactors.T943i + (1.0/3.0) * 0.438296 * tfactors.T923i - + 0.0468739 + (5.0/3.0) * -0.0255895 * tfactors.T923 + -0.227277 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn51_n_to_p_Cr51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Sc47_to_Ti48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Mn51 + n --> p + Cr51 - // Sc47 + p --> Ti48 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 20.982 + -1.37768 * tfactors.T913 + + 0.466991 * tfactors.T9 + -0.0461074 * tfactors.T953; - // rath - ln_set_rate = 50.4169 + -5.06842 * tfactors.T9i + 155.189 * tfactors.T913i + -211.783 * tfactors.T913 - + 9.70286 * tfactors.T9 + -0.48757 * tfactors.T953 + 117.307 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.37768 * tfactors.T923i + + 0.466991 + (5.0/3.0) * -0.0461074 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.06842 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 155.189 * tfactors.T943i + (1.0/3.0) * -211.783 * tfactors.T923i - + 9.70286 + (5.0/3.0) * -0.48757 * tfactors.T923 + 117.307 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn51_n_to_He4_V48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Sc47_to_V51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Mn51 + n --> He4 + V48 - // Sc47 + He4 --> V51 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -23.8508 + 20.8632 * tfactors.T913 + + 0.466645 * tfactors.T9 + -0.196969 * tfactors.T953; - // rath - ln_set_rate = -1038.06 + 15.2937 * tfactors.T9i + -1682.84 * tfactors.T913i + 2838.54 * tfactors.T913 - + -171.874 * tfactors.T9 + 9.93236 * tfactors.T953 + -1317.42 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 20.8632 * tfactors.T923i + + 0.466645 + (5.0/3.0) * -0.196969 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -15.2937 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1682.84 * tfactors.T943i + (1.0/3.0) * 2838.54 * tfactors.T923i - + -171.874 + (5.0/3.0) * 9.93236 * tfactors.T923 + -1317.42 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn51_He4_to_p_Fe54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Sc48_to_Sc49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Mn51 + He4 --> p + Fe54 - // Sc48 + n --> Sc49 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 62.2777 + -89.274 * tfactors.T913i + -0.862452 * tfactors.T913 + + -0.635672 * tfactors.T9 + 0.0196464 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // rath - ln_set_rate = 17.731 + -0.026995 * tfactors.T9i + 2.32858 * tfactors.T913i + -6.44325 * tfactors.T913 - + 0.608389 * tfactors.T9 + -0.0534156 * tfactors.T953 + 2.13196 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -89.274 * tfactors.T943i + (1.0/3.0) * -0.862452 * tfactors.T923i + + -0.635672 + (5.0/3.0) * 0.0196464 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.026995 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.32858 * tfactors.T943i + (1.0/3.0) * -6.44325 * tfactors.T923i - + 0.608389 + (5.0/3.0) * -0.0534156 * tfactors.T923 + 2.13196 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn52_n_to_p_Cr52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Sc48_to_Ti49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Mn52 + n --> p + Cr52 - // Sc48 + p --> Ti49 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 17.9487 + 0.50599 * tfactors.T913 + + 0.283832 * tfactors.T9 + -0.0422814 * tfactors.T953; - // rath - ln_set_rate = 101.172 + -5.49324 * tfactors.T9i + 198.826 * tfactors.T913i + -313.844 * tfactors.T913 - + 17.0251 * tfactors.T9 + -0.945704 * tfactors.T953 + 159.404 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.50599 * tfactors.T923i + + 0.283832 + (5.0/3.0) * -0.0422814 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.49324 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 198.826 * tfactors.T943i + (1.0/3.0) * -313.844 * tfactors.T923i - + 17.0251 + (5.0/3.0) * -0.945704 * tfactors.T923 + 159.404 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn52_n_to_He4_V49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Sc48_to_V52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Mn52 + n --> He4 + V49 - // Sc48 + He4 --> V52 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -2.29492 + 5.72895 * tfactors.T913 + + 1.74506 * tfactors.T9 + -0.232362 * tfactors.T953; - // rath - ln_set_rate = -957.316 + 15.0869 * tfactors.T9i + -1642.74 * tfactors.T913i + 2707.58 * tfactors.T913 - + -162.101 * tfactors.T9 + 9.30824 * tfactors.T953 + -1268.27 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 5.72895 * tfactors.T923i + + 1.74506 + (5.0/3.0) * -0.232362 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -15.0869 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1642.74 * tfactors.T943i + (1.0/3.0) * 2707.58 * tfactors.T923i - + -162.101 + (5.0/3.0) * 9.30824 * tfactors.T923 + -1268.27 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn52_He4_to_p_Fe55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Sc49_to_Ti50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Mn52 + He4 --> p + Fe55 - // Sc49 + p --> Ti50 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 56.6689 + -89.3157 * tfactors.T913i + 5.65639 * tfactors.T913 + + -2.28952 * tfactors.T9 + 0.186017 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // rath - ln_set_rate = 106.943 + -5.43496 * tfactors.T9i + 195.561 * tfactors.T913i + -317.373 * tfactors.T913 - + 17.5352 * tfactors.T9 + -0.999861 * tfactors.T953 + 159.384 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -89.3157 * tfactors.T943i + (1.0/3.0) * 5.65639 * tfactors.T923i + + -2.28952 + (5.0/3.0) * 0.186017 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.43496 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 195.561 * tfactors.T943i + (1.0/3.0) * -317.373 * tfactors.T923i - + 17.5352 + (5.0/3.0) * -0.999861 * tfactors.T923 + 159.384 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn53_n_to_p_Cr53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ti44_to_Ti45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Mn53 + n --> p + Cr53 - // Ti44 + n --> Ti45 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 11.6975 + 0.167386 * tfactors.T913 + + 1.15594 * tfactors.T9 + -0.119143 * tfactors.T953; - // ths8r - ln_set_rate = 15.2506 + 1.01203 * tfactors.T913 - + -0.201174 * tfactors.T9 + 0.00360954 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.167386 * tfactors.T923i + + 1.15594 + (5.0/3.0) * -0.119143 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 1.01203 * tfactors.T923i - + -0.201174 + (5.0/3.0) * 0.00360954 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn53_n_to_He4_V50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ti44_to_Cr48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Mn53 + n --> He4 + V50 - // Ti44 + He4 --> Cr48 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -122.895 + 115.52 * tfactors.T913 + + -16.7944 * tfactors.T9 + 1.23427 * tfactors.T953; - // ths8r - ln_set_rate = 64.7958 + -81.667 * tfactors.T913i + -10.6333 * tfactors.T913 - + -0.672613 * tfactors.T9 + 0.161209 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 115.52 * tfactors.T923i + + -16.7944 + (5.0/3.0) * 1.23427 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -81.667 * tfactors.T943i + (1.0/3.0) * -10.6333 * tfactors.T923i - + -0.672613 + (5.0/3.0) * 0.161209 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn53_p_to_He4_Cr50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ti45_to_Ti46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Mn53 + p --> He4 + Cr50 - // Ti45 + n --> Ti46 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -68.3424 + -36.1913 * tfactors.T913i + 99.0857 * tfactors.T913 + + -20.8943 * tfactors.T9 + 2.06209 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 17.133 + -1.55633 * tfactors.T913 - + 0.300783 * tfactors.T9 + -0.0373696 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -36.1913 * tfactors.T943i + (1.0/3.0) * 99.0857 * tfactors.T923i + + -20.8943 + (5.0/3.0) * 2.06209 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.55633 * tfactors.T923i - + 0.300783 + (5.0/3.0) * -0.0373696 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn53_He4_to_p_Fe56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ti45_to_V46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Mn53 + He4 --> p + Fe56 - // Ti45 + p --> V46 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 54.0176 + -89.3558 * tfactors.T913i + 9.25287 * tfactors.T913 + + -3.70352 * tfactors.T9 + 0.372202 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 37.4468 + -33.1981 * tfactors.T913i + -1.66837 * tfactors.T913 - + -2.50285 * tfactors.T9 + 0.349152 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -89.3558 * tfactors.T943i + (1.0/3.0) * 9.25287 * tfactors.T923i + + -3.70352 + (5.0/3.0) * 0.372202 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -33.1981 * tfactors.T943i + (1.0/3.0) * -1.66837 * tfactors.T923i - + -2.50285 + (5.0/3.0) * 0.349152 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn54_n_to_p_Cr54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ti45_to_Cr49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Mn54 + n --> p + Cr54 - // Ti45 + He4 --> Cr49 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 15.9581 + -1.70783 * tfactors.T913 + + 0.767763 * tfactors.T9 + -0.0572818 * tfactors.T953; - // ths8r - ln_set_rate = 64.023 + -81.7175 * tfactors.T913i + -10.1755 * tfactors.T913 - + 0.364167 * tfactors.T9 + -0.000317666 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.70783 * tfactors.T923i + + 0.767763 + (5.0/3.0) * -0.0572818 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -81.7175 * tfactors.T943i + (1.0/3.0) * -10.1755 * tfactors.T923i - + 0.364167 + (5.0/3.0) * -0.000317666 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn54_n_to_He4_V51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ti46_to_Ti47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Mn54 + n --> He4 + V51 - // Ti46 + n --> Ti47 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -7.40385 + 7.07865 * tfactors.T913 + + 2.24997 * tfactors.T9 + -0.318964 * tfactors.T953; - // ks03 - ln_set_rate = 12.2761 + 0.0882347 * tfactors.T9i + -7.30817 * tfactors.T913i + 10.713 * tfactors.T913 - + -0.537251 * tfactors.T9 + 0.0187304 * tfactors.T953 + -5.38893 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 7.07865 * tfactors.T923i + + 2.24997 + (5.0/3.0) * -0.318964 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.0882347 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -7.30817 * tfactors.T943i + (1.0/3.0) * 10.713 * tfactors.T923i - + -0.537251 + (5.0/3.0) * 0.0187304 * tfactors.T923 + -5.38893 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn54_p_to_He4_Cr51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ti46_to_V47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Mn54 + p --> He4 + Cr51 - // Ti46 + p --> V47 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -40.6329 + -36.1955 * tfactors.T913i + 69.5086 * tfactors.T913 + + -14.1484 * tfactors.T9 + 1.38598 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 35.7683 + -33.2034 * tfactors.T913i + 0.505619 * tfactors.T913 - + -1.73654 * tfactors.T9 + 0.207342 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -36.1955 * tfactors.T943i + (1.0/3.0) * 69.5086 * tfactors.T923i + + -14.1484 + (5.0/3.0) * 1.38598 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -33.2034 * tfactors.T943i + (1.0/3.0) * 0.505619 * tfactors.T923i - + -1.73654 + (5.0/3.0) * 0.207342 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Mn55_p_to_He4_Cr52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ti46_to_Cr50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Mn55 + p --> He4 + Cr52 - // Ti46 + He4 --> Cr50 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 17.7897 + -36.1995 * tfactors.T913i + 11.023 * tfactors.T913 + + -2.435 * tfactors.T9 + 0.306933 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 57.0372 + -81.7658 * tfactors.T913i + 3.48637 * tfactors.T913 - + -3.9188 * tfactors.T9 + 0.440356 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -36.1995 * tfactors.T943i + (1.0/3.0) * 11.023 * tfactors.T923i + + -2.435 + (5.0/3.0) * 0.306933 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -81.7658 * tfactors.T943i + (1.0/3.0) * 3.48637 * tfactors.T923i - + -3.9188 + (5.0/3.0) * 0.440356 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe52_n_to_p_Mn52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ti47_to_Ti48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Fe52 + n --> p + Mn52 - // Ti47 + n --> Ti48 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 17.9485 + 0.569856 * tfactors.T913 + + 0.390117 * tfactors.T9 + -0.0479043 * tfactors.T953; - // ks03 - ln_set_rate = 14.8734 + 0.0181751 * tfactors.T9i + -2.34945 * tfactors.T913i + 3.2238 * tfactors.T913 - + -0.0455487 * tfactors.T9 + -0.0153771 * tfactors.T953 + -2.10785 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.569856 * tfactors.T923i + + 0.390117 + (5.0/3.0) * -0.0479043 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.0181751 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.34945 * tfactors.T943i + (1.0/3.0) * 3.2238 * tfactors.T923i - + -0.0455487 + (5.0/3.0) * -0.0153771 * tfactors.T923 + -2.10785 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe52_n_to_He4_Cr49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ti47_to_V48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Fe52 + n --> He4 + Cr49 - // Ti47 + p --> V48 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -11.1596 + 14.3781 * tfactors.T913 + + 0.0859569 * tfactors.T9 + -0.0900604 * tfactors.T953; - // ths8r - ln_set_rate = 35.1951 + -33.2084 * tfactors.T913i + 1.06738 * tfactors.T913 - + -1.55342 * tfactors.T9 + 0.159225 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 14.3781 * tfactors.T923i + + 0.0859569 + (5.0/3.0) * -0.0900604 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -33.2084 * tfactors.T943i + (1.0/3.0) * 1.06738 * tfactors.T923i - + -1.55342 + (5.0/3.0) * 0.159225 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe52_He4_to_p_Co55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ti47_to_Cr51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Fe52 + He4 --> p + Co55 - // Ti47 + He4 --> Cr51 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 62.2207 + -91.6819 * tfactors.T913i + -0.329235 * tfactors.T913 + + -0.780924 * tfactors.T9 + 0.0425179 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 63.333 + -81.8123 * tfactors.T913i + -8.91821 * tfactors.T913 - + -0.0329369 * tfactors.T9 + 0.039179 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -91.6819 * tfactors.T943i + (1.0/3.0) * -0.329235 * tfactors.T923i + + -0.780924 + (5.0/3.0) * 0.0425179 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -81.8123 * tfactors.T943i + (1.0/3.0) * -8.91821 * tfactors.T923i - + -0.0329369 + (5.0/3.0) * 0.039179 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe53_n_to_p_Mn53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ti48_to_Ti49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Fe53 + n --> p + Mn53 - // Ti48 + n --> Ti49 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 21.1239 + -1.19445 * tfactors.T913 + + 0.393603 * tfactors.T9 + -0.0404022 * tfactors.T953; - // ks03 - ln_set_rate = -16.7879 + 0.320502 * tfactors.T9i + -32.4895 * tfactors.T913i + 67.9234 * tfactors.T913 - + -4.27126 * tfactors.T9 + 0.230364 * tfactors.T953 + -29.4521 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.19445 * tfactors.T923i + + 0.393603 + (5.0/3.0) * -0.0404022 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.320502 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -32.4895 * tfactors.T943i + (1.0/3.0) * 67.9234 * tfactors.T923i - + -4.27126 + (5.0/3.0) * 0.230364 * tfactors.T923 + -29.4521 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe53_n_to_He4_Cr50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ti48_to_V49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Fe53 + n --> He4 + Cr50 - // Ti48 + p --> V49 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 11.025 + -0.146952 * tfactors.T913 + + 1.12217 * tfactors.T9 + -0.10318 * tfactors.T953; - // ths8r - ln_set_rate = 35.2907 + -33.2133 * tfactors.T913i + 0.564373 * tfactors.T913 - + -1.18789 * tfactors.T9 + 0.110892 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.146952 * tfactors.T923i + + 1.12217 + (5.0/3.0) * -0.10318 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -33.2133 * tfactors.T943i + (1.0/3.0) * 0.564373 * tfactors.T923i - + -1.18789 + (5.0/3.0) * 0.110892 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe53_He4_to_p_Co56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ti48_to_Cr52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Fe53 + He4 --> p + Co56 - // Ti48 + He4 --> Cr52 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 54.8614 + -91.7231 * tfactors.T913i + 10.052 * tfactors.T913 + + -3.86332 * tfactors.T9 + 0.391105 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 56.6787 + -81.8569 * tfactors.T913i + 4.92305 * tfactors.T913 - + -5.04112 * tfactors.T9 + 0.6175 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -91.7231 * tfactors.T943i + (1.0/3.0) * 10.052 * tfactors.T923i + + -3.86332 + (5.0/3.0) * 0.391105 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -81.8569 * tfactors.T943i + (1.0/3.0) * 4.92305 * tfactors.T923i - + -5.04112 + (5.0/3.0) * 0.6175 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe54_n_to_p_Mn54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ti49_to_Ti50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Fe54 + n --> p + Mn54 - // Ti49 + n --> Ti50 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -43.1319 + 51.9922 * tfactors.T913 + + -7.26639 * tfactors.T9 + 0.502147 * tfactors.T953; - // ks03 - ln_set_rate = 13.6326 + 0.0289531 * tfactors.T9i + -2.8384 * tfactors.T913i + 4.10103 * tfactors.T913 - + -0.0325714 * tfactors.T9 + -0.0305035 * tfactors.T953 + -2.3012 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 51.9922 * tfactors.T923i + + -7.26639 + (5.0/3.0) * 0.502147 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.0289531 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.8384 * tfactors.T943i + (1.0/3.0) * 4.10103 * tfactors.T923i - + -0.0325714 + (5.0/3.0) * -0.0305035 * tfactors.T923 + -2.3012 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe54_n_to_He4_Cr51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ti49_to_V50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Fe54 + n --> He4 + Cr51 - // Ti49 + p --> V50 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -83.0822 + 77.6519 * tfactors.T913 + + -9.70923 * tfactors.T9 + 0.625406 * tfactors.T953; - // ths8r - ln_set_rate = 34.0041 + -33.2179 * tfactors.T913i + 3.05321 * tfactors.T913 - + -2.48884 * tfactors.T9 + 0.254524 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 77.6519 * tfactors.T923i + + -9.70923 + (5.0/3.0) * 0.625406 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -33.2179 * tfactors.T943i + (1.0/3.0) * 3.05321 * tfactors.T923i - + -2.48884 + (5.0/3.0) * 0.254524 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe55_n_to_p_Mn55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ti49_to_Cr53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Fe55 + n --> p + Mn55 - // Ti49 + He4 --> Cr53 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 4.70639 + 7.03052 * tfactors.T913 + + 0.260509 * tfactors.T9 + -0.0813397 * tfactors.T953; - // ths8r - ln_set_rate = 65.4688 + -81.8999 * tfactors.T913i + -15.3695 * tfactors.T913 - + 2.51758 * tfactors.T9 + -0.283455 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 7.03052 * tfactors.T923i + + 0.260509 + (5.0/3.0) * -0.0813397 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -81.8999 * tfactors.T943i + (1.0/3.0) * -15.3695 * tfactors.T923i - + 2.51758 + (5.0/3.0) * -0.283455 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe55_n_to_He4_Cr52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ti50_to_Ti51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Fe55 + n --> He4 + Cr52 - // Ti50 + n --> Ti51 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 10.6453 + -4.54346 * tfactors.T913 + + 2.79557 * tfactors.T9 + -0.273997 * tfactors.T953; - // ks03 - ln_set_rate = 40.4047 + -0.00979462 * tfactors.T9i + 7.07296 * tfactors.T913i + -37.8514 * tfactors.T913 - + 4.03187 * tfactors.T9 + -0.339274 * tfactors.T953 + 11.4094 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -4.54346 * tfactors.T923i + + 2.79557 + (5.0/3.0) * -0.273997 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.00979462 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 7.07296 * tfactors.T943i + (1.0/3.0) * -37.8514 * tfactors.T923i - + 4.03187 + (5.0/3.0) * -0.339274 * tfactors.T923 + 11.4094 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe56_n_to_He4_Cr53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ti50_to_V51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Fe56 + n --> He4 + Cr53 - // Ti50 + p --> V51 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -115.917 + 108.603 * tfactors.T913 + + -15.5995 * tfactors.T9 + 1.14343 * tfactors.T953; - // ths8r - ln_set_rate = 35.1261 + -33.2224 * tfactors.T913i + 0.579407 * tfactors.T913 - + -0.949378 * tfactors.T9 + 0.0567069 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 108.603 * tfactors.T923i + + -15.5995 + (5.0/3.0) * 1.14343 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -33.2224 * tfactors.T943i + (1.0/3.0) * 0.579407 * tfactors.T923i - + -0.949378 + (5.0/3.0) * 0.0567069 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe57_n_to_He4_Cr54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ti50_to_Cr54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Fe57 + n --> He4 + Cr54 - // Ti50 + He4 --> Cr54 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -6.72376 + 4.48478 * tfactors.T913 + + 2.88431 * tfactors.T9 + -0.366076 * tfactors.T953; - // ths8r - ln_set_rate = 63.4244 + -81.9411 * tfactors.T913i + -6.28155 * tfactors.T913 - + -2.0416 * tfactors.T9 + 0.332085 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 4.48478 * tfactors.T923i + + 2.88431 + (5.0/3.0) * -0.366076 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -81.9411 * tfactors.T943i + (1.0/3.0) * -6.28155 * tfactors.T923i - + -2.0416 + (5.0/3.0) * 0.332085 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe57_p_to_He4_Mn54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ti51_to_V52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Fe57 + p --> He4 + Mn54 - // Ti51 + p --> V52 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -88.432 + -37.1663 * tfactors.T913i + 123.946 * tfactors.T913 + + -27.2803 * tfactors.T9 + 2.75453 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // rath - ln_set_rate = 130.346 + -5.83918 * tfactors.T9i + 220.953 * tfactors.T913i + -370.119 * tfactors.T913 - + 21.0839 * tfactors.T9 + -1.22336 * tfactors.T953 + 182.332 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -37.1663 * tfactors.T943i + (1.0/3.0) * 123.946 * tfactors.T923i + + -27.2803 + (5.0/3.0) * 2.75453 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.83918 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 220.953 * tfactors.T943i + (1.0/3.0) * -370.119 * tfactors.T923i - + 21.0839 + (5.0/3.0) * -1.22336 * tfactors.T923 + 182.332 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Fe58_p_to_He4_Mn55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_V46_to_V47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Fe58 + p --> He4 + Mn55 - // V46 + n --> V47 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -74.5149 + -37.17 * tfactors.T913i + 110.878 * tfactors.T913 + + -24.5555 * tfactors.T9 + 2.47003 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 15.7405 + -0.692996 * tfactors.T913 - + 0.316873 * tfactors.T9 + -0.0417235 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -37.17 * tfactors.T943i + (1.0/3.0) * 110.878 * tfactors.T923i + + -24.5555 + (5.0/3.0) * 2.47003 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.692996 * tfactors.T923i - + 0.316873 + (5.0/3.0) * -0.0417235 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co53_n_to_p_Fe53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_V46_to_Mn50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Co53 + n --> p + Fe53 - // V46 + He4 --> Mn50 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 21.5271 + -0.94587 * tfactors.T913 + + 0.327891 * tfactors.T9 + -0.0355667 * tfactors.T953; - // ths8r - ln_set_rate = 54.311 + -84.2255 * tfactors.T913i + -4.85634 * tfactors.T913 - + 0.0528515 * tfactors.T9 + -0.0425496 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.94587 * tfactors.T923i + + 0.327891 + (5.0/3.0) * -0.0355667 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -84.2255 * tfactors.T943i + (1.0/3.0) * -4.85634 * tfactors.T923i - + 0.0528515 + (5.0/3.0) * -0.0425496 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co53_n_to_He4_Mn50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_V47_to_V48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Co53 + n --> He4 + Mn50 - // V47 + n --> V48 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 7.77398 + 4.96211 * tfactors.T913 + + -1.17699 * tfactors.T9 + 0.226 * tfactors.T953; - // ths8r - ln_set_rate = 17.5513 + -2.40159 * tfactors.T913 - + 0.594573 * tfactors.T9 + -0.0682896 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 4.96211 * tfactors.T923i + + -1.17699 + (5.0/3.0) * 0.226 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -2.40159 * tfactors.T923i - + 0.594573 + (5.0/3.0) * -0.0682896 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_V47_to_Cr48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V47 + p --> Cr48 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co53_He4_to_p_Ni56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // nfisn - ln_set_rate = 42.6798 + -6.0593 * tfactors.T9i + -34.0548 * tfactors.T913i + -3.41973 * tfactors.T913 - + 1.16501 * tfactors.T9 + -0.105543 * tfactors.T953 + -7.70886 * tfactors.lnT9; + // Co53 + He4 --> p + Ni56 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 6.0593 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -34.0548 * tfactors.T943i + (1.0/3.0) * -3.41973 * tfactors.T923i - + 1.16501 + (5.0/3.0) * -0.105543 * tfactors.T923 + -7.70886 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 64.2463 + -94.0605 * tfactors.T913i + -1.48203 * tfactors.T913 + + -0.476442 * tfactors.T9 + 0.00631587 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // nfisn - ln_set_rate = 511.463 + -5.29491 * tfactors.T9i + 317.171 * tfactors.T913i + -911.679 * tfactors.T913 - + 94.4245 * tfactors.T9 + -10.1973 * tfactors.T953 + 330.727 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -94.0605 * tfactors.T943i + (1.0/3.0) * -1.48203 * tfactors.T923i + + -0.476442 + (5.0/3.0) * 0.00631587 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.29491 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 317.171 * tfactors.T943i + (1.0/3.0) * -911.679 * tfactors.T923i - + 94.4245 + (5.0/3.0) * -10.1973 * tfactors.T923 + 330.727 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co54_n_to_p_Fe54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // nfisn - ln_set_rate = 23.8315 + 0.246665 * tfactors.T9i + -45.9868 * tfactors.T913i + 13.6822 * tfactors.T913 - + -0.376902 * tfactors.T9 + -0.0194875 * tfactors.T953 + -8.42325 * tfactors.lnT9; + // Co54 + n --> p + Fe54 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.246665 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -45.9868 * tfactors.T943i + (1.0/3.0) * 13.6822 * tfactors.T923i - + -0.376902 + (5.0/3.0) * -0.0194875 * tfactors.T923 + -8.42325 * tfactors.T9i; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // ths8r + ln_set_rate = 21.6932 + -1.41064 * tfactors.T913 + + 0.417457 * tfactors.T9 + -0.0400596 * tfactors.T953; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + ln_set_rate += log_scor; - // nfisn - ln_set_rate = 40.5626 + -0.514414 * tfactors.T9i + -110.655 * tfactors.T913i + 83.0232 * tfactors.T913 - + -19.7762 * tfactors.T9 + 3.03961 * tfactors.T953 + -49.4742 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.41064 * tfactors.T923i + + 0.417457 + (5.0/3.0) * -0.0400596 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.514414 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -110.655 * tfactors.T943i + (1.0/3.0) * 83.0232 * tfactors.T923i - + -19.7762 + (5.0/3.0) * 3.03961 * tfactors.T923 + -49.4742 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co54_n_to_He4_Mn51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co54 + n --> He4 + Mn51 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_V47_to_Mn51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // V47 + He4 --> Mn51 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 14.2846 + -1.92176 * tfactors.T913 + + 1.2968 * tfactors.T9 + -0.117145 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 56.8618 + -84.2732 * tfactors.T913i + -2.98061 * tfactors.T913 - + -0.531361 * tfactors.T9 + 0.023612 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.92176 * tfactors.T923i + + 1.2968 + (5.0/3.0) * -0.117145 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -84.2732 * tfactors.T943i + (1.0/3.0) * -2.98061 * tfactors.T923i - + -0.531361 + (5.0/3.0) * 0.023612 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co54_He4_to_p_Ni57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co54 + He4 --> p + Ni57 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_V48_to_V49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // V48 + n --> V49 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 64.379 + -94.1012 * tfactors.T913i + -1.53121 * tfactors.T913 + + -0.462669 * tfactors.T9 + 0.00353266 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 17.8835 + -0.917026 * tfactors.T913 - + -0.109162 * tfactors.T9 + 0.0127488 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -94.1012 * tfactors.T943i + (1.0/3.0) * -1.53121 * tfactors.T923i + + -0.462669 + (5.0/3.0) * 0.00353266 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.917026 * tfactors.T923i - + -0.109162 + (5.0/3.0) * 0.0127488 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co55_n_to_p_Fe55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co55 + n --> p + Fe55 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_V48_to_Cr49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // V48 + p --> Cr49 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 20.7398 + -1.62382 * tfactors.T913 + + 0.58115 * tfactors.T9 + -0.0537057 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 34.5168 + -34.2123 * tfactors.T913i + 2.51264 * tfactors.T913 - + -2.09211 * tfactors.T9 + 0.219444 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.62382 * tfactors.T923i + + 0.58115 + (5.0/3.0) * -0.0537057 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -34.2123 * tfactors.T943i + (1.0/3.0) * 2.51264 * tfactors.T923i - + -2.09211 + (5.0/3.0) * 0.219444 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co55_n_to_He4_Mn52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co55 + n --> He4 + Mn52 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_V48_to_Mn52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // V48 + He4 --> Mn52 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = -12.5469 + 8.15876 * tfactors.T913 + + 3.05978 * tfactors.T9 + -0.406535 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 62.5923 + -84.3192 * tfactors.T913i + -8.32959 * tfactors.T913 - + 0.33994 * tfactors.T9 + -0.0359909 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 8.15876 * tfactors.T923i + + 3.05978 + (5.0/3.0) * -0.406535 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -84.3192 * tfactors.T943i + (1.0/3.0) * -8.32959 * tfactors.T923i - + 0.33994 + (5.0/3.0) * -0.0359909 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co55_He4_to_p_Ni58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co55 + He4 --> p + Ni58 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_V49_to_V50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // V49 + n --> V50 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 60.2281 + -94.1404 * tfactors.T913i + 3.39179 * tfactors.T913 + + -1.71062 * tfactors.T9 + 0.133003 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 17.5445 + -1.8725 * tfactors.T913 - + 0.291609 * tfactors.T9 + -0.0370216 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -94.1404 * tfactors.T943i + (1.0/3.0) * 3.39179 * tfactors.T923i + + -1.71062 + (5.0/3.0) * 0.133003 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.8725 * tfactors.T923i - + 0.291609 + (5.0/3.0) * -0.0370216 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co56_n_to_p_Fe56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co56 + n --> p + Fe56 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_V49_to_Cr50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // V49 + p --> Cr50 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 20.4539 + -1.13331 * tfactors.T913 + + 0.347185 * tfactors.T9 + -0.0328879 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 35.2335 + -34.217 * tfactors.T913i + 1.28258 * tfactors.T913 - + -1.5098 * tfactors.T9 + 0.142011 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.13331 * tfactors.T923i + + 0.347185 + (5.0/3.0) * -0.0328879 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -34.217 * tfactors.T943i + (1.0/3.0) * 1.28258 * tfactors.T923i - + -1.5098 + (5.0/3.0) * 0.142011 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co56_n_to_He4_Mn53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co56 + n --> He4 + Mn53 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_V49_to_Mn53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // V49 + He4 --> Mn53 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 12.5672 + -2.81854 * tfactors.T913 + + 1.84188 * tfactors.T9 + -0.164509 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 62.4555 + -84.3633 * tfactors.T913i + -5.28933 * tfactors.T913 - + -1.3103 * tfactors.T9 + 0.187088 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -2.81854 * tfactors.T923i + + 1.84188 + (5.0/3.0) * -0.164509 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -84.3633 * tfactors.T943i + (1.0/3.0) * -5.28933 * tfactors.T923i - + -1.3103 + (5.0/3.0) * 0.187088 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co56_He4_to_p_Ni59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co56 + He4 --> p + Ni59 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_V50_to_V51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // V50 + n --> V51 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 49.7325 + -94.1784 * tfactors.T913i + 17.5303 * tfactors.T913 + + -5.78946 * tfactors.T9 + 0.587654 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 26.4771 + -0.118554 * tfactors.T9i + 10.9535 * tfactors.T913i + -23.1254 * tfactors.T913 - + 1.53091 * tfactors.T9 + -0.0992995 * tfactors.T953 + 9.62203 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -94.1784 * tfactors.T943i + (1.0/3.0) * 17.5303 * tfactors.T923i + + -5.78946 + (5.0/3.0) * 0.587654 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.118554 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 10.9535 * tfactors.T943i + (1.0/3.0) * -23.1254 * tfactors.T923i - + 1.53091 + (5.0/3.0) * -0.0992995 * tfactors.T923 + 9.62203 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co57_n_to_p_Fe57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co57 + n --> p + Fe57 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_V50_to_Cr51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // V50 + p --> Cr51 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 13.547 + -0.061056 * tfactors.T913 + + 1.28749 * tfactors.T9 + -0.156423 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 34.5894 + -34.2216 * tfactors.T913i + 2.39774 * tfactors.T913 - + -2.15306 * tfactors.T9 + 0.232283 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.061056 * tfactors.T923i + + 1.28749 + (5.0/3.0) * -0.156423 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -34.2216 * tfactors.T943i + (1.0/3.0) * 2.39774 * tfactors.T923i - + -2.15306 + (5.0/3.0) * 0.232283 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co57_n_to_He4_Mn54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co57 + n --> He4 + Mn54 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_V50_to_Mn54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // V50 + He4 --> Mn54 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = -30.5739 + 26.4125 * tfactors.T913 + + -0.137701 * tfactors.T9 + -0.184911 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 63.3156 + -84.4058 * tfactors.T913i + -6.25173 * tfactors.T913 - + -1.31339 * tfactors.T9 + 0.208695 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 26.4125 * tfactors.T923i + + -0.137701 + (5.0/3.0) * -0.184911 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -84.4058 * tfactors.T943i + (1.0/3.0) * -6.25173 * tfactors.T923i - + -1.31339 + (5.0/3.0) * 0.208695 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co57_p_to_He4_Fe54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co57 + p --> He4 + Fe54 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_V51_to_V52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // V51 + n --> V52 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = -2.1962 + -38.1133 * tfactors.T913i + 29.3541 * tfactors.T913 + + -4.75966 * tfactors.T9 + 0.40418 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 3.43672 + 0.00903385 * tfactors.T9i + -4.14102 * tfactors.T913i + 17.4073 * tfactors.T913 - + -1.59715 * tfactors.T9 + 0.114181 * tfactors.T953 + -5.93987 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -38.1133 * tfactors.T943i + (1.0/3.0) * 29.3541 * tfactors.T923i + + -4.75966 + (5.0/3.0) * 0.40418 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.00903385 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -4.14102 * tfactors.T943i + (1.0/3.0) * 17.4073 * tfactors.T923i - + -1.59715 + (5.0/3.0) * 0.114181 * tfactors.T923 + -5.93987 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co57_He4_to_p_Ni60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co57 + He4 --> p + Ni60 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_V51_to_Cr52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // V51 + p --> Cr52 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 49.6113 + -94.2152 * tfactors.T913i + 16.1097 * tfactors.T913 + + -4.84624 * tfactors.T9 + 0.441487 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 34.1505 + -34.2261 * tfactors.T913i + 3.30454 * tfactors.T913 - + -2.61654 * tfactors.T9 + 0.283602 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -94.2152 * tfactors.T943i + (1.0/3.0) * 16.1097 * tfactors.T923i + + -4.84624 + (5.0/3.0) * 0.441487 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -34.2261 * tfactors.T943i + (1.0/3.0) * 3.30454 * tfactors.T923i - + -2.61654 + (5.0/3.0) * 0.283602 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co58_n_to_p_Fe58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co58 + n --> p + Fe58 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_V51_to_Mn55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // V51 + He4 --> Mn55 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 19.5496 + -3.2947 * tfactors.T913 + + 0.833003 * tfactors.T9 + -0.0604538 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 61.6131 + -84.4467 * tfactors.T913i + -1.29542 * tfactors.T913 - + -3.56909 * tfactors.T9 + 0.513926 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -3.2947 * tfactors.T923i + + 0.833003 + (5.0/3.0) * -0.0604538 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -84.4467 * tfactors.T943i + (1.0/3.0) * -1.29542 * tfactors.T923i - + -3.56909 + (5.0/3.0) * 0.513926 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co58_n_to_He4_Mn55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co58 + n --> He4 + Mn55 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_V52_to_Cr53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // V52 + p --> Cr53 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 10.635 + -5.4323 * tfactors.T913 + + 3.33275 * tfactors.T9 + -0.339917 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // rath - ln_set_rate = 129.295 + -6.02127 * tfactors.T9i + 224.733 * tfactors.T913i + -373.356 * tfactors.T913 - + 21.346 * tfactors.T9 + -1.24075 * tfactors.T953 + 184.549 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -5.4323 * tfactors.T923i + + 3.33275 + (5.0/3.0) * -0.339917 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 6.02127 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 224.733 * tfactors.T943i + (1.0/3.0) * -373.356 * tfactors.T923i - + 21.346 + (5.0/3.0) * -1.24075 * tfactors.T923 + 184.549 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co58_p_to_He4_Fe55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co58 + p --> He4 + Fe55 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cr48_to_Cr49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr48 + n --> Cr49 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 15.1012 + -38.1171 * tfactors.T913i + 13.2187 * tfactors.T913 + + -1.74746 * tfactors.T9 + 0.142513 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 15.8544 + -0.000452357 * tfactors.T913 - + 0.0412838 * tfactors.T9 + -0.0160865 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -38.1171 * tfactors.T943i + (1.0/3.0) * 13.2187 * tfactors.T923i + + -1.74746 + (5.0/3.0) * 0.142513 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.000452357 * tfactors.T923i - + 0.0412838 + (5.0/3.0) * -0.0160865 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Co59_p_to_He4_Fe56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Co59 + p --> He4 + Fe56 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cr48_to_Fe52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr48 + He4 --> Fe52 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 19.47 + -38.1208 * tfactors.T913i + 13.9086 * tfactors.T913 + + -3.45838 * tfactors.T9 + 0.391302 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 65.1754 + -86.7459 * tfactors.T913i + -9.79373 * tfactors.T913 - + -0.772169 * tfactors.T9 + 0.155883 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -38.1208 * tfactors.T943i + (1.0/3.0) * 13.9086 * tfactors.T923i + + -3.45838 + (5.0/3.0) * 0.391302 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -86.7459 * tfactors.T943i + (1.0/3.0) * -9.79373 * tfactors.T923i - + -0.772169 + (5.0/3.0) * 0.155883 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni56_n_to_p_Co56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni56 + n --> p + Co56 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cr49_to_Cr50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr49 + n --> Cr50 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 15.5693 + 1.76846 * tfactors.T913 + + 0.197992 * tfactors.T9 + -0.017494 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 17.8355 + -1.98927 * tfactors.T913 - + 0.465124 * tfactors.T9 + -0.0582249 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 1.76846 * tfactors.T923i + + 0.197992 + (5.0/3.0) * -0.017494 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.98927 * tfactors.T923i - + 0.465124 + (5.0/3.0) * -0.0582249 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni56_n_to_He4_Fe53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni56 + n --> He4 + Fe53 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cr49_to_Mn50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr49 + p --> Mn50 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = -7.84393 + 6.43259 * tfactors.T913 + + 2.29591 * tfactors.T9 + -0.254724 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 36.3884 + -35.2018 * tfactors.T913i + 0.168579 * tfactors.T913 - + -2.87983 * tfactors.T9 + 0.378768 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 6.43259 * tfactors.T923i + + 2.29591 + (5.0/3.0) * -0.254724 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -35.2018 * tfactors.T943i + (1.0/3.0) * 0.168579 * tfactors.T923i - + -2.87983 + (5.0/3.0) * 0.378768 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni57_n_to_p_Co57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni57 + n --> p + Co57 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cr49_to_Fe53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr49 + He4 --> Fe53 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 19.9939 + -1.13177 * tfactors.T913 + + 0.56875 * tfactors.T9 + -0.0579913 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 65.1467 + -86.7913 * tfactors.T913i + -6.51572 * tfactors.T913 - + -1.21249 * tfactors.T9 + 0.185473 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.13177 * tfactors.T923i + + 0.56875 + (5.0/3.0) * -0.0579913 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -86.7913 * tfactors.T943i + (1.0/3.0) * -6.51572 * tfactors.T923i - + -1.21249 + (5.0/3.0) * 0.185473 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni57_n_to_He4_Fe54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni57 + n --> He4 + Fe54 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cr50_to_Cr51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr50 + n --> Cr51 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 14.5327 + 0.48562 * tfactors.T913 + + -0.0249302 * tfactors.T9 + 0.0509605 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 15.1066 + -0.0225613 * tfactors.T9i + 0.815037 * tfactors.T913i + -0.708732 * tfactors.T913 - + 0.386295 * tfactors.T9 + -0.0615661 * tfactors.T953 + 0.0454627 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.48562 * tfactors.T923i + + -0.0249302 + (5.0/3.0) * 0.0509605 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0225613 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 0.815037 * tfactors.T943i + (1.0/3.0) * -0.708732 * tfactors.T923i - + 0.386295 + (5.0/3.0) * -0.0615661 * tfactors.T923 + 0.0454627 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni58_n_to_p_Co58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni58 + n --> p + Co58 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cr50_to_Mn51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr50 + p --> Mn51 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = -25.8938 + 34.6301 * tfactors.T913 + + -3.77385 * tfactors.T9 + 0.190506 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 35.8532 + -35.2065 * tfactors.T913i + 0.884621 * tfactors.T913 - + -1.76421 * tfactors.T9 + 0.202494 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 34.6301 * tfactors.T923i + + -3.77385 + (5.0/3.0) * 0.190506 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -35.2065 * tfactors.T943i + (1.0/3.0) * 0.884621 * tfactors.T923i - + -1.76421 + (5.0/3.0) * 0.202494 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni58_n_to_He4_Fe55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni58 + n --> He4 + Fe55 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cr50_to_Fe54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr50 + He4 --> Fe54 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = -2.03901 + 3.44996 * tfactors.T913 + + 2.98226 * tfactors.T9 + -0.387699 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 59.7193 + -86.8349 * tfactors.T913i + 2.37343 * tfactors.T913 - + -3.65677 * tfactors.T9 + 0.412128 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 3.44996 * tfactors.T923i + + 2.98226 + (5.0/3.0) * -0.387699 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -86.8349 * tfactors.T943i + (1.0/3.0) * 2.37343 * tfactors.T923i - + -3.65677 + (5.0/3.0) * 0.412128 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni59_n_to_p_Co59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni59 + n --> p + Co59 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cr51_to_Cr52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr51 + n --> Cr52 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 12.6666 + 2.48878 * tfactors.T913 + + 0.158023 * tfactors.T9 + -0.0135864 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 20.1253 + -0.0860167 * tfactors.T9i + 6.95563 * tfactors.T913i + -11.4485 * tfactors.T913 - + 0.736956 * tfactors.T9 + -0.0695323 * tfactors.T953 + 5.31244 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 2.48878 * tfactors.T923i + + 0.158023 + (5.0/3.0) * -0.0135864 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0860167 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 6.95563 * tfactors.T943i + (1.0/3.0) * -11.4485 * tfactors.T923i - + 0.736956 + (5.0/3.0) * -0.0695323 * tfactors.T923 + 5.31244 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni59_n_to_He4_Fe56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni59 + n --> He4 + Fe56 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cr51_to_Mn52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr51 + p --> Mn52 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 16.4083 + -4.21617 * tfactors.T913 + + 1.58032 * tfactors.T9 + -0.126895 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 35.265 + -35.2111 * tfactors.T913i + 1.49375 * tfactors.T913 - + -1.48209 * tfactors.T9 + 0.131902 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -4.21617 * tfactors.T923i + + 1.58032 + (5.0/3.0) * -0.126895 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -35.2111 * tfactors.T943i + (1.0/3.0) * 1.49375 * tfactors.T923i - + -1.48209 + (5.0/3.0) * 0.131902 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni60_n_to_He4_Fe57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni60 + n --> He4 + Fe57 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cr51_to_Fe55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr51 + He4 --> Fe55 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = -60.4121 + 55.1407 * tfactors.T913 + + -5.1585 * tfactors.T9 + 0.212248 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 61.6085 + -86.8771 * tfactors.T913i + -0.0873902 * tfactors.T913 - + -3.40716 * tfactors.T9 + 0.441679 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 55.1407 * tfactors.T923i + + -5.1585 + (5.0/3.0) * 0.212248 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -86.8771 * tfactors.T943i + (1.0/3.0) * -0.0873902 * tfactors.T923i - + -3.40716 + (5.0/3.0) * 0.441679 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni61_n_to_He4_Fe58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni61 + n --> He4 + Fe58 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cr52_to_Cr53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr52 + n --> Cr53 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 10.5185 + -7.53968 * tfactors.T913 + + 4.09062 * tfactors.T9 + -0.416412 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 27.3183 + -0.0314027 * tfactors.T9i + 5.71728 * tfactors.T913i + -20.4149 * tfactors.T913 - + 1.95304 * tfactors.T9 + -0.175538 * tfactors.T953 + 7.18293 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -7.53968 * tfactors.T923i + + 4.09062 + (5.0/3.0) * -0.416412 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0314027 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 5.71728 * tfactors.T943i + (1.0/3.0) * -20.4149 * tfactors.T923i - + 1.95304 + (5.0/3.0) * -0.175538 * tfactors.T923 + 7.18293 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni61_p_to_He4_Co58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni61 + p --> He4 + Co58 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cr52_to_Mn53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr52 + p --> Mn53 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = -74.3746 + -39.0635 * tfactors.T913i + 109.727 * tfactors.T913 + + -23.3971 * tfactors.T9 + 2.29485 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 35.6954 + -35.2154 * tfactors.T913i + 0.73019 * tfactors.T913 - + -1.26018 * tfactors.T9 + 0.121141 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.0635 * tfactors.T943i + (1.0/3.0) * 109.727 * tfactors.T923i + + -23.3971 + (5.0/3.0) * 2.29485 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -35.2154 * tfactors.T943i + (1.0/3.0) * 0.73019 * tfactors.T923i - + -1.26018 + (5.0/3.0) * 0.121141 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ni62_p_to_He4_Co59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Ni62 + p --> He4 + Co59 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cr52_to_Fe56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr52 + He4 --> Fe56 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = -89.6434 + -39.0669 * tfactors.T913i + 126.723 * tfactors.T913 + + -27.3047 * tfactors.T9 + 2.67436 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 58.0146 + -86.9175 * tfactors.T913i + 5.655 * tfactors.T913 - + -4.53625 * tfactors.T9 + 0.479806 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.0669 * tfactors.T943i + (1.0/3.0) * 126.723 * tfactors.T923i + + -27.3047 + (5.0/3.0) * 2.67436 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -86.9175 * tfactors.T943i + (1.0/3.0) * 5.655 * tfactors.T923i - + -4.53625 + (5.0/3.0) * 0.479806 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu57_n_to_p_Ni57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu57 + n --> p + Ni57 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cr53_to_Cr54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr53 + n --> Cr54 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 21.0221 + -0.57954 * tfactors.T913 + + 0.250954 * tfactors.T9 + -0.0264877 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 10.8793 + -0.00984544 * tfactors.T9i + -1.26805 * tfactors.T913i + 6.34126 * tfactors.T913 - + -0.39287 * tfactors.T9 + 0.000487041 * tfactors.T953 + -2.46456 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.57954 * tfactors.T923i + + 0.250954 + (5.0/3.0) * -0.0264877 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.00984544 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.26805 * tfactors.T943i + (1.0/3.0) * 6.34126 * tfactors.T923i - + -0.39287 + (5.0/3.0) * 0.000487041 * tfactors.T923 + -2.46456 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu57_n_to_He4_Co54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu57 + n --> He4 + Co54 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cr53_to_Mn54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr53 + p --> Mn54 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 10.5006 + 1.52892 * tfactors.T913 + + -0.01999 * tfactors.T9 + 0.0715186 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 34.2032 + -35.2197 * tfactors.T913i + 3.74805 * tfactors.T913 - + -2.77987 * tfactors.T9 + 0.296885 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 1.52892 * tfactors.T923i + + -0.01999 + (5.0/3.0) * 0.0715186 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -35.2197 * tfactors.T943i + (1.0/3.0) * 3.74805 * tfactors.T923i - + -2.77987 + (5.0/3.0) * 0.296885 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu57_He4_to_p_Zn60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu57 + He4 --> p + Zn60 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cr53_to_Fe57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr53 + He4 --> Fe57 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 65.3414 + -98.8126 * tfactors.T913i + -0.580624 * tfactors.T913 + + -0.793165 * tfactors.T9 + 0.0435934 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 65.95 + -86.9567 * tfactors.T913i + -12.0579 * tfactors.T913 - + 1.33466 * tfactors.T9 + -0.14709 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -98.8126 * tfactors.T943i + (1.0/3.0) * -0.580624 * tfactors.T923i + + -0.793165 + (5.0/3.0) * 0.0435934 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -86.9567 * tfactors.T943i + (1.0/3.0) * -12.0579 * tfactors.T923i - + 1.33466 + (5.0/3.0) * -0.14709 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu58_n_to_p_Ni58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu58 + n --> p + Ni58 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cr54_to_Mn55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr54 + p --> Mn55 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 20.8051 + -0.603447 * tfactors.T913 + + 0.300346 * tfactors.T9 + -0.0361808 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 34.9354 + -35.2237 * tfactors.T913i + 2.60768 * tfactors.T913 - + -1.7864 * tfactors.T9 + 0.134189 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.603447 * tfactors.T923i + + 0.300346 + (5.0/3.0) * -0.0361808 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -35.2237 * tfactors.T943i + (1.0/3.0) * 2.60768 * tfactors.T923i - + -1.7864 + (5.0/3.0) * 0.134189 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu58_n_to_He4_Co55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu58 + n --> He4 + Co55 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cr54_to_Fe58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Cr54 + He4 --> Fe58 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 11.9778 + 4.29921 * tfactors.T913 + + -0.76309 * tfactors.T9 + 0.10257 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 63.2926 + -86.9945 * tfactors.T913i + -1.05674 * tfactors.T913 - + -4.13443 * tfactors.T9 + 0.599141 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 4.29921 * tfactors.T923i + + -0.76309 + (5.0/3.0) * 0.10257 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -86.9945 * tfactors.T943i + (1.0/3.0) * -1.05674 * tfactors.T923i - + -4.13443 + (5.0/3.0) * 0.599141 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu59_n_to_p_Ni59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu59 + n --> p + Ni59 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Mn50_to_Mn51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn50 + n --> Mn51 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 20.6885 + -0.680585 * tfactors.T913 + + 0.344111 * tfactors.T9 + -0.0446623 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 15.4434 + -0.538879 * tfactors.T913 - + 0.284528 * tfactors.T9 + -0.0459849 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.680585 * tfactors.T923i + + 0.344111 + (5.0/3.0) * -0.0446623 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.538879 * tfactors.T923i - + 0.284528 + (5.0/3.0) * -0.0459849 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu59_n_to_He4_Co56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu59 + n --> He4 + Co56 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mn50_to_Co54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn50 + He4 --> Co54 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 11.0108 + -1.00882 * tfactors.T913 + + 1.88993 * tfactors.T9 + -0.202319 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 54.3174 + -89.2309 * tfactors.T913i + -1.30702 * tfactors.T913 - + -1.30543 * tfactors.T9 + 0.141679 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.00882 * tfactors.T923i + + 1.88993 + (5.0/3.0) * -0.202319 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -89.2309 * tfactors.T943i + (1.0/3.0) * -1.30702 * tfactors.T923i - + -1.30543 + (5.0/3.0) * 0.141679 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu59_p_to_He4_Ni56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu59 + p --> He4 + Ni56 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Mn51_to_Mn52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn51 + n --> Mn52 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 20.7688 + -39.9808 * tfactors.T913i + 13.6773 * tfactors.T913 + + -3.76429 * tfactors.T9 + 0.438096 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 17.2055 + -1.83611 * tfactors.T913 - + 0.460384 * tfactors.T9 + -0.0584947 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.9808 * tfactors.T943i + (1.0/3.0) * 13.6773 * tfactors.T923i + + -3.76429 + (5.0/3.0) * 0.438096 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.83611 * tfactors.T923i - + 0.460384 + (5.0/3.0) * -0.0584947 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu60_n_to_p_Ni60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu60 + n --> p + Ni60 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Mn51_to_Fe52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn51 + p --> Fe52 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 20.6523 + -0.671684 * tfactors.T913 + + 0.215296 * tfactors.T9 + -0.0251141 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 36.2596 + -36.1825 * tfactors.T913i + 0.873042 * tfactors.T913 - + -2.89731 * tfactors.T9 + 0.364394 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.671684 * tfactors.T923i + + 0.215296 + (5.0/3.0) * -0.0251141 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -36.1825 * tfactors.T943i + (1.0/3.0) * 0.873042 * tfactors.T923i - + -2.89731 + (5.0/3.0) * 0.364394 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu60_n_to_He4_Co57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu60 + n --> He4 + Co57 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mn51_to_Co55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn51 + He4 --> Co55 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 12.8419 + 2.72669 * tfactors.T913 + + -0.141713 * tfactors.T9 + 0.025172 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 65.9219 + -89.274 * tfactors.T913i + -10.4373 * tfactors.T913 - + 1.00492 * tfactors.T9 + -0.125548 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 2.72669 * tfactors.T923i + + -0.141713 + (5.0/3.0) * 0.025172 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -89.274 * tfactors.T943i + (1.0/3.0) * -10.4373 * tfactors.T923i - + 1.00492 + (5.0/3.0) * -0.125548 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu60_p_to_He4_Ni57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu60 + p --> He4 + Ni57 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Mn52_to_Mn53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn52 + n --> Mn53 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 13.7756 + -39.9846 * tfactors.T913i + 20.3348 * tfactors.T913 + + -4.47882 * tfactors.T9 + 0.442893 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 17.0941 + -0.91084 * tfactors.T913 - + 0.162511 * tfactors.T9 + -0.0279619 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.9846 * tfactors.T943i + (1.0/3.0) * 20.3348 * tfactors.T923i + + -4.47882 + (5.0/3.0) * 0.442893 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.91084 * tfactors.T923i - + 0.162511 + (5.0/3.0) * -0.0279619 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu61_n_to_p_Ni61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu61 + n --> p + Ni61 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Mn52_to_Fe53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn52 + p --> Fe53 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 20.1763 + -1.69187 * tfactors.T913 + + 0.784543 * tfactors.T9 + -0.100904 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 35.4319 + -36.187 * tfactors.T913i + 1.79171 * tfactors.T913 - + -1.77786 * tfactors.T9 + 0.179936 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.69187 * tfactors.T923i + + 0.784543 + (5.0/3.0) * -0.100904 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -36.187 * tfactors.T943i + (1.0/3.0) * 1.79171 * tfactors.T923i - + -1.77786 + (5.0/3.0) * 0.179936 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu61_n_to_He4_Co58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu61 + n --> He4 + Co58 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mn52_to_Co56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn52 + He4 --> Co56 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 2.87474 + 1.07449 * tfactors.T913 + + 3.05815 * tfactors.T9 + -0.386686 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 63.5657 + -89.3157 * tfactors.T913i + -1.95982 * tfactors.T913 - + -2.45671 * tfactors.T9 + 0.296095 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 1.07449 * tfactors.T923i + + 3.05815 + (5.0/3.0) * -0.386686 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -89.3157 * tfactors.T943i + (1.0/3.0) * -1.95982 * tfactors.T923i - + -2.45671 + (5.0/3.0) * 0.296095 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu61_p_to_He4_Ni58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu61 + p --> He4 + Ni58 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Mn53_to_Mn54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn53 + n --> Mn54 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 21.3915 + -39.9882 * tfactors.T913i + 13.3129 * tfactors.T913 + + -2.90092 * tfactors.T9 + 0.277699 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 17.3501 + -1.70171 * tfactors.T913 - + 0.386422 * tfactors.T9 + -0.0536858 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.9882 * tfactors.T943i + (1.0/3.0) * 13.3129 * tfactors.T923i + + -2.90092 + (5.0/3.0) * 0.277699 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.70171 * tfactors.T923i - + 0.386422 + (5.0/3.0) * -0.0536858 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu62_n_to_p_Ni62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu62 + n --> p + Ni62 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Mn53_to_Fe54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn53 + p --> Fe54 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 21.1161 + -2.13932 * tfactors.T913 + + 0.412918 * tfactors.T9 + -0.0409549 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 35.586 + -36.1913 * tfactors.T913i + 1.44056 * tfactors.T913 - + -1.50734 * tfactors.T9 + 0.142124 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -2.13932 * tfactors.T923i + + 0.412918 + (5.0/3.0) * -0.0409549 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -36.1913 * tfactors.T943i + (1.0/3.0) * 1.44056 * tfactors.T923i - + -1.50734 + (5.0/3.0) * 0.142124 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu62_n_to_He4_Co59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu62 + n --> He4 + Co59 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mn53_to_Co57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn53 + He4 --> Co57 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 11.4259 + 0.965159 * tfactors.T913 + + 0.563053 * tfactors.T9 + -0.0358157 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 62.0252 + -89.3558 * tfactors.T913i + 0.000882861 * tfactors.T913 - + -2.79327 * tfactors.T9 + 0.309057 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.965159 * tfactors.T923i + + 0.563053 + (5.0/3.0) * -0.0358157 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -89.3558 * tfactors.T943i + (1.0/3.0) * 0.000882861 * tfactors.T923i - + -2.79327 + (5.0/3.0) * 0.309057 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu62_p_to_He4_Ni59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu62 + p --> He4 + Ni59 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Mn54_to_Mn55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn54 + n --> Mn55 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 20.0541 + -39.9917 * tfactors.T913i + 15.2078 * tfactors.T913 + + -3.13691 * tfactors.T9 + 0.278116 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 18.4705 + -2.56572 * tfactors.T913 - + 0.352447 * tfactors.T9 + -0.0375878 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.9917 * tfactors.T943i + (1.0/3.0) * 15.2078 * tfactors.T923i + + -3.13691 + (5.0/3.0) * 0.278116 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -2.56572 * tfactors.T923i - + 0.352447 + (5.0/3.0) * -0.0375878 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu63_n_to_p_Ni63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu63 + n --> p + Ni63 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Mn54_to_Fe55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn54 + p --> Fe55 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = -11.8382 + 21.0235 * tfactors.T913 + + -1.85553 * tfactors.T9 + 0.0587378 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 35.55 + -36.1955 * tfactors.T913i + 1.08481 * tfactors.T913 - + -1.46703 * tfactors.T9 + 0.13789 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 21.0235 * tfactors.T923i + + -1.85553 + (5.0/3.0) * 0.0587378 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -36.1955 * tfactors.T943i + (1.0/3.0) * 1.08481 * tfactors.T923i - + -1.46703 + (5.0/3.0) * 0.13789 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu63_p_to_He4_Ni60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu63 + p --> He4 + Ni60 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mn54_to_Co58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn54 + He4 --> Co58 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 25.8494 + -39.995 * tfactors.T913i + 9.96871 * tfactors.T913 + + -2.08607 * tfactors.T9 + 0.166693 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 67.6083 + -89.3946 * tfactors.T913i + -8.26476 * tfactors.T913 - + -0.766622 * tfactors.T9 + 0.135181 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.995 * tfactors.T943i + (1.0/3.0) * 9.96871 * tfactors.T923i + + -2.08607 + (5.0/3.0) * 0.166693 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -89.3946 * tfactors.T943i + (1.0/3.0) * -8.26476 * tfactors.T923i - + -0.766622 + (5.0/3.0) * 0.135181 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu64_n_to_p_Ni64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu64 + n --> p + Ni64 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Mn55_to_Fe56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn55 + p --> Fe56 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 18.5823 + -2.37283 * tfactors.T913 + + 0.155682 * tfactors.T9 + 0.0314201 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 36.1888 + -36.1995 * tfactors.T913i + 1.15346 * tfactors.T913 - + -1.94437 * tfactors.T9 + 0.218429 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -2.37283 * tfactors.T923i + + 0.155682 + (5.0/3.0) * 0.0314201 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -36.1995 * tfactors.T943i + (1.0/3.0) * 1.15346 * tfactors.T923i - + -1.94437 + (5.0/3.0) * 0.218429 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu64_p_to_He4_Ni61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu64 + p --> He4 + Ni61 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mn55_to_Co59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Mn55 + He4 --> Co59 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 26.7806 + -39.9983 * tfactors.T913i + 5.14164 * tfactors.T913 + + 0.0632313 * tfactors.T9 + -0.0939329 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 60.0838 + -89.432 * tfactors.T913i + 5.33428 * tfactors.T913 - + -5.11461 * tfactors.T9 + 0.613808 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -39.9983 * tfactors.T943i + (1.0/3.0) * 5.14164 * tfactors.T923i + + 0.0632313 + (5.0/3.0) * -0.0939329 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -89.432 * tfactors.T943i + (1.0/3.0) * 5.33428 * tfactors.T923i - + -5.11461 + (5.0/3.0) * 0.613808 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Cu65_p_to_He4_Ni62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Cu65 + p --> He4 + Ni62 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Fe52_to_Fe53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe52 + n --> Fe53 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 28.6023 + -40.0015 * tfactors.T913i + 9.18742 * tfactors.T913 + + -2.93395 * tfactors.T9 + 0.309787 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 15.8885 + -0.344319 * tfactors.T913 - + 0.178277 * tfactors.T9 + -0.0334326 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -40.0015 * tfactors.T943i + (1.0/3.0) * 9.18742 * tfactors.T923i + + -2.93395 + (5.0/3.0) * 0.309787 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.344319 * tfactors.T923i - + 0.178277 + (5.0/3.0) * -0.0334326 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn59_n_to_p_Cu59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Zn59 + n --> p + Cu59 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Fe52_to_Co53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe52 + p --> Co53 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 20.3972 + -0.234419 * tfactors.T913 + + 0.226299 * tfactors.T9 + -0.0269152 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 39.2879 + -37.1457 * tfactors.T913i + -5.67417 * tfactors.T913 - + -0.559644 * tfactors.T9 + 0.102768 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.234419 * tfactors.T923i + + 0.226299 + (5.0/3.0) * -0.0269152 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -37.1457 * tfactors.T943i + (1.0/3.0) * -5.67417 * tfactors.T923i - + -0.559644 + (5.0/3.0) * 0.102768 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn59_n_to_He4_Ni56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Zn59 + n --> He4 + Ni56 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Fe52_to_Ni56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe52 + He4 --> Ni56 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 13.0783 + 4.01795 * tfactors.T913 + + -1.00571 * tfactors.T9 + 0.129548 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 66.6417 + -91.6819 * tfactors.T913i + -9.51885 * tfactors.T913 - + -0.533014 * tfactors.T9 + 0.0892607 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 4.01795 * tfactors.T923i + + -1.00571 + (5.0/3.0) * 0.129548 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -91.6819 * tfactors.T943i + (1.0/3.0) * -9.51885 * tfactors.T923i - + -0.533014 + (5.0/3.0) * 0.0892607 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn60_n_to_p_Cu60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Zn60 + n --> p + Cu60 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Fe53_to_Fe54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe53 + n --> Fe54 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 20.4469 + -0.620889 * tfactors.T913 + + 0.360154 * tfactors.T9 + -0.0412341 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 16.4534 + -1.10421 * tfactors.T913 - + 0.379905 * tfactors.T9 + -0.0581878 * tfactors.T953; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.620889 * tfactors.T923i + + 0.360154 + (5.0/3.0) * -0.0412341 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.10421 * tfactors.T923i - + 0.379905 + (5.0/3.0) * -0.0581878 * tfactors.T923; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn60_n_to_He4_Ni57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Zn60 + n --> He4 + Ni57 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Fe53_to_Co54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe53 + p --> Co54 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 12.4241 + 5.43552 * tfactors.T913 + + -1.25169 * tfactors.T9 + 0.148383 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 36.8739 + -37.1501 * tfactors.T913i + 0.211459 * tfactors.T913 - + -2.79493 * tfactors.T9 + 0.358657 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 5.43552 * tfactors.T923i + + -1.25169 + (5.0/3.0) * 0.148383 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -37.1501 * tfactors.T943i + (1.0/3.0) * 0.211459 * tfactors.T923i - + -2.79493 + (5.0/3.0) * 0.358657 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn61_n_to_p_Cu61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Zn61 + n --> p + Cu61 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Fe53_to_Ni57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe53 + He4 --> Ni57 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 20.4412 + -0.657488 * tfactors.T913 + + 0.358985 * tfactors.T9 + -0.0432252 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 69.0636 + -91.7231 * tfactors.T913i + -10.1816 * tfactors.T913 - + -0.0406303 * tfactors.T9 + 0.0345056 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.657488 * tfactors.T923i + + 0.358985 + (5.0/3.0) * -0.0432252 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -91.7231 * tfactors.T943i + (1.0/3.0) * -10.1816 * tfactors.T923i - + -0.0406303 + (5.0/3.0) * 0.0345056 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn61_n_to_He4_Ni58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Zn61 + n --> He4 + Ni58 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Fe54_to_Fe55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe54 + n --> Fe55 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 14.9844 + 2.9413 * tfactors.T913 + + -0.542181 * tfactors.T9 + 0.0584262 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = -0.80864 + 0.0591716 * tfactors.T9i + -8.66617 * tfactors.T913i + 26.4472 * tfactors.T913 - + -1.9222 * tfactors.T9 + 0.0986404 * tfactors.T953 + -9.78317 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 2.9413 * tfactors.T923i + + -0.542181 + (5.0/3.0) * 0.0584262 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.0591716 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -8.66617 * tfactors.T943i + (1.0/3.0) * 26.4472 * tfactors.T923i - + -1.9222 + (5.0/3.0) * 0.0986404 * tfactors.T923 + -9.78317 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn61_p_to_He4_Cu58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Zn61 + p --> He4 + Cu58 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Fe54_to_Co55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe54 + p --> Co55 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = -79.5047 + -40.9023 * tfactors.T913i + 107.263 * tfactors.T913 + + -20.9034 * tfactors.T9 + 1.9567 * tfactors.T953 + -0.666667 * tfactors.lnT9; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 36.2304 + -37.1544 * tfactors.T913i + 0.950364 * tfactors.T913 - + -1.77529 * tfactors.T9 + 0.198562 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -40.9023 * tfactors.T943i + (1.0/3.0) * 107.263 * tfactors.T923i + + -20.9034 + (5.0/3.0) * 1.9567 * tfactors.T923 + -0.666667 * tfactors.T9i; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -37.1544 * tfactors.T943i + (1.0/3.0) * 0.950364 * tfactors.T923i - + -1.77529 + (5.0/3.0) * 0.198562 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn62_n_to_p_Cu62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Zn62 + n --> p + Cu62 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Fe54_to_Ni58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe54 + He4 --> Ni58 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 17.7759 + -0.772736 * tfactors.T913 + + 1.08329 * tfactors.T9 + -0.144709 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ths8r - ln_set_rate = 60.2478 + -91.7628 * tfactors.T913i + 4.23027 * tfactors.T913 - + -3.31305 * tfactors.T9 + 0.271293 * tfactors.T953 + -0.666667 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.772736 * tfactors.T923i + + 1.08329 + (5.0/3.0) * -0.144709 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -91.7628 * tfactors.T943i + (1.0/3.0) * 4.23027 * tfactors.T923i - + -3.31305 + (5.0/3.0) * 0.271293 * tfactors.T923 + -0.666667 * tfactors.T9i; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn62_n_to_He4_Ni59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -} + // Zn62 + n --> He4 + Ni59 -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Fe55_to_Fe56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + rate = 0.0; + drate_dT = 0.0; - // Fe55 + n --> Fe56 + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - rate = 0.0; - drate_dT = 0.0; + // ths8r + ln_set_rate = 15.4037 + -0.824101 * tfactors.T913 + + 0.913843 * tfactors.T9 + -0.084157 * tfactors.T953; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + ln_set_rate += log_scor; - // ks03 - ln_set_rate = 21.7202 + -0.0955677 * tfactors.T9i + 8.06062 * tfactors.T913i + -14.4809 * tfactors.T913 - + 0.94252 * tfactors.T9 + -0.0776007 * tfactors.T953 + 6.47093 * tfactors.lnT9; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.824101 * tfactors.T923i + + 0.913843 + (5.0/3.0) * -0.084157 * tfactors.T923; - ln_set_rate += log_scor; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0955677 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 8.06062 * tfactors.T943i + (1.0/3.0) * -14.4809 * tfactors.T923i - + 0.94252 + (5.0/3.0) * -0.0776007 * tfactors.T923 + 6.47093 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn62_p_to_He4_Cu59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Fe55_to_Co56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Zn62 + p --> He4 + Cu59 - // Fe55 + p --> Co56 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -107.39 + -40.9058 * tfactors.T913i + 144.145 * tfactors.T913 + + -30.7303 * tfactors.T9 + 3.0118 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 35.7333 + -37.1585 * tfactors.T913i + 1.66198 * tfactors.T913 - + -1.60842 * tfactors.T9 + 0.148916 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -40.9058 * tfactors.T943i + (1.0/3.0) * 144.145 * tfactors.T923i + + -30.7303 + (5.0/3.0) * 3.0118 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -37.1585 * tfactors.T943i + (1.0/3.0) * 1.66198 * tfactors.T923i - + -1.60842 + (5.0/3.0) * 0.148916 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn63_n_to_p_Cu63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Fe55_to_Ni59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Zn63 + n --> p + Cu63 - // Fe55 + He4 --> Ni59 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 21.0355 + -2.10997 * tfactors.T913 + + 0.691727 * tfactors.T9 + -0.0763545 * tfactors.T953; - // ths8r - ln_set_rate = 60.7732 + -91.8012 * tfactors.T913i + 4.12067 * tfactors.T913 - + -4.13271 * tfactors.T9 + 0.450006 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -2.10997 * tfactors.T923i + + 0.691727 + (5.0/3.0) * -0.0763545 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -91.8012 * tfactors.T943i + (1.0/3.0) * 4.12067 * tfactors.T923i - + -4.13271 + (5.0/3.0) * 0.450006 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn63_n_to_He4_Ni60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Fe56_to_Fe57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Zn63 + n --> He4 + Ni60 - // Fe56 + n --> Fe57 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 16.3426 + 1.29216 * tfactors.T913 + + -0.174127 * tfactors.T9 + 0.0226404 * tfactors.T953; - // ks03 - ln_set_rate = 35.834 + -0.0600873 * tfactors.T9i + 9.79414 * tfactors.T913i + -33.7366 * tfactors.T913 - + 2.97173 * tfactors.T9 + -0.236498 * tfactors.T953 + 11.8711 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 1.29216 * tfactors.T923i + + -0.174127 + (5.0/3.0) * 0.0226404 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0600873 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 9.79414 * tfactors.T943i + (1.0/3.0) * -33.7366 * tfactors.T923i - + 2.97173 + (5.0/3.0) * -0.236498 * tfactors.T923 + 11.8711 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn63_p_to_He4_Cu60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Fe56_to_Co57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Zn63 + p --> He4 + Cu60 - // Fe56 + p --> Co57 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -37.527 + -40.9093 * tfactors.T913i + 67.8676 * tfactors.T913 + + -12.8153 * tfactors.T9 + 1.17292 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 36.0665 + -37.1625 * tfactors.T913i + 1.06776 * tfactors.T913 - + -1.31689 * tfactors.T9 + 0.122089 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -40.9093 * tfactors.T943i + (1.0/3.0) * 67.8676 * tfactors.T923i + + -12.8153 + (5.0/3.0) * 1.17292 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -37.1625 * tfactors.T943i + (1.0/3.0) * 1.06776 * tfactors.T923i - + -1.31689 + (5.0/3.0) * 0.122089 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn64_n_to_p_Cu64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Fe56_to_Ni60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Zn64 + n --> p + Cu64 - // Fe56 + He4 --> Ni60 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -43.0564 + 50.9002 * tfactors.T913 + + -6.85035 * tfactors.T9 + 0.452984 * tfactors.T953; - // ths8r - ln_set_rate = 60.6673 + -91.8383 * tfactors.T913i + 3.63237 * tfactors.T913 - + -2.73367 * tfactors.T9 + 0.179684 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 50.9002 * tfactors.T923i + + -6.85035 + (5.0/3.0) * 0.452984 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -91.8383 * tfactors.T943i + (1.0/3.0) * 3.63237 * tfactors.T923i - + -2.73367 + (5.0/3.0) * 0.179684 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn64_n_to_He4_Ni61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Fe57_to_Fe58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Zn64 + n --> He4 + Ni61 - // Fe57 + n --> Fe58 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 7.30798 + -0.988345 * tfactors.T913 + + 3.05973 * tfactors.T9 + -0.380848 * tfactors.T953; - // ks03 - ln_set_rate = 20.2493 + -0.0214497 * tfactors.T9i + 2.1643 * tfactors.T913i + -7.49584 * tfactors.T913 - + 0.656354 * tfactors.T9 + -0.0549855 * tfactors.T953 + 2.38149 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.988345 * tfactors.T923i + + 3.05973 + (5.0/3.0) * -0.380848 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0214497 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.1643 * tfactors.T943i + (1.0/3.0) * -7.49584 * tfactors.T923i - + 0.656354 + (5.0/3.0) * -0.0549855 * tfactors.T923 + 2.38149 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn64_p_to_He4_Cu61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Fe57_to_Co58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Zn64 + p --> He4 + Cu61 - // Fe57 + p --> Co58 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -46.9323 + -40.9126 * tfactors.T913i + 78.2645 * tfactors.T913 + + -15.0794 * tfactors.T9 + 1.39304 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 35.269 + -37.1663 * tfactors.T913i + 3.48503 * tfactors.T913 - + -2.56204 * tfactors.T9 + 0.272972 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -40.9126 * tfactors.T943i + (1.0/3.0) * 78.2645 * tfactors.T923i + + -15.0794 + (5.0/3.0) * 1.39304 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -37.1663 * tfactors.T943i + (1.0/3.0) * 3.48503 * tfactors.T923i - + -2.56204 + (5.0/3.0) * 0.272972 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn65_n_to_p_Cu65_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Fe57_to_Ni61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Zn65 + n --> p + Cu65 - // Fe57 + He4 --> Ni61 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 17.096 + -1.75991 * tfactors.T913 + + 0.616648 * tfactors.T9 + -0.0273633 * tfactors.T953; - // ths8r - ln_set_rate = 66.184 + -91.8742 * tfactors.T913i + -4.07595 * tfactors.T913 - + -1.93027 * tfactors.T9 + 0.240619 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.75991 * tfactors.T923i + + 0.616648 + (5.0/3.0) * -0.0273633 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -91.8742 * tfactors.T943i + (1.0/3.0) * -4.07595 * tfactors.T923i - + -1.93027 + (5.0/3.0) * 0.240619 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn65_n_to_He4_Ni62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Fe58_to_Co59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Zn65 + n --> He4 + Ni62 - // Fe58 + p --> Co59 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 16.63 + -1.0424 * tfactors.T913 + + 0.355927 * tfactors.T9 + -0.0148374 * tfactors.T953; - // ths8r - ln_set_rate = 36.2182 + -37.17 * tfactors.T913i + 1.63285 * tfactors.T913 - + -1.16636 * tfactors.T9 + 0.0508619 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.0424 * tfactors.T923i + + 0.355927 + (5.0/3.0) * -0.0148374 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -37.17 * tfactors.T943i + (1.0/3.0) * 1.63285 * tfactors.T923i - + -1.16636 + (5.0/3.0) * 0.0508619 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn65_p_to_He4_Cu62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Fe58_to_Ni62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Zn65 + p --> He4 + Cu62 - // Fe58 + He4 --> Ni62 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -7.16817 + -40.9159 * tfactors.T913i + 37.2348 * tfactors.T913 + + -6.13297 * tfactors.T9 + 0.499001 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 59.393 + -91.9089 * tfactors.T913i + 8.18581 * tfactors.T913 - + -6.00824 * tfactors.T9 + 0.693434 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -40.9159 * tfactors.T943i + (1.0/3.0) * 37.2348 * tfactors.T923i + + -6.13297 + (5.0/3.0) * 0.499001 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -91.9089 * tfactors.T943i + (1.0/3.0) * 8.18581 * tfactors.T923i - + -6.00824 + (5.0/3.0) * 0.693434 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn66_n_to_He4_Ni63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Co53_to_Co54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Zn66 + n --> He4 + Ni63 - // Co53 + n --> Co54 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -28.2336 + 25.0757 * tfactors.T913 + + 0.0590561 * tfactors.T9 + -0.21357 * tfactors.T953; - // ths8r - ln_set_rate = 11.2037 + -1.14795 * tfactors.T913 - + 0.413083 * tfactors.T9 + -0.0515627 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 25.0757 * tfactors.T923i + + 0.0590561 + (5.0/3.0) * -0.21357 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.14795 * tfactors.T923i - + 0.413083 + (5.0/3.0) * -0.0515627 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Zn66_p_to_He4_Cu63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Co53_to_Cu57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Zn66 + p --> He4 + Cu63 - // Co53 + He4 --> Cu57 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -11.1063 + -40.919 * tfactors.T913i + 40.0655 * tfactors.T913 + + -6.06828 * tfactors.T9 + 0.437776 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 56.9319 + -94.0605 * tfactors.T913i + -2.61232 * tfactors.T913 - + -0.4397 * tfactors.T9 + -0.00420698 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -40.919 * tfactors.T943i + (1.0/3.0) * 40.0655 * tfactors.T923i + + -6.06828 + (5.0/3.0) * 0.437776 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -94.0605 * tfactors.T943i + (1.0/3.0) * -2.61232 * tfactors.T923i - + -0.4397 + (5.0/3.0) * -0.00420698 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ga62_n_to_p_Zn62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Co54_to_Co55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ga62 + n --> p + Zn62 - // Co54 + n --> Co55 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 21.0588 + -1.58452 * tfactors.T913 + + 0.736569 * tfactors.T9 + -0.0951725 * tfactors.T953; - // ths8r - ln_set_rate = 14.3761 + 0.433187 * tfactors.T913 - + 0.0888642 * tfactors.T9 + -0.0315521 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.58452 * tfactors.T923i + + 0.736569 + (5.0/3.0) * -0.0951725 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.433187 * tfactors.T923i - + 0.0888642 + (5.0/3.0) * -0.0315521 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ga62_n_to_He4_Cu59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Co54_to_Cu58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ga62 + n --> He4 + Cu59 - // Co54 + He4 --> Cu58 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 13.3393 + 5.15052 * tfactors.T913 + + -1.31888 * tfactors.T9 + 0.177044 * tfactors.T953; - // ths8r - ln_set_rate = 55.6899 + -94.1012 * tfactors.T913i + 7.09095 * tfactors.T913 - + -5.85934 * tfactors.T9 + 0.728369 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 5.15052 * tfactors.T923i + + -1.31888 + (5.0/3.0) * 0.177044 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -94.1012 * tfactors.T943i + (1.0/3.0) * 7.09095 * tfactors.T923i - + -5.85934 + (5.0/3.0) * 0.728369 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ga62_p_to_He4_Zn59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Co55_to_Co56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ga62 + p --> He4 + Zn59 - // Co55 + n --> Co56 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = -102.937 + -41.8099 * tfactors.T913i + 139.289 * tfactors.T913 + + -29.8912 * tfactors.T9 + 2.95102 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 17.065 + -1.86357 * tfactors.T913 - + 0.616591 * tfactors.T9 + -0.0839313 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -41.8099 * tfactors.T943i + (1.0/3.0) * 139.289 * tfactors.T923i + + -29.8912 + (5.0/3.0) * 2.95102 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.86357 * tfactors.T923i - + 0.616591 + (5.0/3.0) * -0.0839313 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ga63_n_to_p_Zn63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Co55_to_Ni56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ga63 + n --> p + Zn63 - // Co55 + p --> Ni56 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 20.1422 + -0.334251 * tfactors.T913 + + 0.328281 * tfactors.T9 + -0.0442083 * tfactors.T953; - // ths8r - ln_set_rate = 37.3736 + -38.1053 * tfactors.T913i + -0.210947 * tfactors.T913 - + -2.68377 * tfactors.T9 + 0.355814 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.334251 * tfactors.T923i + + 0.328281 + (5.0/3.0) * -0.0442083 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -38.1053 * tfactors.T943i + (1.0/3.0) * -0.210947 * tfactors.T923i - + -2.68377 + (5.0/3.0) * 0.355814 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ga63_n_to_He4_Cu60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Co55_to_Cu59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ga63 + n --> He4 + Cu60 - // Co55 + He4 --> Cu59 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 13.0507 + 4.02167 * tfactors.T913 + + -0.688499 * tfactors.T9 + 0.0864831 * tfactors.T953; - // ths8r - ln_set_rate = 65.2921 + -94.1404 * tfactors.T913i + -2.62786 * tfactors.T913 - + -2.12066 * tfactors.T9 + 0.237999 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 4.02167 * tfactors.T923i + + -0.688499 + (5.0/3.0) * 0.0864831 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -94.1404 * tfactors.T943i + (1.0/3.0) * -2.62786 * tfactors.T923i - + -2.12066 + (5.0/3.0) * 0.237999 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ga63_p_to_He4_Zn60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Co56_to_Co57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ga63 + p --> He4 + Zn60 - // Co56 + n --> Co57 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 19.9554 + -41.8134 * tfactors.T913i + 14.9697 * tfactors.T913 + + -4.35453 * tfactors.T9 + 0.544288 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 17.3552 + -1.37855 * tfactors.T913 - + 0.299896 * tfactors.T9 + -0.04382 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -41.8134 * tfactors.T943i + (1.0/3.0) * 14.9697 * tfactors.T923i + + -4.35453 + (5.0/3.0) * 0.544288 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.37855 * tfactors.T923i - + 0.299896 + (5.0/3.0) * -0.04382 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ga64_n_to_p_Zn64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Co56_to_Ni57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ga64 + n --> p + Zn64 - // Co56 + p --> Ni57 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 20.0454 + -0.311485 * tfactors.T913 + + 0.306024 * tfactors.T9 + -0.0439383 * tfactors.T953; - // ths8r - ln_set_rate = 35.5937 + -38.1094 * tfactors.T913i + 2.57091 * tfactors.T913 - + -2.07795 * tfactors.T9 + 0.20757 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -0.311485 * tfactors.T923i + + 0.306024 + (5.0/3.0) * -0.0439383 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -38.1094 * tfactors.T943i + (1.0/3.0) * 2.57091 * tfactors.T923i - + -2.07795 + (5.0/3.0) * 0.20757 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ga64_n_to_He4_Cu61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Co56_to_Cu60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ga64 + n --> He4 + Cu61 - // Co56 + He4 --> Cu60 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 15.2238 + 2.74537 * tfactors.T913 + + -0.458111 * tfactors.T9 + 0.0581457 * tfactors.T953; - // ths8r - ln_set_rate = 65.4774 + -94.1784 * tfactors.T913i + -1.94118 * tfactors.T913 - + -2.35306 * tfactors.T9 + 0.265186 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 2.74537 * tfactors.T923i + + -0.458111 + (5.0/3.0) * 0.0581457 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -94.1784 * tfactors.T943i + (1.0/3.0) * -1.94118 * tfactors.T923i - + -2.35306 + (5.0/3.0) * 0.265186 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ga64_p_to_He4_Zn61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Co57_to_Co58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ga64 + p --> He4 + Zn61 - // Co57 + n --> Co58 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 11.168 + -41.8168 * tfactors.T913i + 24.3154 * tfactors.T913 + + -5.57278 * tfactors.T9 + 0.588234 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 16.9961 + -1.03654 * tfactors.T913 - + 0.342218 * tfactors.T9 + -0.0638367 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -41.8168 * tfactors.T943i + (1.0/3.0) * 24.3154 * tfactors.T923i + + -5.57278 + (5.0/3.0) * 0.588234 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.03654 * tfactors.T923i - + 0.342218 + (5.0/3.0) * -0.0638367 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ge63_n_to_p_Ga63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Co57_to_Ni58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ge63 + n --> p + Ga63 - // Co57 + p --> Ni58 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 19.5443 + 0.716405 * tfactors.T913 + + 0.00814169 * tfactors.T9 + -0.00430239 * tfactors.T953; - // ths8r - ln_set_rate = 36.0159 + -38.1133 * tfactors.T913i + 1.77414 * tfactors.T913 - + -1.48268 * tfactors.T9 + 0.121073 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 0.716405 * tfactors.T923i + + 0.00814169 + (5.0/3.0) * -0.00430239 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -38.1133 * tfactors.T943i + (1.0/3.0) * 1.77414 * tfactors.T923i - + -1.48268 + (5.0/3.0) * 0.121073 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ge63_n_to_He4_Zn60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Co57_to_Cu61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ge63 + n --> He4 + Zn60 - // Co57 + He4 --> Cu61 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 14.6506 + 1.7273 * tfactors.T913 + + -0.26458 * tfactors.T9 + 0.0395 * tfactors.T953; - // ths8r - ln_set_rate = 63.6068 + -94.2152 * tfactors.T913i + 0.976269 * tfactors.T913 - + -2.37283 * tfactors.T9 + 0.195501 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 1.7273 * tfactors.T923i + + -0.26458 + (5.0/3.0) * 0.0395 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -94.2152 * tfactors.T943i + (1.0/3.0) * 0.976269 * tfactors.T923i - + -2.37283 + (5.0/3.0) * 0.195501 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ge64_n_to_p_Ga64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Co58_to_Co59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ge64 + n --> p + Ga64 - // Co58 + n --> Co59 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 20.5679 + -1.04067 * tfactors.T913 + + 0.575006 * tfactors.T9 + -0.0714547 * tfactors.T953; - // ths8r - ln_set_rate = 18.1906 + -2.18418 * tfactors.T913 - + 0.328629 * tfactors.T9 + -0.0407234 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * -1.04067 * tfactors.T923i + + 0.575006 + (5.0/3.0) * -0.0714547 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -2.18418 * tfactors.T923i - + 0.328629 + (5.0/3.0) * -0.0407234 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Ge64_n_to_He4_Zn61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Co58_to_Ni59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Ge64 + n --> He4 + Zn61 - // Co58 + p --> Ni59 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ths8r + ln_set_rate = 11.3061 + 7.47259 * tfactors.T913 + + -1.92043 * tfactors.T9 + 0.239118 * tfactors.T953; - // ths8r - ln_set_rate = 36.1058 + -38.1171 * tfactors.T913i + 1.68645 * tfactors.T913 - + -1.51404 * tfactors.T9 + 0.126766 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + (1.0/3.0) * 7.47259 * tfactors.T923i + + -1.92043 + (5.0/3.0) * 0.239118 * tfactors.T923; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -38.1171 * tfactors.T943i + (1.0/3.0) * 1.68645 * tfactors.T923i - + -1.51404 + (5.0/3.0) * 0.126766 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_He3_He3_to_p_p_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Co58_to_Cu62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // He3 + He3 --> p + p + He4 - // Co58 + He4 --> Cu62 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // nacrn + ln_set_rate = 24.7788 + -12.277 * tfactors.T913i + -0.103699 * tfactors.T913 + + -0.0649967 * tfactors.T9 + 0.0168191 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 63.7079 + -94.2508 * tfactors.T913i + 1.47146 * tfactors.T913 - + -2.87996 * tfactors.T9 + 0.26554 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -12.277 * tfactors.T943i + (1.0/3.0) * -0.103699 * tfactors.T923i + + -0.0649967 + (5.0/3.0) * 0.0168191 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -94.2508 * tfactors.T943i + (1.0/3.0) * 1.47146 * tfactors.T923i - + -2.87996 + (5.0/3.0) * 0.26554 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Li7_d_to_n_He4_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Co59_to_Ni60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Li7 + d --> n + He4 + He4 - // Co59 + p --> Ni60 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // cf88n + ln_set_rate = 26.4 + -10.259 * tfactors.T913i + + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 35.957 + -38.1208 * tfactors.T913i + 2.42609 * tfactors.T913 - + -1.5885 * tfactors.T9 + 0.110313 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -10.259 * tfactors.T943i + + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -38.1208 * tfactors.T943i + (1.0/3.0) * 2.42609 * tfactors.T923i - + -1.5885 + (5.0/3.0) * 0.110313 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Be7_d_to_p_He4_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Co59_to_Cu63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Be7 + d --> p + He4 + He4 - // Co59 + He4 --> Cu63 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // cf88n + ln_set_rate = 27.6987 + -12.428 * tfactors.T913i + + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 63.425 + -94.2852 * tfactors.T913i + 1.64751 * tfactors.T913 - + -2.1637 * tfactors.T9 + 0.119598 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -12.428 * tfactors.T943i + + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -94.2852 * tfactors.T943i + (1.0/3.0) * 1.64751 * tfactors.T923i - + -2.1637 + (5.0/3.0) * 0.119598 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ni56_to_Ni57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni56 + n --> Ni57 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Be9_p_to_d_He4_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // ths8r - ln_set_rate = 16.0765 + -1.19665 * tfactors.T913 - + 0.507179 * tfactors.T9 + -0.074604 * tfactors.T953; + // Be9 + p --> d + He4 + He4 - ln_set_rate += log_scor; + rate = 0.0; + drate_dT = 0.0; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.19665 * tfactors.T923i - + 0.507179 + (5.0/3.0) * -0.074604 * tfactors.T923; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // cf88r + ln_set_rate = 20.5607 + -5.8 * tfactors.T9i + + -0.75 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ni56_to_Cu57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.8 * tfactors.T9i * tfactors.T9i + + -0.75 * tfactors.T9i; - // Ni56 + p --> Cu57 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // cf88r + ln_set_rate = 20.1768 + -3.046 * tfactors.T9i + + -1.0 * tfactors.lnT9; - // wienr - ln_set_rate = -3.60454 + -4.77 * tfactors.T9i + -0.0409988 * tfactors.T913 - + 0.0619696 * tfactors.T9 + -0.0172498 * tfactors.T953 + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 3.046 * tfactors.T9i * tfactors.T9i + + -1.0 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 4.77 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.0409988 * tfactors.T923i - + 0.0619696 + (5.0/3.0) * -0.0172498 * tfactors.T923 + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // cf88n + ln_set_rate = 26.0751 + -10.359 * tfactors.T913i + 0.103955 * tfactors.T913 + + 4.4262 * tfactors.T9 + -5.95664 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // wienr - ln_set_rate = -12.8639 + -3.86 * tfactors.T9i + -0.0409988 * tfactors.T913 - + 0.0619696 * tfactors.T9 + -0.0172498 * tfactors.T953 + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -10.359 * tfactors.T943i + (1.0/3.0) * 0.103955 * tfactors.T923i + + 4.4262 + (5.0/3.0) * -5.95664 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.86 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.0409988 * tfactors.T923i - + 0.0619696 + (5.0/3.0) * -0.0172498 * tfactors.T923 + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // wienn - ln_set_rate = 21.5163 + -39.3 * tfactors.T913i + -0.0409988 * tfactors.T913 - + 0.0619696 * tfactors.T9 + -0.0172498 * tfactors.T953 + -0.666667 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_B8_n_to_p_He4_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // B8 + n --> p + He4 + He4 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.3 * tfactors.T943i + (1.0/3.0) * -0.0409988 * tfactors.T923i - + 0.0619696 + (5.0/3.0) * -0.0172498 * tfactors.T923 + -0.666667 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // wagn + ln_set_rate = 19.812 + -1.13869e-12 * tfactors.T9i + 1.5368e-10 * tfactors.T913i + -5.36043e-10 * tfactors.T913 + + 5.80628e-11 * tfactors.T9 + -5.23778e-12 * tfactors.T953 + 1.77211e-10 * tfactors.lnT9; - // wienr - ln_set_rate = 8.46379 + -21.2 * tfactors.T9i + -0.0409988 * tfactors.T913 - + 0.0619696 * tfactors.T9 + -0.0172498 * tfactors.T953 + -1.5 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.13869e-12 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.5368e-10 * tfactors.T943i + (1.0/3.0) * -5.36043e-10 * tfactors.T923i + + 5.80628e-11 + (5.0/3.0) * -5.23778e-12 * tfactors.T923 + 1.77211e-10 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 21.2 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.0409988 * tfactors.T923i - + 0.0619696 + (5.0/3.0) * -0.0172498 * tfactors.T923 + -1.5 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } - // wienr - ln_set_rate = 8.63941 + -19.8 * tfactors.T9i + -0.0409988 * tfactors.T913 - + 0.0619696 * tfactors.T9 + -0.0172498 * tfactors.T953 + -1.5 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_B11_p_to_3He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // B11 + p --> 3 He4 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 19.8 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.0409988 * tfactors.T923i - + 0.0619696 + (5.0/3.0) * -0.0172498 * tfactors.T923 + -1.5 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // nacrr + ln_set_rate = -14.9395 + -1.724 * tfactors.T9i + 8.49175 * tfactors.T913i + 27.3254 * tfactors.T913 + + -3.72071 * tfactors.T9 + 0.275516 * tfactors.T953 + -1.5 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ni56_to_Zn60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.724 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 8.49175 * tfactors.T943i + (1.0/3.0) * 27.3254 * tfactors.T923i + + -3.72071 + (5.0/3.0) * 0.275516 * tfactors.T923 + -1.5 * tfactors.T9i; - // Ni56 + He4 --> Zn60 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // nacrn + ln_set_rate = 28.6442 + -12.097 * tfactors.T913i + -0.0496312 * tfactors.T913 + + 0.687736 * tfactors.T9 + -0.564229 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 61.0733 + -96.4898 * tfactors.T913i + 6.47209 * tfactors.T913 - + -5.2029 * tfactors.T9 + 0.533391 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -12.097 * tfactors.T943i + (1.0/3.0) * -0.0496312 * tfactors.T923i + + 0.687736 + (5.0/3.0) * -0.564229 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -96.4898 * tfactors.T943i + (1.0/3.0) * 6.47209 * tfactors.T923i - + -5.2029 + (5.0/3.0) * 0.533391 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Li7_He3_to_n_p_He4_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ni57_to_Ni58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Li7 + He3 --> n + p + He4 + He4 - // Ni57 + n --> Ni58 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // mafon + ln_set_rate = 30.038 + -4.24733e-12 * tfactors.T9i + -17.989 * tfactors.T913i + -1.57523e-09 * tfactors.T913 + + 1.45934e-10 * tfactors.T9 + -1.15341e-11 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 17.2731 + -1.90814 * tfactors.T913 - + 0.493188 * tfactors.T9 + -0.0684633 * tfactors.T953; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 4.24733e-12 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -17.989 * tfactors.T943i + (1.0/3.0) * -1.57523e-09 * tfactors.T923i + + 1.45934e-10 + (5.0/3.0) * -1.15341e-11 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.90814 * tfactors.T923i - + 0.493188 + (5.0/3.0) * -0.0684633 * tfactors.T923; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Be7_He3_to_p_p_He4_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ni57_to_Cu58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Be7 + He3 --> p + p + He4 + He4 - // Ni57 + p --> Cu58 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // mafon + ln_set_rate = 31.7435 + -5.45213e-12 * tfactors.T9i + -21.793 * tfactors.T913i + -1.98126e-09 * tfactors.T913 + + 1.84204e-10 * tfactors.T9 + -1.46403e-11 * tfactors.T953 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 37.7262 + -39.0487 * tfactors.T913i + -0.339241 * tfactors.T913 - + -2.87307 * tfactors.T9 + 0.382369 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 5.45213e-12 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -21.793 * tfactors.T943i + (1.0/3.0) * -1.98126e-09 * tfactors.T923i + + 1.84204e-10 + (5.0/3.0) * -1.46403e-11 * tfactors.T923 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.0487 * tfactors.T943i + (1.0/3.0) * -0.339241 * tfactors.T923i - + -2.87307 + (5.0/3.0) * 0.382369 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_Be9_p_to_n_p_He4_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ni57_to_Zn61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // Be9 + p --> n + p + He4 + He4 - // Ni57 + He4 --> Zn61 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // cf88r + ln_set_rate = 20.7431 + -26.725 * tfactors.T9i + 1.40505e-06 * tfactors.T913i + -1.47128e-06 * tfactors.T913 + + 6.89313e-08 * tfactors.T9 + -3.55179e-09 * tfactors.T953 + -1.5 * tfactors.lnT9; - // ths8r - ln_set_rate = 61.4873 + -96.5275 * tfactors.T913i + 5.42001 * tfactors.T913 - + -3.93988 * tfactors.T9 + 0.358068 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 26.725 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.40505e-06 * tfactors.T943i + (1.0/3.0) * -1.47128e-06 * tfactors.T923i + + 6.89313e-08 + (5.0/3.0) * -3.55179e-09 * tfactors.T923 + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -96.5275 * tfactors.T943i + (1.0/3.0) * 5.42001 * tfactors.T923i - + -3.93988 + (5.0/3.0) * 0.358068 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // cf88n + ln_set_rate = 14.6035 + -21.4742 * tfactors.T9i + -0.634849 * tfactors.T913i + 4.82033 * tfactors.T913 + + -0.257317 * tfactors.T9 + 0.0134206 * tfactors.T953 + -1.08885 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ni58_to_Ni59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 21.4742 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.634849 * tfactors.T943i + (1.0/3.0) * 4.82033 * tfactors.T923i + + -0.257317 + (5.0/3.0) * 0.0134206 * tfactors.T923 + -1.08885 * tfactors.T9i; - // Ni58 + n --> Ni59 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + } - // ks03 - ln_set_rate = 8.63197 + 0.13279 * tfactors.T9i + -11.785 * tfactors.T913i + 19.5347 * tfactors.T913 - + -0.857179 * tfactors.T9 + 0.00111653 * tfactors.T953 + -9.35642 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_He4_p_n_to_Li6_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // He4 + p + n --> Li6 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.13279 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -11.785 * tfactors.T943i + (1.0/3.0) * 19.5347 * tfactors.T923i - + -0.857179 + (5.0/3.0) * 0.00111653 * tfactors.T923 + -9.35642 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // cf88r + ln_set_rate = -12.2851 + -19.353 * tfactors.T9i + 1.44987 * tfactors.T913i + -1.42759 * tfactors.T913 + + 0.0454035 * tfactors.T9 + 0.00471161 * tfactors.T953 + -1.0 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ni58_to_Cu59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 19.353 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.44987 * tfactors.T943i + (1.0/3.0) * -1.42759 * tfactors.T923i + + 0.0454035 + (5.0/3.0) * 0.00471161 * tfactors.T923 + -1.0 * tfactors.T9i; - // Ni58 + p --> Cu59 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + } - // si13n - ln_set_rate = 36.6662 + -39.0526 * tfactors.T913i + 1.0436 * tfactors.T913 - + -2.10834 * tfactors.T9 + 0.239559 * tfactors.T953 + -0.666667 * tfactors.lnT9; + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_He4_He4_n_to_Be9_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - ln_set_rate += log_scor; + // He4 + He4 + n --> Be9 - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.0526 * tfactors.T943i + (1.0/3.0) * 1.0436 * tfactors.T923i - + -2.10834 + (5.0/3.0) * 0.239559 * tfactors.T923 + -0.666667 * tfactors.T9i; + rate = 0.0; + drate_dT = 0.0; - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // ac12r + ln_set_rate = -6.81178 + -1.01953 * tfactors.T9i + -1.56673 * tfactors.T913i + -5.43497 * tfactors.T913 + + 0.673807 * tfactors.T9 + -0.041014 * tfactors.T953 + -1.5 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ni58_to_Zn62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.01953 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.56673 * tfactors.T943i + (1.0/3.0) * -5.43497 * tfactors.T923i + + 0.673807 + (5.0/3.0) * -0.041014 * tfactors.T923 + -1.5 * tfactors.T9i; - // Ni58 + He4 --> Zn62 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // ac12n + ln_set_rate = -8.22898 + -13.3317 * tfactors.T913i + 13.2237 * tfactors.T913 + + -9.06339 * tfactors.T9 + -0.666667 * tfactors.lnT9; - // ths8r - ln_set_rate = 62.8584 + -96.5638 * tfactors.T913i + 2.81593 * tfactors.T913 - + -2.43398 * tfactors.T9 + 0.140051 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -13.3317 * tfactors.T943i + (1.0/3.0) * 13.2237 * tfactors.T923i + + -9.06339 + -0.666667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -96.5638 * tfactors.T943i + (1.0/3.0) * 2.81593 * tfactors.T923i - + -2.43398 + (5.0/3.0) * 0.140051 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ni59_to_Ni60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // 3 He4 --> C12 - // Ni59 + n --> Ni60 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // fy05r + ln_set_rate = -11.7884 + -1.02446 * tfactors.T9i + -23.57 * tfactors.T913i + 20.4886 * tfactors.T913 + + -12.9882 * tfactors.T9 + -20.0 * tfactors.T953 + -2.16667 * tfactors.lnT9; - // ks03 - ln_set_rate = 25.5762 + -0.110079 * tfactors.T9i + 9.92411 * tfactors.T913i + -20.503 * tfactors.T913 - + 1.39981 * tfactors.T9 + -0.101641 * tfactors.T953 + 8.58204 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 1.02446 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -23.57 * tfactors.T943i + (1.0/3.0) * 20.4886 * tfactors.T923i + + -12.9882 + (5.0/3.0) * -20.0 * tfactors.T923 + -2.16667 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.110079 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 9.92411 * tfactors.T943i + (1.0/3.0) * -20.503 * tfactors.T923i - + 1.39981 + (5.0/3.0) * -0.101641 * tfactors.T923 + 8.58204 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + // fy05n + ln_set_rate = -0.971052 + -37.06 * tfactors.T913i + 29.3493 * tfactors.T913 + + -115.507 * tfactors.T9 + -10.0 * tfactors.T953 + -1.33333 * tfactors.lnT9; -} + ln_set_rate += log_scor; -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ni59_to_Cu60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -37.06 * tfactors.T943i + (1.0/3.0) * 29.3493 * tfactors.T923i + + -115.507 + (5.0/3.0) * -10.0 * tfactors.T923 + -1.33333 * tfactors.T9i; - // Ni59 + p --> Cu60 + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - rate = 0.0; - drate_dT = 0.0; + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // fy05r + ln_set_rate = -24.3505 + -4.12656 * tfactors.T9i + -13.49 * tfactors.T913i + 21.4259 * tfactors.T913 + + -1.34769 * tfactors.T9 + 0.0879816 * tfactors.T953 + -13.1653 * tfactors.lnT9; - // ths8r - ln_set_rate = 36.0485 + -39.0563 * tfactors.T913i + 2.1481 * tfactors.T913 - + -1.76507 * tfactors.T9 + 0.1629 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = 4.12656 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -13.49 * tfactors.T943i + (1.0/3.0) * 21.4259 * tfactors.T923i + + -1.34769 + (5.0/3.0) * 0.0879816 * tfactors.T923 + -13.1653 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.0563 * tfactors.T943i + (1.0/3.0) * 2.1481 * tfactors.T923i - + -1.76507 + (5.0/3.0) * 0.1629 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} + template + AMREX_GPU_DEVICE AMREX_INLINE + void rate_p_p_n_to_p_d_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ni59_to_Zn63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + // p + p + n --> p + d - // Ni59 + He4 --> Zn63 + rate = 0.0; + drate_dT = 0.0; - rate = 0.0; - drate_dT = 0.0; + amrex::Real ln_set_rate{0.0}; + amrex::Real dln_set_rate_dT9{0.0}; + amrex::Real set_rate{0.0}; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + // cf88n + ln_set_rate = -4.24034 + -3.72 * tfactors.T913i + 0.946313 * tfactors.T913 + + 0.105406 * tfactors.T9 + -0.0149431 * tfactors.T953 + -1.5 * tfactors.lnT9; - // ths8r - ln_set_rate = 63.0533 + -96.5991 * tfactors.T913i + 2.66136 * tfactors.T913 - + -2.36841 * tfactors.T9 + 0.148474 * tfactors.T953 + -0.666667 * tfactors.lnT9; + ln_set_rate += log_scor; - ln_set_rate += log_scor; + if constexpr (do_T_derivatives) { + dln_set_rate_dT9 = + -(1.0/3.0) * -3.72 * tfactors.T943i + (1.0/3.0) * 0.946313 * tfactors.T923i + + 0.105406 + (5.0/3.0) * -0.0149431 * tfactors.T923 + -1.5 * tfactors.T9i; - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -96.5991 * tfactors.T943i + (1.0/3.0) * 2.66136 * tfactors.T923i - + -2.36841 + (5.0/3.0) * 0.148474 * tfactors.T923 + -0.666667 * tfactors.T9i; + dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + // avoid underflows by zeroing rates in [0.0, 1.e-100] + ln_set_rate = std::max(ln_set_rate, -230.0); + set_rate = std::exp(ln_set_rate); + rate += set_rate; + if constexpr (do_T_derivatives) { + drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; + } - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; } -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ni60_to_Ni61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - // Ni60 + n --> Ni61 + template + AMREX_GPU_DEVICE AMREX_INLINE + void + fill_rates([[maybe_unused]] const tf_t& tfactors, + [[maybe_unused]] T& rate_eval) + { - rate = 0.0; - drate_dT = 0.0; + [[maybe_unused]] amrex::Real rate; + [[maybe_unused]] amrex::Real drate_dT; - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + { + // Be7_to_Li7_electron_capture_reaclib - // ks03 - ln_set_rate = 5.59123 + 0.0884361 * tfactors.T9i + -9.46323 * tfactors.T913i + 19.9252 * tfactors.T913 - + -0.985724 * tfactors.T9 + 0.0164222 * tfactors.T953 + -8.75824 * tfactors.lnT9; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Be7_to_Li7_electron_capture_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Be7_to_Li7_electron_capture_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Be7_to_Li7_electron_capture_reaclib) = drate_dT; + } + } - ln_set_rate += log_scor; + { + // C14_to_N14_beta_neg_reaclib - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.0884361 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -9.46323 * tfactors.T943i + (1.0/3.0) * 19.9252 * tfactors.T923i - + -0.985724 + (5.0/3.0) * 0.0164222 * tfactors.T923 + -8.75824 * tfactors.T9i; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_C14_to_N14_beta_neg_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C14_to_N14_beta_neg_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C14_to_N14_beta_neg_reaclib) = drate_dT; + } + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + { + // N13_to_C13_beta_pos_reaclib - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_N13_to_C13_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_N13_to_C13_beta_pos_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N13_to_C13_beta_pos_reaclib) = drate_dT; + } + } -} + { + // O14_to_N14_beta_pos_reaclib -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ni60_to_Cu61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_O14_to_N14_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O14_to_N14_beta_pos_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O14_to_N14_beta_pos_reaclib) = drate_dT; + } + } - // Ni60 + p --> Cu61 + { + // O15_to_N15_beta_pos_reaclib - rate = 0.0; - drate_dT = 0.0; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_O15_to_N15_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O15_to_N15_beta_pos_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O15_to_N15_beta_pos_reaclib) = drate_dT; + } + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + { + // F17_to_O17_beta_pos_reaclib - // si13n - ln_set_rate = 36.9916 + -39.06 * tfactors.T913i + 1.28239 * tfactors.T913 - + -1.76356 * tfactors.T9 + 0.18327 * tfactors.T953 + -0.666667 * tfactors.lnT9; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_F17_to_O17_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_F17_to_O17_beta_pos_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F17_to_O17_beta_pos_reaclib) = drate_dT; + } + } - ln_set_rate += log_scor; + { + // F18_to_O18_beta_pos_reaclib - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.06 * tfactors.T943i + (1.0/3.0) * 1.28239 * tfactors.T923i - + -1.76356 + (5.0/3.0) * 0.18327 * tfactors.T923 + -0.666667 * tfactors.T9i; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_F18_to_O18_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_F18_to_O18_beta_pos_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F18_to_O18_beta_pos_reaclib) = drate_dT; + } + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + { + // Ne18_to_F18_beta_pos_reaclib - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ne18_to_F18_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ne18_to_F18_beta_pos_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne18_to_F18_beta_pos_reaclib) = drate_dT; + } + } -} + { + // Ne19_to_F19_beta_pos_reaclib -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ni60_to_Zn64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ne19_to_F19_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ne19_to_F19_beta_pos_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne19_to_F19_beta_pos_reaclib) = drate_dT; + } + } - // Ni60 + He4 --> Zn64 + { + // Zn59_to_Cu59_beta_pos_reaclib - rate = 0.0; - drate_dT = 0.0; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn59_to_Cu59_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn59_to_Cu59_beta_pos_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn59_to_Cu59_beta_pos_reaclib) = drate_dT; + } + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + { + // Ge63_to_Ga63_beta_pos_reaclib - // ths8r - ln_set_rate = 64.093 + -96.6332 * tfactors.T913i + 1.06508 * tfactors.T913 - + -1.52905 * tfactors.T9 + 0.0316173 * tfactors.T953 + -0.666667 * tfactors.lnT9; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ge63_to_Ga63_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ge63_to_Ga63_beta_pos_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ge63_to_Ga63_beta_pos_reaclib) = drate_dT; + } + } - ln_set_rate += log_scor; + { + // B8_to_He4_He4_beta_pos_reaclib - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -96.6332 * tfactors.T943i + (1.0/3.0) * 1.06508 * tfactors.T923i - + -1.52905 + (5.0/3.0) * 0.0316173 * tfactors.T923 + -0.666667 * tfactors.T9i; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_B8_to_He4_He4_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_B8_to_He4_He4_beta_pos_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_B8_to_He4_He4_beta_pos_reaclib) = drate_dT; + } + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + { + // Zn59_to_p_Ni58_beta_pos_reaclib - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn59_to_p_Ni58_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn59_to_p_Ni58_beta_pos_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn59_to_p_Ni58_beta_pos_reaclib) = drate_dT; + } + } -} + { + // p_n_to_d_reaclib -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ni61_to_Ni62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_p_n_to_d_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_p_n_to_d_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_n_to_d_reaclib) = drate_dT; + } + } - // Ni61 + n --> Ni62 + { + // p_p_to_d_beta_pos_reaclib - rate = 0.0; - drate_dT = 0.0; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_p); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_p); + } +#endif + rate_p_p_to_d_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_p_p_to_d_beta_pos_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_p_to_d_beta_pos_reaclib) = drate_dT; + } + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + { + // p_p_to_d_electron_capture_reaclib - // ks03 - ln_set_rate = 11.7403 + 0.0180561 * tfactors.T9i + -2.82482 * tfactors.T913i + 7.69552 * tfactors.T913 - + -0.605244 * tfactors.T9 + 0.0243914 * tfactors.T953 + -3.12147 * tfactors.lnT9; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_p); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_p); + } +#endif + rate_p_p_to_d_electron_capture_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_p_p_to_d_electron_capture_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_p_to_d_electron_capture_reaclib) = drate_dT; + } + } - ln_set_rate += log_scor; + { + // d_p_to_He3_reaclib - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.0180561 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.82482 * tfactors.T943i + (1.0/3.0) * 7.69552 * tfactors.T923i - + -0.605244 + (5.0/3.0) * 0.0243914 * tfactors.T923 + -3.12147 * tfactors.T9i; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_d); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_d); + } +#endif + rate_d_p_to_He3_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_d_p_to_He3_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_d_p_to_He3_reaclib) = drate_dT; + } + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + { + // d_d_to_He4_reaclib - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_d_d); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_d_d); + } +#endif + rate_d_d_to_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_d_d_to_He4_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_d_d_to_He4_reaclib) = drate_dT; + } + } -} + { + // d_He4_to_Li6_reaclib -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ni61_to_Cu62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_d_He4); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_d_He4); + } +#endif + rate_d_He4_to_Li6_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_d_He4_to_Li6_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_d_He4_to_Li6_reaclib) = drate_dT; + } + } - // Ni61 + p --> Cu62 + { + // He3_n_to_He4_reaclib - rate = 0.0; - drate_dT = 0.0; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_He3_n_to_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_He3_n_to_He4_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He3_n_to_He4_reaclib) = drate_dT; + } + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + { + // He3_p_to_He4_beta_pos_reaclib - // si13n - ln_set_rate = 37.065 + -39.0635 * tfactors.T913i + 2.03251 * tfactors.T913 - + -1.66085 * tfactors.T9 + 0.123527 * tfactors.T953 + -0.666667 * tfactors.lnT9; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_He3); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_He3); + } +#endif + rate_He3_p_to_He4_beta_pos_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_He3_p_to_He4_beta_pos_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He3_p_to_He4_beta_pos_reaclib) = drate_dT; + } + } - ln_set_rate += log_scor; + { + // He3_He4_to_Be7_reaclib - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.0635 * tfactors.T943i + (1.0/3.0) * 2.03251 * tfactors.T923i - + -1.66085 + (5.0/3.0) * 0.123527 * tfactors.T923 + -0.666667 * tfactors.T9i; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He3_He4); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He3_He4); + } +#endif + rate_He3_He4_to_Be7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_He3_He4_to_Be7_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He3_He4_to_Be7_reaclib) = drate_dT; + } + } - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } + { + // Li6_n_to_Li7_reaclib - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Li6_n_to_Li7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Li6_n_to_Li7_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Li6_n_to_Li7_reaclib) = drate_dT; + } + } -} + { + // Li6_p_to_Be7_reaclib -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ni61_to_Zn65_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Li6); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Li6); + } +#endif + rate_Li6_p_to_Be7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Li6_p_to_Be7_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Li6_p_to_Be7_reaclib) = drate_dT; + } + } - // Ni61 + He4 --> Zn65 + { + // Li6_He4_to_B10_reaclib - rate = 0.0; - drate_dT = 0.0; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Li6); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Li6); + } +#endif + rate_Li6_He4_to_B10_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Li6_He4_to_B10_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Li6_He4_to_B10_reaclib) = drate_dT; + } + } - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; + { + // Li7_He4_to_B11_reaclib - // ths8r - ln_set_rate = 63.8838 + -96.6663 * tfactors.T913i + 2.54794 * tfactors.T913 - + -2.65791 * tfactors.T9 + 0.204247 * tfactors.T953 + -0.666667 * tfactors.lnT9; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Li7); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Li7); + } +#endif + rate_Li7_He4_to_B11_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Li7_He4_to_B11_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Li7_He4_to_B11_reaclib) = drate_dT; + } + } - ln_set_rate += log_scor; + { + // Be7_p_to_B8_reaclib - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -96.6663 * tfactors.T943i + (1.0/3.0) * 2.54794 * tfactors.T923i - + -2.65791 + (5.0/3.0) * 0.204247 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ni62_to_Ni63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni62 + n --> Ni63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ks03 - ln_set_rate = 5.77316 + -0.0229255 * tfactors.T9i + -1.2799 * tfactors.T913i + 10.7874 * tfactors.T913 - + -0.552819 * tfactors.T9 + -0.0106439 * tfactors.T953 + -3.53486 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0229255 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.2799 * tfactors.T943i + (1.0/3.0) * 10.7874 * tfactors.T923i - + -0.552819 + (5.0/3.0) * -0.0106439 * tfactors.T923 + -3.53486 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ni62_to_Cu63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni62 + p --> Cu63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // si13n - ln_set_rate = 37.5377 + -39.0669 * tfactors.T913i + 1.33156 * tfactors.T913 - + -1.30043 * tfactors.T9 + 0.0961101 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.0669 * tfactors.T943i + (1.0/3.0) * 1.33156 * tfactors.T923i - + -1.30043 + (5.0/3.0) * 0.0961101 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ni62_to_Zn66_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni62 + He4 --> Zn66 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 64.6647 + -96.6983 * tfactors.T913i + 0.80536 * tfactors.T913 - + -1.39385 * tfactors.T9 + 0.000644409 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -96.6983 * tfactors.T943i + (1.0/3.0) * 0.80536 * tfactors.T923i - + -1.39385 + (5.0/3.0) * 0.000644409 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ni63_to_Ni64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni63 + n --> Ni64 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ks03 - ln_set_rate = 29.5272 + -0.0604252 * tfactors.T9i + 7.01558 * tfactors.T913i + -23.8529 * tfactors.T913 - + 2.50513 * tfactors.T9 + -0.227209 * tfactors.T953 + 7.65703 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0604252 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 7.01558 * tfactors.T943i + (1.0/3.0) * -23.8529 * tfactors.T923i - + 2.50513 + (5.0/3.0) * -0.227209 * tfactors.T923 + 7.65703 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ni63_to_Cu64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni63 + p --> Cu64 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 40.2954 + -39.0703 * tfactors.T913i + -4.4238 * tfactors.T913 - + -0.152239 * tfactors.T9 + 0.0171937 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.0703 * tfactors.T943i + (1.0/3.0) * -4.4238 * tfactors.T923i - + -0.152239 + (5.0/3.0) * 0.0171937 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ni64_to_Cu65_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni64 + p --> Cu65 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // si13n - ln_set_rate = 37.6675 + -39.0735 * tfactors.T913i + 1.76823 * tfactors.T913 - + -1.38855 * tfactors.T9 + 0.0515179 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.0735 * tfactors.T943i + (1.0/3.0) * 1.76823 * tfactors.T923i - + -1.38855 + (5.0/3.0) * 0.0515179 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cu57_to_Cu58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu57 + n --> Cu58 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 10.7707 + -0.954817 * tfactors.T913 - + 0.394641 * tfactors.T9 + -0.0489206 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.954817 * tfactors.T923i - + 0.394641 + (5.0/3.0) * -0.0489206 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cu58_to_Cu59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu58 + n --> Cu59 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 13.7859 + -0.307504 * tfactors.T913 - + 0.342948 * tfactors.T9 + -0.0507762 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.307504 * tfactors.T923i - + 0.342948 + (5.0/3.0) * -0.0507762 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cu58_to_Zn59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu58 + p --> Zn59 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nfisn - ln_set_rate = -6.80287 + 1.08057 * tfactors.T9i + -142.882 * tfactors.T913i + 138.901 * tfactors.T913 - + -5.7482 * tfactors.T9 + 0.223571 * tfactors.T953 + -84.6553 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -1.08057 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -142.882 * tfactors.T943i + (1.0/3.0) * 138.901 * tfactors.T923i - + -5.7482 + (5.0/3.0) * 0.223571 * tfactors.T923 + -84.6553 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nfisn - ln_set_rate = 33.1417 + -0.0837118 * tfactors.T9i + -36.2109 * tfactors.T913i + -10.0201 * tfactors.T913 - + 0.882265 * tfactors.T9 + -0.0954725 * tfactors.T953 + 3.28794 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0837118 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.2109 * tfactors.T943i + (1.0/3.0) * -10.0201 * tfactors.T923i - + 0.882265 + (5.0/3.0) * -0.0954725 * tfactors.T923 + 3.28794 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nfisn - ln_set_rate = 34.9479 + 2.4317 * tfactors.T9i + -209.408 * tfactors.T913i + 176.007 * tfactors.T913 - + -6.98867 * tfactors.T9 + 0.295678 * tfactors.T953 + -110.548 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -2.4317 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -209.408 * tfactors.T943i + (1.0/3.0) * 176.007 * tfactors.T923i - + -6.98867 + (5.0/3.0) * 0.295678 * tfactors.T923 + -110.548 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cu58_to_Ga62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu58 + He4 --> Ga62 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 77.8609 + -98.8498 * tfactors.T913i + -21.411 * tfactors.T913 - + 1.84489 * tfactors.T9 + -0.142549 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -98.8498 * tfactors.T943i + (1.0/3.0) * -21.411 * tfactors.T923i - + 1.84489 + (5.0/3.0) * -0.142549 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cu59_to_Cu60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu59 + n --> Cu60 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 14.7349 + -0.952104 * tfactors.T913 - + 0.520444 * tfactors.T9 + -0.0746175 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.952104 * tfactors.T923i - + 0.520444 + (5.0/3.0) * -0.0746175 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cu59_to_Zn60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu59 + p --> Zn60 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 37.226 + -39.9808 * tfactors.T913i + 1.17311 * tfactors.T913 - + -2.90486 * tfactors.T9 + 0.339644 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.9808 * tfactors.T943i + (1.0/3.0) * 1.17311 * tfactors.T923i - + -2.90486 + (5.0/3.0) * 0.339644 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cu59_to_Ga63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu59 + He4 --> Ga63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 68.0149 + -98.8858 * tfactors.T913i + -2.92113 * tfactors.T913 - + -2.38226 * tfactors.T9 + 0.272994 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -98.8858 * tfactors.T943i + (1.0/3.0) * -2.92113 * tfactors.T923i - + -2.38226 + (5.0/3.0) * 0.272994 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cu60_to_Cu61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu60 + n --> Cu61 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 15.3449 + -0.586034 * tfactors.T913 - + 0.320768 * tfactors.T9 + -0.0484658 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.586034 * tfactors.T923i - + 0.320768 + (5.0/3.0) * -0.0484658 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cu60_to_Zn61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu60 + p --> Zn61 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 36.0101 + -39.9846 * tfactors.T913i + 3.2392 * tfactors.T913 - + -2.37211 * tfactors.T9 + 0.239391 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.9846 * tfactors.T943i + (1.0/3.0) * 3.2392 * tfactors.T923i - + -2.37211 + (5.0/3.0) * 0.239391 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cu60_to_Ga64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu60 + He4 --> Ga64 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 66.2816 + -98.9207 * tfactors.T913i + 0.933671 * tfactors.T913 - + -3.79958 * tfactors.T9 + 0.446216 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -98.9207 * tfactors.T943i + (1.0/3.0) * 0.933671 * tfactors.T923i - + -3.79958 + (5.0/3.0) * 0.446216 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cu61_to_Cu62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu61 + n --> Cu62 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 16.3662 + -0.404348 * tfactors.T913 - + 0.218353 * tfactors.T9 + -0.0562018 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.404348 * tfactors.T923i - + 0.218353 + (5.0/3.0) * -0.0562018 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cu61_to_Zn62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu61 + p --> Zn62 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 36.5695 + -39.9882 * tfactors.T913i + 2.26956 * tfactors.T913 - + -1.69006 * tfactors.T9 + 0.132363 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.9882 * tfactors.T943i + (1.0/3.0) * 2.26956 * tfactors.T923i - + -1.69006 + (5.0/3.0) * 0.132363 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cu62_to_Cu63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu62 + n --> Cu63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 17.0073 + -0.723484 * tfactors.T913 - + 0.215177 * tfactors.T9 + -0.0473749 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.723484 * tfactors.T923i - + 0.215177 + (5.0/3.0) * -0.0473749 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cu62_to_Zn63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu62 + p --> Zn63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 36.5491 + -39.9917 * tfactors.T913i + 2.6186 * tfactors.T913 - + -1.69105 * tfactors.T9 + 0.132898 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.9917 * tfactors.T943i + (1.0/3.0) * 2.6186 * tfactors.T923i - + -1.69105 + (5.0/3.0) * 0.132898 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cu63_to_Cu64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu63 + n --> Cu64 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ks03 - ln_set_rate = 27.4055 + -0.117212 * tfactors.T9i + 11.3982 * tfactors.T913i + -24.4222 * tfactors.T913 - + 1.95364 * tfactors.T9 + -0.18693 * tfactors.T953 + 10.2458 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.117212 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 11.3982 * tfactors.T943i + (1.0/3.0) * -24.4222 * tfactors.T923i - + 1.95364 + (5.0/3.0) * -0.18693 * tfactors.T923 + 10.2458 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cu63_to_Zn64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu63 + p --> Zn64 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 37.1256 + -39.995 * tfactors.T913i + 1.69705 * tfactors.T913 - + -1.11391 * tfactors.T9 + 0.0416287 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.995 * tfactors.T943i + (1.0/3.0) * 1.69705 * tfactors.T923i - + -1.11391 + (5.0/3.0) * 0.0416287 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cu64_to_Cu65_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu64 + n --> Cu65 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 18.8488 + -2.31276 * tfactors.T913 - + 0.434599 * tfactors.T9 + -0.0715678 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -2.31276 * tfactors.T923i - + 0.434599 + (5.0/3.0) * -0.0715678 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cu64_to_Zn65_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu64 + p --> Zn65 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 38.9806 + -39.9983 * tfactors.T913i + -2.9846 * tfactors.T913 - + 0.0709769 * tfactors.T9 + -0.0519569 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.9983 * tfactors.T943i + (1.0/3.0) * -2.9846 * tfactors.T923i - + 0.0709769 + (5.0/3.0) * -0.0519569 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cu65_to_Zn66_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu65 + p --> Zn66 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 36.8752 + -40.0015 * tfactors.T913i + 2.89473 * tfactors.T913 - + -1.70171 * tfactors.T9 + 0.092664 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -40.0015 * tfactors.T943i + (1.0/3.0) * 2.89473 * tfactors.T923i - + -1.70171 + (5.0/3.0) * 0.092664 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Zn59_to_Zn60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn59 + n --> Zn60 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 8.74563 + 0.65324 * tfactors.T913 - + -0.0259697 * tfactors.T9 + -0.00407906 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.65324 * tfactors.T923i - + -0.0259697 + (5.0/3.0) * -0.00407906 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Zn59_to_Ge63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn59 + He4 --> Ge63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 76.3883 + -101.146 * tfactors.T913i + -14.3723 * tfactors.T913 - + 0.893059 * tfactors.T9 + -0.0564743 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -101.146 * tfactors.T943i + (1.0/3.0) * -14.3723 * tfactors.T923i - + 0.893059 + (5.0/3.0) * -0.0564743 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Zn60_to_Zn61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn60 + n --> Zn61 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 13.4892 + 0.0559751 * tfactors.T913 - + 0.208641 * tfactors.T9 + -0.0357451 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.0559751 * tfactors.T923i - + 0.208641 + (5.0/3.0) * -0.0357451 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Zn60_to_Ge64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn60 + He4 --> Ge64 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 61.1229 + -101.182 * tfactors.T913i + 10.4963 * tfactors.T913 - + -7.04215 * tfactors.T9 + 0.732883 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -101.182 * tfactors.T943i + (1.0/3.0) * 10.4963 * tfactors.T923i - + -7.04215 + (5.0/3.0) * 0.732883 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Zn61_to_Zn62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn61 + n --> Zn62 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 13.7022 + 0.174908 * tfactors.T913 - + 0.222207 * tfactors.T9 + -0.0495297 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.174908 * tfactors.T923i - + 0.222207 + (5.0/3.0) * -0.0495297 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Zn61_to_Ga62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn61 + p --> Ga62 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nfisn - ln_set_rate = 11276.1 + -91.1775 * tfactors.T9i + 6932.15 * tfactors.T913i + -20433.4 * tfactors.T913 - + 2726.25 * tfactors.T9 + -416.477 * tfactors.T953 + 7003.74 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 91.1775 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 6932.15 * tfactors.T943i + (1.0/3.0) * -20433.4 * tfactors.T923i - + 2726.25 + (5.0/3.0) * -416.477 * tfactors.T923 + 7003.74 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nfisn - ln_set_rate = 35.5778 + -0.068885 * tfactors.T9i + -36.9213 * tfactors.T913i + -12.8434 * tfactors.T913 - + 1.30735 * tfactors.T9 + -0.136745 * tfactors.T953 + 3.91008 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.068885 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.9213 * tfactors.T943i + (1.0/3.0) * -12.8434 * tfactors.T923i - + 1.30735 + (5.0/3.0) * -0.136745 * tfactors.T923 + 3.91008 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nfisn - ln_set_rate = -19.8777 + -14.8223 * tfactors.T9i + 207.487 * tfactors.T913i + -181.718 * tfactors.T913 - + 5.86358 * tfactors.T9 + -0.221479 * tfactors.T953 + 119.805 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 14.8223 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 207.487 * tfactors.T943i + (1.0/3.0) * -181.718 * tfactors.T923i - + 5.86358 + (5.0/3.0) * -0.221479 * tfactors.T923 + 119.805 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Zn62_to_Zn63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn62 + n --> Zn63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 16.4953 + -0.365196 * tfactors.T913 - + 0.230327 * tfactors.T9 + -0.0605553 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.365196 * tfactors.T923i - + 0.230327 + (5.0/3.0) * -0.0605553 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Zn62_to_Ga63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn62 + p --> Ga63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nfisn - ln_set_rate = 37.1867 + -0.194242 * tfactors.T9i + -31.4331 * tfactors.T913i + -19.7752 * tfactors.T913 - + 1.69239 * tfactors.T9 + -0.16473 * tfactors.T953 + 7.6608 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.194242 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.4331 * tfactors.T943i + (1.0/3.0) * -19.7752 * tfactors.T923i - + 1.69239 + (5.0/3.0) * -0.16473 * tfactors.T923 + 7.6608 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nfisn - ln_set_rate = 7888.93 + -59.9484 * tfactors.T9i + 4643.34 * tfactors.T913i + -14105.9 * tfactors.T913 - + 1925.65 * tfactors.T9 + -299.872 * tfactors.T953 + 4768.64 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 59.9484 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 4643.34 * tfactors.T943i + (1.0/3.0) * -14105.9 * tfactors.T923i - + 1925.65 + (5.0/3.0) * -299.872 * tfactors.T923 + 4768.64 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nfisn - ln_set_rate = 47.3921 + -22.0155 * tfactors.T9i + 516.062 * tfactors.T913i + -567.538 * tfactors.T913 - + 23.7454 * tfactors.T9 + -1.02526 * tfactors.T953 + 327.86 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 22.0155 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 516.062 * tfactors.T943i + (1.0/3.0) * -567.538 * tfactors.T923i - + 23.7454 + (5.0/3.0) * -1.02526 * tfactors.T923 + 327.86 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nfisn - ln_set_rate = -38.4285 + -21.8336 * tfactors.T9i + 181.058 * tfactors.T913i + -128.039 * tfactors.T913 - + 5.3613 * tfactors.T9 + -0.329542 * tfactors.T953 + 87.4371 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 21.8336 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 181.058 * tfactors.T943i + (1.0/3.0) * -128.039 * tfactors.T923i - + 5.3613 + (5.0/3.0) * -0.329542 * tfactors.T923 + 87.4371 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Zn63_to_Zn64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn63 + n --> Zn64 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 16.2538 + -0.526805 * tfactors.T913 - + 0.294653 * tfactors.T9 + -0.0660418 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.526805 * tfactors.T923i - + 0.294653 + (5.0/3.0) * -0.0660418 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Zn63_to_Ga64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn63 + p --> Ga64 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 36.839 + -40.9093 * tfactors.T913i + 2.88162 * tfactors.T913 - + -2.11741 * tfactors.T9 + 0.191601 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -40.9093 * tfactors.T943i + (1.0/3.0) * 2.88162 * tfactors.T923i - + -2.11741 + (5.0/3.0) * 0.191601 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Zn64_to_Zn65_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn64 + n --> Zn65 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ks03 - ln_set_rate = 13.1015 + 0.0293385 * tfactors.T9i + -3.1973 * tfactors.T913i + 6.0545 * tfactors.T913 - + 0.171155 * tfactors.T9 + -0.0905702 * tfactors.T953 + -2.89286 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.0293385 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -3.1973 * tfactors.T943i + (1.0/3.0) * 6.0545 * tfactors.T923i - + 0.171155 + (5.0/3.0) * -0.0905702 * tfactors.T923 + -2.89286 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Zn65_to_Zn66_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn65 + n --> Zn66 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ks03 - ln_set_rate = 27.6235 + -0.0461963 * tfactors.T9i + 5.38411 * tfactors.T913i + -18.0063 * tfactors.T913 - + 1.89109 * tfactors.T9 + -0.191482 * tfactors.T953 + 5.84419 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0461963 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 5.38411 * tfactors.T943i + (1.0/3.0) * -18.0063 * tfactors.T923i - + 1.89109 + (5.0/3.0) * -0.191482 * tfactors.T923 + 5.84419 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ga62_to_Ga63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ga62 + n --> Ga63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 13.6851 + -0.413123 * tfactors.T913 - + 0.505609 * tfactors.T9 + -0.0792987 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.413123 * tfactors.T923i - + 0.505609 + (5.0/3.0) * -0.0792987 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ga62_to_Ge63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ga62 + p --> Ge63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nfisn - ln_set_rate = 23.0628 + -1.09614 * tfactors.T9i + -107.856 * tfactors.T913i + 80.6244 * tfactors.T913 - + -2.84514 * tfactors.T9 + 0.087641 * tfactors.T953 + -56.5078 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.09614 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -107.856 * tfactors.T943i + (1.0/3.0) * 80.6244 * tfactors.T923i - + -2.84514 + (5.0/3.0) * 0.087641 * tfactors.T923 + -56.5078 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nfisn - ln_set_rate = 268.37 + -0.169689 * tfactors.T9i + -8.15451 * tfactors.T913i + -301.681 * tfactors.T913 - + 33.0147 * tfactors.T9 + -2.8672 * tfactors.T953 + 70.7354 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.169689 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -8.15451 * tfactors.T943i + (1.0/3.0) * -301.681 * tfactors.T923i - + 33.0147 + (5.0/3.0) * -2.8672 * tfactors.T923 + 70.7354 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nfisn - ln_set_rate = 29.8043 + 0.0615986 * tfactors.T9i + -45.5057 * tfactors.T913i + 1.9831 * tfactors.T913 - + -0.147339 * tfactors.T9 + -0.0169469 * tfactors.T953 + -2.46033 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.0615986 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -45.5057 * tfactors.T943i + (1.0/3.0) * 1.9831 * tfactors.T923i - + -0.147339 + (5.0/3.0) * -0.0169469 * tfactors.T923 + -2.46033 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nfisn - ln_set_rate = 9631.23 + -112.916 * tfactors.T9i + 6926.61 * tfactors.T913i + -18459.0 * tfactors.T913 - + 2374.61 * tfactors.T9 + -366.508 * tfactors.T953 + 6586.96 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 112.916 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 6926.61 * tfactors.T943i + (1.0/3.0) * -18459.0 * tfactors.T923i - + 2374.61 + (5.0/3.0) * -366.508 * tfactors.T923 + 6586.96 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nfisn - ln_set_rate = 53.7251 + -4.53179 * tfactors.T9i + 11.0703 * tfactors.T913i + -66.0297 * tfactors.T913 - + 2.89115 * tfactors.T9 + -0.129107 * tfactors.T953 + 29.3214 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 4.53179 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 11.0703 * tfactors.T943i + (1.0/3.0) * -66.0297 * tfactors.T923i - + 2.89115 + (5.0/3.0) * -0.129107 * tfactors.T923 + 29.3214 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ga63_to_Ga64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ga63 + n --> Ga64 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 12.8071 + 1.0342 * tfactors.T913 - + 0.0882306 * tfactors.T9 + -0.0437444 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 1.0342 * tfactors.T923i - + 0.0882306 + (5.0/3.0) * -0.0437444 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ga63_to_Ge64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ga63 + p --> Ge64 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 37.9791 + -41.8134 * tfactors.T913i + 1.45084 * tfactors.T913 - + -3.1328 * tfactors.T9 + 0.353318 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -41.8134 * tfactors.T943i + (1.0/3.0) * 1.45084 * tfactors.T923i - + -3.1328 + (5.0/3.0) * 0.353318 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ge63_to_Ge64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ge63 + n --> Ge64 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 8.35941 + 0.20987 * tfactors.T913 - + 0.182208 * tfactors.T9 + -0.0339886 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.20987 * tfactors.T923i - + 0.182208 + (5.0/3.0) * -0.0339886 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_d_d_to_n_He3_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // d + d --> n + He3 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // gi17n - ln_set_rate = 19.0876 + -0.00019002 * tfactors.T9i + -4.2292 * tfactors.T913i + 1.6932 * tfactors.T913 - + -0.0855529 * tfactors.T9 + -1.35709e-25 * tfactors.T953 + -0.734513 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.00019002 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -4.2292 * tfactors.T943i + (1.0/3.0) * 1.6932 * tfactors.T923i - + -0.0855529 + (5.0/3.0) * -1.35709e-25 * tfactors.T923 + -0.734513 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_He3_to_d_d_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // He3 + n --> d + d - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // gi17n - ln_set_rate = 19.6369 + -37.9358 * tfactors.T9i + -4.2292 * tfactors.T913i + 1.6932 * tfactors.T913 - + -0.0855529 * tfactors.T9 + -1.35709e-25 * tfactors.T953 + -0.734513 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 37.9358 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -4.2292 * tfactors.T943i + (1.0/3.0) * 1.6932 * tfactors.T923i - + -0.0855529 + (5.0/3.0) * -1.35709e-25 * tfactors.T923 + -0.734513 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_d_He3_to_p_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // He3 + d --> p + He4 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // de04 - ln_set_rate = 41.2969 + -7.182 * tfactors.T913i + -17.1349 * tfactors.T913 - + 1.36908 * tfactors.T9 + -0.0814423 * tfactors.T953 + 3.35395 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -7.182 * tfactors.T943i + (1.0/3.0) * -17.1349 * tfactors.T923i - + 1.36908 + (5.0/3.0) * -0.0814423 * tfactors.T923 + 3.35395 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // de04 - ln_set_rate = 24.6839 + -7.182 * tfactors.T913i + 0.473288 * tfactors.T913 - + 1.46847 * tfactors.T9 + -27.9603 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -7.182 * tfactors.T943i + (1.0/3.0) * 0.473288 * tfactors.T923i - + 1.46847 + (5.0/3.0) * -27.9603 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_He3_to_p_Li6_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // He3 + He4 --> p + Li6 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // pt05n - ln_set_rate = 24.4064 + -46.6405 * tfactors.T9i + -8.39481 * tfactors.T913i + -0.165254 * tfactors.T913 - + -0.16936 * tfactors.T9 + 0.0533676 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 46.6405 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -8.39481 * tfactors.T943i + (1.0/3.0) * -0.165254 * tfactors.T923i - + -0.16936 + (5.0/3.0) * 0.0533676 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_He4_to_d_He3_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // p + He4 --> d + He3 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // de04 - ln_set_rate = 26.3907 + -212.977 * tfactors.T9i + -7.182 * tfactors.T913i + 0.473288 * tfactors.T913 - + 1.46847 * tfactors.T9 + -27.9603 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 212.977 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -7.182 * tfactors.T943i + (1.0/3.0) * 0.473288 * tfactors.T923i - + 1.46847 + (5.0/3.0) * -27.9603 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // de04 - ln_set_rate = 43.0037 + -212.977 * tfactors.T9i + -7.182 * tfactors.T913i + -17.1349 * tfactors.T913 - + 1.36908 * tfactors.T9 + -0.0814423 * tfactors.T953 + 3.35395 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 212.977 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -7.182 * tfactors.T943i + (1.0/3.0) * -17.1349 * tfactors.T923i - + 1.36908 + (5.0/3.0) * -0.0814423 * tfactors.T923 + 3.35395 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_He4_to_n_Be7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // He4 + He4 --> n + Be7 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // wagn - ln_set_rate = 19.694 + -220.375 * tfactors.T9i + -0.00210045 * tfactors.T913 - + 0.000176541 * tfactors.T9 + -1.36797e-05 * tfactors.T953 + 1.00083 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 220.375 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.00210045 * tfactors.T923i - + 0.000176541 + (5.0/3.0) * -1.36797e-05 * tfactors.T923 + 1.00083 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_He4_to_p_Li7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // He4 + He4 --> p + Li7 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // de04r - ln_set_rate = 15.7864 + -205.79 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 205.79 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // de04 - ln_set_rate = 13.4902 + -201.312 * tfactors.T9i + -8.4727 * tfactors.T913i + 0.417943 * tfactors.T913 - + 5.34565 * tfactors.T9 + -4.8684 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 201.312 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -8.4727 * tfactors.T943i + (1.0/3.0) * 0.417943 * tfactors.T923i - + 5.34565 + (5.0/3.0) * -4.8684 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // de04r - ln_set_rate = 23.4325 + -227.465 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 227.465 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // de04 - ln_set_rate = 21.9764 + -201.312 * tfactors.T9i + -8.4727 * tfactors.T913i + 0.297934 * tfactors.T913 - + 0.0582335 * tfactors.T9 + -0.00413383 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 201.312 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -8.4727 * tfactors.T943i + (1.0/3.0) * 0.297934 * tfactors.T923i - + 0.0582335 + (5.0/3.0) * -0.00413383 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Li6_to_He4_He3_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Li6 + p --> He4 + He3 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // pt05n - ln_set_rate = 24.3475 + -8.39481 * tfactors.T913i + -0.165254 * tfactors.T913 - + -0.16936 * tfactors.T9 + 0.0533676 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -8.39481 * tfactors.T943i + (1.0/3.0) * -0.165254 * tfactors.T923i - + -0.16936 + (5.0/3.0) * 0.0533676 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_d_Li6_to_n_Be7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Li6 + d --> n + Be7 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // mafon - ln_set_rate = 28.0095 + -4.77456e-12 * tfactors.T9i + -10.259 * tfactors.T913i + -2.01559e-09 * tfactors.T913 - + 1.99542e-10 * tfactors.T9 + -1.65595e-11 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 4.77456e-12 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -10.259 * tfactors.T943i + (1.0/3.0) * -2.01559e-09 * tfactors.T923i - + 1.99542e-10 + (5.0/3.0) * -1.65595e-11 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_d_Li6_to_p_Li7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Li6 + d --> p + Li7 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // mafon - ln_set_rate = 28.0231 + -10.135 * tfactors.T913i - + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -10.135 * tfactors.T943i - + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Li6_to_p_Be9_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Li6 + He4 --> p + Be9 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88n - ln_set_rate = 25.5847 + -24.6712 * tfactors.T9i + -10.359 * tfactors.T913i + 0.102577 * tfactors.T913 - + 4.43544 * tfactors.T9 + -5.97105 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 24.6712 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -10.359 * tfactors.T943i + (1.0/3.0) * 0.102577 * tfactors.T923i - + 4.43544 + (5.0/3.0) * -5.97105 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88r - ln_set_rate = 19.8324 + -29.8312 * tfactors.T9i - + -0.75 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 29.8312 * tfactors.T9i * tfactors.T9i - + -0.75 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88r - ln_set_rate = 19.4366 + -27.7172 * tfactors.T9i - + -1.0 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 27.7172 * tfactors.T9i * tfactors.T9i - + -1.0 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Li7_to_n_Be7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Li7 + p --> n + Be7 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // db18 - ln_set_rate = 21.7899 + -19.0779 * tfactors.T9i + -0.30254 * tfactors.T913i + -0.3602 * tfactors.T913 - + 0.17472 * tfactors.T9 + -0.0223 * tfactors.T953 + -0.4581 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 19.0779 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.30254 * tfactors.T943i + (1.0/3.0) * -0.3602 * tfactors.T923i - + 0.17472 + (5.0/3.0) * -0.0223 * tfactors.T923 + -0.4581 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Li7_to_d_Li6_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Li7 + p --> d + Li6 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // mafon - ln_set_rate = 28.9494 + -58.3239 * tfactors.T9i + -10.135 * tfactors.T913i - + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 58.3239 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -10.135 * tfactors.T943i - + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Li7_to_He4_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Li7 + p --> He4 + He4 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // de04r - ln_set_rate = 21.8999 + -26.1527 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 26.1527 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // de04 - ln_set_rate = 20.4438 + -8.4727 * tfactors.T913i + 0.297934 * tfactors.T913 - + 0.0582335 * tfactors.T9 + -0.00413383 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -8.4727 * tfactors.T943i + (1.0/3.0) * 0.297934 * tfactors.T923i - + 0.0582335 + (5.0/3.0) * -0.00413383 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // de04r - ln_set_rate = 14.2538 + -4.478 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 4.478 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // de04 - ln_set_rate = 11.9576 + -8.4727 * tfactors.T913i + 0.417943 * tfactors.T913 - + 5.34565 * tfactors.T9 + -4.8684 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -8.4727 * tfactors.T943i + (1.0/3.0) * 0.417943 * tfactors.T923i - + 5.34565 + (5.0/3.0) * -4.8684 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Li7_to_n_B10_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Li7 + He4 --> n + B10 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88n - ln_set_rate = 19.7521 + -32.3766 * tfactors.T9i; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 32.3766 * tfactors.T9i * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Be7_to_p_Li7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Be7 + n --> p + Li7 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // db18 - ln_set_rate = 21.7899 + 0.000728098 * tfactors.T9i + -0.30254 * tfactors.T913i + -0.3602 * tfactors.T913 - + 0.17472 * tfactors.T9 + -0.0223 * tfactors.T953 + -0.4581 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.000728098 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.30254 * tfactors.T943i + (1.0/3.0) * -0.3602 * tfactors.T923i - + 0.17472 + (5.0/3.0) * -0.0223 * tfactors.T923 + -0.4581 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Be7_to_d_Li6_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Be7 + n --> d + Li6 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // mafon - ln_set_rate = 28.9358 + -39.2438 * tfactors.T9i + -10.259 * tfactors.T913i + -2.01559e-09 * tfactors.T913 - + 1.99542e-10 * tfactors.T9 + -1.65595e-11 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 39.2438 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -10.259 * tfactors.T943i + (1.0/3.0) * -2.01559e-09 * tfactors.T923i - + 1.99542e-10 + (5.0/3.0) * -1.65595e-11 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Be7_to_He4_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Be7 + n --> He4 + He4 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // wagn - ln_set_rate = 18.1614 + -0.00210045 * tfactors.T913 - + 0.000176541 * tfactors.T9 + -1.36797e-05 * tfactors.T953 + 1.00083 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.00210045 * tfactors.T923i - + 0.000176541 + (5.0/3.0) * -1.36797e-05 * tfactors.T923 + 1.00083 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Be7_to_p_B10_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Be7 + He4 --> p + B10 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacrn - ln_set_rate = 43.9213 + -13.2872 * tfactors.T9i + -12.9754 * tfactors.T913i + -44.3224 * tfactors.T913 - + 62.9626 * tfactors.T9 + -49.5228 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 13.2872 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -12.9754 * tfactors.T943i + (1.0/3.0) * -44.3224 * tfactors.T923i - + 62.9626 + (5.0/3.0) * -49.5228 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacrr - ln_set_rate = -6.7467 + -13.8479 * tfactors.T9i + 0.532995 * tfactors.T913i + 22.8893 * tfactors.T913 - + -3.08149 * tfactors.T9 + 0.218269 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 13.8479 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 0.532995 * tfactors.T943i + (1.0/3.0) * 22.8893 * tfactors.T923i - + -3.08149 + (5.0/3.0) * 0.218269 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Be9_to_He4_Li6_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Be9 + p --> He4 + Li6 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88n - ln_set_rate = 26.0751 + -10.359 * tfactors.T913i + 0.102577 * tfactors.T913 - + 4.43544 * tfactors.T9 + -5.97105 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -10.359 * tfactors.T943i + (1.0/3.0) * 0.102577 * tfactors.T923i - + 4.43544 + (5.0/3.0) * -5.97105 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88r - ln_set_rate = 20.3228 + -5.16 * tfactors.T9i - + -0.75 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.16 * tfactors.T9i * tfactors.T9i - + -0.75 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88r - ln_set_rate = 19.927 + -3.046 * tfactors.T9i - + -1.0 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.046 * tfactors.T9i * tfactors.T9i - + -1.0 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Be9_to_n_C12_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Be9 + He4 --> n + C12 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88r - ln_set_rate = 11.744 + -4.179 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 4.179 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88r - ln_set_rate = -1.48281 + -1.834 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.834 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88r - ln_set_rate = -9.51959 + -1.184 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.184 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88n - ln_set_rate = 31.464 + -23.87 * tfactors.T913i + 0.566698 * tfactors.T913 - + 44.0957 * tfactors.T9 + -314.232 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -23.87 * tfactors.T943i + (1.0/3.0) * 0.566698 * tfactors.T923i - + 44.0957 + (5.0/3.0) * -314.232 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88r - ln_set_rate = 19.2962 + -12.732 * tfactors.T9i; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 12.732 * tfactors.T9i * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_B10_to_He4_Li7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // B10 + n --> He4 + Li7 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88n - ln_set_rate = 20.0438; - amrex::ignore_unused(tfactors); - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_B10_to_He4_Be7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // B10 + p --> He4 + Be7 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacrr - ln_set_rate = -6.45503 + -0.560753 * tfactors.T9i + 0.532995 * tfactors.T913i + 22.8893 * tfactors.T913 - + -3.08149 * tfactors.T9 + 0.218269 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.560753 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 0.532995 * tfactors.T943i + (1.0/3.0) * 22.8893 * tfactors.T923i - + -3.08149 + (5.0/3.0) * 0.218269 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacrn - ln_set_rate = 44.213 + -12.9754 * tfactors.T913i + -44.3224 * tfactors.T913 - + 62.9626 * tfactors.T9 + -49.5228 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -12.9754 * tfactors.T943i + (1.0/3.0) * -44.3224 * tfactors.T923i - + 62.9626 + (5.0/3.0) * -49.5228 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_B10_to_n_N13_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // B10 + He4 --> n + N13 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88n - ln_set_rate = 30.5042 + -27.8719 * tfactors.T913i + -0.599503 * tfactors.T913 - + 0.122849 * tfactors.T9 + -0.0393717 * tfactors.T953 + -0.507333 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -27.8719 * tfactors.T943i + (1.0/3.0) * -0.599503 * tfactors.T923i - + 0.122849 + (5.0/3.0) * -0.0393717 * tfactors.T923 + -0.507333 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_B10_to_p_C13_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // B10 + He4 --> p + C13 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // wagn - ln_set_rate = 34.498 + -27.99 * tfactors.T913i - + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -27.99 * tfactors.T943i - + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_B11_to_n_N14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // B11 + He4 --> n + N14 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88n - ln_set_rate = 29.5726 + -28.234 * tfactors.T913i + -0.325987 * tfactors.T913 - + 30.135 * tfactors.T9 + -78.4165 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -28.234 * tfactors.T943i + (1.0/3.0) * -0.325987 * tfactors.T923i - + 30.135 + (5.0/3.0) * -78.4165 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88r - ln_set_rate = 15.3084 + -8.596 * tfactors.T9i - + 0.6 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 8.596 * tfactors.T9i * tfactors.T9i - + 0.6 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88r - ln_set_rate = 7.44425 + -5.178 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.178 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88r - ln_set_rate = 0.582216 + -2.827 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.827 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_B11_to_p_C14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // B11 + He4 --> p + C14 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // bb92r - ln_set_rate = 5.48852 + -5.147 * tfactors.T9i + -5.81643e-09 * tfactors.T913i + 1.24374e-08 * tfactors.T913 - + -9.55069e-10 * tfactors.T9 + 6.81706e-11 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.147 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -5.81643e-09 * tfactors.T943i + (1.0/3.0) * 1.24374e-08 * tfactors.T923i - + -9.55069e-10 + (5.0/3.0) * 6.81706e-11 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // bb92r - ln_set_rate = 6.1942 + -5.157 * tfactors.T9i + -2.8504e-09 * tfactors.T913i + 5.85721e-09 * tfactors.T913 - + -4.34052e-10 * tfactors.T9 + 3.01373e-11 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.157 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.8504e-09 * tfactors.T943i + (1.0/3.0) * 5.85721e-09 * tfactors.T923i - + -4.34052e-10 + (5.0/3.0) * 3.01373e-11 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // bb92n - ln_set_rate = 178.316 + -0.19519 * tfactors.T9i + 4.28912 * tfactors.T913i + -214.72 * tfactors.T913 - + 57.4073 * tfactors.T9 + -25.5329 * tfactors.T953 + 53.0473 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.19519 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 4.28912 * tfactors.T943i + (1.0/3.0) * -214.72 * tfactors.T923i - + 57.4073 + (5.0/3.0) * -25.5329 * tfactors.T923 + 53.0473 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // bb92r - ln_set_rate = 15.4137 + -11.26 * tfactors.T9i + -1.87598e-08 * tfactors.T913i + 3.26423e-08 * tfactors.T913 - + -2.18782e-09 * tfactors.T9 + 1.43323e-10 * tfactors.T953 + 0.6 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 11.26 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.87598e-08 * tfactors.T943i + (1.0/3.0) * 3.26423e-08 * tfactors.T923i - + -2.18782e-09 + (5.0/3.0) * 1.43323e-10 * tfactors.T923 + 0.6 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // bb92r - ln_set_rate = -5.21398 + -2.868 * tfactors.T9i + 2.62625e-09 * tfactors.T913i + -6.58921e-09 * tfactors.T913 - + 5.62244e-10 * tfactors.T9 + -4.28925e-11 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.868 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.62625e-09 * tfactors.T943i + (1.0/3.0) * -6.58921e-09 * tfactors.T923i - + 5.62244e-10 + (5.0/3.0) * -4.28925e-11 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_C12_to_He4_Be9_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // C12 + n --> He4 + Be9 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88r - ln_set_rate = 0.858256 + -67.9913 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 67.9913 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88r - ln_set_rate = -7.17852 + -67.3413 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 67.3413 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88n - ln_set_rate = 33.8051 + -66.1573 * tfactors.T9i + -23.87 * tfactors.T913i + 0.566698 * tfactors.T913 - + 44.0957 * tfactors.T9 + -314.232 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 66.1573 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -23.87 * tfactors.T943i + (1.0/3.0) * 0.566698 * tfactors.T923i - + 44.0957 + (5.0/3.0) * -314.232 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88r - ln_set_rate = 21.6373 + -78.8893 * tfactors.T9i; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 78.8893 * tfactors.T9i * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88r - ln_set_rate = 14.0851 + -70.3363 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 70.3363 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_C12_to_n_O15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // C12 + He4 --> n + O15 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88n - ln_set_rate = 17.0115 + -98.6615 * tfactors.T9i + 0.124787 * tfactors.T913 - + 0.0588937 * tfactors.T9 + -0.00679206 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 98.6615 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.124787 * tfactors.T923i - + 0.0588937 + (5.0/3.0) * -0.00679206 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_C12_to_p_N15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // C12 + He4 --> p + N15 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacrn - ln_set_rate = 27.118 + -57.6279 * tfactors.T9i + -15.253 * tfactors.T913i + 1.59318 * tfactors.T913 - + 2.4479 * tfactors.T9 + -2.19708 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 57.6279 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -15.253 * tfactors.T943i + (1.0/3.0) * 1.59318 * tfactors.T923i - + 2.4479 + (5.0/3.0) * -2.19708 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacrr - ln_set_rate = -6.93365 + -58.7917 * tfactors.T9i + 22.7105 * tfactors.T913 - + -2.90707 * tfactors.T9 + 0.205754 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 58.7917 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 22.7105 * tfactors.T923i - + -2.90707 + (5.0/3.0) * 0.205754 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacrr - ln_set_rate = 20.5388 + -65.034 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 65.034 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacrr - ln_set_rate = -5.2319 + -59.6491 * tfactors.T9i + 30.8497 * tfactors.T913 - + -8.50433 * tfactors.T9 + -1.54426 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 59.6491 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 30.8497 * tfactors.T923i - + -8.50433 + (5.0/3.0) * -1.54426 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_C12_C12_to_n_Mg23_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // C12 + C12 --> n + Mg23 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88r - ln_set_rate = -12.8056 + -30.1498 * tfactors.T9i + 11.4826 * tfactors.T913 - + 1.82849 * tfactors.T9 + -0.34844 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 30.1498 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 11.4826 * tfactors.T923i - + 1.82849 + (5.0/3.0) * -0.34844 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_C12_C12_to_p_Na23_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // C12 + C12 --> p + Na23 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88r - ln_set_rate = 60.9649 + -84.165 * tfactors.T913i + -1.4191 * tfactors.T913 - + -0.114619 * tfactors.T9 + -0.070307 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -84.165 * tfactors.T943i + (1.0/3.0) * -1.4191 * tfactors.T923i - + -0.114619 + (5.0/3.0) * -0.070307 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_C12_C12_to_He4_Ne20_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // C12 + C12 --> He4 + Ne20 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88r - ln_set_rate = 61.2863 + -84.165 * tfactors.T913i + -1.56627 * tfactors.T913 - + -0.0736084 * tfactors.T9 + -0.072797 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -84.165 * tfactors.T943i + (1.0/3.0) * -1.56627 * tfactors.T923i - + -0.0736084 + (5.0/3.0) * -0.072797 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_C13_to_n_N13_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // C13 + p --> n + N13 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacrn - ln_set_rate = 17.7625 + -34.8483 * tfactors.T9i + 1.26126 * tfactors.T913 - + -0.204952 * tfactors.T9 + 0.0310523 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 34.8483 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.26126 * tfactors.T923i - + -0.204952 + (5.0/3.0) * 0.0310523 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_C13_to_He4_B10_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // C13 + p --> He4 + B10 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // wagn - ln_set_rate = 36.7435 + -47.1362 * tfactors.T9i + -27.99 * tfactors.T913i - + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 47.1362 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -27.99 * tfactors.T943i - + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_d_C13_to_n_N14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // C13 + d --> n + N14 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // bb92n - ln_set_rate = 27.1993 + -0.00261944 * tfactors.T9i + -16.8935 * tfactors.T913i + 4.06445 * tfactors.T913 - + -1.1715 * tfactors.T9 + 0.118556 * tfactors.T953 + -1.13937 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.00261944 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -16.8935 * tfactors.T943i + (1.0/3.0) * 4.06445 * tfactors.T923i - + -1.1715 + (5.0/3.0) * 0.118556 * tfactors.T923 + -1.13937 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_C13_to_n_O16_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // C13 + He4 --> n + O16 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // gl12 - ln_set_rate = 62.5775 + -0.0277331 * tfactors.T9i + -32.3917 * tfactors.T913i + -48.934 * tfactors.T913 - + 44.1843 * tfactors.T9 + -20.8743 * tfactors.T953 + 2.02494 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0277331 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -32.3917 * tfactors.T943i + (1.0/3.0) * -48.934 * tfactors.T923i - + 44.1843 + (5.0/3.0) * -20.8743 * tfactors.T923 + 2.02494 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // gl12 - ln_set_rate = 79.3008 + -0.30489 * tfactors.T9i + 7.43132 * tfactors.T913i + -84.8689 * tfactors.T913 - + 3.65083 * tfactors.T9 + -0.148015 * tfactors.T953 + 37.6008 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.30489 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 7.43132 * tfactors.T943i + (1.0/3.0) * -84.8689 * tfactors.T923i - + 3.65083 + (5.0/3.0) * -0.148015 * tfactors.T923 + 37.6008 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_C14_to_n_N14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // C14 + p --> n + N14 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88 - ln_set_rate = 5.23589 + -7.26442 * tfactors.T9i + 12.3428 * tfactors.T913 - + -2.70025 * tfactors.T9 + 0.236625 * tfactors.T953 + 1.0 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 7.26442 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 12.3428 * tfactors.T923i - + -2.70025 + (5.0/3.0) * 0.236625 * tfactors.T923 + 1.0 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88n - ln_set_rate = 14.7608 + -7.26442 * tfactors.T9i + -4.33989 * tfactors.T913 - + 11.4311 * tfactors.T9 + -11.7764 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 7.26442 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -4.33989 * tfactors.T923i - + 11.4311 + (5.0/3.0) * -11.7764 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_C14_to_He4_B11_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // C14 + p --> He4 + B11 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // bb92r - ln_set_rate = -2.80313 + -11.965 * tfactors.T9i + 2.62625e-09 * tfactors.T913i + -6.58921e-09 * tfactors.T913 - + 5.62244e-10 * tfactors.T9 + -4.28925e-11 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 11.965 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 2.62625e-09 * tfactors.T943i + (1.0/3.0) * -6.58921e-09 * tfactors.T923i - + 5.62244e-10 + (5.0/3.0) * -4.28925e-11 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // bb92r - ln_set_rate = 7.89937 + -14.244 * tfactors.T9i + -5.81643e-09 * tfactors.T913i + 1.24374e-08 * tfactors.T913 - + -9.55069e-10 * tfactors.T9 + 6.81706e-11 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 14.244 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -5.81643e-09 * tfactors.T943i + (1.0/3.0) * 1.24374e-08 * tfactors.T923i - + -9.55069e-10 + (5.0/3.0) * 6.81706e-11 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // bb92r - ln_set_rate = 8.60505 + -14.254 * tfactors.T9i + -2.8504e-09 * tfactors.T913i + 5.85721e-09 * tfactors.T913 - + -4.34052e-10 * tfactors.T9 + 3.01373e-11 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 14.254 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -2.8504e-09 * tfactors.T943i + (1.0/3.0) * 5.85721e-09 * tfactors.T923i - + -4.34052e-10 + (5.0/3.0) * 3.01373e-11 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // bb92n - ln_set_rate = 180.727 + -9.29223 * tfactors.T9i + 4.28912 * tfactors.T913i + -214.72 * tfactors.T913 - + 57.4073 * tfactors.T9 + -25.5329 * tfactors.T953 + 53.0473 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 9.29223 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 4.28912 * tfactors.T943i + (1.0/3.0) * -214.72 * tfactors.T923i - + 57.4073 + (5.0/3.0) * -25.5329 * tfactors.T923 + 53.0473 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // bb92r - ln_set_rate = 17.8245 + -20.357 * tfactors.T9i + -1.87598e-08 * tfactors.T913i + 3.26423e-08 * tfactors.T913 - + -2.18782e-09 * tfactors.T9 + 1.43323e-10 * tfactors.T953 + 0.6 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 20.357 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.87598e-08 * tfactors.T943i + (1.0/3.0) * 3.26423e-08 * tfactors.T923i - + -2.18782e-09 + (5.0/3.0) * 1.43323e-10 * tfactors.T923 + 0.6 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_d_C14_to_n_N15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // C14 + d --> n + N15 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // bk92 - ln_set_rate = 33.5637 + -16.939 * tfactors.T913i + -4.14392 * tfactors.T913 - + 0.438623 * tfactors.T9 + -0.0354193 * tfactors.T953 + 0.333333 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -16.939 * tfactors.T943i + (1.0/3.0) * -4.14392 * tfactors.T923i - + 0.438623 + (5.0/3.0) * -0.0354193 * tfactors.T923 + 0.333333 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // bk92 - ln_set_rate = 30.6841 + -16.939 * tfactors.T913i + -0.582342 * tfactors.T913 - + -8.17066 * tfactors.T9 + 1.70865 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -16.939 * tfactors.T943i + (1.0/3.0) * -0.582342 * tfactors.T923i - + -8.17066 + (5.0/3.0) * 1.70865 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_C14_to_n_O17_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // C14 + He4 --> n + O17 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // kg91r - ln_set_rate = 18.7889 + -23.8496 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 23.8496 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // kg91r - ln_set_rate = 14.4267 + -23.0516 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 23.0516 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // kg91n - ln_set_rate = 11.0417 + -21.0906 * tfactors.T9i; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 21.0906 * tfactors.T9i * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_N13_to_p_C13_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // N13 + n --> p + C13 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacrn - ln_set_rate = 17.7625 + 1.26126 * tfactors.T913 - + -0.204952 * tfactors.T9 + 0.0310523 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 1.26126 * tfactors.T923i - + -0.204952 + (5.0/3.0) * 0.0310523 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_N13_to_He4_B10_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // N13 + n --> He4 + B10 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88n - ln_set_rate = 32.7497 + -12.2892 * tfactors.T9i + -27.8719 * tfactors.T913i + -0.599503 * tfactors.T913 - + 0.122849 * tfactors.T9 + -0.0393717 * tfactors.T953 + -0.507333 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 12.2892 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -27.8719 * tfactors.T943i + (1.0/3.0) * -0.599503 * tfactors.T923i - + 0.122849 + (5.0/3.0) * -0.0393717 * tfactors.T923 + -0.507333 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_N13_to_p_O16_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // N13 + He4 --> p + O16 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88n - ln_set_rate = 40.4644 + -35.829 * tfactors.T913i + -0.530275 * tfactors.T913 - + -0.982462 * tfactors.T9 + 0.0808059 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -35.829 * tfactors.T943i + (1.0/3.0) * -0.530275 * tfactors.T923i - + -0.982462 + (5.0/3.0) * 0.0808059 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_N14_to_p_C14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // N14 + n --> p + C14 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88 - ln_set_rate = 4.13728 + 12.3428 * tfactors.T913 - + -2.70025 * tfactors.T9 + 0.236625 * tfactors.T953 + 1.0 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 12.3428 * tfactors.T923i - + -2.70025 + (5.0/3.0) * 0.236625 * tfactors.T923 + 1.0 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88n - ln_set_rate = 13.6622 + -4.33989 * tfactors.T913 - + 11.4311 * tfactors.T9 + -11.7764 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -4.33989 * tfactors.T923i - + 11.4311 + (5.0/3.0) * -11.7764 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_N14_to_d_C13_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // N14 + n --> d + C13 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // bb92n - ln_set_rate = 28.1279 + -61.8182 * tfactors.T9i + -16.8935 * tfactors.T913i + 4.06445 * tfactors.T913 - + -1.1715 * tfactors.T9 + 0.118556 * tfactors.T953 + -1.13937 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 61.8182 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -16.8935 * tfactors.T943i + (1.0/3.0) * 4.06445 * tfactors.T923i - + -1.1715 + (5.0/3.0) * 0.118556 * tfactors.T923 + -1.13937 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_N14_to_He4_B11_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // N14 + n --> He4 + B11 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88r - ln_set_rate = 8.75648 + -7.01151 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 7.01151 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88r - ln_set_rate = 1.89445 + -4.66051 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 4.66051 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88n - ln_set_rate = 30.8848 + -1.83351 * tfactors.T9i + -28.234 * tfactors.T913i + -0.325987 * tfactors.T913 - + 30.135 * tfactors.T9 + -78.4165 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.83351 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -28.234 * tfactors.T943i + (1.0/3.0) * -0.325987 * tfactors.T923i - + 30.135 + (5.0/3.0) * -78.4165 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88r - ln_set_rate = 16.6206 + -10.4295 * tfactors.T9i - + 0.6 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 10.4295 * tfactors.T9i * tfactors.T9i - + 0.6 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_N14_to_n_O14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // N14 + p --> n + O14 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacr - ln_set_rate = 11.3432 + -68.7567 * tfactors.T9i + 5.48024 * tfactors.T913 - + -0.764072 * tfactors.T9 + 0.0587804 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 68.7567 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.48024 * tfactors.T923i - + -0.764072 + (5.0/3.0) * 0.0587804 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_N14_to_n_F17_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // N14 + He4 --> n + F17 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacr - ln_set_rate = 19.2094 + -54.9473 * tfactors.T9i + -0.712285 * tfactors.T913 - + 0.240317 * tfactors.T9 + -0.0201705 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 54.9473 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.712285 * tfactors.T923i - + 0.240317 + (5.0/3.0) * -0.0201705 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_N14_to_p_O17_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // N14 + He4 --> p + O17 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // il10r - ln_set_rate = 5.13169 + -15.9452 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 15.9452 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10r - ln_set_rate = -7.60954 + -14.5839 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 14.5839 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10n - ln_set_rate = 19.1771 + -13.8305 * tfactors.T9i + -16.9078 * tfactors.T913i - + -2.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 13.8305 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -16.9078 * tfactors.T943i - + (5.0/3.0) * -2.0 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10r - ln_set_rate = 9.77209 + -18.7891 * tfactors.T9i + 5.10182 * tfactors.T913 - + 0.379373 * tfactors.T9 + -0.0672515 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 18.7891 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.10182 * tfactors.T923i - + 0.379373 + (5.0/3.0) * -0.0672515 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_N15_to_d_C14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // N15 + n --> d + C14 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // bk92 - ln_set_rate = 34.2122 + -92.6344 * tfactors.T9i + -16.939 * tfactors.T913i + -4.14392 * tfactors.T913 - + 0.438623 * tfactors.T9 + -0.0354193 * tfactors.T953 + 0.333333 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 92.6344 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -16.939 * tfactors.T943i + (1.0/3.0) * -4.14392 * tfactors.T923i - + 0.438623 + (5.0/3.0) * -0.0354193 * tfactors.T923 + 0.333333 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // bk92 - ln_set_rate = 31.3326 + -92.6344 * tfactors.T9i + -16.939 * tfactors.T913i + -0.582342 * tfactors.T913 - + -8.17066 * tfactors.T9 + 1.70865 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 92.6344 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -16.939 * tfactors.T943i + (1.0/3.0) * -0.582342 * tfactors.T923i - + -8.17066 + (5.0/3.0) * 1.70865 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_N15_to_n_O15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // N15 + p --> n + O15 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacrn - ln_set_rate = 18.3942 + -41.0335 * tfactors.T9i + 0.331392 * tfactors.T913 - + 0.0171473 * tfactors.T9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 41.0335 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.331392 * tfactors.T923i - + 0.0171473; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_N15_to_He4_C12_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // N15 + p --> He4 + C12 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacrn - ln_set_rate = 27.4764 + -15.253 * tfactors.T913i + 1.59318 * tfactors.T913 - + 2.4479 * tfactors.T9 + -2.19708 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -15.253 * tfactors.T943i + (1.0/3.0) * 1.59318 * tfactors.T923i - + 2.4479 + (5.0/3.0) * -2.19708 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacrr - ln_set_rate = -6.57522 + -1.1638 * tfactors.T9i + 22.7105 * tfactors.T913 - + -2.90707 * tfactors.T9 + 0.205754 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.1638 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 22.7105 * tfactors.T923i - + -2.90707 + (5.0/3.0) * 0.205754 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacrr - ln_set_rate = 20.8972 + -7.406 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 7.406 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacrr - ln_set_rate = -4.87347 + -2.02117 * tfactors.T9i + 30.8497 * tfactors.T913 - + -8.50433 * tfactors.T9 + -1.54426 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.02117 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 30.8497 * tfactors.T923i - + -8.50433 + (5.0/3.0) * -1.54426 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_N15_to_n_F18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // N15 + He4 --> n + F18 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88n - ln_set_rate = 18.0938 + -74.4713 * tfactors.T9i + 1.74308 * tfactors.T913 - + -1.15123 * tfactors.T9 + 0.135196 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 74.4713 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.74308 * tfactors.T923i - + -1.15123 + (5.0/3.0) * 0.135196 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_N15_to_p_O18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // N15 + He4 --> p + O18 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // il10r - ln_set_rate = 8.46654 + -47.8616 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 47.8616 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10r - ln_set_rate = -29.7104 + -46.4444 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 46.4444 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10n - ln_set_rate = 25.1611 + -46.1986 * tfactors.T9i + -16.6979 * tfactors.T913i - + -3.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 46.1986 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -16.6979 * tfactors.T943i - + (5.0/3.0) * -3.0 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10r - ln_set_rate = 7.13756 + -51.5219 * tfactors.T9i + 11.6568 * tfactors.T913 - + -2.16303 * tfactors.T9 + 0.209965 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 51.5219 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 11.6568 * tfactors.T923i - + -2.16303 + (5.0/3.0) * 0.209965 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_O14_to_p_N14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // O14 + n --> p + N14 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacr - ln_set_rate = 12.4418 + 5.48024 * tfactors.T913 - + -0.764072 * tfactors.T9 + 0.0587804 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 5.48024 * tfactors.T923i - + -0.764072 + (5.0/3.0) * 0.0587804 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_O14_to_p_F17_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // O14 + He4 --> p + F17 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // Ha96r - ln_set_rate = 12.1289 + -12.0223 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 12.0223 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // Ha96r - ln_set_rate = 18.6518 + -26.0 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 26.0 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // Ha96n - ln_set_rate = 40.8358 + -39.388 * tfactors.T913i + -17.4673 * tfactors.T913 - + 35.3029 * tfactors.T9 + -24.8162 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.388 * tfactors.T943i + (1.0/3.0) * -17.4673 * tfactors.T923i - + 35.3029 + (5.0/3.0) * -24.8162 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // Ha96r - ln_set_rate = 16.3087 + -22.51 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 22.51 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // Ha96r - ln_set_rate = 11.1184 + -13.6 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 13.6 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // Ha96r - ln_set_rate = -106.091 + -0.453036 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.453036 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_O15_to_p_N15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // O15 + n --> p + N15 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacrn - ln_set_rate = 18.3942 + 0.331392 * tfactors.T913 - + 0.0171473 * tfactors.T9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.331392 * tfactors.T923i - + 0.0171473; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_O15_to_He4_C12_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // O15 + n --> He4 + C12 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88n - ln_set_rate = 17.3699 + 0.124787 * tfactors.T913 - + 0.0588937 * tfactors.T9 + -0.00679206 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.124787 * tfactors.T923i - + 0.0588937 + (5.0/3.0) * -0.00679206 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_O15_to_n_Ne18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // O15 + He4 --> n + Ne18 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 16.2469 + -94.0888 * tfactors.T9i + 0.377325 * tfactors.T913 - + 0.0968945 * tfactors.T9 + -0.007769 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 94.0888 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.377325 * tfactors.T923i - + 0.0968945 + (5.0/3.0) * -0.007769 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_O15_to_p_F18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // O15 + He4 --> p + F18 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // il10n - ln_set_rate = 61.2985 + -33.4459 * tfactors.T9i + -21.4023 * tfactors.T913i + -80.8891 * tfactors.T913 - + 134.6 * tfactors.T9 + -126.504 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 33.4459 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -21.4023 * tfactors.T943i + (1.0/3.0) * -80.8891 * tfactors.T923i - + 134.6 + (5.0/3.0) * -126.504 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10r - ln_set_rate = 1.04969 + -36.4627 * tfactors.T9i + 13.3223 * tfactors.T913 - + -1.36696 * tfactors.T9 + 0.0757363 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 36.4627 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 13.3223 * tfactors.T923i - + -1.36696 + (5.0/3.0) * 0.0757363 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10r - ln_set_rate = -32.4461 + -33.8223 * tfactors.T9i + 61.738 * tfactors.T913 - + -108.29 * tfactors.T9 + -34.2365 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 33.8223 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 61.738 * tfactors.T923i - + -108.29 + (5.0/3.0) * -34.2365 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_O16_to_He4_C13_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + n --> He4 + C13 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // gl12 - ln_set_rate = 64.3455 + -25.7388 * tfactors.T9i + -32.3917 * tfactors.T913i + -48.934 * tfactors.T913 - + 44.1843 * tfactors.T9 + -20.8743 * tfactors.T953 + 2.02494 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 25.7388 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -32.3917 * tfactors.T943i + (1.0/3.0) * -48.934 * tfactors.T923i - + 44.1843 + (5.0/3.0) * -20.8743 * tfactors.T923 + 2.02494 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // gl12 - ln_set_rate = 81.0688 + -26.0159 * tfactors.T9i + 7.43132 * tfactors.T913i + -84.8689 * tfactors.T913 - + 3.65083 * tfactors.T9 + -0.148015 * tfactors.T953 + 37.6008 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 26.0159 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 7.43132 * tfactors.T943i + (1.0/3.0) * -84.8689 * tfactors.T923i - + 3.65083 + (5.0/3.0) * -0.148015 * tfactors.T923 + 37.6008 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_O16_to_He4_N13_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + p --> He4 + N13 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88n - ln_set_rate = 42.2324 + -60.5523 * tfactors.T9i + -35.829 * tfactors.T913i + -0.530275 * tfactors.T913 - + -0.982462 * tfactors.T9 + 0.0808059 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 60.5523 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -35.829 * tfactors.T943i + (1.0/3.0) * -0.530275 * tfactors.T923i - + -0.982462 + (5.0/3.0) * 0.0808059 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_O16_to_n_Ne19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + He4 --> n + Ne19 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 17.2055 + -140.818 * tfactors.T9i + 1.70736 * tfactors.T913 - + -0.132579 * tfactors.T9 + 0.00454218 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 140.818 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.70736 * tfactors.T923i - + -0.132579 + (5.0/3.0) * 0.00454218 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_O16_to_p_F19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + He4 --> p + F19 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacr - ln_set_rate = 7.80363 + -96.6272 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 96.6272 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacr - ln_set_rate = -53.1397 + -94.2866 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 94.2866 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacr - ln_set_rate = 25.8562 + -94.1589 * tfactors.T9i + -18.116 * tfactors.T913i - + 1.86674 * tfactors.T9 + -7.5666 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 94.1589 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -18.116 * tfactors.T943i - + 1.86674 + (5.0/3.0) * -7.5666 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacrr - ln_set_rate = 13.9232 + -97.4449 * tfactors.T9i - + -0.21103 * tfactors.T9 + 2.87702 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 97.4449 * tfactors.T9i * tfactors.T9i - + -0.21103 + 2.87702 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacr - ln_set_rate = 14.7601 + -97.9108 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 97.9108 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_C12_O16_to_p_Al27_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + C12 --> p + Al27 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88r - ln_set_rate = 68.5253 + 0.205134 * tfactors.T9i + -119.242 * tfactors.T913i + 13.3667 * tfactors.T913 - + 0.295425 * tfactors.T9 + -0.267288 * tfactors.T953 + -9.91729 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.205134 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -119.242 * tfactors.T943i + (1.0/3.0) * 13.3667 * tfactors.T923i - + 0.295425 + (5.0/3.0) * -0.267288 * tfactors.T923 + -9.91729 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_C12_O16_to_He4_Mg24_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + C12 --> He4 + Mg24 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88r - ln_set_rate = 48.5341 + 0.37204 * tfactors.T9i + -133.413 * tfactors.T913i + 50.1572 * tfactors.T913 - + -3.15987 * tfactors.T9 + 0.0178251 * tfactors.T953 + -23.7027 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.37204 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -133.413 * tfactors.T943i + (1.0/3.0) * 50.1572 * tfactors.T923i - + -3.15987 + (5.0/3.0) * 0.0178251 * tfactors.T923 + -23.7027 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_O16_O16_to_p_P31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + O16 --> p + P31 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88r - ln_set_rate = 85.2628 + 0.223453 * tfactors.T9i + -145.844 * tfactors.T913i + 8.72612 * tfactors.T913 - + -0.554035 * tfactors.T9 + -0.137562 * tfactors.T953 + -6.88807 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.223453 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -145.844 * tfactors.T943i + (1.0/3.0) * 8.72612 * tfactors.T923i - + -0.554035 + (5.0/3.0) * -0.137562 * tfactors.T923 + -6.88807 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_O16_O16_to_He4_Si28_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // O16 + O16 --> He4 + Si28 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88r - ln_set_rate = 97.2435 + -0.268514 * tfactors.T9i + -119.324 * tfactors.T913i + -32.2497 * tfactors.T913 - + 1.46214 * tfactors.T9 + -0.200893 * tfactors.T953 + 13.2148 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.268514 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -119.324 * tfactors.T943i + (1.0/3.0) * -32.2497 * tfactors.T923i - + 1.46214 + (5.0/3.0) * -0.200893 * tfactors.T923 + 13.2148 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_O17_to_He4_C14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // O17 + n --> He4 + C14 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // kg91r - ln_set_rate = 13.73 + -1.961 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.961 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // kg91n - ln_set_rate = 10.345; - amrex::ignore_unused(tfactors); - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // kg91r - ln_set_rate = 18.0922 + -2.759 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.759 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_O17_to_n_F17_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // O17 + p --> n + F17 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // wagn - ln_set_rate = 19.0085 + -41.1187 * tfactors.T9i; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 41.1187 * tfactors.T9i * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_O17_to_He4_N14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // O17 + p --> He4 + N14 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // il10r - ln_set_rate = -7.20763 + -0.753395 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.753395 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10n - ln_set_rate = 19.579 + -16.9078 * tfactors.T913i - + -2.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -16.9078 * tfactors.T943i - + (5.0/3.0) * -2.0 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10r - ln_set_rate = 10.174 + -4.95865 * tfactors.T9i + 5.10182 * tfactors.T913 - + 0.379373 * tfactors.T9 + -0.0672515 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 4.95865 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.10182 * tfactors.T923i - + 0.379373 + (5.0/3.0) * -0.0672515 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10r - ln_set_rate = 5.5336 + -2.11477 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.11477 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_O17_to_n_Ne20_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // O17 + He4 --> n + Ne20 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacrr - ln_set_rate = 1.80342 + -13.8 * tfactors.T9i + 12.6501 * tfactors.T913 - + -1.10938 * tfactors.T9 + 0.0696232 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 13.8 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 12.6501 * tfactors.T923i - + -1.10938 + (5.0/3.0) * 0.0696232 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacrr - ln_set_rate = 7.45588 + -8.55 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 8.55 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacrn - ln_set_rate = 40.621 + -39.918 * tfactors.T913i - + 0.227017 * tfactors.T9 + -0.900234 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.918 * tfactors.T943i - + 0.227017 + (5.0/3.0) * -0.900234 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_O18_to_n_F18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // O18 + p --> n + F18 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // wagn - ln_set_rate = 20.1071 + -28.2841 * tfactors.T9i; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 28.2841 * tfactors.T9i * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_O18_to_He4_N15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // O18 + p --> He4 + N15 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // il10r - ln_set_rate = -27.9044 + -0.245884 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.245884 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10n - ln_set_rate = 26.9671 + -16.6979 * tfactors.T913i - + -3.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -16.6979 * tfactors.T943i - + (5.0/3.0) * -3.0 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10r - ln_set_rate = 8.94352 + -5.32335 * tfactors.T9i + 11.6568 * tfactors.T913 - + -2.16303 * tfactors.T9 + 0.209965 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.32335 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 11.6568 * tfactors.T923i - + -2.16303 + (5.0/3.0) * 0.209965 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10r - ln_set_rate = 10.2725 + -1.663 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.663 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_O18_to_n_Ne21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // O18 + He4 --> n + Ne21 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacr - ln_set_rate = 2.51575 + -8.41969 * tfactors.T9i + 6.51299 * tfactors.T913 - + -0.334277 * tfactors.T9 + 2.0 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 8.41969 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 6.51299 * tfactors.T923i - + -0.334277 + 2.0 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacr - ln_set_rate = 1.3415 + -15.444 * tfactors.T9i + 11.656 * tfactors.T913 - + -1.24869 * tfactors.T9 + 1.0 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 15.444 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 11.656 * tfactors.T923i - + -1.24869 + 1.0 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacrn - ln_set_rate = 2.82796 + -8.085 * tfactors.T9i; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 8.085 * tfactors.T9i * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_F17_to_p_O17_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // F17 + n --> p + O17 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // wagn - ln_set_rate = 19.0085; - amrex::ignore_unused(tfactors); - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_F17_to_He4_N14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // F17 + n --> He4 + N14 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacr - ln_set_rate = 19.6113 + -0.712285 * tfactors.T913 - + 0.240317 * tfactors.T9 + -0.0201705 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.712285 * tfactors.T923i - + 0.240317 + (5.0/3.0) * -0.0201705 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_F17_to_He4_O14_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // F17 + p --> He4 + O14 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // Ha96r - ln_set_rate = 10.4217 + -27.4326 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 27.4326 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // Ha96r - ln_set_rate = -106.788 + -14.2856 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 14.2856 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // Ha96r - ln_set_rate = 11.4322 + -25.8549 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 25.8549 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // Ha96r - ln_set_rate = 17.9551 + -39.8326 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 39.8326 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // Ha96n - ln_set_rate = 40.1391 + -13.8326 * tfactors.T9i + -39.388 * tfactors.T913i + -17.4673 * tfactors.T913 - + 35.3029 * tfactors.T9 + -24.8162 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 13.8326 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.388 * tfactors.T943i + (1.0/3.0) * -17.4673 * tfactors.T923i - + 35.3029 + (5.0/3.0) * -24.8162 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // Ha96r - ln_set_rate = 15.612 + -36.3426 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 36.3426 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_F17_to_p_Ne20_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // F17 + He4 --> p + Ne20 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacr - ln_set_rate = 38.6287 + -43.18 * tfactors.T913i + 4.46827 * tfactors.T913 - + -1.63915 * tfactors.T9 + 0.123483 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -43.18 * tfactors.T943i + (1.0/3.0) * 4.46827 * tfactors.T923i - + -1.63915 + (5.0/3.0) * 0.123483 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_F18_to_p_O18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // F18 + n --> p + O18 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // wagn - ln_set_rate = 19.0085; - amrex::ignore_unused(tfactors); - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_F18_to_He4_N15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // F18 + n --> He4 + N15 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88n - ln_set_rate = 18.8011 + 1.74308 * tfactors.T913 - + -1.15123 * tfactors.T9 + 0.135196 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 1.74308 * tfactors.T923i - + -1.15123 + (5.0/3.0) * 0.135196 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_F18_to_n_Ne18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // F18 + p --> n + Ne18 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 17.4443 + -60.6429 * tfactors.T9i + 0.590026 * tfactors.T913 - + 0.0742242 * tfactors.T9 + -0.0116856 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 60.6429 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.590026 * tfactors.T923i - + 0.0742242 + (5.0/3.0) * -0.0116856 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_F18_to_He4_O15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // F18 + p --> He4 + O15 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // il10r - ln_set_rate = 1.75704 + -3.01675 * tfactors.T9i + 13.3223 * tfactors.T913 - + -1.36696 * tfactors.T9 + 0.0757363 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.01675 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 13.3223 * tfactors.T923i - + -1.36696 + (5.0/3.0) * 0.0757363 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10r - ln_set_rate = -31.7388 + -0.376432 * tfactors.T9i + 61.738 * tfactors.T913 - + -108.29 * tfactors.T9 + -34.2365 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.376432 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 61.738 * tfactors.T923i - + -108.29 + (5.0/3.0) * -34.2365 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10n - ln_set_rate = 62.0058 + -21.4023 * tfactors.T913i + -80.8891 * tfactors.T913 - + 134.6 * tfactors.T9 + -126.504 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -21.4023 * tfactors.T943i + (1.0/3.0) * -80.8891 * tfactors.T923i - + 134.6 + (5.0/3.0) * -126.504 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_F18_to_n_Na21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // F18 + He4 --> n + Na21 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 14.8808 + -30.0387 * tfactors.T9i + 1.06229 * tfactors.T913 - + 0.212448 * tfactors.T9 + -0.020685 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 30.0387 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.06229 * tfactors.T923i - + 0.212448 + (5.0/3.0) * -0.020685 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_F18_to_p_Ne21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // F18 + He4 --> p + Ne21 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rpsmr - ln_set_rate = 49.7863 + -1.84559 * tfactors.T9i + 21.4461 * tfactors.T913i + -73.252 * tfactors.T913 - + 2.42329 * tfactors.T9 + -0.077278 * tfactors.T953 + 40.7604 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.84559 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 21.4461 * tfactors.T943i + (1.0/3.0) * -73.252 * tfactors.T923i - + 2.42329 + (5.0/3.0) * -0.077278 * tfactors.T923 + 40.7604 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_F19_to_n_Ne19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // F19 + p --> n + Ne19 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacr - ln_set_rate = 15.6732 + -46.6617 * tfactors.T9i + 4.34441 * tfactors.T913 - + -1.71268 * tfactors.T9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 46.6617 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 4.34441 * tfactors.T923i - + -1.71268; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacr - ln_set_rate = 20.353 + -46.6617 * tfactors.T9i + -1.58171 * tfactors.T913 - + 0.0324472 * tfactors.T9 + 1.0 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 46.6617 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.58171 * tfactors.T923i - + 0.0324472 + 1.0 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_F19_to_He4_O16_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // F19 + p --> He4 + O16 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacr - ln_set_rate = -52.7043 + -0.12765 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.12765 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacr - ln_set_rate = 26.2916 + -18.116 * tfactors.T913i - + 1.86674 * tfactors.T9 + -7.5666 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -18.116 * tfactors.T943i - + 1.86674 + (5.0/3.0) * -7.5666 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacrr - ln_set_rate = 14.3586 + -3.286 * tfactors.T9i - + -0.21103 * tfactors.T9 + 2.87702 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.286 * tfactors.T9i * tfactors.T9i - + -0.21103 + 2.87702 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacr - ln_set_rate = 15.1955 + -3.75185 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.75185 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacr - ln_set_rate = 8.239 + -2.46828 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.46828 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_F19_to_n_Na22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // F19 + He4 --> n + Na22 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88 - ln_set_rate = 6.67675 + -22.6172 * tfactors.T9i + 6.22036 * tfactors.T913 - + -0.0209891 * tfactors.T9 + -0.0689843 * tfactors.T953 + 1.0 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 22.6172 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 6.22036 * tfactors.T923i - + -0.0209891 + (5.0/3.0) * -0.0689843 * tfactors.T923 + 1.0 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88n - ln_set_rate = 15.0925 + -22.6172 * tfactors.T9i + -0.0532251 * tfactors.T913 - + 1.00044 * tfactors.T9 + -0.13238 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 22.6172 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.0532251 * tfactors.T923i - + 1.00044 + (5.0/3.0) * -0.13238 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_F19_to_p_Ne22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // F19 + He4 --> p + Ne22 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // da18r - ln_set_rate = 52.9317 + -2.8444 * tfactors.T9i + -38.7722 * tfactors.T913i + -13.3654 * tfactors.T913 - + 0.863648 * tfactors.T9 + -0.0451491 * tfactors.T953 + 1.33333 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.8444 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -38.7722 * tfactors.T943i + (1.0/3.0) * -13.3654 * tfactors.T923i - + 0.863648 + (5.0/3.0) * -0.0451491 * tfactors.T923 + 1.33333 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // da18r - ln_set_rate = 51.6709 + -45.7808 * tfactors.T9i + -34.5008 * tfactors.T913i + 56.9316 * tfactors.T913 - + 2.09613 * tfactors.T9 + -32.496 * tfactors.T953 + 0.333333 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 45.7808 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -34.5008 * tfactors.T943i + (1.0/3.0) * 56.9316 * tfactors.T923i - + 2.09613 + (5.0/3.0) * -32.496 * tfactors.T923 + 0.333333 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // da18r - ln_set_rate = 29430.6 + -133.026 * tfactors.T9i + 12625.1 * tfactors.T913i + -49107.1 * tfactors.T913 - + 9227.53 * tfactors.T9 + -2086.65 * tfactors.T953 + 14520.2 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 133.026 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 12625.1 * tfactors.T943i + (1.0/3.0) * -49107.1 * tfactors.T923i - + 9227.53 + (5.0/3.0) * -2086.65 * tfactors.T923 + 14520.2 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ne18_to_p_F18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ne18 + n --> p + F18 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 18.5429 + 0.590026 * tfactors.T913 - + 0.0742242 * tfactors.T9 + -0.0116856 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.590026 * tfactors.T923i - + 0.0742242 + (5.0/3.0) * -0.0116856 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ne18_to_He4_O15_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ne18 + n --> He4 + O15 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 18.0529 + 0.377325 * tfactors.T913 - + 0.0968945 * tfactors.T9 + -0.007769 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.377325 * tfactors.T923i - + 0.0968945 + (5.0/3.0) * -0.007769 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ne18_to_p_Na21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ne18 + He4 --> p + Na21 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // mo14r - ln_set_rate = -23.5811 + -5.76874 * tfactors.T9i + 8.5632e-08 * tfactors.T913i + 24.8579 * tfactors.T913 - + 0.0823845 * tfactors.T9 + -0.365374 * tfactors.T953 + -2.21415e-06 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.76874 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 8.5632e-08 * tfactors.T943i + (1.0/3.0) * 24.8579 * tfactors.T923i - + 0.0823845 + (5.0/3.0) * -0.365374 * tfactors.T923 + -2.21415e-06 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // mo14r - ln_set_rate = -22.4389 + -10.2598 * tfactors.T9i + 4.73034e-07 * tfactors.T913i + 36.29 * tfactors.T913 - + -6.56565 * tfactors.T9 + -2.96287e-06 * tfactors.T953 + -9.00373e-07 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 10.2598 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 4.73034e-07 * tfactors.T943i + (1.0/3.0) * 36.29 * tfactors.T923i - + -6.56565 + (5.0/3.0) * -2.96287e-06 * tfactors.T923 + -9.00373e-07 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // mo14r - ln_set_rate = -37.3979 + -3.8681 * tfactors.T9i + 7.09521e-06 * tfactors.T913i + 34.1789 * tfactors.T913 - + -1.72974 * tfactors.T9 + -0.0395081 * tfactors.T953 + -7.82759e-07 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.8681 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 7.09521e-06 * tfactors.T943i + (1.0/3.0) * 34.1789 * tfactors.T923i - + -1.72974 + (5.0/3.0) * -0.0395081 * tfactors.T923 + -7.82759e-07 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ne19_to_p_F19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ne19 + n --> p + F19 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacr - ln_set_rate = 15.6732 + 4.34441 * tfactors.T913 - + -1.71268 * tfactors.T9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 4.34441 * tfactors.T923i - + -1.71268; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacr - ln_set_rate = 20.353 + -1.58171 * tfactors.T913 - + 0.0324472 * tfactors.T9 + 1.0 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.58171 * tfactors.T923i - + 0.0324472 + 1.0 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ne19_to_He4_O16_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ne19 + n --> He4 + O16 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 17.6409 + 1.70736 * tfactors.T913 - + -0.132579 * tfactors.T9 + 0.00454218 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 1.70736 * tfactors.T923i - + -0.132579 + (5.0/3.0) * 0.00454218 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ne19_to_p_Na22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ne19 + He4 --> p + Na22 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 43.1874 + -46.6346 * tfactors.T913i + 0.866532 * tfactors.T913 - + -0.893541 * tfactors.T9 + 0.0747971 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -46.6346 * tfactors.T943i + (1.0/3.0) * 0.866532 * tfactors.T923i - + -0.893541 + (5.0/3.0) * 0.0747971 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ne20_to_He4_O17_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ne20 + n --> He4 + O17 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacrr - ln_set_rate = 4.7377 + -20.6002 * tfactors.T9i + 12.6501 * tfactors.T913 - + -1.10938 * tfactors.T9 + 0.0696232 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 20.6002 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 12.6501 * tfactors.T923i - + -1.10938 + (5.0/3.0) * 0.0696232 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacrr - ln_set_rate = 10.3902 + -15.3502 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 15.3502 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacrn - ln_set_rate = 43.5553 + -6.80024 * tfactors.T9i + -39.918 * tfactors.T913i - + 0.227017 * tfactors.T9 + -0.900234 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 6.80024 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.918 * tfactors.T943i - + 0.227017 + (5.0/3.0) * -0.900234 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ne20_to_He4_F17_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ne20 + p --> He4 + F17 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacr - ln_set_rate = 41.563 + -47.9266 * tfactors.T9i + -43.18 * tfactors.T913i + 4.46827 * tfactors.T913 - + -1.63915 * tfactors.T9 + 0.123483 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 47.9266 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -43.18 * tfactors.T943i + (1.0/3.0) * 4.46827 * tfactors.T923i - + -1.63915 + (5.0/3.0) * 0.123483 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_n_Mg23_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ne20 + He4 --> n + Mg23 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 17.9544 + -83.7215 * tfactors.T9i + 1.83199 * tfactors.T913 - + -0.290485 * tfactors.T9 + 0.0242929 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 83.7215 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.83199 * tfactors.T923i - + -0.290485 + (5.0/3.0) * 0.0242929 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_p_Na23_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ne20 + He4 --> p + Na23 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // il10r - ln_set_rate = -6.37772 + -29.8896 * tfactors.T9i + 19.7297 * tfactors.T913 - + -2.20987 * tfactors.T9 + 0.153374 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 29.8896 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 19.7297 * tfactors.T923i - + -2.20987 + (5.0/3.0) * 0.153374 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10r - ln_set_rate = 0.227472 + -29.4348 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 29.4348 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10n - ln_set_rate = 19.1852 + -27.5738 * tfactors.T9i + -20.0024 * tfactors.T913i + 11.5988 * tfactors.T913 - + -1.37398 * tfactors.T9 + -1.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 27.5738 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -20.0024 * tfactors.T943i + (1.0/3.0) * 11.5988 * tfactors.T923i - + -1.37398 + (5.0/3.0) * -1.0 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ne20_to_C12_C12_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ne20 + He4 --> C12 + C12 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88r - ln_set_rate = 61.4748 + -53.6267 * tfactors.T9i + -84.165 * tfactors.T913i + -1.56627 * tfactors.T913 - + -0.0736084 * tfactors.T9 + -0.072797 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 53.6267 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.165 * tfactors.T943i + (1.0/3.0) * -1.56627 * tfactors.T923i - + -0.0736084 + (5.0/3.0) * -0.072797 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_C12_Ne20_to_p_P31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ne20 + C12 --> p + P31 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rolfr - ln_set_rate = -268.136 + -38.7624 * tfactors.T9i + 361.154 * tfactors.T913i + -92.643 * tfactors.T913 - + -9.98738 * tfactors.T9 + 0.892737 * tfactors.T953 + 161.042 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 38.7624 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 361.154 * tfactors.T943i + (1.0/3.0) * -92.643 * tfactors.T923i - + -9.98738 + (5.0/3.0) * 0.892737 * tfactors.T923 + 161.042 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_C12_Ne20_to_He4_Si28_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ne20 + C12 --> He4 + Si28 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rolfr - ln_set_rate = -308.905 + -47.2175 * tfactors.T9i + 514.197 * tfactors.T913i + -200.896 * tfactors.T913 - + -6.42713 * tfactors.T9 + 0.758256 * tfactors.T953 + 236.359 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 47.2175 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 514.197 * tfactors.T943i + (1.0/3.0) * -200.896 * tfactors.T923i - + -6.42713 + (5.0/3.0) * 0.758256 * tfactors.T923 + 236.359 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ne21_to_He4_O18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ne21 + n --> He4 + O18 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacr - ln_set_rate = 1.11027 + -7.35566 * tfactors.T9i + 11.656 * tfactors.T913 - + -1.24869 * tfactors.T9 + 1.0 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 7.35566 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 11.656 * tfactors.T923i - + -1.24869 + 1.0 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacrn - ln_set_rate = 2.59673 + 0.0033365 * tfactors.T9i; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.0033365 * tfactors.T9i * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacr - ln_set_rate = 2.28452 + -0.331353 * tfactors.T9i + 6.51299 * tfactors.T913 - + -0.334277 * tfactors.T9 + 2.0 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.331353 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 6.51299 * tfactors.T923i - + -0.334277 + 2.0 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ne21_to_n_Na21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ne21 + p --> n + Na21 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 17.9167 + -50.247 * tfactors.T9i + 2.17917 * tfactors.T913 - + -0.303135 * tfactors.T9 + 0.019321 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 50.247 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.17917 * tfactors.T923i - + -0.303135 + (5.0/3.0) * 0.019321 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ne21_to_He4_F18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ne21 + p --> He4 + F18 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rpsmr - ln_set_rate = 50.6536 + -22.049 * tfactors.T9i + 21.4461 * tfactors.T913i + -73.252 * tfactors.T913 - + 2.42329 * tfactors.T9 + -0.077278 * tfactors.T953 + 40.7604 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 22.049 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 21.4461 * tfactors.T943i + (1.0/3.0) * -73.252 * tfactors.T923i - + 2.42329 + (5.0/3.0) * -0.077278 * tfactors.T923 + 40.7604 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ne21_to_n_Mg24_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ne21 + He4 --> n + Mg24 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacrr - ln_set_rate = -7.26831 + -13.2638 * tfactors.T9i + 18.0748 * tfactors.T913 - + -0.981883 * tfactors.T9 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 13.2638 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 18.0748 * tfactors.T923i - + -0.981883 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacrn - ln_set_rate = 43.9762 + -46.88 * tfactors.T913i + -0.536629 * tfactors.T913 - + 0.144715 * tfactors.T9 + -0.197624 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -46.88 * tfactors.T943i + (1.0/3.0) * -0.536629 * tfactors.T923i - + 0.144715 + (5.0/3.0) * -0.197624 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ne22_to_n_Na22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ne22 + p --> n + Na22 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88n - ln_set_rate = 21.5948 + -42.0547 * tfactors.T9i + -0.0514777 * tfactors.T913 - + 0.0274055 * tfactors.T9 + -0.00690277 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 42.0547 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.0514777 * tfactors.T923i - + 0.0274055 + (5.0/3.0) * -0.00690277 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ne22_to_He4_F19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ne22 + p --> He4 + F19 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // da18r - ln_set_rate = 53.5304 + -65.1991 * tfactors.T9i + -34.5008 * tfactors.T913i + 56.9316 * tfactors.T913 - + 2.09613 * tfactors.T9 + -32.496 * tfactors.T953 + 0.333333 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 65.1991 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -34.5008 * tfactors.T943i + (1.0/3.0) * 56.9316 * tfactors.T923i - + 2.09613 + (5.0/3.0) * -32.496 * tfactors.T923 + 0.333333 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // da18r - ln_set_rate = 29432.5 + -152.444 * tfactors.T9i + 12625.1 * tfactors.T913i + -49107.1 * tfactors.T913 - + 9227.53 * tfactors.T9 + -2086.65 * tfactors.T953 + 14520.2 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 152.444 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 12625.1 * tfactors.T943i + (1.0/3.0) * -49107.1 * tfactors.T923i - + 9227.53 + (5.0/3.0) * -2086.65 * tfactors.T923 + 14520.2 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // da18r - ln_set_rate = 54.7912 + -22.2627 * tfactors.T9i + -38.7722 * tfactors.T913i + -13.3654 * tfactors.T913 - + 0.863648 * tfactors.T9 + -0.0451491 * tfactors.T953 + 1.33333 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 22.2627 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -38.7722 * tfactors.T943i + (1.0/3.0) * -13.3654 * tfactors.T923i - + 0.863648 + (5.0/3.0) * -0.0451491 * tfactors.T923 + 1.33333 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ne22_to_n_Mg25_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ne22 + He4 --> n + Mg25 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // li12r - ln_set_rate = -27.5027 + -7.38607 * tfactors.T9i + 35.987 * tfactors.T913 - + -4.12183 * tfactors.T9 + 0.263326 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 7.38607 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 35.987 * tfactors.T923i - + -4.12183 + (5.0/3.0) * 0.263326 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // li12n - ln_set_rate = -10.4729 + -5.55032 * tfactors.T9i + 15.4898 * tfactors.T913 - + -30.8154 * tfactors.T9 + -3.0 * tfactors.T953 + 2.0 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.55032 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 15.4898 * tfactors.T923i - + -30.8154 + (5.0/3.0) * -3.0 * tfactors.T923 + 2.0 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // li12n - ln_set_rate = -52.326 + -5.55032 * tfactors.T9i + 88.2725 * tfactors.T913 - + -40.1578 * tfactors.T9 + -3.0 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.55032 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 88.2725 * tfactors.T923i - + -40.1578 + (5.0/3.0) * -3.0 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Na21_to_p_Ne21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Na21 + n --> p + Ne21 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 17.9167 + 2.17917 * tfactors.T913 - + -0.303135 * tfactors.T9 + 0.019321 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 2.17917 * tfactors.T923i - + -0.303135 + (5.0/3.0) * 0.019321 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Na21_to_He4_F18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Na21 + n --> He4 + F18 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 15.7482 + 1.06229 * tfactors.T913 - + 0.212448 * tfactors.T9 + -0.020685 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 1.06229 * tfactors.T923i - + 0.212448 + (5.0/3.0) * -0.020685 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Na21_to_He4_Ne18_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Na21 + p --> He4 + Ne18 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // mo14r - ln_set_rate = -23.8123 + -36.3851 * tfactors.T9i + 8.5632e-08 * tfactors.T913i + 24.8579 * tfactors.T913 - + 0.0823845 * tfactors.T9 + -0.365374 * tfactors.T953 + -2.21415e-06 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 36.3851 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 8.5632e-08 * tfactors.T943i + (1.0/3.0) * 24.8579 * tfactors.T923i - + 0.0823845 + (5.0/3.0) * -0.365374 * tfactors.T923 + -2.21415e-06 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // mo14r - ln_set_rate = -22.6701 + -40.8761 * tfactors.T9i + 4.73034e-07 * tfactors.T913i + 36.29 * tfactors.T913 - + -6.56565 * tfactors.T9 + -2.96287e-06 * tfactors.T953 + -9.00373e-07 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 40.8761 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 4.73034e-07 * tfactors.T943i + (1.0/3.0) * 36.29 * tfactors.T923i - + -6.56565 + (5.0/3.0) * -2.96287e-06 * tfactors.T923 + -9.00373e-07 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // mo14r - ln_set_rate = -37.6291 + -34.4844 * tfactors.T9i + 7.09521e-06 * tfactors.T913i + 34.1789 * tfactors.T913 - + -1.72974 * tfactors.T9 + -0.0395081 * tfactors.T953 + -7.82759e-07 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 34.4844 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 7.09521e-06 * tfactors.T943i + (1.0/3.0) * 34.1789 * tfactors.T923i - + -1.72974 + (5.0/3.0) * -0.0395081 * tfactors.T923 + -7.82759e-07 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Na21_to_p_Mg24_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Na21 + He4 --> p + Mg24 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacr - ln_set_rate = 39.8144 + -49.9621 * tfactors.T913i + 5.90498 * tfactors.T913 - + -1.6598 * tfactors.T9 + 0.117817 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -49.9621 * tfactors.T943i + (1.0/3.0) * 5.90498 * tfactors.T923i - + -1.6598 + (5.0/3.0) * 0.117817 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Na22_to_p_Ne22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Na22 + n --> p + Ne22 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88n - ln_set_rate = 19.6489 + -0.0514777 * tfactors.T913 - + 0.0274055 * tfactors.T9 + -0.00690277 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.0514777 * tfactors.T923i - + 0.0274055 + (5.0/3.0) * -0.00690277 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Na22_to_He4_F19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Na22 + n --> He4 + F19 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88 - ln_set_rate = 6.59038 + 6.22036 * tfactors.T913 - + -0.0209891 * tfactors.T9 + -0.0689843 * tfactors.T953 + 1.0 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 6.22036 * tfactors.T923i - + -0.0209891 + (5.0/3.0) * -0.0689843 * tfactors.T923 + 1.0 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88n - ln_set_rate = 15.0061 + -0.0532251 * tfactors.T913 - + 1.00044 * tfactors.T9 + -0.13238 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.0532251 * tfactors.T923i - + 1.00044 + (5.0/3.0) * -0.13238 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Na22_to_He4_Ne19_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Na22 + p --> He4 + Ne19 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 43.101 + -24.0192 * tfactors.T9i + -46.6346 * tfactors.T913i + 0.866532 * tfactors.T913 - + -0.893541 * tfactors.T9 + 0.0747971 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 24.0192 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -46.6346 * tfactors.T943i + (1.0/3.0) * 0.866532 * tfactors.T923i - + -0.893541 + (5.0/3.0) * 0.0747971 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Na22_to_n_Al25_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Na22 + He4 --> n + Al25 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 7.59058 + -22.1956 * tfactors.T9i + 2.92382 * tfactors.T913 - + 0.706669 * tfactors.T9 + -0.0950292 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 22.1956 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.92382 * tfactors.T923i - + 0.706669 + (5.0/3.0) * -0.0950292 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Na22_to_p_Mg25_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Na22 + He4 --> p + Mg25 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 44.973 + -50.0924 * tfactors.T913i + 0.807739 * tfactors.T913 - + -0.956029 * tfactors.T9 + 0.0793321 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -50.0924 * tfactors.T943i + (1.0/3.0) * 0.807739 * tfactors.T923i - + -0.956029 + (5.0/3.0) * 0.0793321 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Na23_to_n_Mg23_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Na23 + p --> n + Mg23 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacr - ln_set_rate = 19.4638 + -56.1542 * tfactors.T9i + 0.993488 * tfactors.T913 - + -0.257094 * tfactors.T9 + 0.0284334 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 56.1542 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.993488 * tfactors.T923i - + -0.257094 + (5.0/3.0) * 0.0284334 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Na23_to_He4_Ne20_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Na23 + p --> He4 + Ne20 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // il10r - ln_set_rate = -6.58736 + -2.31577 * tfactors.T9i + 19.7297 * tfactors.T913 - + -2.20987 * tfactors.T9 + 0.153374 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.31577 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 19.7297 * tfactors.T923i - + -2.20987 + (5.0/3.0) * 0.153374 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10r - ln_set_rate = 0.0178295 + -1.86103 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.86103 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10n - ln_set_rate = 18.9756 + -20.0024 * tfactors.T913i + 11.5988 * tfactors.T913 - + -1.37398 * tfactors.T9 + -1.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -20.0024 * tfactors.T943i + (1.0/3.0) * 11.5988 * tfactors.T923i - + -1.37398 + (5.0/3.0) * -1.0 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Na23_to_C12_C12_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Na23 + p --> C12 + C12 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88r - ln_set_rate = 60.9438 + -26.0184 * tfactors.T9i + -84.165 * tfactors.T913i + -1.4191 * tfactors.T913 - + -0.114619 * tfactors.T9 + -0.070307 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 26.0184 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.165 * tfactors.T943i + (1.0/3.0) * -1.4191 * tfactors.T923i - + -0.114619 + (5.0/3.0) * -0.070307 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Na23_to_n_Al26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Na23 + He4 --> n + Al26 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ol11r - ln_set_rate = 14.5219 + -34.8285 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 34.8285 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // ol11r - ln_set_rate = 13.4292 + -34.4845 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 34.4845 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // ol11n - ln_set_rate = 11.4506 + -34.4184 * tfactors.T9i + 5.07134 * tfactors.T913 - + -0.557537 * tfactors.T9 + 0.0451737 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 34.4184 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.07134 * tfactors.T923i - + -0.557537 + (5.0/3.0) * 0.0451737 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Na23_to_p_Mg26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Na23 + He4 --> p + Mg26 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 44.527 + -50.2042 * tfactors.T913i + 1.76141 * tfactors.T913 - + -1.36813 * tfactors.T9 + 0.123087 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -50.2042 * tfactors.T943i + (1.0/3.0) * 1.76141 * tfactors.T923i - + -1.36813 + (5.0/3.0) * 0.123087 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Mg23_to_p_Na23_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mg23 + n --> p + Na23 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacr - ln_set_rate = 19.4638 + 0.993488 * tfactors.T913 - + -0.257094 * tfactors.T9 + 0.0284334 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.993488 * tfactors.T923i - + -0.257094 + (5.0/3.0) * 0.0284334 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Mg23_to_He4_Ne20_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mg23 + n --> He4 + Ne20 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 17.7448 + 1.83199 * tfactors.T913 - + -0.290485 * tfactors.T9 + 0.0242929 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 1.83199 * tfactors.T923i - + -0.290485 + (5.0/3.0) * 0.0242929 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Mg23_to_C12_C12_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mg23 + n --> C12 + C12 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88r - ln_set_rate = -12.8267 + 11.4826 * tfactors.T913 - + 1.82849 * tfactors.T9 + -0.34844 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 11.4826 * tfactors.T923i - + 1.82849 + (5.0/3.0) * -0.34844 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mg23_to_p_Al26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mg23 + He4 --> p + Al26 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 46.215 + -53.203 * tfactors.T913i + 0.71292 * tfactors.T913 - + -0.892548 * tfactors.T9 + 0.0709813 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -53.203 * tfactors.T943i + (1.0/3.0) * 0.71292 * tfactors.T923i - + -0.892548 + (5.0/3.0) * 0.0709813 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Mg24_to_He4_Ne21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mg24 + n --> He4 + Ne21 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacrr - ln_set_rate = -4.69602 + -42.9133 * tfactors.T9i + 18.0748 * tfactors.T913 - + -0.981883 * tfactors.T9 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 42.9133 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 18.0748 * tfactors.T923i - + -0.981883 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacrn - ln_set_rate = 46.5485 + -29.6495 * tfactors.T9i + -46.88 * tfactors.T913i + -0.536629 * tfactors.T913 - + 0.144715 * tfactors.T9 + -0.197624 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 29.6495 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -46.88 * tfactors.T943i + (1.0/3.0) * -0.536629 * tfactors.T923i - + 0.144715 + (5.0/3.0) * -0.197624 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Mg24_to_He4_Na21_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mg24 + p --> He4 + Na21 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacr - ln_set_rate = 42.3867 + -79.897 * tfactors.T9i + -49.9621 * tfactors.T913i + 5.90498 * tfactors.T913 - + -1.6598 * tfactors.T9 + 0.117817 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 79.897 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -49.9621 * tfactors.T943i + (1.0/3.0) * 5.90498 * tfactors.T923i - + -1.6598 + (5.0/3.0) * 0.117817 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_p_Al27_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mg24 + He4 --> p + Al27 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // il10r - ln_set_rate = -26.2862 + -19.5422 * tfactors.T9i + 5.18642 * tfactors.T913i + -34.7936 * tfactors.T913 - + 168.225 * tfactors.T9 + -115.825 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 19.5422 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 5.18642 * tfactors.T943i + (1.0/3.0) * -34.7936 * tfactors.T923i - + 168.225 + (5.0/3.0) * -115.825 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10r - ln_set_rate = -6.44575 + -22.8216 * tfactors.T9i + 18.0416 * tfactors.T913 - + -1.54137 * tfactors.T9 + 0.0847506 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 22.8216 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 18.0416 * tfactors.T923i - + -1.54137 + (5.0/3.0) * 0.0847506 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10n - ln_set_rate = 30.0397 + -18.5791 * tfactors.T9i + -26.4162 * tfactors.T913i - + -2.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 18.5791 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -26.4162 * tfactors.T943i - + (5.0/3.0) * -2.0 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mg24_to_C12_O16_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mg24 + He4 --> C12 + O16 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88r - ln_set_rate = 49.5738 + -78.202 * tfactors.T9i + -133.413 * tfactors.T913i + 50.1572 * tfactors.T913 - + -3.15987 * tfactors.T9 + 0.0178251 * tfactors.T953 + -23.7027 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 78.202 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -133.413 * tfactors.T943i + (1.0/3.0) * 50.1572 * tfactors.T923i - + -3.15987 + (5.0/3.0) * 0.0178251 * tfactors.T923 + -23.7027 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Mg25_to_He4_Ne22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mg25 + n --> He4 + Ne22 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // li12n - ln_set_rate = -11.0701 + 15.4898 * tfactors.T913 - + -30.8154 * tfactors.T9 + -3.0 * tfactors.T953 + 2.0 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 15.4898 * tfactors.T923i - + -30.8154 + (5.0/3.0) * -3.0 * tfactors.T923 + 2.0 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // li12n - ln_set_rate = -52.9232 + 88.2725 * tfactors.T913 - + -40.1578 * tfactors.T9 + -3.0 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 88.2725 * tfactors.T923i - + -40.1578 + (5.0/3.0) * -3.0 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // li12r - ln_set_rate = -28.0999 + -1.83575 * tfactors.T9i + 35.987 * tfactors.T913 - + -4.12183 * tfactors.T9 + 0.263326 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.83575 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 35.987 * tfactors.T923i - + -4.12183 + (5.0/3.0) * 0.263326 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Mg25_to_n_Al25_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mg25 + p --> n + Al25 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 18.4104 + -58.7072 * tfactors.T9i + 2.28536 * tfactors.T913 - + -0.38512 * tfactors.T9 + 0.0288056 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 58.7072 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.28536 * tfactors.T923i - + -0.38512 + (5.0/3.0) * 0.0288056 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Mg25_to_He4_Na22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mg25 + p --> He4 + Na22 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 46.3217 + -36.5117 * tfactors.T9i + -50.0924 * tfactors.T913i + 0.807739 * tfactors.T913 - + -0.956029 * tfactors.T9 + 0.0793321 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 36.5117 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -50.0924 * tfactors.T943i + (1.0/3.0) * 0.807739 * tfactors.T923i - + -0.956029 + (5.0/3.0) * 0.0793321 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mg25_to_n_Si28_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mg25 + He4 --> n + Si28 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacrn - ln_set_rate = 45.7613 + -53.415 * tfactors.T913i + -1.46489 * tfactors.T913 - + 1.7777 * tfactors.T9 + -0.903499 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -53.415 * tfactors.T943i + (1.0/3.0) * -1.46489 * tfactors.T923i - + 1.7777 + (5.0/3.0) * -0.903499 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacr - ln_set_rate = 38.337 + -53.416 * tfactors.T913i + 8.01209 * tfactors.T913 - + -2.64791 * tfactors.T9 + 0.218637 * tfactors.T953 + 0.333333 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -53.416 * tfactors.T943i + (1.0/3.0) * 8.01209 * tfactors.T923i - + -2.64791 + (5.0/3.0) * 0.218637 * tfactors.T923 + 0.333333 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Mg26_to_n_Al26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mg26 + p --> n + Al26 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ol11n - ln_set_rate = 13.5366 + -55.5463 * tfactors.T9i + 7.36773 * tfactors.T913 - + -2.42424 * tfactors.T9 + 0.313743 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 55.5463 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 7.36773 * tfactors.T923i - + -2.42424 + (5.0/3.0) * 0.313743 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // ol11r - ln_set_rate = 15.9629 + -55.7499 * tfactors.T9i + 3.87515 * tfactors.T913 - + 0.228327 * tfactors.T9 + -0.045872 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 55.7499 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 3.87515 * tfactors.T923i - + 0.228327 + (5.0/3.0) * -0.045872 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // ol11r - ln_set_rate = 14.8989 + -55.6072 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 55.6072 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Mg26_to_He4_Na23_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mg26 + p --> He4 + Na23 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 47.1157 + -21.128 * tfactors.T9i + -50.2042 * tfactors.T913i + 1.76141 * tfactors.T913 - + -1.36813 * tfactors.T9 + 0.123087 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 21.128 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -50.2042 * tfactors.T943i + (1.0/3.0) * 1.76141 * tfactors.T923i - + -1.36813 + (5.0/3.0) * 0.123087 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mg26_to_n_Si29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mg26 + He4 --> n + Si29 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacrn - ln_set_rate = 45.8397 + -53.505 * tfactors.T913i + 0.045598 * tfactors.T913 - + -0.194481 * tfactors.T9 + -0.0748153 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -53.505 * tfactors.T943i + (1.0/3.0) * 0.045598 * tfactors.T923i - + -0.194481 + (5.0/3.0) * -0.0748153 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacrr - ln_set_rate = 15.7057 + -18.73 * tfactors.T9i + -9.54056 * tfactors.T913 - + 4.71712 * tfactors.T9 + -0.461053 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 18.73 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -9.54056 * tfactors.T923i - + 4.71712 + (5.0/3.0) * -0.461053 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Al25_to_p_Mg25_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Al25 + n --> p + Mg25 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 18.4104 + 2.28536 * tfactors.T913 - + -0.38512 * tfactors.T9 + 0.0288056 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 2.28536 * tfactors.T923i - + -0.38512 + (5.0/3.0) * 0.0288056 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Al25_to_He4_Na22_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Al25 + n --> He4 + Na22 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 8.93927 + 2.92382 * tfactors.T913 - + 0.706669 * tfactors.T9 + -0.0950292 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 2.92382 * tfactors.T923i - + 0.706669 + (5.0/3.0) * -0.0950292 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Al25_to_p_Si28_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Al25 + He4 --> p + Si28 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 47.6167 + -56.3424 * tfactors.T913i + 0.553763 * tfactors.T913 - + -0.84072 * tfactors.T9 + 0.0634219 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -56.3424 * tfactors.T943i + (1.0/3.0) * 0.553763 * tfactors.T923i - + -0.84072 + (5.0/3.0) * 0.0634219 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Al26_to_p_Mg26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Al26 + n --> p + Mg26 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ol11r - ln_set_rate = 13.565 + -0.203581 * tfactors.T9i + 3.87515 * tfactors.T913 - + 0.228327 * tfactors.T9 + -0.045872 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.203581 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 3.87515 * tfactors.T923i - + 0.228327 + (5.0/3.0) * -0.045872 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // ol11r - ln_set_rate = 12.501 + -0.0608268 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0608268 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // ol11n - ln_set_rate = 11.1387 + 7.36773 * tfactors.T913 - + -2.42424 * tfactors.T9 + 0.313743 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 7.36773 * tfactors.T923i - + -2.42424 + (5.0/3.0) * 0.313743 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Al26_to_He4_Na23_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Al26 + n --> He4 + Na23 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ol11r - ln_set_rate = 13.62 + -0.0661138 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.0661138 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // ol11n - ln_set_rate = 11.6414 + 5.07134 * tfactors.T913 - + -0.557537 * tfactors.T9 + 0.0451737 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 5.07134 * tfactors.T923i - + -0.557537 + (5.0/3.0) * 0.0451737 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // ol11r - ln_set_rate = 14.7127 + -0.41015 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.41015 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Al26_to_He4_Mg23_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Al26 + p --> He4 + Mg23 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 46.4058 + -21.7293 * tfactors.T9i + -53.203 * tfactors.T913i + 0.71292 * tfactors.T913 - + -0.892548 * tfactors.T9 + 0.0709813 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 21.7293 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -53.203 * tfactors.T943i + (1.0/3.0) * 0.71292 * tfactors.T923i - + -0.892548 + (5.0/3.0) * 0.0709813 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Al26_to_n_P29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Al26 + He4 --> n + P29 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -42.1718 + -10.4914 * tfactors.T9i + 41.9938 * tfactors.T913 - + -4.54859 * tfactors.T9 + 0.243841 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 10.4914 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 41.9938 * tfactors.T923i - + -4.54859 + (5.0/3.0) * 0.243841 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Al26_to_p_Si29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Al26 + He4 --> p + Si29 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 47.7092 + -56.4422 * tfactors.T913i + 0.705353 * tfactors.T913 - + -0.957427 * tfactors.T9 + 0.0756045 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -56.4422 * tfactors.T943i + (1.0/3.0) * 0.705353 * tfactors.T923i - + -0.957427 + (5.0/3.0) * 0.0756045 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Al27_to_He4_Mg24_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Al27 + p --> He4 + Mg24 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // il10r - ln_set_rate = -7.02789 + -4.2425 * tfactors.T9i + 18.0416 * tfactors.T913 - + -1.54137 * tfactors.T9 + 0.0847506 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 4.2425 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 18.0416 * tfactors.T923i - + -1.54137 + (5.0/3.0) * 0.0847506 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10r - ln_set_rate = -26.8683 + -0.963012 * tfactors.T9i + 5.18642 * tfactors.T913i + -34.7936 * tfactors.T913 - + 168.225 * tfactors.T9 + -115.825 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.963012 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 5.18642 * tfactors.T943i + (1.0/3.0) * -34.7936 * tfactors.T923i - + 168.225 + (5.0/3.0) * -115.825 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10n - ln_set_rate = 29.4576 + -26.4162 * tfactors.T913i - + -2.0 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -26.4162 * tfactors.T943i - + (5.0/3.0) * -2.0 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Al27_to_C12_O16_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Al27 + p --> C12 + O16 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88r - ln_set_rate = 68.9829 + -59.8017 * tfactors.T9i + -119.242 * tfactors.T913i + 13.3667 * tfactors.T913 - + 0.295425 * tfactors.T9 + -0.267288 * tfactors.T953 + -9.91729 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 59.8017 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -119.242 * tfactors.T943i + (1.0/3.0) * 13.3667 * tfactors.T923i - + 0.295425 + (5.0/3.0) * -0.267288 * tfactors.T923 + -9.91729 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Al27_to_n_P30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Al27 + He4 --> n + P30 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacr - ln_set_rate = 6.09163 + -30.667 * tfactors.T9i + 5.40982 * tfactors.T913 - + -0.265676 * tfactors.T9 + 1.0 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 30.667 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.40982 * tfactors.T923i - + -0.265676 + 1.0 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacr - ln_set_rate = 11.3074 + -30.667 * tfactors.T9i + 0.311974 * tfactors.T913 - + -2.02044 * tfactors.T9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 30.667 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.311974 * tfactors.T923i - + -2.02044; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Al27_to_p_Si30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Al27 + He4 --> p + Si30 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 47.4856 + -56.5351 * tfactors.T913i + 1.60477 * tfactors.T913 - + -1.40594 * tfactors.T9 + 0.127353 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -56.5351 * tfactors.T943i + (1.0/3.0) * 1.60477 * tfactors.T923i - + -1.40594 + (5.0/3.0) * 0.127353 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Si28_to_He4_Mg25_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Si28 + n --> He4 + Mg25 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacrn - ln_set_rate = 48.7694 + -30.7983 * tfactors.T9i + -53.415 * tfactors.T913i + -1.46489 * tfactors.T913 - + 1.7777 * tfactors.T9 + -0.903499 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 30.7983 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -53.415 * tfactors.T943i + (1.0/3.0) * -1.46489 * tfactors.T923i - + 1.7777 + (5.0/3.0) * -0.903499 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacr - ln_set_rate = 41.3451 + -30.7983 * tfactors.T9i + -53.416 * tfactors.T913i + 8.01209 * tfactors.T913 - + -2.64791 * tfactors.T9 + 0.218637 * tfactors.T953 + 0.333333 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 30.7983 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -53.416 * tfactors.T943i + (1.0/3.0) * 8.01209 * tfactors.T923i - + -2.64791 + (5.0/3.0) * 0.218637 * tfactors.T923 + 0.333333 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Si28_to_He4_Al25_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Si28 + p --> He4 + Al25 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 50.6248 + -89.5005 * tfactors.T9i + -56.3424 * tfactors.T913i + 0.553763 * tfactors.T913 - + -0.84072 * tfactors.T9 + 0.0634219 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 89.5005 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -56.3424 * tfactors.T943i + (1.0/3.0) * 0.553763 * tfactors.T923i - + -0.84072 + (5.0/3.0) * 0.0634219 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Si28_to_p_P31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Si28 + He4 --> p + P31 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // il10r - ln_set_rate = -13.4595 + -24.112 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 24.112 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10r - ln_set_rate = -11.4335 + -25.6606 * tfactors.T9i + 21.521 * tfactors.T913 - + -1.90355 * tfactors.T9 + 0.092724 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 25.6606 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 21.521 * tfactors.T923i - + -1.90355 + (5.0/3.0) * 0.092724 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10n - ln_set_rate = 60.3424 + -22.2348 * tfactors.T9i + -31.932 * tfactors.T913i + -77.0334 * tfactors.T913 - + -43.6847 * tfactors.T9 + -4.28955 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 22.2348 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.932 * tfactors.T943i + (1.0/3.0) * -77.0334 * tfactors.T923i - + -43.6847 + (5.0/3.0) * -4.28955 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Si28_to_C12_Ne20_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Si28 + He4 --> C12 + Ne20 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rolfr - ln_set_rate = -307.762 + -186.722 * tfactors.T9i + 514.197 * tfactors.T913i + -200.896 * tfactors.T913 - + -6.42713 * tfactors.T9 + 0.758256 * tfactors.T953 + 236.359 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 186.722 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 514.197 * tfactors.T943i + (1.0/3.0) * -200.896 * tfactors.T923i - + -6.42713 + (5.0/3.0) * 0.758256 * tfactors.T923 + 236.359 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Si28_to_O16_O16_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Si28 + He4 --> O16 + O16 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88r - ln_set_rate = 97.7904 + -111.595 * tfactors.T9i + -119.324 * tfactors.T913i + -32.2497 * tfactors.T913 - + 1.46214 * tfactors.T9 + -0.200893 * tfactors.T953 + 13.2148 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 111.595 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -119.324 * tfactors.T943i + (1.0/3.0) * -32.2497 * tfactors.T923i - + 1.46214 + (5.0/3.0) * -0.200893 * tfactors.T923 + 13.2148 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Si29_to_He4_Mg26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Si29 + n --> He4 + Mg26 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacrn - ln_set_rate = 46.369 + -0.394553 * tfactors.T9i + -53.505 * tfactors.T913i + 0.045598 * tfactors.T913 - + -0.194481 * tfactors.T9 + -0.0748153 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.394553 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -53.505 * tfactors.T943i + (1.0/3.0) * 0.045598 * tfactors.T923i - + -0.194481 + (5.0/3.0) * -0.0748153 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacrr - ln_set_rate = 16.235 + -19.1246 * tfactors.T9i + -9.54056 * tfactors.T913 - + 4.71712 * tfactors.T9 + -0.461053 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 19.1246 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -9.54056 * tfactors.T923i - + 4.71712 + (5.0/3.0) * -0.461053 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Si29_to_n_P29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Si29 + p --> n + P29 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 18.5351 + -66.4331 * tfactors.T9i + 1.48018 * tfactors.T913 - + -0.177129 * tfactors.T9 + 0.0127163 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 66.4331 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.48018 * tfactors.T923i - + -0.177129 + (5.0/3.0) * 0.0127163 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Si29_to_He4_Al26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Si29 + p --> He4 + Al26 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 50.6364 + -55.9416 * tfactors.T9i + -56.4422 * tfactors.T913i + 0.705353 * tfactors.T913 - + -0.957427 * tfactors.T9 + 0.0756045 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 55.9416 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -56.4422 * tfactors.T943i + (1.0/3.0) * 0.705353 * tfactors.T923i - + -0.957427 + (5.0/3.0) * 0.0756045 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Si29_to_n_S32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Si29 + He4 --> n + S32 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -2.87932 + -17.7056 * tfactors.T9i + 9.48125 * tfactors.T913 - + 0.4472 * tfactors.T9 + -0.119237 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 17.7056 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 9.48125 * tfactors.T923i - + 0.4472 + (5.0/3.0) * -0.119237 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Si29_to_p_P32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Si29 + He4 --> p + P32 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 117.4 + -32.3767 * tfactors.T9i + 160.025 * tfactors.T913i + -285.126 * tfactors.T913 - + 16.3226 * tfactors.T9 + -0.928477 * tfactors.T953 + 138.458 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 32.3767 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 160.025 * tfactors.T943i + (1.0/3.0) * -285.126 * tfactors.T923i - + 16.3226 + (5.0/3.0) * -0.928477 * tfactors.T923 + 138.458 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Si30_to_n_P30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Si30 + p --> n + P30 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 19.4345 + -58.1931 * tfactors.T9i + 1.88379 * tfactors.T913 - + -0.330243 * tfactors.T9 + 0.0239836 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 58.1931 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.88379 * tfactors.T923i - + -0.330243 + (5.0/3.0) * 0.0239836 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Si30_to_He4_Al27_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Si30 + p --> He4 + Al27 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 50.5056 + -27.5284 * tfactors.T9i + -56.5351 * tfactors.T913i + 1.60477 * tfactors.T913 - + -1.40594 * tfactors.T9 + 0.127353 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 27.5284 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -56.5351 * tfactors.T943i + (1.0/3.0) * 1.60477 * tfactors.T923i - + -1.40594 + (5.0/3.0) * 0.127353 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Si30_to_n_S33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Si30 + He4 --> n + S33 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 17.3228 + -40.5385 * tfactors.T9i + -0.725571 * tfactors.T913 - + 0.430731 * tfactors.T9 + -0.0323663 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 40.5385 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.725571 * tfactors.T923i - + 0.430731 + (5.0/3.0) * -0.0323663 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Si30_to_p_P33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Si30 + He4 --> p + P33 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 81.0152 + -37.7526 * tfactors.T9i + 110.297 * tfactors.T913i + -193.863 * tfactors.T913 - + 11.4977 * tfactors.T9 + -0.687235 * tfactors.T953 + 94.819 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 37.7526 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 110.297 * tfactors.T943i + (1.0/3.0) * -193.863 * tfactors.T923i - + 11.4977 + (5.0/3.0) * -0.687235 * tfactors.T923 + 94.819 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Si31_to_n_P31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Si31 + p --> n + P31 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 80.5195 + -3.3832 * tfactors.T9i + 119.352 * tfactors.T913i + -198.709 * tfactors.T913 - + 10.5994 * tfactors.T9 + -0.583506 * tfactors.T953 + 100.693 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.3832 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 119.352 * tfactors.T943i + (1.0/3.0) * -198.709 * tfactors.T923i - + 10.5994 + (5.0/3.0) * -0.583506 * tfactors.T923 + 100.693 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Si31_to_n_S34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Si31 + He4 --> n + S34 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = -5.10649 + -2.7438 * tfactors.T9i + -22.4045 * tfactors.T913i + 23.4647 * tfactors.T913 - + -4.73922 * tfactors.T9 + 0.371237 * tfactors.T953 + 4.62837 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.7438 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -22.4045 * tfactors.T943i + (1.0/3.0) * 23.4647 * tfactors.T923i - + -4.73922 + (5.0/3.0) * 0.371237 * tfactors.T923 + 4.62837 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Si32_to_n_P32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Si32 + p --> n + P32 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = -32.8411 + -6.17898 * tfactors.T9i + -31.4944 * tfactors.T913i + 82.7906 * tfactors.T913 - + -5.28792 * tfactors.T9 + 0.278753 * tfactors.T953 + -31.7623 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 6.17898 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.4944 * tfactors.T943i + (1.0/3.0) * 82.7906 * tfactors.T923i - + -5.28792 + (5.0/3.0) * 0.278753 * tfactors.T923 + -31.7623 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Si32_to_n_S35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Si32 + He4 --> n + S35 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -29.9932 + -10.223 * tfactors.T9i + 32.5444 * tfactors.T913 - + -2.95994 * tfactors.T9 + 0.119682 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 10.223 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 32.5444 * tfactors.T923i - + -2.95994 + (5.0/3.0) * 0.119682 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_P29_to_p_Si29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // P29 + n --> p + Si29 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 18.5351 + 1.48018 * tfactors.T913 - + -0.177129 * tfactors.T9 + 0.0127163 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 1.48018 * tfactors.T923i - + -0.177129 + (5.0/3.0) * 0.0127163 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_P29_to_He4_Al26_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // P29 + n --> He4 + Al26 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -39.2446 + 41.9938 * tfactors.T913 - + -4.54859 * tfactors.T9 + 0.243841 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 41.9938 * tfactors.T923i - + -4.54859 + (5.0/3.0) * 0.243841 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_P29_to_p_S32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // P29 + He4 --> p + S32 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 50.2824 + -62.3802 * tfactors.T913i + 0.459085 * tfactors.T913 - + -0.870169 * tfactors.T9 + 0.0631143 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -62.3802 * tfactors.T943i + (1.0/3.0) * 0.459085 * tfactors.T923i - + -0.870169 + (5.0/3.0) * 0.0631143 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_P30_to_p_Si30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // P30 + n --> p + Si30 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 18.3359 + 1.88379 * tfactors.T913 - + -0.330243 * tfactors.T9 + 0.0239836 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 1.88379 * tfactors.T923i - + -0.330243 + (5.0/3.0) * 0.0239836 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_P30_to_He4_Al27_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // P30 + n --> He4 + Al27 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacr - ln_set_rate = 8.01303 + 0.0036935 * tfactors.T9i + 5.40982 * tfactors.T913 - + -0.265676 * tfactors.T9 + 1.0 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.0036935 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.40982 * tfactors.T923i - + -0.265676 + 1.0 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacr - ln_set_rate = 13.2288 + 0.0036935 * tfactors.T9i + 0.311974 * tfactors.T913 - + -2.02044 * tfactors.T9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.0036935 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.311974 * tfactors.T923i - + -2.02044; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_P30_to_n_Cl33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // P30 + He4 --> n + Cl33 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 14.9462 + -56.2069 * tfactors.T9i + 1.33535 * tfactors.T913 - + -0.149988 * tfactors.T9 + 0.0279218 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 56.2069 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.33535 * tfactors.T923i - + -0.149988 + (5.0/3.0) * 0.0279218 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_P30_to_p_S33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // P30 + He4 --> p + S33 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 49.813 + -62.4643 * tfactors.T913i + 0.492934 * tfactors.T913 - + -0.841855 * tfactors.T9 + 0.059263 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -62.4643 * tfactors.T943i + (1.0/3.0) * 0.492934 * tfactors.T923i - + -0.841855 + (5.0/3.0) * 0.059263 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_P31_to_p_Si31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // P31 + n --> p + Si31 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 81.2126 + -11.6108 * tfactors.T9i + 119.352 * tfactors.T913i + -198.709 * tfactors.T913 - + 10.5994 * tfactors.T9 + -0.583506 * tfactors.T953 + 100.693 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 11.6108 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 119.352 * tfactors.T943i + (1.0/3.0) * -198.709 * tfactors.T923i - + 10.5994 + (5.0/3.0) * -0.583506 * tfactors.T923 + 100.693 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_P31_to_He4_Si28_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // P31 + p --> He4 + Si28 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // il10r - ln_set_rate = -10.893 + -3.42575 * tfactors.T9i + 21.521 * tfactors.T913 - + -1.90355 * tfactors.T9 + 0.092724 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.42575 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 21.521 * tfactors.T923i - + -1.90355 + (5.0/3.0) * 0.092724 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10r - ln_set_rate = -12.919 + -1.87716 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.87716 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10n - ln_set_rate = 60.8829 + -31.932 * tfactors.T913i + -77.0334 * tfactors.T913 - + -43.6847 * tfactors.T9 + -4.28955 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -31.932 * tfactors.T943i + (1.0/3.0) * -77.0334 * tfactors.T923i - + -43.6847 + (5.0/3.0) * -4.28955 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_P31_to_C12_Ne20_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // P31 + p --> C12 + Ne20 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rolfr - ln_set_rate = -266.452 + -156.019 * tfactors.T9i + 361.154 * tfactors.T913i + -92.643 * tfactors.T913 - + -9.98738 * tfactors.T9 + 0.892737 * tfactors.T953 + 161.042 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 156.019 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 361.154 * tfactors.T943i + (1.0/3.0) * -92.643 * tfactors.T923i - + -9.98738 + (5.0/3.0) * 0.892737 * tfactors.T923 + 161.042 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_P31_to_O16_O16_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // P31 + p --> O16 + O16 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88r - ln_set_rate = 86.3501 + -88.8797 * tfactors.T9i + -145.844 * tfactors.T913i + 8.72612 * tfactors.T913 - + -0.554035 * tfactors.T9 + -0.137562 * tfactors.T953 + -6.88807 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 88.8797 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -145.844 * tfactors.T943i + (1.0/3.0) * 8.72612 * tfactors.T923i - + -0.554035 + (5.0/3.0) * -0.137562 * tfactors.T923 + -6.88807 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_P31_to_n_Cl34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // P31 + He4 --> n + Cl34 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 16.9244 + -65.5365 * tfactors.T9i + -0.466069 * tfactors.T913 - + 0.167169 * tfactors.T9 + -0.00537463 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 65.5365 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.466069 * tfactors.T923i - + 0.167169 + (5.0/3.0) * -0.00537463 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_P31_to_p_S34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // P31 + He4 --> p + S34 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 49.0993 + -62.5433 * tfactors.T913i + 1.69339 * tfactors.T913 - + -1.27872 * tfactors.T9 + 0.106616 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -62.5433 * tfactors.T943i + (1.0/3.0) * 1.69339 * tfactors.T923i - + -1.27872 + (5.0/3.0) * 0.106616 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_P32_to_p_Si32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // P32 + n --> p + Si32 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = -33.9397 + 0.296332 * tfactors.T9i + -31.4944 * tfactors.T913i + 82.7906 * tfactors.T913 - + -5.28792 * tfactors.T9 + 0.278753 * tfactors.T953 + -31.7623 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -0.296332 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.4944 * tfactors.T943i + (1.0/3.0) * 82.7906 * tfactors.T923i - + -5.28792 + (5.0/3.0) * 0.278753 * tfactors.T923 + -31.7623 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_P32_to_n_S32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // P32 + p --> n + S32 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 82.294 + -3.56696 * tfactors.T9i + 124.605 * tfactors.T913i + -206.844 * tfactors.T913 - + 11.0016 * tfactors.T9 + -0.612898 * tfactors.T953 + 104.905 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.56696 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 124.605 * tfactors.T943i + (1.0/3.0) * -206.844 * tfactors.T923i - + 11.0016 + (5.0/3.0) * -0.612898 * tfactors.T923 + 104.905 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_P32_to_He4_Si29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // P32 + p --> He4 + Si29 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 118.233 + -3.89928 * tfactors.T9i + 160.025 * tfactors.T913i + -285.126 * tfactors.T913 - + 16.3226 * tfactors.T9 + -0.928477 * tfactors.T953 + 138.458 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.89928 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 160.025 * tfactors.T943i + (1.0/3.0) * -285.126 * tfactors.T923i - + 16.3226 + (5.0/3.0) * -0.928477 * tfactors.T923 + 138.458 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_P32_to_n_Cl35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // P32 + He4 --> n + Cl35 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -33.0327 + -10.8859 * tfactors.T9i + 35.1367 * tfactors.T913 - + -3.30169 * tfactors.T9 + 0.150699 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 10.8859 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 35.1367 * tfactors.T923i - + -3.30169 + (5.0/3.0) * 0.150699 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_P32_to_p_S35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // P32 + He4 --> p + S35 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -31.5296 + -3.74729 * tfactors.T9i + -26.7922 * tfactors.T913i + 56.581 * tfactors.T913 - + -10.5304 * tfactors.T9 + 0.9493 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.74729 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -26.7922 * tfactors.T943i + (1.0/3.0) * 56.581 * tfactors.T923i - + -10.5304 + (5.0/3.0) * 0.9493 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_P33_to_n_S33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // P33 + p --> n + S33 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 5.79458 + -6.19492 * tfactors.T9i + 8.02978 * tfactors.T913 - + -0.479244 * tfactors.T9 + 0.0134889 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 6.19492 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 8.02978 * tfactors.T923i - + -0.479244 + (5.0/3.0) * 0.0134889 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_P33_to_He4_Si30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // P33 + p --> He4 + Si30 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 81.5654 + -3.41491 * tfactors.T9i + 110.297 * tfactors.T913i + -193.863 * tfactors.T913 - + 11.4977 * tfactors.T9 + -0.687235 * tfactors.T953 + 94.819 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.41491 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 110.297 * tfactors.T943i + (1.0/3.0) * -193.863 * tfactors.T923i - + 11.4977 + (5.0/3.0) * -0.687235 * tfactors.T923 + 94.819 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_P33_to_n_Cl36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // P33 + He4 --> n + Cl36 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 11.13 + -28.5706 * tfactors.T9i + -0.927614 * tfactors.T913 - + 1.68083 * tfactors.T9 + -0.183233 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 28.5706 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.927614 * tfactors.T923i - + 1.68083 + (5.0/3.0) * -0.183233 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_P33_to_p_S36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // P33 + He4 --> p + S36 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -16.0835 + -6.23702 * tfactors.T9i + -26.7991 * tfactors.T913i + 44.6374 * tfactors.T913 - + -9.82916 * tfactors.T9 + 0.995523 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 6.23702 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -26.7991 * tfactors.T943i + (1.0/3.0) * 44.6374 * tfactors.T923i - + -9.82916 + (5.0/3.0) * 0.995523 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_S32_to_p_P32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // S32 + n --> p + P32 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 83.3926 + -14.3359 * tfactors.T9i + 124.605 * tfactors.T913i + -206.844 * tfactors.T913 - + 11.0016 * tfactors.T9 + -0.612898 * tfactors.T953 + 104.905 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 14.3359 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 124.605 * tfactors.T943i + (1.0/3.0) * -206.844 * tfactors.T923i - + 11.0016 + (5.0/3.0) * -0.612898 * tfactors.T923 + 104.905 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_S32_to_He4_Si29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // S32 + n --> He4 + Si29 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -0.947538 + 9.48125 * tfactors.T913 - + 0.4472 * tfactors.T9 + -0.119237 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 9.48125 * tfactors.T923i - + 0.4472 + (5.0/3.0) * -0.119237 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_S32_to_He4_P29_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // S32 + p --> He4 + P29 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 52.2142 + -48.7275 * tfactors.T9i + -62.3802 * tfactors.T913i + 0.459085 * tfactors.T913 - + -0.870169 * tfactors.T9 + 0.0631143 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 48.7275 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -62.3802 * tfactors.T943i + (1.0/3.0) * 0.459085 * tfactors.T923i - + -0.870169 + (5.0/3.0) * 0.0631143 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_S32_to_p_Cl35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // S32 + He4 --> p + Cl35 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // il10r - ln_set_rate = -57.395 + -22.1894 * tfactors.T9i + 25.5338 * tfactors.T913 - + 6.45824 * tfactors.T9 + -0.950294 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 22.1894 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 25.5338 * tfactors.T923i - + 6.45824 + (5.0/3.0) * -0.950294 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10n - ln_set_rate = 32.2544 + -21.6564 * tfactors.T9i + -30.9147 * tfactors.T913i + -1.2345 * tfactors.T913 - + 22.5118 * tfactors.T9 + -33.0589 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 21.6564 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -30.9147 * tfactors.T943i + (1.0/3.0) * -1.2345 * tfactors.T923i - + 22.5118 + (5.0/3.0) * -33.0589 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10r - ln_set_rate = 2.42563 + -27.6662 * tfactors.T9i + 5.33756 * tfactors.T913 - + 1.64418 * tfactors.T9 + -0.246167 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 27.6662 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.33756 * tfactors.T923i - + 1.64418 + (5.0/3.0) * -0.246167 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10r - ln_set_rate = -0.877602 + -25.5914 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 25.5914 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_S33_to_p_P33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // S33 + n --> p + P33 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 5.10143 + 8.02978 * tfactors.T913 - + -0.479244 * tfactors.T9 + 0.0134889 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 8.02978 * tfactors.T923i - + -0.479244 + (5.0/3.0) * 0.0134889 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_S33_to_He4_Si30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // S33 + n --> He4 + Si30 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 17.1798 + -0.725571 * tfactors.T913 - + 0.430731 * tfactors.T9 + -0.0323663 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.725571 * tfactors.T923i - + 0.430731 + (5.0/3.0) * -0.0323663 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_S33_to_n_Cl33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // S33 + p --> n + Cl33 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 18.5772 + -73.8616 * tfactors.T9i + 1.39633 * tfactors.T913 - + -0.136457 * tfactors.T9 + 0.00585594 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 73.8616 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.39633 * tfactors.T923i - + -0.136457 + (5.0/3.0) * 0.00585594 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_S33_to_He4_P30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // S33 + p --> He4 + P30 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 50.7686 + -17.6546 * tfactors.T9i + -62.4643 * tfactors.T913i + 0.492934 * tfactors.T913 - + -0.841855 * tfactors.T9 + 0.059263 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 17.6546 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -62.4643 * tfactors.T943i + (1.0/3.0) * 0.492934 * tfactors.T923i - + -0.841855 + (5.0/3.0) * 0.059263 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_S33_to_n_Ar36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // S33 + He4 --> n + Ar36 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 0.398258 + -23.219 * tfactors.T9i + 5.44923 * tfactors.T913 - + 1.17359 * tfactors.T9 + -0.175811 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 23.219 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.44923 * tfactors.T923i - + 1.17359 + (5.0/3.0) * -0.175811 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_S33_to_p_Cl36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // S33 + He4 --> p + Cl36 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 23.6067 + -22.3757 * tfactors.T9i + -27.9044 * tfactors.T913i + 7.06482 * tfactors.T913 - + -1.77458 * tfactors.T9 + 0.192878 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 22.3757 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -27.9044 * tfactors.T943i + (1.0/3.0) * 7.06482 * tfactors.T923i - + -1.77458 + (5.0/3.0) * 0.192878 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_S34_to_He4_Si31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // S34 + n --> He4 + Si31 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = -2.47246 + -18.2474 * tfactors.T9i + -22.4045 * tfactors.T913i + 23.4647 * tfactors.T913 - + -4.73922 * tfactors.T9 + 0.371237 * tfactors.T953 + 4.62837 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 18.2474 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -22.4045 * tfactors.T943i + (1.0/3.0) * 23.4647 * tfactors.T923i - + -4.73922 + (5.0/3.0) * 0.371237 * tfactors.T923 + 4.62837 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_S34_to_n_Cl34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // S34 + p --> n + Cl34 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 18.4445 + -72.8108 * tfactors.T9i + 0.847427 * tfactors.T913 - + 0.000125282 * tfactors.T9 + -0.00573985 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 72.8108 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.847427 * tfactors.T923i - + 0.000125282 + (5.0/3.0) * -0.00573985 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_S34_to_He4_P31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // S34 + p --> He4 + P31 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 51.0402 + -7.27426 * tfactors.T9i + -62.5433 * tfactors.T913i + 1.69339 * tfactors.T913 - + -1.27872 * tfactors.T9 + 0.106616 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 7.27426 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -62.5433 * tfactors.T943i + (1.0/3.0) * 1.69339 * tfactors.T923i - + -1.27872 + (5.0/3.0) * 0.106616 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_S34_to_n_Ar37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // S34 + He4 --> n + Ar37 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // SM93 - ln_set_rate = 18.5358 + -53.7288 * tfactors.T9i + -1.69894 * tfactors.T913 - + 0.371187 * tfactors.T9 + -0.0457242 * tfactors.T953 + 1.0 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 53.7288 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.69894 * tfactors.T923i - + 0.371187 + (5.0/3.0) * -0.0457242 * tfactors.T923 + 1.0 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // SM93 - ln_set_rate = 18.5358 + -53.7288 * tfactors.T9i + 0.522368 * tfactors.T913 - + -1.03944 * tfactors.T9 + 0.142735 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 53.7288 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.522368 * tfactors.T923i - + -1.03944 + (5.0/3.0) * 0.142735 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_S34_to_p_Cl37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // S34 + He4 --> p + Cl37 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // SM93 - ln_set_rate = 80.8229 + -35.2081 * tfactors.T9i + -47.5185 * tfactors.T913i + -32.046 * tfactors.T913 - + 4.43077 * tfactors.T9 + -0.368628 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 35.2081 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -47.5185 * tfactors.T943i + (1.0/3.0) * -32.046 * tfactors.T923i - + 4.43077 + (5.0/3.0) * -0.368628 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_S35_to_He4_Si32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // S35 + n --> He4 + Si32 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -30.1276 + 32.5444 * tfactors.T913 - + -2.95994 * tfactors.T9 + 0.119682 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 32.5444 * tfactors.T923i - + -2.95994 + (5.0/3.0) * 0.119682 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_S35_to_n_Cl35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // S35 + p --> n + Cl35 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 7.51079 + -7.13865 * tfactors.T9i + 6.51754 * tfactors.T913 - + -0.295846 * tfactors.T9 + -0.00271436 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 7.13865 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 6.51754 * tfactors.T923i - + -0.295846 + (5.0/3.0) * -0.00271436 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_S35_to_He4_P32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // S35 + p --> He4 + P32 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -30.5654 + -26.7922 * tfactors.T913i + 56.581 * tfactors.T913 - + -10.5304 * tfactors.T9 + 0.9493 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -26.7922 * tfactors.T943i + (1.0/3.0) * 56.581 * tfactors.T923i - + -10.5304 + (5.0/3.0) * 0.9493 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_S35_to_n_Ar38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // S35 + He4 --> n + Ar38 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 51.1473 + -65.58 * tfactors.T913i + 0.762185 * tfactors.T913 - + -0.938779 * tfactors.T9 + 0.0668864 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -65.58 * tfactors.T943i + (1.0/3.0) * 0.762185 * tfactors.T923i - + -0.938779 + (5.0/3.0) * 0.0668864 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_S36_to_n_Cl36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // S36 + p --> n + Cl36 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 16.7498 + -22.3336 * tfactors.T9i + 2.26066 * tfactors.T913 - + -0.487956 * tfactors.T9 + 0.0471708 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 22.3336 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.26066 * tfactors.T923i - + -0.487956 + (5.0/3.0) * 0.0471708 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_S36_to_He4_P33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // S36 + p --> He4 + P33 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -14.1346 + -26.7991 * tfactors.T913i + 44.6374 * tfactors.T913 - + -9.82916 * tfactors.T9 + 0.995523 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -26.7991 * tfactors.T943i + (1.0/3.0) * 44.6374 * tfactors.T923i - + -9.82916 + (5.0/3.0) * 0.995523 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_S36_to_n_Ar39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // S36 + He4 --> n + Ar39 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 14.1201 + -35.6081 * tfactors.T9i + -1.97008 * tfactors.T913 - + 1.52238 * tfactors.T9 + -0.159721 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 35.6081 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.97008 * tfactors.T923i - + 1.52238 + (5.0/3.0) * -0.159721 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cl33_to_p_S33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cl33 + n --> p + S33 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 18.5772 + 1.39633 * tfactors.T913 - + -0.136457 * tfactors.T9 + 0.00585594 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 1.39633 * tfactors.T923i - + -0.136457 + (5.0/3.0) * 0.00585594 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cl33_to_He4_P30_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cl33 + n --> He4 + P30 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 15.9018 + 1.33535 * tfactors.T913 - + -0.149988 * tfactors.T9 + 0.0279218 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 1.33535 * tfactors.T923i - + -0.149988 + (5.0/3.0) * 0.0279218 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cl33_to_p_Ar36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cl33 + He4 --> p + Ar36 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 52.1588 + -68.1442 * tfactors.T913i + 0.291238 * tfactors.T913 - + -0.791384 * tfactors.T9 + 0.0524823 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -68.1442 * tfactors.T943i + (1.0/3.0) * 0.291238 * tfactors.T923i - + -0.791384 + (5.0/3.0) * 0.0524823 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cl34_to_p_S34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cl34 + n --> p + S34 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 18.4445 + 0.847427 * tfactors.T913 - + 0.000125282 * tfactors.T9 + -0.00573985 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.847427 * tfactors.T923i - + 0.000125282 + (5.0/3.0) * -0.00573985 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cl34_to_He4_P31_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cl34 + n --> He4 + P31 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 18.8653 + -0.466069 * tfactors.T913 - + 0.167169 * tfactors.T9 + -0.00537463 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.466069 * tfactors.T923i - + 0.167169 + (5.0/3.0) * -0.00537463 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cl34_to_n_K37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cl34 + He4 --> n + K37 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 16.0909 + -61.3412 * tfactors.T9i + 1.35231 * tfactors.T913 - + -0.147095 * tfactors.T9 + 0.0306549 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 61.3412 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.35231 * tfactors.T923i - + -0.147095 + (5.0/3.0) * 0.0306549 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cl34_to_p_Ar37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cl34 + He4 --> p + Ar37 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 52.795 + -68.2165 * tfactors.T913i + 0.330057 * tfactors.T913 - + -0.873334 * tfactors.T9 + 0.0592127 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -68.2165 * tfactors.T943i + (1.0/3.0) * 0.330057 * tfactors.T923i - + -0.873334 + (5.0/3.0) * 0.0592127 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cl35_to_p_S35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cl35 + n --> p + S35 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 7.51079 + 6.51754 * tfactors.T913 - + -0.295846 * tfactors.T9 + -0.00271436 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 6.51754 * tfactors.T923i - + -0.295846 + (5.0/3.0) * -0.00271436 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cl35_to_He4_P32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cl35 + n --> He4 + P32 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -32.0685 + 35.1367 * tfactors.T913 - + -3.30169 * tfactors.T9 + 0.150699 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 35.1367 * tfactors.T923i - + -3.30169 + (5.0/3.0) * 0.150699 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cl35_to_He4_S32_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cl35 + p --> He4 + S32 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // il10r - ln_set_rate = -1.01202 + -3.93495 * tfactors.T9i - + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.93495 * tfactors.T9i * tfactors.T9i - + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10r - ln_set_rate = -57.5294 + -0.532931 * tfactors.T9i + 25.5338 * tfactors.T913 - + 6.45824 * tfactors.T9 + -0.950294 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.532931 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 25.5338 * tfactors.T923i - + 6.45824 + (5.0/3.0) * -0.950294 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10n - ln_set_rate = 32.12 + -30.9147 * tfactors.T913i + -1.2345 * tfactors.T913 - + 22.5118 * tfactors.T9 + -33.0589 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -30.9147 * tfactors.T943i + (1.0/3.0) * -1.2345 * tfactors.T923i - + 22.5118 + (5.0/3.0) * -33.0589 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // il10r - ln_set_rate = 2.29121 + -6.00976 * tfactors.T9i + 5.33756 * tfactors.T913 - + 1.64418 * tfactors.T9 + -0.246167 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 6.00976 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.33756 * tfactors.T923i - + 1.64418 + (5.0/3.0) * -0.246167 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cl35_to_n_K38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cl35 + He4 --> n + K38 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 16.8313 + -67.9937 * tfactors.T9i + 1.15173 * tfactors.T913 - + -0.190157 * tfactors.T9 + 0.0305104 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 67.9937 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.15173 * tfactors.T923i - + -0.190157 + (5.0/3.0) * 0.0305104 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cl35_to_p_Ar38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cl35 + He4 --> p + Ar38 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 51.1272 + -68.2848 * tfactors.T913i + 2.5993 * tfactors.T913 - + -1.59144 * tfactors.T9 + 0.137745 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -68.2848 * tfactors.T943i + (1.0/3.0) * 2.5993 * tfactors.T923i - + -1.59144 + (5.0/3.0) * 0.137745 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cl36_to_p_S36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cl36 + n --> p + S36 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 15.1404 + 2.26066 * tfactors.T913 - + -0.487956 * tfactors.T9 + 0.0471708 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 2.26066 * tfactors.T923i - + -0.487956 + (5.0/3.0) * 0.0471708 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cl36_to_He4_P33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cl36 + n --> He4 + P33 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 11.4695 + -0.927614 * tfactors.T913 - + 1.68083 * tfactors.T9 + -0.183233 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.927614 * tfactors.T923i - + 1.68083 + (5.0/3.0) * -0.183233 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cl36_to_n_Ar36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cl36 + p --> n + Ar36 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -24.2851 + -0.843218 * tfactors.T9i + 34.7356 * tfactors.T913 - + -5.0791 * tfactors.T9 + 0.381814 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.843218 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 34.7356 * tfactors.T923i - + -5.0791 + (5.0/3.0) * 0.381814 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cl36_to_He4_S33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cl36 + p --> He4 + S33 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 24.6393 + -27.9044 * tfactors.T913i + 7.06482 * tfactors.T913 - + -1.77458 * tfactors.T9 + 0.192878 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -27.9044 * tfactors.T943i + (1.0/3.0) * 7.06482 * tfactors.T923i - + -1.77458 + (5.0/3.0) * 0.192878 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cl36_to_n_K39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cl36 + He4 --> n + K39 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -19.8313 + -15.7966 * tfactors.T9i + 20.3122 * tfactors.T913 - + -0.37149 * tfactors.T9 + -0.0867942 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 15.7966 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 20.3122 * tfactors.T923i - + -0.37149 + (5.0/3.0) * -0.0867942 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cl36_to_p_Ar39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cl36 + He4 --> p + Ar39 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 7.40378 + -13.2744 * tfactors.T9i + -29.0085 * tfactors.T913i + 15.2414 * tfactors.T913 - + -1.01027 * tfactors.T9 + -0.0165013 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 13.2744 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -29.0085 * tfactors.T943i + (1.0/3.0) * 15.2414 * tfactors.T923i - + -1.01027 + (5.0/3.0) * -0.0165013 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cl37_to_n_Ar37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cl37 + p --> n + Ar37 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 16.2094 + -18.5233 * tfactors.T9i + 1.64495 * tfactors.T913 - + -0.154677 * tfactors.T9 + 0.0083347 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 18.5233 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.64495 * tfactors.T923i - + -0.154677 + (5.0/3.0) * 0.0083347 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cl37_to_He4_S34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cl37 + p --> He4 + S34 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // SM93 - ln_set_rate = 80.6961 + -47.5185 * tfactors.T913i + -32.046 * tfactors.T913 - + 4.43077 * tfactors.T9 + -0.368628 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -47.5185 * tfactors.T943i + (1.0/3.0) * -32.046 * tfactors.T923i - + 4.43077 + (5.0/3.0) * -0.368628 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cl37_to_n_K40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cl37 + He4 --> n + K40 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 15.6408 + -44.9411 * tfactors.T9i + -0.86425 * tfactors.T913 - + 0.646211 * tfactors.T9 + -0.0583195 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 44.9411 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.86425 * tfactors.T923i - + 0.646211 + (5.0/3.0) * -0.0583195 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cl37_to_p_Ar40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cl37 + He4 --> p + Ar40 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 13.9644 + -18.4011 * tfactors.T9i + -29.0146 * tfactors.T913i + 15.2952 * tfactors.T913 - + -3.22171 * tfactors.T9 + 0.283382 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 18.4011 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -29.0146 * tfactors.T943i + (1.0/3.0) * 15.2952 * tfactors.T923i - + -3.22171 + (5.0/3.0) * 0.283382 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ar36_to_p_Cl36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ar36 + n --> p + Cl36 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -22.6757 + 34.7356 * tfactors.T913 - + -5.0791 * tfactors.T9 + 0.381814 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 34.7356 * tfactors.T923i - + -5.0791 + (5.0/3.0) * 0.381814 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ar36_to_He4_S33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ar36 + n --> He4 + S33 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 3.04033 + 5.44923 * tfactors.T913 - + 1.17359 * tfactors.T9 + -0.175811 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 5.44923 * tfactors.T923i - + 1.17359 + (5.0/3.0) * -0.175811 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ar36_to_He4_Cl33_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ar36 + p --> He4 + Cl33 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 54.8009 + -50.6426 * tfactors.T9i + -68.1442 * tfactors.T913i + 0.291238 * tfactors.T913 - + -0.791384 * tfactors.T9 + 0.0524823 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 50.6426 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -68.1442 * tfactors.T943i + (1.0/3.0) * 0.291238 * tfactors.T923i - + -0.791384 + (5.0/3.0) * 0.0524823 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ar36_to_p_K39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ar36 + He4 --> p + K39 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.6367 + -14.9533 * tfactors.T9i + -30.0732 * tfactors.T913i + 7.03263 * tfactors.T913 - + -1.10085 * tfactors.T9 + 0.133768 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 14.9533 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -30.0732 * tfactors.T943i + (1.0/3.0) * 7.03263 * tfactors.T923i - + -1.10085 + (5.0/3.0) * 0.133768 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ar37_to_p_Cl37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ar37 + n --> p + Cl37 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 16.2094 + 1.64495 * tfactors.T913 - + -0.154677 * tfactors.T9 + 0.0083347 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 1.64495 * tfactors.T923i - + -0.154677 + (5.0/3.0) * 0.0083347 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ar37_to_He4_S34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ar37 + n --> He4 + S34 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // SM93 - ln_set_rate = 18.409 + -1.69894 * tfactors.T913 - + 0.371187 * tfactors.T9 + -0.0457242 * tfactors.T953 + 1.0 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.69894 * tfactors.T923i - + 0.371187 + (5.0/3.0) * -0.0457242 * tfactors.T923 + 1.0 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // SM93 - ln_set_rate = 18.409 + 0.522368 * tfactors.T913 - + -1.03944 * tfactors.T9 + 0.142735 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.522368 * tfactors.T923i - + -1.03944 + (5.0/3.0) * 0.142735 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ar37_to_n_K37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ar37 + p --> n + K37 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 19.3703 + -80.417 * tfactors.T9i + 0.399131 * tfactors.T913 - + 0.0819317 * tfactors.T9 + -0.0133489 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 80.417 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.399131 * tfactors.T923i - + 0.0819317 + (5.0/3.0) * -0.0133489 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ar37_to_He4_Cl34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ar37 + p --> He4 + Cl34 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 52.6682 + -19.0758 * tfactors.T9i + -68.2165 * tfactors.T913i + 0.330057 * tfactors.T913 - + -0.873334 * tfactors.T9 + 0.0592127 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 19.0758 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -68.2165 * tfactors.T943i + (1.0/3.0) * 0.330057 * tfactors.T923i - + -0.873334 + (5.0/3.0) * 0.0592127 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ar37_to_n_Ca40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ar37 + He4 --> n + Ca40 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -12.0914 + -20.2822 * tfactors.T9i + 13.8882 * tfactors.T913 - + 0.260223 * tfactors.T9 + -0.108063 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 20.2822 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 13.8882 * tfactors.T923i - + 0.260223 + (5.0/3.0) * -0.108063 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ar37_to_p_K40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ar37 + He4 --> p + K40 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 23.3208 + -26.4178 * tfactors.T9i + -30.0795 * tfactors.T913i + 8.28189 * tfactors.T913 - + -2.15178 * tfactors.T9 + 0.242064 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 26.4178 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -30.0795 * tfactors.T943i + (1.0/3.0) * 8.28189 * tfactors.T923i - + -2.15178 + (5.0/3.0) * 0.242064 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ar38_to_He4_S35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ar38 + n --> He4 + S35 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 53.7965 + -2.57381 * tfactors.T9i + -65.58 * tfactors.T913i + 0.762185 * tfactors.T913 - + -0.938779 * tfactors.T9 + 0.0668864 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.57381 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -65.58 * tfactors.T943i + (1.0/3.0) * 0.762185 * tfactors.T923i - + -0.938779 + (5.0/3.0) * 0.0668864 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ar38_to_n_K38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ar38 + p --> n + K38 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 21.5484 + -77.7062 * tfactors.T9i + -0.5015 * tfactors.T913 - + 0.324921 * tfactors.T9 + -0.0393691 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 77.7062 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.5015 * tfactors.T923i - + 0.324921 + (5.0/3.0) * -0.0393691 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ar38_to_He4_Cl35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ar38 + p --> He4 + Cl35 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 53.7764 + -9.71246 * tfactors.T9i + -68.2848 * tfactors.T913i + 2.5993 * tfactors.T913 - + -1.59144 * tfactors.T9 + 0.137745 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 9.71246 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -68.2848 * tfactors.T943i + (1.0/3.0) * 2.5993 * tfactors.T923i - + -1.59144 + (5.0/3.0) * 0.137745 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ar38_to_n_Ca41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ar38 + He4 --> n + Ca41 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ta18 - ln_set_rate = 17.7791 + -60.6168 * tfactors.T9i + -0.0142 * tfactors.T913i + -0.10052 * tfactors.T913 - + 0.27737 * tfactors.T9 + -0.00483 * tfactors.T953 + -0.2165 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 60.6168 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.0142 * tfactors.T943i + (1.0/3.0) * -0.10052 * tfactors.T923i - + 0.27737 + (5.0/3.0) * -0.00483 * tfactors.T923 + -0.2165 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ar38_to_p_K41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ar38 + He4 --> p + K41 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // tb18 - ln_set_rate = 64.5247 + -47.3255 * tfactors.T9i + 9.28681 * tfactors.T913i + -73.161 * tfactors.T913 - + 4.26053 * tfactors.T9 + -0.235892 * tfactors.T953 + 31.8226 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 47.3255 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 9.28681 * tfactors.T943i + (1.0/3.0) * -73.161 * tfactors.T923i - + 4.26053 + (5.0/3.0) * -0.235892 * tfactors.T923 + 31.8226 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ar39_to_He4_S36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ar39 + n --> He4 + S36 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 13.3069 + -1.97008 * tfactors.T913 - + 1.52238 * tfactors.T9 + -0.159721 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.97008 * tfactors.T923i - + 1.52238 + (5.0/3.0) * -0.159721 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ar39_to_n_K39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ar39 + p --> n + K39 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -15.9025 + -2.52219 * tfactors.T9i + 26.5209 * tfactors.T913 - + -3.63684 * tfactors.T9 + 0.276163 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.52219 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 26.5209 * tfactors.T923i - + -3.63684 + (5.0/3.0) * 0.276163 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ar39_to_He4_Cl36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ar39 + p --> He4 + Cl36 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 8.20001 + -29.0085 * tfactors.T913i + 15.2414 * tfactors.T913 - + -1.01027 * tfactors.T9 + -0.0165013 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -29.0085 * tfactors.T943i + (1.0/3.0) * 15.2414 * tfactors.T923i - + -1.01027 + (5.0/3.0) * -0.0165013 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ar39_to_n_Ca42_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ar39 + He4 --> n + Ca42 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -91.8716 + -3.96108 * tfactors.T9i + 88.8565 * tfactors.T913 - + -12.9534 * tfactors.T9 + 0.93832 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.96108 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 88.8565 * tfactors.T923i - + -12.9534 + (5.0/3.0) * 0.93832 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ar40_to_n_K40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ar40 + p --> n + K40 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 16.3302 + -26.54 * tfactors.T9i + -0.499903 * tfactors.T913 - + 0.849663 * tfactors.T9 + -0.0834774 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 26.54 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.499903 * tfactors.T923i - + 0.849663 + (5.0/3.0) * -0.0834774 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ar40_to_He4_Cl37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ar40 + p --> He4 + Cl37 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 16.62 + -29.0146 * tfactors.T913i + 15.2952 * tfactors.T913 - + -3.22171 * tfactors.T9 + 0.283382 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -29.0146 * tfactors.T943i + (1.0/3.0) * 15.2952 * tfactors.T923i - + -3.22171 + (5.0/3.0) * 0.283382 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ar40_to_n_Ca43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ar40 + He4 --> n + Ca43 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 1.12753 + -26.4311 * tfactors.T9i + 4.3289 * tfactors.T913 - + 1.46375 * tfactors.T9 + -0.180625 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 26.4311 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 4.3289 * tfactors.T923i - + 1.46375 + (5.0/3.0) * -0.180625 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_K37_to_p_Ar37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // K37 + n --> p + Ar37 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 19.3703 + 0.399131 * tfactors.T913 - + 0.0819317 * tfactors.T9 + -0.0133489 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.399131 * tfactors.T923i - + 0.0819317 + (5.0/3.0) * -0.0133489 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_K37_to_He4_Cl34_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // K37 + n --> He4 + Cl34 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 15.9641 + 1.35231 * tfactors.T913 - + -0.147095 * tfactors.T9 + 0.0306549 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 1.35231 * tfactors.T923i - + -0.147095 + (5.0/3.0) * 0.0306549 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_K37_to_p_Ca40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // K37 + He4 --> p + Ca40 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 54.2966 + -73.6776 * tfactors.T913i + 0.493294 * tfactors.T913 - + -0.902307 * tfactors.T9 + 0.0641391 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -73.6776 * tfactors.T943i + (1.0/3.0) * 0.493294 * tfactors.T923i - + -0.902307 + (5.0/3.0) * 0.0641391 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_K38_to_p_Ar38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // K38 + n --> p + Ar38 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 19.6025 + -0.5015 * tfactors.T913 - + 0.324921 * tfactors.T9 + -0.0393691 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.5015 * tfactors.T923i - + 0.324921 + (5.0/3.0) * -0.0393691 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_K38_to_He4_Cl35_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // K38 + n --> He4 + Cl35 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 17.5346 + 1.15173 * tfactors.T913 - + -0.190157 * tfactors.T9 + 0.0305104 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 1.15173 * tfactors.T923i - + -0.190157 + (5.0/3.0) * 0.0305104 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_K38_to_p_Ca41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // K38 + He4 --> p + Ca41 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 54.4204 + -73.7407 * tfactors.T913i + 0.600725 * tfactors.T913 - + -0.957475 * tfactors.T9 + 0.0689286 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -73.7407 * tfactors.T943i + (1.0/3.0) * 0.600725 * tfactors.T923i - + -0.957475 + (5.0/3.0) * 0.0689286 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_K39_to_p_Ar39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // K39 + n --> p + Ar39 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -15.2094 + 26.5209 * tfactors.T913 - + -3.63684 * tfactors.T9 + 0.276163 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 26.5209 * tfactors.T923i - + -3.63684 + (5.0/3.0) * 0.276163 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_K39_to_He4_Cl36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // K39 + n --> He4 + Cl36 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -18.3419 + 20.3122 * tfactors.T913 - + -0.37149 * tfactors.T9 + -0.0867942 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 20.3122 * tfactors.T923i - + -0.37149 + (5.0/3.0) * -0.0867942 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_K39_to_He4_Ar36_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // K39 + p --> He4 + Ar36 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.5166 + -30.0732 * tfactors.T913i + 7.03263 * tfactors.T913 - + -1.10085 * tfactors.T9 + 0.133768 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -30.0732 * tfactors.T943i + (1.0/3.0) * 7.03263 * tfactors.T923i - + -1.10085 + (5.0/3.0) * 0.133768 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_K39_to_p_Ca42_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // K39 + He4 --> p + Ca42 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -80.8734 + -1.43889 * tfactors.T9i + -31.1381 * tfactors.T913i + 117.868 * tfactors.T913 - + -27.0455 * tfactors.T9 + 2.75661 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.43889 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.1381 * tfactors.T943i + (1.0/3.0) * 117.868 * tfactors.T923i - + -27.0455 + (5.0/3.0) * 2.75661 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_K40_to_p_Ar40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // K40 + n --> p + Ar40 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 14.133 + -0.499903 * tfactors.T913 - + 0.849663 * tfactors.T9 + -0.0834774 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.499903 * tfactors.T923i - + 0.849663 + (5.0/3.0) * -0.0834774 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_K40_to_He4_Cl37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // K40 + n --> He4 + Cl37 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 16.0992 + -0.86425 * tfactors.T913 - + 0.646211 * tfactors.T9 + -0.0583195 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.86425 * tfactors.T923i - + 0.646211 + (5.0/3.0) * -0.0583195 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_K40_to_n_Ca40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // K40 + p --> n + Ca40 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 32.1312 + -30.0795 * tfactors.T913i + 2.76095 * tfactors.T913 - + -1.51745 * tfactors.T9 + 0.191236 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -30.0795 * tfactors.T943i + (1.0/3.0) * 2.76095 * tfactors.T923i - + -1.51745 + (5.0/3.0) * 0.191236 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_K40_to_He4_Ar37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // K40 + p --> He4 + Ar37 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 23.7792 + -30.0795 * tfactors.T913i + 8.28189 * tfactors.T913 - + -2.15178 * tfactors.T9 + 0.242064 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -30.0795 * tfactors.T943i + (1.0/3.0) * 8.28189 * tfactors.T923i - + -2.15178 + (5.0/3.0) * 0.242064 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_K40_to_n_Sc43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // K40 + He4 --> n + Sc43 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 8.9468 + -34.7402 * tfactors.T9i + -0.653091 * tfactors.T913 - + 1.79632 * tfactors.T9 + -0.19216 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 34.7402 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.653091 * tfactors.T923i - + 1.79632 + (5.0/3.0) * -0.19216 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_K40_to_p_Ca43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // K40 + He4 --> p + Ca43 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 43.3098 + -73.858 * tfactors.T913i + 16.1645 * tfactors.T913 - + -5.93343 * tfactors.T9 + 0.650563 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -73.858 * tfactors.T943i + (1.0/3.0) * 16.1645 * tfactors.T923i - + -5.93343 + (5.0/3.0) * 0.650563 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_K41_to_n_Ca41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // K41 + p --> n + Ca41 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // SM86 - ln_set_rate = 8.69806 + -13.9718 * tfactors.T9i + 6.52588 * tfactors.T913 - + -1.55272 * tfactors.T9 + 0.150334 * tfactors.T953 + 1.0 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 13.9718 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 6.52588 * tfactors.T923i - + -1.55272 + (5.0/3.0) * 0.150334 * tfactors.T923 + 1.0 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // SM86 - ln_set_rate = 15.9784 + -13.9718 * tfactors.T9i + -2.82146 * tfactors.T913 - + 1.71734 * tfactors.T9 + -0.187775 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 13.9718 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.82146 * tfactors.T923i - + 1.71734 + (5.0/3.0) * -0.187775 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_K41_to_He4_Ar38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // K41 + p --> He4 + Ar38 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // tb18 - ln_set_rate = 64.4107 + -0.681143 * tfactors.T9i + 9.28681 * tfactors.T913i + -73.161 * tfactors.T913 - + 4.26053 * tfactors.T9 + -0.235892 * tfactors.T953 + 31.8226 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.681143 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 9.28681 * tfactors.T943i + (1.0/3.0) * -73.161 * tfactors.T923i - + 4.26053 + (5.0/3.0) * -0.235892 * tfactors.T923 + 31.8226 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_K41_to_n_Sc44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // K41 + He4 --> n + Sc44 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // SM91 - ln_set_rate = 12.8237 + -39.3393 * tfactors.T9i + -7.79828 * tfactors.T913 - + 4.55188 * tfactors.T9 + -0.667478 * tfactors.T953 + 1.0 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 39.3393 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -7.79828 * tfactors.T923i - + 4.55188 + (5.0/3.0) * -0.667478 * tfactors.T923 + 1.0 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // SM91 - ln_set_rate = 12.4167 + -39.3393 * tfactors.T9i + -2.89121 * tfactors.T913 - + 2.26347 * tfactors.T9 + -0.251579 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 39.3393 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.89121 * tfactors.T923i - + 2.26347 + (5.0/3.0) * -0.251579 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_K41_to_p_Ca44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // K41 + He4 --> p + Ca44 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // SM91n - ln_set_rate = 55.5 + -73.9 * tfactors.T913i + -0.410794 * tfactors.T913 - + 0.365336 * tfactors.T9 + -0.607187 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -73.9 * tfactors.T943i + (1.0/3.0) * -0.410794 * tfactors.T923i - + 0.365336 + (5.0/3.0) * -0.607187 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // SM91n - ln_set_rate = 48.7841 + -73.9 * tfactors.T913i + 5.43181 * tfactors.T913 - + -2.12763 * tfactors.T9 + 0.134461 * tfactors.T953 + 0.333333 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -73.9 * tfactors.T943i + (1.0/3.0) * 5.43181 * tfactors.T923i - + -2.12763 + (5.0/3.0) * 0.134461 * tfactors.T923 + 0.333333 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ca40_to_p_K40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca40 + n --> p + K40 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 34.3284 + -6.13558 * tfactors.T9i + -30.0795 * tfactors.T913i + 2.76095 * tfactors.T913 - + -1.51745 * tfactors.T9 + 0.191236 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 6.13558 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -30.0795 * tfactors.T943i + (1.0/3.0) * 2.76095 * tfactors.T923i - + -1.51745 + (5.0/3.0) * 0.191236 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ca40_to_He4_Ar37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca40 + n --> He4 + Ar37 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -9.43576 + 13.8882 * tfactors.T913 - + 0.260223 * tfactors.T9 + -0.108063 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 13.8882 * tfactors.T923i - + 0.260223 + (5.0/3.0) * -0.108063 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ca40_to_He4_K37_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca40 + p --> He4 + K37 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 56.9522 + -60.1348 * tfactors.T9i + -73.6776 * tfactors.T913i + 0.493294 * tfactors.T913 - + -0.902307 * tfactors.T9 + 0.0641391 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 60.1348 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -73.6776 * tfactors.T943i + (1.0/3.0) * 0.493294 * tfactors.T923i - + -0.902307 + (5.0/3.0) * 0.0641391 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ca40_to_p_Sc43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca40 + He4 --> p + Sc43 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 35.6575 + -40.8757 * tfactors.T9i + -32.1734 * tfactors.T913i + 0.0296879 * tfactors.T913 - + -0.95232 * tfactors.T9 + 0.129022 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 40.8757 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -32.1734 * tfactors.T943i + (1.0/3.0) * 0.0296879 * tfactors.T923i - + -0.95232 + (5.0/3.0) * 0.129022 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ca41_to_p_K41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca41 + n --> p + K41 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // SM86 - ln_set_rate = 8.00491 + 6.52588 * tfactors.T913 - + -1.55272 * tfactors.T9 + 0.150334 * tfactors.T953 + 1.0 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 6.52588 * tfactors.T923i - + -1.55272 + (5.0/3.0) * 0.150334 * tfactors.T923 + 1.0 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // SM86 - ln_set_rate = 15.2853 + -2.82146 * tfactors.T913 - + 1.71734 * tfactors.T9 + -0.187775 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -2.82146 * tfactors.T923i - + 1.71734 + (5.0/3.0) * -0.187775 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ca41_to_He4_Ar38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca41 + n --> He4 + Ar38 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ta18 - ln_set_rate = 16.972 + -1.36064e-05 * tfactors.T9i + -0.0142 * tfactors.T913i + -0.10052 * tfactors.T913 - + 0.27737 * tfactors.T9 + -0.00483 * tfactors.T953 + -0.2165 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.36064e-05 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.0142 * tfactors.T943i + (1.0/3.0) * -0.10052 * tfactors.T923i - + 0.27737 + (5.0/3.0) * -0.00483 * tfactors.T923 + -0.2165 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ca41_to_He4_K38_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca41 + p --> He4 + K38 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 55.5592 + -17.0935 * tfactors.T9i + -73.7407 * tfactors.T913i + 0.600725 * tfactors.T913 - + -0.957475 * tfactors.T9 + 0.0689286 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 17.0935 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -73.7407 * tfactors.T943i + (1.0/3.0) * 0.600725 * tfactors.T923i - + -0.957475 + (5.0/3.0) * 0.0689286 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ca41_to_n_Ti44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca41 + He4 --> n + Ti44 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 4.15144 + -37.5487 * tfactors.T9i + 2.68094 * tfactors.T913 - + 1.34285 * tfactors.T9 + -0.18134 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 37.5487 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.68094 * tfactors.T923i - + 1.34285 + (5.0/3.0) * -0.18134 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ca41_to_p_Sc44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca41 + He4 --> p + Sc44 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 17.3516 + -25.3642 * tfactors.T9i + -32.179 * tfactors.T913i + 13.8907 * tfactors.T913 - + -3.30408 * tfactors.T9 + 0.332186 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 25.3642 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -32.179 * tfactors.T943i + (1.0/3.0) * 13.8907 * tfactors.T923i - + -3.30408 + (5.0/3.0) * 0.332186 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ca42_to_He4_Ar39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca42 + n --> He4 + Ar39 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -88.517 + 88.8565 * tfactors.T913 - + -12.9534 * tfactors.T9 + 0.93832 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 88.8565 * tfactors.T923i - + -12.9534 + (5.0/3.0) * 0.93832 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ca42_to_He4_K39_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca42 + p --> He4 + K39 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -78.212 + -31.1381 * tfactors.T913i + 117.868 * tfactors.T913 - + -27.0455 * tfactors.T9 + 2.75661 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -31.1381 * tfactors.T943i + (1.0/3.0) * 117.868 * tfactors.T923i - + -27.0455 + (5.0/3.0) * 2.75661 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ca42_to_n_Ti45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca42 + He4 --> n + Ti45 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 17.2379 + -60.2011 * tfactors.T9i + -1.31041 * tfactors.T913 - + 0.516347 * tfactors.T9 + -0.0189198 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 60.2011 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.31041 * tfactors.T923i - + 0.516347 + (5.0/3.0) * -0.0189198 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ca42_to_p_Sc45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca42 + He4 --> p + Sc45 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 18.625 + -27.1933 * tfactors.T9i + -32.1843 * tfactors.T913i + 14.0733 * tfactors.T913 - + -3.38786 * tfactors.T9 + 0.349494 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 27.1933 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -32.1843 * tfactors.T943i + (1.0/3.0) * 14.0733 * tfactors.T923i - + -3.38786 + (5.0/3.0) * 0.349494 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ca43_to_He4_Ar40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca43 + n --> He4 + Ar40 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 0.325905 + 4.3289 * tfactors.T913 - + 1.46375 * tfactors.T9 + -0.180625 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 4.3289 * tfactors.T923i - + 1.46375 + (5.0/3.0) * -0.180625 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ca43_to_n_Sc43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca43 + p --> n + Sc43 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 19.4535 + -34.849 * tfactors.T9i + -0.494422 * tfactors.T913 - + 0.261414 * tfactors.T9 + -0.0285528 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 34.849 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.494422 * tfactors.T923i - + 0.261414 + (5.0/3.0) * -0.0285528 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ca43_to_He4_K40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca43 + p --> He4 + K40 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 44.7054 + -0.108839 * tfactors.T9i + -73.858 * tfactors.T913i + 16.1645 * tfactors.T913 - + -5.93343 * tfactors.T9 + 0.650563 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.108839 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -73.858 * tfactors.T943i + (1.0/3.0) * 16.1645 * tfactors.T923i - + -5.93343 + (5.0/3.0) * 0.650563 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ca43_to_n_Ti46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca43 + He4 --> n + Ti46 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 53.4643 + -76.5897 * tfactors.T913i + 3.69244 * tfactors.T913 - + -1.90131 * tfactors.T9 + 0.171994 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -76.5897 * tfactors.T943i + (1.0/3.0) * 3.69244 * tfactors.T923i - + -1.90131 + (5.0/3.0) * 0.171994 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ca43_to_p_Sc46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca43 + He4 --> p + Sc46 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 69.4699 + -22.8373 * tfactors.T9i + 189.856 * tfactors.T913i + -278.908 * tfactors.T913 - + 13.9142 * tfactors.T9 + -0.770736 * tfactors.T953 + 153.141 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 22.8373 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 189.856 * tfactors.T943i + (1.0/3.0) * -278.908 * tfactors.T923i - + 13.9142 + (5.0/3.0) * -0.770736 * tfactors.T923 + 153.141 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ca44_to_n_Sc44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca44 + p --> n + Sc44 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 22.5127 + -51.4628 * tfactors.T9i + -1.95318 * tfactors.T913 - + 0.326277 * tfactors.T9 + -0.0205095 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 51.4628 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.95318 * tfactors.T923i - + 0.326277 + (5.0/3.0) * -0.0205095 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ca44_to_He4_K41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca44 + p --> He4 + K41 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // SM91n - ln_set_rate = 51.4508 + -12.1383 * tfactors.T9i + -73.9 * tfactors.T913i + 5.43181 * tfactors.T913 - + -2.12763 * tfactors.T9 + 0.134461 * tfactors.T953 + 0.333333 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 12.1383 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -73.9 * tfactors.T943i + (1.0/3.0) * 5.43181 * tfactors.T923i - + -2.12763 + (5.0/3.0) * 0.134461 * tfactors.T923 + 0.333333 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // SM91n - ln_set_rate = 58.1667 + -12.1383 * tfactors.T9i + -73.9 * tfactors.T913i + -0.410794 * tfactors.T913 - + 0.365336 * tfactors.T9 + -0.607187 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 12.1383 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -73.9 * tfactors.T943i + (1.0/3.0) * -0.410794 * tfactors.T923i - + 0.365336 + (5.0/3.0) * -0.607187 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ca44_to_n_Ti47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca44 + He4 --> n + Ti47 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -3.44255 + -25.3267 * tfactors.T9i + 4.6504 * tfactors.T913 - + 2.25932 * tfactors.T9 + -0.286843 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 25.3267 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 4.6504 * tfactors.T923i - + 2.25932 + (5.0/3.0) * -0.286843 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ca44_to_p_Sc47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca44 + He4 --> p + Sc47 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 75.2496 + -29.0126 * tfactors.T9i + 224.282 * tfactors.T913i + -318.978 * tfactors.T913 - + 15.9466 * tfactors.T9 + -0.877308 * tfactors.T953 + 174.938 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 29.0126 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 224.282 * tfactors.T943i + (1.0/3.0) * -318.978 * tfactors.T923i - + 15.9466 + (5.0/3.0) * -0.877308 * tfactors.T923 + 174.938 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ca45_to_n_Sc45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca45 + p --> n + Sc45 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -3.98017 + -6.10982 * tfactors.T9i + 14.7265 * tfactors.T913 - + -1.41914 * tfactors.T9 + 0.0785177 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 6.10982 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 14.7265 * tfactors.T923i - + -1.41914 + (5.0/3.0) * 0.0785177 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ca45_to_n_Ti48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca45 + He4 --> n + Ti48 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 57.1268 + -76.6866 * tfactors.T913i + -0.885239 * tfactors.T913 - + -0.554755 * tfactors.T9 + 0.0189393 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -76.6866 * tfactors.T943i + (1.0/3.0) * -0.885239 * tfactors.T923i - + -0.554755 + (5.0/3.0) * 0.0189393 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ca45_to_p_Sc48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca45 + He4 --> p + Sc48 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 71.9187 + -19.6095 * tfactors.T9i + 239.338 * tfactors.T913i + -335.863 * tfactors.T913 - + 14.1283 * tfactors.T9 + -0.596544 * tfactors.T953 + 190.967 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 19.6095 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 239.338 * tfactors.T943i + (1.0/3.0) * -335.863 * tfactors.T923i - + 14.1283 + (5.0/3.0) * -0.596544 * tfactors.T923 + 190.967 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ca46_to_n_Sc46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca46 + p --> n + Sc46 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 76.3672 + -25.675 * tfactors.T9i + 65.2318 * tfactors.T913i + -132.177 * tfactors.T913 - + 8.05925 * tfactors.T9 + -0.425861 * tfactors.T953 + 59.0907 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 25.675 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 65.2318 * tfactors.T943i + (1.0/3.0) * -132.177 * tfactors.T923i - + 8.05925 + (5.0/3.0) * -0.425861 * tfactors.T923 + 59.0907 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ca46_to_n_Ti49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca46 + He4 --> n + Ti49 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -105.987 + -2.58408 * tfactors.T9i + 100.098 * tfactors.T913 - + -14.6121 * tfactors.T9 + 1.09235 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.58408 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 100.098 * tfactors.T923i - + -14.6121 + (5.0/3.0) * 1.09235 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ca46_to_p_Sc49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca46 + He4 --> p + Sc49 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 74.0275 + -22.4589 * tfactors.T9i + 218.203 * tfactors.T913i + -316.114 * tfactors.T913 - + 14.9186 * tfactors.T9 + -0.720017 * tfactors.T953 + 174.788 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 22.4589 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 218.203 * tfactors.T943i + (1.0/3.0) * -316.114 * tfactors.T923i - + 14.9186 + (5.0/3.0) * -0.720017 * tfactors.T923 + 174.788 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ca47_to_n_Sc47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca47 + p --> n + Sc47 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 34.8341 + -31.164 * tfactors.T913i + -0.314533 * tfactors.T913 - + -0.0979736 * tfactors.T9 + 0.00385901 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -31.164 * tfactors.T943i + (1.0/3.0) * -0.314533 * tfactors.T923i - + -0.0979736 + (5.0/3.0) * 0.00385901 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ca47_to_n_Ti50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca47 + He4 --> n + Ti50 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 57.426 + -76.7758 * tfactors.T913i + -0.981924 * tfactors.T913 - + -0.52791 * tfactors.T9 + 0.0150723 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -76.7758 * tfactors.T943i + (1.0/3.0) * -0.981924 * tfactors.T923i - + -0.52791 + (5.0/3.0) * 0.0150723 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ca48_to_n_Sc48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca48 + p --> n + Sc48 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 196.239 + -7.0501 * tfactors.T9i + 149.725 * tfactors.T913i + -359.287 * tfactors.T913 - + 24.8127 * tfactors.T9 + -1.57647 * tfactors.T953 + 151.916 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 7.0501 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 149.725 * tfactors.T943i + (1.0/3.0) * -359.287 * tfactors.T923i - + 24.8127 + (5.0/3.0) * -1.57647 * tfactors.T923 + 151.916 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ca48_to_n_Ti51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ca48 + He4 --> n + Ti51 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 72.5425 + -13.9828 * tfactors.T9i + 343.859 * tfactors.T913i + -441.137 * tfactors.T913 - + 18.781 * tfactors.T9 + -0.911515 * tfactors.T953 + 254.789 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 13.9828 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 343.859 * tfactors.T943i + (1.0/3.0) * -441.137 * tfactors.T923i - + 18.781 + (5.0/3.0) * -0.911515 * tfactors.T923 + 254.789 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Sc43_to_p_Ca43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc43 + n --> p + Ca43 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 19.4535 + -0.494422 * tfactors.T913 - + 0.261414 * tfactors.T9 + -0.0285528 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.494422 * tfactors.T923i - + 0.261414 + (5.0/3.0) * -0.0285528 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Sc43_to_He4_K40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc43 + n --> He4 + K40 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 10.3424 + -0.653091 * tfactors.T913 - + 1.79632 * tfactors.T9 + -0.19216 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.653091 * tfactors.T923i - + 1.79632 + (5.0/3.0) * -0.19216 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Sc43_to_He4_Ca40_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc43 + p --> He4 + Ca40 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 34.8559 + -32.1734 * tfactors.T913i + 0.0296879 * tfactors.T913 - + -0.95232 * tfactors.T9 + 0.129022 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -32.1734 * tfactors.T943i + (1.0/3.0) * 0.0296879 * tfactors.T923i - + -0.95232 + (5.0/3.0) * 0.129022 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Sc43_to_n_V46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc43 + He4 --> n + V46 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 4.15978 + -55.2527 * tfactors.T9i + 6.99126 * tfactors.T913 - + -0.552826 * tfactors.T9 + 0.0272052 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 55.2527 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 6.99126 * tfactors.T923i - + -0.552826 + (5.0/3.0) * 0.0272052 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Sc43_to_p_Ti46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc43 + He4 --> p + Ti46 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 57.3723 + -79.122 * tfactors.T913i + -0.495539 * tfactors.T913 - + -0.618414 * tfactors.T9 + 0.0175873 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -79.122 * tfactors.T943i + (1.0/3.0) * -0.495539 * tfactors.T923i - + -0.618414 + (5.0/3.0) * 0.0175873 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Sc44_to_p_Ca44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc44 + n --> p + Ca44 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.9033 + -1.95318 * tfactors.T913 - + 0.326277 * tfactors.T9 + -0.0205095 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.95318 * tfactors.T923i - + 0.326277 + (5.0/3.0) * -0.0205095 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Sc44_to_He4_K41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc44 + n --> He4 + K41 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // SM91 - ln_set_rate = 13.8809 + -7.79828 * tfactors.T913 - + 4.55188 * tfactors.T9 + -0.667478 * tfactors.T953 + 1.0 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -7.79828 * tfactors.T923i - + 4.55188 + (5.0/3.0) * -0.667478 * tfactors.T923 + 1.0 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // SM91 - ln_set_rate = 13.4739 + -2.89121 * tfactors.T913 - + 2.26347 * tfactors.T9 + -0.251579 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -2.89121 * tfactors.T923i - + 2.26347 + (5.0/3.0) * -0.251579 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Sc44_to_n_Ti44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc44 + p --> n + Ti44 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 8.67946 + -12.1845 * tfactors.T9i + 4.3491 * tfactors.T913 - + 0.421585 * tfactors.T9 + -0.0855256 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 12.1845 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 4.3491 * tfactors.T923i - + 0.421585 + (5.0/3.0) * -0.0855256 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Sc44_to_He4_Ca41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc44 + p --> He4 + Ca41 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 19.102 + -32.179 * tfactors.T913i + 13.8907 * tfactors.T913 - + -3.30408 * tfactors.T9 + 0.332186 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -32.179 * tfactors.T943i + (1.0/3.0) * 13.8907 * tfactors.T923i - + -3.30408 + (5.0/3.0) * 0.332186 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Sc44_to_n_V47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc44 + He4 --> n + V47 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -35.9521 + -16.9477 * tfactors.T9i + 31.743 * tfactors.T913 - + -1.66241 * tfactors.T9 + -0.0278854 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 16.9477 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 31.743 * tfactors.T923i - + -1.66241 + (5.0/3.0) * -0.0278854 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Sc44_to_p_Ti47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc44 + He4 --> p + Ti47 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 59.5285 + -79.1731 * tfactors.T913i + -3.93328 * tfactors.T913 - + 0.112908 * tfactors.T9 + -0.0385366 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -79.1731 * tfactors.T943i + (1.0/3.0) * -3.93328 * tfactors.T923i - + 0.112908 + (5.0/3.0) * -0.0385366 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Sc45_to_p_Ca45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc45 + n --> p + Ca45 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -3.98017 + 14.7265 * tfactors.T913 - + -1.41914 * tfactors.T9 + 0.0785177 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 14.7265 * tfactors.T923i - + -1.41914 + (5.0/3.0) * 0.0785177 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Sc45_to_n_Ti45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc45 + p --> n + Ti45 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.2443 + -33.0078 * tfactors.T9i + -1.6182 * tfactors.T913 - + 0.577281 * tfactors.T9 + -0.0582774 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 33.0078 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.6182 * tfactors.T923i - + 0.577281 + (5.0/3.0) * -0.0582774 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Sc45_to_He4_Ca42_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc45 + p --> He4 + Ca42 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 17.8284 + -32.1843 * tfactors.T913i + 14.0733 * tfactors.T913 - + -3.38786 * tfactors.T9 + 0.349494 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -32.1843 * tfactors.T943i + (1.0/3.0) * 14.0733 * tfactors.T923i - + -3.38786 + (5.0/3.0) * 0.349494 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Sc45_to_n_V48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc45 + He4 --> n + V48 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -7.04722 + -25.9803 * tfactors.T9i + 8.18067 * tfactors.T913 - + 1.50465 * tfactors.T9 + -0.224564 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 25.9803 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 8.18067 * tfactors.T923i - + 1.50465 + (5.0/3.0) * -0.224564 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Sc45_to_p_Ti48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc45 + He4 --> p + Ti48 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 57.207 + -79.222 * tfactors.T913i + 0.0710184 * tfactors.T913 - + -1.47173 * tfactors.T9 + 0.15944 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -79.222 * tfactors.T943i + (1.0/3.0) * 0.0710184 * tfactors.T923i - + -1.47173 + (5.0/3.0) * 0.15944 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Sc46_to_p_Ca46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc46 + n --> p + Ca46 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 74.17 + -0.632473 * tfactors.T9i + 65.2318 * tfactors.T913i + -132.177 * tfactors.T913 - + 8.05925 * tfactors.T9 + -0.425861 * tfactors.T953 + 59.0907 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.632473 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 65.2318 * tfactors.T943i + (1.0/3.0) * -132.177 * tfactors.T923i - + 8.05925 + (5.0/3.0) * -0.425861 * tfactors.T923 + 59.0907 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Sc46_to_n_Ti46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc46 + p --> n + Ti46 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 120.144 + -5.3851 * tfactors.T9i + 200.092 * tfactors.T913i + -329.451 * tfactors.T913 - + 18.1752 * tfactors.T9 + -1.01788 * tfactors.T953 + 164.827 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.3851 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 200.092 * tfactors.T943i + (1.0/3.0) * -329.451 * tfactors.T923i - + 18.1752 + (5.0/3.0) * -1.01788 * tfactors.T923 + 164.827 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Sc46_to_He4_Ca43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc46 + p --> He4 + Ca43 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 70.6373 + -5.26809 * tfactors.T9i + 189.856 * tfactors.T913i + -278.908 * tfactors.T913 - + 13.9142 * tfactors.T9 + -0.770736 * tfactors.T953 + 153.141 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.26809 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 189.856 * tfactors.T943i + (1.0/3.0) * -278.908 * tfactors.T923i - + 13.9142 + (5.0/3.0) * -0.770736 * tfactors.T923 + 153.141 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Sc46_to_n_V49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc46 + He4 --> n + V49 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = -907.911 + 14.6583 * tfactors.T9i + -1592.71 * tfactors.T913i + 2609.63 * tfactors.T913 - + -155.96 * tfactors.T9 + 8.94971 * tfactors.T953 + -1223.97 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -14.6583 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1592.71 * tfactors.T943i + (1.0/3.0) * 2609.63 * tfactors.T923i - + -155.96 + (5.0/3.0) * 8.94971 * tfactors.T923 + -1223.97 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Sc46_to_p_Ti49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc46 + He4 --> p + Ti49 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = -938.441 + 14.7159 * tfactors.T9i + -1603.15 * tfactors.T913i + 2650.58 * tfactors.T913 - + -159.776 * tfactors.T9 + 9.24163 * tfactors.T953 + -1237.15 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -14.7159 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1603.15 * tfactors.T943i + (1.0/3.0) * 2650.58 * tfactors.T923i - + -159.776 + (5.0/3.0) * 9.24163 * tfactors.T923 + -1237.15 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Sc47_to_p_Ca47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc47 + n --> p + Ca47 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 34.8341 + -14.0374 * tfactors.T9i + -31.164 * tfactors.T913i + -0.314533 * tfactors.T913 - + -0.0979736 * tfactors.T9 + 0.00385901 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 14.0374 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -31.164 * tfactors.T943i + (1.0/3.0) * -0.314533 * tfactors.T923i - + -0.0979736 + (5.0/3.0) * 0.00385901 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Sc47_to_n_Ti47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc47 + p --> n + Ti47 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -22.9861 + -2.11287 * tfactors.T9i + 30.6942 * tfactors.T913 - + -3.81514 * tfactors.T9 + 0.263484 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.11287 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 30.6942 * tfactors.T923i - + -3.81514 + (5.0/3.0) * 0.263484 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Sc47_to_He4_Ca44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc47 + p --> He4 + Ca44 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 74.4575 + -5.79201 * tfactors.T9i + 224.282 * tfactors.T913i + -318.978 * tfactors.T913 - + 15.9466 * tfactors.T9 + -0.877308 * tfactors.T953 + 174.938 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.79201 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 224.282 * tfactors.T943i + (1.0/3.0) * -318.978 * tfactors.T923i - + 15.9466 + (5.0/3.0) * -0.877308 * tfactors.T923 + 174.938 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Sc47_to_n_V50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc47 + He4 --> n + V50 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -72.4729 + -8.78424 * tfactors.T9i + 66.0687 * tfactors.T913 - + -8.06344 * tfactors.T9 + 0.527546 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 8.78424 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 66.0687 * tfactors.T923i - + -8.06344 + (5.0/3.0) * 0.527546 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Sc47_to_p_Ti50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc47 + He4 --> p + Ti50 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = -980.428 + 14.926 * tfactors.T9i + -1637.36 * tfactors.T913i + 2730.59 * tfactors.T913 - + -164.393 * tfactors.T9 + 9.47988 * tfactors.T953 + -1271.98 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -14.926 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1637.36 * tfactors.T943i + (1.0/3.0) * 2730.59 * tfactors.T923i - + -164.393 + (5.0/3.0) * 9.47988 * tfactors.T923 + -1271.98 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Sc48_to_p_Ca48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc48 + n --> p + Ca48 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 193.674 + -1.20143 * tfactors.T9i + 149.725 * tfactors.T913i + -359.287 * tfactors.T913 - + 24.8127 * tfactors.T9 + -1.57647 * tfactors.T953 + 151.916 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.20143 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 149.725 * tfactors.T943i + (1.0/3.0) * -359.287 * tfactors.T923i - + 24.8127 + (5.0/3.0) * -1.57647 * tfactors.T923 + 151.916 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Sc48_to_n_Ti48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc48 + p --> n + Ti48 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 118.891 + -5.45559 * tfactors.T9i + 201.123 * tfactors.T913i + -329.189 * tfactors.T913 - + 18.2769 * tfactors.T9 + -1.03382 * tfactors.T953 + 164.945 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.45559 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 201.123 * tfactors.T943i + (1.0/3.0) * -329.189 * tfactors.T923i - + 18.2769 + (5.0/3.0) * -1.03382 * tfactors.T923 + 164.945 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Sc48_to_He4_Ca45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc48 + p --> He4 + Ca45 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 72.7227 + -5.86977 * tfactors.T9i + 239.338 * tfactors.T913i + -335.863 * tfactors.T913 - + 14.1283 * tfactors.T9 + -0.596544 * tfactors.T953 + 190.967 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.86977 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 239.338 * tfactors.T943i + (1.0/3.0) * -335.863 * tfactors.T923i - + 14.1283 + (5.0/3.0) * -0.596544 * tfactors.T923 + 190.967 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Sc48_to_n_V51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc48 + He4 --> n + V51 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = -925.664 + 14.9263 * tfactors.T9i + -1621.99 * tfactors.T913i + 2659.5 * tfactors.T913 - + -158.959 * tfactors.T9 + 9.12514 * tfactors.T953 + -1247.44 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -14.9263 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1621.99 * tfactors.T943i + (1.0/3.0) * 2659.5 * tfactors.T923i - + -158.959 + (5.0/3.0) * 9.12514 * tfactors.T923 + -1247.44 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Sc48_to_p_Ti51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc48 + He4 --> p + Ti51 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = -846.099 + 17.271 * tfactors.T9i + -1740.8 * tfactors.T913i + 2683.45 * tfactors.T913 - + -154.78 * tfactors.T9 + 8.68561 * tfactors.T953 + -1291.82 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -17.271 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1740.8 * tfactors.T943i + (1.0/3.0) * 2683.45 * tfactors.T923i - + -154.78 + (5.0/3.0) * 8.68561 * tfactors.T923 + -1291.82 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Sc49_to_n_Ti49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc49 + p --> n + Ti49 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 120.282 + -5.52132 * tfactors.T9i + 204.555 * tfactors.T913i + -334.141 * tfactors.T913 - + 18.5078 * tfactors.T9 + -1.04158 * tfactors.T953 + 167.483 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.52132 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 204.555 * tfactors.T943i + (1.0/3.0) * -334.141 * tfactors.T923i - + 18.5078 + (5.0/3.0) * -1.04158 * tfactors.T923 + 167.483 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Sc49_to_He4_Ca46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc49 + p --> He4 + Ca46 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 73.2396 + -5.66716 * tfactors.T9i + 218.203 * tfactors.T913i + -316.114 * tfactors.T913 - + 14.9186 * tfactors.T9 + -0.720017 * tfactors.T953 + 174.788 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.66716 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 218.203 * tfactors.T943i + (1.0/3.0) * -316.114 * tfactors.T923i - + 14.9186 + (5.0/3.0) * -0.720017 * tfactors.T923 + 174.788 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Sc49_to_n_V52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Sc49 + He4 --> n + V52 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = -14.4353 + -11.0443 * tfactors.T9i + 174.784 * tfactors.T913i + -175.991 * tfactors.T913 - + 2.92402 * tfactors.T9 + 0.0459501 * tfactors.T953 + 127.478 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 11.0443 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 174.784 * tfactors.T943i + (1.0/3.0) * -175.991 * tfactors.T923i - + 2.92402 + (5.0/3.0) * 0.0459501 * tfactors.T923 + 127.478 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ti44_to_p_Sc44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti44 + n --> p + Sc44 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 10.2889 + 4.3491 * tfactors.T913 - + 0.421585 * tfactors.T9 + -0.0855256 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 4.3491 * tfactors.T923i - + 0.421585 + (5.0/3.0) * -0.0855256 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ti44_to_He4_Ca41_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti44 + n --> He4 + Ca41 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 7.51125 + 2.68094 * tfactors.T913 - + 1.34285 * tfactors.T9 + -0.18134 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 2.68094 * tfactors.T923i - + 1.34285 + (5.0/3.0) * -0.18134 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ti44_to_p_V47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti44 + He4 --> p + V47 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // chw0r - ln_set_rate = -76.5154 + -10.7931 * tfactors.T9i + 70.2835 * tfactors.T913 - + -7.99061 * tfactors.T9 + 0.486213 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 10.7931 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 70.2835 * tfactors.T923i - + -7.99061 + (5.0/3.0) * 0.486213 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ti45_to_p_Sc45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti45 + n --> p + Sc45 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.2443 + -1.6182 * tfactors.T913 - + 0.577281 * tfactors.T9 + -0.0582774 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.6182 * tfactors.T923i - + 0.577281 + (5.0/3.0) * -0.0582774 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ti45_to_He4_Ca42_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti45 + n --> He4 + Ca42 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 16.4413 + -1.31041 * tfactors.T913 - + 0.516347 * tfactors.T9 + -0.0189198 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.31041 * tfactors.T923i - + 0.516347 + (5.0/3.0) * -0.0189198 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ti45_to_n_Cr48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti45 + He4 --> n + Cr48 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -30.7717 + -21.2706 * tfactors.T9i + 29.3634 * tfactors.T913 - + -2.63599 * tfactors.T9 + 0.159116 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 21.2706 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 29.3634 * tfactors.T923i - + -2.63599 + (5.0/3.0) * 0.159116 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ti45_to_p_V48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti45 + He4 --> p + V48 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 54.1979 + -81.7175 * tfactors.T913i + 5.07471 * tfactors.T913 - + -2.34907 * tfactors.T9 + 0.226169 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -81.7175 * tfactors.T943i + (1.0/3.0) * 5.07471 * tfactors.T923i - + -2.34907 + (5.0/3.0) * 0.226169 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ti46_to_p_Sc46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti46 + n --> p + Sc46 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 122.341 + -23.7666 * tfactors.T9i + 200.092 * tfactors.T913i + -329.451 * tfactors.T913 - + 18.1752 * tfactors.T9 + -1.01788 * tfactors.T953 + 164.827 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 23.7666 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 200.092 * tfactors.T943i + (1.0/3.0) * -329.451 * tfactors.T923i - + 18.1752 + (5.0/3.0) * -1.01788 * tfactors.T923 + 164.827 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ti46_to_He4_Ca43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti46 + n --> He4 + Ca43 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 56.8289 + -0.793539 * tfactors.T9i + -76.5897 * tfactors.T913i + 3.69244 * tfactors.T913 - + -1.90131 * tfactors.T9 + 0.171994 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.793539 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -76.5897 * tfactors.T943i + (1.0/3.0) * 3.69244 * tfactors.T923i - + -1.90131 + (5.0/3.0) * 0.171994 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ti46_to_n_V46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti46 + p --> n + V46 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 21.15 + -90.8951 * tfactors.T9i + -0.663329 * tfactors.T913 - + 0.174849 * tfactors.T9 + -0.0157869 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 90.8951 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.663329 * tfactors.T923i - + 0.174849 + (5.0/3.0) * -0.0157869 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ti46_to_He4_Sc43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti46 + p --> He4 + Sc43 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 60.7369 + -35.6425 * tfactors.T9i + -79.122 * tfactors.T913i + -0.495539 * tfactors.T913 - + -0.618414 * tfactors.T9 + 0.0175873 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 35.6425 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -79.122 * tfactors.T943i + (1.0/3.0) * -0.495539 * tfactors.T923i - + -0.618414 + (5.0/3.0) * 0.0175873 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ti46_to_n_Cr49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti46 + He4 --> n + Cr49 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 13.9788 + -51.5163 * tfactors.T9i + -2.81456 * tfactors.T913 - + 1.61029 * tfactors.T9 + -0.138467 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 51.5163 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.81456 * tfactors.T923i - + 1.61029 + (5.0/3.0) * -0.138467 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ti46_to_p_V49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti46 + He4 --> p + V49 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -19.3117 + -11.9588 * tfactors.T9i + -34.217 * tfactors.T913i + 47.2584 * tfactors.T913 - + -9.18871 * tfactors.T9 + 0.87823 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 11.9588 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -34.217 * tfactors.T943i + (1.0/3.0) * 47.2584 * tfactors.T923i - + -9.18871 + (5.0/3.0) * 0.87823 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ti47_to_p_Sc47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti47 + n --> p + Sc47 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -22.6984 + 30.6942 * tfactors.T913 - + -3.81514 * tfactors.T9 + 0.263484 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 30.6942 * tfactors.T923i - + -3.81514 + (5.0/3.0) * 0.263484 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ti47_to_He4_Ca44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti47 + n --> He4 + Ca44 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -3.94695 + 4.6504 * tfactors.T913 - + 2.25932 * tfactors.T9 + -0.286843 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 4.6504 * tfactors.T923i - + 2.25932 + (5.0/3.0) * -0.286843 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ti47_to_n_V47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti47 + p --> n + V47 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 19.9856 + -43.0839 * tfactors.T9i + -0.897943 * tfactors.T913 - + 0.233018 * tfactors.T9 + -0.0170844 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 43.0839 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.897943 * tfactors.T923i - + 0.233018 + (5.0/3.0) * -0.0170844 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ti47_to_He4_Sc44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti47 + p --> He4 + Sc44 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 60.6335 + -26.1362 * tfactors.T9i + -79.1731 * tfactors.T913i + -3.93328 * tfactors.T913 - + 0.112908 * tfactors.T9 + -0.0385366 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 26.1362 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -79.1731 * tfactors.T943i + (1.0/3.0) * -3.93328 * tfactors.T923i - + 0.112908 + (5.0/3.0) * -0.0385366 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ti47_to_n_Cr50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti47 + He4 --> n + Cr50 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -111.793 + -3.70527 * tfactors.T9i + 104.649 * tfactors.T913 - + -15.3856 * tfactors.T9 + 1.13897 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.70527 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 104.649 * tfactors.T923i - + -15.3856 + (5.0/3.0) * 1.13897 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ti47_to_p_V50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti47 + He4 --> p + V50 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -51.1413 + -6.67137 * tfactors.T9i + -34.2216 * tfactors.T913i + 78.8919 * tfactors.T913 - + -16.0561 * tfactors.T9 + 1.55251 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 6.67137 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -34.2216 * tfactors.T943i + (1.0/3.0) * 78.8919 * tfactors.T923i - + -16.0561 + (5.0/3.0) * 1.55251 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ti48_to_p_Sc48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti48 + n --> p + Sc48 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 121.456 + -42.7176 * tfactors.T9i + 201.123 * tfactors.T913i + -329.189 * tfactors.T913 - + 18.2769 * tfactors.T9 + -1.03382 * tfactors.T953 + 164.945 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 42.7176 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 201.123 * tfactors.T943i + (1.0/3.0) * -329.189 * tfactors.T923i - + 18.2769 + (5.0/3.0) * -1.03382 * tfactors.T923 + 164.945 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ti48_to_He4_Ca45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti48 + n --> He4 + Ca45 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 60.4957 + -23.5499 * tfactors.T9i + -76.6866 * tfactors.T913i + -0.885239 * tfactors.T913 - + -0.554755 * tfactors.T9 + 0.0189393 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 23.5499 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -76.6866 * tfactors.T943i + (1.0/3.0) * -0.885239 * tfactors.T923i - + -0.554755 + (5.0/3.0) * 0.0189393 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ti48_to_n_V48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti48 + p --> n + V48 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 21.7458 + -55.64 * tfactors.T9i + -0.307045 * tfactors.T913 - + 0.0615476 * tfactors.T9 + -0.00172407 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 55.64 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.307045 * tfactors.T923i - + 0.0615476 + (5.0/3.0) * -0.00172407 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ti48_to_He4_Sc45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti48 + p --> He4 + Sc45 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 60.5759 + -29.6597 * tfactors.T9i + -79.222 * tfactors.T913i + 0.0710184 * tfactors.T913 - + -1.47173 * tfactors.T9 + 0.15944 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 29.6597 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -79.222 * tfactors.T943i + (1.0/3.0) * 0.0710184 * tfactors.T923i - + -1.47173 + (5.0/3.0) * 0.15944 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ti48_to_n_Cr51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti48 + He4 --> n + Cr51 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 0.479256 + -31.1618 * tfactors.T9i + 1.94389 * tfactors.T913 - + 2.5871 * tfactors.T9 + -0.307303 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 31.1618 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.94389 * tfactors.T923i - + 2.5871 + (5.0/3.0) * -0.307303 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ti48_to_p_V51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti48 + He4 --> p + V51 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -12.9707 + -13.3498 * tfactors.T9i + -34.2261 * tfactors.T913i + 38.6574 * tfactors.T913 - + -7.18743 * tfactors.T9 + 0.692255 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 13.3498 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -34.2261 * tfactors.T943i + (1.0/3.0) * 38.6574 * tfactors.T923i - + -7.18743 + (5.0/3.0) * 0.692255 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ti49_to_p_Sc49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti49 + n --> p + Sc49 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 120.282 + -19.7252 * tfactors.T9i + 204.555 * tfactors.T913i + -334.141 * tfactors.T913 - + 18.5078 * tfactors.T9 + -1.04158 * tfactors.T953 + 167.483 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 19.7252 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 204.555 * tfactors.T943i + (1.0/3.0) * -334.141 * tfactors.T923i - + 18.5078 + (5.0/3.0) * -1.04158 * tfactors.T923 + 167.483 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ti49_to_He4_Ca46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti49 + n --> He4 + Ca46 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -106.775 + 100.098 * tfactors.T913 - + -14.6121 * tfactors.T9 + 1.09235 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 100.098 * tfactors.T923i - + -14.6121 + (5.0/3.0) * 1.09235 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ti49_to_n_V49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti49 + p --> n + V49 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 15.9391 + -16.0629 * tfactors.T9i + -2.17107 * tfactors.T913 - + 1.10014 * tfactors.T9 + -0.0944408 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 16.0629 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.17107 * tfactors.T923i - + 1.10014 + (5.0/3.0) * -0.0944408 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ti49_to_He4_Sc46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti49 + p --> He4 + Sc46 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = -937.032 + -7.73881 * tfactors.T9i + -1603.15 * tfactors.T913i + 2650.58 * tfactors.T913 - + -159.776 * tfactors.T9 + 9.24163 * tfactors.T953 + -1237.15 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 7.73881 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1603.15 * tfactors.T943i + (1.0/3.0) * 2650.58 * tfactors.T923i - + -159.776 + (5.0/3.0) * 9.24163 * tfactors.T923 + -1237.15 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ti49_to_n_Cr52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti49 + He4 --> n + Cr52 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 58.814 + -81.8999 * tfactors.T913i + -0.331496 * tfactors.T913 - + -0.758416 * tfactors.T9 + 0.0413394 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -81.8999 * tfactors.T943i + (1.0/3.0) * -0.331496 * tfactors.T923i - + -0.758416 + (5.0/3.0) * 0.0413394 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ti49_to_p_V52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti49 + He4 --> p + V52 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 59.4896 + -28.9283 * tfactors.T9i + 209.633 * tfactors.T913i + -291.46 * tfactors.T913 - + 13.4258 * tfactors.T9 + -0.668366 * tfactors.T953 + 164.685 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 28.9283 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 209.633 * tfactors.T943i + (1.0/3.0) * -291.46 * tfactors.T923i - + 13.4258 + (5.0/3.0) * -0.668366 * tfactors.T923 + 164.685 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ti50_to_He4_Ca47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti50 + n --> He4 + Ca47 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 60.7989 + -39.9212 * tfactors.T9i + -76.7758 * tfactors.T913i + -0.981924 * tfactors.T913 - + -0.52791 * tfactors.T9 + 0.0150723 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 39.9212 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -76.7758 * tfactors.T943i + (1.0/3.0) * -0.981924 * tfactors.T923i - + -0.52791 + (5.0/3.0) * 0.0150723 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ti50_to_n_V50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti50 + p --> n + V50 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 4.70506 + -34.668 * tfactors.T9i + 13.156 * tfactors.T913 - + -2.27428 * tfactors.T9 + 0.204692 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 34.668 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 13.156 * tfactors.T923i - + -2.27428 + (5.0/3.0) * 0.204692 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ti50_to_He4_Sc47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti50 + p --> He4 + Sc47 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = -977.055 + -10.952 * tfactors.T9i + -1637.36 * tfactors.T913i + 2730.59 * tfactors.T913 - + -164.393 * tfactors.T9 + 9.47988 * tfactors.T953 + -1271.98 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 10.952 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1637.36 * tfactors.T943i + (1.0/3.0) * 2730.59 * tfactors.T923i - + -164.393 + (5.0/3.0) * 9.47988 * tfactors.T923 + -1271.98 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ti50_to_n_Cr53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti50 + He4 --> n + Cr53 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -23.5021 + -20.7527 * tfactors.T9i + 21.17 * tfactors.T913 - + -0.195248 * tfactors.T9 + -0.121068 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 20.7527 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 21.17 * tfactors.T923i - + -0.195248 + (5.0/3.0) * -0.121068 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ti51_to_He4_Ca48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti51 + n --> He4 + Ca48 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 72.4516 + -12.4162 * tfactors.T9i + 343.859 * tfactors.T913i + -441.137 * tfactors.T913 - + 18.781 * tfactors.T9 + -0.911515 * tfactors.T953 + 254.789 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 12.4162 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 343.859 * tfactors.T943i + (1.0/3.0) * -441.137 * tfactors.T923i - + 18.781 + (5.0/3.0) * -0.911515 * tfactors.T923 + 254.789 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ti51_to_n_V51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti51 + p --> n + V51 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 121.807 + -5.7807 * tfactors.T9i + 213.317 * tfactors.T913i + -345.382 * tfactors.T913 - + 19.0423 * tfactors.T9 + -1.06972 * tfactors.T953 + 173.788 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.7807 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 213.317 * tfactors.T943i + (1.0/3.0) * -345.382 * tfactors.T923i - + 19.0423 + (5.0/3.0) * -1.06972 * tfactors.T923 + 173.788 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ti51_to_He4_Sc48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti51 + p --> He4 + Sc48 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = -843.625 + 12.9889 * tfactors.T9i + -1740.8 * tfactors.T913i + 2683.45 * tfactors.T913 - + -154.78 * tfactors.T9 + 8.68561 * tfactors.T953 + -1291.82 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -12.9889 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1740.8 * tfactors.T943i + (1.0/3.0) * 2683.45 * tfactors.T923i - + -154.78 + (5.0/3.0) * 8.68561 * tfactors.T923 + -1291.82 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ti51_to_n_Cr54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ti51 + He4 --> n + Cr54 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = -987.778 + 15.8616 * tfactors.T9i + -1722.81 * tfactors.T913i + 2829.38 * tfactors.T913 - + -169.068 * tfactors.T9 + 9.70315 * tfactors.T953 + -1326.98 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -15.8616 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1722.81 * tfactors.T943i + (1.0/3.0) * 2829.38 * tfactors.T923i - + -169.068 + (5.0/3.0) * 9.70315 * tfactors.T923 + -1326.98 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_V46_to_p_Ti46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V46 + n --> p + Ti46 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 21.15 + -0.663329 * tfactors.T913 - + 0.174849 * tfactors.T9 + -0.0157869 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.663329 * tfactors.T923i - + 0.174849 + (5.0/3.0) * -0.0157869 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_V46_to_He4_Sc43_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V46 + n --> He4 + Sc43 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 7.52435 + 6.99126 * tfactors.T913 - + -0.552826 * tfactors.T9 + 0.0272052 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 6.99126 * tfactors.T923i - + -0.552826 + (5.0/3.0) * 0.0272052 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_V46_to_p_Cr49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V46 + He4 --> p + Cr49 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 59.798 + -84.2255 * tfactors.T913i + -1.09776 * tfactors.T913 - + -0.495216 * tfactors.T9 + 0.0124719 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -84.2255 * tfactors.T943i + (1.0/3.0) * -1.09776 * tfactors.T923i - + -0.495216 + (5.0/3.0) * 0.0124719 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_V47_to_p_Ti47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V47 + n --> p + Ti47 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.3911 + -0.897943 * tfactors.T913 - + 0.233018 * tfactors.T9 + -0.0170844 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.897943 * tfactors.T923i - + 0.233018 + (5.0/3.0) * -0.0170844 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_V47_to_He4_Sc44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V47 + n --> He4 + Sc44 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -34.4416 + 31.743 * tfactors.T913 - + -1.66241 * tfactors.T9 + -0.0278854 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 31.743 * tfactors.T923i - + -1.66241 + (5.0/3.0) * -0.0278854 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_V47_to_He4_Ti44_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V47 + p --> He4 + Ti44 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // chw0r - ln_set_rate = -76.6143 + -6.02945 * tfactors.T9i + 70.2835 * tfactors.T913 - + -7.99061 * tfactors.T9 + 0.486213 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 6.02945 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 70.2835 * tfactors.T923i - + -7.99061 + (5.0/3.0) * 0.486213 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_V47_to_n_Mn50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V47 + He4 --> n + Mn50 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 10.0783 + -58.2736 * tfactors.T9i + 0.0723126 * tfactors.T913 - + 0.772457 * tfactors.T9 + -0.0591176 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 58.2736 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.0723126 * tfactors.T923i - + 0.772457 + (5.0/3.0) * -0.0591176 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_V47_to_p_Cr50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V47 + He4 --> p + Cr50 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 59.9106 + -84.2732 * tfactors.T913i + -1.10027 * tfactors.T913 - + -0.487084 * tfactors.T9 + 0.00453269 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -84.2732 * tfactors.T943i + (1.0/3.0) * -1.10027 * tfactors.T923i - + -0.487084 + (5.0/3.0) * 0.00453269 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_V48_to_p_Ti48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V48 + n --> p + Ti48 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 19.5486 + -0.307045 * tfactors.T913 - + 0.0615476 * tfactors.T9 + -0.00172407 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.307045 * tfactors.T923i - + 0.0615476 + (5.0/3.0) * -0.00172407 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_V48_to_He4_Sc45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V48 + n --> He4 + Sc45 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -5.87552 + 8.18067 * tfactors.T913 - + 1.50465 * tfactors.T9 + -0.224564 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 8.18067 * tfactors.T923i - + 1.50465 + (5.0/3.0) * -0.224564 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_V48_to_n_Cr48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V48 + p --> n + Cr48 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 14.7028 + -28.2982 * tfactors.T9i + 0.783544 * tfactors.T913 - + 0.521131 * tfactors.T9 + -0.0677724 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 28.2982 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.783544 * tfactors.T923i - + 0.521131 + (5.0/3.0) * -0.0677724 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_V48_to_He4_Ti45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V48 + p --> He4 + Ti45 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 55.3696 + -7.0276 * tfactors.T9i + -81.7175 * tfactors.T913i + 5.07471 * tfactors.T913 - + -2.34907 * tfactors.T9 + 0.226169 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 7.0276 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -81.7175 * tfactors.T943i + (1.0/3.0) * 5.07471 * tfactors.T923i - + -2.34907 + (5.0/3.0) * 0.226169 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_V48_to_n_Mn51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V48 + He4 --> n + Mn51 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -25.5516 + -21.8217 * tfactors.T9i + 20.8632 * tfactors.T913 - + 0.466645 * tfactors.T9 + -0.196969 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 21.8217 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 20.8632 * tfactors.T923i - + 0.466645 + (5.0/3.0) * -0.196969 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_V48_to_p_Cr51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V48 + He4 --> p + Cr51 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 60.9483 + -84.3192 * tfactors.T913i + -1.84683 * tfactors.T913 - + -0.459124 * tfactors.T9 + 0.00700566 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -84.3192 * tfactors.T943i + (1.0/3.0) * -1.84683 * tfactors.T923i - + -0.459124 + (5.0/3.0) * 0.00700566 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_V49_to_p_Ti49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V49 + n --> p + Ti49 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 15.9391 + -2.17107 * tfactors.T913 - + 1.10014 * tfactors.T9 + -0.0944408 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -2.17107 * tfactors.T923i - + 1.10014 + (5.0/3.0) * -0.0944408 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_V49_to_He4_Sc46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V49 + n --> He4 + Sc46 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = -906.502 + 8.26422 * tfactors.T9i + -1592.71 * tfactors.T913i + 2609.63 * tfactors.T913 - + -155.96 * tfactors.T9 + 8.94971 * tfactors.T953 + -1223.97 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -8.26422 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1592.71 * tfactors.T943i + (1.0/3.0) * 2609.63 * tfactors.T923i - + -155.96 + (5.0/3.0) * 8.94971 * tfactors.T923 + -1223.97 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_V49_to_n_Cr49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V49 + p --> n + Cr49 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.8188 + -39.5575 * tfactors.T9i + -1.62261 * tfactors.T913 - + 0.507111 * tfactors.T9 + -0.0492268 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 39.5575 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.62261 * tfactors.T923i - + 0.507111 + (5.0/3.0) * -0.0492268 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_V49_to_He4_Ti46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V49 + p --> He4 + Ti46 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -20.0996 + -34.217 * tfactors.T913i + 47.2584 * tfactors.T913 - + -9.18871 * tfactors.T9 + 0.87823 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -34.217 * tfactors.T943i + (1.0/3.0) * 47.2584 * tfactors.T923i - + -9.18871 + (5.0/3.0) * 0.87823 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_V49_to_n_Mn52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V49 + He4 --> n + Mn52 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -3.10657 + -33.6287 * tfactors.T9i + 5.72895 * tfactors.T913 - + 1.74506 * tfactors.T9 + -0.232362 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 33.6287 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.72895 * tfactors.T923i - + 1.74506 + (5.0/3.0) * -0.232362 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_V49_to_p_Cr52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V49 + He4 --> p + Cr52 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 57.428 + -84.3633 * tfactors.T913i + 2.73419 * tfactors.T913 - + -2.05655 * tfactors.T9 + 0.203834 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -84.3633 * tfactors.T943i + (1.0/3.0) * 2.73419 * tfactors.T923i - + -2.05655 + (5.0/3.0) * 0.203834 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_V50_to_p_Ti50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V50 + n --> p + Ti50 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 2.14011 + 13.156 * tfactors.T913 - + -2.27428 * tfactors.T9 + 0.204692 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 13.156 * tfactors.T923i - + -2.27428 + (5.0/3.0) * 0.204692 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_V50_to_He4_Sc47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V50 + n --> He4 + Sc47 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -71.6649 + 66.0687 * tfactors.T913 - + -8.06344 * tfactors.T9 + 0.527546 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 66.0687 * tfactors.T923i - + -8.06344 + (5.0/3.0) * 0.527546 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_V50_to_n_Cr50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V50 + p --> n + Cr50 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 17.9003 + -34.2216 * tfactors.T913i + 18.9337 * tfactors.T913 - + -4.3348 * tfactors.T9 + 0.409807 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -34.2216 * tfactors.T943i + (1.0/3.0) * 18.9337 * tfactors.T923i - + -4.3348 + (5.0/3.0) * 0.409807 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_V50_to_He4_Ti47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V50 + p --> He4 + Ti47 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -50.621 + -34.2216 * tfactors.T913i + 78.8919 * tfactors.T913 - + -16.0561 * tfactors.T9 + 1.55251 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -34.2216 * tfactors.T943i + (1.0/3.0) * 78.8919 * tfactors.T923i - + -16.0561 + (5.0/3.0) * 1.55251 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_V50_to_n_Mn53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V50 + He4 --> n + Mn53 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -124.679 + -2.0894 * tfactors.T9i + 115.52 * tfactors.T913 - + -16.7944 * tfactors.T9 + 1.23427 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.0894 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 115.52 * tfactors.T923i - + -16.7944 + (5.0/3.0) * 1.23427 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_V50_to_p_Cr53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V50 + He4 --> p + Cr53 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 43.0514 + -84.4058 * tfactors.T913i + 13.5454 * tfactors.T913 - + -3.26175 * tfactors.T9 + 0.249401 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -84.4058 * tfactors.T943i + (1.0/3.0) * 13.5454 * tfactors.T923i - + -3.26175 + (5.0/3.0) * 0.249401 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_V51_to_p_Ti51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V51 + n --> p + Ti51 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 121.114 + -25.3807 * tfactors.T9i + 213.317 * tfactors.T913i + -345.382 * tfactors.T913 - + 19.0423 * tfactors.T9 + -1.06972 * tfactors.T953 + 173.788 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 25.3807 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 213.317 * tfactors.T943i + (1.0/3.0) * -345.382 * tfactors.T923i - + 19.0423 + (5.0/3.0) * -1.06972 * tfactors.T923 + 173.788 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_V51_to_He4_Sc48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V51 + n --> He4 + Sc48 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = -923.883 + -8.95576 * tfactors.T9i + -1621.99 * tfactors.T913i + 2659.5 * tfactors.T913 - + -158.959 * tfactors.T9 + 9.12514 * tfactors.T953 + -1247.44 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 8.95576 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1621.99 * tfactors.T943i + (1.0/3.0) * 2659.5 * tfactors.T923i - + -158.959 + (5.0/3.0) * 9.12514 * tfactors.T923 + -1247.44 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_V51_to_n_Cr51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V51 + p --> n + Cr51 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 15.1388 + -17.812 * tfactors.T9i + -0.462299 * tfactors.T913 - + 0.925265 * tfactors.T9 + -0.103818 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 17.812 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.462299 * tfactors.T923i - + 0.925265 + (5.0/3.0) * -0.103818 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_V51_to_He4_Ti48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V51 + p --> He4 + Ti48 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -13.7548 + -34.2261 * tfactors.T913i + 38.6574 * tfactors.T913 - + -7.18743 * tfactors.T9 + 0.692255 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -34.2261 * tfactors.T943i + (1.0/3.0) * 38.6574 * tfactors.T923i - + -7.18743 + (5.0/3.0) * 0.692255 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_V51_to_n_Mn54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V51 + He4 --> n + Mn54 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -8.83794 + -26.6023 * tfactors.T9i + 7.07865 * tfactors.T913 - + 2.24997 * tfactors.T9 + -0.318964 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 26.6023 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 7.07865 * tfactors.T923i - + 2.24997 + (5.0/3.0) * -0.318964 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_V51_to_p_Cr54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V51 + He4 --> p + Cr54 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -98.078 + -1.54216 * tfactors.T9i + -35.2237 * tfactors.T913i + 131.726 * tfactors.T913 - + -29.7395 * tfactors.T9 + 3.03809 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.54216 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -35.2237 * tfactors.T943i + (1.0/3.0) * 131.726 * tfactors.T923i - + -29.7395 + (5.0/3.0) * 3.03809 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_V52_to_He4_Sc49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V52 + n --> He4 + Sc49 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = -13.0046 + -2.2017 * tfactors.T9i + 174.784 * tfactors.T913i + -175.991 * tfactors.T913 - + 2.92402 * tfactors.T9 + 0.0459501 * tfactors.T953 + 127.478 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.2017 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 174.784 * tfactors.T943i + (1.0/3.0) * -175.991 * tfactors.T923i - + 2.92402 + (5.0/3.0) * 0.0459501 * tfactors.T923 + 127.478 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_V52_to_n_Cr52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V52 + p --> n + Cr52 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 130.283 + -6.04059 * tfactors.T9i + 225.572 * tfactors.T913i + -367.914 * tfactors.T913 - + 20.4967 * tfactors.T9 + -1.16016 * tfactors.T953 + 184.15 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 6.04059 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 225.572 * tfactors.T943i + (1.0/3.0) * -367.914 * tfactors.T923i - + 20.4967 + (5.0/3.0) * -1.16016 * tfactors.T923 + 184.15 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_V52_to_He4_Ti49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V52 + p --> He4 + Ti49 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 60.9203 + -5.89339 * tfactors.T9i + 209.633 * tfactors.T913i + -291.46 * tfactors.T913 - + 13.4258 * tfactors.T9 + -0.668366 * tfactors.T953 + 164.685 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.89339 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 209.633 * tfactors.T943i + (1.0/3.0) * -291.46 * tfactors.T923i - + 13.4258 + (5.0/3.0) * -0.668366 * tfactors.T923 + 164.685 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_V52_to_n_Mn55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // V52 + He4 --> n + Mn55 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = -1026.77 + 16.489 * tfactors.T9i + -1790.25 * tfactors.T913i + 2939.64 * tfactors.T913 - + -175.533 * tfactors.T9 + 10.0701 * tfactors.T953 + -1379.09 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -16.489 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1790.25 * tfactors.T943i + (1.0/3.0) * 2939.64 * tfactors.T923i - + -175.533 + (5.0/3.0) * 10.0701 * tfactors.T923 + -1379.09 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cr48_to_p_V48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr48 + n --> p + V48 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 16.9 + 0.783544 * tfactors.T913 - + 0.521131 * tfactors.T9 + -0.0677724 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.783544 * tfactors.T923i - + 0.521131 + (5.0/3.0) * -0.0677724 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cr48_to_He4_Ti45_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr48 + n --> He4 + Ti45 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -27.4028 + 29.3634 * tfactors.T913 - + -2.63599 * tfactors.T9 + 0.159116 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 29.3634 * tfactors.T923i - + -2.63599 + (5.0/3.0) * 0.159116 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cr48_to_p_Mn51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr48 + He4 --> p + Mn51 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 59.2276 + -86.7459 * tfactors.T913i + 1.05653 * tfactors.T913 - + -1.15757 * tfactors.T9 + 0.0877546 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -86.7459 * tfactors.T943i + (1.0/3.0) * 1.05653 * tfactors.T923i - + -1.15757 + (5.0/3.0) * 0.0877546 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cr49_to_p_V49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr49 + n --> p + V49 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 21.1065 + -1.62261 * tfactors.T913 - + 0.507111 * tfactors.T9 + -0.0492268 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.62261 * tfactors.T923i - + 0.507111 + (5.0/3.0) * -0.0492268 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cr49_to_He4_Ti46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr49 + n --> He4 + Ti46 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 13.4786 + -2.81456 * tfactors.T913 - + 1.61029 * tfactors.T9 + -0.138467 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -2.81456 * tfactors.T923i - + 1.61029 + (5.0/3.0) * -0.138467 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cr49_to_He4_V46_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr49 + p --> He4 + V46 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 59.2978 + -39.3789 * tfactors.T9i + -84.2255 * tfactors.T913i + -1.09776 * tfactors.T913 - + -0.495216 * tfactors.T9 + 0.0124719 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 39.3789 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.2255 * tfactors.T943i + (1.0/3.0) * -1.09776 * tfactors.T923i - + -0.495216 + (5.0/3.0) * 0.0124719 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cr49_to_n_Fe52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr49 + He4 --> n + Fe52 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -14.2485 + -30.697 * tfactors.T9i + 14.3781 * tfactors.T913 - + 0.0859569 * tfactors.T9 + -0.0900604 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 30.697 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 14.3781 * tfactors.T923i - + 0.0859569 + (5.0/3.0) * -0.0900604 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cr49_to_p_Mn52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr49 + He4 --> p + Mn52 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 52.5075 + -86.7913 * tfactors.T913i + 10.6892 * tfactors.T913 - + -4.01586 * tfactors.T9 + 0.411275 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -86.7913 * tfactors.T943i + (1.0/3.0) * 10.6892 * tfactors.T923i - + -4.01586 + (5.0/3.0) * 0.411275 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cr50_to_p_V50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr50 + n --> p + V50 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.4653 + -2.9661 * tfactors.T9i + -34.2216 * tfactors.T913i + 18.9337 * tfactors.T913 - + -4.3348 * tfactors.T9 + 0.409807 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.9661 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -34.2216 * tfactors.T943i + (1.0/3.0) * 18.9337 * tfactors.T923i - + -4.3348 + (5.0/3.0) * 0.409807 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cr50_to_He4_Ti47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr50 + n --> He4 + Ti47 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -108.708 + 104.649 * tfactors.T913 - + -15.3856 * tfactors.T9 + 1.13897 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 104.649 * tfactors.T923i - + -15.3856 + (5.0/3.0) * 1.13897 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cr50_to_n_Mn50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr50 + p --> n + Mn50 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 21.5859 + -97.6522 * tfactors.T9i + -1.04612 * tfactors.T913 - + 0.340541 * tfactors.T9 + -0.0370932 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 97.6522 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.04612 * tfactors.T923i - + 0.340541 + (5.0/3.0) * -0.0370932 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cr50_to_He4_V47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr50 + p --> He4 + V47 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 62.5904 + -39.3786 * tfactors.T9i + -84.2732 * tfactors.T913i + -1.10027 * tfactors.T913 - + -0.487084 * tfactors.T9 + 0.00453269 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 39.3786 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.2732 * tfactors.T943i + (1.0/3.0) * -1.10027 * tfactors.T923i - + -0.487084 + (5.0/3.0) * 0.00453269 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cr50_to_n_Fe53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr50 + He4 --> n + Fe53 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 11.8056 + -57.5651 * tfactors.T9i + -0.146952 * tfactors.T913 - + 1.12217 * tfactors.T9 + -0.10318 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 57.5651 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.146952 * tfactors.T923i - + 1.12217 + (5.0/3.0) * -0.10318 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cr50_to_p_Mn53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr50 + He4 --> p + Mn53 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -67.5619 + -5.0555 * tfactors.T9i + -36.1913 * tfactors.T913i + 99.0857 * tfactors.T913 - + -20.8943 * tfactors.T9 + 2.06209 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.0555 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.1913 * tfactors.T943i + (1.0/3.0) * 99.0857 * tfactors.T923i - + -20.8943 + (5.0/3.0) * 2.06209 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cr51_to_p_V51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr51 + n --> p + V51 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 15.1388 + -0.462299 * tfactors.T913 - + 0.925265 * tfactors.T9 + -0.103818 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.462299 * tfactors.T923i - + 0.925265 + (5.0/3.0) * -0.103818 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cr51_to_He4_Ti48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr51 + n --> He4 + Ti48 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -0.304828 + 1.94389 * tfactors.T913 - + 2.5871 * tfactors.T9 + -0.307303 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 1.94389 * tfactors.T923i - + 2.5871 + (5.0/3.0) * -0.307303 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cr51_to_n_Mn51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr51 + p --> n + Mn51 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.6943 + -46.2998 * tfactors.T9i + -1.37768 * tfactors.T913 - + 0.466991 * tfactors.T9 + -0.0461074 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 46.2998 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.37768 * tfactors.T923i - + 0.466991 + (5.0/3.0) * -0.0461074 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cr51_to_He4_V48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr51 + p --> He4 + V48 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 62.3614 + -24.4782 * tfactors.T9i + -84.3192 * tfactors.T913i + -1.84683 * tfactors.T913 - + -0.459124 * tfactors.T9 + 0.00700566 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 24.4782 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.3192 * tfactors.T943i + (1.0/3.0) * -1.84683 * tfactors.T923i - + -0.459124 + (5.0/3.0) * 0.00700566 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cr51_to_n_Fe54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr51 + He4 --> n + Fe54 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -86.4622 + -9.77972 * tfactors.T9i + 77.6519 * tfactors.T913 - + -9.70923 * tfactors.T9 + 0.625406 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 9.77972 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 77.6519 * tfactors.T923i - + -9.70923 + (5.0/3.0) * 0.625406 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cr51_to_p_Mn54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr51 + He4 --> p + Mn54 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -42.067 + -8.79032 * tfactors.T9i + -36.1955 * tfactors.T913i + 69.5086 * tfactors.T913 - + -14.1484 * tfactors.T9 + 1.38598 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 8.79032 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.1955 * tfactors.T943i + (1.0/3.0) * 69.5086 * tfactors.T923i - + -14.1484 + (5.0/3.0) * 1.38598 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cr52_to_p_V52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr52 + n --> p + V52 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = 132.229 + -43.1054 * tfactors.T9i + 225.572 * tfactors.T913i + -367.914 * tfactors.T913 - + 20.4967 * tfactors.T9 + -1.16016 * tfactors.T953 + 184.15 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 43.1054 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 225.572 * tfactors.T943i + (1.0/3.0) * -367.914 * tfactors.T923i - + 20.4967 + (5.0/3.0) * -1.16016 * tfactors.T923 + 184.15 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cr52_to_He4_Ti49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr52 + n --> He4 + Ti49 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 62.1906 + -14.0615 * tfactors.T9i + -81.8999 * tfactors.T913i + -0.331496 * tfactors.T913 - + -0.758416 * tfactors.T9 + 0.0413394 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 14.0615 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -81.8999 * tfactors.T943i + (1.0/3.0) * -0.331496 * tfactors.T923i - + -0.758416 + (5.0/3.0) * 0.0413394 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cr52_to_n_Mn52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr52 + p --> n + Mn52 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.5136 + -63.7533 * tfactors.T9i + 0.50599 * tfactors.T913 - + 0.283832 * tfactors.T9 + -0.0422814 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 63.7533 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.50599 * tfactors.T923i - + 0.283832 + (5.0/3.0) * -0.0422814 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cr52_to_He4_V49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr52 + p --> He4 + V49 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 60.8046 + -30.1245 * tfactors.T9i + -84.3633 * tfactors.T913i + 2.73419 * tfactors.T913 - + -2.05655 * tfactors.T9 + 0.203834 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 30.1245 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.3633 * tfactors.T943i + (1.0/3.0) * 2.73419 * tfactors.T923i - + -2.05655 + (5.0/3.0) * 0.203834 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cr52_to_n_Fe55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr52 + He4 --> n + Fe55 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 10.7294 + -41.5902 * tfactors.T9i + -4.54346 * tfactors.T913 - + 2.79557 * tfactors.T9 + -0.273997 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 41.5902 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -4.54346 * tfactors.T923i - + 2.79557 + (5.0/3.0) * -0.273997 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cr52_to_p_Mn55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr52 + He4 --> p + Mn55 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 18.2793 + -29.8283 * tfactors.T9i + -36.1995 * tfactors.T913i + 11.023 * tfactors.T913 - + -2.435 * tfactors.T9 + 0.306933 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 29.8283 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -36.1995 * tfactors.T943i + (1.0/3.0) * 11.023 * tfactors.T923i - + -2.435 + (5.0/3.0) * 0.306933 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cr53_to_He4_Ti50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr53 + n --> He4 + Ti50 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -23.5895 + 21.17 * tfactors.T913 - + -0.195248 * tfactors.T9 + -0.121068 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 21.17 * tfactors.T923i - + -0.195248 + (5.0/3.0) * -0.121068 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cr53_to_n_Mn53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr53 + p --> n + Mn53 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 12.3906 + -16.0047 * tfactors.T9i + 0.167386 * tfactors.T913 - + 1.15594 * tfactors.T9 + -0.119143 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 16.0047 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.167386 * tfactors.T923i - + 1.15594 + (5.0/3.0) * -0.119143 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cr53_to_He4_V50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr53 + p --> He4 + V50 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 45.5289 + -13.9153 * tfactors.T9i + -84.4058 * tfactors.T913i + 13.5454 * tfactors.T913 - + -3.26175 * tfactors.T9 + 0.249401 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 13.9153 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -84.4058 * tfactors.T943i + (1.0/3.0) * 13.5454 * tfactors.T923i - + -3.26175 + (5.0/3.0) * 0.249401 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cr53_to_n_Fe56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr53 + He4 --> n + Fe56 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -118.607 + -3.78063 * tfactors.T9i + 108.603 * tfactors.T913 - + -15.5995 * tfactors.T9 + 1.14343 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.78063 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 108.603 * tfactors.T923i - + -15.5995 + (5.0/3.0) * 1.14343 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cr54_to_He4_Ti51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr54 + n --> He4 + Ti51 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = -985.091 + -2.195 * tfactors.T9i + -1722.81 * tfactors.T913i + 2829.38 * tfactors.T913 - + -169.068 * tfactors.T9 + 9.70315 * tfactors.T953 + -1326.98 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.195 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1722.81 * tfactors.T943i + (1.0/3.0) * 2829.38 * tfactors.T923i - + -169.068 + (5.0/3.0) * 9.70315 * tfactors.T923 + -1326.98 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cr54_to_n_Mn54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr54 + p --> n + Mn54 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 17.904 + -25.0602 * tfactors.T9i + -1.70783 * tfactors.T913 - + 0.767763 * tfactors.T9 + -0.0572818 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 25.0602 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.70783 * tfactors.T923i - + 0.767763 + (5.0/3.0) * -0.0572818 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cr54_to_He4_V51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr54 + p --> He4 + V51 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -94.698 + -35.2237 * tfactors.T913i + 131.726 * tfactors.T913 - + -29.7395 * tfactors.T9 + 3.03809 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -35.2237 * tfactors.T943i + (1.0/3.0) * 131.726 * tfactors.T923i - + -29.7395 + (5.0/3.0) * 3.03809 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cr54_to_n_Fe57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cr54 + He4 --> n + Fe57 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -7.33581 + -27.8371 * tfactors.T9i + 4.48478 * tfactors.T913 - + 2.88431 * tfactors.T9 + -0.366076 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 27.8371 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 4.48478 * tfactors.T923i - + 2.88431 + (5.0/3.0) * -0.366076 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Mn50_to_p_Cr50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn50 + n --> p + Cr50 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 21.5859 + -1.04612 * tfactors.T913 - + 0.340541 * tfactors.T9 + -0.0370932 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.04612 * tfactors.T923i - + 0.340541 + (5.0/3.0) * -0.0370932 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Mn50_to_He4_V47_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn50 + n --> He4 + V47 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 12.7581 + 0.0723126 * tfactors.T913 - + 0.772457 * tfactors.T9 + -0.0591176 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.0723126 * tfactors.T923i - + 0.772457 + (5.0/3.0) * -0.0591176 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mn50_to_n_Co53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn50 + He4 --> n + Co53 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 8.55453 + -65.3147 * tfactors.T9i + 4.96211 * tfactors.T913 - + -1.17699 * tfactors.T9 + 0.226 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 65.3147 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 4.96211 * tfactors.T923i - + -1.17699 + (5.0/3.0) * 0.226 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mn50_to_p_Fe53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn50 + He4 --> p + Fe53 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 62.6721 + -89.2309 * tfactors.T913i + -1.4758 * tfactors.T913 - + -0.437831 * tfactors.T9 + -0.00354594 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -89.2309 * tfactors.T943i + (1.0/3.0) * -1.4758 * tfactors.T923i - + -0.437831 + (5.0/3.0) * -0.00354594 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Mn51_to_p_Cr51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn51 + n --> p + Cr51 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.982 + -1.37768 * tfactors.T913 - + 0.466991 * tfactors.T9 + -0.0461074 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.37768 * tfactors.T923i - + 0.466991 + (5.0/3.0) * -0.0461074 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Mn51_to_He4_V48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn51 + n --> He4 + V48 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -23.8508 + 20.8632 * tfactors.T913 - + 0.466645 * tfactors.T9 + -0.196969 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 20.8632 * tfactors.T923i - + 0.466645 + (5.0/3.0) * -0.196969 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Mn51_to_He4_Cr48_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn51 + p --> He4 + Cr48 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 58.7312 + -6.47654 * tfactors.T9i + -86.7459 * tfactors.T913i + 1.05653 * tfactors.T913 - + -1.15757 * tfactors.T9 + 0.0877546 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 6.47654 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -86.7459 * tfactors.T943i + (1.0/3.0) * 1.05653 * tfactors.T923i - + -1.15757 + (5.0/3.0) * 0.0877546 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mn51_to_n_Co54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn51 + He4 --> n + Co54 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 11.1923 + -68.2136 * tfactors.T9i + -1.92176 * tfactors.T913 - + 1.2968 * tfactors.T9 + -0.117145 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 68.2136 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.92176 * tfactors.T923i - + 1.2968 + (5.0/3.0) * -0.117145 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mn51_to_p_Fe54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn51 + He4 --> p + Fe54 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 62.2777 + -89.274 * tfactors.T913i + -0.862452 * tfactors.T913 - + -0.635672 * tfactors.T9 + 0.0196464 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -89.274 * tfactors.T943i + (1.0/3.0) * -0.862452 * tfactors.T923i - + -0.635672 + (5.0/3.0) * 0.0196464 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Mn52_to_p_Cr52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn52 + n --> p + Cr52 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 17.9487 + 0.50599 * tfactors.T913 - + 0.283832 * tfactors.T9 + -0.0422814 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.50599 * tfactors.T923i - + 0.283832 + (5.0/3.0) * -0.0422814 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Mn52_to_He4_V49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn52 + n --> He4 + V49 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -2.29492 + 5.72895 * tfactors.T913 - + 1.74506 * tfactors.T9 + -0.232362 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 5.72895 * tfactors.T923i - + 1.74506 + (5.0/3.0) * -0.232362 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Mn52_to_n_Fe52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn52 + p --> n + Fe52 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 15.3836 + -36.6259 * tfactors.T9i + 0.569856 * tfactors.T913 - + 0.390117 * tfactors.T9 + -0.0479043 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 36.6259 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.569856 * tfactors.T923i - + 0.390117 + (5.0/3.0) * -0.0479043 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Mn52_to_He4_Cr49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn52 + p --> He4 + Cr49 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 53.0315 + -5.9288 * tfactors.T9i + -86.7913 * tfactors.T913i + 10.6892 * tfactors.T913 - + -4.01586 * tfactors.T9 + 0.411275 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.9288 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -86.7913 * tfactors.T943i + (1.0/3.0) * 10.6892 * tfactors.T923i - + -4.01586 + (5.0/3.0) * 0.411275 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mn52_to_n_Co55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn52 + He4 --> n + Co55 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -14.3346 + -26.9722 * tfactors.T9i + 8.15876 * tfactors.T913 - + 3.05978 * tfactors.T9 + -0.406535 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 26.9722 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 8.15876 * tfactors.T923i - + 3.05978 + (5.0/3.0) * -0.406535 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mn52_to_p_Fe55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn52 + He4 --> p + Fe55 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 56.6689 + -89.3157 * tfactors.T913i + 5.65639 * tfactors.T913 - + -2.28952 * tfactors.T9 + 0.186017 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -89.3157 * tfactors.T943i + (1.0/3.0) * 5.65639 * tfactors.T923i - + -2.28952 + (5.0/3.0) * 0.186017 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Mn53_to_p_Cr53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn53 + n --> p + Cr53 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 11.6975 + 0.167386 * tfactors.T913 - + 1.15594 * tfactors.T9 + -0.119143 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.167386 * tfactors.T923i - + 1.15594 + (5.0/3.0) * -0.119143 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Mn53_to_He4_V50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn53 + n --> He4 + V50 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -122.895 + 115.52 * tfactors.T913 - + -16.7944 * tfactors.T9 + 1.23427 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 115.52 * tfactors.T923i - + -16.7944 + (5.0/3.0) * 1.23427 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Mn53_to_n_Fe53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn53 + p --> n + Fe53 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 21.1239 + -52.5096 * tfactors.T9i + -1.19445 * tfactors.T913 - + 0.393603 * tfactors.T9 + -0.0404022 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 52.5096 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.19445 * tfactors.T923i - + 0.393603 + (5.0/3.0) * -0.0404022 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Mn53_to_He4_Cr50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn53 + p --> He4 + Cr50 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -68.3424 + -36.1913 * tfactors.T913i + 99.0857 * tfactors.T913 - + -20.8943 * tfactors.T9 + 2.06209 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -36.1913 * tfactors.T943i + (1.0/3.0) * 99.0857 * tfactors.T923i - + -20.8943 + (5.0/3.0) * 2.06209 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mn53_to_n_Co56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn53 + He4 --> n + Co56 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 11.3813 + -49.8407 * tfactors.T9i + -2.81854 * tfactors.T913 - + 1.84188 * tfactors.T9 + -0.164509 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 49.8407 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.81854 * tfactors.T923i - + 1.84188 + (5.0/3.0) * -0.164509 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mn53_to_p_Fe56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn53 + He4 --> p + Fe56 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 54.0176 + -89.3558 * tfactors.T913i + 9.25287 * tfactors.T913 - + -3.70352 * tfactors.T9 + 0.372202 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -89.3558 * tfactors.T943i + (1.0/3.0) * 9.25287 * tfactors.T923i - + -3.70352 + (5.0/3.0) * 0.372202 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Mn54_to_p_Cr54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn54 + n --> p + Cr54 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 15.9581 + -1.70783 * tfactors.T913 - + 0.767763 * tfactors.T9 + -0.0572818 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.70783 * tfactors.T923i - + 0.767763 + (5.0/3.0) * -0.0572818 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Mn54_to_He4_V51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn54 + n --> He4 + V51 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -7.40385 + 7.07865 * tfactors.T913 - + 2.24997 * tfactors.T9 + -0.318964 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 7.07865 * tfactors.T923i - + 2.24997 + (5.0/3.0) * -0.318964 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Mn54_to_n_Fe54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn54 + p --> n + Fe54 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -45.0778 + -0.9894 * tfactors.T9i + 51.9922 * tfactors.T913 - + -7.26639 * tfactors.T9 + 0.502147 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.9894 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 51.9922 * tfactors.T923i - + -7.26639 + (5.0/3.0) * 0.502147 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Mn54_to_He4_Cr51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn54 + p --> He4 + Cr51 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -40.6329 + -36.1955 * tfactors.T913i + 69.5086 * tfactors.T913 - + -14.1484 * tfactors.T9 + 1.38598 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -36.1955 * tfactors.T943i + (1.0/3.0) * 69.5086 * tfactors.T923i - + -14.1484 + (5.0/3.0) * 1.38598 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mn54_to_n_Co57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn54 + He4 --> n + Co57 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -31.7456 + -21.5562 * tfactors.T9i + 26.4125 * tfactors.T913 - + -0.137701 * tfactors.T9 + -0.184911 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 21.5562 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 26.4125 * tfactors.T923i - + -0.137701 + (5.0/3.0) * -0.184911 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mn54_to_p_Fe57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn54 + He4 --> p + Fe57 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -90.99 + -2.7769 * tfactors.T9i + -37.1663 * tfactors.T913i + 123.946 * tfactors.T913 - + -27.2803 * tfactors.T9 + 2.75453 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.7769 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -37.1663 * tfactors.T943i + (1.0/3.0) * 123.946 * tfactors.T923i - + -27.2803 + (5.0/3.0) * 2.75453 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Mn55_to_He4_V52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn55 + n --> He4 + V52 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // rath - ln_set_rate = -1025.31 + 9.271 * tfactors.T9i + -1790.25 * tfactors.T913i + 2939.64 * tfactors.T913 - + -175.533 * tfactors.T9 + 10.0701 * tfactors.T953 + -1379.09 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = -9.271 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1790.25 * tfactors.T943i + (1.0/3.0) * 2939.64 * tfactors.T923i - + -175.533 + (5.0/3.0) * 10.0701 * tfactors.T923 + -1379.09 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Mn55_to_n_Fe55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn55 + p --> n + Fe55 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 4.30092 + -11.7619 * tfactors.T9i + 7.03052 * tfactors.T913 - + 0.260509 * tfactors.T9 + -0.0813397 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 11.7619 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 7.03052 * tfactors.T923i - + 0.260509 + (5.0/3.0) * -0.0813397 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Mn55_to_He4_Cr52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn55 + p --> He4 + Cr52 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 17.7897 + -36.1995 * tfactors.T913i + 11.023 * tfactors.T913 - + -2.435 * tfactors.T9 + 0.306933 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -36.1995 * tfactors.T943i + (1.0/3.0) * 11.023 * tfactors.T923i - + -2.435 + (5.0/3.0) * 0.306933 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mn55_to_n_Co58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn55 + He4 --> n + Co58 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 9.14605 + -40.7447 * tfactors.T9i + -5.4323 * tfactors.T913 - + 3.33275 * tfactors.T9 + -0.339917 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 40.7447 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -5.4323 * tfactors.T923i - + 3.33275 + (5.0/3.0) * -0.339917 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Mn55_to_p_Fe58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Mn55 + He4 --> p + Fe58 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -77.6133 + -4.88801 * tfactors.T9i + -37.17 * tfactors.T913i + 110.878 * tfactors.T913 - + -24.5555 * tfactors.T9 + 2.47003 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 4.88801 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -37.17 * tfactors.T943i + (1.0/3.0) * 110.878 * tfactors.T923i - + -24.5555 + (5.0/3.0) * 2.47003 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Fe52_to_p_Mn52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe52 + n --> p + Mn52 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 17.9485 + 0.569856 * tfactors.T913 - + 0.390117 * tfactors.T9 + -0.0479043 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.569856 * tfactors.T923i - + 0.390117 + (5.0/3.0) * -0.0479043 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Fe52_to_He4_Cr49_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe52 + n --> He4 + Cr49 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -11.1596 + 14.3781 * tfactors.T913 - + 0.0859569 * tfactors.T9 + -0.0900604 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 14.3781 * tfactors.T923i - + 0.0859569 + (5.0/3.0) * -0.0900604 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Fe52_to_p_Co55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe52 + He4 --> p + Co55 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 62.2207 + -91.6819 * tfactors.T913i + -0.329235 * tfactors.T913 - + -0.780924 * tfactors.T9 + 0.0425179 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -91.6819 * tfactors.T943i + (1.0/3.0) * -0.329235 * tfactors.T923i - + -0.780924 + (5.0/3.0) * 0.0425179 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Fe53_to_p_Mn53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe53 + n --> p + Mn53 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 21.1239 + -1.19445 * tfactors.T913 - + 0.393603 * tfactors.T9 + -0.0404022 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.19445 * tfactors.T923i - + 0.393603 + (5.0/3.0) * -0.0404022 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Fe53_to_He4_Cr50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe53 + n --> He4 + Cr50 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 11.025 + -0.146952 * tfactors.T913 - + 1.12217 * tfactors.T9 + -0.10318 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.146952 * tfactors.T923i - + 1.12217 + (5.0/3.0) * -0.10318 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Fe53_to_n_Co53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe53 + p --> n + Co53 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 21.5271 + -105.402 * tfactors.T9i + -0.94587 * tfactors.T913 - + 0.327891 * tfactors.T9 + -0.0355667 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 105.402 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.94587 * tfactors.T923i - + 0.327891 + (5.0/3.0) * -0.0355667 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Fe53_to_He4_Mn50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe53 + p --> He4 + Mn50 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 61.8915 + -40.0872 * tfactors.T9i + -89.2309 * tfactors.T913i + -1.4758 * tfactors.T913 - + -0.437831 * tfactors.T9 + -0.00354594 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 40.0872 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -89.2309 * tfactors.T943i + (1.0/3.0) * -1.4758 * tfactors.T923i - + -0.437831 + (5.0/3.0) * -0.00354594 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Fe53_to_n_Ni56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe53 + He4 --> n + Ni56 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -11.2271 + -31.1935 * tfactors.T9i + 6.43259 * tfactors.T913 - + 2.29591 * tfactors.T9 + -0.254724 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 31.1935 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 6.43259 * tfactors.T923i - + 2.29591 + (5.0/3.0) * -0.254724 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Fe53_to_p_Co56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe53 + He4 --> p + Co56 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 54.8614 + -91.7231 * tfactors.T913i + 10.052 * tfactors.T913 - + -3.86332 * tfactors.T9 + 0.391105 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -91.7231 * tfactors.T943i + (1.0/3.0) * 10.052 * tfactors.T923i - + -3.86332 + (5.0/3.0) * 0.391105 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Fe54_to_p_Mn54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe54 + n --> p + Mn54 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -43.1319 + 51.9922 * tfactors.T913 - + -7.26639 * tfactors.T9 + 0.502147 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 51.9922 * tfactors.T923i - + -7.26639 + (5.0/3.0) * 0.502147 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Fe54_to_He4_Cr51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe54 + n --> He4 + Cr51 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -83.0822 + 77.6519 * tfactors.T913 - + -9.70923 * tfactors.T9 + 0.625406 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 77.6519 * tfactors.T923i - + -9.70923 + (5.0/3.0) * 0.625406 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Fe54_to_n_Co54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe54 + p --> n + Co54 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 21.6932 + -104.734 * tfactors.T9i + -1.41064 * tfactors.T913 - + 0.417457 * tfactors.T9 + -0.0400596 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 104.734 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.41064 * tfactors.T923i - + 0.417457 + (5.0/3.0) * -0.0400596 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Fe54_to_He4_Mn51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe54 + p --> He4 + Mn51 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 65.37 + -36.5201 * tfactors.T9i + -89.274 * tfactors.T913i + -0.862452 * tfactors.T913 - + -0.635672 * tfactors.T9 + 0.0196464 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 36.5201 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -89.274 * tfactors.T943i + (1.0/3.0) * -0.862452 * tfactors.T923i - + -0.635672 + (5.0/3.0) * 0.0196464 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Fe54_to_n_Ni57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe54 + He4 --> n + Ni57 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 14.6138 + -67.5021 * tfactors.T9i + 0.48562 * tfactors.T913 - + -0.0249302 * tfactors.T9 + 0.0509605 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 67.5021 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.48562 * tfactors.T923i - + -0.0249302 + (5.0/3.0) * 0.0509605 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Fe54_to_p_Co57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe54 + He4 --> p + Co57 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -1.42195 + -20.5668 * tfactors.T9i + -38.1133 * tfactors.T913i + 29.3541 * tfactors.T913 - + -4.75966 * tfactors.T9 + 0.40418 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 20.5668 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -38.1133 * tfactors.T943i + (1.0/3.0) * 29.3541 * tfactors.T923i - + -4.75966 + (5.0/3.0) * 0.40418 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Fe55_to_p_Mn55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe55 + n --> p + Mn55 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 4.70639 + 7.03052 * tfactors.T913 - + 0.260509 * tfactors.T9 + -0.0813397 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 7.03052 * tfactors.T923i - + 0.260509 + (5.0/3.0) * -0.0813397 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Fe55_to_He4_Cr52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe55 + n --> He4 + Cr52 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 10.6453 + -4.54346 * tfactors.T913 - + 2.79557 * tfactors.T9 + -0.273997 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -4.54346 * tfactors.T923i - + 2.79557 + (5.0/3.0) * -0.273997 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Fe55_to_n_Co55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe55 + p --> n + Co55 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 21.4329 + -49.1353 * tfactors.T9i + -1.62382 * tfactors.T913 - + 0.58115 * tfactors.T9 + -0.0537057 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 49.1353 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.62382 * tfactors.T923i - + 0.58115 + (5.0/3.0) * -0.0537057 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Fe55_to_He4_Mn52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe55 + p --> He4 + Mn52 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 59.1497 + -22.1631 * tfactors.T9i + -89.3157 * tfactors.T913i + 5.65639 * tfactors.T913 - + -2.28952 * tfactors.T9 + 0.186017 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 22.1631 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -89.3157 * tfactors.T943i + (1.0/3.0) * 5.65639 * tfactors.T923i - + -2.28952 + (5.0/3.0) * 0.186017 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Fe55_to_n_Ni58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe55 + He4 --> n + Ni58 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -4.73193 + -33.6308 * tfactors.T9i + 3.44996 * tfactors.T913 - + 2.98226 * tfactors.T9 + -0.387699 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 33.6308 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 3.44996 * tfactors.T923i - + 2.98226 + (5.0/3.0) * -0.387699 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Fe55_to_p_Co58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe55 + He4 --> p + Co58 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 14.0177 + -28.9828 * tfactors.T9i + -38.1171 * tfactors.T913i + 13.2187 * tfactors.T913 - + -1.74746 * tfactors.T9 + 0.142513 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 28.9828 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -38.1171 * tfactors.T943i + (1.0/3.0) * 13.2187 * tfactors.T923i - + -1.74746 + (5.0/3.0) * 0.142513 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Fe56_to_He4_Cr53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe56 + n --> He4 + Cr53 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -115.917 + 108.603 * tfactors.T913 - + -15.5995 * tfactors.T9 + 1.14343 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 108.603 * tfactors.T923i - + -15.5995 + (5.0/3.0) * 1.14343 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Fe56_to_n_Co56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe56 + p --> n + Co56 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 22.6511 + -62.0649 * tfactors.T9i + -1.13331 * tfactors.T913 - + 0.347185 * tfactors.T9 + -0.0328879 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 62.0649 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.13331 * tfactors.T923i - + 0.347185 + (5.0/3.0) * -0.0328879 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Fe56_to_He4_Mn53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe56 + p --> He4 + Mn53 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 57.4007 + -12.2241 * tfactors.T9i + -89.3558 * tfactors.T913i + 9.25287 * tfactors.T913 - + -3.70352 * tfactors.T9 + 0.372202 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 12.2241 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -89.3558 * tfactors.T943i + (1.0/3.0) * 9.25287 * tfactors.T923i - + -3.70352 + (5.0/3.0) * 0.372202 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Fe56_to_n_Ni59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe56 + He4 --> n + Ni59 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 16.4866 + -59.1377 * tfactors.T9i + -4.21617 * tfactors.T913 - + 1.58032 * tfactors.T9 + -0.126895 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 59.1377 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -4.21617 * tfactors.T923i - + 1.58032 + (5.0/3.0) * -0.126895 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Fe56_to_p_Co59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe56 + He4 --> p + Co59 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.2414 + -37.6102 * tfactors.T9i + -38.1208 * tfactors.T913i + 13.9086 * tfactors.T913 - + -3.45838 * tfactors.T9 + 0.391302 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 37.6102 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -38.1208 * tfactors.T943i + (1.0/3.0) * 13.9086 * tfactors.T923i - + -3.45838 + (5.0/3.0) * 0.391302 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Fe57_to_He4_Cr54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe57 + n --> He4 + Cr54 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -6.72376 + 4.48478 * tfactors.T913 - + 2.88431 * tfactors.T9 + -0.366076 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 4.48478 * tfactors.T923i - + 2.88431 + (5.0/3.0) * -0.366076 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Fe57_to_n_Co57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe57 + p --> n + Co57 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 14.9333 + -18.7792 * tfactors.T9i + -0.061056 * tfactors.T913 - + 1.28749 * tfactors.T9 + -0.156423 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 18.7792 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.061056 * tfactors.T923i - + 1.28749 + (5.0/3.0) * -0.156423 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Fe57_to_He4_Mn54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe57 + p --> He4 + Mn54 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -88.432 + -37.1663 * tfactors.T913i + 123.946 * tfactors.T913 - + -27.2803 * tfactors.T9 + 2.75453 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -37.1663 * tfactors.T943i + (1.0/3.0) * 123.946 * tfactors.T923i - + -27.2803 + (5.0/3.0) * 2.75453 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Fe57_to_n_Ni60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe57 + He4 --> n + Ni60 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -62.4146 + -15.7177 * tfactors.T9i + 55.1407 * tfactors.T913 - + -5.1585 * tfactors.T9 + 0.212248 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 15.7177 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 55.1407 * tfactors.T923i - + -5.1585 + (5.0/3.0) * 0.212248 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Fe58_to_n_Co58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe58 + p --> n + Co58 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 21.159 + -35.8567 * tfactors.T9i + -3.2947 * tfactors.T913 - + 0.833003 * tfactors.T9 + -0.0604538 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 35.8567 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -3.2947 * tfactors.T923i - + 0.833003 + (5.0/3.0) * -0.0604538 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Fe58_to_He4_Mn55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe58 + p --> He4 + Mn55 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -74.5149 + -37.17 * tfactors.T913i + 110.878 * tfactors.T913 - + -24.5555 * tfactors.T9 + 2.47003 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -37.17 * tfactors.T943i + (1.0/3.0) * 110.878 * tfactors.T923i - + -24.5555 + (5.0/3.0) * 2.47003 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Fe58_to_n_Ni61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Fe58 + He4 --> n + Ni61 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 10.5941 + -41.5317 * tfactors.T9i + -7.53968 * tfactors.T913 - + 4.09062 * tfactors.T9 + -0.416412 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 41.5317 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -7.53968 * tfactors.T923i - + 4.09062 + (5.0/3.0) * -0.416412 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Co53_to_p_Fe53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co53 + n --> p + Fe53 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 21.5271 + -0.94587 * tfactors.T913 - + 0.327891 * tfactors.T9 + -0.0355667 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.94587 * tfactors.T923i - + 0.327891 + (5.0/3.0) * -0.0355667 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Co53_to_He4_Mn50_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co53 + n --> He4 + Mn50 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 7.77398 + 4.96211 * tfactors.T913 - + -1.17699 * tfactors.T9 + 0.226 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 4.96211 * tfactors.T923i - + -1.17699 + (5.0/3.0) * 0.226 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Co53_to_p_Ni56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co53 + He4 --> p + Ni56 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 64.2463 + -94.0605 * tfactors.T913i + -1.48203 * tfactors.T913 - + -0.476442 * tfactors.T9 + 0.00631587 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -94.0605 * tfactors.T943i + (1.0/3.0) * -1.48203 * tfactors.T923i - + -0.476442 + (5.0/3.0) * 0.00631587 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Co54_to_p_Fe54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co54 + n --> p + Fe54 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 21.6932 + -1.41064 * tfactors.T913 - + 0.417457 * tfactors.T9 + -0.0400596 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.41064 * tfactors.T923i - + 0.417457 + (5.0/3.0) * -0.0400596 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Co54_to_He4_Mn51_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co54 + n --> He4 + Mn51 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 14.2846 + -1.92176 * tfactors.T913 - + 1.2968 * tfactors.T9 + -0.117145 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.92176 * tfactors.T923i - + 1.2968 + (5.0/3.0) * -0.117145 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Co54_to_n_Cu57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co54 + He4 --> n + Cu57 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 10.5817 + -73.6465 * tfactors.T9i + 1.52892 * tfactors.T913 - + -0.01999 * tfactors.T9 + 0.0715186 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 73.6465 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.52892 * tfactors.T923i - + -0.01999 + (5.0/3.0) * 0.0715186 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Co54_to_p_Ni57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co54 + He4 --> p + Ni57 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 64.379 + -94.1012 * tfactors.T913i + -1.53121 * tfactors.T913 - + -0.462669 * tfactors.T9 + 0.00353266 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -94.1012 * tfactors.T943i + (1.0/3.0) * -1.53121 * tfactors.T923i - + -0.462669 + (5.0/3.0) * 0.00353266 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Co55_to_p_Fe55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co55 + n --> p + Fe55 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.7398 + -1.62382 * tfactors.T913 - + 0.58115 * tfactors.T9 + -0.0537057 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.62382 * tfactors.T923i - + 0.58115 + (5.0/3.0) * -0.0537057 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Co55_to_He4_Mn52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co55 + n --> He4 + Mn52 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -12.5469 + 8.15876 * tfactors.T913 - + 3.05978 * tfactors.T9 + -0.406535 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 8.15876 * tfactors.T923i - + 3.05978 + (5.0/3.0) * -0.406535 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Co55_to_He4_Fe52_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co55 + p --> He4 + Fe52 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 61.4434 + -9.65363 * tfactors.T9i + -91.6819 * tfactors.T913i + -0.329235 * tfactors.T913 - + -0.780924 * tfactors.T9 + 0.0425179 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 9.65363 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -91.6819 * tfactors.T943i + (1.0/3.0) * -0.329235 * tfactors.T923i - + -0.780924 + (5.0/3.0) * 0.0425179 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Co55_to_n_Cu58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co55 + He4 --> n + Cu58 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 9.69034 + -92.9741 * tfactors.T9i + 4.29921 * tfactors.T913 - + -0.76309 * tfactors.T9 + 0.10257 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 92.9741 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 4.29921 * tfactors.T923i - + -0.76309 + (5.0/3.0) * 0.10257 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Co55_to_p_Ni58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co55 + He4 --> p + Ni58 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 60.2281 + -94.1404 * tfactors.T913i + 3.39179 * tfactors.T913 - + -1.71062 * tfactors.T9 + 0.133003 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -94.1404 * tfactors.T943i + (1.0/3.0) * 3.39179 * tfactors.T923i - + -1.71062 + (5.0/3.0) * 0.133003 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Co56_to_p_Fe56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co56 + n --> p + Fe56 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.4539 + -1.13331 * tfactors.T913 - + 0.347185 * tfactors.T9 + -0.0328879 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.13331 * tfactors.T923i - + 0.347185 + (5.0/3.0) * -0.0328879 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Co56_to_He4_Mn53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co56 + n --> He4 + Mn53 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 12.5672 + -2.81854 * tfactors.T913 - + 1.84188 * tfactors.T9 + -0.164509 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -2.81854 * tfactors.T923i - + 1.84188 + (5.0/3.0) * -0.164509 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Co56_to_n_Ni56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co56 + p --> n + Ni56 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 13.3721 + -33.8622 * tfactors.T9i + 1.76846 * tfactors.T913 - + 0.197992 * tfactors.T9 + -0.017494 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 33.8622 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.76846 * tfactors.T923i - + 0.197992 + (5.0/3.0) * -0.017494 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Co56_to_He4_Fe53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co56 + p --> He4 + Fe53 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 56.0473 + -2.66873 * tfactors.T9i + -91.7231 * tfactors.T913i + 10.052 * tfactors.T913 - + -3.86332 * tfactors.T9 + 0.391105 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.66873 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -91.7231 * tfactors.T943i + (1.0/3.0) * 10.052 * tfactors.T923i - + -3.86332 + (5.0/3.0) * 0.391105 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Co56_to_n_Cu59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co56 + He4 --> n + Cu59 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 8.89185 + -61.8349 * tfactors.T9i + -1.00882 * tfactors.T913 - + 1.88993 * tfactors.T9 + -0.202319 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 61.8349 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.00882 * tfactors.T923i - + 1.88993 + (5.0/3.0) * -0.202319 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Co56_to_p_Ni59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co56 + He4 --> p + Ni59 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 49.7325 + -94.1784 * tfactors.T913i + 17.5303 * tfactors.T913 - + -5.78946 * tfactors.T9 + 0.587654 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -94.1784 * tfactors.T943i + (1.0/3.0) * 17.5303 * tfactors.T923i - + -5.78946 + (5.0/3.0) * 0.587654 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Co57_to_p_Fe57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co57 + n --> p + Fe57 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 13.547 + -0.061056 * tfactors.T913 - + 1.28749 * tfactors.T9 + -0.156423 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.061056 * tfactors.T923i - + 1.28749 + (5.0/3.0) * -0.156423 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Co57_to_He4_Mn54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co57 + n --> He4 + Mn54 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -30.5739 + 26.4125 * tfactors.T913 - + -0.137701 * tfactors.T9 + -0.184911 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 26.4125 * tfactors.T923i - + -0.137701 + (5.0/3.0) * -0.184911 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Co57_to_n_Ni57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co57 + p --> n + Ni57 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 19.3008 + -46.9353 * tfactors.T9i + -1.13177 * tfactors.T913 - + 0.56875 * tfactors.T9 + -0.0579913 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 46.9353 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.13177 * tfactors.T923i - + 0.56875 + (5.0/3.0) * -0.0579913 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Co57_to_He4_Fe54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co57 + p --> He4 + Fe54 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -2.1962 + -38.1133 * tfactors.T913i + 29.3541 * tfactors.T913 - + -4.75966 * tfactors.T9 + 0.40418 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -38.1133 * tfactors.T943i + (1.0/3.0) * 29.3541 * tfactors.T923i - + -4.75966 + (5.0/3.0) * 0.40418 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Co57_to_n_Cu60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co57 + He4 --> n + Cu60 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 11.0625 + -77.1294 * tfactors.T9i + 2.72669 * tfactors.T913 - + -0.141713 * tfactors.T9 + 0.025172 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 77.1294 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.72669 * tfactors.T923i - + -0.141713 + (5.0/3.0) * 0.025172 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Co57_to_p_Ni60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co57 + He4 --> p + Ni60 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 49.6113 + -94.2152 * tfactors.T913i + 16.1097 * tfactors.T913 - + -4.84624 * tfactors.T9 + 0.441487 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -94.2152 * tfactors.T943i + (1.0/3.0) * 16.1097 * tfactors.T923i - + -4.84624 + (5.0/3.0) * 0.441487 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Co58_to_p_Fe58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co58 + n --> p + Fe58 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 19.5496 + -3.2947 * tfactors.T913 - + 0.833003 * tfactors.T9 + -0.0604538 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -3.2947 * tfactors.T923i - + 0.833003 + (5.0/3.0) * -0.0604538 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Co58_to_He4_Mn55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co58 + n --> He4 + Mn55 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 10.635 + -5.4323 * tfactors.T913 - + 3.33275 * tfactors.T9 + -0.339917 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -5.4323 * tfactors.T923i - + 3.33275 + (5.0/3.0) * -0.339917 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Co58_to_n_Ni58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co58 + p --> n + Ni58 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -27.5032 + -4.64783 * tfactors.T9i + 34.6301 * tfactors.T913 - + -3.77385 * tfactors.T9 + 0.190506 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 4.64783 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 34.6301 * tfactors.T923i - + -3.77385 + (5.0/3.0) * 0.190506 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Co58_to_He4_Fe55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co58 + p --> He4 + Fe55 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 15.1012 + -38.1171 * tfactors.T913i + 13.2187 * tfactors.T913 - + -1.74746 * tfactors.T9 + 0.142513 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -38.1171 * tfactors.T943i + (1.0/3.0) * 13.2187 * tfactors.T923i - + -1.74746 + (5.0/3.0) * 0.142513 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Co58_to_n_Cu61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co58 + He4 --> n + Cu61 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 1.34095 + -40.7159 * tfactors.T9i + 1.07449 * tfactors.T913 - + 3.05815 * tfactors.T9 + -0.386686 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 40.7159 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.07449 * tfactors.T923i - + 3.05815 + (5.0/3.0) * -0.386686 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Co58_to_p_Ni61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co58 + He4 --> p + Ni61 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -75.9084 + -5.67496 * tfactors.T9i + -39.0635 * tfactors.T913i + 109.727 * tfactors.T913 - + -23.3971 * tfactors.T9 + 2.29485 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.67496 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.0635 * tfactors.T943i + (1.0/3.0) * 109.727 * tfactors.T923i - + -23.3971 + (5.0/3.0) * 2.29485 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Co59_to_n_Ni59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co59 + p --> n + Ni59 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 11.9735 + -21.5276 * tfactors.T9i + 2.48878 * tfactors.T913 - + 0.158023 * tfactors.T9 + -0.0135864 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 21.5276 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.48878 * tfactors.T923i - + 0.158023 + (5.0/3.0) * -0.0135864 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Co59_to_He4_Fe56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co59 + p --> He4 + Fe56 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 19.47 + -38.1208 * tfactors.T913i + 13.9086 * tfactors.T913 - + -3.45838 * tfactors.T9 + 0.391302 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -38.1208 * tfactors.T943i + (1.0/3.0) * 13.9086 * tfactors.T923i - + -3.45838 + (5.0/3.0) * 0.391302 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Co59_to_n_Cu62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co59 + He4 --> n + Cu62 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 9.13317 + -58.9158 * tfactors.T9i + 0.965159 * tfactors.T913 - + 0.563053 * tfactors.T9 + -0.0358157 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 58.9158 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.965159 * tfactors.T923i - + 0.563053 + (5.0/3.0) * -0.0358157 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Co59_to_p_Ni62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Co59 + He4 --> p + Ni62 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -93.0347 + -4.01946 * tfactors.T9i + -39.0669 * tfactors.T913i + 126.723 * tfactors.T913 - + -27.3047 * tfactors.T9 + 2.67436 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 4.01946 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.0669 * tfactors.T943i + (1.0/3.0) * 126.723 * tfactors.T923i - + -27.3047 + (5.0/3.0) * 2.67436 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ni56_to_p_Co56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni56 + n --> p + Co56 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 15.5693 + 1.76846 * tfactors.T913 - + 0.197992 * tfactors.T9 + -0.017494 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 1.76846 * tfactors.T923i - + 0.197992 + (5.0/3.0) * -0.017494 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ni56_to_He4_Fe53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni56 + n --> He4 + Fe53 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -7.84393 + 6.43259 * tfactors.T913 - + 2.29591 * tfactors.T9 + -0.254724 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 6.43259 * tfactors.T923i - + 2.29591 + (5.0/3.0) * -0.254724 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ni56_to_He4_Co53_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni56 + p --> He4 + Co53 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 67.6294 + -74.2085 * tfactors.T9i + -94.0605 * tfactors.T913i + -1.48203 * tfactors.T913 - + -0.476442 * tfactors.T9 + 0.00631587 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 74.2085 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -94.0605 * tfactors.T943i + (1.0/3.0) * -1.48203 * tfactors.T923i - + -0.476442 + (5.0/3.0) * 0.00631587 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ni56_to_n_Zn59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni56 + He4 --> n + Zn59 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 13.1566 + -142.615 * tfactors.T9i + 4.01795 * tfactors.T913 - + -1.00571 * tfactors.T9 + 0.129548 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 142.615 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 4.01795 * tfactors.T923i - + -1.00571 + (5.0/3.0) * 0.129548 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ni56_to_p_Cu59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni56 + He4 --> p + Cu59 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.8471 + -27.9728 * tfactors.T9i + -39.9808 * tfactors.T913i + 13.6773 * tfactors.T913 - + -3.76429 * tfactors.T9 + 0.438096 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 27.9728 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.9808 * tfactors.T943i + (1.0/3.0) * 13.6773 * tfactors.T923i - + -3.76429 + (5.0/3.0) * 0.438096 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ni57_to_p_Co57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni57 + n --> p + Co57 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 19.9939 + -1.13177 * tfactors.T913 - + 0.56875 * tfactors.T9 + -0.0579913 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.13177 * tfactors.T923i - + 0.56875 + (5.0/3.0) * -0.0579913 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ni57_to_He4_Fe54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni57 + n --> He4 + Fe54 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 14.5327 + 0.48562 * tfactors.T913 - + -0.0249302 * tfactors.T9 + 0.0509605 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.48562 * tfactors.T923i - + -0.0249302 + (5.0/3.0) * 0.0509605 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ni57_to_n_Cu57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni57 + p --> n + Cu57 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 21.0221 + -110.878 * tfactors.T9i + -0.57954 * tfactors.T913 - + 0.250954 * tfactors.T9 + -0.0264877 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 110.878 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.57954 * tfactors.T923i - + 0.250954 + (5.0/3.0) * -0.0264877 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ni57_to_He4_Co54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni57 + p --> He4 + Co54 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 64.2979 + -37.2315 * tfactors.T9i + -94.1012 * tfactors.T913i + -1.53121 * tfactors.T913 - + -0.462669 * tfactors.T9 + 0.00353266 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 37.2315 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -94.1012 * tfactors.T943i + (1.0/3.0) * -1.53121 * tfactors.T923i - + -0.462669 + (5.0/3.0) * 0.00353266 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ni57_to_n_Zn60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni57 + He4 --> n + Zn60 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 9.72845 + -87.5049 * tfactors.T9i + 5.43552 * tfactors.T913 - + -1.25169 * tfactors.T9 + 0.148383 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 87.5049 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.43552 * tfactors.T923i - + -1.25169 + (5.0/3.0) * 0.148383 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ni57_to_p_Cu60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni57 + He4 --> p + Cu60 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 12.6894 + -30.1941 * tfactors.T9i + -39.9846 * tfactors.T913i + 20.3348 * tfactors.T913 - + -4.47882 * tfactors.T9 + 0.442893 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 30.1941 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.9846 * tfactors.T943i + (1.0/3.0) * 20.3348 * tfactors.T923i - + -4.47882 + (5.0/3.0) * 0.442893 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ni58_to_p_Co58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni58 + n --> p + Co58 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -25.8938 + 34.6301 * tfactors.T913 - + -3.77385 * tfactors.T9 + 0.190506 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 34.6301 * tfactors.T923i - + -3.77385 + (5.0/3.0) * 0.190506 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ni58_to_He4_Fe55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni58 + n --> He4 + Fe55 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -2.03901 + 3.44996 * tfactors.T913 - + 2.98226 * tfactors.T9 + -0.387699 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 3.44996 * tfactors.T923i - + 2.98226 + (5.0/3.0) * -0.387699 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ni58_to_n_Cu58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni58 + p --> n + Cu58 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 21.9037 + -108.479 * tfactors.T9i + -0.603447 * tfactors.T913 - + 0.300346 * tfactors.T9 + -0.0361808 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 108.479 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.603447 * tfactors.T923i - + 0.300346 + (5.0/3.0) * -0.0361808 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ni58_to_He4_Co55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni58 + p --> He4 + Co55 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 63.6142 + -15.5045 * tfactors.T9i + -94.1404 * tfactors.T913i + 3.39179 * tfactors.T913 - + -1.71062 * tfactors.T9 + 0.133003 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 15.5045 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -94.1404 * tfactors.T943i + (1.0/3.0) * 3.39179 * tfactors.T923i - + -1.71062 + (5.0/3.0) * 0.133003 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ni58_to_n_Zn61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni58 + He4 --> n + Zn61 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 15.06 + -110.575 * tfactors.T9i + 2.9413 * tfactors.T913 - + -0.542181 * tfactors.T9 + 0.0584262 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 110.575 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.9413 * tfactors.T923i - + -0.542181 + (5.0/3.0) * 0.0584262 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ni58_to_p_Cu61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni58 + He4 --> p + Cu61 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 21.4671 + -36.0681 * tfactors.T9i + -39.9882 * tfactors.T913i + 13.3129 * tfactors.T913 - + -2.90092 * tfactors.T9 + 0.277699 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 36.0681 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.9882 * tfactors.T943i + (1.0/3.0) * 13.3129 * tfactors.T923i - + -2.90092 + (5.0/3.0) * 0.277699 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ni59_to_p_Co59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni59 + n --> p + Co59 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 12.6666 + 2.48878 * tfactors.T913 - + 0.158023 * tfactors.T9 + -0.0135864 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 2.48878 * tfactors.T923i - + 0.158023 + (5.0/3.0) * -0.0135864 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ni59_to_He4_Fe56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni59 + n --> He4 + Fe56 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 16.4083 + -4.21617 * tfactors.T913 - + 1.58032 * tfactors.T9 + -0.126895 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -4.21617 * tfactors.T923i - + 1.58032 + (5.0/3.0) * -0.126895 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ni59_to_n_Cu59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni59 + p --> n + Cu59 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.6885 + -64.762 * tfactors.T9i + -0.680585 * tfactors.T913 - + 0.344111 * tfactors.T9 + -0.0446623 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 64.762 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.680585 * tfactors.T923i - + 0.344111 + (5.0/3.0) * -0.0446623 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ni59_to_He4_Co56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni59 + p --> He4 + Co56 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 51.8514 + -2.92715 * tfactors.T9i + -94.1784 * tfactors.T913i + 17.5303 * tfactors.T913 - + -5.78946 * tfactors.T9 + 0.587654 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.92715 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -94.1784 * tfactors.T943i + (1.0/3.0) * 17.5303 * tfactors.T923i - + -5.78946 + (5.0/3.0) * 0.587654 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ni59_to_n_Zn62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni59 + He4 --> n + Zn62 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 12.7055 + -65.3405 * tfactors.T9i + -0.824101 * tfactors.T913 - + 0.913843 * tfactors.T9 + -0.084157 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 65.3405 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.824101 * tfactors.T923i - + 0.913843 + (5.0/3.0) * -0.084157 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ni59_to_p_Cu62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni59 + He4 --> p + Cu62 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 18.4545 + -37.3882 * tfactors.T9i + -39.9917 * tfactors.T913i + 15.2078 * tfactors.T913 - + -3.13691 * tfactors.T9 + 0.278116 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 37.3882 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.9917 * tfactors.T943i + (1.0/3.0) * 15.2078 * tfactors.T923i - + -3.13691 + (5.0/3.0) * 0.278116 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ni60_to_He4_Fe57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni60 + n --> He4 + Fe57 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -60.4121 + 55.1407 * tfactors.T913 - + -5.1585 * tfactors.T9 + 0.212248 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 55.1407 * tfactors.T923i - + -5.1585 + (5.0/3.0) * 0.212248 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ni60_to_n_Cu60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni60 + p --> n + Cu60 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 22.2617 + -80.1909 * tfactors.T9i + -0.671684 * tfactors.T913 - + 0.215296 * tfactors.T9 + -0.0251141 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 80.1909 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.671684 * tfactors.T923i - + 0.215296 + (5.0/3.0) * -0.0251141 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ni60_to_He4_Co57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni60 + p --> He4 + Co57 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 53.0001 + -3.0615 * tfactors.T9i + -94.2152 * tfactors.T913i + 16.1097 * tfactors.T913 - + -4.84624 * tfactors.T9 + 0.441487 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.0615 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -94.2152 * tfactors.T943i + (1.0/3.0) * 16.1097 * tfactors.T923i - + -4.84624 + (5.0/3.0) * 0.441487 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ni60_to_n_Zn63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni60 + He4 --> n + Zn63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 16.4158 + -91.7388 * tfactors.T9i + 1.29216 * tfactors.T913 - + -0.174127 * tfactors.T9 + 0.0226404 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 91.7388 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.29216 * tfactors.T923i - + -0.174127 + (5.0/3.0) * 0.0226404 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ni60_to_p_Cu63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni60 + He4 --> p + Cu63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 25.9226 + -43.5935 * tfactors.T9i + -39.995 * tfactors.T913i + 9.96871 * tfactors.T913 - + -2.08607 * tfactors.T9 + 0.166693 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 43.5935 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.995 * tfactors.T943i + (1.0/3.0) * 9.96871 * tfactors.T923i - + -2.08607 + (5.0/3.0) * 0.166693 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ni61_to_He4_Fe58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni61 + n --> He4 + Fe58 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 10.5185 + -7.53968 * tfactors.T913 - + 4.09062 * tfactors.T9 + -0.416412 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -7.53968 * tfactors.T923i - + 4.09062 + (5.0/3.0) * -0.416412 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ni61_to_n_Cu61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni61 + p --> n + Cu61 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.1763 + -35.0409 * tfactors.T9i + -1.69187 * tfactors.T913 - + 0.784543 * tfactors.T9 + -0.100904 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 35.0409 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.69187 * tfactors.T923i - + 0.784543 + (5.0/3.0) * -0.100904 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ni61_to_He4_Co58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni61 + p --> He4 + Co58 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -74.3746 + -39.0635 * tfactors.T913i + 109.727 * tfactors.T913 - + -23.3971 * tfactors.T9 + 2.29485 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.0635 * tfactors.T943i + (1.0/3.0) * 109.727 * tfactors.T923i - + -23.3971 + (5.0/3.0) * 2.29485 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ni61_to_n_Zn64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni61 + He4 --> n + Zn64 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 4.60741 + -44.8367 * tfactors.T9i + -0.988345 * tfactors.T913 - + 3.05973 * tfactors.T9 + -0.380848 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 44.8367 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.988345 * tfactors.T923i - + 3.05973 + (5.0/3.0) * -0.380848 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ni61_to_p_Cu64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni61 + He4 --> p + Cu64 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 25.1786 + -42.4806 * tfactors.T9i + -39.9983 * tfactors.T913i + 5.14164 * tfactors.T913 - + 0.0632313 * tfactors.T9 + -0.0939329 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 42.4806 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -39.9983 * tfactors.T943i + (1.0/3.0) * 5.14164 * tfactors.T923i - + 0.0632313 + (5.0/3.0) * -0.0939329 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ni62_to_n_Cu62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni62 + p --> n + Cu62 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 22.2147 + -54.8962 * tfactors.T9i + -2.13932 * tfactors.T913 - + 0.412918 * tfactors.T9 + -0.0409549 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 54.8962 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.13932 * tfactors.T923i - + 0.412918 + (5.0/3.0) * -0.0409549 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ni62_to_He4_Co59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni62 + p --> He4 + Co59 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -89.6434 + -39.0669 * tfactors.T913i + 126.723 * tfactors.T913 - + -27.3047 * tfactors.T9 + 2.67436 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.0669 * tfactors.T943i + (1.0/3.0) * 126.723 * tfactors.T923i - + -27.3047 + (5.0/3.0) * 2.67436 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ni62_to_n_Zn65_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni62 + He4 --> n + Zn65 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 17.1063 + -75.2076 * tfactors.T9i + -1.0424 * tfactors.T913 - + 0.355927 * tfactors.T9 + -0.0148374 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 75.2076 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.0424 * tfactors.T923i - + 0.355927 + (5.0/3.0) * -0.0148374 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ni62_to_p_Cu65_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni62 + He4 --> p + Cu65 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 28.6732 + -50.4388 * tfactors.T9i + -40.0015 * tfactors.T913i + 9.18742 * tfactors.T913 - + -2.93395 * tfactors.T9 + 0.309787 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 50.4388 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -40.0015 * tfactors.T943i + (1.0/3.0) * 9.18742 * tfactors.T923i - + -2.93395 + (5.0/3.0) * 0.309787 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ni63_to_n_Cu63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni63 + p --> n + Cu63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -11.1451 + -8.30152 * tfactors.T9i + 21.0235 * tfactors.T913 - + -1.85553 * tfactors.T9 + 0.0587378 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 8.30152 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 21.0235 * tfactors.T923i - + -1.85553 + (5.0/3.0) * 0.0587378 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Ni63_to_n_Zn66_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni63 + He4 --> n + Zn66 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -30.2433 + -26.2207 * tfactors.T9i + 25.0757 * tfactors.T913 - + 0.0590561 * tfactors.T9 + -0.21357 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 26.2207 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 25.0757 * tfactors.T923i - + 0.0590561 + (5.0/3.0) * -0.21357 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ni64_to_n_Cu64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ni64 + p --> n + Cu64 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 19.6809 + -28.5167 * tfactors.T9i + -2.37283 * tfactors.T913 - + 0.155682 * tfactors.T9 + 0.0314201 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 28.5167 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.37283 * tfactors.T923i - + 0.155682 + (5.0/3.0) * 0.0314201 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cu57_to_p_Ni57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu57 + n --> p + Ni57 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 21.0221 + -0.57954 * tfactors.T913 - + 0.250954 * tfactors.T9 + -0.0264877 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.57954 * tfactors.T923i - + 0.250954 + (5.0/3.0) * -0.0264877 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cu57_to_He4_Co54_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu57 + n --> He4 + Co54 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 10.5006 + 1.52892 * tfactors.T913 - + -0.01999 * tfactors.T9 + 0.0715186 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 1.52892 * tfactors.T923i - + -0.01999 + (5.0/3.0) * 0.0715186 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cu57_to_p_Zn60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu57 + He4 --> p + Zn60 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 65.3414 + -98.8126 * tfactors.T913i + -0.580624 * tfactors.T913 - + -0.793165 * tfactors.T9 + 0.0435934 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -98.8126 * tfactors.T943i + (1.0/3.0) * -0.580624 * tfactors.T923i - + -0.793165 + (5.0/3.0) * 0.0435934 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cu58_to_p_Ni58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu58 + n --> p + Ni58 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.8051 + -0.603447 * tfactors.T913 - + 0.300346 * tfactors.T9 + -0.0361808 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.603447 * tfactors.T923i - + 0.300346 + (5.0/3.0) * -0.0361808 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cu58_to_He4_Co55_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu58 + n --> He4 + Co55 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 11.9778 + 4.29921 * tfactors.T913 - + -0.76309 * tfactors.T9 + 0.10257 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 4.29921 * tfactors.T923i - + -0.76309 + (5.0/3.0) * 0.10257 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cu58_to_p_Zn61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu58 + He4 --> p + Zn61 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -80.5277 + -2.09612 * tfactors.T9i + -40.9023 * tfactors.T913i + 107.263 * tfactors.T913 - + -20.9034 * tfactors.T9 + 1.9567 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.09612 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -40.9023 * tfactors.T943i + (1.0/3.0) * 107.263 * tfactors.T923i - + -20.9034 + (5.0/3.0) * 1.9567 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cu59_to_p_Ni59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu59 + n --> p + Ni59 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.6885 + -0.680585 * tfactors.T913 - + 0.344111 * tfactors.T9 + -0.0446623 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.680585 * tfactors.T923i - + 0.344111 + (5.0/3.0) * -0.0446623 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cu59_to_He4_Co56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu59 + n --> He4 + Co56 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 11.0108 + -1.00882 * tfactors.T913 - + 1.88993 * tfactors.T9 + -0.202319 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.00882 * tfactors.T923i - + 1.88993 + (5.0/3.0) * -0.202319 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cu59_to_n_Zn59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu59 + p --> n + Zn59 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.3972 + -114.642 * tfactors.T9i + -0.234419 * tfactors.T913 - + 0.226299 * tfactors.T9 + -0.0269152 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 114.642 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.234419 * tfactors.T923i - + 0.226299 + (5.0/3.0) * -0.0269152 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cu59_to_He4_Ni56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu59 + p --> He4 + Ni56 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.7688 + -39.9808 * tfactors.T913i + 13.6773 * tfactors.T913 - + -3.76429 * tfactors.T9 + 0.438096 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.9808 * tfactors.T943i + (1.0/3.0) * 13.6773 * tfactors.T923i - + -3.76429 + (5.0/3.0) * 0.438096 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cu59_to_n_Ga62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu59 + He4 --> n + Ga62 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 10.6411 + -116.082 * tfactors.T9i + 5.15052 * tfactors.T913 - + -1.31888 * tfactors.T9 + 0.177044 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 116.082 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 5.15052 * tfactors.T923i - + -1.31888 + (5.0/3.0) * 0.177044 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cu59_to_p_Zn62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu59 + He4 --> p + Zn62 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -110.088 + -0.578461 * tfactors.T9i + -40.9058 * tfactors.T913i + 144.145 * tfactors.T913 - + -30.7303 * tfactors.T9 + 3.0118 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 0.578461 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -40.9058 * tfactors.T943i + (1.0/3.0) * 144.145 * tfactors.T923i - + -30.7303 + (5.0/3.0) * 3.0118 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cu60_to_p_Ni60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu60 + n --> p + Ni60 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.6523 + -0.671684 * tfactors.T913 - + 0.215296 * tfactors.T9 + -0.0251141 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.671684 * tfactors.T923i - + 0.215296 + (5.0/3.0) * -0.0251141 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cu60_to_He4_Co57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu60 + n --> He4 + Co57 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 12.8419 + 2.72669 * tfactors.T913 - + -0.141713 * tfactors.T9 + 0.025172 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 2.72669 * tfactors.T923i - + -0.141713 + (5.0/3.0) * 0.025172 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cu60_to_n_Zn60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu60 + p --> n + Zn60 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 18.8375 + -57.3109 * tfactors.T9i + -0.620889 * tfactors.T913 - + 0.360154 * tfactors.T9 + -0.0412341 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 57.3109 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.620889 * tfactors.T923i - + 0.360154 + (5.0/3.0) * -0.0412341 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cu60_to_He4_Ni57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu60 + p --> He4 + Ni57 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 13.7756 + -39.9846 * tfactors.T913i + 20.3348 * tfactors.T913 - + -4.47882 * tfactors.T9 + 0.442893 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.9846 * tfactors.T943i + (1.0/3.0) * 20.3348 * tfactors.T923i - + -4.47882 + (5.0/3.0) * 0.442893 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cu60_to_n_Ga63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu60 + He4 --> n + Ga63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 11.5144 + -86.3771 * tfactors.T9i + 4.02167 * tfactors.T913 - + -0.688499 * tfactors.T9 + 0.0864831 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 86.3771 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 4.02167 * tfactors.T923i - + -0.688499 + (5.0/3.0) * 0.0864831 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cu60_to_p_Zn63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu60 + He4 --> p + Zn63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -39.0633 + -11.548 * tfactors.T9i + -40.9093 * tfactors.T913i + 67.8676 * tfactors.T913 - + -12.8153 * tfactors.T9 + 1.17292 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 11.548 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -40.9093 * tfactors.T943i + (1.0/3.0) * 67.8676 * tfactors.T923i - + -12.8153 + (5.0/3.0) * 1.17292 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cu61_to_p_Ni61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu61 + n --> p + Ni61 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.1763 + -1.69187 * tfactors.T913 - + 0.784543 * tfactors.T9 + -0.100904 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.69187 * tfactors.T923i - + 0.784543 + (5.0/3.0) * -0.100904 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cu61_to_He4_Co58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu61 + n --> He4 + Co58 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 2.87474 + 1.07449 * tfactors.T913 - + 3.05815 * tfactors.T9 + -0.386686 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 1.07449 * tfactors.T923i - + 3.05815 + (5.0/3.0) * -0.386686 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cu61_to_n_Zn61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu61 + p --> n + Zn61 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.4412 + -74.5068 * tfactors.T9i + -0.657488 * tfactors.T913 - + 0.358985 * tfactors.T9 + -0.0432252 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 74.5068 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.657488 * tfactors.T923i - + 0.358985 + (5.0/3.0) * -0.0432252 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cu61_to_He4_Ni58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu61 + p --> He4 + Ni58 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 21.3915 + -39.9882 * tfactors.T913i + 13.3129 * tfactors.T913 - + -2.90092 * tfactors.T9 + 0.277699 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.9882 * tfactors.T943i + (1.0/3.0) * 13.3129 * tfactors.T923i - + -2.90092 + (5.0/3.0) * 0.277699 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cu61_to_n_Ga64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu61 + He4 --> n + Ga64 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 12.5232 + -102.07 * tfactors.T9i + 2.74537 * tfactors.T913 - + -0.458111 * tfactors.T9 + 0.0581457 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 102.07 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 2.74537 * tfactors.T923i - + -0.458111 + (5.0/3.0) * 0.0581457 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cu61_to_p_Zn64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu61 + He4 --> p + Zn64 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -49.6329 + -9.79576 * tfactors.T9i + -40.9126 * tfactors.T913i + 78.2645 * tfactors.T913 - + -15.0794 * tfactors.T9 + 1.39304 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 9.79576 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -40.9126 * tfactors.T943i + (1.0/3.0) * 78.2645 * tfactors.T923i - + -15.0794 + (5.0/3.0) * 1.39304 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cu62_to_p_Ni62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu62 + n --> p + Ni62 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 21.1161 + -2.13932 * tfactors.T913 - + 0.412918 * tfactors.T9 + -0.0409549 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -2.13932 * tfactors.T923i - + 0.412918 + (5.0/3.0) * -0.0409549 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cu62_to_He4_Co59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu62 + n --> He4 + Co59 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 11.4259 + 0.965159 * tfactors.T913 - + 0.563053 * tfactors.T9 + -0.0358157 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.965159 * tfactors.T923i - + 0.563053 + (5.0/3.0) * -0.0358157 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cu62_to_n_Zn62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu62 + p --> n + Zn62 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 16.6773 + -27.9523 * tfactors.T9i + -0.772736 * tfactors.T913 - + 1.08329 * tfactors.T9 + -0.144709 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 27.9523 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.772736 * tfactors.T923i - + 1.08329 + (5.0/3.0) * -0.144709 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cu62_to_He4_Ni59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu62 + p --> He4 + Ni59 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.0541 + -39.9917 * tfactors.T913i + 15.2078 * tfactors.T913 - + -3.13691 * tfactors.T9 + 0.278116 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.9917 * tfactors.T943i + (1.0/3.0) * 15.2078 * tfactors.T923i - + -3.13691 + (5.0/3.0) * 0.278116 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cu62_to_p_Zn65_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu62 + He4 --> p + Zn65 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -7.79044 + -20.3112 * tfactors.T9i + -40.9159 * tfactors.T913i + 37.2348 * tfactors.T913 - + -6.13297 * tfactors.T9 + 0.499001 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 20.3112 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -40.9159 * tfactors.T943i + (1.0/3.0) * 37.2348 * tfactors.T923i - + -6.13297 + (5.0/3.0) * 0.499001 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cu63_to_p_Ni63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu63 + n --> p + Ni63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -11.8382 + 21.0235 * tfactors.T913 - + -1.85553 * tfactors.T9 + 0.0587378 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 21.0235 * tfactors.T923i - + -1.85553 + (5.0/3.0) * 0.0587378 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cu63_to_n_Zn63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu63 + p --> n + Zn63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 21.0355 + -48.1453 * tfactors.T9i + -2.10997 * tfactors.T913 - + 0.691727 * tfactors.T9 + -0.0763545 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 48.1453 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -2.10997 * tfactors.T923i - + 0.691727 + (5.0/3.0) * -0.0763545 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cu63_to_He4_Ni60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu63 + p --> He4 + Ni60 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 25.8494 + -39.995 * tfactors.T913i + 9.96871 * tfactors.T913 - + -2.08607 * tfactors.T9 + 0.166693 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.995 * tfactors.T943i + (1.0/3.0) * 9.96871 * tfactors.T923i - + -2.08607 + (5.0/3.0) * 0.166693 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Cu63_to_p_Zn66_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu63 + He4 --> p + Zn66 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -13.8091 + -17.9192 * tfactors.T9i + -40.919 * tfactors.T913i + 40.0655 * tfactors.T913 - + -6.06828 * tfactors.T9 + 0.437776 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 17.9192 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -40.919 * tfactors.T943i + (1.0/3.0) * 40.0655 * tfactors.T923i - + -6.06828 + (5.0/3.0) * 0.437776 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Cu64_to_p_Ni64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu64 + n --> p + Ni64 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 18.5823 + -2.37283 * tfactors.T913 - + 0.155682 * tfactors.T9 + 0.0314201 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -2.37283 * tfactors.T923i - + 0.155682 + (5.0/3.0) * 0.0314201 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cu64_to_n_Zn64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu64 + p --> n + Zn64 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -44.155 + -2.35605 * tfactors.T9i + 50.9002 * tfactors.T913 - + -6.85035 * tfactors.T9 + 0.452984 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 2.35605 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 50.9002 * tfactors.T923i - + -6.85035 + (5.0/3.0) * 0.452984 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cu64_to_He4_Ni61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu64 + p --> He4 + Ni61 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 26.7806 + -39.9983 * tfactors.T913i + 5.14164 * tfactors.T913 - + 0.0632313 * tfactors.T9 + -0.0939329 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -39.9983 * tfactors.T943i + (1.0/3.0) * 5.14164 * tfactors.T923i - + 0.0632313 + (5.0/3.0) * -0.0939329 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cu65_to_n_Zn65_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu65 + p --> n + Zn65 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 17.5015 + -24.7688 * tfactors.T9i + -1.75991 * tfactors.T913 - + 0.616648 * tfactors.T9 + -0.0273633 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 24.7688 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.75991 * tfactors.T923i - + 0.616648 + (5.0/3.0) * -0.0273633 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Cu65_to_He4_Ni62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Cu65 + p --> He4 + Ni62 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 28.6023 + -40.0015 * tfactors.T913i + 9.18742 * tfactors.T913 - + -2.93395 * tfactors.T9 + 0.309787 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -40.0015 * tfactors.T943i + (1.0/3.0) * 9.18742 * tfactors.T923i - + -2.93395 + (5.0/3.0) * 0.309787 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Zn59_to_p_Cu59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn59 + n --> p + Cu59 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.3972 + -0.234419 * tfactors.T913 - + 0.226299 * tfactors.T9 + -0.0269152 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.234419 * tfactors.T923i - + 0.226299 + (5.0/3.0) * -0.0269152 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Zn59_to_He4_Ni56_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn59 + n --> He4 + Ni56 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 13.0783 + 4.01795 * tfactors.T913 - + -1.00571 * tfactors.T9 + 0.129548 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 4.01795 * tfactors.T923i - + -1.00571 + (5.0/3.0) * 0.129548 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Zn59_to_p_Ga62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn59 + He4 --> p + Ga62 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -105.635 + -1.44039 * tfactors.T9i + -41.8099 * tfactors.T913i + 139.289 * tfactors.T913 - + -29.8912 * tfactors.T9 + 2.95102 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.44039 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -41.8099 * tfactors.T943i + (1.0/3.0) * 139.289 * tfactors.T923i - + -29.8912 + (5.0/3.0) * 2.95102 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Zn60_to_p_Cu60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn60 + n --> p + Cu60 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.4469 + -0.620889 * tfactors.T913 - + 0.360154 * tfactors.T9 + -0.0412341 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.620889 * tfactors.T923i - + 0.360154 + (5.0/3.0) * -0.0412341 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Zn60_to_He4_Ni57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn60 + n --> He4 + Ni57 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 12.4241 + 5.43552 * tfactors.T913 - + -1.25169 * tfactors.T9 + 0.148383 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 5.43552 * tfactors.T923i - + -1.25169 + (5.0/3.0) * 0.148383 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Zn60_to_He4_Cu57_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn60 + p --> He4 + Cu57 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 68.037 + -23.3731 * tfactors.T9i + -98.8126 * tfactors.T913i + -0.580624 * tfactors.T913 - + -0.793165 * tfactors.T9 + 0.0435934 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 23.3731 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -98.8126 * tfactors.T943i + (1.0/3.0) * -0.580624 * tfactors.T923i - + -0.793165 + (5.0/3.0) * 0.0435934 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Zn60_to_n_Ge63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn60 + He4 --> n + Ge63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 14.7238 + -149.52 * tfactors.T9i + 1.7273 * tfactors.T913 - + -0.26458 * tfactors.T9 + 0.0395 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 149.52 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 1.7273 * tfactors.T923i - + -0.26458 + (5.0/3.0) * 0.0395 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Zn60_to_p_Ga63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn60 + He4 --> p + Ga63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.0286 + -29.0661 * tfactors.T9i + -41.8134 * tfactors.T913i + 14.9697 * tfactors.T913 - + -4.35453 * tfactors.T9 + 0.544288 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 29.0661 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -41.8134 * tfactors.T943i + (1.0/3.0) * 14.9697 * tfactors.T923i - + -4.35453 + (5.0/3.0) * 0.544288 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Zn61_to_p_Cu61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn61 + n --> p + Cu61 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.4412 + -0.657488 * tfactors.T913 - + 0.358985 * tfactors.T9 + -0.0432252 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.657488 * tfactors.T923i - + 0.358985 + (5.0/3.0) * -0.0432252 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Zn61_to_He4_Ni58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn61 + n --> He4 + Ni58 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 14.9844 + 2.9413 * tfactors.T913 - + -0.542181 * tfactors.T9 + 0.0584262 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 2.9413 * tfactors.T923i - + -0.542181 + (5.0/3.0) * 0.0584262 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Zn61_to_He4_Cu58_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn61 + p --> He4 + Cu58 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -79.5047 + -40.9023 * tfactors.T913i + 107.263 * tfactors.T913 - + -20.9034 * tfactors.T9 + 1.9567 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -40.9023 * tfactors.T943i + (1.0/3.0) * 107.263 * tfactors.T923i - + -20.9034 + (5.0/3.0) * 1.9567 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Zn61_to_n_Ge64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn61 + He4 --> n + Ge64 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 8.60553 + -89.0782 * tfactors.T9i + 7.47259 * tfactors.T913 - + -1.92043 * tfactors.T9 + 0.239118 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 89.0782 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 7.47259 * tfactors.T923i - + -1.92043 + (5.0/3.0) * 0.239118 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_Zn61_to_p_Ga64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn61 + He4 --> p + Ga64 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 8.46743 + -27.5631 * tfactors.T9i + -41.8168 * tfactors.T913i + 24.3154 * tfactors.T913 - + -5.57278 * tfactors.T9 + 0.588234 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 27.5631 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -41.8168 * tfactors.T943i + (1.0/3.0) * 24.3154 * tfactors.T923i - + -5.57278 + (5.0/3.0) * 0.588234 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Zn62_to_p_Cu62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn62 + n --> p + Cu62 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 17.7759 + -0.772736 * tfactors.T913 - + 1.08329 * tfactors.T9 + -0.144709 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.772736 * tfactors.T923i - + 1.08329 + (5.0/3.0) * -0.144709 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Zn62_to_He4_Ni59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn62 + n --> He4 + Ni59 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 15.4037 + -0.824101 * tfactors.T913 - + 0.913843 * tfactors.T9 + -0.084157 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.824101 * tfactors.T923i - + 0.913843 + (5.0/3.0) * -0.084157 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Zn62_to_n_Ga62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn62 + p --> n + Ga62 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 21.0588 + -115.504 * tfactors.T9i + -1.58452 * tfactors.T913 - + 0.736569 * tfactors.T9 + -0.0951725 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 115.504 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.58452 * tfactors.T923i - + 0.736569 + (5.0/3.0) * -0.0951725 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Zn62_to_He4_Cu59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn62 + p --> He4 + Cu59 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -107.39 + -40.9058 * tfactors.T913i + 144.145 * tfactors.T913 - + -30.7303 * tfactors.T9 + 3.0118 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -40.9058 * tfactors.T943i + (1.0/3.0) * 144.145 * tfactors.T923i - + -30.7303 + (5.0/3.0) * 3.0118 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Zn63_to_p_Cu63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn63 + n --> p + Cu63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 21.0355 + -2.10997 * tfactors.T913 - + 0.691727 * tfactors.T9 + -0.0763545 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -2.10997 * tfactors.T923i - + 0.691727 + (5.0/3.0) * -0.0763545 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Zn63_to_He4_Ni60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn63 + n --> He4 + Ni60 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 16.3426 + 1.29216 * tfactors.T913 - + -0.174127 * tfactors.T9 + 0.0226404 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 1.29216 * tfactors.T923i - + -0.174127 + (5.0/3.0) * 0.0226404 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Zn63_to_n_Ga63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn63 + p --> n + Ga63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.1422 + -74.8291 * tfactors.T9i + -0.334251 * tfactors.T913 - + 0.328281 * tfactors.T9 + -0.0442083 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 74.8291 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.334251 * tfactors.T923i - + 0.328281 + (5.0/3.0) * -0.0442083 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Zn63_to_He4_Cu60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn63 + p --> He4 + Cu60 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -37.527 + -40.9093 * tfactors.T913i + 67.8676 * tfactors.T913 - + -12.8153 * tfactors.T9 + 1.17292 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -40.9093 * tfactors.T943i + (1.0/3.0) * 67.8676 * tfactors.T923i - + -12.8153 + (5.0/3.0) * 1.17292 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Zn64_to_p_Cu64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn64 + n --> p + Cu64 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -43.0564 + 50.9002 * tfactors.T913 - + -6.85035 * tfactors.T9 + 0.452984 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 50.9002 * tfactors.T923i - + -6.85035 + (5.0/3.0) * 0.452984 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Zn64_to_He4_Ni61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn64 + n --> He4 + Ni61 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 7.30798 + -0.988345 * tfactors.T913 - + 3.05973 * tfactors.T9 + -0.380848 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.988345 * tfactors.T923i - + 3.05973 + (5.0/3.0) * -0.380848 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Zn64_to_n_Ga64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn64 + p --> n + Ga64 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.0454 + -92.2741 * tfactors.T9i + -0.311485 * tfactors.T913 - + 0.306024 * tfactors.T9 + -0.0439383 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 92.2741 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -0.311485 * tfactors.T923i - + 0.306024 + (5.0/3.0) * -0.0439383 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Zn64_to_He4_Cu61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn64 + p --> He4 + Cu61 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -46.9323 + -40.9126 * tfactors.T913i + 78.2645 * tfactors.T913 - + -15.0794 * tfactors.T9 + 1.39304 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -40.9126 * tfactors.T943i + (1.0/3.0) * 78.2645 * tfactors.T923i - + -15.0794 + (5.0/3.0) * 1.39304 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Zn65_to_p_Cu65_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn65 + n --> p + Cu65 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 17.096 + -1.75991 * tfactors.T913 - + 0.616648 * tfactors.T9 + -0.0273633 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.75991 * tfactors.T923i - + 0.616648 + (5.0/3.0) * -0.0273633 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Zn65_to_He4_Ni62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn65 + n --> He4 + Ni62 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 16.63 + -1.0424 * tfactors.T913 - + 0.355927 * tfactors.T9 + -0.0148374 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.0424 * tfactors.T923i - + 0.355927 + (5.0/3.0) * -0.0148374 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Zn65_to_He4_Cu62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn65 + p --> He4 + Cu62 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -7.16817 + -40.9159 * tfactors.T913i + 37.2348 * tfactors.T913 - + -6.13297 * tfactors.T9 + 0.499001 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -40.9159 * tfactors.T943i + (1.0/3.0) * 37.2348 * tfactors.T923i - + -6.13297 + (5.0/3.0) * 0.499001 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Zn66_to_He4_Ni63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn66 + n --> He4 + Ni63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -28.2336 + 25.0757 * tfactors.T913 - + 0.0590561 * tfactors.T9 + -0.21357 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 25.0757 * tfactors.T923i - + 0.0590561 + (5.0/3.0) * -0.21357 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Zn66_to_He4_Cu63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Zn66 + p --> He4 + Cu63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -11.1063 + -40.919 * tfactors.T913i + 40.0655 * tfactors.T913 - + -6.06828 * tfactors.T9 + 0.437776 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -40.919 * tfactors.T943i + (1.0/3.0) * 40.0655 * tfactors.T923i - + -6.06828 + (5.0/3.0) * 0.437776 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ga62_to_p_Zn62_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ga62 + n --> p + Zn62 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 21.0588 + -1.58452 * tfactors.T913 - + 0.736569 * tfactors.T9 + -0.0951725 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.58452 * tfactors.T923i - + 0.736569 + (5.0/3.0) * -0.0951725 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ga62_to_He4_Cu59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ga62 + n --> He4 + Cu59 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 13.3393 + 5.15052 * tfactors.T913 - + -1.31888 * tfactors.T9 + 0.177044 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 5.15052 * tfactors.T923i - + -1.31888 + (5.0/3.0) * 0.177044 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ga62_to_He4_Zn59_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ga62 + p --> He4 + Zn59 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = -102.937 + -41.8099 * tfactors.T913i + 139.289 * tfactors.T913 - + -29.8912 * tfactors.T9 + 2.95102 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -41.8099 * tfactors.T943i + (1.0/3.0) * 139.289 * tfactors.T923i - + -29.8912 + (5.0/3.0) * 2.95102 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ga63_to_p_Zn63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ga63 + n --> p + Zn63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.1422 + -0.334251 * tfactors.T913 - + 0.328281 * tfactors.T9 + -0.0442083 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.334251 * tfactors.T923i - + 0.328281 + (5.0/3.0) * -0.0442083 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ga63_to_He4_Cu60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ga63 + n --> He4 + Cu60 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 13.0507 + 4.02167 * tfactors.T913 - + -0.688499 * tfactors.T9 + 0.0864831 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 4.02167 * tfactors.T923i - + -0.688499 + (5.0/3.0) * 0.0864831 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ga63_to_n_Ge63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ga63 + p --> n + Ge63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 19.5443 + -120.452 * tfactors.T9i + 0.716405 * tfactors.T913 - + 0.00814169 * tfactors.T9 + -0.00430239 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 120.452 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * 0.716405 * tfactors.T923i - + 0.00814169 + (5.0/3.0) * -0.00430239 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ga63_to_He4_Zn60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ga63 + p --> He4 + Zn60 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 19.9554 + -41.8134 * tfactors.T913i + 14.9697 * tfactors.T913 - + -4.35453 * tfactors.T9 + 0.544288 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -41.8134 * tfactors.T943i + (1.0/3.0) * 14.9697 * tfactors.T923i - + -4.35453 + (5.0/3.0) * 0.544288 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ga64_to_p_Zn64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ga64 + n --> p + Zn64 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.0454 + -0.311485 * tfactors.T913 - + 0.306024 * tfactors.T9 + -0.0439383 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -0.311485 * tfactors.T923i - + 0.306024 + (5.0/3.0) * -0.0439383 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ga64_to_He4_Cu61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ga64 + n --> He4 + Cu61 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 15.2238 + 2.74537 * tfactors.T913 - + -0.458111 * tfactors.T9 + 0.0581457 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 2.74537 * tfactors.T923i - + -0.458111 + (5.0/3.0) * 0.0581457 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ga64_to_n_Ge64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ga64 + p --> n + Ge64 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.5679 + -61.5151 * tfactors.T9i + -1.04067 * tfactors.T913 - + 0.575006 * tfactors.T9 + -0.0714547 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 61.5151 * tfactors.T9i * tfactors.T9i + (1.0/3.0) * -1.04067 * tfactors.T923i - + 0.575006 + (5.0/3.0) * -0.0714547 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Ga64_to_He4_Zn61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ga64 + p --> He4 + Zn61 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 11.168 + -41.8168 * tfactors.T913i + 24.3154 * tfactors.T913 - + -5.57278 * tfactors.T9 + 0.588234 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -41.8168 * tfactors.T943i + (1.0/3.0) * 24.3154 * tfactors.T923i - + -5.57278 + (5.0/3.0) * 0.588234 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ge63_to_p_Ga63_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ge63 + n --> p + Ga63 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 19.5443 + 0.716405 * tfactors.T913 - + 0.00814169 * tfactors.T9 + -0.00430239 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 0.716405 * tfactors.T923i - + 0.00814169 + (5.0/3.0) * -0.00430239 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ge63_to_He4_Zn60_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ge63 + n --> He4 + Zn60 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 14.6506 + 1.7273 * tfactors.T913 - + -0.26458 * tfactors.T9 + 0.0395 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 1.7273 * tfactors.T923i - + -0.26458 + (5.0/3.0) * 0.0395 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ge64_to_p_Ga64_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ge64 + n --> p + Ga64 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 20.5679 + -1.04067 * tfactors.T913 - + 0.575006 * tfactors.T9 + -0.0714547 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * -1.04067 * tfactors.T923i - + 0.575006 + (5.0/3.0) * -0.0714547 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_Ge64_to_He4_Zn61_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Ge64 + n --> He4 + Zn61 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ths8r - ln_set_rate = 11.3061 + 7.47259 * tfactors.T913 - + -1.92043 * tfactors.T9 + 0.239118 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + (1.0/3.0) * 7.47259 * tfactors.T923i - + -1.92043 + (5.0/3.0) * 0.239118 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_d_to_n_p_p_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // d + p --> n + p + p - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88n - ln_set_rate = 17.3271 + -25.82 * tfactors.T9i + -3.72 * tfactors.T913i + 0.946313 * tfactors.T913 - + 0.105406 * tfactors.T9 + -0.0149431 * tfactors.T953; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 25.82 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -3.72 * tfactors.T943i + (1.0/3.0) * 0.946313 * tfactors.T923i - + 0.105406 + (5.0/3.0) * -0.0149431 * tfactors.T923; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He3_He3_to_p_p_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // He3 + He3 --> p + p + He4 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacrn - ln_set_rate = 24.7788 + -12.277 * tfactors.T913i + -0.103699 * tfactors.T913 - + -0.0649967 * tfactors.T9 + 0.0168191 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -12.277 * tfactors.T943i + (1.0/3.0) * -0.103699 * tfactors.T923i - + -0.0649967 + (5.0/3.0) * 0.0168191 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_d_Li7_to_n_He4_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Li7 + d --> n + He4 + He4 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88n - ln_set_rate = 26.4 + -10.259 * tfactors.T913i - + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -10.259 * tfactors.T943i - + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_d_Be7_to_p_He4_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Be7 + d --> p + He4 + He4 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88n - ln_set_rate = 27.6987 + -12.428 * tfactors.T913i - + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -12.428 * tfactors.T943i - + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Be9_to_d_He4_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Be9 + p --> d + He4 + He4 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88r - ln_set_rate = 20.5607 + -5.8 * tfactors.T9i - + -0.75 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.8 * tfactors.T9i * tfactors.T9i - + -0.75 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88r - ln_set_rate = 20.1768 + -3.046 * tfactors.T9i - + -1.0 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.046 * tfactors.T9i * tfactors.T9i - + -1.0 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88n - ln_set_rate = 26.0751 + -10.359 * tfactors.T913i + 0.103955 * tfactors.T913 - + 4.4262 * tfactors.T9 + -5.95664 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -10.359 * tfactors.T943i + (1.0/3.0) * 0.103955 * tfactors.T923i - + 4.4262 + (5.0/3.0) * -5.95664 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_B8_to_p_He4_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // B8 + n --> p + He4 + He4 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // wagn - ln_set_rate = 19.812 + -1.13869e-12 * tfactors.T9i + 1.5368e-10 * tfactors.T913i + -5.36043e-10 * tfactors.T913 - + 5.80628e-11 * tfactors.T9 + -5.23778e-12 * tfactors.T953 + 1.77211e-10 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.13869e-12 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.5368e-10 * tfactors.T943i + (1.0/3.0) * -5.36043e-10 * tfactors.T923i - + 5.80628e-11 + (5.0/3.0) * -5.23778e-12 * tfactors.T923 + 1.77211e-10 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_B11_to_He4_He4_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // B11 + p --> 3 He4 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacrr - ln_set_rate = -14.9395 + -1.724 * tfactors.T9i + 8.49175 * tfactors.T913i + 27.3254 * tfactors.T913 - + -3.72071 * tfactors.T9 + 0.275516 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.724 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 8.49175 * tfactors.T943i + (1.0/3.0) * 27.3254 * tfactors.T923i - + -3.72071 + (5.0/3.0) * 0.275516 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacrn - ln_set_rate = 28.6442 + -12.097 * tfactors.T913i + -0.0496312 * tfactors.T913 - + 0.687736 * tfactors.T9 + -0.564229 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -12.097 * tfactors.T943i + (1.0/3.0) * -0.0496312 * tfactors.T923i - + 0.687736 + (5.0/3.0) * -0.564229 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He3_Li7_to_n_p_He4_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Li7 + He3 --> n + p + He4 + He4 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // mafon - ln_set_rate = 30.038 + -4.24733e-12 * tfactors.T9i + -17.989 * tfactors.T913i + -1.57523e-09 * tfactors.T913 - + 1.45934e-10 * tfactors.T9 + -1.15341e-11 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 4.24733e-12 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -17.989 * tfactors.T943i + (1.0/3.0) * -1.57523e-09 * tfactors.T923i - + 1.45934e-10 + (5.0/3.0) * -1.15341e-11 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He3_Be7_to_p_p_He4_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Be7 + He3 --> p + p + He4 + He4 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // mafon - ln_set_rate = 31.7435 + -5.45213e-12 * tfactors.T9i + -21.793 * tfactors.T913i + -1.98126e-09 * tfactors.T913 - + 1.84204e-10 * tfactors.T9 + -1.46403e-11 * tfactors.T953 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 5.45213e-12 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -21.793 * tfactors.T943i + (1.0/3.0) * -1.98126e-09 * tfactors.T923i - + 1.84204e-10 + (5.0/3.0) * -1.46403e-11 * tfactors.T923 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_Be9_to_n_p_He4_He4_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // Be9 + p --> n + p + He4 + He4 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88r - ln_set_rate = 20.7431 + -26.725 * tfactors.T9i + 1.40505e-06 * tfactors.T913i + -1.47128e-06 * tfactors.T913 - + 6.89313e-08 * tfactors.T9 + -3.55179e-09 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 26.725 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.40505e-06 * tfactors.T943i + (1.0/3.0) * -1.47128e-06 * tfactors.T923i - + 6.89313e-08 + (5.0/3.0) * -3.55179e-09 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88n - ln_set_rate = 14.6035 + -21.4742 * tfactors.T9i + -0.634849 * tfactors.T913i + 4.82033 * tfactors.T913 - + -0.257317 * tfactors.T9 + 0.0134206 * tfactors.T953 + -1.08885 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 21.4742 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.634849 * tfactors.T943i + (1.0/3.0) * 4.82033 * tfactors.T923i - + -0.257317 + (5.0/3.0) * 0.0134206 * tfactors.T923 + -1.08885 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_p_He4_to_Li6_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // n + p + He4 --> Li6 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88r - ln_set_rate = -12.2851 + -19.353 * tfactors.T9i + 1.44987 * tfactors.T913i + -1.42759 * tfactors.T913 - + 0.0454035 * tfactors.T9 + 0.00471161 * tfactors.T953 + -1.0 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 19.353 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.44987 * tfactors.T943i + (1.0/3.0) * -1.42759 * tfactors.T923i - + 0.0454035 + (5.0/3.0) * 0.00471161 * tfactors.T923 + -1.0 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_He4_He4_to_Be9_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // n + He4 + He4 --> Be9 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // ac12r - ln_set_rate = -6.81178 + -1.01953 * tfactors.T9i + -1.56673 * tfactors.T913i + -5.43497 * tfactors.T913 - + 0.673807 * tfactors.T9 + -0.041014 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.01953 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -1.56673 * tfactors.T943i + (1.0/3.0) * -5.43497 * tfactors.T923i - + 0.673807 + (5.0/3.0) * -0.041014 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // ac12n - ln_set_rate = -8.22898 + -13.3317 * tfactors.T913i + 13.2237 * tfactors.T913 - + -9.06339 * tfactors.T9 + -0.666667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -13.3317 * tfactors.T943i + (1.0/3.0) * 13.2237 * tfactors.T923i - + -9.06339 + -0.666667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_He4_He4_to_C12_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // 3 He4 --> C12 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // fy05r - ln_set_rate = -11.7884 + -1.02446 * tfactors.T9i + -23.57 * tfactors.T913i + 20.4886 * tfactors.T913 - + -12.9882 * tfactors.T9 + -20.0 * tfactors.T953 + -2.16667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 1.02446 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -23.57 * tfactors.T943i + (1.0/3.0) * 20.4886 * tfactors.T923i - + -12.9882 + (5.0/3.0) * -20.0 * tfactors.T923 + -2.16667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // fy05n - ln_set_rate = -0.971052 + -37.06 * tfactors.T913i + 29.3493 * tfactors.T913 - + -115.507 * tfactors.T9 + -10.0 * tfactors.T953 + -1.33333 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -37.06 * tfactors.T943i + (1.0/3.0) * 29.3493 * tfactors.T923i - + -115.507 + (5.0/3.0) * -10.0 * tfactors.T923 + -1.33333 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // fy05r - ln_set_rate = -24.3505 + -4.12656 * tfactors.T9i + -13.49 * tfactors.T913i + 21.4259 * tfactors.T913 - + -1.34769 * tfactors.T9 + 0.0879816 * tfactors.T953 + -13.1653 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 4.12656 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -13.49 * tfactors.T943i + (1.0/3.0) * 21.4259 * tfactors.T923i - + -1.34769 + (5.0/3.0) * 0.0879816 * tfactors.T923 + -13.1653 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_p_p_to_p_d_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // n + p + p --> p + d - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88n - ln_set_rate = -4.24034 + -3.72 * tfactors.T913i + 0.946313 * tfactors.T913 - + 0.105406 * tfactors.T9 + -0.0149431 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = + -(1.0/3.0) * -3.72 * tfactors.T943i + (1.0/3.0) * 0.946313 * tfactors.T923i - + 0.105406 + (5.0/3.0) * -0.0149431 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_p_He4_to_He3_He3_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // p + p + He4 --> He3 + He3 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacrn - ln_set_rate = 2.98257 + -149.222 * tfactors.T9i + -12.277 * tfactors.T913i + -0.103699 * tfactors.T913 - + -0.0649967 * tfactors.T9 + 0.0168191 * tfactors.T953 + -2.16667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 149.222 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -12.277 * tfactors.T943i + (1.0/3.0) * -0.103699 * tfactors.T923i - + -0.0649967 + (5.0/3.0) * 0.0168191 * tfactors.T923 + -2.16667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_He4_He4_to_d_Li7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // n + He4 + He4 --> d + Li7 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88n - ln_set_rate = 5.67199 + -175.472 * tfactors.T9i + -10.259 * tfactors.T913i - + -2.16667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 175.472 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -10.259 * tfactors.T943i - + -2.16667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_He4_He4_to_n_B8_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // p + He4 + He4 --> n + B8 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // wagn - ln_set_rate = -1.93853 + -218.783 * tfactors.T9i + 1.5368e-10 * tfactors.T913i + -5.36043e-10 * tfactors.T913 - + 5.80628e-11 * tfactors.T9 + -5.23778e-12 * tfactors.T953 + -1.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 218.783 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.5368e-10 * tfactors.T943i + (1.0/3.0) * -5.36043e-10 * tfactors.T923i - + 5.80628e-11 + (5.0/3.0) * -5.23778e-12 * tfactors.T923 + -1.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_He4_He4_to_d_Be7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // p + He4 + He4 --> d + Be7 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88n - ln_set_rate = 6.97069 + -194.561 * tfactors.T9i + -12.428 * tfactors.T913i - + -2.16667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 194.561 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -12.428 * tfactors.T943i - + -2.16667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_d_He4_He4_to_p_Be9_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // d + He4 + He4 --> p + Be9 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88n - ln_set_rate = 2.83369 + -7.55453 * tfactors.T9i + -10.359 * tfactors.T913i + 0.103955 * tfactors.T913 - + 4.4262 * tfactors.T9 + -5.95664 * tfactors.T953 + -2.16667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 7.55453 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -10.359 * tfactors.T943i + (1.0/3.0) * 0.103955 * tfactors.T923i - + 4.4262 + (5.0/3.0) * -5.95664 * tfactors.T923 + -2.16667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88r - ln_set_rate = -2.68071 + -13.3545 * tfactors.T9i - + -2.25 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 13.3545 * tfactors.T9i * tfactors.T9i - + -2.25 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88r - ln_set_rate = -3.06461 + -10.6005 * tfactors.T9i - + -2.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 10.6005 * tfactors.T9i * tfactors.T9i - + -2.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_He4_He4_He4_to_p_B11_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // 3 He4 --> p + B11 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // nacrn - ln_set_rate = 6.8613 + -100.75 * tfactors.T9i + -12.097 * tfactors.T913i + -0.0496312 * tfactors.T913 - + 0.687736 * tfactors.T9 + -0.564229 * tfactors.T953 + -2.16667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 100.75 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -12.097 * tfactors.T943i + (1.0/3.0) * -0.0496312 * tfactors.T923i - + 0.687736 + (5.0/3.0) * -0.564229 * tfactors.T923 + -2.16667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // nacrr - ln_set_rate = -36.7224 + -102.474 * tfactors.T9i + 8.49175 * tfactors.T913i + 27.3254 * tfactors.T913 - + -3.72071 * tfactors.T9 + 0.275516 * tfactors.T953 + -3.0 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 102.474 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 8.49175 * tfactors.T943i + (1.0/3.0) * 27.3254 * tfactors.T923i - + -3.72071 + (5.0/3.0) * 0.275516 * tfactors.T923 + -3.0 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_p_He4_He4_to_He3_Li7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // n + p + He4 + He4 --> He3 + Li7 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // mafon - ln_set_rate = -14.8862 + -111.725 * tfactors.T9i + -17.989 * tfactors.T913i + -1.57523e-09 * tfactors.T913 - + 1.45934e-10 * tfactors.T9 + -1.15341e-11 * tfactors.T953 + -3.66667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 111.725 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -17.989 * tfactors.T943i + (1.0/3.0) * -1.57523e-09 * tfactors.T923i - + 1.45934e-10 + (5.0/3.0) * -1.15341e-11 * tfactors.T923 + -3.66667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_n_p_He4_He4_to_p_Be9_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // n + p + He4 + He4 --> p + Be9 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // cf88r - ln_set_rate = -25.452 + -8.47112 * tfactors.T9i + 1.40505e-06 * tfactors.T913i + -1.47128e-06 * tfactors.T913 - + 6.89313e-08 * tfactors.T9 + -3.55179e-09 * tfactors.T953 + -4.5 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 8.47112 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * 1.40505e-06 * tfactors.T943i + (1.0/3.0) * -1.47128e-06 * tfactors.T923i - + 6.89313e-08 + (5.0/3.0) * -3.55179e-09 * tfactors.T923 + -4.5 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - - // cf88n - ln_set_rate = -31.5916 + -3.22032 * tfactors.T9i + -0.634849 * tfactors.T913i + 4.82033 * tfactors.T913 - + -0.257317 * tfactors.T9 + 0.0134206 * tfactors.T953 + -4.08885 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 3.22032 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -0.634849 * tfactors.T943i + (1.0/3.0) * 4.82033 * tfactors.T923i - + -0.257317 + (5.0/3.0) * 0.0134206 * tfactors.T923 + -4.08885 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - -template -AMREX_GPU_DEVICE AMREX_INLINE -void rate_p_p_He4_He4_to_He3_Be7_reaclib(const tf_t& tfactors, const amrex::Real log_scor, const amrex::Real dlog_scor_dT, amrex::Real& rate, amrex::Real& drate_dT) { - - // p + p + He4 + He4 --> He3 + Be7 - - rate = 0.0; - drate_dT = 0.0; - - amrex::Real ln_set_rate{0.0}; - amrex::Real dln_set_rate_dT9{0.0}; - amrex::Real set_rate{0.0}; - - // mafon - ln_set_rate = -13.1807 + -130.807 * tfactors.T9i + -21.793 * tfactors.T913i + -1.98126e-09 * tfactors.T913 - + 1.84204e-10 * tfactors.T9 + -1.46403e-11 * tfactors.T953 + -3.66667 * tfactors.lnT9; - - ln_set_rate += log_scor; - - if constexpr (do_T_derivatives) { - dln_set_rate_dT9 = 130.807 * tfactors.T9i * tfactors.T9i + -(1.0/3.0) * -21.793 * tfactors.T943i + (1.0/3.0) * -1.98126e-09 * tfactors.T923i - + 1.84204e-10 + (5.0/3.0) * -1.46403e-11 * tfactors.T923 + -3.66667 * tfactors.T9i; - - dln_set_rate_dT9 += dlog_scor_dT * 1.0e9_rt; - } - - // avoid underflows by zeroing rates in [0.0, 1.e-100] - ln_set_rate = std::max(ln_set_rate, -230.0); - set_rate = std::exp(ln_set_rate); - rate += set_rate; - if constexpr (do_T_derivatives) { - drate_dT += set_rate * dln_set_rate_dT9 * 1.0e-9; - } - -} - - -template -AMREX_GPU_HOST_DEVICE AMREX_INLINE -void -fill_reaclib_rates([[maybe_unused]] const tf_t& tfactors, - [[maybe_unused]] T& rate_eval) -{ - - [[maybe_unused]] amrex::Real rate; - [[maybe_unused]] amrex::Real drate_dT; - - { - // Be7_to_Li7_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Be7_to_Li7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Be7_to_Li7_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Be7_to_Li7_reaclib) = drate_dT; - } - } - - { - // C14_to_N14_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_C14_to_N14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_C14_to_N14_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C14_to_N14_reaclib) = drate_dT; - } - } - - { - // N13_to_C13_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_N13_to_C13_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_N13_to_C13_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_N13_to_C13_reaclib) = drate_dT; - } - } - - { - // O14_to_N14_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_O14_to_N14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_O14_to_N14_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O14_to_N14_reaclib) = drate_dT; - } - } - - { - // O15_to_N15_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_O15_to_N15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_O15_to_N15_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O15_to_N15_reaclib) = drate_dT; - } - } - - { - // F17_to_O17_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_F17_to_O17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_F17_to_O17_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_F17_to_O17_reaclib) = drate_dT; - } - } - - { - // F18_to_O18_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_F18_to_O18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_F18_to_O18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_F18_to_O18_reaclib) = drate_dT; - } - } - - { - // Ne18_to_F18_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ne18_to_F18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ne18_to_F18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ne18_to_F18_reaclib) = drate_dT; - } - } - - { - // Ne19_to_F19_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ne19_to_F19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ne19_to_F19_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ne19_to_F19_reaclib) = drate_dT; - } - } - - { - // Zn59_to_Cu59_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn59_to_Cu59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn59_to_Cu59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn59_to_Cu59_reaclib) = drate_dT; - } - } - - { - // Ge63_to_Ga63_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ge63_to_Ga63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ge63_to_Ga63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ge63_to_Ga63_reaclib) = drate_dT; - } - } - - { - // d_to_n_p_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_d_to_n_p_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_d_to_n_p_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_d_to_n_p_reaclib) = drate_dT; - } - } - - { - // He3_to_p_d_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_He3_to_p_d_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He3_to_p_d_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He3_to_p_d_reaclib) = drate_dT; - } - } - - { - // He4_to_n_He3_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_He4_to_n_He3_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_to_n_He3_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_to_n_He3_reaclib) = drate_dT; - } - } - - { - // He4_to_d_d_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_He4_to_d_d_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_to_d_d_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_to_d_d_reaclib) = drate_dT; - } - } - - { - // Li6_to_He4_d_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Li6_to_He4_d_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Li6_to_He4_d_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Li6_to_He4_d_reaclib) = drate_dT; - } - } - - { - // Li7_to_n_Li6_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Li7_to_n_Li6_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Li7_to_n_Li6_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Li7_to_n_Li6_reaclib) = drate_dT; - } - } - - { - // Be7_to_p_Li6_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Be7_to_p_Li6_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Be7_to_p_Li6_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Be7_to_p_Li6_reaclib) = drate_dT; - } - } - - { - // Be7_to_He4_He3_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Be7_to_He4_He3_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Be7_to_He4_He3_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Be7_to_He4_He3_reaclib) = drate_dT; - } - } - - { - // B8_to_p_Be7_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_B8_to_p_Be7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_B8_to_p_Be7_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_B8_to_p_Be7_reaclib) = drate_dT; - } - } - - { - // B8_to_He4_He4_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_B8_to_He4_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_B8_to_He4_He4_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_B8_to_He4_He4_reaclib) = drate_dT; - } - } - - { - // B10_to_p_Be9_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_B10_to_p_Be9_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_B10_to_p_Be9_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_B10_to_p_Be9_reaclib) = drate_dT; - } - } - - { - // B10_to_He4_Li6_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_B10_to_He4_Li6_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_B10_to_He4_Li6_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_B10_to_He4_Li6_reaclib) = drate_dT; - } - } - - { - // B11_to_n_B10_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_B11_to_n_B10_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_B11_to_n_B10_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_B11_to_n_B10_reaclib) = drate_dT; - } - } - - { - // B11_to_He4_Li7_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_B11_to_He4_Li7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_B11_to_He4_Li7_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_B11_to_He4_Li7_reaclib) = drate_dT; - } - } - - { - // C12_to_p_B11_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_C12_to_p_B11_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_C12_to_p_B11_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_to_p_B11_reaclib) = drate_dT; - } - } - - { - // C13_to_n_C12_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_C13_to_n_C12_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_C13_to_n_C12_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C13_to_n_C12_reaclib) = drate_dT; - } - } - - { - // C14_to_n_C13_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_C14_to_n_C13_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_C14_to_n_C13_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C14_to_n_C13_reaclib) = drate_dT; - } - } - - { - // N13_to_p_C12_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_N13_to_p_C12_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_N13_to_p_C12_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_N13_to_p_C12_reaclib) = drate_dT; - } - } - - { - // N14_to_n_N13_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_N14_to_n_N13_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_N14_to_n_N13_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_N14_to_n_N13_reaclib) = drate_dT; - } - } - - { - // N14_to_p_C13_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_N14_to_p_C13_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_N14_to_p_C13_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_N14_to_p_C13_reaclib) = drate_dT; - } - } - - { - // N15_to_n_N14_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_N15_to_n_N14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_N15_to_n_N14_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_N15_to_n_N14_reaclib) = drate_dT; - } - } - - { - // N15_to_p_C14_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_N15_to_p_C14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_N15_to_p_C14_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_N15_to_p_C14_reaclib) = drate_dT; - } - } - - { - // O14_to_p_N13_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_O14_to_p_N13_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_O14_to_p_N13_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O14_to_p_N13_reaclib) = drate_dT; - } - } - - { - // O15_to_n_O14_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_O15_to_n_O14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_O15_to_n_O14_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O15_to_n_O14_reaclib) = drate_dT; - } - } - - { - // O15_to_p_N14_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_O15_to_p_N14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_O15_to_p_N14_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O15_to_p_N14_reaclib) = drate_dT; - } - } - - { - // O16_to_n_O15_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_O16_to_n_O15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_O16_to_n_O15_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O16_to_n_O15_reaclib) = drate_dT; - } - } - - { - // O16_to_p_N15_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_O16_to_p_N15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_O16_to_p_N15_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O16_to_p_N15_reaclib) = drate_dT; - } - } - - { - // O16_to_He4_C12_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_O16_to_He4_C12_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_O16_to_He4_C12_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O16_to_He4_C12_reaclib) = drate_dT; - } - } - - { - // O17_to_n_O16_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_O17_to_n_O16_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_O17_to_n_O16_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O17_to_n_O16_reaclib) = drate_dT; - } - } - - { - // O18_to_n_O17_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_O18_to_n_O17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_O18_to_n_O17_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O18_to_n_O17_reaclib) = drate_dT; - } - } - - { - // O18_to_He4_C14_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_O18_to_He4_C14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_O18_to_He4_C14_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O18_to_He4_C14_reaclib) = drate_dT; - } - } - - { - // F17_to_p_O16_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_F17_to_p_O16_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_F17_to_p_O16_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_F17_to_p_O16_reaclib) = drate_dT; - } - } - - { - // F18_to_n_F17_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_F18_to_n_F17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_F18_to_n_F17_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_F18_to_n_F17_reaclib) = drate_dT; - } - } - - { - // F18_to_p_O17_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_F18_to_p_O17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_F18_to_p_O17_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_F18_to_p_O17_reaclib) = drate_dT; - } - } - - { - // F18_to_He4_N14_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_F18_to_He4_N14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_F18_to_He4_N14_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_F18_to_He4_N14_reaclib) = drate_dT; - } - } - - { - // F19_to_n_F18_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_F19_to_n_F18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_F19_to_n_F18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_F19_to_n_F18_reaclib) = drate_dT; - } - } - - { - // F19_to_p_O18_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_F19_to_p_O18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_F19_to_p_O18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_F19_to_p_O18_reaclib) = drate_dT; - } - } - - { - // F19_to_He4_N15_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_F19_to_He4_N15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_F19_to_He4_N15_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_F19_to_He4_N15_reaclib) = drate_dT; - } - } - - { - // Ne18_to_p_F17_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ne18_to_p_F17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ne18_to_p_F17_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ne18_to_p_F17_reaclib) = drate_dT; - } - } - - { - // Ne18_to_He4_O14_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ne18_to_He4_O14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ne18_to_He4_O14_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ne18_to_He4_O14_reaclib) = drate_dT; - } - } - - { - // Ne19_to_n_Ne18_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ne19_to_n_Ne18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ne19_to_n_Ne18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ne19_to_n_Ne18_reaclib) = drate_dT; - } - } - - { - // Ne19_to_p_F18_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ne19_to_p_F18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ne19_to_p_F18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ne19_to_p_F18_reaclib) = drate_dT; - } - } - - { - // Ne19_to_He4_O15_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ne19_to_He4_O15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ne19_to_He4_O15_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ne19_to_He4_O15_reaclib) = drate_dT; - } - } - - { - // Ne20_to_n_Ne19_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ne20_to_n_Ne19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ne20_to_n_Ne19_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ne20_to_n_Ne19_reaclib) = drate_dT; - } - } - - { - // Ne20_to_p_F19_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ne20_to_p_F19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ne20_to_p_F19_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ne20_to_p_F19_reaclib) = drate_dT; - } - } - - { - // Ne20_to_He4_O16_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ne20_to_He4_O16_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ne20_to_He4_O16_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ne20_to_He4_O16_reaclib) = drate_dT; - } - } - - { - // Ne21_to_n_Ne20_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ne21_to_n_Ne20_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ne21_to_n_Ne20_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ne21_to_n_Ne20_reaclib) = drate_dT; - } - } - - { - // Ne21_to_He4_O17_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ne21_to_He4_O17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ne21_to_He4_O17_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ne21_to_He4_O17_reaclib) = drate_dT; - } - } - - { - // Ne22_to_n_Ne21_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ne22_to_n_Ne21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ne22_to_n_Ne21_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ne22_to_n_Ne21_reaclib) = drate_dT; - } - } - - { - // Ne22_to_He4_O18_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ne22_to_He4_O18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ne22_to_He4_O18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ne22_to_He4_O18_reaclib) = drate_dT; - } - } - - { - // Na21_to_p_Ne20_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Na21_to_p_Ne20_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Na21_to_p_Ne20_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Na21_to_p_Ne20_reaclib) = drate_dT; - } - } - - { - // Na21_to_He4_F17_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Na21_to_He4_F17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Na21_to_He4_F17_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Na21_to_He4_F17_reaclib) = drate_dT; - } - } - - { - // Na22_to_n_Na21_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Na22_to_n_Na21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Na22_to_n_Na21_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Na22_to_n_Na21_reaclib) = drate_dT; - } - } - - { - // Na22_to_p_Ne21_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Na22_to_p_Ne21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Na22_to_p_Ne21_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Na22_to_p_Ne21_reaclib) = drate_dT; - } - } - - { - // Na22_to_He4_F18_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Na22_to_He4_F18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Na22_to_He4_F18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Na22_to_He4_F18_reaclib) = drate_dT; - } - } - - { - // Na23_to_n_Na22_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Na23_to_n_Na22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Na23_to_n_Na22_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Na23_to_n_Na22_reaclib) = drate_dT; - } - } - - { - // Na23_to_p_Ne22_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Na23_to_p_Ne22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Na23_to_p_Ne22_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Na23_to_p_Ne22_reaclib) = drate_dT; - } - } - - { - // Na23_to_He4_F19_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Na23_to_He4_F19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Na23_to_He4_F19_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Na23_to_He4_F19_reaclib) = drate_dT; - } - } - - { - // Mg23_to_p_Na22_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mg23_to_p_Na22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mg23_to_p_Na22_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mg23_to_p_Na22_reaclib) = drate_dT; - } - } - - { - // Mg23_to_He4_Ne19_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mg23_to_He4_Ne19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mg23_to_He4_Ne19_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mg23_to_He4_Ne19_reaclib) = drate_dT; - } - } - - { - // Mg24_to_n_Mg23_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mg24_to_n_Mg23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mg24_to_n_Mg23_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mg24_to_n_Mg23_reaclib) = drate_dT; - } - } - - { - // Mg24_to_p_Na23_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mg24_to_p_Na23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mg24_to_p_Na23_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mg24_to_p_Na23_reaclib) = drate_dT; - } - } - - { - // Mg24_to_He4_Ne20_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mg24_to_He4_Ne20_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mg24_to_He4_Ne20_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mg24_to_He4_Ne20_reaclib) = drate_dT; - } - } - - { - // Mg25_to_n_Mg24_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mg25_to_n_Mg24_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mg25_to_n_Mg24_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mg25_to_n_Mg24_reaclib) = drate_dT; - } - } - - { - // Mg25_to_He4_Ne21_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mg25_to_He4_Ne21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mg25_to_He4_Ne21_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mg25_to_He4_Ne21_reaclib) = drate_dT; - } - } - - { - // Mg26_to_n_Mg25_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mg26_to_n_Mg25_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mg26_to_n_Mg25_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mg26_to_n_Mg25_reaclib) = drate_dT; - } - } - - { - // Mg26_to_He4_Ne22_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mg26_to_He4_Ne22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mg26_to_He4_Ne22_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mg26_to_He4_Ne22_reaclib) = drate_dT; - } - } - - { - // Al25_to_p_Mg24_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Al25_to_p_Mg24_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Al25_to_p_Mg24_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Al25_to_p_Mg24_reaclib) = drate_dT; - } - } - - { - // Al25_to_He4_Na21_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Al25_to_He4_Na21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Al25_to_He4_Na21_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Al25_to_He4_Na21_reaclib) = drate_dT; - } - } - - { - // Al26_to_n_Al25_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Al26_to_n_Al25_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Al26_to_n_Al25_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Al26_to_n_Al25_reaclib) = drate_dT; - } - } - - { - // Al26_to_p_Mg25_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Al26_to_p_Mg25_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Al26_to_p_Mg25_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Al26_to_p_Mg25_reaclib) = drate_dT; - } - } - - { - // Al26_to_He4_Na22_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Al26_to_He4_Na22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Al26_to_He4_Na22_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Al26_to_He4_Na22_reaclib) = drate_dT; - } - } - - { - // Al27_to_n_Al26_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Al27_to_n_Al26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Al27_to_n_Al26_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Al27_to_n_Al26_reaclib) = drate_dT; - } - } - - { - // Al27_to_p_Mg26_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Al27_to_p_Mg26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Al27_to_p_Mg26_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Al27_to_p_Mg26_reaclib) = drate_dT; - } - } - - { - // Al27_to_He4_Na23_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Al27_to_He4_Na23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Al27_to_He4_Na23_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Al27_to_He4_Na23_reaclib) = drate_dT; - } - } - - { - // Si28_to_p_Al27_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Si28_to_p_Al27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Si28_to_p_Al27_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Si28_to_p_Al27_reaclib) = drate_dT; - } - } - - { - // Si28_to_He4_Mg24_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Si28_to_He4_Mg24_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Si28_to_He4_Mg24_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Si28_to_He4_Mg24_reaclib) = drate_dT; - } - } - - { - // Si29_to_n_Si28_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Si29_to_n_Si28_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Si29_to_n_Si28_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Si29_to_n_Si28_reaclib) = drate_dT; - } - } - - { - // Si29_to_He4_Mg25_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Si29_to_He4_Mg25_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Si29_to_He4_Mg25_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Si29_to_He4_Mg25_reaclib) = drate_dT; - } - } - - { - // Si30_to_n_Si29_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Si30_to_n_Si29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Si30_to_n_Si29_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Si30_to_n_Si29_reaclib) = drate_dT; - } - } - - { - // Si30_to_He4_Mg26_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Si30_to_He4_Mg26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Si30_to_He4_Mg26_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Si30_to_He4_Mg26_reaclib) = drate_dT; - } - } - - { - // Si31_to_n_Si30_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Si31_to_n_Si30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Si31_to_n_Si30_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Si31_to_n_Si30_reaclib) = drate_dT; - } - } - - { - // Si32_to_n_Si31_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Si32_to_n_Si31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Si32_to_n_Si31_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Si32_to_n_Si31_reaclib) = drate_dT; - } - } - - { - // P29_to_p_Si28_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_P29_to_p_Si28_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_P29_to_p_Si28_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_P29_to_p_Si28_reaclib) = drate_dT; - } - } - - { - // P29_to_He4_Al25_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_P29_to_He4_Al25_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_P29_to_He4_Al25_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_P29_to_He4_Al25_reaclib) = drate_dT; - } - } - - { - // P30_to_n_P29_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_P30_to_n_P29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_P30_to_n_P29_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_P30_to_n_P29_reaclib) = drate_dT; - } - } - - { - // P30_to_p_Si29_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_P30_to_p_Si29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_P30_to_p_Si29_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_P30_to_p_Si29_reaclib) = drate_dT; - } - } - - { - // P30_to_He4_Al26_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_P30_to_He4_Al26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_P30_to_He4_Al26_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_P30_to_He4_Al26_reaclib) = drate_dT; - } - } - - { - // P31_to_n_P30_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_P31_to_n_P30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_P31_to_n_P30_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_P31_to_n_P30_reaclib) = drate_dT; - } - } - - { - // P31_to_p_Si30_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_P31_to_p_Si30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_P31_to_p_Si30_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_P31_to_p_Si30_reaclib) = drate_dT; - } - } - - { - // P31_to_He4_Al27_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_P31_to_He4_Al27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_P31_to_He4_Al27_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_P31_to_He4_Al27_reaclib) = drate_dT; - } - } - - { - // P32_to_n_P31_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_P32_to_n_P31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_P32_to_n_P31_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_P32_to_n_P31_reaclib) = drate_dT; - } - } - - { - // P32_to_p_Si31_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_P32_to_p_Si31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_P32_to_p_Si31_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_P32_to_p_Si31_reaclib) = drate_dT; - } - } - - { - // P33_to_n_P32_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_P33_to_n_P32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_P33_to_n_P32_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_P33_to_n_P32_reaclib) = drate_dT; - } - } - - { - // P33_to_p_Si32_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_P33_to_p_Si32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_P33_to_p_Si32_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_P33_to_p_Si32_reaclib) = drate_dT; - } - } - - { - // S32_to_p_P31_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_S32_to_p_P31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_S32_to_p_P31_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S32_to_p_P31_reaclib) = drate_dT; - } - } - - { - // S32_to_He4_Si28_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_S32_to_He4_Si28_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_S32_to_He4_Si28_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S32_to_He4_Si28_reaclib) = drate_dT; - } - } - - { - // S33_to_n_S32_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_S33_to_n_S32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_S33_to_n_S32_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S33_to_n_S32_reaclib) = drate_dT; - } - } - - { - // S33_to_p_P32_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_S33_to_p_P32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_S33_to_p_P32_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S33_to_p_P32_reaclib) = drate_dT; - } - } - - { - // S33_to_He4_Si29_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_S33_to_He4_Si29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_S33_to_He4_Si29_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S33_to_He4_Si29_reaclib) = drate_dT; - } - } - - { - // S34_to_n_S33_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_S34_to_n_S33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_S34_to_n_S33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S34_to_n_S33_reaclib) = drate_dT; - } - } - - { - // S34_to_p_P33_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_S34_to_p_P33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_S34_to_p_P33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S34_to_p_P33_reaclib) = drate_dT; - } - } - - { - // S34_to_He4_Si30_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_S34_to_He4_Si30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_S34_to_He4_Si30_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S34_to_He4_Si30_reaclib) = drate_dT; - } - } - - { - // S35_to_n_S34_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_S35_to_n_S34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_S35_to_n_S34_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S35_to_n_S34_reaclib) = drate_dT; - } - } - - { - // S35_to_He4_Si31_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_S35_to_He4_Si31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_S35_to_He4_Si31_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S35_to_He4_Si31_reaclib) = drate_dT; - } - } - - { - // S36_to_n_S35_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_S36_to_n_S35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_S36_to_n_S35_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S36_to_n_S35_reaclib) = drate_dT; - } - } - - { - // S36_to_He4_Si32_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_S36_to_He4_Si32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_S36_to_He4_Si32_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_S36_to_He4_Si32_reaclib) = drate_dT; - } - } - - { - // Cl33_to_p_S32_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cl33_to_p_S32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cl33_to_p_S32_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cl33_to_p_S32_reaclib) = drate_dT; - } - } - - { - // Cl33_to_He4_P29_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cl33_to_He4_P29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cl33_to_He4_P29_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cl33_to_He4_P29_reaclib) = drate_dT; - } - } - - { - // Cl34_to_n_Cl33_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cl34_to_n_Cl33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cl34_to_n_Cl33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cl34_to_n_Cl33_reaclib) = drate_dT; - } - } - - { - // Cl34_to_p_S33_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cl34_to_p_S33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cl34_to_p_S33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cl34_to_p_S33_reaclib) = drate_dT; - } - } - - { - // Cl34_to_He4_P30_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cl34_to_He4_P30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cl34_to_He4_P30_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cl34_to_He4_P30_reaclib) = drate_dT; - } - } - - { - // Cl35_to_n_Cl34_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cl35_to_n_Cl34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cl35_to_n_Cl34_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cl35_to_n_Cl34_reaclib) = drate_dT; - } - } - - { - // Cl35_to_p_S34_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cl35_to_p_S34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cl35_to_p_S34_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cl35_to_p_S34_reaclib) = drate_dT; - } - } - - { - // Cl35_to_He4_P31_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cl35_to_He4_P31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cl35_to_He4_P31_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cl35_to_He4_P31_reaclib) = drate_dT; - } - } - - { - // Cl36_to_n_Cl35_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cl36_to_n_Cl35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cl36_to_n_Cl35_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cl36_to_n_Cl35_reaclib) = drate_dT; - } - } - - { - // Cl36_to_p_S35_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cl36_to_p_S35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cl36_to_p_S35_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cl36_to_p_S35_reaclib) = drate_dT; - } - } - - { - // Cl36_to_He4_P32_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cl36_to_He4_P32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cl36_to_He4_P32_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cl36_to_He4_P32_reaclib) = drate_dT; - } - } - - { - // Cl37_to_n_Cl36_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cl37_to_n_Cl36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cl37_to_n_Cl36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cl37_to_n_Cl36_reaclib) = drate_dT; - } - } - - { - // Cl37_to_p_S36_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cl37_to_p_S36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cl37_to_p_S36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cl37_to_p_S36_reaclib) = drate_dT; - } - } - - { - // Cl37_to_He4_P33_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cl37_to_He4_P33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cl37_to_He4_P33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cl37_to_He4_P33_reaclib) = drate_dT; - } - } - - { - // Ar36_to_p_Cl35_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ar36_to_p_Cl35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ar36_to_p_Cl35_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_p_Cl35_reaclib) = drate_dT; - } - } - - { - // Ar36_to_He4_S32_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ar36_to_He4_S32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ar36_to_He4_S32_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar36_to_He4_S32_reaclib) = drate_dT; - } - } - - { - // Ar37_to_n_Ar36_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ar37_to_n_Ar36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ar37_to_n_Ar36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar37_to_n_Ar36_reaclib) = drate_dT; - } - } - - { - // Ar37_to_p_Cl36_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ar37_to_p_Cl36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ar37_to_p_Cl36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar37_to_p_Cl36_reaclib) = drate_dT; - } - } - - { - // Ar37_to_He4_S33_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ar37_to_He4_S33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ar37_to_He4_S33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar37_to_He4_S33_reaclib) = drate_dT; - } - } - - { - // Ar38_to_n_Ar37_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ar38_to_n_Ar37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ar38_to_n_Ar37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar38_to_n_Ar37_reaclib) = drate_dT; - } - } - - { - // Ar38_to_p_Cl37_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ar38_to_p_Cl37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ar38_to_p_Cl37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar38_to_p_Cl37_reaclib) = drate_dT; - } - } - - { - // Ar38_to_He4_S34_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ar38_to_He4_S34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ar38_to_He4_S34_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar38_to_He4_S34_reaclib) = drate_dT; - } - } - - { - // Ar39_to_n_Ar38_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ar39_to_n_Ar38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ar39_to_n_Ar38_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar39_to_n_Ar38_reaclib) = drate_dT; - } - } - - { - // Ar39_to_He4_S35_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ar39_to_He4_S35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ar39_to_He4_S35_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar39_to_He4_S35_reaclib) = drate_dT; - } - } - - { - // Ar40_to_n_Ar39_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ar40_to_n_Ar39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ar40_to_n_Ar39_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar40_to_n_Ar39_reaclib) = drate_dT; - } - } - - { - // Ar40_to_He4_S36_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ar40_to_He4_S36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ar40_to_He4_S36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ar40_to_He4_S36_reaclib) = drate_dT; - } - } - - { - // K37_to_p_Ar36_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_K37_to_p_Ar36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_K37_to_p_Ar36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_K37_to_p_Ar36_reaclib) = drate_dT; - } - } - - { - // K37_to_He4_Cl33_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_K37_to_He4_Cl33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_K37_to_He4_Cl33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_K37_to_He4_Cl33_reaclib) = drate_dT; - } - } - - { - // K38_to_n_K37_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_K38_to_n_K37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_K38_to_n_K37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_K38_to_n_K37_reaclib) = drate_dT; - } - } - - { - // K38_to_p_Ar37_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_K38_to_p_Ar37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_K38_to_p_Ar37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_K38_to_p_Ar37_reaclib) = drate_dT; - } - } - - { - // K38_to_He4_Cl34_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_K38_to_He4_Cl34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_K38_to_He4_Cl34_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_K38_to_He4_Cl34_reaclib) = drate_dT; - } - } - - { - // K39_to_n_K38_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_K39_to_n_K38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_K39_to_n_K38_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_K39_to_n_K38_reaclib) = drate_dT; - } - } - - { - // K39_to_p_Ar38_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_K39_to_p_Ar38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_K39_to_p_Ar38_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_K39_to_p_Ar38_reaclib) = drate_dT; - } - } - - { - // K39_to_He4_Cl35_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_K39_to_He4_Cl35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_K39_to_He4_Cl35_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_K39_to_He4_Cl35_reaclib) = drate_dT; - } - } - - { - // K40_to_n_K39_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_K40_to_n_K39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_K40_to_n_K39_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_K40_to_n_K39_reaclib) = drate_dT; - } - } - - { - // K40_to_p_Ar39_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_K40_to_p_Ar39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_K40_to_p_Ar39_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_K40_to_p_Ar39_reaclib) = drate_dT; - } - } - - { - // K40_to_He4_Cl36_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_K40_to_He4_Cl36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_K40_to_He4_Cl36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_K40_to_He4_Cl36_reaclib) = drate_dT; - } - } - - { - // K41_to_n_K40_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_K41_to_n_K40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_K41_to_n_K40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_K41_to_n_K40_reaclib) = drate_dT; - } - } - - { - // K41_to_p_Ar40_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_K41_to_p_Ar40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_K41_to_p_Ar40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_K41_to_p_Ar40_reaclib) = drate_dT; - } - } - - { - // K41_to_He4_Cl37_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_K41_to_He4_Cl37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_K41_to_He4_Cl37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_K41_to_He4_Cl37_reaclib) = drate_dT; - } - } - - { - // Ca40_to_p_K39_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ca40_to_p_K39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ca40_to_p_K39_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_p_K39_reaclib) = drate_dT; - } - } - - { - // Ca40_to_He4_Ar36_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ca40_to_He4_Ar36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ca40_to_He4_Ar36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca40_to_He4_Ar36_reaclib) = drate_dT; - } - } - - { - // Ca41_to_n_Ca40_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ca41_to_n_Ca40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ca41_to_n_Ca40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca41_to_n_Ca40_reaclib) = drate_dT; - } - } - - { - // Ca41_to_p_K40_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ca41_to_p_K40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ca41_to_p_K40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca41_to_p_K40_reaclib) = drate_dT; - } - } - - { - // Ca41_to_He4_Ar37_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ca41_to_He4_Ar37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ca41_to_He4_Ar37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca41_to_He4_Ar37_reaclib) = drate_dT; - } - } - - { - // Ca42_to_n_Ca41_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ca42_to_n_Ca41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ca42_to_n_Ca41_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca42_to_n_Ca41_reaclib) = drate_dT; - } - } - - { - // Ca42_to_p_K41_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ca42_to_p_K41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ca42_to_p_K41_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca42_to_p_K41_reaclib) = drate_dT; - } - } - - { - // Ca42_to_He4_Ar38_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ca42_to_He4_Ar38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ca42_to_He4_Ar38_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca42_to_He4_Ar38_reaclib) = drate_dT; - } - } - - { - // Ca43_to_n_Ca42_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ca43_to_n_Ca42_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ca43_to_n_Ca42_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca43_to_n_Ca42_reaclib) = drate_dT; - } - } - - { - // Ca43_to_He4_Ar39_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ca43_to_He4_Ar39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ca43_to_He4_Ar39_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca43_to_He4_Ar39_reaclib) = drate_dT; - } - } - - { - // Ca44_to_n_Ca43_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ca44_to_n_Ca43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ca44_to_n_Ca43_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca44_to_n_Ca43_reaclib) = drate_dT; - } - } - - { - // Ca44_to_He4_Ar40_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ca44_to_He4_Ar40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ca44_to_He4_Ar40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca44_to_He4_Ar40_reaclib) = drate_dT; - } - } - - { - // Ca45_to_n_Ca44_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ca45_to_n_Ca44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ca45_to_n_Ca44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca45_to_n_Ca44_reaclib) = drate_dT; - } - } - - { - // Ca46_to_n_Ca45_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ca46_to_n_Ca45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ca46_to_n_Ca45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca46_to_n_Ca45_reaclib) = drate_dT; - } - } - - { - // Ca47_to_n_Ca46_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ca47_to_n_Ca46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ca47_to_n_Ca46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca47_to_n_Ca46_reaclib) = drate_dT; - } - } - - { - // Ca48_to_n_Ca47_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ca48_to_n_Ca47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ca48_to_n_Ca47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ca48_to_n_Ca47_reaclib) = drate_dT; - } - } - - { - // Sc43_to_p_Ca42_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Sc43_to_p_Ca42_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Sc43_to_p_Ca42_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc43_to_p_Ca42_reaclib) = drate_dT; - } - } - - { - // Sc43_to_He4_K39_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Sc43_to_He4_K39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Sc43_to_He4_K39_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc43_to_He4_K39_reaclib) = drate_dT; - } - } - - { - // Sc44_to_n_Sc43_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Sc44_to_n_Sc43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Sc44_to_n_Sc43_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc44_to_n_Sc43_reaclib) = drate_dT; - } - } - - { - // Sc44_to_p_Ca43_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Sc44_to_p_Ca43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Sc44_to_p_Ca43_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc44_to_p_Ca43_reaclib) = drate_dT; - } - } - - { - // Sc44_to_He4_K40_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Sc44_to_He4_K40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Sc44_to_He4_K40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc44_to_He4_K40_reaclib) = drate_dT; - } - } - - { - // Sc45_to_n_Sc44_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Sc45_to_n_Sc44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Sc45_to_n_Sc44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc45_to_n_Sc44_reaclib) = drate_dT; - } - } - - { - // Sc45_to_p_Ca44_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Sc45_to_p_Ca44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Sc45_to_p_Ca44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc45_to_p_Ca44_reaclib) = drate_dT; - } - } - - { - // Sc45_to_He4_K41_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Sc45_to_He4_K41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Sc45_to_He4_K41_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc45_to_He4_K41_reaclib) = drate_dT; - } - } - - { - // Sc46_to_n_Sc45_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Sc46_to_n_Sc45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Sc46_to_n_Sc45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc46_to_n_Sc45_reaclib) = drate_dT; - } - } - - { - // Sc46_to_p_Ca45_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Sc46_to_p_Ca45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Sc46_to_p_Ca45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc46_to_p_Ca45_reaclib) = drate_dT; - } - } - - { - // Sc47_to_n_Sc46_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Sc47_to_n_Sc46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Sc47_to_n_Sc46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc47_to_n_Sc46_reaclib) = drate_dT; - } - } - - { - // Sc47_to_p_Ca46_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Sc47_to_p_Ca46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Sc47_to_p_Ca46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc47_to_p_Ca46_reaclib) = drate_dT; - } - } - - { - // Sc48_to_n_Sc47_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Sc48_to_n_Sc47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Sc48_to_n_Sc47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc48_to_n_Sc47_reaclib) = drate_dT; - } - } - - { - // Sc48_to_p_Ca47_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Sc48_to_p_Ca47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Sc48_to_p_Ca47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc48_to_p_Ca47_reaclib) = drate_dT; - } - } - - { - // Sc49_to_n_Sc48_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Sc49_to_n_Sc48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Sc49_to_n_Sc48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc49_to_n_Sc48_reaclib) = drate_dT; - } - } - - { - // Sc49_to_p_Ca48_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Sc49_to_p_Ca48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Sc49_to_p_Ca48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Sc49_to_p_Ca48_reaclib) = drate_dT; - } - } - - { - // Ti44_to_p_Sc43_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ti44_to_p_Sc43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ti44_to_p_Sc43_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_p_Sc43_reaclib) = drate_dT; - } - } - - { - // Ti44_to_He4_Ca40_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ti44_to_He4_Ca40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ti44_to_He4_Ca40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti44_to_He4_Ca40_reaclib) = drate_dT; - } - } - - { - // Ti45_to_n_Ti44_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ti45_to_n_Ti44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ti45_to_n_Ti44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti45_to_n_Ti44_reaclib) = drate_dT; - } - } - - { - // Ti45_to_p_Sc44_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ti45_to_p_Sc44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ti45_to_p_Sc44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti45_to_p_Sc44_reaclib) = drate_dT; - } - } - - { - // Ti45_to_He4_Ca41_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ti45_to_He4_Ca41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ti45_to_He4_Ca41_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti45_to_He4_Ca41_reaclib) = drate_dT; - } - } - - { - // Ti46_to_n_Ti45_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ti46_to_n_Ti45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ti46_to_n_Ti45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti46_to_n_Ti45_reaclib) = drate_dT; - } - } - - { - // Ti46_to_p_Sc45_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ti46_to_p_Sc45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ti46_to_p_Sc45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti46_to_p_Sc45_reaclib) = drate_dT; - } - } - - { - // Ti46_to_He4_Ca42_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ti46_to_He4_Ca42_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ti46_to_He4_Ca42_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti46_to_He4_Ca42_reaclib) = drate_dT; - } - } - - { - // Ti47_to_n_Ti46_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ti47_to_n_Ti46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ti47_to_n_Ti46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti47_to_n_Ti46_reaclib) = drate_dT; - } - } - - { - // Ti47_to_p_Sc46_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ti47_to_p_Sc46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ti47_to_p_Sc46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti47_to_p_Sc46_reaclib) = drate_dT; - } - } - - { - // Ti47_to_He4_Ca43_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ti47_to_He4_Ca43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ti47_to_He4_Ca43_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti47_to_He4_Ca43_reaclib) = drate_dT; - } - } - - { - // Ti48_to_n_Ti47_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ti48_to_n_Ti47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ti48_to_n_Ti47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti48_to_n_Ti47_reaclib) = drate_dT; - } - } - - { - // Ti48_to_p_Sc47_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ti48_to_p_Sc47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ti48_to_p_Sc47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti48_to_p_Sc47_reaclib) = drate_dT; - } - } - - { - // Ti48_to_He4_Ca44_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ti48_to_He4_Ca44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ti48_to_He4_Ca44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti48_to_He4_Ca44_reaclib) = drate_dT; - } - } - - { - // Ti49_to_n_Ti48_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ti49_to_n_Ti48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ti49_to_n_Ti48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti49_to_n_Ti48_reaclib) = drate_dT; - } - } - - { - // Ti49_to_p_Sc48_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ti49_to_p_Sc48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ti49_to_p_Sc48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti49_to_p_Sc48_reaclib) = drate_dT; - } - } - - { - // Ti49_to_He4_Ca45_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ti49_to_He4_Ca45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ti49_to_He4_Ca45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti49_to_He4_Ca45_reaclib) = drate_dT; - } - } - - { - // Ti50_to_n_Ti49_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ti50_to_n_Ti49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ti50_to_n_Ti49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti50_to_n_Ti49_reaclib) = drate_dT; - } - } - - { - // Ti50_to_p_Sc49_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ti50_to_p_Sc49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ti50_to_p_Sc49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti50_to_p_Sc49_reaclib) = drate_dT; - } - } - - { - // Ti50_to_He4_Ca46_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ti50_to_He4_Ca46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ti50_to_He4_Ca46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti50_to_He4_Ca46_reaclib) = drate_dT; - } - } - - { - // Ti51_to_n_Ti50_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ti51_to_n_Ti50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ti51_to_n_Ti50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti51_to_n_Ti50_reaclib) = drate_dT; - } - } - - { - // Ti51_to_He4_Ca47_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ti51_to_He4_Ca47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ti51_to_He4_Ca47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ti51_to_He4_Ca47_reaclib) = drate_dT; - } - } - - { - // V46_to_p_Ti45_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_V46_to_p_Ti45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_V46_to_p_Ti45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V46_to_p_Ti45_reaclib) = drate_dT; - } - } - - { - // V47_to_n_V46_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_V47_to_n_V46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_V47_to_n_V46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V47_to_n_V46_reaclib) = drate_dT; - } - } - - { - // V47_to_p_Ti46_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_V47_to_p_Ti46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_V47_to_p_Ti46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V47_to_p_Ti46_reaclib) = drate_dT; - } - } - - { - // V47_to_He4_Sc43_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_V47_to_He4_Sc43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_V47_to_He4_Sc43_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V47_to_He4_Sc43_reaclib) = drate_dT; - } - } - - { - // V48_to_n_V47_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_V48_to_n_V47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_V48_to_n_V47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V48_to_n_V47_reaclib) = drate_dT; - } - } - - { - // V48_to_p_Ti47_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_V48_to_p_Ti47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_V48_to_p_Ti47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V48_to_p_Ti47_reaclib) = drate_dT; - } - } - - { - // V48_to_He4_Sc44_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_V48_to_He4_Sc44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_V48_to_He4_Sc44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V48_to_He4_Sc44_reaclib) = drate_dT; - } - } - - { - // V49_to_n_V48_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_V49_to_n_V48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_V49_to_n_V48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V49_to_n_V48_reaclib) = drate_dT; - } - } - - { - // V49_to_p_Ti48_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_V49_to_p_Ti48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_V49_to_p_Ti48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V49_to_p_Ti48_reaclib) = drate_dT; - } - } - - { - // V49_to_He4_Sc45_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_V49_to_He4_Sc45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_V49_to_He4_Sc45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V49_to_He4_Sc45_reaclib) = drate_dT; - } - } - - { - // V50_to_n_V49_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_V50_to_n_V49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_V50_to_n_V49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V50_to_n_V49_reaclib) = drate_dT; - } - } - - { - // V50_to_p_Ti49_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_V50_to_p_Ti49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_V50_to_p_Ti49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V50_to_p_Ti49_reaclib) = drate_dT; - } - } - - { - // V50_to_He4_Sc46_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_V50_to_He4_Sc46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_V50_to_He4_Sc46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V50_to_He4_Sc46_reaclib) = drate_dT; - } - } - - { - // V51_to_n_V50_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_V51_to_n_V50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_V51_to_n_V50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V51_to_n_V50_reaclib) = drate_dT; - } - } - - { - // V51_to_p_Ti50_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_V51_to_p_Ti50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_V51_to_p_Ti50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V51_to_p_Ti50_reaclib) = drate_dT; - } - } - - { - // V51_to_He4_Sc47_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_V51_to_He4_Sc47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_V51_to_He4_Sc47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V51_to_He4_Sc47_reaclib) = drate_dT; - } - } - - { - // V52_to_n_V51_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_V52_to_n_V51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_V52_to_n_V51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V52_to_n_V51_reaclib) = drate_dT; - } - } - - { - // V52_to_p_Ti51_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_V52_to_p_Ti51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_V52_to_p_Ti51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V52_to_p_Ti51_reaclib) = drate_dT; - } - } - - { - // V52_to_He4_Sc48_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_V52_to_He4_Sc48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_V52_to_He4_Sc48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_V52_to_He4_Sc48_reaclib) = drate_dT; - } - } - - { - // Cr48_to_p_V47_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cr48_to_p_V47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cr48_to_p_V47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_p_V47_reaclib) = drate_dT; - } - } - - { - // Cr48_to_He4_Ti44_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cr48_to_He4_Ti44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cr48_to_He4_Ti44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr48_to_He4_Ti44_reaclib) = drate_dT; - } - } - - { - // Cr49_to_n_Cr48_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cr49_to_n_Cr48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cr49_to_n_Cr48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr49_to_n_Cr48_reaclib) = drate_dT; - } - } - - { - // Cr49_to_p_V48_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cr49_to_p_V48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cr49_to_p_V48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr49_to_p_V48_reaclib) = drate_dT; - } - } - - { - // Cr49_to_He4_Ti45_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cr49_to_He4_Ti45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cr49_to_He4_Ti45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr49_to_He4_Ti45_reaclib) = drate_dT; - } - } - - { - // Cr50_to_n_Cr49_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cr50_to_n_Cr49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cr50_to_n_Cr49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr50_to_n_Cr49_reaclib) = drate_dT; - } - } - - { - // Cr50_to_p_V49_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cr50_to_p_V49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cr50_to_p_V49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr50_to_p_V49_reaclib) = drate_dT; - } - } - - { - // Cr50_to_He4_Ti46_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cr50_to_He4_Ti46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cr50_to_He4_Ti46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr50_to_He4_Ti46_reaclib) = drate_dT; - } - } - - { - // Cr51_to_n_Cr50_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cr51_to_n_Cr50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cr51_to_n_Cr50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr51_to_n_Cr50_reaclib) = drate_dT; - } - } - - { - // Cr51_to_p_V50_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cr51_to_p_V50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cr51_to_p_V50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr51_to_p_V50_reaclib) = drate_dT; - } - } - - { - // Cr51_to_He4_Ti47_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cr51_to_He4_Ti47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cr51_to_He4_Ti47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr51_to_He4_Ti47_reaclib) = drate_dT; - } - } - - { - // Cr52_to_n_Cr51_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cr52_to_n_Cr51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cr52_to_n_Cr51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr52_to_n_Cr51_reaclib) = drate_dT; - } - } - - { - // Cr52_to_p_V51_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cr52_to_p_V51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cr52_to_p_V51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr52_to_p_V51_reaclib) = drate_dT; - } - } - - { - // Cr52_to_He4_Ti48_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cr52_to_He4_Ti48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cr52_to_He4_Ti48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr52_to_He4_Ti48_reaclib) = drate_dT; - } - } - - { - // Cr53_to_n_Cr52_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cr53_to_n_Cr52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cr53_to_n_Cr52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr53_to_n_Cr52_reaclib) = drate_dT; - } - } - - { - // Cr53_to_p_V52_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cr53_to_p_V52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cr53_to_p_V52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr53_to_p_V52_reaclib) = drate_dT; - } - } - - { - // Cr53_to_He4_Ti49_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cr53_to_He4_Ti49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cr53_to_He4_Ti49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr53_to_He4_Ti49_reaclib) = drate_dT; - } - } - - { - // Cr54_to_n_Cr53_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cr54_to_n_Cr53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cr54_to_n_Cr53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr54_to_n_Cr53_reaclib) = drate_dT; - } - } - - { - // Cr54_to_He4_Ti50_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cr54_to_He4_Ti50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cr54_to_He4_Ti50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cr54_to_He4_Ti50_reaclib) = drate_dT; - } - } - - { - // Mn50_to_p_Cr49_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mn50_to_p_Cr49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mn50_to_p_Cr49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn50_to_p_Cr49_reaclib) = drate_dT; - } - } - - { - // Mn50_to_He4_V46_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mn50_to_He4_V46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mn50_to_He4_V46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn50_to_He4_V46_reaclib) = drate_dT; - } - } - - { - // Mn51_to_n_Mn50_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mn51_to_n_Mn50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mn51_to_n_Mn50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn51_to_n_Mn50_reaclib) = drate_dT; - } - } - - { - // Mn51_to_p_Cr50_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mn51_to_p_Cr50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mn51_to_p_Cr50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn51_to_p_Cr50_reaclib) = drate_dT; - } - } - - { - // Mn51_to_He4_V47_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mn51_to_He4_V47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mn51_to_He4_V47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn51_to_He4_V47_reaclib) = drate_dT; - } - } - - { - // Mn52_to_n_Mn51_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mn52_to_n_Mn51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mn52_to_n_Mn51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn52_to_n_Mn51_reaclib) = drate_dT; - } - } - - { - // Mn52_to_p_Cr51_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mn52_to_p_Cr51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mn52_to_p_Cr51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn52_to_p_Cr51_reaclib) = drate_dT; - } - } - - { - // Mn52_to_He4_V48_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mn52_to_He4_V48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mn52_to_He4_V48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn52_to_He4_V48_reaclib) = drate_dT; - } - } - - { - // Mn53_to_n_Mn52_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mn53_to_n_Mn52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mn53_to_n_Mn52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn53_to_n_Mn52_reaclib) = drate_dT; - } - } - - { - // Mn53_to_p_Cr52_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mn53_to_p_Cr52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mn53_to_p_Cr52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn53_to_p_Cr52_reaclib) = drate_dT; - } - } - - { - // Mn53_to_He4_V49_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mn53_to_He4_V49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mn53_to_He4_V49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn53_to_He4_V49_reaclib) = drate_dT; - } - } - - { - // Mn54_to_n_Mn53_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mn54_to_n_Mn53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mn54_to_n_Mn53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn54_to_n_Mn53_reaclib) = drate_dT; - } - } - - { - // Mn54_to_p_Cr53_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mn54_to_p_Cr53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mn54_to_p_Cr53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn54_to_p_Cr53_reaclib) = drate_dT; - } - } - - { - // Mn54_to_He4_V50_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mn54_to_He4_V50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mn54_to_He4_V50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn54_to_He4_V50_reaclib) = drate_dT; - } - } - - { - // Mn55_to_n_Mn54_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mn55_to_n_Mn54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mn55_to_n_Mn54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn55_to_n_Mn54_reaclib) = drate_dT; - } - } - - { - // Mn55_to_p_Cr54_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mn55_to_p_Cr54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mn55_to_p_Cr54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn55_to_p_Cr54_reaclib) = drate_dT; - } - } - - { - // Mn55_to_He4_V51_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Mn55_to_He4_V51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Mn55_to_He4_V51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Mn55_to_He4_V51_reaclib) = drate_dT; - } - } - - { - // Fe52_to_p_Mn51_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Fe52_to_p_Mn51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Fe52_to_p_Mn51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_to_p_Mn51_reaclib) = drate_dT; - } - } - - { - // Fe52_to_He4_Cr48_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Fe52_to_He4_Cr48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Fe52_to_He4_Cr48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe52_to_He4_Cr48_reaclib) = drate_dT; - } - } - - { - // Fe53_to_n_Fe52_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Fe53_to_n_Fe52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Fe53_to_n_Fe52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe53_to_n_Fe52_reaclib) = drate_dT; - } - } - - { - // Fe53_to_p_Mn52_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Fe53_to_p_Mn52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Fe53_to_p_Mn52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe53_to_p_Mn52_reaclib) = drate_dT; - } - } - - { - // Fe53_to_He4_Cr49_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Fe53_to_He4_Cr49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Fe53_to_He4_Cr49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe53_to_He4_Cr49_reaclib) = drate_dT; - } - } - - { - // Fe54_to_n_Fe53_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Fe54_to_n_Fe53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Fe54_to_n_Fe53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe54_to_n_Fe53_reaclib) = drate_dT; - } - } - - { - // Fe54_to_p_Mn53_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Fe54_to_p_Mn53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Fe54_to_p_Mn53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe54_to_p_Mn53_reaclib) = drate_dT; - } - } - - { - // Fe54_to_He4_Cr50_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Fe54_to_He4_Cr50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Fe54_to_He4_Cr50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe54_to_He4_Cr50_reaclib) = drate_dT; - } - } - - { - // Fe55_to_n_Fe54_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Fe55_to_n_Fe54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Fe55_to_n_Fe54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe55_to_n_Fe54_reaclib) = drate_dT; - } - } - - { - // Fe55_to_p_Mn54_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Fe55_to_p_Mn54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Fe55_to_p_Mn54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe55_to_p_Mn54_reaclib) = drate_dT; - } - } - - { - // Fe55_to_He4_Cr51_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Fe55_to_He4_Cr51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Fe55_to_He4_Cr51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe55_to_He4_Cr51_reaclib) = drate_dT; - } - } - - { - // Fe56_to_n_Fe55_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Fe56_to_n_Fe55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Fe56_to_n_Fe55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe56_to_n_Fe55_reaclib) = drate_dT; - } - } - - { - // Fe56_to_p_Mn55_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Fe56_to_p_Mn55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Fe56_to_p_Mn55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe56_to_p_Mn55_reaclib) = drate_dT; - } - } - - { - // Fe56_to_He4_Cr52_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Fe56_to_He4_Cr52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Fe56_to_He4_Cr52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe56_to_He4_Cr52_reaclib) = drate_dT; - } - } - - { - // Fe57_to_n_Fe56_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Fe57_to_n_Fe56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Fe57_to_n_Fe56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe57_to_n_Fe56_reaclib) = drate_dT; - } - } - - { - // Fe57_to_He4_Cr53_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Fe57_to_He4_Cr53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Fe57_to_He4_Cr53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe57_to_He4_Cr53_reaclib) = drate_dT; - } - } - - { - // Fe58_to_n_Fe57_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Fe58_to_n_Fe57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Fe58_to_n_Fe57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe58_to_n_Fe57_reaclib) = drate_dT; - } - } - - { - // Fe58_to_He4_Cr54_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Fe58_to_He4_Cr54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Fe58_to_He4_Cr54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Fe58_to_He4_Cr54_reaclib) = drate_dT; - } - } - - { - // Co53_to_p_Fe52_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Co53_to_p_Fe52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Co53_to_p_Fe52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co53_to_p_Fe52_reaclib) = drate_dT; - } - } - - { - // Co54_to_n_Co53_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Co54_to_n_Co53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Co54_to_n_Co53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co54_to_n_Co53_reaclib) = drate_dT; - } - } - - { - // Co54_to_p_Fe53_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Co54_to_p_Fe53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Co54_to_p_Fe53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co54_to_p_Fe53_reaclib) = drate_dT; - } - } - - { - // Co54_to_He4_Mn50_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Co54_to_He4_Mn50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Co54_to_He4_Mn50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co54_to_He4_Mn50_reaclib) = drate_dT; - } - } - - { - // Co55_to_n_Co54_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Co55_to_n_Co54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Co55_to_n_Co54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co55_to_n_Co54_reaclib) = drate_dT; - } - } - - { - // Co55_to_p_Fe54_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Co55_to_p_Fe54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Co55_to_p_Fe54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co55_to_p_Fe54_reaclib) = drate_dT; - } - } - - { - // Co55_to_He4_Mn51_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Co55_to_He4_Mn51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Co55_to_He4_Mn51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co55_to_He4_Mn51_reaclib) = drate_dT; - } - } - - { - // Co56_to_n_Co55_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Co56_to_n_Co55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Co56_to_n_Co55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co56_to_n_Co55_reaclib) = drate_dT; - } - } - - { - // Co56_to_p_Fe55_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Co56_to_p_Fe55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Co56_to_p_Fe55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co56_to_p_Fe55_reaclib) = drate_dT; - } - } - - { - // Co56_to_He4_Mn52_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Co56_to_He4_Mn52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Co56_to_He4_Mn52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co56_to_He4_Mn52_reaclib) = drate_dT; - } - } - - { - // Co57_to_n_Co56_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Co57_to_n_Co56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Co57_to_n_Co56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co57_to_n_Co56_reaclib) = drate_dT; - } - } - - { - // Co57_to_p_Fe56_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Co57_to_p_Fe56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Co57_to_p_Fe56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co57_to_p_Fe56_reaclib) = drate_dT; - } - } - - { - // Co57_to_He4_Mn53_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Co57_to_He4_Mn53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Co57_to_He4_Mn53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co57_to_He4_Mn53_reaclib) = drate_dT; - } - } - - { - // Co58_to_n_Co57_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Co58_to_n_Co57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Co58_to_n_Co57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co58_to_n_Co57_reaclib) = drate_dT; - } - } - - { - // Co58_to_p_Fe57_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Co58_to_p_Fe57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Co58_to_p_Fe57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co58_to_p_Fe57_reaclib) = drate_dT; - } - } - - { - // Co58_to_He4_Mn54_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Co58_to_He4_Mn54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Co58_to_He4_Mn54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co58_to_He4_Mn54_reaclib) = drate_dT; - } - } - - { - // Co59_to_n_Co58_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Co59_to_n_Co58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Co59_to_n_Co58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co59_to_n_Co58_reaclib) = drate_dT; - } - } - - { - // Co59_to_p_Fe58_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Co59_to_p_Fe58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Co59_to_p_Fe58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co59_to_p_Fe58_reaclib) = drate_dT; - } - } - - { - // Co59_to_He4_Mn55_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Co59_to_He4_Mn55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Co59_to_He4_Mn55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Co59_to_He4_Mn55_reaclib) = drate_dT; - } - } - - { - // Ni56_to_p_Co55_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ni56_to_p_Co55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ni56_to_p_Co55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni56_to_p_Co55_reaclib) = drate_dT; - } - } - - { - // Ni56_to_He4_Fe52_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ni56_to_He4_Fe52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ni56_to_He4_Fe52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni56_to_He4_Fe52_reaclib) = drate_dT; - } - } - - { - // Ni57_to_n_Ni56_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ni57_to_n_Ni56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ni57_to_n_Ni56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni57_to_n_Ni56_reaclib) = drate_dT; - } - } - - { - // Ni57_to_p_Co56_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ni57_to_p_Co56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ni57_to_p_Co56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni57_to_p_Co56_reaclib) = drate_dT; - } - } - - { - // Ni57_to_He4_Fe53_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ni57_to_He4_Fe53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ni57_to_He4_Fe53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni57_to_He4_Fe53_reaclib) = drate_dT; - } - } - - { - // Ni58_to_n_Ni57_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ni58_to_n_Ni57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ni58_to_n_Ni57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni58_to_n_Ni57_reaclib) = drate_dT; - } - } - - { - // Ni58_to_p_Co57_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ni58_to_p_Co57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ni58_to_p_Co57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni58_to_p_Co57_reaclib) = drate_dT; - } - } - - { - // Ni58_to_He4_Fe54_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ni58_to_He4_Fe54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ni58_to_He4_Fe54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni58_to_He4_Fe54_reaclib) = drate_dT; - } - } - - { - // Ni59_to_n_Ni58_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ni59_to_n_Ni58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ni59_to_n_Ni58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni59_to_n_Ni58_reaclib) = drate_dT; - } - } - - { - // Ni59_to_p_Co58_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ni59_to_p_Co58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ni59_to_p_Co58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni59_to_p_Co58_reaclib) = drate_dT; - } - } - - { - // Ni59_to_He4_Fe55_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ni59_to_He4_Fe55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ni59_to_He4_Fe55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni59_to_He4_Fe55_reaclib) = drate_dT; - } - } - - { - // Ni60_to_n_Ni59_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ni60_to_n_Ni59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ni60_to_n_Ni59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni60_to_n_Ni59_reaclib) = drate_dT; - } - } - - { - // Ni60_to_p_Co59_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ni60_to_p_Co59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ni60_to_p_Co59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni60_to_p_Co59_reaclib) = drate_dT; - } - } - - { - // Ni60_to_He4_Fe56_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ni60_to_He4_Fe56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ni60_to_He4_Fe56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni60_to_He4_Fe56_reaclib) = drate_dT; - } - } - - { - // Ni61_to_n_Ni60_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ni61_to_n_Ni60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ni61_to_n_Ni60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni61_to_n_Ni60_reaclib) = drate_dT; - } - } - - { - // Ni61_to_He4_Fe57_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ni61_to_He4_Fe57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ni61_to_He4_Fe57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni61_to_He4_Fe57_reaclib) = drate_dT; - } - } - - { - // Ni62_to_n_Ni61_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ni62_to_n_Ni61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ni62_to_n_Ni61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni62_to_n_Ni61_reaclib) = drate_dT; - } - } - - { - // Ni62_to_He4_Fe58_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ni62_to_He4_Fe58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ni62_to_He4_Fe58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni62_to_He4_Fe58_reaclib) = drate_dT; - } - } - - { - // Ni63_to_n_Ni62_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ni63_to_n_Ni62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ni63_to_n_Ni62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni63_to_n_Ni62_reaclib) = drate_dT; - } - } - - { - // Ni64_to_n_Ni63_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ni64_to_n_Ni63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ni64_to_n_Ni63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ni64_to_n_Ni63_reaclib) = drate_dT; - } - } - - { - // Cu57_to_p_Ni56_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cu57_to_p_Ni56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cu57_to_p_Ni56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu57_to_p_Ni56_reaclib) = drate_dT; - } - } - - { - // Cu57_to_He4_Co53_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cu57_to_He4_Co53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cu57_to_He4_Co53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu57_to_He4_Co53_reaclib) = drate_dT; - } - } - - { - // Cu58_to_n_Cu57_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cu58_to_n_Cu57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cu58_to_n_Cu57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu58_to_n_Cu57_reaclib) = drate_dT; - } - } - - { - // Cu58_to_p_Ni57_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cu58_to_p_Ni57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cu58_to_p_Ni57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu58_to_p_Ni57_reaclib) = drate_dT; - } - } - - { - // Cu58_to_He4_Co54_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cu58_to_He4_Co54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cu58_to_He4_Co54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu58_to_He4_Co54_reaclib) = drate_dT; - } - } - - { - // Cu59_to_n_Cu58_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cu59_to_n_Cu58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cu59_to_n_Cu58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu59_to_n_Cu58_reaclib) = drate_dT; - } - } - - { - // Cu59_to_p_Ni58_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cu59_to_p_Ni58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cu59_to_p_Ni58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu59_to_p_Ni58_reaclib) = drate_dT; - } - } - - { - // Cu59_to_He4_Co55_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cu59_to_He4_Co55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cu59_to_He4_Co55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu59_to_He4_Co55_reaclib) = drate_dT; - } - } - - { - // Cu60_to_n_Cu59_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cu60_to_n_Cu59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cu60_to_n_Cu59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu60_to_n_Cu59_reaclib) = drate_dT; - } - } - - { - // Cu60_to_p_Ni59_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cu60_to_p_Ni59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cu60_to_p_Ni59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu60_to_p_Ni59_reaclib) = drate_dT; - } - } - - { - // Cu60_to_He4_Co56_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cu60_to_He4_Co56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cu60_to_He4_Co56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu60_to_He4_Co56_reaclib) = drate_dT; - } - } - - { - // Cu61_to_n_Cu60_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cu61_to_n_Cu60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cu61_to_n_Cu60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu61_to_n_Cu60_reaclib) = drate_dT; - } - } - - { - // Cu61_to_p_Ni60_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cu61_to_p_Ni60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cu61_to_p_Ni60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu61_to_p_Ni60_reaclib) = drate_dT; - } - } - - { - // Cu61_to_He4_Co57_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cu61_to_He4_Co57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cu61_to_He4_Co57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu61_to_He4_Co57_reaclib) = drate_dT; - } - } - - { - // Cu62_to_n_Cu61_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cu62_to_n_Cu61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cu62_to_n_Cu61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu62_to_n_Cu61_reaclib) = drate_dT; - } - } - - { - // Cu62_to_p_Ni61_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cu62_to_p_Ni61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cu62_to_p_Ni61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu62_to_p_Ni61_reaclib) = drate_dT; - } - } - - { - // Cu62_to_He4_Co58_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cu62_to_He4_Co58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cu62_to_He4_Co58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu62_to_He4_Co58_reaclib) = drate_dT; - } - } - - { - // Cu63_to_n_Cu62_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cu63_to_n_Cu62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cu63_to_n_Cu62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu63_to_n_Cu62_reaclib) = drate_dT; - } - } - - { - // Cu63_to_p_Ni62_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cu63_to_p_Ni62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cu63_to_p_Ni62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu63_to_p_Ni62_reaclib) = drate_dT; - } - } - - { - // Cu63_to_He4_Co59_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cu63_to_He4_Co59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cu63_to_He4_Co59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu63_to_He4_Co59_reaclib) = drate_dT; - } - } - - { - // Cu64_to_n_Cu63_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cu64_to_n_Cu63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cu64_to_n_Cu63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu64_to_n_Cu63_reaclib) = drate_dT; - } - } - - { - // Cu64_to_p_Ni63_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cu64_to_p_Ni63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cu64_to_p_Ni63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu64_to_p_Ni63_reaclib) = drate_dT; - } - } - - { - // Cu65_to_n_Cu64_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cu65_to_n_Cu64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cu65_to_n_Cu64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu65_to_n_Cu64_reaclib) = drate_dT; - } - } - - { - // Cu65_to_p_Ni64_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Cu65_to_p_Ni64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Cu65_to_p_Ni64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Cu65_to_p_Ni64_reaclib) = drate_dT; - } - } - - { - // Zn59_to_p_Cu58_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn59_to_p_Cu58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn59_to_p_Cu58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn59_to_p_Cu58_reaclib) = drate_dT; - } - } - - { - // Zn59_to_p_Ni58_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn59_to_p_Ni58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn59_to_p_Ni58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn59_to_p_Ni58_reaclib) = drate_dT; - } - } - - { - // Zn60_to_n_Zn59_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn60_to_n_Zn59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn60_to_n_Zn59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn60_to_n_Zn59_reaclib) = drate_dT; - } - } - - { - // Zn60_to_p_Cu59_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn60_to_p_Cu59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn60_to_p_Cu59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn60_to_p_Cu59_reaclib) = drate_dT; - } - } - - { - // Zn60_to_He4_Ni56_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn60_to_He4_Ni56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn60_to_He4_Ni56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn60_to_He4_Ni56_reaclib) = drate_dT; - } - } - - { - // Zn61_to_n_Zn60_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn61_to_n_Zn60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn61_to_n_Zn60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn61_to_n_Zn60_reaclib) = drate_dT; - } - } - - { - // Zn61_to_p_Cu60_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn61_to_p_Cu60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn61_to_p_Cu60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn61_to_p_Cu60_reaclib) = drate_dT; - } - } - - { - // Zn61_to_He4_Ni57_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn61_to_He4_Ni57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn61_to_He4_Ni57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn61_to_He4_Ni57_reaclib) = drate_dT; - } - } - - { - // Zn62_to_n_Zn61_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn62_to_n_Zn61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn62_to_n_Zn61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn62_to_n_Zn61_reaclib) = drate_dT; - } - } - - { - // Zn62_to_p_Cu61_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn62_to_p_Cu61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn62_to_p_Cu61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn62_to_p_Cu61_reaclib) = drate_dT; - } - } - - { - // Zn62_to_He4_Ni58_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn62_to_He4_Ni58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn62_to_He4_Ni58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn62_to_He4_Ni58_reaclib) = drate_dT; - } - } - - { - // Zn63_to_n_Zn62_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn63_to_n_Zn62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn63_to_n_Zn62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn63_to_n_Zn62_reaclib) = drate_dT; - } - } - - { - // Zn63_to_p_Cu62_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn63_to_p_Cu62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn63_to_p_Cu62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn63_to_p_Cu62_reaclib) = drate_dT; - } - } - - { - // Zn63_to_He4_Ni59_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn63_to_He4_Ni59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn63_to_He4_Ni59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn63_to_He4_Ni59_reaclib) = drate_dT; - } - } - - { - // Zn64_to_n_Zn63_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn64_to_n_Zn63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn64_to_n_Zn63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn64_to_n_Zn63_reaclib) = drate_dT; - } - } - - { - // Zn64_to_p_Cu63_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn64_to_p_Cu63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn64_to_p_Cu63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn64_to_p_Cu63_reaclib) = drate_dT; - } - } - - { - // Zn64_to_He4_Ni60_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn64_to_He4_Ni60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn64_to_He4_Ni60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn64_to_He4_Ni60_reaclib) = drate_dT; - } - } - - { - // Zn65_to_n_Zn64_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn65_to_n_Zn64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn65_to_n_Zn64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn65_to_n_Zn64_reaclib) = drate_dT; - } - } - - { - // Zn65_to_p_Cu64_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn65_to_p_Cu64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn65_to_p_Cu64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn65_to_p_Cu64_reaclib) = drate_dT; - } - } - - { - // Zn65_to_He4_Ni61_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn65_to_He4_Ni61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn65_to_He4_Ni61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn65_to_He4_Ni61_reaclib) = drate_dT; - } - } - - { - // Zn66_to_n_Zn65_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn66_to_n_Zn65_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn66_to_n_Zn65_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn66_to_n_Zn65_reaclib) = drate_dT; - } - } - - { - // Zn66_to_p_Cu65_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn66_to_p_Cu65_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn66_to_p_Cu65_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn66_to_p_Cu65_reaclib) = drate_dT; - } - } - - { - // Zn66_to_He4_Ni62_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Zn66_to_He4_Ni62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Zn66_to_He4_Ni62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Zn66_to_He4_Ni62_reaclib) = drate_dT; - } - } - - { - // Ga62_to_p_Zn61_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ga62_to_p_Zn61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ga62_to_p_Zn61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ga62_to_p_Zn61_reaclib) = drate_dT; - } - } - - { - // Ga62_to_He4_Cu58_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ga62_to_He4_Cu58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ga62_to_He4_Cu58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ga62_to_He4_Cu58_reaclib) = drate_dT; - } - } - - { - // Ga63_to_n_Ga62_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ga63_to_n_Ga62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ga63_to_n_Ga62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ga63_to_n_Ga62_reaclib) = drate_dT; - } - } - - { - // Ga63_to_p_Zn62_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ga63_to_p_Zn62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ga63_to_p_Zn62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ga63_to_p_Zn62_reaclib) = drate_dT; - } - } - - { - // Ga63_to_He4_Cu59_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ga63_to_He4_Cu59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ga63_to_He4_Cu59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ga63_to_He4_Cu59_reaclib) = drate_dT; - } - } - - { - // Ga64_to_n_Ga63_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ga64_to_n_Ga63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ga64_to_n_Ga63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ga64_to_n_Ga63_reaclib) = drate_dT; - } - } - - { - // Ga64_to_p_Zn63_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ga64_to_p_Zn63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ga64_to_p_Zn63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ga64_to_p_Zn63_reaclib) = drate_dT; - } - } - - { - // Ga64_to_He4_Cu60_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ga64_to_He4_Cu60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ga64_to_He4_Cu60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ga64_to_He4_Cu60_reaclib) = drate_dT; - } - } - - { - // Ge63_to_p_Ga62_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ge63_to_p_Ga62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ge63_to_p_Ga62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ge63_to_p_Ga62_reaclib) = drate_dT; - } - } - - { - // Ge63_to_He4_Zn59_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ge63_to_He4_Zn59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ge63_to_He4_Zn59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ge63_to_He4_Zn59_reaclib) = drate_dT; - } - } - - { - // Ge64_to_n_Ge63_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ge64_to_n_Ge63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ge64_to_n_Ge63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ge64_to_n_Ge63_reaclib) = drate_dT; - } - } - - { - // Ge64_to_p_Ga63_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ge64_to_p_Ga63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ge64_to_p_Ga63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ge64_to_p_Ga63_reaclib) = drate_dT; - } - } - - { - // Ge64_to_He4_Zn60_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Ge64_to_He4_Zn60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Ge64_to_He4_Zn60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Ge64_to_He4_Zn60_reaclib) = drate_dT; - } - } - - { - // Li6_to_n_p_He4_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Li6_to_n_p_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Li6_to_n_p_He4_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Li6_to_n_p_He4_reaclib) = drate_dT; - } - } - - { - // Be9_to_n_He4_He4_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_Be9_to_n_He4_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_Be9_to_n_He4_He4_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_Be9_to_n_He4_He4_reaclib) = drate_dT; - } - } - - { - // C12_to_He4_He4_He4_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_C12_to_He4_He4_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_C12_to_He4_He4_He4_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_to_He4_He4_He4_reaclib) = drate_dT; - } - } - - { - // n_p_to_d_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_p_to_d_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_p_to_d_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_p_to_d_reaclib) = drate_dT; - } - } - - { - // p_p_to_d_reaclib_beta_pos - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_p); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_p); - } -#endif - rate_p_p_to_d_reaclib_beta_pos(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_p_to_d_reaclib_beta_pos) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_p_to_d_reaclib_beta_pos) = drate_dT; - } - } - - { - // p_p_to_d_reaclib_electron_capture - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_p); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_p); - } -#endif - rate_p_p_to_d_reaclib_electron_capture(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_p_to_d_reaclib_electron_capture) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_p_to_d_reaclib_electron_capture) = drate_dT; - } - } - - { - // p_d_to_He3_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_d); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_d); - } -#endif - rate_p_d_to_He3_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_d_to_He3_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_d_to_He3_reaclib) = drate_dT; - } - } - - { - // d_d_to_He4_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_d_d); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_d_d); - } -#endif - rate_d_d_to_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_d_d_to_He4_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_d_d_to_He4_reaclib) = drate_dT; - } - } - - { - // He4_d_to_Li6_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_d_He4); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_d_He4); - } -#endif - rate_He4_d_to_Li6_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_d_to_Li6_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_d_to_Li6_reaclib) = drate_dT; - } - } - - { - // n_He3_to_He4_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_He3_to_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_He3_to_He4_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_He3_to_He4_reaclib) = drate_dT; - } - } - - { - // p_He3_to_He4_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_He3); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_He3); - } -#endif - rate_p_He3_to_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_He3_to_He4_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_He3_to_He4_reaclib) = drate_dT; - } - } - - { - // He4_He3_to_Be7_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He3_He4); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He3_He4); - } -#endif - rate_He4_He3_to_Be7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_He3_to_Be7_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_He3_to_Be7_reaclib) = drate_dT; - } - } - - { - // n_Li6_to_Li7_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Li6_to_Li7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Li6_to_Li7_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Li6_to_Li7_reaclib) = drate_dT; - } - } - - { - // p_Li6_to_Be7_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Li6); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Li6); - } -#endif - rate_p_Li6_to_Be7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Li6_to_Be7_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Li6_to_Be7_reaclib) = drate_dT; - } - } - - { - // He4_Li6_to_B10_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Li6); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Li6); - } -#endif - rate_He4_Li6_to_B10_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Li6_to_B10_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Li6_to_B10_reaclib) = drate_dT; - } - } - - { - // He4_Li7_to_B11_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Li7); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Li7); - } -#endif - rate_He4_Li7_to_B11_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Li7_to_B11_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Li7_to_B11_reaclib) = drate_dT; - } - } - - { - // p_Be7_to_B8_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Be7); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Be7); - } -#endif - rate_p_Be7_to_B8_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Be7_to_B8_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Be7_to_B8_reaclib) = drate_dT; - } - } - - { - // p_Be9_to_B10_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Be9); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Be9); - } -#endif - rate_p_Be9_to_B10_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Be9_to_B10_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Be9_to_B10_reaclib) = drate_dT; - } - } - - { - // n_B10_to_B11_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_B10_to_B11_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_B10_to_B11_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_B10_to_B11_reaclib) = drate_dT; - } - } - - { - // p_B11_to_C12_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_B11); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_B11); - } -#endif - rate_p_B11_to_C12_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_B11_to_C12_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_B11_to_C12_reaclib) = drate_dT; - } - } - - { - // n_C12_to_C13_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_C12_to_C13_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_C12_to_C13_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_C12_to_C13_reaclib) = drate_dT; - } - } - - { - // p_C12_to_N13_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_C12); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_C12); - } -#endif - rate_p_C12_to_N13_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_C12_to_N13_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_C12_to_N13_reaclib) = drate_dT; - } - } - - { - // He4_C12_to_O16_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_C12); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_C12); - } -#endif - rate_He4_C12_to_O16_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_C12_to_O16_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_C12_to_O16_reaclib) = drate_dT; - } - } - - { - // n_C13_to_C14_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_C13_to_C14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_C13_to_C14_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_C13_to_C14_reaclib) = drate_dT; - } - } - - { - // p_C13_to_N14_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_C13); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_C13); - } -#endif - rate_p_C13_to_N14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_C13_to_N14_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_C13_to_N14_reaclib) = drate_dT; - } - } - - { - // p_C14_to_N15_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_C14); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_C14); - } -#endif - rate_p_C14_to_N15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_C14_to_N15_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_C14_to_N15_reaclib) = drate_dT; - } - } - - { - // He4_C14_to_O18_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_C14); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_C14); - } -#endif - rate_He4_C14_to_O18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_C14_to_O18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_C14_to_O18_reaclib) = drate_dT; - } - } - - { - // n_N13_to_N14_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_N13_to_N14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_N13_to_N14_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_N13_to_N14_reaclib) = drate_dT; - } - } - - { - // p_N13_to_O14_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_N13); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_N13); - } -#endif - rate_p_N13_to_O14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_N13_to_O14_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_N13_to_O14_reaclib) = drate_dT; - } - } - - { - // n_N14_to_N15_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_N14_to_N15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_N14_to_N15_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_N14_to_N15_reaclib) = drate_dT; - } - } - - { - // p_N14_to_O15_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_N14); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_N14); - } -#endif - rate_p_N14_to_O15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_N14_to_O15_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_N14_to_O15_reaclib) = drate_dT; - } - } - - { - // He4_N14_to_F18_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_N14); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_N14); - } -#endif - rate_He4_N14_to_F18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_N14_to_F18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_N14_to_F18_reaclib) = drate_dT; - } - } - - { - // p_N15_to_O16_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_N15); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_N15); - } -#endif - rate_p_N15_to_O16_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_N15_to_O16_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_N15_to_O16_reaclib) = drate_dT; - } - } - - { - // He4_N15_to_F19_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_N15); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_N15); - } -#endif - rate_He4_N15_to_F19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_N15_to_F19_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_N15_to_F19_reaclib) = drate_dT; - } - } - - { - // n_O14_to_O15_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_O14_to_O15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_O14_to_O15_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_O14_to_O15_reaclib) = drate_dT; - } - } - - { - // He4_O14_to_Ne18_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_O14); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_O14); - } -#endif - rate_He4_O14_to_Ne18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_O14_to_Ne18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_O14_to_Ne18_reaclib) = drate_dT; - } - } - - { - // n_O15_to_O16_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_O15_to_O16_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_O15_to_O16_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_O15_to_O16_reaclib) = drate_dT; - } - } - - { - // He4_O15_to_Ne19_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_O15); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_O15); - } -#endif - rate_He4_O15_to_Ne19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_O15_to_Ne19_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_O15_to_Ne19_reaclib) = drate_dT; - } - } - - { - // n_O16_to_O17_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_O16_to_O17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_O16_to_O17_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_O16_to_O17_reaclib) = drate_dT; - } - } - - { - // p_O16_to_F17_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_O16); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_O16); - } -#endif - rate_p_O16_to_F17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_O16_to_F17_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O16_to_F17_reaclib) = drate_dT; - } - } - - { - // He4_O16_to_Ne20_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_O16); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_O16); - } -#endif - rate_He4_O16_to_Ne20_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_O16_to_Ne20_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_O16_to_Ne20_reaclib) = drate_dT; - } - } - - { - // n_O17_to_O18_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_O17_to_O18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_O17_to_O18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_O17_to_O18_reaclib) = drate_dT; - } - } - - { - // p_O17_to_F18_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_O17); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_O17); - } -#endif - rate_p_O17_to_F18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_O17_to_F18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O17_to_F18_reaclib) = drate_dT; - } - } - - { - // He4_O17_to_Ne21_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_O17); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_O17); - } -#endif - rate_He4_O17_to_Ne21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_O17_to_Ne21_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_O17_to_Ne21_reaclib) = drate_dT; - } - } - - { - // p_O18_to_F19_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_O18); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_O18); - } -#endif - rate_p_O18_to_F19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_O18_to_F19_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O18_to_F19_reaclib) = drate_dT; - } - } - - { - // He4_O18_to_Ne22_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_O18); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_O18); - } -#endif - rate_He4_O18_to_Ne22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_O18_to_Ne22_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_O18_to_Ne22_reaclib) = drate_dT; - } - } - - { - // n_F17_to_F18_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_F17_to_F18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_F17_to_F18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_F17_to_F18_reaclib) = drate_dT; - } - } - - { - // p_F17_to_Ne18_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_F17); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_F17); - } -#endif - rate_p_F17_to_Ne18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_F17_to_Ne18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_F17_to_Ne18_reaclib) = drate_dT; - } - } - - { - // He4_F17_to_Na21_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_F17); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_F17); - } -#endif - rate_He4_F17_to_Na21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_F17_to_Na21_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_F17_to_Na21_reaclib) = drate_dT; - } - } - - { - // n_F18_to_F19_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_F18_to_F19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_F18_to_F19_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_F18_to_F19_reaclib) = drate_dT; - } - } - - { - // p_F18_to_Ne19_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_F18); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_F18); - } -#endif - rate_p_F18_to_Ne19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_F18_to_Ne19_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_F18_to_Ne19_reaclib) = drate_dT; - } - } - - { - // He4_F18_to_Na22_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_F18); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_F18); - } -#endif - rate_He4_F18_to_Na22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_F18_to_Na22_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_F18_to_Na22_reaclib) = drate_dT; - } - } - - { - // p_F19_to_Ne20_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_F19); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_F19); - } -#endif - rate_p_F19_to_Ne20_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_F19_to_Ne20_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_F19_to_Ne20_reaclib) = drate_dT; - } - } - - { - // He4_F19_to_Na23_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_F19); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_F19); - } -#endif - rate_He4_F19_to_Na23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_F19_to_Na23_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_F19_to_Na23_reaclib) = drate_dT; - } - } - - { - // n_Ne18_to_Ne19_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ne18_to_Ne19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ne18_to_Ne19_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ne18_to_Ne19_reaclib) = drate_dT; - } - } - - { - // n_Ne19_to_Ne20_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ne19_to_Ne20_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ne19_to_Ne20_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ne19_to_Ne20_reaclib) = drate_dT; - } - } - - { - // He4_Ne19_to_Mg23_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ne19); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne19); - } -#endif - rate_He4_Ne19_to_Mg23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ne19_to_Mg23_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ne19_to_Mg23_reaclib) = drate_dT; - } - } - - { - // n_Ne20_to_Ne21_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ne20_to_Ne21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ne20_to_Ne21_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ne20_to_Ne21_reaclib) = drate_dT; - } - } - - { - // p_Ne20_to_Na21_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ne20); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ne20); - } -#endif - rate_p_Ne20_to_Na21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ne20_to_Na21_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ne20_to_Na21_reaclib) = drate_dT; - } - } - - { - // He4_Ne20_to_Mg24_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ne20); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne20); - } -#endif - rate_He4_Ne20_to_Mg24_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ne20_to_Mg24_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_Mg24_reaclib) = drate_dT; - } - } - - { - // n_Ne21_to_Ne22_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ne21_to_Ne22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ne21_to_Ne22_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ne21_to_Ne22_reaclib) = drate_dT; - } - } - - { - // p_Ne21_to_Na22_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ne21); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ne21); - } -#endif - rate_p_Ne21_to_Na22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ne21_to_Na22_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ne21_to_Na22_reaclib) = drate_dT; - } - } - - { - // He4_Ne21_to_Mg25_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ne21); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne21); - } -#endif - rate_He4_Ne21_to_Mg25_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ne21_to_Mg25_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ne21_to_Mg25_reaclib) = drate_dT; - } - } - - { - // p_Ne22_to_Na23_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ne22); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ne22); - } -#endif - rate_p_Ne22_to_Na23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ne22_to_Na23_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ne22_to_Na23_reaclib) = drate_dT; - } - } - - { - // He4_Ne22_to_Mg26_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ne22); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne22); - } -#endif - rate_He4_Ne22_to_Mg26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ne22_to_Mg26_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ne22_to_Mg26_reaclib) = drate_dT; - } - } - - { - // n_Na21_to_Na22_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Na21_to_Na22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Na21_to_Na22_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Na21_to_Na22_reaclib) = drate_dT; - } - } - - { - // He4_Na21_to_Al25_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Na21); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Na21); - } -#endif - rate_He4_Na21_to_Al25_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Na21_to_Al25_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Na21_to_Al25_reaclib) = drate_dT; - } - } - - { - // n_Na22_to_Na23_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Na22_to_Na23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Na22_to_Na23_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Na22_to_Na23_reaclib) = drate_dT; - } - } - - { - // p_Na22_to_Mg23_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Na22); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Na22); - } -#endif - rate_p_Na22_to_Mg23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Na22_to_Mg23_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Na22_to_Mg23_reaclib) = drate_dT; - } - } - - { - // He4_Na22_to_Al26_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Na22); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Na22); - } -#endif - rate_He4_Na22_to_Al26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Na22_to_Al26_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Na22_to_Al26_reaclib) = drate_dT; - } - } - - { - // p_Na23_to_Mg24_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Na23); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Na23); - } -#endif - rate_p_Na23_to_Mg24_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Na23_to_Mg24_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Na23_to_Mg24_reaclib) = drate_dT; - } - } - - { - // He4_Na23_to_Al27_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Na23); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Na23); - } -#endif - rate_He4_Na23_to_Al27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Na23_to_Al27_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Na23_to_Al27_reaclib) = drate_dT; - } - } - - { - // n_Mg23_to_Mg24_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Mg23_to_Mg24_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Mg23_to_Mg24_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Mg23_to_Mg24_reaclib) = drate_dT; - } - } - - { - // n_Mg24_to_Mg25_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Mg24_to_Mg25_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Mg24_to_Mg25_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Mg24_to_Mg25_reaclib) = drate_dT; - } - } - - { - // p_Mg24_to_Al25_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Mg24); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mg24); - } -#endif - rate_p_Mg24_to_Al25_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Mg24_to_Al25_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mg24_to_Al25_reaclib) = drate_dT; - } - } - - { - // He4_Mg24_to_Si28_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mg24); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg24); - } -#endif - rate_He4_Mg24_to_Si28_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mg24_to_Si28_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_Si28_reaclib) = drate_dT; - } - } - - { - // n_Mg25_to_Mg26_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Mg25_to_Mg26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Mg25_to_Mg26_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Mg25_to_Mg26_reaclib) = drate_dT; - } - } - - { - // p_Mg25_to_Al26_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Mg25); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mg25); - } -#endif - rate_p_Mg25_to_Al26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Mg25_to_Al26_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mg25_to_Al26_reaclib) = drate_dT; - } - } - - { - // He4_Mg25_to_Si29_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mg25); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg25); - } -#endif - rate_He4_Mg25_to_Si29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mg25_to_Si29_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mg25_to_Si29_reaclib) = drate_dT; - } - } - - { - // p_Mg26_to_Al27_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Mg26); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mg26); - } -#endif - rate_p_Mg26_to_Al27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Mg26_to_Al27_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mg26_to_Al27_reaclib) = drate_dT; - } - } - - { - // He4_Mg26_to_Si30_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mg26); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg26); - } -#endif - rate_He4_Mg26_to_Si30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mg26_to_Si30_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mg26_to_Si30_reaclib) = drate_dT; - } - } - - { - // n_Al25_to_Al26_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Al25_to_Al26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Al25_to_Al26_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Al25_to_Al26_reaclib) = drate_dT; - } - } - - { - // He4_Al25_to_P29_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Al25); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Al25); - } -#endif - rate_He4_Al25_to_P29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Al25_to_P29_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Al25_to_P29_reaclib) = drate_dT; - } - } - - { - // n_Al26_to_Al27_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Al26_to_Al27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Al26_to_Al27_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Al26_to_Al27_reaclib) = drate_dT; - } - } - - { - // He4_Al26_to_P30_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Al26); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Al26); - } -#endif - rate_He4_Al26_to_P30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Al26_to_P30_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Al26_to_P30_reaclib) = drate_dT; - } - } - - { - // p_Al27_to_Si28_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Al27); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Al27); - } -#endif - rate_p_Al27_to_Si28_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Al27_to_Si28_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Al27_to_Si28_reaclib) = drate_dT; - } - } - - { - // He4_Al27_to_P31_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Al27); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Al27); - } -#endif - rate_He4_Al27_to_P31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Al27_to_P31_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Al27_to_P31_reaclib) = drate_dT; - } - } - - { - // n_Si28_to_Si29_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Si28_to_Si29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Si28_to_Si29_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Si28_to_Si29_reaclib) = drate_dT; - } - } - - { - // p_Si28_to_P29_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Si28); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Si28); - } -#endif - rate_p_Si28_to_P29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Si28_to_P29_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Si28_to_P29_reaclib) = drate_dT; - } - } - - { - // He4_Si28_to_S32_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Si28); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si28); - } -#endif - rate_He4_Si28_to_S32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Si28_to_S32_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Si28_to_S32_reaclib) = drate_dT; - } - } - - { - // n_Si29_to_Si30_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Si29_to_Si30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Si29_to_Si30_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Si29_to_Si30_reaclib) = drate_dT; - } - } - - { - // p_Si29_to_P30_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Si29); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Si29); - } -#endif - rate_p_Si29_to_P30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Si29_to_P30_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Si29_to_P30_reaclib) = drate_dT; - } - } - - { - // He4_Si29_to_S33_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Si29); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si29); - } -#endif - rate_He4_Si29_to_S33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Si29_to_S33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Si29_to_S33_reaclib) = drate_dT; - } - } - - { - // n_Si30_to_Si31_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Si30_to_Si31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Si30_to_Si31_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Si30_to_Si31_reaclib) = drate_dT; - } - } - - { - // p_Si30_to_P31_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Si30); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Si30); - } -#endif - rate_p_Si30_to_P31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Si30_to_P31_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Si30_to_P31_reaclib) = drate_dT; - } - } - - { - // He4_Si30_to_S34_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Si30); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si30); - } -#endif - rate_He4_Si30_to_S34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Si30_to_S34_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Si30_to_S34_reaclib) = drate_dT; - } - } - - { - // n_Si31_to_Si32_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Si31_to_Si32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Si31_to_Si32_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Si31_to_Si32_reaclib) = drate_dT; - } - } - - { - // p_Si31_to_P32_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Si31); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Si31); - } -#endif - rate_p_Si31_to_P32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Si31_to_P32_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Si31_to_P32_reaclib) = drate_dT; - } - } - - { - // He4_Si31_to_S35_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Si31); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si31); - } -#endif - rate_He4_Si31_to_S35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Si31_to_S35_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Si31_to_S35_reaclib) = drate_dT; - } - } - - { - // p_Si32_to_P33_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Si32); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Si32); - } -#endif - rate_p_Si32_to_P33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Si32_to_P33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Si32_to_P33_reaclib) = drate_dT; - } - } - - { - // He4_Si32_to_S36_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Si32); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si32); - } -#endif - rate_He4_Si32_to_S36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Si32_to_S36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Si32_to_S36_reaclib) = drate_dT; - } - } - - { - // n_P29_to_P30_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_P29_to_P30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_P29_to_P30_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_P29_to_P30_reaclib) = drate_dT; - } - } - - { - // He4_P29_to_Cl33_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_P29); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P29); - } -#endif - rate_He4_P29_to_Cl33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_P29_to_Cl33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_P29_to_Cl33_reaclib) = drate_dT; - } - } - - { - // n_P30_to_P31_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_P30_to_P31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_P30_to_P31_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_P30_to_P31_reaclib) = drate_dT; - } - } - - { - // He4_P30_to_Cl34_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_P30); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P30); - } -#endif - rate_He4_P30_to_Cl34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_P30_to_Cl34_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_P30_to_Cl34_reaclib) = drate_dT; - } - } - - { - // n_P31_to_P32_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_P31_to_P32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_P31_to_P32_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_P31_to_P32_reaclib) = drate_dT; - } - } - - { - // p_P31_to_S32_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_P31); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_P31); - } -#endif - rate_p_P31_to_S32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_P31_to_S32_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_P31_to_S32_reaclib) = drate_dT; - } - } - - { - // He4_P31_to_Cl35_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_P31); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P31); - } -#endif - rate_He4_P31_to_Cl35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_P31_to_Cl35_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_P31_to_Cl35_reaclib) = drate_dT; - } - } - - { - // n_P32_to_P33_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_P32_to_P33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_P32_to_P33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_P32_to_P33_reaclib) = drate_dT; - } - } - - { - // p_P32_to_S33_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_P32); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_P32); - } -#endif - rate_p_P32_to_S33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_P32_to_S33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_P32_to_S33_reaclib) = drate_dT; - } - } - - { - // He4_P32_to_Cl36_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_P32); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P32); - } -#endif - rate_He4_P32_to_Cl36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_P32_to_Cl36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_P32_to_Cl36_reaclib) = drate_dT; - } - } - - { - // p_P33_to_S34_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_P33); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_P33); - } -#endif - rate_p_P33_to_S34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_P33_to_S34_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_P33_to_S34_reaclib) = drate_dT; - } - } - - { - // He4_P33_to_Cl37_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_P33); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P33); - } -#endif - rate_He4_P33_to_Cl37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_P33_to_Cl37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_P33_to_Cl37_reaclib) = drate_dT; - } - } - - { - // n_S32_to_S33_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_S32_to_S33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_S32_to_S33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_S32_to_S33_reaclib) = drate_dT; - } - } - - { - // p_S32_to_Cl33_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_S32); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S32); - } -#endif - rate_p_S32_to_Cl33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_S32_to_Cl33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_S32_to_Cl33_reaclib) = drate_dT; - } - } - - { - // He4_S32_to_Ar36_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_S32); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_S32); - } -#endif - rate_He4_S32_to_Ar36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_S32_to_Ar36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S32_to_Ar36_reaclib) = drate_dT; - } - } - - { - // n_S33_to_S34_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_S33_to_S34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_S33_to_S34_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_S33_to_S34_reaclib) = drate_dT; - } - } - - { - // p_S33_to_Cl34_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_S33); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S33); - } -#endif - rate_p_S33_to_Cl34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_S33_to_Cl34_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_S33_to_Cl34_reaclib) = drate_dT; - } - } - - { - // He4_S33_to_Ar37_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_S33); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_S33); - } -#endif - rate_He4_S33_to_Ar37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_S33_to_Ar37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S33_to_Ar37_reaclib) = drate_dT; - } - } - - { - // n_S34_to_S35_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_S34_to_S35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_S34_to_S35_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_S34_to_S35_reaclib) = drate_dT; - } - } - - { - // p_S34_to_Cl35_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_S34); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S34); - } -#endif - rate_p_S34_to_Cl35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_S34_to_Cl35_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_S34_to_Cl35_reaclib) = drate_dT; - } - } - - { - // He4_S34_to_Ar38_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_S34); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_S34); - } -#endif - rate_He4_S34_to_Ar38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_S34_to_Ar38_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S34_to_Ar38_reaclib) = drate_dT; - } - } - - { - // n_S35_to_S36_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_S35_to_S36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_S35_to_S36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_S35_to_S36_reaclib) = drate_dT; - } - } - - { - // p_S35_to_Cl36_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_S35); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S35); - } -#endif - rate_p_S35_to_Cl36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_S35_to_Cl36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_S35_to_Cl36_reaclib) = drate_dT; - } - } - - { - // He4_S35_to_Ar39_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_S35); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_S35); - } -#endif - rate_He4_S35_to_Ar39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_S35_to_Ar39_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S35_to_Ar39_reaclib) = drate_dT; - } - } - - { - // p_S36_to_Cl37_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_S36); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S36); - } -#endif - rate_p_S36_to_Cl37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_S36_to_Cl37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_S36_to_Cl37_reaclib) = drate_dT; - } - } - - { - // He4_S36_to_Ar40_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_S36); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_S36); - } -#endif - rate_He4_S36_to_Ar40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_S36_to_Ar40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S36_to_Ar40_reaclib) = drate_dT; - } - } - - { - // n_Cl33_to_Cl34_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cl33_to_Cl34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cl33_to_Cl34_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cl33_to_Cl34_reaclib) = drate_dT; - } - } - - { - // He4_Cl33_to_K37_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cl33); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl33); - } -#endif - rate_He4_Cl33_to_K37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cl33_to_K37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cl33_to_K37_reaclib) = drate_dT; - } - } - - { - // n_Cl34_to_Cl35_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cl34_to_Cl35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cl34_to_Cl35_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cl34_to_Cl35_reaclib) = drate_dT; - } - } - - { - // He4_Cl34_to_K38_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cl34); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl34); - } -#endif - rate_He4_Cl34_to_K38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cl34_to_K38_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cl34_to_K38_reaclib) = drate_dT; - } - } - - { - // n_Cl35_to_Cl36_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cl35_to_Cl36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cl35_to_Cl36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cl35_to_Cl36_reaclib) = drate_dT; - } - } - - { - // p_Cl35_to_Ar36_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cl35); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cl35); - } -#endif - rate_p_Cl35_to_Ar36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cl35_to_Ar36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cl35_to_Ar36_reaclib) = drate_dT; - } - } - - { - // He4_Cl35_to_K39_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cl35); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl35); - } -#endif - rate_He4_Cl35_to_K39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cl35_to_K39_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cl35_to_K39_reaclib) = drate_dT; - } - } - - { - // n_Cl36_to_Cl37_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cl36_to_Cl37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cl36_to_Cl37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cl36_to_Cl37_reaclib) = drate_dT; - } - } - - { - // p_Cl36_to_Ar37_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cl36); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cl36); - } -#endif - rate_p_Cl36_to_Ar37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cl36_to_Ar37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cl36_to_Ar37_reaclib) = drate_dT; - } - } - - { - // He4_Cl36_to_K40_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cl36); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl36); - } -#endif - rate_He4_Cl36_to_K40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cl36_to_K40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cl36_to_K40_reaclib) = drate_dT; - } - } - - { - // p_Cl37_to_Ar38_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cl37); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cl37); - } -#endif - rate_p_Cl37_to_Ar38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cl37_to_Ar38_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cl37_to_Ar38_reaclib) = drate_dT; - } - } - - { - // He4_Cl37_to_K41_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cl37); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl37); - } -#endif - rate_He4_Cl37_to_K41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cl37_to_K41_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cl37_to_K41_reaclib) = drate_dT; - } - } - - { - // n_Ar36_to_Ar37_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ar36_to_Ar37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ar36_to_Ar37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ar36_to_Ar37_reaclib) = drate_dT; - } - } - - { - // p_Ar36_to_K37_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ar36); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar36); - } -#endif - rate_p_Ar36_to_K37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ar36_to_K37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ar36_to_K37_reaclib) = drate_dT; - } - } - - { - // He4_Ar36_to_Ca40_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ar36); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ar36); - } -#endif - rate_He4_Ar36_to_Ca40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ar36_to_Ca40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_Ca40_reaclib) = drate_dT; - } - } - - { - // n_Ar37_to_Ar38_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ar37_to_Ar38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ar37_to_Ar38_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ar37_to_Ar38_reaclib) = drate_dT; - } - } - - { - // p_Ar37_to_K38_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ar37); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar37); - } -#endif - rate_p_Ar37_to_K38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ar37_to_K38_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ar37_to_K38_reaclib) = drate_dT; - } - } - - { - // He4_Ar37_to_Ca41_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ar37); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ar37); - } -#endif - rate_He4_Ar37_to_Ca41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ar37_to_Ca41_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar37_to_Ca41_reaclib) = drate_dT; - } - } - - { - // n_Ar38_to_Ar39_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ar38_to_Ar39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ar38_to_Ar39_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ar38_to_Ar39_reaclib) = drate_dT; - } - } - - { - // p_Ar38_to_K39_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ar38); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar38); - } -#endif - rate_p_Ar38_to_K39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ar38_to_K39_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ar38_to_K39_reaclib) = drate_dT; - } - } - - { - // He4_Ar38_to_Ca42_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ar38); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ar38); - } -#endif - rate_He4_Ar38_to_Ca42_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ar38_to_Ca42_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar38_to_Ca42_reaclib) = drate_dT; - } - } - - { - // n_Ar39_to_Ar40_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ar39_to_Ar40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ar39_to_Ar40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ar39_to_Ar40_reaclib) = drate_dT; - } - } - - { - // p_Ar39_to_K40_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ar39); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar39); - } -#endif - rate_p_Ar39_to_K40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ar39_to_K40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ar39_to_K40_reaclib) = drate_dT; - } - } - - { - // He4_Ar39_to_Ca43_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ar39); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ar39); - } -#endif - rate_He4_Ar39_to_Ca43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ar39_to_Ca43_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar39_to_Ca43_reaclib) = drate_dT; - } - } - - { - // p_Ar40_to_K41_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ar40); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar40); - } -#endif - rate_p_Ar40_to_K41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ar40_to_K41_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ar40_to_K41_reaclib) = drate_dT; - } - } - - { - // He4_Ar40_to_Ca44_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ar40); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ar40); - } -#endif - rate_He4_Ar40_to_Ca44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ar40_to_Ca44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar40_to_Ca44_reaclib) = drate_dT; - } - } - - { - // n_K37_to_K38_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_K37_to_K38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_K37_to_K38_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_K37_to_K38_reaclib) = drate_dT; - } - } - - { - // n_K38_to_K39_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_K38_to_K39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_K38_to_K39_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_K38_to_K39_reaclib) = drate_dT; - } - } - - { - // n_K39_to_K40_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_K39_to_K40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_K39_to_K40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_K39_to_K40_reaclib) = drate_dT; - } - } - - { - // p_K39_to_Ca40_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_K39); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_K39); - } -#endif - rate_p_K39_to_Ca40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_K39_to_Ca40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_K39_to_Ca40_reaclib) = drate_dT; - } - } - - { - // He4_K39_to_Sc43_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_K39); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_K39); - } -#endif - rate_He4_K39_to_Sc43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_K39_to_Sc43_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_K39_to_Sc43_reaclib) = drate_dT; - } - } - - { - // n_K40_to_K41_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_K40_to_K41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_K40_to_K41_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_K40_to_K41_reaclib) = drate_dT; - } - } - - { - // p_K40_to_Ca41_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_K40); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_K40); - } -#endif - rate_p_K40_to_Ca41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_K40_to_Ca41_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_K40_to_Ca41_reaclib) = drate_dT; - } - } - - { - // He4_K40_to_Sc44_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_K40); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_K40); - } -#endif - rate_He4_K40_to_Sc44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_K40_to_Sc44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_K40_to_Sc44_reaclib) = drate_dT; - } - } - - { - // p_K41_to_Ca42_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_K41); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_K41); - } -#endif - rate_p_K41_to_Ca42_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_K41_to_Ca42_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_K41_to_Ca42_reaclib) = drate_dT; - } - } - - { - // He4_K41_to_Sc45_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_K41); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_K41); - } -#endif - rate_He4_K41_to_Sc45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_K41_to_Sc45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_K41_to_Sc45_reaclib) = drate_dT; - } - } - - { - // n_Ca40_to_Ca41_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ca40_to_Ca41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ca40_to_Ca41_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ca40_to_Ca41_reaclib) = drate_dT; - } - } - - { - // He4_Ca40_to_Ti44_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ca40); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca40); - } -#endif - rate_He4_Ca40_to_Ti44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca40_to_Ti44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_Ti44_reaclib) = drate_dT; - } - } - - { - // n_Ca41_to_Ca42_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ca41_to_Ca42_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ca41_to_Ca42_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ca41_to_Ca42_reaclib) = drate_dT; - } - } - - { - // He4_Ca41_to_Ti45_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ca41); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca41); - } -#endif - rate_He4_Ca41_to_Ti45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca41_to_Ti45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca41_to_Ti45_reaclib) = drate_dT; - } - } - - { - // n_Ca42_to_Ca43_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ca42_to_Ca43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ca42_to_Ca43_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ca42_to_Ca43_reaclib) = drate_dT; - } - } - - { - // p_Ca42_to_Sc43_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ca42); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca42); - } -#endif - rate_p_Ca42_to_Sc43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ca42_to_Sc43_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ca42_to_Sc43_reaclib) = drate_dT; - } - } - - { - // He4_Ca42_to_Ti46_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ca42); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca42); - } -#endif - rate_He4_Ca42_to_Ti46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca42_to_Ti46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca42_to_Ti46_reaclib) = drate_dT; - } - } - - { - // n_Ca43_to_Ca44_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ca43_to_Ca44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ca43_to_Ca44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ca43_to_Ca44_reaclib) = drate_dT; - } - } - - { - // p_Ca43_to_Sc44_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ca43); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca43); - } -#endif - rate_p_Ca43_to_Sc44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ca43_to_Sc44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ca43_to_Sc44_reaclib) = drate_dT; - } - } - - { - // He4_Ca43_to_Ti47_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ca43); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca43); - } -#endif - rate_He4_Ca43_to_Ti47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca43_to_Ti47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca43_to_Ti47_reaclib) = drate_dT; - } - } - - { - // n_Ca44_to_Ca45_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ca44_to_Ca45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ca44_to_Ca45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ca44_to_Ca45_reaclib) = drate_dT; - } - } - - { - // p_Ca44_to_Sc45_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ca44); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca44); - } -#endif - rate_p_Ca44_to_Sc45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ca44_to_Sc45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ca44_to_Sc45_reaclib) = drate_dT; - } - } - - { - // He4_Ca44_to_Ti48_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ca44); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca44); - } -#endif - rate_He4_Ca44_to_Ti48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca44_to_Ti48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca44_to_Ti48_reaclib) = drate_dT; - } - } - - { - // n_Ca45_to_Ca46_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ca45_to_Ca46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ca45_to_Ca46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ca45_to_Ca46_reaclib) = drate_dT; - } - } - - { - // p_Ca45_to_Sc46_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ca45); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca45); - } -#endif - rate_p_Ca45_to_Sc46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ca45_to_Sc46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ca45_to_Sc46_reaclib) = drate_dT; - } - } - - { - // He4_Ca45_to_Ti49_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ca45); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca45); - } -#endif - rate_He4_Ca45_to_Ti49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca45_to_Ti49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca45_to_Ti49_reaclib) = drate_dT; - } - } - - { - // n_Ca46_to_Ca47_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ca46_to_Ca47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ca46_to_Ca47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ca46_to_Ca47_reaclib) = drate_dT; - } - } - - { - // p_Ca46_to_Sc47_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ca46); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca46); - } -#endif - rate_p_Ca46_to_Sc47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ca46_to_Sc47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ca46_to_Sc47_reaclib) = drate_dT; - } - } - - { - // He4_Ca46_to_Ti50_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ca46); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca46); - } -#endif - rate_He4_Ca46_to_Ti50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca46_to_Ti50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca46_to_Ti50_reaclib) = drate_dT; - } - } - - { - // n_Ca47_to_Ca48_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ca47_to_Ca48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ca47_to_Ca48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ca47_to_Ca48_reaclib) = drate_dT; - } - } - - { - // p_Ca47_to_Sc48_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ca47); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca47); - } -#endif - rate_p_Ca47_to_Sc48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ca47_to_Sc48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ca47_to_Sc48_reaclib) = drate_dT; - } - } - - { - // He4_Ca47_to_Ti51_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ca47); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca47); - } -#endif - rate_He4_Ca47_to_Ti51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca47_to_Ti51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca47_to_Ti51_reaclib) = drate_dT; - } - } - - { - // p_Ca48_to_Sc49_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ca48); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca48); - } -#endif - rate_p_Ca48_to_Sc49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ca48_to_Sc49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ca48_to_Sc49_reaclib) = drate_dT; - } - } - - { - // n_Sc43_to_Sc44_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Sc43_to_Sc44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Sc43_to_Sc44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Sc43_to_Sc44_reaclib) = drate_dT; - } - } - - { - // p_Sc43_to_Ti44_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Sc43); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc43); - } -#endif - rate_p_Sc43_to_Ti44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc43_to_Ti44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc43_to_Ti44_reaclib) = drate_dT; - } - } - - { - // He4_Sc43_to_V47_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Sc43); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc43); - } -#endif - rate_He4_Sc43_to_V47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Sc43_to_V47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Sc43_to_V47_reaclib) = drate_dT; - } - } - - { - // n_Sc44_to_Sc45_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Sc44_to_Sc45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Sc44_to_Sc45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Sc44_to_Sc45_reaclib) = drate_dT; - } - } - - { - // p_Sc44_to_Ti45_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Sc44); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc44); - } -#endif - rate_p_Sc44_to_Ti45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc44_to_Ti45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc44_to_Ti45_reaclib) = drate_dT; - } - } - - { - // He4_Sc44_to_V48_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Sc44); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc44); - } -#endif - rate_He4_Sc44_to_V48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Sc44_to_V48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Sc44_to_V48_reaclib) = drate_dT; - } - } - - { - // n_Sc45_to_Sc46_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Sc45_to_Sc46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Sc45_to_Sc46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Sc45_to_Sc46_reaclib) = drate_dT; - } - } - - { - // p_Sc45_to_Ti46_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Sc45); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc45); - } -#endif - rate_p_Sc45_to_Ti46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc45_to_Ti46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc45_to_Ti46_reaclib) = drate_dT; - } - } - - { - // He4_Sc45_to_V49_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Sc45); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc45); - } -#endif - rate_He4_Sc45_to_V49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Sc45_to_V49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Sc45_to_V49_reaclib) = drate_dT; - } - } - - { - // n_Sc46_to_Sc47_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Sc46_to_Sc47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Sc46_to_Sc47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Sc46_to_Sc47_reaclib) = drate_dT; - } - } - - { - // p_Sc46_to_Ti47_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Sc46); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc46); - } -#endif - rate_p_Sc46_to_Ti47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc46_to_Ti47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc46_to_Ti47_reaclib) = drate_dT; - } - } - - { - // He4_Sc46_to_V50_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Sc46); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc46); - } -#endif - rate_He4_Sc46_to_V50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Sc46_to_V50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Sc46_to_V50_reaclib) = drate_dT; - } - } - - { - // n_Sc47_to_Sc48_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Sc47_to_Sc48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Sc47_to_Sc48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Sc47_to_Sc48_reaclib) = drate_dT; - } - } - - { - // p_Sc47_to_Ti48_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Sc47); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc47); - } -#endif - rate_p_Sc47_to_Ti48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc47_to_Ti48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc47_to_Ti48_reaclib) = drate_dT; - } - } - - { - // He4_Sc47_to_V51_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Sc47); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc47); - } -#endif - rate_He4_Sc47_to_V51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Sc47_to_V51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Sc47_to_V51_reaclib) = drate_dT; - } - } - - { - // n_Sc48_to_Sc49_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Sc48_to_Sc49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Sc48_to_Sc49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Sc48_to_Sc49_reaclib) = drate_dT; - } - } - - { - // p_Sc48_to_Ti49_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Sc48); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc48); - } -#endif - rate_p_Sc48_to_Ti49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc48_to_Ti49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc48_to_Ti49_reaclib) = drate_dT; - } - } - - { - // He4_Sc48_to_V52_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Sc48); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc48); - } -#endif - rate_He4_Sc48_to_V52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Sc48_to_V52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Sc48_to_V52_reaclib) = drate_dT; - } - } - - { - // p_Sc49_to_Ti50_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Sc49); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc49); - } -#endif - rate_p_Sc49_to_Ti50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc49_to_Ti50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc49_to_Ti50_reaclib) = drate_dT; - } - } - - { - // n_Ti44_to_Ti45_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ti44_to_Ti45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ti44_to_Ti45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ti44_to_Ti45_reaclib) = drate_dT; - } - } - - { - // He4_Ti44_to_Cr48_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ti44); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti44); - } -#endif - rate_He4_Ti44_to_Cr48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti44_to_Cr48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_Cr48_reaclib) = drate_dT; - } - } - - { - // n_Ti45_to_Ti46_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ti45_to_Ti46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ti45_to_Ti46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ti45_to_Ti46_reaclib) = drate_dT; - } - } - - { - // p_Ti45_to_V46_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ti45); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti45); - } -#endif - rate_p_Ti45_to_V46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ti45_to_V46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ti45_to_V46_reaclib) = drate_dT; - } - } - - { - // He4_Ti45_to_Cr49_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ti45); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti45); - } -#endif - rate_He4_Ti45_to_Cr49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti45_to_Cr49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti45_to_Cr49_reaclib) = drate_dT; - } - } - - { - // n_Ti46_to_Ti47_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ti46_to_Ti47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ti46_to_Ti47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ti46_to_Ti47_reaclib) = drate_dT; - } - } - - { - // p_Ti46_to_V47_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ti46); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti46); - } -#endif - rate_p_Ti46_to_V47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ti46_to_V47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ti46_to_V47_reaclib) = drate_dT; - } - } - - { - // He4_Ti46_to_Cr50_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ti46); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti46); - } -#endif - rate_He4_Ti46_to_Cr50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti46_to_Cr50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti46_to_Cr50_reaclib) = drate_dT; - } - } - - { - // n_Ti47_to_Ti48_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ti47_to_Ti48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ti47_to_Ti48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ti47_to_Ti48_reaclib) = drate_dT; - } - } - - { - // p_Ti47_to_V48_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ti47); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti47); - } -#endif - rate_p_Ti47_to_V48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ti47_to_V48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ti47_to_V48_reaclib) = drate_dT; - } - } - - { - // He4_Ti47_to_Cr51_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ti47); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti47); - } -#endif - rate_He4_Ti47_to_Cr51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti47_to_Cr51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti47_to_Cr51_reaclib) = drate_dT; - } - } - - { - // n_Ti48_to_Ti49_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ti48_to_Ti49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ti48_to_Ti49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ti48_to_Ti49_reaclib) = drate_dT; - } - } - - { - // p_Ti48_to_V49_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ti48); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti48); - } -#endif - rate_p_Ti48_to_V49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ti48_to_V49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ti48_to_V49_reaclib) = drate_dT; - } - } - - { - // He4_Ti48_to_Cr52_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ti48); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti48); - } -#endif - rate_He4_Ti48_to_Cr52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti48_to_Cr52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti48_to_Cr52_reaclib) = drate_dT; - } - } - - { - // n_Ti49_to_Ti50_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ti49_to_Ti50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ti49_to_Ti50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ti49_to_Ti50_reaclib) = drate_dT; - } - } - - { - // p_Ti49_to_V50_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ti49); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti49); - } -#endif - rate_p_Ti49_to_V50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ti49_to_V50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ti49_to_V50_reaclib) = drate_dT; - } - } - - { - // He4_Ti49_to_Cr53_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ti49); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti49); - } -#endif - rate_He4_Ti49_to_Cr53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti49_to_Cr53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti49_to_Cr53_reaclib) = drate_dT; - } - } - - { - // n_Ti50_to_Ti51_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ti50_to_Ti51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ti50_to_Ti51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ti50_to_Ti51_reaclib) = drate_dT; - } - } - - { - // p_Ti50_to_V51_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ti50); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti50); - } -#endif - rate_p_Ti50_to_V51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ti50_to_V51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ti50_to_V51_reaclib) = drate_dT; - } - } - - { - // He4_Ti50_to_Cr54_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ti50); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti50); - } -#endif - rate_He4_Ti50_to_Cr54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti50_to_Cr54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti50_to_Cr54_reaclib) = drate_dT; - } - } - - { - // p_Ti51_to_V52_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ti51); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti51); - } -#endif - rate_p_Ti51_to_V52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ti51_to_V52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ti51_to_V52_reaclib) = drate_dT; - } - } - - { - // n_V46_to_V47_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_V46_to_V47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_V46_to_V47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_V46_to_V47_reaclib) = drate_dT; - } - } - - { - // He4_V46_to_Mn50_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_V46); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V46); - } -#endif - rate_He4_V46_to_Mn50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_V46_to_Mn50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_V46_to_Mn50_reaclib) = drate_dT; - } - } - - { - // n_V47_to_V48_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_V47_to_V48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_V47_to_V48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_V47_to_V48_reaclib) = drate_dT; - } - } - - { - // p_V47_to_Cr48_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_V47); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V47); - } -#endif - rate_p_V47_to_Cr48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_V47_to_Cr48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V47_to_Cr48_reaclib) = drate_dT; - } - } - - { - // He4_V47_to_Mn51_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_V47); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V47); - } -#endif - rate_He4_V47_to_Mn51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_V47_to_Mn51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_V47_to_Mn51_reaclib) = drate_dT; - } - } - - { - // n_V48_to_V49_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_V48_to_V49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_V48_to_V49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_V48_to_V49_reaclib) = drate_dT; - } - } - - { - // p_V48_to_Cr49_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_V48); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V48); - } -#endif - rate_p_V48_to_Cr49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_V48_to_Cr49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V48_to_Cr49_reaclib) = drate_dT; - } - } - - { - // He4_V48_to_Mn52_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_V48); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V48); - } -#endif - rate_He4_V48_to_Mn52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_V48_to_Mn52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_V48_to_Mn52_reaclib) = drate_dT; - } - } - - { - // n_V49_to_V50_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_V49_to_V50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_V49_to_V50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_V49_to_V50_reaclib) = drate_dT; - } - } - - { - // p_V49_to_Cr50_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_V49); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V49); - } -#endif - rate_p_V49_to_Cr50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_V49_to_Cr50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V49_to_Cr50_reaclib) = drate_dT; - } - } - - { - // He4_V49_to_Mn53_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_V49); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V49); - } -#endif - rate_He4_V49_to_Mn53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_V49_to_Mn53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_V49_to_Mn53_reaclib) = drate_dT; - } - } - - { - // n_V50_to_V51_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_V50_to_V51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_V50_to_V51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_V50_to_V51_reaclib) = drate_dT; - } - } - - { - // p_V50_to_Cr51_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_V50); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V50); - } -#endif - rate_p_V50_to_Cr51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_V50_to_Cr51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V50_to_Cr51_reaclib) = drate_dT; - } - } - - { - // He4_V50_to_Mn54_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_V50); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V50); - } -#endif - rate_He4_V50_to_Mn54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_V50_to_Mn54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_V50_to_Mn54_reaclib) = drate_dT; - } - } - - { - // n_V51_to_V52_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_V51_to_V52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_V51_to_V52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_V51_to_V52_reaclib) = drate_dT; - } - } - - { - // p_V51_to_Cr52_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_V51); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V51); - } -#endif - rate_p_V51_to_Cr52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_V51_to_Cr52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V51_to_Cr52_reaclib) = drate_dT; - } - } - - { - // He4_V51_to_Mn55_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_V51); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V51); - } -#endif - rate_He4_V51_to_Mn55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_V51_to_Mn55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_V51_to_Mn55_reaclib) = drate_dT; - } - } - - { - // p_V52_to_Cr53_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_V52); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V52); - } -#endif - rate_p_V52_to_Cr53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_V52_to_Cr53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V52_to_Cr53_reaclib) = drate_dT; - } - } - - { - // n_Cr48_to_Cr49_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cr48_to_Cr49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cr48_to_Cr49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cr48_to_Cr49_reaclib) = drate_dT; - } - } - - { - // He4_Cr48_to_Fe52_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cr48); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr48); - } -#endif - rate_He4_Cr48_to_Fe52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr48_to_Fe52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_Fe52_reaclib) = drate_dT; - } - } - - { - // n_Cr49_to_Cr50_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cr49_to_Cr50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cr49_to_Cr50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cr49_to_Cr50_reaclib) = drate_dT; - } - } - - { - // p_Cr49_to_Mn50_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cr49); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr49); - } -#endif - rate_p_Cr49_to_Mn50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cr49_to_Mn50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cr49_to_Mn50_reaclib) = drate_dT; - } - } - - { - // He4_Cr49_to_Fe53_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cr49); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr49); - } -#endif - rate_He4_Cr49_to_Fe53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr49_to_Fe53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr49_to_Fe53_reaclib) = drate_dT; - } - } - - { - // n_Cr50_to_Cr51_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cr50_to_Cr51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cr50_to_Cr51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cr50_to_Cr51_reaclib) = drate_dT; - } - } - - { - // p_Cr50_to_Mn51_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cr50); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr50); - } -#endif - rate_p_Cr50_to_Mn51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cr50_to_Mn51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cr50_to_Mn51_reaclib) = drate_dT; - } - } - - { - // He4_Cr50_to_Fe54_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cr50); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr50); - } -#endif - rate_He4_Cr50_to_Fe54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr50_to_Fe54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr50_to_Fe54_reaclib) = drate_dT; - } - } - - { - // n_Cr51_to_Cr52_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cr51_to_Cr52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cr51_to_Cr52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cr51_to_Cr52_reaclib) = drate_dT; - } - } - - { - // p_Cr51_to_Mn52_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cr51); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr51); - } -#endif - rate_p_Cr51_to_Mn52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cr51_to_Mn52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cr51_to_Mn52_reaclib) = drate_dT; - } - } - - { - // He4_Cr51_to_Fe55_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cr51); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr51); - } -#endif - rate_He4_Cr51_to_Fe55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr51_to_Fe55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr51_to_Fe55_reaclib) = drate_dT; - } - } - - { - // n_Cr52_to_Cr53_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cr52_to_Cr53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cr52_to_Cr53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cr52_to_Cr53_reaclib) = drate_dT; - } - } - - { - // p_Cr52_to_Mn53_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cr52); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr52); - } -#endif - rate_p_Cr52_to_Mn53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cr52_to_Mn53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cr52_to_Mn53_reaclib) = drate_dT; - } - } - - { - // He4_Cr52_to_Fe56_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cr52); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr52); - } -#endif - rate_He4_Cr52_to_Fe56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr52_to_Fe56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr52_to_Fe56_reaclib) = drate_dT; - } - } - - { - // n_Cr53_to_Cr54_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cr53_to_Cr54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cr53_to_Cr54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cr53_to_Cr54_reaclib) = drate_dT; - } - } - - { - // p_Cr53_to_Mn54_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cr53); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr53); - } -#endif - rate_p_Cr53_to_Mn54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cr53_to_Mn54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cr53_to_Mn54_reaclib) = drate_dT; - } - } - - { - // He4_Cr53_to_Fe57_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cr53); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr53); - } -#endif - rate_He4_Cr53_to_Fe57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr53_to_Fe57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr53_to_Fe57_reaclib) = drate_dT; - } - } - - { - // p_Cr54_to_Mn55_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cr54); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr54); - } -#endif - rate_p_Cr54_to_Mn55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cr54_to_Mn55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cr54_to_Mn55_reaclib) = drate_dT; - } - } - - { - // He4_Cr54_to_Fe58_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cr54); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr54); - } -#endif - rate_He4_Cr54_to_Fe58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr54_to_Fe58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr54_to_Fe58_reaclib) = drate_dT; - } - } - - { - // n_Mn50_to_Mn51_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Mn50_to_Mn51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Mn50_to_Mn51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Mn50_to_Mn51_reaclib) = drate_dT; - } - } - - { - // He4_Mn50_to_Co54_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mn50); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn50); - } -#endif - rate_He4_Mn50_to_Co54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mn50_to_Co54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mn50_to_Co54_reaclib) = drate_dT; - } - } - - { - // n_Mn51_to_Mn52_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Mn51_to_Mn52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Mn51_to_Mn52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Mn51_to_Mn52_reaclib) = drate_dT; - } - } - - { - // p_Mn51_to_Fe52_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Mn51); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn51); - } -#endif - rate_p_Mn51_to_Fe52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Mn51_to_Fe52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn51_to_Fe52_reaclib) = drate_dT; - } - } - - { - // He4_Mn51_to_Co55_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mn51); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn51); - } -#endif - rate_He4_Mn51_to_Co55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mn51_to_Co55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mn51_to_Co55_reaclib) = drate_dT; - } - } - - { - // n_Mn52_to_Mn53_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Mn52_to_Mn53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Mn52_to_Mn53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Mn52_to_Mn53_reaclib) = drate_dT; - } - } - - { - // p_Mn52_to_Fe53_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Mn52); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn52); - } -#endif - rate_p_Mn52_to_Fe53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Mn52_to_Fe53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn52_to_Fe53_reaclib) = drate_dT; - } - } - - { - // He4_Mn52_to_Co56_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mn52); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn52); - } -#endif - rate_He4_Mn52_to_Co56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mn52_to_Co56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mn52_to_Co56_reaclib) = drate_dT; - } - } - - { - // n_Mn53_to_Mn54_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Mn53_to_Mn54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Mn53_to_Mn54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Mn53_to_Mn54_reaclib) = drate_dT; - } - } - - { - // p_Mn53_to_Fe54_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Mn53); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn53); - } -#endif - rate_p_Mn53_to_Fe54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Mn53_to_Fe54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn53_to_Fe54_reaclib) = drate_dT; - } - } - - { - // He4_Mn53_to_Co57_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mn53); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn53); - } -#endif - rate_He4_Mn53_to_Co57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mn53_to_Co57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mn53_to_Co57_reaclib) = drate_dT; - } - } - - { - // n_Mn54_to_Mn55_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Mn54_to_Mn55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Mn54_to_Mn55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Mn54_to_Mn55_reaclib) = drate_dT; - } - } - - { - // p_Mn54_to_Fe55_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Mn54); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn54); - } -#endif - rate_p_Mn54_to_Fe55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Mn54_to_Fe55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn54_to_Fe55_reaclib) = drate_dT; - } - } - - { - // He4_Mn54_to_Co58_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mn54); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn54); - } -#endif - rate_He4_Mn54_to_Co58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mn54_to_Co58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mn54_to_Co58_reaclib) = drate_dT; - } - } - - { - // p_Mn55_to_Fe56_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Mn55); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn55); - } -#endif - rate_p_Mn55_to_Fe56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Mn55_to_Fe56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn55_to_Fe56_reaclib) = drate_dT; - } - } - - { - // He4_Mn55_to_Co59_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mn55); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn55); - } -#endif - rate_He4_Mn55_to_Co59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mn55_to_Co59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mn55_to_Co59_reaclib) = drate_dT; - } - } - - { - // n_Fe52_to_Fe53_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Fe52_to_Fe53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Fe52_to_Fe53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Fe52_to_Fe53_reaclib) = drate_dT; - } - } - - { - // p_Fe52_to_Co53_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Fe52); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe52); - } -#endif - rate_p_Fe52_to_Co53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Fe52_to_Co53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Fe52_to_Co53_reaclib) = drate_dT; - } - } - - { - // He4_Fe52_to_Ni56_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Fe52); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe52); - } -#endif - rate_He4_Fe52_to_Ni56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe52_to_Ni56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_Ni56_reaclib) = drate_dT; - } - } - - { - // n_Fe53_to_Fe54_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Fe53_to_Fe54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Fe53_to_Fe54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Fe53_to_Fe54_reaclib) = drate_dT; - } - } - - { - // p_Fe53_to_Co54_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Fe53); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe53); - } -#endif - rate_p_Fe53_to_Co54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Fe53_to_Co54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Fe53_to_Co54_reaclib) = drate_dT; - } - } - - { - // He4_Fe53_to_Ni57_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Fe53); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe53); - } -#endif - rate_He4_Fe53_to_Ni57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe53_to_Ni57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe53_to_Ni57_reaclib) = drate_dT; - } - } - - { - // n_Fe54_to_Fe55_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Fe54_to_Fe55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Fe54_to_Fe55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Fe54_to_Fe55_reaclib) = drate_dT; - } - } - - { - // p_Fe54_to_Co55_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Fe54); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe54); - } -#endif - rate_p_Fe54_to_Co55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Fe54_to_Co55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Fe54_to_Co55_reaclib) = drate_dT; - } - } - - { - // He4_Fe54_to_Ni58_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Fe54); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe54); - } -#endif - rate_He4_Fe54_to_Ni58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe54_to_Ni58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe54_to_Ni58_reaclib) = drate_dT; - } - } - - { - // n_Fe55_to_Fe56_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Fe55_to_Fe56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Fe55_to_Fe56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Fe55_to_Fe56_reaclib) = drate_dT; - } - } - - { - // p_Fe55_to_Co56_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Fe55); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe55); - } -#endif - rate_p_Fe55_to_Co56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Fe55_to_Co56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Fe55_to_Co56_reaclib) = drate_dT; - } - } - - { - // He4_Fe55_to_Ni59_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Fe55); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe55); - } -#endif - rate_He4_Fe55_to_Ni59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe55_to_Ni59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe55_to_Ni59_reaclib) = drate_dT; - } - } - - { - // n_Fe56_to_Fe57_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Fe56_to_Fe57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Fe56_to_Fe57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Fe56_to_Fe57_reaclib) = drate_dT; - } - } - - { - // p_Fe56_to_Co57_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Fe56); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe56); - } -#endif - rate_p_Fe56_to_Co57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Fe56_to_Co57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Fe56_to_Co57_reaclib) = drate_dT; - } - } - - { - // He4_Fe56_to_Ni60_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Fe56); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe56); - } -#endif - rate_He4_Fe56_to_Ni60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe56_to_Ni60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe56_to_Ni60_reaclib) = drate_dT; - } - } - - { - // n_Fe57_to_Fe58_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Fe57_to_Fe58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Fe57_to_Fe58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Fe57_to_Fe58_reaclib) = drate_dT; - } - } - - { - // p_Fe57_to_Co58_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Fe57); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe57); - } -#endif - rate_p_Fe57_to_Co58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Fe57_to_Co58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Fe57_to_Co58_reaclib) = drate_dT; - } - } - - { - // He4_Fe57_to_Ni61_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Fe57); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe57); - } -#endif - rate_He4_Fe57_to_Ni61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe57_to_Ni61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe57_to_Ni61_reaclib) = drate_dT; - } - } - - { - // p_Fe58_to_Co59_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Fe58); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe58); - } -#endif - rate_p_Fe58_to_Co59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Fe58_to_Co59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Fe58_to_Co59_reaclib) = drate_dT; - } - } - - { - // He4_Fe58_to_Ni62_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Fe58); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe58); - } -#endif - rate_He4_Fe58_to_Ni62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe58_to_Ni62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe58_to_Ni62_reaclib) = drate_dT; - } - } - - { - // n_Co53_to_Co54_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Co53_to_Co54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Co53_to_Co54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Co53_to_Co54_reaclib) = drate_dT; - } - } - - { - // He4_Co53_to_Cu57_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Co53); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co53); - } -#endif - rate_He4_Co53_to_Cu57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Co53_to_Cu57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Co53_to_Cu57_reaclib) = drate_dT; - } - } - - { - // n_Co54_to_Co55_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Co54_to_Co55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Co54_to_Co55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Co54_to_Co55_reaclib) = drate_dT; - } - } - - { - // He4_Co54_to_Cu58_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Co54); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co54); - } -#endif - rate_He4_Co54_to_Cu58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Co54_to_Cu58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Co54_to_Cu58_reaclib) = drate_dT; - } - } - - { - // n_Co55_to_Co56_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Co55_to_Co56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Co55_to_Co56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Co55_to_Co56_reaclib) = drate_dT; - } - } - - { - // p_Co55_to_Ni56_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Co55); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co55); - } -#endif - rate_p_Co55_to_Ni56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Co55_to_Ni56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co55_to_Ni56_reaclib) = drate_dT; - } - } - - { - // He4_Co55_to_Cu59_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Co55); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co55); - } -#endif - rate_He4_Co55_to_Cu59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Co55_to_Cu59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Co55_to_Cu59_reaclib) = drate_dT; - } - } - - { - // n_Co56_to_Co57_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Co56_to_Co57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Co56_to_Co57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Co56_to_Co57_reaclib) = drate_dT; - } - } - - { - // p_Co56_to_Ni57_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Co56); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co56); - } -#endif - rate_p_Co56_to_Ni57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Co56_to_Ni57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co56_to_Ni57_reaclib) = drate_dT; - } - } - - { - // He4_Co56_to_Cu60_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Co56); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co56); - } -#endif - rate_He4_Co56_to_Cu60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Co56_to_Cu60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Co56_to_Cu60_reaclib) = drate_dT; - } - } - - { - // n_Co57_to_Co58_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Co57_to_Co58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Co57_to_Co58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Co57_to_Co58_reaclib) = drate_dT; - } - } - - { - // p_Co57_to_Ni58_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Co57); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co57); - } -#endif - rate_p_Co57_to_Ni58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Co57_to_Ni58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co57_to_Ni58_reaclib) = drate_dT; - } - } - - { - // He4_Co57_to_Cu61_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Co57); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co57); - } -#endif - rate_He4_Co57_to_Cu61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Co57_to_Cu61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Co57_to_Cu61_reaclib) = drate_dT; - } - } - - { - // n_Co58_to_Co59_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Co58_to_Co59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Co58_to_Co59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Co58_to_Co59_reaclib) = drate_dT; - } - } - - { - // p_Co58_to_Ni59_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Co58); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co58); - } -#endif - rate_p_Co58_to_Ni59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Co58_to_Ni59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co58_to_Ni59_reaclib) = drate_dT; - } - } - - { - // He4_Co58_to_Cu62_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Co58); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co58); - } -#endif - rate_He4_Co58_to_Cu62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Co58_to_Cu62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Co58_to_Cu62_reaclib) = drate_dT; - } - } - - { - // p_Co59_to_Ni60_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Co59); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co59); - } -#endif - rate_p_Co59_to_Ni60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Co59_to_Ni60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co59_to_Ni60_reaclib) = drate_dT; - } - } - - { - // He4_Co59_to_Cu63_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Co59); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co59); - } -#endif - rate_He4_Co59_to_Cu63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Co59_to_Cu63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Co59_to_Cu63_reaclib) = drate_dT; - } - } - - { - // n_Ni56_to_Ni57_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ni56_to_Ni57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ni56_to_Ni57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ni56_to_Ni57_reaclib) = drate_dT; - } - } - - { - // p_Ni56_to_Cu57_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ni56); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni56); - } -#endif - rate_p_Ni56_to_Cu57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ni56_to_Cu57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni56_to_Cu57_reaclib) = drate_dT; - } - } - - { - // He4_Ni56_to_Zn60_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ni56); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni56); - } -#endif - rate_He4_Ni56_to_Zn60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ni56_to_Zn60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ni56_to_Zn60_reaclib) = drate_dT; - } - } - - { - // n_Ni57_to_Ni58_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ni57_to_Ni58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ni57_to_Ni58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ni57_to_Ni58_reaclib) = drate_dT; - } - } - - { - // p_Ni57_to_Cu58_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ni57); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni57); - } -#endif - rate_p_Ni57_to_Cu58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ni57_to_Cu58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni57_to_Cu58_reaclib) = drate_dT; - } - } - - { - // He4_Ni57_to_Zn61_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ni57); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni57); - } -#endif - rate_He4_Ni57_to_Zn61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ni57_to_Zn61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ni57_to_Zn61_reaclib) = drate_dT; - } - } - - { - // n_Ni58_to_Ni59_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ni58_to_Ni59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ni58_to_Ni59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ni58_to_Ni59_reaclib) = drate_dT; - } - } - - { - // p_Ni58_to_Cu59_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ni58); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni58); - } -#endif - rate_p_Ni58_to_Cu59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ni58_to_Cu59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni58_to_Cu59_reaclib) = drate_dT; - } - } - - { - // He4_Ni58_to_Zn62_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ni58); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni58); - } -#endif - rate_He4_Ni58_to_Zn62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ni58_to_Zn62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ni58_to_Zn62_reaclib) = drate_dT; - } - } - - { - // n_Ni59_to_Ni60_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ni59_to_Ni60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ni59_to_Ni60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ni59_to_Ni60_reaclib) = drate_dT; - } - } - - { - // p_Ni59_to_Cu60_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ni59); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni59); - } -#endif - rate_p_Ni59_to_Cu60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ni59_to_Cu60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni59_to_Cu60_reaclib) = drate_dT; - } - } - - { - // He4_Ni59_to_Zn63_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ni59); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni59); - } -#endif - rate_He4_Ni59_to_Zn63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ni59_to_Zn63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ni59_to_Zn63_reaclib) = drate_dT; - } - } - - { - // n_Ni60_to_Ni61_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ni60_to_Ni61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ni60_to_Ni61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ni60_to_Ni61_reaclib) = drate_dT; - } - } - - { - // p_Ni60_to_Cu61_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ni60); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni60); - } -#endif - rate_p_Ni60_to_Cu61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ni60_to_Cu61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni60_to_Cu61_reaclib) = drate_dT; - } - } - - { - // He4_Ni60_to_Zn64_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ni60); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni60); - } -#endif - rate_He4_Ni60_to_Zn64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ni60_to_Zn64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ni60_to_Zn64_reaclib) = drate_dT; - } - } - - { - // n_Ni61_to_Ni62_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ni61_to_Ni62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ni61_to_Ni62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ni61_to_Ni62_reaclib) = drate_dT; - } - } - - { - // p_Ni61_to_Cu62_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ni61); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni61); - } -#endif - rate_p_Ni61_to_Cu62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ni61_to_Cu62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni61_to_Cu62_reaclib) = drate_dT; - } - } - - { - // He4_Ni61_to_Zn65_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ni61); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni61); - } -#endif - rate_He4_Ni61_to_Zn65_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ni61_to_Zn65_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ni61_to_Zn65_reaclib) = drate_dT; - } - } - - { - // n_Ni62_to_Ni63_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ni62_to_Ni63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ni62_to_Ni63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ni62_to_Ni63_reaclib) = drate_dT; - } - } - - { - // p_Ni62_to_Cu63_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ni62); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni62); - } -#endif - rate_p_Ni62_to_Cu63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ni62_to_Cu63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni62_to_Cu63_reaclib) = drate_dT; - } - } - - { - // He4_Ni62_to_Zn66_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ni62); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni62); - } -#endif - rate_He4_Ni62_to_Zn66_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ni62_to_Zn66_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ni62_to_Zn66_reaclib) = drate_dT; - } - } - - { - // n_Ni63_to_Ni64_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ni63_to_Ni64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ni63_to_Ni64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ni63_to_Ni64_reaclib) = drate_dT; - } - } - - { - // p_Ni63_to_Cu64_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ni63); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni63); - } -#endif - rate_p_Ni63_to_Cu64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ni63_to_Cu64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni63_to_Cu64_reaclib) = drate_dT; - } - } - - { - // p_Ni64_to_Cu65_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ni64); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni64); - } -#endif - rate_p_Ni64_to_Cu65_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ni64_to_Cu65_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni64_to_Cu65_reaclib) = drate_dT; - } - } - - { - // n_Cu57_to_Cu58_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cu57_to_Cu58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cu57_to_Cu58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cu57_to_Cu58_reaclib) = drate_dT; - } - } - - { - // n_Cu58_to_Cu59_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cu58_to_Cu59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cu58_to_Cu59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cu58_to_Cu59_reaclib) = drate_dT; - } - } - - { - // p_Cu58_to_Zn59_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cu58); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu58); - } -#endif - rate_p_Cu58_to_Zn59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cu58_to_Zn59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cu58_to_Zn59_reaclib) = drate_dT; - } - } - - { - // He4_Cu58_to_Ga62_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cu58); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu58); - } -#endif - rate_He4_Cu58_to_Ga62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cu58_to_Ga62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cu58_to_Ga62_reaclib) = drate_dT; - } - } - - { - // n_Cu59_to_Cu60_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cu59_to_Cu60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cu59_to_Cu60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cu59_to_Cu60_reaclib) = drate_dT; - } - } - - { - // p_Cu59_to_Zn60_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cu59); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu59); - } -#endif - rate_p_Cu59_to_Zn60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cu59_to_Zn60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cu59_to_Zn60_reaclib) = drate_dT; - } - } - - { - // He4_Cu59_to_Ga63_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cu59); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu59); - } -#endif - rate_He4_Cu59_to_Ga63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cu59_to_Ga63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cu59_to_Ga63_reaclib) = drate_dT; - } - } - - { - // n_Cu60_to_Cu61_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cu60_to_Cu61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cu60_to_Cu61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cu60_to_Cu61_reaclib) = drate_dT; - } - } - - { - // p_Cu60_to_Zn61_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cu60); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu60); - } -#endif - rate_p_Cu60_to_Zn61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cu60_to_Zn61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cu60_to_Zn61_reaclib) = drate_dT; - } - } - - { - // He4_Cu60_to_Ga64_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cu60); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu60); - } -#endif - rate_He4_Cu60_to_Ga64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cu60_to_Ga64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cu60_to_Ga64_reaclib) = drate_dT; - } - } - - { - // n_Cu61_to_Cu62_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cu61_to_Cu62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cu61_to_Cu62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cu61_to_Cu62_reaclib) = drate_dT; - } - } - - { - // p_Cu61_to_Zn62_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cu61); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu61); - } -#endif - rate_p_Cu61_to_Zn62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cu61_to_Zn62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cu61_to_Zn62_reaclib) = drate_dT; - } - } - - { - // n_Cu62_to_Cu63_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cu62_to_Cu63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cu62_to_Cu63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cu62_to_Cu63_reaclib) = drate_dT; - } - } - - { - // p_Cu62_to_Zn63_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cu62); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu62); - } -#endif - rate_p_Cu62_to_Zn63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cu62_to_Zn63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cu62_to_Zn63_reaclib) = drate_dT; - } - } - - { - // n_Cu63_to_Cu64_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cu63_to_Cu64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cu63_to_Cu64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cu63_to_Cu64_reaclib) = drate_dT; - } - } - - { - // p_Cu63_to_Zn64_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cu63); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu63); - } -#endif - rate_p_Cu63_to_Zn64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cu63_to_Zn64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cu63_to_Zn64_reaclib) = drate_dT; - } - } - - { - // n_Cu64_to_Cu65_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cu64_to_Cu65_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cu64_to_Cu65_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cu64_to_Cu65_reaclib) = drate_dT; - } - } - - { - // p_Cu64_to_Zn65_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cu64); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu64); - } -#endif - rate_p_Cu64_to_Zn65_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cu64_to_Zn65_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cu64_to_Zn65_reaclib) = drate_dT; - } - } - - { - // p_Cu65_to_Zn66_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cu65); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu65); - } -#endif - rate_p_Cu65_to_Zn66_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cu65_to_Zn66_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cu65_to_Zn66_reaclib) = drate_dT; - } - } - - { - // n_Zn59_to_Zn60_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Zn59_to_Zn60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Zn59_to_Zn60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Zn59_to_Zn60_reaclib) = drate_dT; - } - } - - { - // He4_Zn59_to_Ge63_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Zn59); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Zn59); - } -#endif - rate_He4_Zn59_to_Ge63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Zn59_to_Ge63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Zn59_to_Ge63_reaclib) = drate_dT; - } - } - - { - // n_Zn60_to_Zn61_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Zn60_to_Zn61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Zn60_to_Zn61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Zn60_to_Zn61_reaclib) = drate_dT; - } - } - - { - // He4_Zn60_to_Ge64_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Zn60); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Zn60); - } -#endif - rate_He4_Zn60_to_Ge64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Zn60_to_Ge64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Zn60_to_Ge64_reaclib) = drate_dT; - } - } - - { - // n_Zn61_to_Zn62_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Zn61_to_Zn62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Zn61_to_Zn62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Zn61_to_Zn62_reaclib) = drate_dT; - } - } - - { - // p_Zn61_to_Ga62_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Zn61); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn61); - } -#endif - rate_p_Zn61_to_Ga62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Zn61_to_Ga62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Zn61_to_Ga62_reaclib) = drate_dT; - } - } - - { - // n_Zn62_to_Zn63_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Zn62_to_Zn63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Zn62_to_Zn63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Zn62_to_Zn63_reaclib) = drate_dT; - } - } - - { - // p_Zn62_to_Ga63_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Zn62); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn62); - } -#endif - rate_p_Zn62_to_Ga63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Zn62_to_Ga63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Zn62_to_Ga63_reaclib) = drate_dT; - } - } - - { - // n_Zn63_to_Zn64_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Zn63_to_Zn64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Zn63_to_Zn64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Zn63_to_Zn64_reaclib) = drate_dT; - } - } - - { - // p_Zn63_to_Ga64_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Zn63); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn63); - } -#endif - rate_p_Zn63_to_Ga64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Zn63_to_Ga64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Zn63_to_Ga64_reaclib) = drate_dT; - } - } - - { - // n_Zn64_to_Zn65_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Zn64_to_Zn65_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Zn64_to_Zn65_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Zn64_to_Zn65_reaclib) = drate_dT; - } - } - - { - // n_Zn65_to_Zn66_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Zn65_to_Zn66_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Zn65_to_Zn66_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Zn65_to_Zn66_reaclib) = drate_dT; - } - } - - { - // n_Ga62_to_Ga63_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ga62_to_Ga63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ga62_to_Ga63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ga62_to_Ga63_reaclib) = drate_dT; - } - } - - { - // p_Ga62_to_Ge63_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ga62); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ga62); - } -#endif - rate_p_Ga62_to_Ge63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ga62_to_Ge63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ga62_to_Ge63_reaclib) = drate_dT; - } - } - - { - // n_Ga63_to_Ga64_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ga63_to_Ga64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ga63_to_Ga64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ga63_to_Ga64_reaclib) = drate_dT; - } - } - - { - // p_Ga63_to_Ge64_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ga63); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ga63); - } -#endif - rate_p_Ga63_to_Ge64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ga63_to_Ge64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ga63_to_Ge64_reaclib) = drate_dT; - } - } - - { - // n_Ge63_to_Ge64_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ge63_to_Ge64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ge63_to_Ge64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ge63_to_Ge64_reaclib) = drate_dT; - } - } - - { - // d_d_to_n_He3_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_d_d); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_d_d); - } -#endif - rate_d_d_to_n_He3_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_d_d_to_n_He3_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_d_d_to_n_He3_reaclib) = drate_dT; - } - } - - { - // n_He3_to_d_d_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_He3_to_d_d_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_He3_to_d_d_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_He3_to_d_d_reaclib) = drate_dT; - } - } - - { - // d_He3_to_p_He4_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_d_He3); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_d_He3); - } -#endif - rate_d_He3_to_p_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_d_He3_to_p_He4_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_d_He3_to_p_He4_reaclib) = drate_dT; - } - } - - { - // He4_He3_to_p_Li6_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He3_He4); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He3_He4); - } -#endif - rate_He4_He3_to_p_Li6_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_He3_to_p_Li6_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_He3_to_p_Li6_reaclib) = drate_dT; - } - } - - { - // p_He4_to_d_He3_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_He4); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_He4); - } -#endif - rate_p_He4_to_d_He3_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_He4_to_d_He3_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_He4_to_d_He3_reaclib) = drate_dT; - } - } - - { - // He4_He4_to_n_Be7_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_He4); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_He4); - } -#endif - rate_He4_He4_to_n_Be7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_He4_to_n_Be7_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_He4_to_n_Be7_reaclib) = drate_dT; - } - } - - { - // He4_He4_to_p_Li7_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_He4); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_He4); - } -#endif - rate_He4_He4_to_p_Li7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_He4_to_p_Li7_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_He4_to_p_Li7_reaclib) = drate_dT; - } - } - - { - // p_Li6_to_He4_He3_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Li6); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Li6); - } -#endif - rate_p_Li6_to_He4_He3_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Li6_to_He4_He3_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Li6_to_He4_He3_reaclib) = drate_dT; - } - } - - { - // d_Li6_to_n_Be7_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_d_Li6); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_d_Li6); - } -#endif - rate_d_Li6_to_n_Be7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_d_Li6_to_n_Be7_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_d_Li6_to_n_Be7_reaclib) = drate_dT; - } - } - - { - // d_Li6_to_p_Li7_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_d_Li6); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_d_Li6); - } -#endif - rate_d_Li6_to_p_Li7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_d_Li6_to_p_Li7_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_d_Li6_to_p_Li7_reaclib) = drate_dT; - } - } - - { - // He4_Li6_to_p_Be9_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Li6); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Li6); - } -#endif - rate_He4_Li6_to_p_Be9_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Li6_to_p_Be9_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Li6_to_p_Be9_reaclib) = drate_dT; - } - } - - { - // p_Li7_to_n_Be7_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Li7); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Li7); - } -#endif - rate_p_Li7_to_n_Be7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Li7_to_n_Be7_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Li7_to_n_Be7_reaclib) = drate_dT; - } - } - - { - // p_Li7_to_d_Li6_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Li7); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Li7); - } -#endif - rate_p_Li7_to_d_Li6_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Li7_to_d_Li6_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Li7_to_d_Li6_reaclib) = drate_dT; - } - } - - { - // p_Li7_to_He4_He4_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Li7); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Li7); - } -#endif - rate_p_Li7_to_He4_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Li7_to_He4_He4_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Li7_to_He4_He4_reaclib) = drate_dT; - } - } - - { - // He4_Li7_to_n_B10_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Li7); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Li7); - } -#endif - rate_He4_Li7_to_n_B10_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Li7_to_n_B10_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Li7_to_n_B10_reaclib) = drate_dT; - } - } - - { - // n_Be7_to_p_Li7_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Be7_to_p_Li7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Be7_to_p_Li7_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Be7_to_p_Li7_reaclib) = drate_dT; - } - } - - { - // n_Be7_to_d_Li6_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Be7_to_d_Li6_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Be7_to_d_Li6_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Be7_to_d_Li6_reaclib) = drate_dT; - } - } - - { - // n_Be7_to_He4_He4_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Be7_to_He4_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Be7_to_He4_He4_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Be7_to_He4_He4_reaclib) = drate_dT; - } - } - - { - // He4_Be7_to_p_B10_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Be7); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Be7); - } -#endif - rate_He4_Be7_to_p_B10_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Be7_to_p_B10_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Be7_to_p_B10_reaclib) = drate_dT; - } - } - - { - // p_Be9_to_He4_Li6_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Be9); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Be9); - } -#endif - rate_p_Be9_to_He4_Li6_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Be9_to_He4_Li6_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Be9_to_He4_Li6_reaclib) = drate_dT; - } - } - - { - // He4_Be9_to_n_C12_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Be9); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Be9); - } -#endif - rate_He4_Be9_to_n_C12_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Be9_to_n_C12_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Be9_to_n_C12_reaclib) = drate_dT; - } - } - - { - // n_B10_to_He4_Li7_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_B10_to_He4_Li7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_B10_to_He4_Li7_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_B10_to_He4_Li7_reaclib) = drate_dT; - } - } - - { - // p_B10_to_He4_Be7_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_B10); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_B10); - } -#endif - rate_p_B10_to_He4_Be7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_B10_to_He4_Be7_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_B10_to_He4_Be7_reaclib) = drate_dT; - } - } - - { - // He4_B10_to_n_N13_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_B10); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_B10); - } -#endif - rate_He4_B10_to_n_N13_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_B10_to_n_N13_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_B10_to_n_N13_reaclib) = drate_dT; - } - } - - { - // He4_B10_to_p_C13_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_B10); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_B10); - } -#endif - rate_He4_B10_to_p_C13_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_B10_to_p_C13_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_B10_to_p_C13_reaclib) = drate_dT; - } - } - - { - // He4_B11_to_n_N14_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_B11); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_B11); - } -#endif - rate_He4_B11_to_n_N14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_B11_to_n_N14_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_B11_to_n_N14_reaclib) = drate_dT; - } - } - - { - // He4_B11_to_p_C14_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_B11); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_B11); - } -#endif - rate_He4_B11_to_p_C14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_B11_to_p_C14_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_B11_to_p_C14_reaclib) = drate_dT; - } - } - - { - // n_C12_to_He4_Be9_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_C12_to_He4_Be9_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_C12_to_He4_Be9_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_C12_to_He4_Be9_reaclib) = drate_dT; - } - } - - { - // He4_C12_to_n_O15_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_C12); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_C12); - } -#endif - rate_He4_C12_to_n_O15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_C12_to_n_O15_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_C12_to_n_O15_reaclib) = drate_dT; - } - } - - { - // He4_C12_to_p_N15_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_C12); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_C12); - } -#endif - rate_He4_C12_to_p_N15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_C12_to_p_N15_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_C12_to_p_N15_reaclib) = drate_dT; - } - } - - { - // C12_C12_to_n_Mg23_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_C12_C12); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_C12); - } -#endif - rate_C12_C12_to_n_Mg23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_C12_C12_to_n_Mg23_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_C12_to_n_Mg23_reaclib) = drate_dT; - } - } - - { - // C12_C12_to_p_Na23_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_C12_C12); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_C12); - } -#endif - rate_C12_C12_to_p_Na23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib) = drate_dT; - } - } - - { - // C12_C12_to_He4_Ne20_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_C12_C12); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_C12); - } + log_scor = rate_eval.log_screen(k_p_Be7); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Be7); + } #endif - rate_C12_C12_to_He4_Ne20_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib) = drate_dT; + rate_Be7_p_to_B8_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Be7_p_to_B8_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Be7_p_to_B8_reaclib) = drate_dT; + } } - } - { - // p_C13_to_n_N13_reaclib + { + // Be9_p_to_B10_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_C13); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_C13); - } + log_scor = rate_eval.log_screen(k_p_Be9); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Be9); + } #endif - rate_p_C13_to_n_N13_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_C13_to_n_N13_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_C13_to_n_N13_reaclib) = drate_dT; + rate_Be9_p_to_B10_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Be9_p_to_B10_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Be9_p_to_B10_reaclib) = drate_dT; + } } - } - { - // p_C13_to_He4_B10_reaclib + { + // B10_n_to_B11_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_C13); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_C13); - } -#endif - rate_p_C13_to_He4_B10_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_C13_to_He4_B10_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_C13_to_He4_B10_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_B10_n_to_B11_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_B10_n_to_B11_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_B10_n_to_B11_reaclib) = drate_dT; + } } - } - { - // d_C13_to_n_N14_reaclib + { + // B11_p_to_C12_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_d_C13); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_d_C13); - } + log_scor = rate_eval.log_screen(k_p_B11); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_B11); + } #endif - rate_d_C13_to_n_N14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_d_C13_to_n_N14_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_d_C13_to_n_N14_reaclib) = drate_dT; + rate_B11_p_to_C12_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_B11_p_to_C12_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_B11_p_to_C12_reaclib) = drate_dT; + } } - } - { - // He4_C13_to_n_O16_reaclib + { + // C12_n_to_C13_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_C13); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_C13); - } -#endif - rate_He4_C13_to_n_O16_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_C13_to_n_O16_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_C13_to_n_O16_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_C12_n_to_C13_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_n_to_C13_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_n_to_C13_reaclib) = drate_dT; + } } - } - { - // p_C14_to_n_N14_reaclib + { + // C12_p_to_N13_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_C14); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_C14); - } + log_scor = rate_eval.log_screen(k_p_C12); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_C12); + } #endif - rate_p_C14_to_n_N14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_C14_to_n_N14_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_C14_to_n_N14_reaclib) = drate_dT; + rate_C12_p_to_N13_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_p_to_N13_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_p_to_N13_reaclib) = drate_dT; + } } - } - { - // p_C14_to_He4_B11_reaclib + { + // C12_He4_to_O16_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_C14); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_C14); - } + log_scor = rate_eval.log_screen(k_He4_C12); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_C12); + } #endif - rate_p_C14_to_He4_B11_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_C14_to_He4_B11_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_C14_to_He4_B11_reaclib) = drate_dT; + rate_C12_He4_to_O16_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_He4_to_O16_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_He4_to_O16_reaclib) = drate_dT; + } } - } - { - // d_C14_to_n_N15_reaclib + { + // C13_n_to_C14_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_d_C14); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_d_C14); - } -#endif - rate_d_C14_to_n_N15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_d_C14_to_n_N15_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_d_C14_to_n_N15_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_C13_n_to_C14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C13_n_to_C14_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C13_n_to_C14_reaclib) = drate_dT; + } } - } - { - // He4_C14_to_n_O17_reaclib + { + // C13_p_to_N14_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_C14); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_C14); - } + log_scor = rate_eval.log_screen(k_p_C13); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_C13); + } #endif - rate_He4_C14_to_n_O17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_C14_to_n_O17_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_C14_to_n_O17_reaclib) = drate_dT; - } - } - - { - // n_N13_to_p_C13_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_N13_to_p_C13_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_N13_to_p_C13_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_N13_to_p_C13_reaclib) = drate_dT; - } - } - - { - // n_N13_to_He4_B10_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_N13_to_He4_B10_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_N13_to_He4_B10_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_N13_to_He4_B10_reaclib) = drate_dT; + rate_C13_p_to_N14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C13_p_to_N14_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C13_p_to_N14_reaclib) = drate_dT; + } } - } - { - // He4_N13_to_p_O16_reaclib + { + // C14_p_to_N15_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_N13); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_N13); - } + log_scor = rate_eval.log_screen(k_p_C14); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_C14); + } #endif - rate_He4_N13_to_p_O16_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_N13_to_p_O16_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_N13_to_p_O16_reaclib) = drate_dT; - } - } - - { - // n_N14_to_p_C14_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_N14_to_p_C14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_N14_to_p_C14_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_N14_to_p_C14_reaclib) = drate_dT; - } - } - - { - // n_N14_to_d_C13_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_N14_to_d_C13_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_N14_to_d_C13_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_N14_to_d_C13_reaclib) = drate_dT; - } - } - - { - // n_N14_to_He4_B11_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_N14_to_He4_B11_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_N14_to_He4_B11_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_N14_to_He4_B11_reaclib) = drate_dT; + rate_C14_p_to_N15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C14_p_to_N15_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C14_p_to_N15_reaclib) = drate_dT; + } } - } - { - // p_N14_to_n_O14_reaclib + { + // C14_He4_to_O18_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_N14); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_N14); - } + log_scor = rate_eval.log_screen(k_He4_C14); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_C14); + } #endif - rate_p_N14_to_n_O14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_N14_to_n_O14_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_N14_to_n_O14_reaclib) = drate_dT; + rate_C14_He4_to_O18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C14_He4_to_O18_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C14_He4_to_O18_reaclib) = drate_dT; + } } - } - { - // He4_N14_to_n_F17_reaclib + { + // N13_n_to_N14_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_N14); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_N14); - } -#endif - rate_He4_N14_to_n_F17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_N14_to_n_F17_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_N14_to_n_F17_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_N13_n_to_N14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_N13_n_to_N14_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N13_n_to_N14_reaclib) = drate_dT; + } } - } - { - // He4_N14_to_p_O17_reaclib + { + // N13_p_to_O14_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_N14); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_N14); - } + log_scor = rate_eval.log_screen(k_p_N13); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_N13); + } #endif - rate_He4_N14_to_p_O17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_N14_to_p_O17_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_N14_to_p_O17_reaclib) = drate_dT; + rate_N13_p_to_O14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_N13_p_to_O14_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N13_p_to_O14_reaclib) = drate_dT; + } } - } - { - // n_N15_to_d_C14_reaclib + { + // N14_n_to_N15_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_N15_to_d_C14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_N15_to_d_C14_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_N15_to_d_C14_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_N14_n_to_N15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_N14_n_to_N15_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N14_n_to_N15_reaclib) = drate_dT; + } } - } - { - // p_N15_to_n_O15_reaclib + { + // N14_p_to_O15_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_N15); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_N15); - } + log_scor = rate_eval.log_screen(k_p_N14); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_N14); + } #endif - rate_p_N15_to_n_O15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_N15_to_n_O15_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_N15_to_n_O15_reaclib) = drate_dT; + rate_N14_p_to_O15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_N14_p_to_O15_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N14_p_to_O15_reaclib) = drate_dT; + } } - } - { - // p_N15_to_He4_C12_reaclib + { + // N14_He4_to_F18_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_N15); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_N15); - } + log_scor = rate_eval.log_screen(k_He4_N14); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_N14); + } #endif - rate_p_N15_to_He4_C12_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_N15_to_He4_C12_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_N15_to_He4_C12_reaclib) = drate_dT; + rate_N14_He4_to_F18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_N14_He4_to_F18_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N14_He4_to_F18_reaclib) = drate_dT; + } } - } - { - // He4_N15_to_n_F18_reaclib + { + // N15_p_to_O16_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_N15); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_N15); - } + log_scor = rate_eval.log_screen(k_p_N15); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_N15); + } #endif - rate_He4_N15_to_n_F18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_N15_to_n_F18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_N15_to_n_F18_reaclib) = drate_dT; + rate_N15_p_to_O16_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_N15_p_to_O16_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N15_p_to_O16_reaclib) = drate_dT; + } } - } - { - // He4_N15_to_p_O18_reaclib + { + // N15_He4_to_F19_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_N15); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_N15); - } + log_scor = rate_eval.log_screen(k_He4_N15); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_N15); + } #endif - rate_He4_N15_to_p_O18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_N15_to_p_O18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_N15_to_p_O18_reaclib) = drate_dT; + rate_N15_He4_to_F19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_N15_He4_to_F19_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N15_He4_to_F19_reaclib) = drate_dT; + } } - } - { - // n_O14_to_p_N14_reaclib + { + // O14_n_to_O15_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_O14_to_p_N14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_O14_to_p_N14_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_O14_to_p_N14_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_O14_n_to_O15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O14_n_to_O15_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O14_n_to_O15_reaclib) = drate_dT; + } } - } - { - // He4_O14_to_p_F17_reaclib + { + // O14_He4_to_Ne18_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_O14); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_O14); - } + log_scor = rate_eval.log_screen(k_He4_O14); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_O14); + } #endif - rate_He4_O14_to_p_F17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_O14_to_p_F17_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_O14_to_p_F17_reaclib) = drate_dT; - } - } - - { - // n_O15_to_p_N15_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_O15_to_p_N15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_O15_to_p_N15_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_O15_to_p_N15_reaclib) = drate_dT; - } - } - - { - // n_O15_to_He4_C12_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_O15_to_He4_C12_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_O15_to_He4_C12_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_O15_to_He4_C12_reaclib) = drate_dT; + rate_O14_He4_to_Ne18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O14_He4_to_Ne18_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O14_He4_to_Ne18_reaclib) = drate_dT; + } } - } - { - // He4_O15_to_n_Ne18_reaclib + { + // O15_n_to_O16_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_O15); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_O15); - } -#endif - rate_He4_O15_to_n_Ne18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_O15_to_n_Ne18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_O15_to_n_Ne18_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_O15_n_to_O16_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O15_n_to_O16_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O15_n_to_O16_reaclib) = drate_dT; + } } - } - { - // He4_O15_to_p_F18_reaclib + { + // O15_He4_to_Ne19_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_O15); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_O15); - } + log_scor = rate_eval.log_screen(k_He4_O15); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_O15); + } #endif - rate_He4_O15_to_p_F18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_O15_to_p_F18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_O15_to_p_F18_reaclib) = drate_dT; + rate_O15_He4_to_Ne19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O15_He4_to_Ne19_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O15_He4_to_Ne19_reaclib) = drate_dT; + } } - } - { - // n_O16_to_He4_C13_reaclib + { + // O16_n_to_O17_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_O16_to_He4_C13_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_O16_to_He4_C13_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_O16_to_He4_C13_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_O16_n_to_O17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O16_n_to_O17_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_n_to_O17_reaclib) = drate_dT; + } } - } - { - // p_O16_to_He4_N13_reaclib + { + // O16_p_to_F17_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_O16); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_O16); - } + log_scor = rate_eval.log_screen(k_p_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_O16); + } #endif - rate_p_O16_to_He4_N13_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_O16_to_He4_N13_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O16_to_He4_N13_reaclib) = drate_dT; + rate_O16_p_to_F17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O16_p_to_F17_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_p_to_F17_reaclib) = drate_dT; + } } - } - { - // He4_O16_to_n_Ne19_reaclib + { + // O16_He4_to_Ne20_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_O16); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_O16); - } + log_scor = rate_eval.log_screen(k_He4_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_O16); + } #endif - rate_He4_O16_to_n_Ne19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_O16_to_n_Ne19_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_O16_to_n_Ne19_reaclib) = drate_dT; + rate_O16_He4_to_Ne20_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O16_He4_to_Ne20_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_He4_to_Ne20_reaclib) = drate_dT; + } } - } - { - // He4_O16_to_p_F19_reaclib + { + // O17_n_to_O18_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_O16); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_O16); - } -#endif - rate_He4_O16_to_p_F19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_O16_to_p_F19_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_O16_to_p_F19_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_O17_n_to_O18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O17_n_to_O18_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O17_n_to_O18_reaclib) = drate_dT; + } } - } - { - // C12_O16_to_p_Al27_reaclib + { + // O17_p_to_F18_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_C12_O16); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_O16); - } + log_scor = rate_eval.log_screen(k_p_O17); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_O17); + } #endif - rate_C12_O16_to_p_Al27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_C12_O16_to_p_Al27_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_O16_to_p_Al27_reaclib) = drate_dT; + rate_O17_p_to_F18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O17_p_to_F18_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O17_p_to_F18_reaclib) = drate_dT; + } } - } - { - // C12_O16_to_He4_Mg24_reaclib + { + // O17_He4_to_Ne21_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_C12_O16); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_O16); - } + log_scor = rate_eval.log_screen(k_He4_O17); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_O17); + } #endif - rate_C12_O16_to_He4_Mg24_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_C12_O16_to_He4_Mg24_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_O16_to_He4_Mg24_reaclib) = drate_dT; + rate_O17_He4_to_Ne21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O17_He4_to_Ne21_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O17_He4_to_Ne21_reaclib) = drate_dT; + } } - } - { - // O16_O16_to_p_P31_reaclib + { + // O18_p_to_F19_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_O16_O16); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_O16_O16); - } + log_scor = rate_eval.log_screen(k_p_O18); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_O18); + } #endif - rate_O16_O16_to_p_P31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_O16_O16_to_p_P31_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O16_O16_to_p_P31_reaclib) = drate_dT; + rate_O18_p_to_F19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O18_p_to_F19_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O18_p_to_F19_reaclib) = drate_dT; + } } - } - { - // O16_O16_to_He4_Si28_reaclib + { + // O18_He4_to_Ne22_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_O16_O16); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_O16_O16); - } + log_scor = rate_eval.log_screen(k_He4_O18); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_O18); + } #endif - rate_O16_O16_to_He4_Si28_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_O16_O16_to_He4_Si28_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_O16_O16_to_He4_Si28_reaclib) = drate_dT; - } - } - - { - // n_O17_to_He4_C14_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_O17_to_He4_C14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_O17_to_He4_C14_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_O17_to_He4_C14_reaclib) = drate_dT; + rate_O18_He4_to_Ne22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O18_He4_to_Ne22_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O18_He4_to_Ne22_reaclib) = drate_dT; + } } - } - { - // p_O17_to_n_F17_reaclib + { + // F17_n_to_F18_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_O17); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_O17); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_F17_n_to_F18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_F17_n_to_F18_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F17_n_to_F18_reaclib) = drate_dT; + } } -#endif - rate_p_O17_to_n_F17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_O17_to_n_F17_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O17_to_n_F17_reaclib) = drate_dT; - } - } - { - // p_O17_to_He4_N14_reaclib + { + // F17_p_to_Ne18_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_O17); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_O17); - } + log_scor = rate_eval.log_screen(k_p_F17); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_F17); + } #endif - rate_p_O17_to_He4_N14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_O17_to_He4_N14_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O17_to_He4_N14_reaclib) = drate_dT; + rate_F17_p_to_Ne18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_F17_p_to_Ne18_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F17_p_to_Ne18_reaclib) = drate_dT; + } } - } - { - // He4_O17_to_n_Ne20_reaclib + { + // F17_He4_to_Na21_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_O17); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_O17); - } + log_scor = rate_eval.log_screen(k_He4_F17); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_F17); + } #endif - rate_He4_O17_to_n_Ne20_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_O17_to_n_Ne20_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_O17_to_n_Ne20_reaclib) = drate_dT; + rate_F17_He4_to_Na21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_F17_He4_to_Na21_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F17_He4_to_Na21_reaclib) = drate_dT; + } } - } - { - // p_O18_to_n_F18_reaclib + { + // F18_n_to_F19_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_O18); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_O18); - } -#endif - rate_p_O18_to_n_F18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_O18_to_n_F18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O18_to_n_F18_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_F18_n_to_F19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_F18_n_to_F19_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F18_n_to_F19_reaclib) = drate_dT; + } } - } - { - // p_O18_to_He4_N15_reaclib + { + // F18_p_to_Ne19_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_O18); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_O18); - } + log_scor = rate_eval.log_screen(k_p_F18); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_F18); + } #endif - rate_p_O18_to_He4_N15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_O18_to_He4_N15_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_O18_to_He4_N15_reaclib) = drate_dT; + rate_F18_p_to_Ne19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_F18_p_to_Ne19_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F18_p_to_Ne19_reaclib) = drate_dT; + } } - } - { - // He4_O18_to_n_Ne21_reaclib + { + // F18_He4_to_Na22_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_O18); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_O18); - } + log_scor = rate_eval.log_screen(k_He4_F18); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_F18); + } #endif - rate_He4_O18_to_n_Ne21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_O18_to_n_Ne21_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_O18_to_n_Ne21_reaclib) = drate_dT; - } - } - - { - // n_F17_to_p_O17_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_F17_to_p_O17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_F17_to_p_O17_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_F17_to_p_O17_reaclib) = drate_dT; - } - } - - { - // n_F17_to_He4_N14_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_F17_to_He4_N14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_F17_to_He4_N14_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_F17_to_He4_N14_reaclib) = drate_dT; + rate_F18_He4_to_Na22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_F18_He4_to_Na22_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F18_He4_to_Na22_reaclib) = drate_dT; + } } - } - { - // p_F17_to_He4_O14_reaclib + { + // F19_p_to_Ne20_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_F17); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_F17); - } + log_scor = rate_eval.log_screen(k_p_F19); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_F19); + } #endif - rate_p_F17_to_He4_O14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_F17_to_He4_O14_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_F17_to_He4_O14_reaclib) = drate_dT; + rate_F19_p_to_Ne20_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_F19_p_to_Ne20_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F19_p_to_Ne20_reaclib) = drate_dT; + } } - } - { - // He4_F17_to_p_Ne20_reaclib + { + // F19_He4_to_Na23_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_F17); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_F17); - } + log_scor = rate_eval.log_screen(k_He4_F19); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_F19); + } #endif - rate_He4_F17_to_p_Ne20_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_F17_to_p_Ne20_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_F17_to_p_Ne20_reaclib) = drate_dT; + rate_F19_He4_to_Na23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_F19_He4_to_Na23_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F19_He4_to_Na23_reaclib) = drate_dT; + } } - } - { - // n_F18_to_p_O18_reaclib + { + // Ne18_n_to_Ne19_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_F18_to_p_O18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_F18_to_p_O18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_F18_to_p_O18_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ne18_n_to_Ne19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ne18_n_to_Ne19_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne18_n_to_Ne19_reaclib) = drate_dT; + } } - } - { - // n_F18_to_He4_N15_reaclib + { + // Ne19_n_to_Ne20_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_F18_to_He4_N15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_F18_to_He4_N15_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_F18_to_He4_N15_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ne19_n_to_Ne20_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ne19_n_to_Ne20_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne19_n_to_Ne20_reaclib) = drate_dT; + } } - } - { - // p_F18_to_n_Ne18_reaclib + { + // Ne19_He4_to_Mg23_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_F18); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_F18); - } + log_scor = rate_eval.log_screen(k_He4_Ne19); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne19); + } #endif - rate_p_F18_to_n_Ne18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_F18_to_n_Ne18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_F18_to_n_Ne18_reaclib) = drate_dT; + rate_Ne19_He4_to_Mg23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ne19_He4_to_Mg23_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne19_He4_to_Mg23_reaclib) = drate_dT; + } } - } - { - // p_F18_to_He4_O15_reaclib + { + // Ne20_n_to_Ne21_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_F18); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_F18); - } -#endif - rate_p_F18_to_He4_O15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_F18_to_He4_O15_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_F18_to_He4_O15_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ne20_n_to_Ne21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ne20_n_to_Ne21_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne20_n_to_Ne21_reaclib) = drate_dT; + } } - } - { - // He4_F18_to_n_Na21_reaclib + { + // Ne20_p_to_Na21_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_F18); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_F18); - } + log_scor = rate_eval.log_screen(k_p_Ne20); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ne20); + } #endif - rate_He4_F18_to_n_Na21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_F18_to_n_Na21_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_F18_to_n_Na21_reaclib) = drate_dT; + rate_Ne20_p_to_Na21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ne20_p_to_Na21_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne20_p_to_Na21_reaclib) = drate_dT; + } } - } - { - // He4_F18_to_p_Ne21_reaclib + { + // Ne20_He4_to_Mg24_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_F18); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_F18); - } + log_scor = rate_eval.log_screen(k_He4_Ne20); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne20); + } #endif - rate_He4_F18_to_p_Ne21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_F18_to_p_Ne21_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_F18_to_p_Ne21_reaclib) = drate_dT; + rate_Ne20_He4_to_Mg24_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ne20_He4_to_Mg24_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne20_He4_to_Mg24_reaclib) = drate_dT; + } } - } - { - // p_F19_to_n_Ne19_reaclib + { + // Ne21_n_to_Ne22_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_F19); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_F19); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ne21_n_to_Ne22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ne21_n_to_Ne22_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne21_n_to_Ne22_reaclib) = drate_dT; + } } -#endif - rate_p_F19_to_n_Ne19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_F19_to_n_Ne19_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_F19_to_n_Ne19_reaclib) = drate_dT; - } - } - { - // p_F19_to_He4_O16_reaclib + { + // Ne21_p_to_Na22_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_F19); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_F19); - } + log_scor = rate_eval.log_screen(k_p_Ne21); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ne21); + } #endif - rate_p_F19_to_He4_O16_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_F19_to_He4_O16_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_F19_to_He4_O16_reaclib) = drate_dT; + rate_Ne21_p_to_Na22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ne21_p_to_Na22_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne21_p_to_Na22_reaclib) = drate_dT; + } } - } - { - // He4_F19_to_n_Na22_reaclib + { + // Ne21_He4_to_Mg25_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_F19); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_F19); - } + log_scor = rate_eval.log_screen(k_He4_Ne21); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne21); + } #endif - rate_He4_F19_to_n_Na22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_F19_to_n_Na22_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_F19_to_n_Na22_reaclib) = drate_dT; + rate_Ne21_He4_to_Mg25_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ne21_He4_to_Mg25_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne21_He4_to_Mg25_reaclib) = drate_dT; + } } - } - { - // He4_F19_to_p_Ne22_reaclib + { + // Ne22_p_to_Na23_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_F19); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_F19); - } + log_scor = rate_eval.log_screen(k_p_Ne22); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ne22); + } #endif - rate_He4_F19_to_p_Ne22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_F19_to_p_Ne22_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_F19_to_p_Ne22_reaclib) = drate_dT; - } - } - - { - // n_Ne18_to_p_F18_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ne18_to_p_F18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ne18_to_p_F18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ne18_to_p_F18_reaclib) = drate_dT; - } - } - - { - // n_Ne18_to_He4_O15_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ne18_to_He4_O15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ne18_to_He4_O15_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ne18_to_He4_O15_reaclib) = drate_dT; + rate_Ne22_p_to_Na23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ne22_p_to_Na23_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne22_p_to_Na23_reaclib) = drate_dT; + } } - } - { - // He4_Ne18_to_p_Na21_reaclib + { + // Ne22_He4_to_Mg26_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ne18); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne18); - } + log_scor = rate_eval.log_screen(k_He4_Ne22); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne22); + } #endif - rate_He4_Ne18_to_p_Na21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ne18_to_p_Na21_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ne18_to_p_Na21_reaclib) = drate_dT; - } - } - - { - // n_Ne19_to_p_F19_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ne19_to_p_F19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ne19_to_p_F19_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ne19_to_p_F19_reaclib) = drate_dT; + rate_Ne22_He4_to_Mg26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ne22_He4_to_Mg26_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne22_He4_to_Mg26_reaclib) = drate_dT; + } } - } - { - // n_Ne19_to_He4_O16_reaclib + { + // Na21_n_to_Na22_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ne19_to_He4_O16_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ne19_to_He4_O16_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ne19_to_He4_O16_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Na21_n_to_Na22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Na21_n_to_Na22_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na21_n_to_Na22_reaclib) = drate_dT; + } } - } - { - // He4_Ne19_to_p_Na22_reaclib + { + // Na21_He4_to_Al25_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ne19); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne19); - } + log_scor = rate_eval.log_screen(k_He4_Na21); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Na21); + } #endif - rate_He4_Ne19_to_p_Na22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ne19_to_p_Na22_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ne19_to_p_Na22_reaclib) = drate_dT; + rate_Na21_He4_to_Al25_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Na21_He4_to_Al25_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na21_He4_to_Al25_reaclib) = drate_dT; + } } - } - { - // n_Ne20_to_He4_O17_reaclib + { + // Na22_n_to_Na23_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ne20_to_He4_O17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ne20_to_He4_O17_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ne20_to_He4_O17_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Na22_n_to_Na23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Na22_n_to_Na23_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na22_n_to_Na23_reaclib) = drate_dT; + } } - } - { - // p_Ne20_to_He4_F17_reaclib + { + // Na22_p_to_Mg23_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ne20); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ne20); - } + log_scor = rate_eval.log_screen(k_p_Na22); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Na22); + } #endif - rate_p_Ne20_to_He4_F17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ne20_to_He4_F17_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ne20_to_He4_F17_reaclib) = drate_dT; + rate_Na22_p_to_Mg23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Na22_p_to_Mg23_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na22_p_to_Mg23_reaclib) = drate_dT; + } } - } - { - // He4_Ne20_to_n_Mg23_reaclib + { + // Na22_He4_to_Al26_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ne20); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne20); - } + log_scor = rate_eval.log_screen(k_He4_Na22); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Na22); + } #endif - rate_He4_Ne20_to_n_Mg23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ne20_to_n_Mg23_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_n_Mg23_reaclib) = drate_dT; + rate_Na22_He4_to_Al26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Na22_He4_to_Al26_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na22_He4_to_Al26_reaclib) = drate_dT; + } } - } - { - // He4_Ne20_to_p_Na23_reaclib + { + // Na23_p_to_Mg24_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ne20); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne20); - } + log_scor = rate_eval.log_screen(k_p_Na23); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Na23); + } #endif - rate_He4_Ne20_to_p_Na23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ne20_to_p_Na23_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_p_Na23_reaclib) = drate_dT; + rate_Na23_p_to_Mg24_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Na23_p_to_Mg24_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na23_p_to_Mg24_reaclib) = drate_dT; + } } - } - { - // He4_Ne20_to_C12_C12_reaclib + { + // Na23_He4_to_Al27_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ne20); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne20); - } + log_scor = rate_eval.log_screen(k_He4_Na23); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Na23); + } #endif - rate_He4_Ne20_to_C12_C12_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ne20_to_C12_C12_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ne20_to_C12_C12_reaclib) = drate_dT; + rate_Na23_He4_to_Al27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Na23_He4_to_Al27_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na23_He4_to_Al27_reaclib) = drate_dT; + } } - } - { - // C12_Ne20_to_p_P31_reaclib + { + // Mg23_n_to_Mg24_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_C12_Ne20); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_Ne20); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mg23_n_to_Mg24_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mg23_n_to_Mg24_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg23_n_to_Mg24_reaclib) = drate_dT; + } } -#endif - rate_C12_Ne20_to_p_P31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_C12_Ne20_to_p_P31_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_Ne20_to_p_P31_reaclib) = drate_dT; + + { + // Mg24_n_to_Mg25_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mg24_n_to_Mg25_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mg24_n_to_Mg25_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg24_n_to_Mg25_reaclib) = drate_dT; + } } - } - { - // C12_Ne20_to_He4_Si28_reaclib + { + // Mg24_p_to_Al25_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_C12_Ne20); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_Ne20); + log_scor = rate_eval.log_screen(k_p_Mg24); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mg24); + } +#endif + rate_Mg24_p_to_Al25_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mg24_p_to_Al25_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg24_p_to_Al25_reaclib) = drate_dT; + } } + + { + // Mg24_He4_to_Si28_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Mg24); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg24); + } #endif - rate_C12_Ne20_to_He4_Si28_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_C12_Ne20_to_He4_Si28_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_C12_Ne20_to_He4_Si28_reaclib) = drate_dT; + rate_Mg24_He4_to_Si28_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mg24_He4_to_Si28_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg24_He4_to_Si28_reaclib) = drate_dT; + } } - } - { - // n_Ne21_to_He4_O18_reaclib + { + // Mg25_n_to_Mg26_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ne21_to_He4_O18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ne21_to_He4_O18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ne21_to_He4_O18_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mg25_n_to_Mg26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mg25_n_to_Mg26_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg25_n_to_Mg26_reaclib) = drate_dT; + } } - } - { - // p_Ne21_to_n_Na21_reaclib + { + // Mg25_p_to_Al26_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ne21); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ne21); - } + log_scor = rate_eval.log_screen(k_p_Mg25); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mg25); + } #endif - rate_p_Ne21_to_n_Na21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ne21_to_n_Na21_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ne21_to_n_Na21_reaclib) = drate_dT; + rate_Mg25_p_to_Al26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mg25_p_to_Al26_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg25_p_to_Al26_reaclib) = drate_dT; + } } - } - { - // p_Ne21_to_He4_F18_reaclib + { + // Mg25_He4_to_Si29_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ne21); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ne21); - } + log_scor = rate_eval.log_screen(k_He4_Mg25); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg25); + } #endif - rate_p_Ne21_to_He4_F18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ne21_to_He4_F18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ne21_to_He4_F18_reaclib) = drate_dT; + rate_Mg25_He4_to_Si29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mg25_He4_to_Si29_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg25_He4_to_Si29_reaclib) = drate_dT; + } } - } - { - // He4_Ne21_to_n_Mg24_reaclib + { + // Mg26_p_to_Al27_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ne21); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne21); - } + log_scor = rate_eval.log_screen(k_p_Mg26); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mg26); + } #endif - rate_He4_Ne21_to_n_Mg24_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ne21_to_n_Mg24_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ne21_to_n_Mg24_reaclib) = drate_dT; + rate_Mg26_p_to_Al27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mg26_p_to_Al27_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg26_p_to_Al27_reaclib) = drate_dT; + } } - } - { - // p_Ne22_to_n_Na22_reaclib + { + // Mg26_He4_to_Si30_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ne22); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ne22); - } + log_scor = rate_eval.log_screen(k_He4_Mg26); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg26); + } #endif - rate_p_Ne22_to_n_Na22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ne22_to_n_Na22_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ne22_to_n_Na22_reaclib) = drate_dT; + rate_Mg26_He4_to_Si30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mg26_He4_to_Si30_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg26_He4_to_Si30_reaclib) = drate_dT; + } } - } - { - // p_Ne22_to_He4_F19_reaclib + { + // Al25_n_to_Al26_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ne22); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ne22); - } -#endif - rate_p_Ne22_to_He4_F19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ne22_to_He4_F19_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ne22_to_He4_F19_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Al25_n_to_Al26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Al25_n_to_Al26_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al25_n_to_Al26_reaclib) = drate_dT; + } } - } - { - // He4_Ne22_to_n_Mg25_reaclib + { + // Al25_He4_to_P29_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ne22); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne22); - } + log_scor = rate_eval.log_screen(k_He4_Al25); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Al25); + } #endif - rate_He4_Ne22_to_n_Mg25_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ne22_to_n_Mg25_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ne22_to_n_Mg25_reaclib) = drate_dT; + rate_Al25_He4_to_P29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Al25_He4_to_P29_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al25_He4_to_P29_reaclib) = drate_dT; + } } - } - { - // n_Na21_to_p_Ne21_reaclib + { + // Al26_n_to_Al27_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Na21_to_p_Ne21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Na21_to_p_Ne21_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Na21_to_p_Ne21_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Al26_n_to_Al27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Al26_n_to_Al27_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al26_n_to_Al27_reaclib) = drate_dT; + } } - } - { - // n_Na21_to_He4_F18_reaclib + { + // Al26_He4_to_P30_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Na21_to_He4_F18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Na21_to_He4_F18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Na21_to_He4_F18_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Al26); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Al26); + } +#endif + rate_Al26_He4_to_P30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Al26_He4_to_P30_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al26_He4_to_P30_reaclib) = drate_dT; + } } - } - { - // p_Na21_to_He4_Ne18_reaclib + { + // Al27_p_to_Si28_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Na21); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Na21); - } + log_scor = rate_eval.log_screen(k_p_Al27); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Al27); + } #endif - rate_p_Na21_to_He4_Ne18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Na21_to_He4_Ne18_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Na21_to_He4_Ne18_reaclib) = drate_dT; + rate_Al27_p_to_Si28_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Al27_p_to_Si28_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al27_p_to_Si28_reaclib) = drate_dT; + } } - } - { - // He4_Na21_to_p_Mg24_reaclib + { + // Al27_He4_to_P31_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Na21); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Na21); - } + log_scor = rate_eval.log_screen(k_He4_Al27); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Al27); + } #endif - rate_He4_Na21_to_p_Mg24_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Na21_to_p_Mg24_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Na21_to_p_Mg24_reaclib) = drate_dT; + rate_Al27_He4_to_P31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Al27_He4_to_P31_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al27_He4_to_P31_reaclib) = drate_dT; + } } - } - { - // n_Na22_to_p_Ne22_reaclib + { + // Si28_n_to_Si29_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Na22_to_p_Ne22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Na22_to_p_Ne22_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Na22_to_p_Ne22_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Si28_n_to_Si29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Si28_n_to_Si29_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si28_n_to_Si29_reaclib) = drate_dT; + } } - } - { - // n_Na22_to_He4_F19_reaclib + { + // Si28_p_to_P29_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Na22_to_He4_F19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Na22_to_He4_F19_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Na22_to_He4_F19_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Si28); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Si28); + } +#endif + rate_Si28_p_to_P29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Si28_p_to_P29_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si28_p_to_P29_reaclib) = drate_dT; + } } - } - { - // p_Na22_to_He4_Ne19_reaclib + { + // Si28_He4_to_S32_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Na22); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Na22); - } + log_scor = rate_eval.log_screen(k_He4_Si28); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si28); + } #endif - rate_p_Na22_to_He4_Ne19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Na22_to_He4_Ne19_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Na22_to_He4_Ne19_reaclib) = drate_dT; + rate_Si28_He4_to_S32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Si28_He4_to_S32_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si28_He4_to_S32_reaclib) = drate_dT; + } } - } - { - // He4_Na22_to_n_Al25_reaclib + { + // Si29_n_to_Si30_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Na22); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Na22); - } -#endif - rate_He4_Na22_to_n_Al25_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Na22_to_n_Al25_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Na22_to_n_Al25_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Si29_n_to_Si30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Si29_n_to_Si30_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si29_n_to_Si30_reaclib) = drate_dT; + } } - } - { - // He4_Na22_to_p_Mg25_reaclib + { + // Si29_p_to_P30_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Na22); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Na22); - } + log_scor = rate_eval.log_screen(k_p_Si29); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Si29); + } #endif - rate_He4_Na22_to_p_Mg25_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Na22_to_p_Mg25_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Na22_to_p_Mg25_reaclib) = drate_dT; + rate_Si29_p_to_P30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Si29_p_to_P30_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si29_p_to_P30_reaclib) = drate_dT; + } } - } - { - // p_Na23_to_n_Mg23_reaclib + { + // Si29_He4_to_S33_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Na23); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Na23); - } + log_scor = rate_eval.log_screen(k_He4_Si29); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si29); + } #endif - rate_p_Na23_to_n_Mg23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Na23_to_n_Mg23_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Na23_to_n_Mg23_reaclib) = drate_dT; + rate_Si29_He4_to_S33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Si29_He4_to_S33_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si29_He4_to_S33_reaclib) = drate_dT; + } } - } - { - // p_Na23_to_He4_Ne20_reaclib + { + // Si30_n_to_Si31_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Na23); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Na23); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Si30_n_to_Si31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Si30_n_to_Si31_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si30_n_to_Si31_reaclib) = drate_dT; + } } + + { + // Si30_p_to_P31_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Si30); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Si30); + } #endif - rate_p_Na23_to_He4_Ne20_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Na23_to_He4_Ne20_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Na23_to_He4_Ne20_reaclib) = drate_dT; + rate_Si30_p_to_P31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Si30_p_to_P31_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si30_p_to_P31_reaclib) = drate_dT; + } } - } - { - // p_Na23_to_C12_C12_reaclib + { + // Si30_He4_to_S34_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Na23); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Na23); - } + log_scor = rate_eval.log_screen(k_He4_Si30); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si30); + } #endif - rate_p_Na23_to_C12_C12_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Na23_to_C12_C12_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Na23_to_C12_C12_reaclib) = drate_dT; + rate_Si30_He4_to_S34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Si30_He4_to_S34_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si30_He4_to_S34_reaclib) = drate_dT; + } } - } - { - // He4_Na23_to_n_Al26_reaclib + { + // Si31_n_to_Si32_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Na23); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Na23); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Si31_n_to_Si32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Si31_n_to_Si32_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si31_n_to_Si32_reaclib) = drate_dT; + } } + + { + // Si31_p_to_P32_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Si31); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Si31); + } #endif - rate_He4_Na23_to_n_Al26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Na23_to_n_Al26_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Na23_to_n_Al26_reaclib) = drate_dT; + rate_Si31_p_to_P32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Si31_p_to_P32_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si31_p_to_P32_reaclib) = drate_dT; + } } - } - { - // He4_Na23_to_p_Mg26_reaclib + { + // Si31_He4_to_S35_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Na23); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Na23); - } + log_scor = rate_eval.log_screen(k_He4_Si31); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si31); + } #endif - rate_He4_Na23_to_p_Mg26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Na23_to_p_Mg26_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Na23_to_p_Mg26_reaclib) = drate_dT; + rate_Si31_He4_to_S35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Si31_He4_to_S35_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si31_He4_to_S35_reaclib) = drate_dT; + } } - } - { - // n_Mg23_to_p_Na23_reaclib + { + // Si32_p_to_P33_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Mg23_to_p_Na23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Mg23_to_p_Na23_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Mg23_to_p_Na23_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Si32); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Si32); + } +#endif + rate_Si32_p_to_P33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Si32_p_to_P33_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si32_p_to_P33_reaclib) = drate_dT; + } } - } - { - // n_Mg23_to_He4_Ne20_reaclib + { + // Si32_He4_to_S36_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Mg23_to_He4_Ne20_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Mg23_to_He4_Ne20_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Mg23_to_He4_Ne20_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Si32); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si32); + } +#endif + rate_Si32_He4_to_S36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Si32_He4_to_S36_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si32_He4_to_S36_reaclib) = drate_dT; + } } - } - { - // n_Mg23_to_C12_C12_reaclib + { + // P29_n_to_P30_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Mg23_to_C12_C12_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Mg23_to_C12_C12_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Mg23_to_C12_C12_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_P29_n_to_P30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_P29_n_to_P30_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P29_n_to_P30_reaclib) = drate_dT; + } } - } - { - // He4_Mg23_to_p_Al26_reaclib + { + // P29_He4_to_Cl33_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mg23); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg23); - } + log_scor = rate_eval.log_screen(k_He4_P29); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P29); + } #endif - rate_He4_Mg23_to_p_Al26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mg23_to_p_Al26_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mg23_to_p_Al26_reaclib) = drate_dT; + rate_P29_He4_to_Cl33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_P29_He4_to_Cl33_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P29_He4_to_Cl33_reaclib) = drate_dT; + } } - } - { - // n_Mg24_to_He4_Ne21_reaclib + { + // P30_n_to_P31_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Mg24_to_He4_Ne21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Mg24_to_He4_Ne21_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Mg24_to_He4_Ne21_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_P30_n_to_P31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_P30_n_to_P31_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P30_n_to_P31_reaclib) = drate_dT; + } } - } - { - // p_Mg24_to_He4_Na21_reaclib + { + // P30_He4_to_Cl34_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Mg24); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mg24); - } + log_scor = rate_eval.log_screen(k_He4_P30); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P30); + } #endif - rate_p_Mg24_to_He4_Na21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Mg24_to_He4_Na21_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mg24_to_He4_Na21_reaclib) = drate_dT; + rate_P30_He4_to_Cl34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_P30_He4_to_Cl34_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P30_He4_to_Cl34_reaclib) = drate_dT; + } } - } - { - // He4_Mg24_to_p_Al27_reaclib + { + // P31_n_to_P32_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mg24); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg24); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_P31_n_to_P32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_P31_n_to_P32_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P31_n_to_P32_reaclib) = drate_dT; + } } + + { + // P31_p_to_S32_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_P31); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_P31); + } #endif - rate_He4_Mg24_to_p_Al27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mg24_to_p_Al27_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_p_Al27_reaclib) = drate_dT; + rate_P31_p_to_S32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_P31_p_to_S32_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P31_p_to_S32_reaclib) = drate_dT; + } } - } - { - // He4_Mg24_to_C12_O16_reaclib + { + // P31_He4_to_Cl35_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mg24); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg24); - } + log_scor = rate_eval.log_screen(k_He4_P31); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P31); + } #endif - rate_He4_Mg24_to_C12_O16_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mg24_to_C12_O16_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mg24_to_C12_O16_reaclib) = drate_dT; + rate_P31_He4_to_Cl35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_P31_He4_to_Cl35_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P31_He4_to_Cl35_reaclib) = drate_dT; + } } - } - { - // n_Mg25_to_He4_Ne22_reaclib + { + // P32_n_to_P33_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Mg25_to_He4_Ne22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Mg25_to_He4_Ne22_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Mg25_to_He4_Ne22_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_P32_n_to_P33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_P32_n_to_P33_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P32_n_to_P33_reaclib) = drate_dT; + } } - } - { - // p_Mg25_to_n_Al25_reaclib + { + // P32_p_to_S33_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Mg25); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mg25); - } + log_scor = rate_eval.log_screen(k_p_P32); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_P32); + } #endif - rate_p_Mg25_to_n_Al25_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Mg25_to_n_Al25_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mg25_to_n_Al25_reaclib) = drate_dT; + rate_P32_p_to_S33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_P32_p_to_S33_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P32_p_to_S33_reaclib) = drate_dT; + } } - } - { - // p_Mg25_to_He4_Na22_reaclib + { + // P32_He4_to_Cl36_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Mg25); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mg25); - } + log_scor = rate_eval.log_screen(k_He4_P32); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P32); + } #endif - rate_p_Mg25_to_He4_Na22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Mg25_to_He4_Na22_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mg25_to_He4_Na22_reaclib) = drate_dT; + rate_P32_He4_to_Cl36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_P32_He4_to_Cl36_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P32_He4_to_Cl36_reaclib) = drate_dT; + } } - } - { - // He4_Mg25_to_n_Si28_reaclib + { + // P33_p_to_S34_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mg25); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg25); - } + log_scor = rate_eval.log_screen(k_p_P33); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_P33); + } #endif - rate_He4_Mg25_to_n_Si28_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mg25_to_n_Si28_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mg25_to_n_Si28_reaclib) = drate_dT; + rate_P33_p_to_S34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_P33_p_to_S34_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P33_p_to_S34_reaclib) = drate_dT; + } } - } - { - // p_Mg26_to_n_Al26_reaclib + { + // P33_He4_to_Cl37_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Mg26); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mg26); - } + log_scor = rate_eval.log_screen(k_He4_P33); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P33); + } #endif - rate_p_Mg26_to_n_Al26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Mg26_to_n_Al26_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mg26_to_n_Al26_reaclib) = drate_dT; + rate_P33_He4_to_Cl37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_P33_He4_to_Cl37_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P33_He4_to_Cl37_reaclib) = drate_dT; + } } - } - { - // p_Mg26_to_He4_Na23_reaclib + { + // S32_n_to_S33_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Mg26); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mg26); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_S32_n_to_S33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_S32_n_to_S33_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S32_n_to_S33_reaclib) = drate_dT; + } } -#endif - rate_p_Mg26_to_He4_Na23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Mg26_to_He4_Na23_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mg26_to_He4_Na23_reaclib) = drate_dT; - } - } - { - // He4_Mg26_to_n_Si29_reaclib + { + // S32_p_to_Cl33_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mg26); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg26); - } + log_scor = rate_eval.log_screen(k_p_S32); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S32); + } #endif - rate_He4_Mg26_to_n_Si29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mg26_to_n_Si29_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mg26_to_n_Si29_reaclib) = drate_dT; + rate_S32_p_to_Cl33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_S32_p_to_Cl33_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S32_p_to_Cl33_reaclib) = drate_dT; + } } - } - { - // n_Al25_to_p_Mg25_reaclib + { + // S32_He4_to_Ar36_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Al25_to_p_Mg25_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Al25_to_p_Mg25_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Al25_to_p_Mg25_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_S32); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_S32); + } +#endif + rate_S32_He4_to_Ar36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_S32_He4_to_Ar36_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S32_He4_to_Ar36_reaclib) = drate_dT; + } } - } - { - // n_Al25_to_He4_Na22_reaclib + { + // S33_n_to_S34_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Al25_to_He4_Na22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Al25_to_He4_Na22_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Al25_to_He4_Na22_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_S33_n_to_S34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_S33_n_to_S34_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S33_n_to_S34_reaclib) = drate_dT; + } } - } - { - // He4_Al25_to_p_Si28_reaclib + { + // S33_p_to_Cl34_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Al25); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Al25); - } + log_scor = rate_eval.log_screen(k_p_S33); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S33); + } #endif - rate_He4_Al25_to_p_Si28_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Al25_to_p_Si28_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Al25_to_p_Si28_reaclib) = drate_dT; + rate_S33_p_to_Cl34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_S33_p_to_Cl34_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S33_p_to_Cl34_reaclib) = drate_dT; + } } - } - { - // n_Al26_to_p_Mg26_reaclib + { + // S33_He4_to_Ar37_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Al26_to_p_Mg26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Al26_to_p_Mg26_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Al26_to_p_Mg26_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_S33); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_S33); + } +#endif + rate_S33_He4_to_Ar37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_S33_He4_to_Ar37_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S33_He4_to_Ar37_reaclib) = drate_dT; + } } - } - { - // n_Al26_to_He4_Na23_reaclib + { + // S34_n_to_S35_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Al26_to_He4_Na23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Al26_to_He4_Na23_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Al26_to_He4_Na23_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_S34_n_to_S35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_S34_n_to_S35_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S34_n_to_S35_reaclib) = drate_dT; + } } - } - { - // p_Al26_to_He4_Mg23_reaclib + { + // S34_p_to_Cl35_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Al26); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Al26); - } + log_scor = rate_eval.log_screen(k_p_S34); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S34); + } #endif - rate_p_Al26_to_He4_Mg23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Al26_to_He4_Mg23_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Al26_to_He4_Mg23_reaclib) = drate_dT; + rate_S34_p_to_Cl35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_S34_p_to_Cl35_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S34_p_to_Cl35_reaclib) = drate_dT; + } } - } - { - // He4_Al26_to_n_P29_reaclib + { + // S34_He4_to_Ar38_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Al26); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Al26); - } + log_scor = rate_eval.log_screen(k_He4_S34); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_S34); + } #endif - rate_He4_Al26_to_n_P29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Al26_to_n_P29_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Al26_to_n_P29_reaclib) = drate_dT; + rate_S34_He4_to_Ar38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_S34_He4_to_Ar38_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S34_He4_to_Ar38_reaclib) = drate_dT; + } } - } - { - // He4_Al26_to_p_Si29_reaclib + { + // S35_n_to_S36_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Al26); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Al26); - } -#endif - rate_He4_Al26_to_p_Si29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Al26_to_p_Si29_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Al26_to_p_Si29_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_S35_n_to_S36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_S35_n_to_S36_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S35_n_to_S36_reaclib) = drate_dT; + } } - } - { - // p_Al27_to_He4_Mg24_reaclib + { + // S35_p_to_Cl36_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Al27); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Al27); - } + log_scor = rate_eval.log_screen(k_p_S35); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S35); + } #endif - rate_p_Al27_to_He4_Mg24_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Al27_to_He4_Mg24_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Al27_to_He4_Mg24_reaclib) = drate_dT; + rate_S35_p_to_Cl36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_S35_p_to_Cl36_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S35_p_to_Cl36_reaclib) = drate_dT; + } } - } - { - // p_Al27_to_C12_O16_reaclib + { + // S35_He4_to_Ar39_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Al27); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Al27); - } + log_scor = rate_eval.log_screen(k_He4_S35); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_S35); + } #endif - rate_p_Al27_to_C12_O16_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Al27_to_C12_O16_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Al27_to_C12_O16_reaclib) = drate_dT; + rate_S35_He4_to_Ar39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_S35_He4_to_Ar39_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S35_He4_to_Ar39_reaclib) = drate_dT; + } } - } - { - // He4_Al27_to_n_P30_reaclib + { + // S36_p_to_Cl37_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Al27); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Al27); - } + log_scor = rate_eval.log_screen(k_p_S36); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S36); + } #endif - rate_He4_Al27_to_n_P30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Al27_to_n_P30_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Al27_to_n_P30_reaclib) = drate_dT; + rate_S36_p_to_Cl37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_S36_p_to_Cl37_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S36_p_to_Cl37_reaclib) = drate_dT; + } } - } - { - // He4_Al27_to_p_Si30_reaclib + { + // S36_He4_to_Ar40_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Al27); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Al27); - } + log_scor = rate_eval.log_screen(k_He4_S36); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_S36); + } #endif - rate_He4_Al27_to_p_Si30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Al27_to_p_Si30_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Al27_to_p_Si30_reaclib) = drate_dT; + rate_S36_He4_to_Ar40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_S36_He4_to_Ar40_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S36_He4_to_Ar40_reaclib) = drate_dT; + } } - } - { - // n_Si28_to_He4_Mg25_reaclib + { + // Cl33_n_to_Cl34_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Si28_to_He4_Mg25_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Si28_to_He4_Mg25_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Si28_to_He4_Mg25_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl33_n_to_Cl34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cl33_n_to_Cl34_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl33_n_to_Cl34_reaclib) = drate_dT; + } } - } - { - // p_Si28_to_He4_Al25_reaclib + { + // Cl33_He4_to_K37_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Si28); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Si28); - } + log_scor = rate_eval.log_screen(k_He4_Cl33); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl33); + } #endif - rate_p_Si28_to_He4_Al25_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Si28_to_He4_Al25_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Si28_to_He4_Al25_reaclib) = drate_dT; + rate_Cl33_He4_to_K37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cl33_He4_to_K37_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl33_He4_to_K37_reaclib) = drate_dT; + } } - } - { - // He4_Si28_to_p_P31_reaclib + { + // Cl34_n_to_Cl35_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Si28); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si28); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl34_n_to_Cl35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cl34_n_to_Cl35_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl34_n_to_Cl35_reaclib) = drate_dT; + } } + + { + // Cl34_He4_to_K38_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cl34); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl34); + } #endif - rate_He4_Si28_to_p_P31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Si28_to_p_P31_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Si28_to_p_P31_reaclib) = drate_dT; + rate_Cl34_He4_to_K38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cl34_He4_to_K38_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl34_He4_to_K38_reaclib) = drate_dT; + } } - } - { - // He4_Si28_to_C12_Ne20_reaclib + { + // Cl35_n_to_Cl36_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Si28); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si28); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl35_n_to_Cl36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cl35_n_to_Cl36_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl35_n_to_Cl36_reaclib) = drate_dT; + } } + + { + // Cl35_p_to_Ar36_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cl35); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cl35); + } #endif - rate_He4_Si28_to_C12_Ne20_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Si28_to_C12_Ne20_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Si28_to_C12_Ne20_reaclib) = drate_dT; + rate_Cl35_p_to_Ar36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cl35_p_to_Ar36_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl35_p_to_Ar36_reaclib) = drate_dT; + } } - } - { - // He4_Si28_to_O16_O16_reaclib + { + // Cl35_He4_to_K39_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Si28); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si28); - } + log_scor = rate_eval.log_screen(k_He4_Cl35); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl35); + } #endif - rate_He4_Si28_to_O16_O16_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Si28_to_O16_O16_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Si28_to_O16_O16_reaclib) = drate_dT; + rate_Cl35_He4_to_K39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cl35_He4_to_K39_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl35_He4_to_K39_reaclib) = drate_dT; + } } - } - { - // n_Si29_to_He4_Mg26_reaclib + { + // Cl36_n_to_Cl37_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Si29_to_He4_Mg26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Si29_to_He4_Mg26_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Si29_to_He4_Mg26_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl36_n_to_Cl37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cl36_n_to_Cl37_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl36_n_to_Cl37_reaclib) = drate_dT; + } } - } - { - // p_Si29_to_n_P29_reaclib + { + // Cl36_p_to_Ar37_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Si29); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Si29); - } + log_scor = rate_eval.log_screen(k_p_Cl36); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cl36); + } #endif - rate_p_Si29_to_n_P29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Si29_to_n_P29_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Si29_to_n_P29_reaclib) = drate_dT; + rate_Cl36_p_to_Ar37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cl36_p_to_Ar37_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl36_p_to_Ar37_reaclib) = drate_dT; + } } - } - { - // p_Si29_to_He4_Al26_reaclib + { + // Cl36_He4_to_K40_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Si29); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Si29); - } + log_scor = rate_eval.log_screen(k_He4_Cl36); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl36); + } #endif - rate_p_Si29_to_He4_Al26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Si29_to_He4_Al26_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Si29_to_He4_Al26_reaclib) = drate_dT; + rate_Cl36_He4_to_K40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cl36_He4_to_K40_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl36_He4_to_K40_reaclib) = drate_dT; + } } - } - { - // He4_Si29_to_n_S32_reaclib + { + // Cl37_p_to_Ar38_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Si29); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si29); - } + log_scor = rate_eval.log_screen(k_p_Cl37); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cl37); + } #endif - rate_He4_Si29_to_n_S32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Si29_to_n_S32_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Si29_to_n_S32_reaclib) = drate_dT; + rate_Cl37_p_to_Ar38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cl37_p_to_Ar38_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl37_p_to_Ar38_reaclib) = drate_dT; + } } - } - { - // He4_Si29_to_p_P32_reaclib + { + // Cl37_He4_to_K41_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Si29); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si29); - } + log_scor = rate_eval.log_screen(k_He4_Cl37); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl37); + } #endif - rate_He4_Si29_to_p_P32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Si29_to_p_P32_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Si29_to_p_P32_reaclib) = drate_dT; + rate_Cl37_He4_to_K41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cl37_He4_to_K41_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl37_He4_to_K41_reaclib) = drate_dT; + } } - } - { - // p_Si30_to_n_P30_reaclib + { + // Ar36_n_to_Ar37_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Si30); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Si30); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ar36_n_to_Ar37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ar36_n_to_Ar37_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_n_to_Ar37_reaclib) = drate_dT; + } } -#endif - rate_p_Si30_to_n_P30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Si30_to_n_P30_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Si30_to_n_P30_reaclib) = drate_dT; - } - } - { - // p_Si30_to_He4_Al27_reaclib + { + // Ar36_p_to_K37_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Si30); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Si30); - } + log_scor = rate_eval.log_screen(k_p_Ar36); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar36); + } #endif - rate_p_Si30_to_He4_Al27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Si30_to_He4_Al27_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Si30_to_He4_Al27_reaclib) = drate_dT; + rate_Ar36_p_to_K37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ar36_p_to_K37_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_p_to_K37_reaclib) = drate_dT; + } } - } - { - // He4_Si30_to_n_S33_reaclib + { + // Ar36_He4_to_Ca40_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Si30); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si30); - } + log_scor = rate_eval.log_screen(k_He4_Ar36); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ar36); + } #endif - rate_He4_Si30_to_n_S33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Si30_to_n_S33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Si30_to_n_S33_reaclib) = drate_dT; + rate_Ar36_He4_to_Ca40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ar36_He4_to_Ca40_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_He4_to_Ca40_reaclib) = drate_dT; + } } - } - { - // He4_Si30_to_p_P33_reaclib + { + // Ar37_n_to_Ar38_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Si30); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si30); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ar37_n_to_Ar38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ar37_n_to_Ar38_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar37_n_to_Ar38_reaclib) = drate_dT; + } } + + { + // Ar37_p_to_K38_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ar37); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar37); + } #endif - rate_He4_Si30_to_p_P33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Si30_to_p_P33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Si30_to_p_P33_reaclib) = drate_dT; + rate_Ar37_p_to_K38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ar37_p_to_K38_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar37_p_to_K38_reaclib) = drate_dT; + } } - } - { - // p_Si31_to_n_P31_reaclib + { + // Ar37_He4_to_Ca41_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Si31); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Si31); - } + log_scor = rate_eval.log_screen(k_He4_Ar37); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ar37); + } #endif - rate_p_Si31_to_n_P31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Si31_to_n_P31_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Si31_to_n_P31_reaclib) = drate_dT; + rate_Ar37_He4_to_Ca41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ar37_He4_to_Ca41_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar37_He4_to_Ca41_reaclib) = drate_dT; + } } - } - { - // He4_Si31_to_n_S34_reaclib + { + // Ar38_n_to_Ar39_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Si31); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si31); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ar38_n_to_Ar39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ar38_n_to_Ar39_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar38_n_to_Ar39_reaclib) = drate_dT; + } } + + { + // Ar38_p_to_K39_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ar38); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar38); + } #endif - rate_He4_Si31_to_n_S34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Si31_to_n_S34_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Si31_to_n_S34_reaclib) = drate_dT; + rate_Ar38_p_to_K39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ar38_p_to_K39_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar38_p_to_K39_reaclib) = drate_dT; + } } - } - { - // p_Si32_to_n_P32_reaclib + { + // Ar38_He4_to_Ca42_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Si32); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Si32); - } + log_scor = rate_eval.log_screen(k_He4_Ar38); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ar38); + } #endif - rate_p_Si32_to_n_P32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Si32_to_n_P32_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Si32_to_n_P32_reaclib) = drate_dT; + rate_Ar38_He4_to_Ca42_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ar38_He4_to_Ca42_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar38_He4_to_Ca42_reaclib) = drate_dT; + } } - } - { - // He4_Si32_to_n_S35_reaclib + { + // Ar39_n_to_Ar40_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Si32); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si32); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ar39_n_to_Ar40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ar39_n_to_Ar40_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar39_n_to_Ar40_reaclib) = drate_dT; + } } + + { + // Ar39_p_to_K40_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ar39); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar39); + } #endif - rate_He4_Si32_to_n_S35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Si32_to_n_S35_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Si32_to_n_S35_reaclib) = drate_dT; + rate_Ar39_p_to_K40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ar39_p_to_K40_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar39_p_to_K40_reaclib) = drate_dT; + } } - } - { - // n_P29_to_p_Si29_reaclib + { + // Ar39_He4_to_Ca43_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_P29_to_p_Si29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_P29_to_p_Si29_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_P29_to_p_Si29_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ar39); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ar39); + } +#endif + rate_Ar39_He4_to_Ca43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ar39_He4_to_Ca43_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar39_He4_to_Ca43_reaclib) = drate_dT; + } } - } - { - // n_P29_to_He4_Al26_reaclib + { + // Ar40_p_to_K41_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_P29_to_He4_Al26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_P29_to_He4_Al26_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_P29_to_He4_Al26_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ar40); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar40); + } +#endif + rate_Ar40_p_to_K41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ar40_p_to_K41_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar40_p_to_K41_reaclib) = drate_dT; + } } - } - { - // He4_P29_to_p_S32_reaclib + { + // Ar40_He4_to_Ca44_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_P29); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P29); - } + log_scor = rate_eval.log_screen(k_He4_Ar40); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ar40); + } #endif - rate_He4_P29_to_p_S32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_P29_to_p_S32_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_P29_to_p_S32_reaclib) = drate_dT; + rate_Ar40_He4_to_Ca44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ar40_He4_to_Ca44_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar40_He4_to_Ca44_reaclib) = drate_dT; + } } - } - { - // n_P30_to_p_Si30_reaclib + { + // K37_n_to_K38_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_P30_to_p_Si30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_P30_to_p_Si30_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_P30_to_p_Si30_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K37_n_to_K38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K37_n_to_K38_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K37_n_to_K38_reaclib) = drate_dT; + } } - } - { - // n_P30_to_He4_Al27_reaclib + { + // K38_n_to_K39_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_P30_to_He4_Al27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_P30_to_He4_Al27_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_P30_to_He4_Al27_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K38_n_to_K39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K38_n_to_K39_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K38_n_to_K39_reaclib) = drate_dT; + } } - } - { - // He4_P30_to_n_Cl33_reaclib + { + // K39_n_to_K40_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_P30); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P30); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K39_n_to_K40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K39_n_to_K40_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K39_n_to_K40_reaclib) = drate_dT; + } } + + { + // K39_p_to_Ca40_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_K39); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_K39); + } #endif - rate_He4_P30_to_n_Cl33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_P30_to_n_Cl33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_P30_to_n_Cl33_reaclib) = drate_dT; + rate_K39_p_to_Ca40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K39_p_to_Ca40_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K39_p_to_Ca40_reaclib) = drate_dT; + } } - } - { - // He4_P30_to_p_S33_reaclib + { + // K39_He4_to_Sc43_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_P30); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P30); - } + log_scor = rate_eval.log_screen(k_He4_K39); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_K39); + } #endif - rate_He4_P30_to_p_S33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_P30_to_p_S33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_P30_to_p_S33_reaclib) = drate_dT; + rate_K39_He4_to_Sc43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K39_He4_to_Sc43_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K39_He4_to_Sc43_reaclib) = drate_dT; + } } - } - { - // n_P31_to_p_Si31_reaclib + { + // K40_n_to_K41_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_P31_to_p_Si31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_P31_to_p_Si31_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_P31_to_p_Si31_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K40_n_to_K41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K40_n_to_K41_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K40_n_to_K41_reaclib) = drate_dT; + } } - } - { - // p_P31_to_He4_Si28_reaclib + { + // K40_p_to_Ca41_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_P31); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_P31); - } + log_scor = rate_eval.log_screen(k_p_K40); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_K40); + } #endif - rate_p_P31_to_He4_Si28_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_P31_to_He4_Si28_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_P31_to_He4_Si28_reaclib) = drate_dT; + rate_K40_p_to_Ca41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K40_p_to_Ca41_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K40_p_to_Ca41_reaclib) = drate_dT; + } } - } - { - // p_P31_to_C12_Ne20_reaclib + { + // K40_He4_to_Sc44_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_P31); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_P31); - } + log_scor = rate_eval.log_screen(k_He4_K40); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_K40); + } #endif - rate_p_P31_to_C12_Ne20_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_P31_to_C12_Ne20_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_P31_to_C12_Ne20_reaclib) = drate_dT; + rate_K40_He4_to_Sc44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K40_He4_to_Sc44_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K40_He4_to_Sc44_reaclib) = drate_dT; + } } - } - { - // p_P31_to_O16_O16_reaclib + { + // K41_p_to_Ca42_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_P31); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_P31); - } + log_scor = rate_eval.log_screen(k_p_K41); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_K41); + } #endif - rate_p_P31_to_O16_O16_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_P31_to_O16_O16_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_P31_to_O16_O16_reaclib) = drate_dT; + rate_K41_p_to_Ca42_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K41_p_to_Ca42_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K41_p_to_Ca42_reaclib) = drate_dT; + } } - } - { - // He4_P31_to_n_Cl34_reaclib + { + // K41_He4_to_Sc45_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_P31); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P31); - } + log_scor = rate_eval.log_screen(k_He4_K41); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_K41); + } #endif - rate_He4_P31_to_n_Cl34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_P31_to_n_Cl34_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_P31_to_n_Cl34_reaclib) = drate_dT; + rate_K41_He4_to_Sc45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K41_He4_to_Sc45_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K41_He4_to_Sc45_reaclib) = drate_dT; + } } - } - { - // He4_P31_to_p_S34_reaclib + { + // Ca40_n_to_Ca41_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_P31); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P31); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca40_n_to_Ca41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca40_n_to_Ca41_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_n_to_Ca41_reaclib) = drate_dT; + } } + + { + // Ca40_He4_to_Ti44_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ca40); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca40); + } #endif - rate_He4_P31_to_p_S34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_P31_to_p_S34_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_P31_to_p_S34_reaclib) = drate_dT; + rate_Ca40_He4_to_Ti44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca40_He4_to_Ti44_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_He4_to_Ti44_reaclib) = drate_dT; + } } - } - { - // n_P32_to_p_Si32_reaclib + { + // Ca41_n_to_Ca42_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_P32_to_p_Si32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_P32_to_p_Si32_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_P32_to_p_Si32_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca41_n_to_Ca42_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca41_n_to_Ca42_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca41_n_to_Ca42_reaclib) = drate_dT; + } } - } - { - // p_P32_to_n_S32_reaclib + { + // Ca41_He4_to_Ti45_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_P32); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_P32); - } + log_scor = rate_eval.log_screen(k_He4_Ca41); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca41); + } #endif - rate_p_P32_to_n_S32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_P32_to_n_S32_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_P32_to_n_S32_reaclib) = drate_dT; + rate_Ca41_He4_to_Ti45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca41_He4_to_Ti45_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca41_He4_to_Ti45_reaclib) = drate_dT; + } } - } - { - // p_P32_to_He4_Si29_reaclib + { + // Ca42_n_to_Ca43_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_P32); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_P32); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca42_n_to_Ca43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca42_n_to_Ca43_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca42_n_to_Ca43_reaclib) = drate_dT; + } } -#endif - rate_p_P32_to_He4_Si29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_P32_to_He4_Si29_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_P32_to_He4_Si29_reaclib) = drate_dT; - } - } - { - // He4_P32_to_n_Cl35_reaclib + { + // Ca42_p_to_Sc43_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_P32); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P32); - } + log_scor = rate_eval.log_screen(k_p_Ca42); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca42); + } #endif - rate_He4_P32_to_n_Cl35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_P32_to_n_Cl35_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_P32_to_n_Cl35_reaclib) = drate_dT; + rate_Ca42_p_to_Sc43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca42_p_to_Sc43_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca42_p_to_Sc43_reaclib) = drate_dT; + } } - } - { - // He4_P32_to_p_S35_reaclib + { + // Ca42_He4_to_Ti46_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_P32); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P32); - } + log_scor = rate_eval.log_screen(k_He4_Ca42); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca42); + } #endif - rate_He4_P32_to_p_S35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_P32_to_p_S35_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_P32_to_p_S35_reaclib) = drate_dT; + rate_Ca42_He4_to_Ti46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca42_He4_to_Ti46_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca42_He4_to_Ti46_reaclib) = drate_dT; + } } - } - { - // p_P33_to_n_S33_reaclib + { + // Ca43_n_to_Ca44_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_P33); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_P33); - } -#endif - rate_p_P33_to_n_S33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_P33_to_n_S33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_P33_to_n_S33_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca43_n_to_Ca44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca43_n_to_Ca44_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca43_n_to_Ca44_reaclib) = drate_dT; + } } - } - { - // p_P33_to_He4_Si30_reaclib + { + // Ca43_p_to_Sc44_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_P33); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_P33); - } + log_scor = rate_eval.log_screen(k_p_Ca43); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca43); + } #endif - rate_p_P33_to_He4_Si30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_P33_to_He4_Si30_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_P33_to_He4_Si30_reaclib) = drate_dT; + rate_Ca43_p_to_Sc44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca43_p_to_Sc44_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca43_p_to_Sc44_reaclib) = drate_dT; + } } - } - { - // He4_P33_to_n_Cl36_reaclib + { + // Ca43_He4_to_Ti47_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_P33); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P33); - } + log_scor = rate_eval.log_screen(k_He4_Ca43); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca43); + } #endif - rate_He4_P33_to_n_Cl36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_P33_to_n_Cl36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_P33_to_n_Cl36_reaclib) = drate_dT; + rate_Ca43_He4_to_Ti47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca43_He4_to_Ti47_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca43_He4_to_Ti47_reaclib) = drate_dT; + } } - } - { - // He4_P33_to_p_S36_reaclib + { + // Ca44_n_to_Ca45_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_P33); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P33); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca44_n_to_Ca45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca44_n_to_Ca45_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca44_n_to_Ca45_reaclib) = drate_dT; + } } + + { + // Ca44_p_to_Sc45_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ca44); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca44); + } #endif - rate_He4_P33_to_p_S36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_P33_to_p_S36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_P33_to_p_S36_reaclib) = drate_dT; + rate_Ca44_p_to_Sc45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca44_p_to_Sc45_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca44_p_to_Sc45_reaclib) = drate_dT; + } } - } - { - // n_S32_to_p_P32_reaclib + { + // Ca44_He4_to_Ti48_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_S32_to_p_P32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_S32_to_p_P32_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_S32_to_p_P32_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ca44); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca44); + } +#endif + rate_Ca44_He4_to_Ti48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca44_He4_to_Ti48_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca44_He4_to_Ti48_reaclib) = drate_dT; + } } - } - { - // n_S32_to_He4_Si29_reaclib + { + // Ca45_n_to_Ca46_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_S32_to_He4_Si29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_S32_to_He4_Si29_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_S32_to_He4_Si29_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca45_n_to_Ca46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca45_n_to_Ca46_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca45_n_to_Ca46_reaclib) = drate_dT; + } } - } - { - // p_S32_to_He4_P29_reaclib + { + // Ca45_p_to_Sc46_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_S32); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S32); - } + log_scor = rate_eval.log_screen(k_p_Ca45); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca45); + } #endif - rate_p_S32_to_He4_P29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_S32_to_He4_P29_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_S32_to_He4_P29_reaclib) = drate_dT; + rate_Ca45_p_to_Sc46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca45_p_to_Sc46_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca45_p_to_Sc46_reaclib) = drate_dT; + } } - } - { - // He4_S32_to_p_Cl35_reaclib + { + // Ca45_He4_to_Ti49_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_S32); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_S32); - } + log_scor = rate_eval.log_screen(k_He4_Ca45); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca45); + } #endif - rate_He4_S32_to_p_Cl35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_S32_to_p_Cl35_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S32_to_p_Cl35_reaclib) = drate_dT; + rate_Ca45_He4_to_Ti49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca45_He4_to_Ti49_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca45_He4_to_Ti49_reaclib) = drate_dT; + } } - } - { - // n_S33_to_p_P33_reaclib + { + // Ca46_n_to_Ca47_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_S33_to_p_P33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_S33_to_p_P33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_S33_to_p_P33_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca46_n_to_Ca47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca46_n_to_Ca47_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca46_n_to_Ca47_reaclib) = drate_dT; + } } - } - { - // n_S33_to_He4_Si30_reaclib + { + // Ca46_p_to_Sc47_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_S33_to_He4_Si30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_S33_to_He4_Si30_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_S33_to_He4_Si30_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ca46); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca46); + } +#endif + rate_Ca46_p_to_Sc47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca46_p_to_Sc47_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca46_p_to_Sc47_reaclib) = drate_dT; + } } - } - { - // p_S33_to_n_Cl33_reaclib + { + // Ca46_He4_to_Ti50_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_S33); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S33); - } + log_scor = rate_eval.log_screen(k_He4_Ca46); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca46); + } #endif - rate_p_S33_to_n_Cl33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_S33_to_n_Cl33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_S33_to_n_Cl33_reaclib) = drate_dT; + rate_Ca46_He4_to_Ti50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca46_He4_to_Ti50_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca46_He4_to_Ti50_reaclib) = drate_dT; + } } - } - { - // p_S33_to_He4_P30_reaclib + { + // Ca47_n_to_Ca48_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_S33); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S33); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca47_n_to_Ca48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca47_n_to_Ca48_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca47_n_to_Ca48_reaclib) = drate_dT; + } } + + { + // Ca47_p_to_Sc48_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ca47); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca47); + } #endif - rate_p_S33_to_He4_P30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_S33_to_He4_P30_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_S33_to_He4_P30_reaclib) = drate_dT; + rate_Ca47_p_to_Sc48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca47_p_to_Sc48_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca47_p_to_Sc48_reaclib) = drate_dT; + } } - } - { - // He4_S33_to_n_Ar36_reaclib + { + // Ca47_He4_to_Ti51_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_S33); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_S33); - } + log_scor = rate_eval.log_screen(k_He4_Ca47); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca47); + } #endif - rate_He4_S33_to_n_Ar36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_S33_to_n_Ar36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S33_to_n_Ar36_reaclib) = drate_dT; + rate_Ca47_He4_to_Ti51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca47_He4_to_Ti51_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca47_He4_to_Ti51_reaclib) = drate_dT; + } } - } - { - // He4_S33_to_p_Cl36_reaclib + { + // Ca48_p_to_Sc49_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_S33); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_S33); - } + log_scor = rate_eval.log_screen(k_p_Ca48); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca48); + } #endif - rate_He4_S33_to_p_Cl36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_S33_to_p_Cl36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S33_to_p_Cl36_reaclib) = drate_dT; + rate_Ca48_p_to_Sc49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca48_p_to_Sc49_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca48_p_to_Sc49_reaclib) = drate_dT; + } } - } - { - // n_S34_to_He4_Si31_reaclib + { + // Sc43_n_to_Sc44_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_S34_to_He4_Si31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_S34_to_He4_Si31_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_S34_to_He4_Si31_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc43_n_to_Sc44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc43_n_to_Sc44_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc43_n_to_Sc44_reaclib) = drate_dT; + } } - } - { - // p_S34_to_n_Cl34_reaclib + { + // Sc43_p_to_Ti44_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_S34); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S34); - } + log_scor = rate_eval.log_screen(k_p_Sc43); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc43); + } #endif - rate_p_S34_to_n_Cl34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_S34_to_n_Cl34_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_S34_to_n_Cl34_reaclib) = drate_dT; + rate_Sc43_p_to_Ti44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc43_p_to_Ti44_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc43_p_to_Ti44_reaclib) = drate_dT; + } } - } - { - // p_S34_to_He4_P31_reaclib + { + // Sc43_He4_to_V47_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_S34); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S34); - } + log_scor = rate_eval.log_screen(k_He4_Sc43); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc43); + } #endif - rate_p_S34_to_He4_P31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_S34_to_He4_P31_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_S34_to_He4_P31_reaclib) = drate_dT; + rate_Sc43_He4_to_V47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc43_He4_to_V47_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc43_He4_to_V47_reaclib) = drate_dT; + } } - } - { - // He4_S34_to_n_Ar37_reaclib + { + // Sc44_n_to_Sc45_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_S34); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_S34); - } -#endif - rate_He4_S34_to_n_Ar37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_S34_to_n_Ar37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S34_to_n_Ar37_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc44_n_to_Sc45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc44_n_to_Sc45_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc44_n_to_Sc45_reaclib) = drate_dT; + } } - } - { - // He4_S34_to_p_Cl37_reaclib + { + // Sc44_p_to_Ti45_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_S34); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_S34); - } + log_scor = rate_eval.log_screen(k_p_Sc44); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc44); + } #endif - rate_He4_S34_to_p_Cl37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_S34_to_p_Cl37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S34_to_p_Cl37_reaclib) = drate_dT; + rate_Sc44_p_to_Ti45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc44_p_to_Ti45_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc44_p_to_Ti45_reaclib) = drate_dT; + } } - } - { - // n_S35_to_He4_Si32_reaclib + { + // Sc44_He4_to_V48_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_S35_to_He4_Si32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_S35_to_He4_Si32_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_S35_to_He4_Si32_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Sc44); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc44); + } +#endif + rate_Sc44_He4_to_V48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc44_He4_to_V48_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc44_He4_to_V48_reaclib) = drate_dT; + } } - } - { - // p_S35_to_n_Cl35_reaclib + { + // Sc45_n_to_Sc46_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_S35); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S35); - } -#endif - rate_p_S35_to_n_Cl35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_S35_to_n_Cl35_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_S35_to_n_Cl35_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc45_n_to_Sc46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc45_n_to_Sc46_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc45_n_to_Sc46_reaclib) = drate_dT; + } } - } - { - // p_S35_to_He4_P32_reaclib + { + // Sc45_p_to_Ti46_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_S35); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S35); - } + log_scor = rate_eval.log_screen(k_p_Sc45); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc45); + } #endif - rate_p_S35_to_He4_P32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_S35_to_He4_P32_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_S35_to_He4_P32_reaclib) = drate_dT; + rate_Sc45_p_to_Ti46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc45_p_to_Ti46_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc45_p_to_Ti46_reaclib) = drate_dT; + } } - } - { - // He4_S35_to_n_Ar38_reaclib + { + // Sc45_He4_to_V49_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_S35); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_S35); - } + log_scor = rate_eval.log_screen(k_He4_Sc45); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc45); + } #endif - rate_He4_S35_to_n_Ar38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_S35_to_n_Ar38_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S35_to_n_Ar38_reaclib) = drate_dT; + rate_Sc45_He4_to_V49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc45_He4_to_V49_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc45_He4_to_V49_reaclib) = drate_dT; + } } - } - { - // p_S36_to_n_Cl36_reaclib + { + // Sc46_n_to_Sc47_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_S36); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S36); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc46_n_to_Sc47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc46_n_to_Sc47_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc46_n_to_Sc47_reaclib) = drate_dT; + } } -#endif - rate_p_S36_to_n_Cl36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_S36_to_n_Cl36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_S36_to_n_Cl36_reaclib) = drate_dT; - } - } - { - // p_S36_to_He4_P33_reaclib + { + // Sc46_p_to_Ti47_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_S36); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S36); - } + log_scor = rate_eval.log_screen(k_p_Sc46); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc46); + } #endif - rate_p_S36_to_He4_P33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_S36_to_He4_P33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_S36_to_He4_P33_reaclib) = drate_dT; + rate_Sc46_p_to_Ti47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc46_p_to_Ti47_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc46_p_to_Ti47_reaclib) = drate_dT; + } } - } - { - // He4_S36_to_n_Ar39_reaclib + { + // Sc46_He4_to_V50_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_S36); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_S36); - } + log_scor = rate_eval.log_screen(k_He4_Sc46); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc46); + } #endif - rate_He4_S36_to_n_Ar39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_S36_to_n_Ar39_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_S36_to_n_Ar39_reaclib) = drate_dT; + rate_Sc46_He4_to_V50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc46_He4_to_V50_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc46_He4_to_V50_reaclib) = drate_dT; + } } - } - { - // n_Cl33_to_p_S33_reaclib + { + // Sc47_n_to_Sc48_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cl33_to_p_S33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cl33_to_p_S33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cl33_to_p_S33_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc47_n_to_Sc48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc47_n_to_Sc48_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc47_n_to_Sc48_reaclib) = drate_dT; + } } - } - { - // n_Cl33_to_He4_P30_reaclib + { + // Sc47_p_to_Ti48_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cl33_to_He4_P30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cl33_to_He4_P30_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cl33_to_He4_P30_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Sc47); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc47); + } +#endif + rate_Sc47_p_to_Ti48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc47_p_to_Ti48_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc47_p_to_Ti48_reaclib) = drate_dT; + } } - } - { - // He4_Cl33_to_p_Ar36_reaclib + { + // Sc47_He4_to_V51_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cl33); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl33); - } + log_scor = rate_eval.log_screen(k_He4_Sc47); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc47); + } #endif - rate_He4_Cl33_to_p_Ar36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cl33_to_p_Ar36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cl33_to_p_Ar36_reaclib) = drate_dT; + rate_Sc47_He4_to_V51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc47_He4_to_V51_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc47_He4_to_V51_reaclib) = drate_dT; + } } - } - { - // n_Cl34_to_p_S34_reaclib + { + // Sc48_n_to_Sc49_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cl34_to_p_S34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cl34_to_p_S34_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cl34_to_p_S34_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc48_n_to_Sc49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc48_n_to_Sc49_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc48_n_to_Sc49_reaclib) = drate_dT; + } } - } - { - // n_Cl34_to_He4_P31_reaclib + { + // Sc48_p_to_Ti49_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cl34_to_He4_P31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cl34_to_He4_P31_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cl34_to_He4_P31_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Sc48); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc48); + } +#endif + rate_Sc48_p_to_Ti49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc48_p_to_Ti49_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc48_p_to_Ti49_reaclib) = drate_dT; + } } - } - { - // He4_Cl34_to_n_K37_reaclib + { + // Sc48_He4_to_V52_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cl34); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl34); - } + log_scor = rate_eval.log_screen(k_He4_Sc48); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc48); + } #endif - rate_He4_Cl34_to_n_K37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cl34_to_n_K37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cl34_to_n_K37_reaclib) = drate_dT; + rate_Sc48_He4_to_V52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc48_He4_to_V52_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc48_He4_to_V52_reaclib) = drate_dT; + } } - } - { - // He4_Cl34_to_p_Ar37_reaclib + { + // Sc49_p_to_Ti50_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cl34); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl34); - } + log_scor = rate_eval.log_screen(k_p_Sc49); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc49); + } #endif - rate_He4_Cl34_to_p_Ar37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cl34_to_p_Ar37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cl34_to_p_Ar37_reaclib) = drate_dT; + rate_Sc49_p_to_Ti50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc49_p_to_Ti50_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc49_p_to_Ti50_reaclib) = drate_dT; + } } - } - { - // n_Cl35_to_p_S35_reaclib + { + // Ti44_n_to_Ti45_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cl35_to_p_S35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cl35_to_p_S35_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cl35_to_p_S35_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti44_n_to_Ti45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti44_n_to_Ti45_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_n_to_Ti45_reaclib) = drate_dT; + } } - } - { - // n_Cl35_to_He4_P32_reaclib + { + // Ti44_He4_to_Cr48_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cl35_to_He4_P32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cl35_to_He4_P32_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cl35_to_He4_P32_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ti44); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti44); + } +#endif + rate_Ti44_He4_to_Cr48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti44_He4_to_Cr48_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_He4_to_Cr48_reaclib) = drate_dT; + } } - } - { - // p_Cl35_to_He4_S32_reaclib + { + // Ti45_n_to_Ti46_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cl35); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cl35); - } -#endif - rate_p_Cl35_to_He4_S32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cl35_to_He4_S32_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cl35_to_He4_S32_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti45_n_to_Ti46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti45_n_to_Ti46_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti45_n_to_Ti46_reaclib) = drate_dT; + } } - } - { - // He4_Cl35_to_n_K38_reaclib + { + // Ti45_p_to_V46_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cl35); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl35); - } + log_scor = rate_eval.log_screen(k_p_Ti45); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti45); + } #endif - rate_He4_Cl35_to_n_K38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cl35_to_n_K38_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cl35_to_n_K38_reaclib) = drate_dT; + rate_Ti45_p_to_V46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti45_p_to_V46_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti45_p_to_V46_reaclib) = drate_dT; + } } - } - { - // He4_Cl35_to_p_Ar38_reaclib + { + // Ti45_He4_to_Cr49_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cl35); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl35); - } + log_scor = rate_eval.log_screen(k_He4_Ti45); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti45); + } #endif - rate_He4_Cl35_to_p_Ar38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cl35_to_p_Ar38_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cl35_to_p_Ar38_reaclib) = drate_dT; + rate_Ti45_He4_to_Cr49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti45_He4_to_Cr49_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti45_He4_to_Cr49_reaclib) = drate_dT; + } } - } - { - // n_Cl36_to_p_S36_reaclib + { + // Ti46_n_to_Ti47_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cl36_to_p_S36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cl36_to_p_S36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cl36_to_p_S36_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti46_n_to_Ti47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti46_n_to_Ti47_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti46_n_to_Ti47_reaclib) = drate_dT; + } } - } - { - // n_Cl36_to_He4_P33_reaclib + { + // Ti46_p_to_V47_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cl36_to_He4_P33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cl36_to_He4_P33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cl36_to_He4_P33_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ti46); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti46); + } +#endif + rate_Ti46_p_to_V47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti46_p_to_V47_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti46_p_to_V47_reaclib) = drate_dT; + } } - } - { - // p_Cl36_to_n_Ar36_reaclib + { + // Ti46_He4_to_Cr50_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cl36); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cl36); - } + log_scor = rate_eval.log_screen(k_He4_Ti46); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti46); + } #endif - rate_p_Cl36_to_n_Ar36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cl36_to_n_Ar36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cl36_to_n_Ar36_reaclib) = drate_dT; + rate_Ti46_He4_to_Cr50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti46_He4_to_Cr50_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti46_He4_to_Cr50_reaclib) = drate_dT; + } } - } - { - // p_Cl36_to_He4_S33_reaclib + { + // Ti47_n_to_Ti48_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cl36); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cl36); - } -#endif - rate_p_Cl36_to_He4_S33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cl36_to_He4_S33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cl36_to_He4_S33_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti47_n_to_Ti48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti47_n_to_Ti48_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti47_n_to_Ti48_reaclib) = drate_dT; + } } - } - { - // He4_Cl36_to_n_K39_reaclib + { + // Ti47_p_to_V48_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cl36); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl36); - } + log_scor = rate_eval.log_screen(k_p_Ti47); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti47); + } #endif - rate_He4_Cl36_to_n_K39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cl36_to_n_K39_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cl36_to_n_K39_reaclib) = drate_dT; + rate_Ti47_p_to_V48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti47_p_to_V48_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti47_p_to_V48_reaclib) = drate_dT; + } } - } - { - // He4_Cl36_to_p_Ar39_reaclib + { + // Ti47_He4_to_Cr51_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cl36); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl36); - } + log_scor = rate_eval.log_screen(k_He4_Ti47); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti47); + } #endif - rate_He4_Cl36_to_p_Ar39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cl36_to_p_Ar39_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cl36_to_p_Ar39_reaclib) = drate_dT; + rate_Ti47_He4_to_Cr51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti47_He4_to_Cr51_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti47_He4_to_Cr51_reaclib) = drate_dT; + } } - } - { - // p_Cl37_to_n_Ar37_reaclib + { + // Ti48_n_to_Ti49_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cl37); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cl37); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti48_n_to_Ti49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti48_n_to_Ti49_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti48_n_to_Ti49_reaclib) = drate_dT; + } } + + { + // Ti48_p_to_V49_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ti48); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti48); + } #endif - rate_p_Cl37_to_n_Ar37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cl37_to_n_Ar37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cl37_to_n_Ar37_reaclib) = drate_dT; + rate_Ti48_p_to_V49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti48_p_to_V49_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti48_p_to_V49_reaclib) = drate_dT; + } } - } - { - // p_Cl37_to_He4_S34_reaclib + { + // Ti48_He4_to_Cr52_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cl37); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cl37); - } + log_scor = rate_eval.log_screen(k_He4_Ti48); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti48); + } #endif - rate_p_Cl37_to_He4_S34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cl37_to_He4_S34_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cl37_to_He4_S34_reaclib) = drate_dT; + rate_Ti48_He4_to_Cr52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti48_He4_to_Cr52_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti48_He4_to_Cr52_reaclib) = drate_dT; + } } - } - { - // He4_Cl37_to_n_K40_reaclib + { + // Ti49_n_to_Ti50_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cl37); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl37); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti49_n_to_Ti50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti49_n_to_Ti50_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti49_n_to_Ti50_reaclib) = drate_dT; + } } + + { + // Ti49_p_to_V50_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ti49); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti49); + } #endif - rate_He4_Cl37_to_n_K40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cl37_to_n_K40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cl37_to_n_K40_reaclib) = drate_dT; + rate_Ti49_p_to_V50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti49_p_to_V50_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti49_p_to_V50_reaclib) = drate_dT; + } } - } - { - // He4_Cl37_to_p_Ar40_reaclib + { + // Ti49_He4_to_Cr53_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cl37); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl37); - } + log_scor = rate_eval.log_screen(k_He4_Ti49); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti49); + } #endif - rate_He4_Cl37_to_p_Ar40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cl37_to_p_Ar40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cl37_to_p_Ar40_reaclib) = drate_dT; + rate_Ti49_He4_to_Cr53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti49_He4_to_Cr53_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti49_He4_to_Cr53_reaclib) = drate_dT; + } } - } - { - // n_Ar36_to_p_Cl36_reaclib + { + // Ti50_n_to_Ti51_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ar36_to_p_Cl36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ar36_to_p_Cl36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ar36_to_p_Cl36_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti50_n_to_Ti51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti50_n_to_Ti51_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti50_n_to_Ti51_reaclib) = drate_dT; + } } - } - { - // n_Ar36_to_He4_S33_reaclib + { + // Ti50_p_to_V51_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ar36_to_He4_S33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ar36_to_He4_S33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ar36_to_He4_S33_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ti50); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti50); + } +#endif + rate_Ti50_p_to_V51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti50_p_to_V51_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti50_p_to_V51_reaclib) = drate_dT; + } } - } - { - // p_Ar36_to_He4_Cl33_reaclib + { + // Ti50_He4_to_Cr54_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ar36); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar36); - } + log_scor = rate_eval.log_screen(k_He4_Ti50); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti50); + } #endif - rate_p_Ar36_to_He4_Cl33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ar36_to_He4_Cl33_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ar36_to_He4_Cl33_reaclib) = drate_dT; + rate_Ti50_He4_to_Cr54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti50_He4_to_Cr54_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti50_He4_to_Cr54_reaclib) = drate_dT; + } } - } - { - // He4_Ar36_to_p_K39_reaclib + { + // Ti51_p_to_V52_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ar36); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ar36); - } + log_scor = rate_eval.log_screen(k_p_Ti51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti51); + } #endif - rate_He4_Ar36_to_p_K39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ar36_to_p_K39_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar36_to_p_K39_reaclib) = drate_dT; + rate_Ti51_p_to_V52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti51_p_to_V52_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti51_p_to_V52_reaclib) = drate_dT; + } } - } - { - // n_Ar37_to_p_Cl37_reaclib + { + // V46_n_to_V47_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ar37_to_p_Cl37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ar37_to_p_Cl37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ar37_to_p_Cl37_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V46_n_to_V47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V46_n_to_V47_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V46_n_to_V47_reaclib) = drate_dT; + } } - } - { - // n_Ar37_to_He4_S34_reaclib + { + // V46_He4_to_Mn50_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ar37_to_He4_S34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ar37_to_He4_S34_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ar37_to_He4_S34_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_V46); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V46); + } +#endif + rate_V46_He4_to_Mn50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V46_He4_to_Mn50_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V46_He4_to_Mn50_reaclib) = drate_dT; + } } - } - { - // p_Ar37_to_n_K37_reaclib + { + // V47_n_to_V48_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ar37); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar37); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V47_n_to_V48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V47_n_to_V48_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V47_n_to_V48_reaclib) = drate_dT; + } } + + { + // V47_p_to_Cr48_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_V47); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V47); + } #endif - rate_p_Ar37_to_n_K37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ar37_to_n_K37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ar37_to_n_K37_reaclib) = drate_dT; + rate_V47_p_to_Cr48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V47_p_to_Cr48_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V47_p_to_Cr48_reaclib) = drate_dT; + } } - } - { - // p_Ar37_to_He4_Cl34_reaclib + { + // V47_He4_to_Mn51_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ar37); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar37); - } + log_scor = rate_eval.log_screen(k_He4_V47); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V47); + } #endif - rate_p_Ar37_to_He4_Cl34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ar37_to_He4_Cl34_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ar37_to_He4_Cl34_reaclib) = drate_dT; + rate_V47_He4_to_Mn51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V47_He4_to_Mn51_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V47_He4_to_Mn51_reaclib) = drate_dT; + } } - } - { - // He4_Ar37_to_n_Ca40_reaclib + { + // V48_n_to_V49_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V48_n_to_V49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V48_n_to_V49_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V48_n_to_V49_reaclib) = drate_dT; + } + } + + { + // V48_p_to_Cr49_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ar37); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ar37); - } + log_scor = rate_eval.log_screen(k_p_V48); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V48); + } #endif - rate_He4_Ar37_to_n_Ca40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ar37_to_n_Ca40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar37_to_n_Ca40_reaclib) = drate_dT; + rate_V48_p_to_Cr49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V48_p_to_Cr49_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V48_p_to_Cr49_reaclib) = drate_dT; + } } - } - { - // He4_Ar37_to_p_K40_reaclib + { + // V48_He4_to_Mn52_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ar37); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ar37); - } + log_scor = rate_eval.log_screen(k_He4_V48); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V48); + } #endif - rate_He4_Ar37_to_p_K40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ar37_to_p_K40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar37_to_p_K40_reaclib) = drate_dT; + rate_V48_He4_to_Mn52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V48_He4_to_Mn52_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V48_He4_to_Mn52_reaclib) = drate_dT; + } } - } - { - // n_Ar38_to_He4_S35_reaclib + { + // V49_n_to_V50_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ar38_to_He4_S35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ar38_to_He4_S35_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ar38_to_He4_S35_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V49_n_to_V50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V49_n_to_V50_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V49_n_to_V50_reaclib) = drate_dT; + } } - } - { - // p_Ar38_to_n_K38_reaclib + { + // V49_p_to_Cr50_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ar38); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar38); - } + log_scor = rate_eval.log_screen(k_p_V49); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V49); + } #endif - rate_p_Ar38_to_n_K38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ar38_to_n_K38_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ar38_to_n_K38_reaclib) = drate_dT; + rate_V49_p_to_Cr50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V49_p_to_Cr50_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V49_p_to_Cr50_reaclib) = drate_dT; + } } - } - { - // p_Ar38_to_He4_Cl35_reaclib + { + // V49_He4_to_Mn53_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ar38); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar38); - } + log_scor = rate_eval.log_screen(k_He4_V49); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V49); + } #endif - rate_p_Ar38_to_He4_Cl35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ar38_to_He4_Cl35_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ar38_to_He4_Cl35_reaclib) = drate_dT; + rate_V49_He4_to_Mn53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V49_He4_to_Mn53_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V49_He4_to_Mn53_reaclib) = drate_dT; + } } - } - { - // He4_Ar38_to_n_Ca41_reaclib + { + // V50_n_to_V51_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ar38); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ar38); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V50_n_to_V51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V50_n_to_V51_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V50_n_to_V51_reaclib) = drate_dT; + } } + + { + // V50_p_to_Cr51_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_V50); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V50); + } #endif - rate_He4_Ar38_to_n_Ca41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ar38_to_n_Ca41_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar38_to_n_Ca41_reaclib) = drate_dT; + rate_V50_p_to_Cr51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V50_p_to_Cr51_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V50_p_to_Cr51_reaclib) = drate_dT; + } } - } - { - // He4_Ar38_to_p_K41_reaclib + { + // V50_He4_to_Mn54_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ar38); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ar38); - } + log_scor = rate_eval.log_screen(k_He4_V50); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V50); + } #endif - rate_He4_Ar38_to_p_K41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ar38_to_p_K41_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar38_to_p_K41_reaclib) = drate_dT; + rate_V50_He4_to_Mn54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V50_He4_to_Mn54_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V50_He4_to_Mn54_reaclib) = drate_dT; + } } - } - { - // n_Ar39_to_He4_S36_reaclib + { + // V51_n_to_V52_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ar39_to_He4_S36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ar39_to_He4_S36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ar39_to_He4_S36_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V51_n_to_V52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V51_n_to_V52_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V51_n_to_V52_reaclib) = drate_dT; + } } - } - { - // p_Ar39_to_n_K39_reaclib + { + // V51_p_to_Cr52_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ar39); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar39); - } + log_scor = rate_eval.log_screen(k_p_V51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V51); + } #endif - rate_p_Ar39_to_n_K39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ar39_to_n_K39_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ar39_to_n_K39_reaclib) = drate_dT; + rate_V51_p_to_Cr52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V51_p_to_Cr52_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V51_p_to_Cr52_reaclib) = drate_dT; + } } - } - { - // p_Ar39_to_He4_Cl36_reaclib + { + // V51_He4_to_Mn55_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ar39); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar39); - } + log_scor = rate_eval.log_screen(k_He4_V51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V51); + } #endif - rate_p_Ar39_to_He4_Cl36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ar39_to_He4_Cl36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ar39_to_He4_Cl36_reaclib) = drate_dT; + rate_V51_He4_to_Mn55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V51_He4_to_Mn55_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V51_He4_to_Mn55_reaclib) = drate_dT; + } } - } - { - // He4_Ar39_to_n_Ca42_reaclib + { + // V52_p_to_Cr53_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ar39); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ar39); - } + log_scor = rate_eval.log_screen(k_p_V52); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V52); + } #endif - rate_He4_Ar39_to_n_Ca42_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ar39_to_n_Ca42_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar39_to_n_Ca42_reaclib) = drate_dT; + rate_V52_p_to_Cr53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V52_p_to_Cr53_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V52_p_to_Cr53_reaclib) = drate_dT; + } } - } - { - // p_Ar40_to_n_K40_reaclib + { + // Cr48_n_to_Cr49_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ar40); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar40); - } -#endif - rate_p_Ar40_to_n_K40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ar40_to_n_K40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ar40_to_n_K40_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr48_n_to_Cr49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr48_n_to_Cr49_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr48_n_to_Cr49_reaclib) = drate_dT; + } } - } - { - // p_Ar40_to_He4_Cl37_reaclib + { + // Cr48_He4_to_Fe52_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ar40); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar40); - } + log_scor = rate_eval.log_screen(k_He4_Cr48); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr48); + } #endif - rate_p_Ar40_to_He4_Cl37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ar40_to_He4_Cl37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ar40_to_He4_Cl37_reaclib) = drate_dT; + rate_Cr48_He4_to_Fe52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr48_He4_to_Fe52_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr48_He4_to_Fe52_reaclib) = drate_dT; + } } - } - { - // He4_Ar40_to_n_Ca43_reaclib + { + // Cr49_n_to_Cr50_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ar40); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ar40); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr49_n_to_Cr50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr49_n_to_Cr50_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr49_n_to_Cr50_reaclib) = drate_dT; + } } + + { + // Cr49_p_to_Mn50_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cr49); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr49); + } #endif - rate_He4_Ar40_to_n_Ca43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ar40_to_n_Ca43_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ar40_to_n_Ca43_reaclib) = drate_dT; + rate_Cr49_p_to_Mn50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr49_p_to_Mn50_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr49_p_to_Mn50_reaclib) = drate_dT; + } } - } - { - // n_K37_to_p_Ar37_reaclib + { + // Cr49_He4_to_Fe53_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_K37_to_p_Ar37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_K37_to_p_Ar37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_K37_to_p_Ar37_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cr49); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr49); + } +#endif + rate_Cr49_He4_to_Fe53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr49_He4_to_Fe53_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr49_He4_to_Fe53_reaclib) = drate_dT; + } } - } - { - // n_K37_to_He4_Cl34_reaclib + { + // Cr50_n_to_Cr51_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_K37_to_He4_Cl34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_K37_to_He4_Cl34_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_K37_to_He4_Cl34_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr50_n_to_Cr51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr50_n_to_Cr51_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr50_n_to_Cr51_reaclib) = drate_dT; + } } - } - { - // He4_K37_to_p_Ca40_reaclib + { + // Cr50_p_to_Mn51_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_K37); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_K37); - } + log_scor = rate_eval.log_screen(k_p_Cr50); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr50); + } #endif - rate_He4_K37_to_p_Ca40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_K37_to_p_Ca40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_K37_to_p_Ca40_reaclib) = drate_dT; + rate_Cr50_p_to_Mn51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr50_p_to_Mn51_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr50_p_to_Mn51_reaclib) = drate_dT; + } } - } - { - // n_K38_to_p_Ar38_reaclib + { + // Cr50_He4_to_Fe54_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_K38_to_p_Ar38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_K38_to_p_Ar38_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_K38_to_p_Ar38_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cr50); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr50); + } +#endif + rate_Cr50_He4_to_Fe54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr50_He4_to_Fe54_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr50_He4_to_Fe54_reaclib) = drate_dT; + } } - } - { - // n_K38_to_He4_Cl35_reaclib + { + // Cr51_n_to_Cr52_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_K38_to_He4_Cl35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_K38_to_He4_Cl35_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_K38_to_He4_Cl35_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr51_n_to_Cr52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr51_n_to_Cr52_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr51_n_to_Cr52_reaclib) = drate_dT; + } } - } - { - // He4_K38_to_p_Ca41_reaclib + { + // Cr51_p_to_Mn52_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_K38); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_K38); - } + log_scor = rate_eval.log_screen(k_p_Cr51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr51); + } #endif - rate_He4_K38_to_p_Ca41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_K38_to_p_Ca41_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_K38_to_p_Ca41_reaclib) = drate_dT; + rate_Cr51_p_to_Mn52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr51_p_to_Mn52_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr51_p_to_Mn52_reaclib) = drate_dT; + } } - } - { - // n_K39_to_p_Ar39_reaclib + { + // Cr51_He4_to_Fe55_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_K39_to_p_Ar39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_K39_to_p_Ar39_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_K39_to_p_Ar39_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cr51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr51); + } +#endif + rate_Cr51_He4_to_Fe55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr51_He4_to_Fe55_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr51_He4_to_Fe55_reaclib) = drate_dT; + } } - } - { - // n_K39_to_He4_Cl36_reaclib + { + // Cr52_n_to_Cr53_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_K39_to_He4_Cl36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_K39_to_He4_Cl36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_K39_to_He4_Cl36_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr52_n_to_Cr53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr52_n_to_Cr53_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr52_n_to_Cr53_reaclib) = drate_dT; + } } - } - { - // p_K39_to_He4_Ar36_reaclib + { + // Cr52_p_to_Mn53_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_K39); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_K39); - } + log_scor = rate_eval.log_screen(k_p_Cr52); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr52); + } #endif - rate_p_K39_to_He4_Ar36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_K39_to_He4_Ar36_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_K39_to_He4_Ar36_reaclib) = drate_dT; + rate_Cr52_p_to_Mn53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr52_p_to_Mn53_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr52_p_to_Mn53_reaclib) = drate_dT; + } } - } - { - // He4_K39_to_p_Ca42_reaclib + { + // Cr52_He4_to_Fe56_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_K39); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_K39); - } + log_scor = rate_eval.log_screen(k_He4_Cr52); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr52); + } #endif - rate_He4_K39_to_p_Ca42_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_K39_to_p_Ca42_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_K39_to_p_Ca42_reaclib) = drate_dT; + rate_Cr52_He4_to_Fe56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr52_He4_to_Fe56_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr52_He4_to_Fe56_reaclib) = drate_dT; + } } - } - { - // n_K40_to_p_Ar40_reaclib + { + // Cr53_n_to_Cr54_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_K40_to_p_Ar40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_K40_to_p_Ar40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_K40_to_p_Ar40_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr53_n_to_Cr54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr53_n_to_Cr54_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr53_n_to_Cr54_reaclib) = drate_dT; + } } - } - { - // n_K40_to_He4_Cl37_reaclib + { + // Cr53_p_to_Mn54_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_K40_to_He4_Cl37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_K40_to_He4_Cl37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_K40_to_He4_Cl37_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cr53); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr53); + } +#endif + rate_Cr53_p_to_Mn54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr53_p_to_Mn54_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr53_p_to_Mn54_reaclib) = drate_dT; + } } - } - { - // p_K40_to_n_Ca40_reaclib + { + // Cr53_He4_to_Fe57_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_K40); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_K40); - } + log_scor = rate_eval.log_screen(k_He4_Cr53); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr53); + } #endif - rate_p_K40_to_n_Ca40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_K40_to_n_Ca40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_K40_to_n_Ca40_reaclib) = drate_dT; + rate_Cr53_He4_to_Fe57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr53_He4_to_Fe57_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr53_He4_to_Fe57_reaclib) = drate_dT; + } } - } - { - // p_K40_to_He4_Ar37_reaclib + { + // Cr54_p_to_Mn55_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_K40); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_K40); - } + log_scor = rate_eval.log_screen(k_p_Cr54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr54); + } #endif - rate_p_K40_to_He4_Ar37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_K40_to_He4_Ar37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_K40_to_He4_Ar37_reaclib) = drate_dT; + rate_Cr54_p_to_Mn55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr54_p_to_Mn55_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr54_p_to_Mn55_reaclib) = drate_dT; + } } - } - { - // He4_K40_to_n_Sc43_reaclib + { + // Cr54_He4_to_Fe58_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_K40); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_K40); - } + log_scor = rate_eval.log_screen(k_He4_Cr54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr54); + } #endif - rate_He4_K40_to_n_Sc43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_K40_to_n_Sc43_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_K40_to_n_Sc43_reaclib) = drate_dT; + rate_Cr54_He4_to_Fe58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr54_He4_to_Fe58_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr54_He4_to_Fe58_reaclib) = drate_dT; + } } - } - { - // He4_K40_to_p_Ca43_reaclib + { + // Mn50_n_to_Mn51_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_K40); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_K40); - } -#endif - rate_He4_K40_to_p_Ca43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_K40_to_p_Ca43_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_K40_to_p_Ca43_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn50_n_to_Mn51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn50_n_to_Mn51_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn50_n_to_Mn51_reaclib) = drate_dT; + } } - } - { - // p_K41_to_n_Ca41_reaclib + { + // Mn50_He4_to_Co54_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_K41); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_K41); - } + log_scor = rate_eval.log_screen(k_He4_Mn50); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn50); + } #endif - rate_p_K41_to_n_Ca41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_K41_to_n_Ca41_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_K41_to_n_Ca41_reaclib) = drate_dT; + rate_Mn50_He4_to_Co54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn50_He4_to_Co54_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn50_He4_to_Co54_reaclib) = drate_dT; + } } - } - { - // p_K41_to_He4_Ar38_reaclib + { + // Mn51_n_to_Mn52_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_K41); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_K41); - } -#endif - rate_p_K41_to_He4_Ar38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_K41_to_He4_Ar38_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_K41_to_He4_Ar38_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn51_n_to_Mn52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn51_n_to_Mn52_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn51_n_to_Mn52_reaclib) = drate_dT; + } } - } - { - // He4_K41_to_n_Sc44_reaclib + { + // Mn51_p_to_Fe52_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_K41); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_K41); - } + log_scor = rate_eval.log_screen(k_p_Mn51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn51); + } #endif - rate_He4_K41_to_n_Sc44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_K41_to_n_Sc44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_K41_to_n_Sc44_reaclib) = drate_dT; + rate_Mn51_p_to_Fe52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn51_p_to_Fe52_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn51_p_to_Fe52_reaclib) = drate_dT; + } } - } - { - // He4_K41_to_p_Ca44_reaclib + { + // Mn51_He4_to_Co55_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_K41); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_K41); - } + log_scor = rate_eval.log_screen(k_He4_Mn51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn51); + } #endif - rate_He4_K41_to_p_Ca44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_K41_to_p_Ca44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_K41_to_p_Ca44_reaclib) = drate_dT; + rate_Mn51_He4_to_Co55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn51_He4_to_Co55_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn51_He4_to_Co55_reaclib) = drate_dT; + } } - } - { - // n_Ca40_to_p_K40_reaclib + { + // Mn52_n_to_Mn53_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ca40_to_p_K40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ca40_to_p_K40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ca40_to_p_K40_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn52_n_to_Mn53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn52_n_to_Mn53_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn52_n_to_Mn53_reaclib) = drate_dT; + } } - } - { - // n_Ca40_to_He4_Ar37_reaclib + { + // Mn52_p_to_Fe53_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ca40_to_He4_Ar37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ca40_to_He4_Ar37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ca40_to_He4_Ar37_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Mn52); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn52); + } +#endif + rate_Mn52_p_to_Fe53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn52_p_to_Fe53_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn52_p_to_Fe53_reaclib) = drate_dT; + } } - } - { - // p_Ca40_to_He4_K37_reaclib + { + // Mn52_He4_to_Co56_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ca40); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca40); - } + log_scor = rate_eval.log_screen(k_He4_Mn52); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn52); + } #endif - rate_p_Ca40_to_He4_K37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ca40_to_He4_K37_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ca40_to_He4_K37_reaclib) = drate_dT; + rate_Mn52_He4_to_Co56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn52_He4_to_Co56_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn52_He4_to_Co56_reaclib) = drate_dT; + } } - } - { - // He4_Ca40_to_p_Sc43_reaclib + { + // Mn53_n_to_Mn54_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ca40); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca40); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn53_n_to_Mn54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn53_n_to_Mn54_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn53_n_to_Mn54_reaclib) = drate_dT; + } } + + { + // Mn53_p_to_Fe54_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Mn53); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn53); + } #endif - rate_He4_Ca40_to_p_Sc43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca40_to_p_Sc43_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca40_to_p_Sc43_reaclib) = drate_dT; + rate_Mn53_p_to_Fe54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn53_p_to_Fe54_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn53_p_to_Fe54_reaclib) = drate_dT; + } } - } - { - // n_Ca41_to_p_K41_reaclib + { + // Mn53_He4_to_Co57_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ca41_to_p_K41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ca41_to_p_K41_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ca41_to_p_K41_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Mn53); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn53); + } +#endif + rate_Mn53_He4_to_Co57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn53_He4_to_Co57_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn53_He4_to_Co57_reaclib) = drate_dT; + } } - } - { - // n_Ca41_to_He4_Ar38_reaclib + { + // Mn54_n_to_Mn55_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ca41_to_He4_Ar38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ca41_to_He4_Ar38_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ca41_to_He4_Ar38_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn54_n_to_Mn55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn54_n_to_Mn55_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn54_n_to_Mn55_reaclib) = drate_dT; + } } - } - { - // p_Ca41_to_He4_K38_reaclib + { + // Mn54_p_to_Fe55_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ca41); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca41); - } + log_scor = rate_eval.log_screen(k_p_Mn54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn54); + } #endif - rate_p_Ca41_to_He4_K38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ca41_to_He4_K38_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ca41_to_He4_K38_reaclib) = drate_dT; + rate_Mn54_p_to_Fe55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn54_p_to_Fe55_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn54_p_to_Fe55_reaclib) = drate_dT; + } } - } - { - // He4_Ca41_to_n_Ti44_reaclib + { + // Mn54_He4_to_Co58_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ca41); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca41); - } + log_scor = rate_eval.log_screen(k_He4_Mn54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn54); + } #endif - rate_He4_Ca41_to_n_Ti44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca41_to_n_Ti44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca41_to_n_Ti44_reaclib) = drate_dT; + rate_Mn54_He4_to_Co58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn54_He4_to_Co58_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn54_He4_to_Co58_reaclib) = drate_dT; + } } - } - { - // He4_Ca41_to_p_Sc44_reaclib + { + // Mn55_p_to_Fe56_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ca41); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca41); - } + log_scor = rate_eval.log_screen(k_p_Mn55); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn55); + } #endif - rate_He4_Ca41_to_p_Sc44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca41_to_p_Sc44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca41_to_p_Sc44_reaclib) = drate_dT; + rate_Mn55_p_to_Fe56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn55_p_to_Fe56_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn55_p_to_Fe56_reaclib) = drate_dT; + } } - } - { - // n_Ca42_to_He4_Ar39_reaclib + { + // Mn55_He4_to_Co59_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ca42_to_He4_Ar39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ca42_to_He4_Ar39_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ca42_to_He4_Ar39_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Mn55); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn55); + } +#endif + rate_Mn55_He4_to_Co59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn55_He4_to_Co59_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn55_He4_to_Co59_reaclib) = drate_dT; + } } - } - { - // p_Ca42_to_He4_K39_reaclib + { + // Fe52_n_to_Fe53_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ca42); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca42); - } -#endif - rate_p_Ca42_to_He4_K39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ca42_to_He4_K39_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ca42_to_He4_K39_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe52_n_to_Fe53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe52_n_to_Fe53_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe52_n_to_Fe53_reaclib) = drate_dT; + } } - } - { - // He4_Ca42_to_n_Ti45_reaclib + { + // Fe52_p_to_Co53_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ca42); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca42); - } + log_scor = rate_eval.log_screen(k_p_Fe52); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe52); + } #endif - rate_He4_Ca42_to_n_Ti45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca42_to_n_Ti45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca42_to_n_Ti45_reaclib) = drate_dT; + rate_Fe52_p_to_Co53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe52_p_to_Co53_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe52_p_to_Co53_reaclib) = drate_dT; + } } - } - { - // He4_Ca42_to_p_Sc45_reaclib + { + // Fe52_He4_to_Ni56_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ca42); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca42); - } + log_scor = rate_eval.log_screen(k_He4_Fe52); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe52); + } #endif - rate_He4_Ca42_to_p_Sc45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca42_to_p_Sc45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca42_to_p_Sc45_reaclib) = drate_dT; + rate_Fe52_He4_to_Ni56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe52_He4_to_Ni56_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe52_He4_to_Ni56_reaclib) = drate_dT; + } } - } - { - // n_Ca43_to_He4_Ar40_reaclib + { + // Fe53_n_to_Fe54_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ca43_to_He4_Ar40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ca43_to_He4_Ar40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ca43_to_He4_Ar40_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe53_n_to_Fe54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe53_n_to_Fe54_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe53_n_to_Fe54_reaclib) = drate_dT; + } } - } - { - // p_Ca43_to_n_Sc43_reaclib + { + // Fe53_p_to_Co54_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ca43); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca43); - } + log_scor = rate_eval.log_screen(k_p_Fe53); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe53); + } #endif - rate_p_Ca43_to_n_Sc43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ca43_to_n_Sc43_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ca43_to_n_Sc43_reaclib) = drate_dT; + rate_Fe53_p_to_Co54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe53_p_to_Co54_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe53_p_to_Co54_reaclib) = drate_dT; + } } - } - { - // p_Ca43_to_He4_K40_reaclib + { + // Fe53_He4_to_Ni57_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ca43); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca43); - } + log_scor = rate_eval.log_screen(k_He4_Fe53); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe53); + } #endif - rate_p_Ca43_to_He4_K40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ca43_to_He4_K40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ca43_to_He4_K40_reaclib) = drate_dT; + rate_Fe53_He4_to_Ni57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe53_He4_to_Ni57_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe53_He4_to_Ni57_reaclib) = drate_dT; + } } - } - { - // He4_Ca43_to_n_Ti46_reaclib + { + // Fe54_n_to_Fe55_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ca43); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca43); - } -#endif - rate_He4_Ca43_to_n_Ti46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca43_to_n_Ti46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca43_to_n_Ti46_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe54_n_to_Fe55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe54_n_to_Fe55_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe54_n_to_Fe55_reaclib) = drate_dT; + } } - } - { - // He4_Ca43_to_p_Sc46_reaclib + { + // Fe54_p_to_Co55_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ca43); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca43); - } + log_scor = rate_eval.log_screen(k_p_Fe54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe54); + } #endif - rate_He4_Ca43_to_p_Sc46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca43_to_p_Sc46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca43_to_p_Sc46_reaclib) = drate_dT; + rate_Fe54_p_to_Co55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe54_p_to_Co55_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe54_p_to_Co55_reaclib) = drate_dT; + } } - } - { - // p_Ca44_to_n_Sc44_reaclib + { + // Fe54_He4_to_Ni58_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ca44); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca44); - } + log_scor = rate_eval.log_screen(k_He4_Fe54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe54); + } #endif - rate_p_Ca44_to_n_Sc44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ca44_to_n_Sc44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ca44_to_n_Sc44_reaclib) = drate_dT; + rate_Fe54_He4_to_Ni58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe54_He4_to_Ni58_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe54_He4_to_Ni58_reaclib) = drate_dT; + } } - } - { - // p_Ca44_to_He4_K41_reaclib + { + // Fe55_n_to_Fe56_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ca44); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca44); - } -#endif - rate_p_Ca44_to_He4_K41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ca44_to_He4_K41_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ca44_to_He4_K41_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe55_n_to_Fe56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe55_n_to_Fe56_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe55_n_to_Fe56_reaclib) = drate_dT; + } } - } - { - // He4_Ca44_to_n_Ti47_reaclib + { + // Fe55_p_to_Co56_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ca44); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca44); - } + log_scor = rate_eval.log_screen(k_p_Fe55); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe55); + } #endif - rate_He4_Ca44_to_n_Ti47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca44_to_n_Ti47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca44_to_n_Ti47_reaclib) = drate_dT; + rate_Fe55_p_to_Co56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe55_p_to_Co56_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe55_p_to_Co56_reaclib) = drate_dT; + } } - } - { - // He4_Ca44_to_p_Sc47_reaclib + { + // Fe55_He4_to_Ni59_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ca44); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca44); - } + log_scor = rate_eval.log_screen(k_He4_Fe55); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe55); + } #endif - rate_He4_Ca44_to_p_Sc47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca44_to_p_Sc47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca44_to_p_Sc47_reaclib) = drate_dT; + rate_Fe55_He4_to_Ni59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe55_He4_to_Ni59_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe55_He4_to_Ni59_reaclib) = drate_dT; + } } - } - { - // p_Ca45_to_n_Sc45_reaclib + { + // Fe56_n_to_Fe57_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ca45); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca45); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe56_n_to_Fe57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe56_n_to_Fe57_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe56_n_to_Fe57_reaclib) = drate_dT; + } } -#endif - rate_p_Ca45_to_n_Sc45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ca45_to_n_Sc45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ca45_to_n_Sc45_reaclib) = drate_dT; - } - } - { - // He4_Ca45_to_n_Ti48_reaclib + { + // Fe56_p_to_Co57_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ca45); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca45); - } + log_scor = rate_eval.log_screen(k_p_Fe56); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe56); + } #endif - rate_He4_Ca45_to_n_Ti48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca45_to_n_Ti48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca45_to_n_Ti48_reaclib) = drate_dT; + rate_Fe56_p_to_Co57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe56_p_to_Co57_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe56_p_to_Co57_reaclib) = drate_dT; + } } - } - { - // He4_Ca45_to_p_Sc48_reaclib + { + // Fe56_He4_to_Ni60_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ca45); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca45); - } + log_scor = rate_eval.log_screen(k_He4_Fe56); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe56); + } #endif - rate_He4_Ca45_to_p_Sc48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca45_to_p_Sc48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca45_to_p_Sc48_reaclib) = drate_dT; + rate_Fe56_He4_to_Ni60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe56_He4_to_Ni60_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe56_He4_to_Ni60_reaclib) = drate_dT; + } } - } - { - // p_Ca46_to_n_Sc46_reaclib + { + // Fe57_n_to_Fe58_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ca46); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca46); - } -#endif - rate_p_Ca46_to_n_Sc46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ca46_to_n_Sc46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ca46_to_n_Sc46_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe57_n_to_Fe58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe57_n_to_Fe58_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe57_n_to_Fe58_reaclib) = drate_dT; + } } - } - { - // He4_Ca46_to_n_Ti49_reaclib + { + // Fe57_p_to_Co58_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ca46); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca46); - } + log_scor = rate_eval.log_screen(k_p_Fe57); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe57); + } #endif - rate_He4_Ca46_to_n_Ti49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca46_to_n_Ti49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca46_to_n_Ti49_reaclib) = drate_dT; + rate_Fe57_p_to_Co58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe57_p_to_Co58_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe57_p_to_Co58_reaclib) = drate_dT; + } } - } - { - // He4_Ca46_to_p_Sc49_reaclib + { + // Fe57_He4_to_Ni61_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ca46); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca46); - } + log_scor = rate_eval.log_screen(k_He4_Fe57); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe57); + } #endif - rate_He4_Ca46_to_p_Sc49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca46_to_p_Sc49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca46_to_p_Sc49_reaclib) = drate_dT; + rate_Fe57_He4_to_Ni61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe57_He4_to_Ni61_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe57_He4_to_Ni61_reaclib) = drate_dT; + } } - } - { - // p_Ca47_to_n_Sc47_reaclib + { + // Fe58_p_to_Co59_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ca47); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca47); - } + log_scor = rate_eval.log_screen(k_p_Fe58); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe58); + } #endif - rate_p_Ca47_to_n_Sc47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ca47_to_n_Sc47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ca47_to_n_Sc47_reaclib) = drate_dT; + rate_Fe58_p_to_Co59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe58_p_to_Co59_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe58_p_to_Co59_reaclib) = drate_dT; + } } - } - { - // He4_Ca47_to_n_Ti50_reaclib + { + // Fe58_He4_to_Ni62_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ca47); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca47); - } + log_scor = rate_eval.log_screen(k_He4_Fe58); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe58); + } #endif - rate_He4_Ca47_to_n_Ti50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca47_to_n_Ti50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca47_to_n_Ti50_reaclib) = drate_dT; + rate_Fe58_He4_to_Ni62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe58_He4_to_Ni62_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe58_He4_to_Ni62_reaclib) = drate_dT; + } } - } - { - // p_Ca48_to_n_Sc48_reaclib + { + // Co53_n_to_Co54_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ca48); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca48); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co53_n_to_Co54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co53_n_to_Co54_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co53_n_to_Co54_reaclib) = drate_dT; + } } -#endif - rate_p_Ca48_to_n_Sc48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ca48_to_n_Sc48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ca48_to_n_Sc48_reaclib) = drate_dT; - } - } - { - // He4_Ca48_to_n_Ti51_reaclib + { + // Co53_He4_to_Cu57_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ca48); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca48); - } + log_scor = rate_eval.log_screen(k_He4_Co53); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co53); + } #endif - rate_He4_Ca48_to_n_Ti51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ca48_to_n_Ti51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ca48_to_n_Ti51_reaclib) = drate_dT; + rate_Co53_He4_to_Cu57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co53_He4_to_Cu57_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co53_He4_to_Cu57_reaclib) = drate_dT; + } } - } - { - // n_Sc43_to_p_Ca43_reaclib + { + // Co54_n_to_Co55_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Sc43_to_p_Ca43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Sc43_to_p_Ca43_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Sc43_to_p_Ca43_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co54_n_to_Co55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co54_n_to_Co55_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co54_n_to_Co55_reaclib) = drate_dT; + } } - } - { - // n_Sc43_to_He4_K40_reaclib + { + // Co54_He4_to_Cu58_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Sc43_to_He4_K40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Sc43_to_He4_K40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Sc43_to_He4_K40_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Co54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co54); + } +#endif + rate_Co54_He4_to_Cu58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co54_He4_to_Cu58_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co54_He4_to_Cu58_reaclib) = drate_dT; + } } - } - { - // p_Sc43_to_He4_Ca40_reaclib + { + // Co55_n_to_Co56_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Sc43); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc43); - } -#endif - rate_p_Sc43_to_He4_Ca40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc43_to_He4_Ca40_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc43_to_He4_Ca40_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co55_n_to_Co56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co55_n_to_Co56_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co55_n_to_Co56_reaclib) = drate_dT; + } } - } - { - // He4_Sc43_to_n_V46_reaclib + { + // Co55_p_to_Ni56_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Sc43); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc43); - } + log_scor = rate_eval.log_screen(k_p_Co55); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co55); + } #endif - rate_He4_Sc43_to_n_V46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Sc43_to_n_V46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Sc43_to_n_V46_reaclib) = drate_dT; + rate_Co55_p_to_Ni56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co55_p_to_Ni56_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co55_p_to_Ni56_reaclib) = drate_dT; + } } - } - { - // He4_Sc43_to_p_Ti46_reaclib + { + // Co55_He4_to_Cu59_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Sc43); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc43); - } + log_scor = rate_eval.log_screen(k_He4_Co55); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co55); + } #endif - rate_He4_Sc43_to_p_Ti46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Sc43_to_p_Ti46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Sc43_to_p_Ti46_reaclib) = drate_dT; + rate_Co55_He4_to_Cu59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co55_He4_to_Cu59_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co55_He4_to_Cu59_reaclib) = drate_dT; + } } - } - { - // n_Sc44_to_p_Ca44_reaclib + { + // Co56_n_to_Co57_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Sc44_to_p_Ca44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Sc44_to_p_Ca44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Sc44_to_p_Ca44_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co56_n_to_Co57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co56_n_to_Co57_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co56_n_to_Co57_reaclib) = drate_dT; + } } - } - { - // n_Sc44_to_He4_K41_reaclib + { + // Co56_p_to_Ni57_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Sc44_to_He4_K41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Sc44_to_He4_K41_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Sc44_to_He4_K41_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Co56); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co56); + } +#endif + rate_Co56_p_to_Ni57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co56_p_to_Ni57_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co56_p_to_Ni57_reaclib) = drate_dT; + } } - } - { - // p_Sc44_to_n_Ti44_reaclib + { + // Co56_He4_to_Cu60_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Sc44); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc44); - } + log_scor = rate_eval.log_screen(k_He4_Co56); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co56); + } #endif - rate_p_Sc44_to_n_Ti44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc44_to_n_Ti44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc44_to_n_Ti44_reaclib) = drate_dT; + rate_Co56_He4_to_Cu60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co56_He4_to_Cu60_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co56_He4_to_Cu60_reaclib) = drate_dT; + } } - } - { - // p_Sc44_to_He4_Ca41_reaclib + { + // Co57_n_to_Co58_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Sc44); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc44); - } -#endif - rate_p_Sc44_to_He4_Ca41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc44_to_He4_Ca41_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc44_to_He4_Ca41_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co57_n_to_Co58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co57_n_to_Co58_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co57_n_to_Co58_reaclib) = drate_dT; + } } - } - { - // He4_Sc44_to_n_V47_reaclib + { + // Co57_p_to_Ni58_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Sc44); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc44); - } + log_scor = rate_eval.log_screen(k_p_Co57); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co57); + } #endif - rate_He4_Sc44_to_n_V47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Sc44_to_n_V47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Sc44_to_n_V47_reaclib) = drate_dT; + rate_Co57_p_to_Ni58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co57_p_to_Ni58_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co57_p_to_Ni58_reaclib) = drate_dT; + } } - } - { - // He4_Sc44_to_p_Ti47_reaclib + { + // Co57_He4_to_Cu61_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Sc44); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc44); - } + log_scor = rate_eval.log_screen(k_He4_Co57); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co57); + } #endif - rate_He4_Sc44_to_p_Ti47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Sc44_to_p_Ti47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Sc44_to_p_Ti47_reaclib) = drate_dT; + rate_Co57_He4_to_Cu61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co57_He4_to_Cu61_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co57_He4_to_Cu61_reaclib) = drate_dT; + } } - } - { - // n_Sc45_to_p_Ca45_reaclib + { + // Co58_n_to_Co59_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Sc45_to_p_Ca45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Sc45_to_p_Ca45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Sc45_to_p_Ca45_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co58_n_to_Co59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co58_n_to_Co59_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co58_n_to_Co59_reaclib) = drate_dT; + } } - } - { - // p_Sc45_to_n_Ti45_reaclib + { + // Co58_p_to_Ni59_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Sc45); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc45); - } + log_scor = rate_eval.log_screen(k_p_Co58); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co58); + } #endif - rate_p_Sc45_to_n_Ti45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc45_to_n_Ti45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc45_to_n_Ti45_reaclib) = drate_dT; + rate_Co58_p_to_Ni59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co58_p_to_Ni59_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co58_p_to_Ni59_reaclib) = drate_dT; + } } - } - { - // p_Sc45_to_He4_Ca42_reaclib + { + // Co58_He4_to_Cu62_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Sc45); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc45); - } + log_scor = rate_eval.log_screen(k_He4_Co58); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co58); + } #endif - rate_p_Sc45_to_He4_Ca42_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc45_to_He4_Ca42_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc45_to_He4_Ca42_reaclib) = drate_dT; + rate_Co58_He4_to_Cu62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co58_He4_to_Cu62_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co58_He4_to_Cu62_reaclib) = drate_dT; + } } - } - { - // He4_Sc45_to_n_V48_reaclib + { + // Co59_p_to_Ni60_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Sc45); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc45); - } + log_scor = rate_eval.log_screen(k_p_Co59); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co59); + } #endif - rate_He4_Sc45_to_n_V48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Sc45_to_n_V48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Sc45_to_n_V48_reaclib) = drate_dT; + rate_Co59_p_to_Ni60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co59_p_to_Ni60_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co59_p_to_Ni60_reaclib) = drate_dT; + } } - } - { - // He4_Sc45_to_p_Ti48_reaclib + { + // Co59_He4_to_Cu63_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Sc45); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc45); - } + log_scor = rate_eval.log_screen(k_He4_Co59); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co59); + } #endif - rate_He4_Sc45_to_p_Ti48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Sc45_to_p_Ti48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Sc45_to_p_Ti48_reaclib) = drate_dT; + rate_Co59_He4_to_Cu63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co59_He4_to_Cu63_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co59_He4_to_Cu63_reaclib) = drate_dT; + } } - } - { - // n_Sc46_to_p_Ca46_reaclib + { + // Ni56_n_to_Ni57_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Sc46_to_p_Ca46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Sc46_to_p_Ca46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Sc46_to_p_Ca46_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni56_n_to_Ni57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni56_n_to_Ni57_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni56_n_to_Ni57_reaclib) = drate_dT; + } } - } - { - // p_Sc46_to_n_Ti46_reaclib + { + // Ni56_p_to_Cu57_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Sc46); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc46); - } + log_scor = rate_eval.log_screen(k_p_Ni56); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni56); + } #endif - rate_p_Sc46_to_n_Ti46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc46_to_n_Ti46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc46_to_n_Ti46_reaclib) = drate_dT; + rate_Ni56_p_to_Cu57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni56_p_to_Cu57_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni56_p_to_Cu57_reaclib) = drate_dT; + } } - } - { - // p_Sc46_to_He4_Ca43_reaclib + { + // Ni56_He4_to_Zn60_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Sc46); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc46); - } + log_scor = rate_eval.log_screen(k_He4_Ni56); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni56); + } #endif - rate_p_Sc46_to_He4_Ca43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc46_to_He4_Ca43_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc46_to_He4_Ca43_reaclib) = drate_dT; + rate_Ni56_He4_to_Zn60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni56_He4_to_Zn60_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni56_He4_to_Zn60_reaclib) = drate_dT; + } } - } - { - // He4_Sc46_to_n_V49_reaclib + { + // Ni57_n_to_Ni58_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Sc46); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc46); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni57_n_to_Ni58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni57_n_to_Ni58_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni57_n_to_Ni58_reaclib) = drate_dT; + } } + + { + // Ni57_p_to_Cu58_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ni57); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni57); + } #endif - rate_He4_Sc46_to_n_V49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Sc46_to_n_V49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Sc46_to_n_V49_reaclib) = drate_dT; + rate_Ni57_p_to_Cu58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni57_p_to_Cu58_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni57_p_to_Cu58_reaclib) = drate_dT; + } } - } - { - // He4_Sc46_to_p_Ti49_reaclib + { + // Ni57_He4_to_Zn61_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Sc46); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc46); - } + log_scor = rate_eval.log_screen(k_He4_Ni57); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni57); + } #endif - rate_He4_Sc46_to_p_Ti49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Sc46_to_p_Ti49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Sc46_to_p_Ti49_reaclib) = drate_dT; + rate_Ni57_He4_to_Zn61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni57_He4_to_Zn61_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni57_He4_to_Zn61_reaclib) = drate_dT; + } } - } - { - // n_Sc47_to_p_Ca47_reaclib + { + // Ni58_n_to_Ni59_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Sc47_to_p_Ca47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Sc47_to_p_Ca47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Sc47_to_p_Ca47_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni58_n_to_Ni59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni58_n_to_Ni59_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni58_n_to_Ni59_reaclib) = drate_dT; + } } - } - { - // p_Sc47_to_n_Ti47_reaclib + { + // Ni58_p_to_Cu59_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Sc47); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc47); - } + log_scor = rate_eval.log_screen(k_p_Ni58); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni58); + } #endif - rate_p_Sc47_to_n_Ti47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc47_to_n_Ti47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc47_to_n_Ti47_reaclib) = drate_dT; + rate_Ni58_p_to_Cu59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni58_p_to_Cu59_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni58_p_to_Cu59_reaclib) = drate_dT; + } } - } - { - // p_Sc47_to_He4_Ca44_reaclib + { + // Ni58_He4_to_Zn62_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Sc47); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc47); - } + log_scor = rate_eval.log_screen(k_He4_Ni58); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni58); + } #endif - rate_p_Sc47_to_He4_Ca44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc47_to_He4_Ca44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc47_to_He4_Ca44_reaclib) = drate_dT; + rate_Ni58_He4_to_Zn62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni58_He4_to_Zn62_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni58_He4_to_Zn62_reaclib) = drate_dT; + } } - } - { - // He4_Sc47_to_n_V50_reaclib + { + // Ni59_n_to_Ni60_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Sc47); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc47); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni59_n_to_Ni60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni59_n_to_Ni60_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni59_n_to_Ni60_reaclib) = drate_dT; + } } + + { + // Ni59_p_to_Cu60_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ni59); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni59); + } #endif - rate_He4_Sc47_to_n_V50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Sc47_to_n_V50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Sc47_to_n_V50_reaclib) = drate_dT; + rate_Ni59_p_to_Cu60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni59_p_to_Cu60_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni59_p_to_Cu60_reaclib) = drate_dT; + } } - } - { - // He4_Sc47_to_p_Ti50_reaclib + { + // Ni59_He4_to_Zn63_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Sc47); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc47); - } + log_scor = rate_eval.log_screen(k_He4_Ni59); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni59); + } #endif - rate_He4_Sc47_to_p_Ti50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Sc47_to_p_Ti50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Sc47_to_p_Ti50_reaclib) = drate_dT; + rate_Ni59_He4_to_Zn63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni59_He4_to_Zn63_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni59_He4_to_Zn63_reaclib) = drate_dT; + } } - } - { - // n_Sc48_to_p_Ca48_reaclib + { + // Ni60_n_to_Ni61_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Sc48_to_p_Ca48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Sc48_to_p_Ca48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Sc48_to_p_Ca48_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni60_n_to_Ni61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni60_n_to_Ni61_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni60_n_to_Ni61_reaclib) = drate_dT; + } } - } - { - // p_Sc48_to_n_Ti48_reaclib + { + // Ni60_p_to_Cu61_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Sc48); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc48); - } + log_scor = rate_eval.log_screen(k_p_Ni60); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni60); + } #endif - rate_p_Sc48_to_n_Ti48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc48_to_n_Ti48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc48_to_n_Ti48_reaclib) = drate_dT; + rate_Ni60_p_to_Cu61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni60_p_to_Cu61_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni60_p_to_Cu61_reaclib) = drate_dT; + } } - } - { - // p_Sc48_to_He4_Ca45_reaclib + { + // Ni60_He4_to_Zn64_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Sc48); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc48); - } + log_scor = rate_eval.log_screen(k_He4_Ni60); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni60); + } #endif - rate_p_Sc48_to_He4_Ca45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc48_to_He4_Ca45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc48_to_He4_Ca45_reaclib) = drate_dT; + rate_Ni60_He4_to_Zn64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni60_He4_to_Zn64_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni60_He4_to_Zn64_reaclib) = drate_dT; + } } - } - { - // He4_Sc48_to_n_V51_reaclib + { + // Ni61_n_to_Ni62_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Sc48); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc48); - } -#endif - rate_He4_Sc48_to_n_V51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Sc48_to_n_V51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Sc48_to_n_V51_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni61_n_to_Ni62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni61_n_to_Ni62_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni61_n_to_Ni62_reaclib) = drate_dT; + } } - } - { - // He4_Sc48_to_p_Ti51_reaclib + { + // Ni61_p_to_Cu62_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Sc48); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc48); - } + log_scor = rate_eval.log_screen(k_p_Ni61); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni61); + } #endif - rate_He4_Sc48_to_p_Ti51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Sc48_to_p_Ti51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Sc48_to_p_Ti51_reaclib) = drate_dT; + rate_Ni61_p_to_Cu62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni61_p_to_Cu62_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni61_p_to_Cu62_reaclib) = drate_dT; + } } - } - { - // p_Sc49_to_n_Ti49_reaclib + { + // Ni61_He4_to_Zn65_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Sc49); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc49); - } + log_scor = rate_eval.log_screen(k_He4_Ni61); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni61); + } #endif - rate_p_Sc49_to_n_Ti49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc49_to_n_Ti49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc49_to_n_Ti49_reaclib) = drate_dT; + rate_Ni61_He4_to_Zn65_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni61_He4_to_Zn65_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni61_He4_to_Zn65_reaclib) = drate_dT; + } } - } - { - // p_Sc49_to_He4_Ca46_reaclib + { + // Ni62_n_to_Ni63_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Sc49); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc49); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni62_n_to_Ni63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni62_n_to_Ni63_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni62_n_to_Ni63_reaclib) = drate_dT; + } } + + { + // Ni62_p_to_Cu63_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ni62); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni62); + } #endif - rate_p_Sc49_to_He4_Ca46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Sc49_to_He4_Ca46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Sc49_to_He4_Ca46_reaclib) = drate_dT; + rate_Ni62_p_to_Cu63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni62_p_to_Cu63_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni62_p_to_Cu63_reaclib) = drate_dT; + } } - } - { - // He4_Sc49_to_n_V52_reaclib + { + // Ni62_He4_to_Zn66_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Sc49); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc49); - } + log_scor = rate_eval.log_screen(k_He4_Ni62); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni62); + } #endif - rate_He4_Sc49_to_n_V52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Sc49_to_n_V52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Sc49_to_n_V52_reaclib) = drate_dT; + rate_Ni62_He4_to_Zn66_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni62_He4_to_Zn66_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni62_He4_to_Zn66_reaclib) = drate_dT; + } } - } - { - // n_Ti44_to_p_Sc44_reaclib + { + // Ni63_n_to_Ni64_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ti44_to_p_Sc44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ti44_to_p_Sc44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ti44_to_p_Sc44_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni63_n_to_Ni64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni63_n_to_Ni64_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni63_n_to_Ni64_reaclib) = drate_dT; + } } - } - { - // n_Ti44_to_He4_Ca41_reaclib + { + // Ni63_p_to_Cu64_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ti44_to_He4_Ca41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ti44_to_He4_Ca41_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ti44_to_He4_Ca41_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ni63); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni63); + } +#endif + rate_Ni63_p_to_Cu64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni63_p_to_Cu64_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni63_p_to_Cu64_reaclib) = drate_dT; + } } - } - { - // He4_Ti44_to_p_V47_reaclib + { + // Ni64_p_to_Cu65_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ti44); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti44); - } + log_scor = rate_eval.log_screen(k_p_Ni64); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni64); + } #endif - rate_He4_Ti44_to_p_V47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti44_to_p_V47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti44_to_p_V47_reaclib) = drate_dT; + rate_Ni64_p_to_Cu65_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni64_p_to_Cu65_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni64_p_to_Cu65_reaclib) = drate_dT; + } } - } - { - // n_Ti45_to_p_Sc45_reaclib + { + // Cu57_n_to_Cu58_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ti45_to_p_Sc45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ti45_to_p_Sc45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ti45_to_p_Sc45_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu57_n_to_Cu58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu57_n_to_Cu58_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu57_n_to_Cu58_reaclib) = drate_dT; + } } - } - { - // n_Ti45_to_He4_Ca42_reaclib + { + // Cu58_n_to_Cu59_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ti45_to_He4_Ca42_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ti45_to_He4_Ca42_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ti45_to_He4_Ca42_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu58_n_to_Cu59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu58_n_to_Cu59_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu58_n_to_Cu59_reaclib) = drate_dT; + } } - } - { - // He4_Ti45_to_n_Cr48_reaclib + { + // Cu58_p_to_Zn59_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ti45); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti45); - } + log_scor = rate_eval.log_screen(k_p_Cu58); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu58); + } #endif - rate_He4_Ti45_to_n_Cr48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti45_to_n_Cr48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti45_to_n_Cr48_reaclib) = drate_dT; + rate_Cu58_p_to_Zn59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu58_p_to_Zn59_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu58_p_to_Zn59_reaclib) = drate_dT; + } } - } - { - // He4_Ti45_to_p_V48_reaclib + { + // Cu58_He4_to_Ga62_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ti45); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti45); - } + log_scor = rate_eval.log_screen(k_He4_Cu58); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu58); + } #endif - rate_He4_Ti45_to_p_V48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti45_to_p_V48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti45_to_p_V48_reaclib) = drate_dT; - } - } - - { - // n_Ti46_to_p_Sc46_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ti46_to_p_Sc46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ti46_to_p_Sc46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ti46_to_p_Sc46_reaclib) = drate_dT; + rate_Cu58_He4_to_Ga62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu58_He4_to_Ga62_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu58_He4_to_Ga62_reaclib) = drate_dT; + } } - } - { - // n_Ti46_to_He4_Ca43_reaclib + { + // Cu59_n_to_Cu60_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ti46_to_He4_Ca43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ti46_to_He4_Ca43_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ti46_to_He4_Ca43_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu59_n_to_Cu60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu59_n_to_Cu60_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu59_n_to_Cu60_reaclib) = drate_dT; + } } - } - { - // p_Ti46_to_n_V46_reaclib + { + // Cu59_p_to_Zn60_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ti46); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti46); - } + log_scor = rate_eval.log_screen(k_p_Cu59); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu59); + } #endif - rate_p_Ti46_to_n_V46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ti46_to_n_V46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ti46_to_n_V46_reaclib) = drate_dT; + rate_Cu59_p_to_Zn60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu59_p_to_Zn60_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu59_p_to_Zn60_reaclib) = drate_dT; + } } - } - { - // p_Ti46_to_He4_Sc43_reaclib + { + // Cu59_He4_to_Ga63_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ti46); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti46); - } + log_scor = rate_eval.log_screen(k_He4_Cu59); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu59); + } #endif - rate_p_Ti46_to_He4_Sc43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ti46_to_He4_Sc43_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ti46_to_He4_Sc43_reaclib) = drate_dT; + rate_Cu59_He4_to_Ga63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu59_He4_to_Ga63_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu59_He4_to_Ga63_reaclib) = drate_dT; + } } - } - { - // He4_Ti46_to_n_Cr49_reaclib + { + // Cu60_n_to_Cu61_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ti46); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti46); - } -#endif - rate_He4_Ti46_to_n_Cr49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti46_to_n_Cr49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti46_to_n_Cr49_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu60_n_to_Cu61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu60_n_to_Cu61_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu60_n_to_Cu61_reaclib) = drate_dT; + } } - } - { - // He4_Ti46_to_p_V49_reaclib + { + // Cu60_p_to_Zn61_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ti46); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti46); - } + log_scor = rate_eval.log_screen(k_p_Cu60); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu60); + } #endif - rate_He4_Ti46_to_p_V49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti46_to_p_V49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti46_to_p_V49_reaclib) = drate_dT; + rate_Cu60_p_to_Zn61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu60_p_to_Zn61_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu60_p_to_Zn61_reaclib) = drate_dT; + } } - } - { - // n_Ti47_to_p_Sc47_reaclib + { + // Cu60_He4_to_Ga64_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ti47_to_p_Sc47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ti47_to_p_Sc47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ti47_to_p_Sc47_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Cu60); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu60); + } +#endif + rate_Cu60_He4_to_Ga64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu60_He4_to_Ga64_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu60_He4_to_Ga64_reaclib) = drate_dT; + } } - } - { - // n_Ti47_to_He4_Ca44_reaclib + { + // Cu61_n_to_Cu62_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ti47_to_He4_Ca44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ti47_to_He4_Ca44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ti47_to_He4_Ca44_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu61_n_to_Cu62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu61_n_to_Cu62_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu61_n_to_Cu62_reaclib) = drate_dT; + } } - } - { - // p_Ti47_to_n_V47_reaclib + { + // Cu61_p_to_Zn62_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ti47); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti47); - } + log_scor = rate_eval.log_screen(k_p_Cu61); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu61); + } #endif - rate_p_Ti47_to_n_V47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ti47_to_n_V47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ti47_to_n_V47_reaclib) = drate_dT; + rate_Cu61_p_to_Zn62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu61_p_to_Zn62_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu61_p_to_Zn62_reaclib) = drate_dT; + } } - } - { - // p_Ti47_to_He4_Sc44_reaclib + { + // Cu62_n_to_Cu63_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ti47); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti47); - } -#endif - rate_p_Ti47_to_He4_Sc44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ti47_to_He4_Sc44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ti47_to_He4_Sc44_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu62_n_to_Cu63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu62_n_to_Cu63_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu62_n_to_Cu63_reaclib) = drate_dT; + } } - } - { - // He4_Ti47_to_n_Cr50_reaclib + { + // Cu62_p_to_Zn63_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ti47); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti47); - } + log_scor = rate_eval.log_screen(k_p_Cu62); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu62); + } #endif - rate_He4_Ti47_to_n_Cr50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti47_to_n_Cr50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti47_to_n_Cr50_reaclib) = drate_dT; + rate_Cu62_p_to_Zn63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu62_p_to_Zn63_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu62_p_to_Zn63_reaclib) = drate_dT; + } } - } - { - // He4_Ti47_to_p_V50_reaclib + { + // Cu63_n_to_Cu64_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ti47); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti47); - } -#endif - rate_He4_Ti47_to_p_V50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti47_to_p_V50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti47_to_p_V50_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu63_n_to_Cu64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu63_n_to_Cu64_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu63_n_to_Cu64_reaclib) = drate_dT; + } } - } - { - // n_Ti48_to_p_Sc48_reaclib + { + // Cu63_p_to_Zn64_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ti48_to_p_Sc48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ti48_to_p_Sc48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ti48_to_p_Sc48_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cu63); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu63); + } +#endif + rate_Cu63_p_to_Zn64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu63_p_to_Zn64_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu63_p_to_Zn64_reaclib) = drate_dT; + } } - } - { - // n_Ti48_to_He4_Ca45_reaclib + { + // Cu64_n_to_Cu65_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ti48_to_He4_Ca45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ti48_to_He4_Ca45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ti48_to_He4_Ca45_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu64_n_to_Cu65_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu64_n_to_Cu65_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu64_n_to_Cu65_reaclib) = drate_dT; + } } - } - { - // p_Ti48_to_n_V48_reaclib + { + // Cu64_p_to_Zn65_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ti48); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti48); - } + log_scor = rate_eval.log_screen(k_p_Cu64); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu64); + } #endif - rate_p_Ti48_to_n_V48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ti48_to_n_V48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ti48_to_n_V48_reaclib) = drate_dT; + rate_Cu64_p_to_Zn65_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu64_p_to_Zn65_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu64_p_to_Zn65_reaclib) = drate_dT; + } } - } - { - // p_Ti48_to_He4_Sc45_reaclib + { + // Cu65_p_to_Zn66_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ti48); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti48); - } + log_scor = rate_eval.log_screen(k_p_Cu65); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu65); + } #endif - rate_p_Ti48_to_He4_Sc45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ti48_to_He4_Sc45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ti48_to_He4_Sc45_reaclib) = drate_dT; + rate_Cu65_p_to_Zn66_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu65_p_to_Zn66_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu65_p_to_Zn66_reaclib) = drate_dT; + } } - } - { - // He4_Ti48_to_n_Cr51_reaclib + { + // Zn59_n_to_Zn60_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ti48); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti48); - } -#endif - rate_He4_Ti48_to_n_Cr51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti48_to_n_Cr51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti48_to_n_Cr51_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn59_n_to_Zn60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn59_n_to_Zn60_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn59_n_to_Zn60_reaclib) = drate_dT; + } } - } - { - // He4_Ti48_to_p_V51_reaclib + { + // Zn59_He4_to_Ge63_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ti48); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti48); - } + log_scor = rate_eval.log_screen(k_He4_Zn59); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Zn59); + } #endif - rate_He4_Ti48_to_p_V51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti48_to_p_V51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti48_to_p_V51_reaclib) = drate_dT; + rate_Zn59_He4_to_Ge63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn59_He4_to_Ge63_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn59_He4_to_Ge63_reaclib) = drate_dT; + } } - } - { - // n_Ti49_to_p_Sc49_reaclib + { + // Zn60_n_to_Zn61_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ti49_to_p_Sc49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ti49_to_p_Sc49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ti49_to_p_Sc49_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn60_n_to_Zn61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn60_n_to_Zn61_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn60_n_to_Zn61_reaclib) = drate_dT; + } } - } - { - // n_Ti49_to_He4_Ca46_reaclib + { + // Zn60_He4_to_Ge64_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ti49_to_He4_Ca46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ti49_to_He4_Ca46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ti49_to_He4_Ca46_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Zn60); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Zn60); + } +#endif + rate_Zn60_He4_to_Ge64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn60_He4_to_Ge64_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn60_He4_to_Ge64_reaclib) = drate_dT; + } } - } - { - // p_Ti49_to_n_V49_reaclib + { + // Zn61_n_to_Zn62_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ti49); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti49); - } -#endif - rate_p_Ti49_to_n_V49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ti49_to_n_V49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ti49_to_n_V49_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn61_n_to_Zn62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn61_n_to_Zn62_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn61_n_to_Zn62_reaclib) = drate_dT; + } } - } - { - // p_Ti49_to_He4_Sc46_reaclib + { + // Zn61_p_to_Ga62_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ti49); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti49); - } + log_scor = rate_eval.log_screen(k_p_Zn61); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn61); + } #endif - rate_p_Ti49_to_He4_Sc46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ti49_to_He4_Sc46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ti49_to_He4_Sc46_reaclib) = drate_dT; + rate_Zn61_p_to_Ga62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn61_p_to_Ga62_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn61_p_to_Ga62_reaclib) = drate_dT; + } } - } - { - // He4_Ti49_to_n_Cr52_reaclib + { + // Zn62_n_to_Zn63_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ti49); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti49); - } -#endif - rate_He4_Ti49_to_n_Cr52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti49_to_n_Cr52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti49_to_n_Cr52_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn62_n_to_Zn63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn62_n_to_Zn63_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn62_n_to_Zn63_reaclib) = drate_dT; + } } - } - { - // He4_Ti49_to_p_V52_reaclib + { + // Zn62_p_to_Ga63_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ti49); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti49); - } + log_scor = rate_eval.log_screen(k_p_Zn62); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn62); + } #endif - rate_He4_Ti49_to_p_V52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti49_to_p_V52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti49_to_p_V52_reaclib) = drate_dT; + rate_Zn62_p_to_Ga63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn62_p_to_Ga63_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn62_p_to_Ga63_reaclib) = drate_dT; + } } - } - { - // n_Ti50_to_He4_Ca47_reaclib + { + // Zn63_n_to_Zn64_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ti50_to_He4_Ca47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ti50_to_He4_Ca47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ti50_to_He4_Ca47_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn63_n_to_Zn64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn63_n_to_Zn64_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn63_n_to_Zn64_reaclib) = drate_dT; + } } - } - { - // p_Ti50_to_n_V50_reaclib + { + // Zn63_p_to_Ga64_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ti50); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti50); - } + log_scor = rate_eval.log_screen(k_p_Zn63); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn63); + } #endif - rate_p_Ti50_to_n_V50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ti50_to_n_V50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ti50_to_n_V50_reaclib) = drate_dT; + rate_Zn63_p_to_Ga64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn63_p_to_Ga64_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn63_p_to_Ga64_reaclib) = drate_dT; + } } - } - { - // p_Ti50_to_He4_Sc47_reaclib + { + // Zn64_n_to_Zn65_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ti50); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti50); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn64_n_to_Zn65_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn64_n_to_Zn65_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn64_n_to_Zn65_reaclib) = drate_dT; + } } -#endif - rate_p_Ti50_to_He4_Sc47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ti50_to_He4_Sc47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ti50_to_He4_Sc47_reaclib) = drate_dT; + + { + // Zn65_n_to_Zn66_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn65_n_to_Zn66_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn65_n_to_Zn66_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn65_n_to_Zn66_reaclib) = drate_dT; + } } - } - { - // He4_Ti50_to_n_Cr53_reaclib + { + // Ga62_n_to_Ga63_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ti50); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti50); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ga62_n_to_Ga63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ga62_n_to_Ga63_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga62_n_to_Ga63_reaclib) = drate_dT; + } } + + { + // Ga62_p_to_Ge63_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ga62); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ga62); + } #endif - rate_He4_Ti50_to_n_Cr53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti50_to_n_Cr53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti50_to_n_Cr53_reaclib) = drate_dT; + rate_Ga62_p_to_Ge63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ga62_p_to_Ge63_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga62_p_to_Ge63_reaclib) = drate_dT; + } } - } - { - // n_Ti51_to_He4_Ca48_reaclib + { + // Ga63_n_to_Ga64_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ti51_to_He4_Ca48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ti51_to_He4_Ca48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ti51_to_He4_Ca48_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ga63_n_to_Ga64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ga63_n_to_Ga64_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga63_n_to_Ga64_reaclib) = drate_dT; + } } - } - { - // p_Ti51_to_n_V51_reaclib + { + // Ga63_p_to_Ge64_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ti51); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti51); - } + log_scor = rate_eval.log_screen(k_p_Ga63); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ga63); + } #endif - rate_p_Ti51_to_n_V51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ti51_to_n_V51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ti51_to_n_V51_reaclib) = drate_dT; + rate_Ga63_p_to_Ge64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ga63_p_to_Ge64_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga63_p_to_Ge64_reaclib) = drate_dT; + } } - } - { - // p_Ti51_to_He4_Sc48_reaclib + { + // Ge63_n_to_Ge64_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ti51); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti51); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ge63_n_to_Ge64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ge63_n_to_Ge64_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ge63_n_to_Ge64_reaclib) = drate_dT; + } } + + { + // d_d_to_n_He3_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_d_d); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_d_d); + } #endif - rate_p_Ti51_to_He4_Sc48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ti51_to_He4_Sc48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ti51_to_He4_Sc48_reaclib) = drate_dT; + rate_d_d_to_n_He3_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_d_d_to_n_He3_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_d_d_to_n_He3_reaclib) = drate_dT; + } } - } - { - // He4_Ti51_to_n_Cr54_reaclib + { + // He3_d_to_p_He4_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ti51); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti51); - } + log_scor = rate_eval.log_screen(k_d_He3); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_d_He3); + } #endif - rate_He4_Ti51_to_n_Cr54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ti51_to_n_Cr54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ti51_to_n_Cr54_reaclib) = drate_dT; + rate_He3_d_to_p_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_He3_d_to_p_He4_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He3_d_to_p_He4_reaclib) = drate_dT; + } } - } - { - // n_V46_to_p_Ti46_reaclib + { + // Li6_p_to_He4_He3_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_V46_to_p_Ti46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_V46_to_p_Ti46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_V46_to_p_Ti46_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Li6); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Li6); + } +#endif + rate_Li6_p_to_He4_He3_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Li6_p_to_He4_He3_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Li6_p_to_He4_He3_reaclib) = drate_dT; + } } - } - { - // n_V46_to_He4_Sc43_reaclib + { + // Li6_d_to_n_Be7_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_V46_to_He4_Sc43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_V46_to_He4_Sc43_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_V46_to_He4_Sc43_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_d_Li6); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_d_Li6); + } +#endif + rate_Li6_d_to_n_Be7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Li6_d_to_n_Be7_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Li6_d_to_n_Be7_reaclib) = drate_dT; + } } - } - { - // He4_V46_to_p_Cr49_reaclib + { + // Li6_d_to_p_Li7_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_V46); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V46); - } + log_scor = rate_eval.log_screen(k_d_Li6); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_d_Li6); + } #endif - rate_He4_V46_to_p_Cr49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_V46_to_p_Cr49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_V46_to_p_Cr49_reaclib) = drate_dT; + rate_Li6_d_to_p_Li7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Li6_d_to_p_Li7_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Li6_d_to_p_Li7_reaclib) = drate_dT; + } } - } - { - // n_V47_to_p_Ti47_reaclib + { + // Li7_p_to_He4_He4_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_V47_to_p_Ti47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_V47_to_p_Ti47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_V47_to_p_Ti47_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Li7); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Li7); + } +#endif + rate_Li7_p_to_He4_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Li7_p_to_He4_He4_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Li7_p_to_He4_He4_reaclib) = drate_dT; + } } - } - { - // n_V47_to_He4_Sc44_reaclib + { + // Be7_n_to_p_Li7_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_V47_to_He4_Sc44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_V47_to_He4_Sc44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_V47_to_He4_Sc44_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Be7_n_to_p_Li7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Be7_n_to_p_Li7_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Be7_n_to_p_Li7_reaclib) = drate_dT; + } } - } - { - // p_V47_to_He4_Ti44_reaclib + { + // Be7_n_to_He4_He4_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_V47); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V47); - } -#endif - rate_p_V47_to_He4_Ti44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_V47_to_He4_Ti44_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V47_to_He4_Ti44_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Be7_n_to_He4_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Be7_n_to_He4_He4_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Be7_n_to_He4_He4_reaclib) = drate_dT; + } } - } - { - // He4_V47_to_n_Mn50_reaclib + { + // Be9_p_to_He4_Li6_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_V47); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V47); - } + log_scor = rate_eval.log_screen(k_p_Be9); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Be9); + } #endif - rate_He4_V47_to_n_Mn50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_V47_to_n_Mn50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_V47_to_n_Mn50_reaclib) = drate_dT; + rate_Be9_p_to_He4_Li6_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Be9_p_to_He4_Li6_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Be9_p_to_He4_Li6_reaclib) = drate_dT; + } } - } - { - // He4_V47_to_p_Cr50_reaclib + { + // Be9_He4_to_n_C12_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_V47); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V47); - } + log_scor = rate_eval.log_screen(k_He4_Be9); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Be9); + } #endif - rate_He4_V47_to_p_Cr50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_V47_to_p_Cr50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_V47_to_p_Cr50_reaclib) = drate_dT; + rate_Be9_He4_to_n_C12_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Be9_He4_to_n_C12_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Be9_He4_to_n_C12_reaclib) = drate_dT; + } } - } - { - // n_V48_to_p_Ti48_reaclib + { + // B10_n_to_He4_Li7_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_V48_to_p_Ti48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_V48_to_p_Ti48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_V48_to_p_Ti48_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_B10_n_to_He4_Li7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_B10_n_to_He4_Li7_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_B10_n_to_He4_Li7_reaclib) = drate_dT; + } } - } - { - // n_V48_to_He4_Sc45_reaclib + { + // B10_p_to_He4_Be7_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_V48_to_He4_Sc45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_V48_to_He4_Sc45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_V48_to_He4_Sc45_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_B10); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_B10); + } +#endif + rate_B10_p_to_He4_Be7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_B10_p_to_He4_Be7_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_B10_p_to_He4_Be7_reaclib) = drate_dT; + } } - } - { - // p_V48_to_n_Cr48_reaclib + { + // B10_He4_to_n_N13_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_V48); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V48); - } + log_scor = rate_eval.log_screen(k_He4_B10); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_B10); + } #endif - rate_p_V48_to_n_Cr48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_V48_to_n_Cr48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V48_to_n_Cr48_reaclib) = drate_dT; + rate_B10_He4_to_n_N13_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_B10_He4_to_n_N13_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_B10_He4_to_n_N13_reaclib) = drate_dT; + } } - } - { - // p_V48_to_He4_Ti45_reaclib + { + // B10_He4_to_p_C13_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_V48); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V48); - } + log_scor = rate_eval.log_screen(k_He4_B10); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_B10); + } #endif - rate_p_V48_to_He4_Ti45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_V48_to_He4_Ti45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V48_to_He4_Ti45_reaclib) = drate_dT; + rate_B10_He4_to_p_C13_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_B10_He4_to_p_C13_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_B10_He4_to_p_C13_reaclib) = drate_dT; + } } - } - { - // He4_V48_to_n_Mn51_reaclib + { + // B11_He4_to_n_N14_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_V48); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V48); - } + log_scor = rate_eval.log_screen(k_He4_B11); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_B11); + } #endif - rate_He4_V48_to_n_Mn51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_V48_to_n_Mn51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_V48_to_n_Mn51_reaclib) = drate_dT; + rate_B11_He4_to_n_N14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_B11_He4_to_n_N14_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_B11_He4_to_n_N14_reaclib) = drate_dT; + } } - } - { - // He4_V48_to_p_Cr51_reaclib + { + // B11_He4_to_p_C14_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_V48); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V48); - } + log_scor = rate_eval.log_screen(k_He4_B11); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_B11); + } #endif - rate_He4_V48_to_p_Cr51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_V48_to_p_Cr51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_V48_to_p_Cr51_reaclib) = drate_dT; + rate_B11_He4_to_p_C14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_B11_He4_to_p_C14_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_B11_He4_to_p_C14_reaclib) = drate_dT; + } } - } - { - // n_V49_to_p_Ti49_reaclib + { + // C12_C12_to_p_Na23_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_V49_to_p_Ti49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_V49_to_p_Ti49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_V49_to_p_Ti49_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_C12_C12); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_C12); + } +#endif + rate_C12_C12_to_p_Na23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_C12_to_p_Na23_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_C12_to_p_Na23_reaclib) = drate_dT; + } } - } - { - // n_V49_to_He4_Sc46_reaclib + { + // C12_C12_to_He4_Ne20_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_V49_to_He4_Sc46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_V49_to_He4_Sc46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_V49_to_He4_Sc46_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_C12_C12); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_C12); + } +#endif + rate_C12_C12_to_He4_Ne20_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C12_C12_to_He4_Ne20_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C12_C12_to_He4_Ne20_reaclib) = drate_dT; + } } - } - { - // p_V49_to_n_Cr49_reaclib + { + // C13_p_to_n_N13_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_V49); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V49); - } + log_scor = rate_eval.log_screen(k_p_C13); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_C13); + } #endif - rate_p_V49_to_n_Cr49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_V49_to_n_Cr49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V49_to_n_Cr49_reaclib) = drate_dT; + rate_C13_p_to_n_N13_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C13_p_to_n_N13_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C13_p_to_n_N13_reaclib) = drate_dT; + } } - } - { - // p_V49_to_He4_Ti46_reaclib + { + // C13_d_to_n_N14_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_V49); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V49); - } + log_scor = rate_eval.log_screen(k_d_C13); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_d_C13); + } #endif - rate_p_V49_to_He4_Ti46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_V49_to_He4_Ti46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V49_to_He4_Ti46_reaclib) = drate_dT; + rate_C13_d_to_n_N14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C13_d_to_n_N14_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C13_d_to_n_N14_reaclib) = drate_dT; + } } - } - { - // He4_V49_to_n_Mn52_reaclib + { + // C13_He4_to_n_O16_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_V49); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V49); - } + log_scor = rate_eval.log_screen(k_He4_C13); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_C13); + } #endif - rate_He4_V49_to_n_Mn52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_V49_to_n_Mn52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_V49_to_n_Mn52_reaclib) = drate_dT; + rate_C13_He4_to_n_O16_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C13_He4_to_n_O16_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C13_He4_to_n_O16_reaclib) = drate_dT; + } } - } - { - // He4_V49_to_p_Cr52_reaclib + { + // C14_d_to_n_N15_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_V49); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V49); - } + log_scor = rate_eval.log_screen(k_d_C14); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_d_C14); + } #endif - rate_He4_V49_to_p_Cr52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_V49_to_p_Cr52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_V49_to_p_Cr52_reaclib) = drate_dT; + rate_C14_d_to_n_N15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_C14_d_to_n_N15_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_C14_d_to_n_N15_reaclib) = drate_dT; + } } - } - { - // n_V50_to_p_Ti50_reaclib + { + // N13_He4_to_p_O16_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_V50_to_p_Ti50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_V50_to_p_Ti50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_V50_to_p_Ti50_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_N13); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_N13); + } +#endif + rate_N13_He4_to_p_O16_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_N13_He4_to_p_O16_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N13_He4_to_p_O16_reaclib) = drate_dT; + } } - } - { - // n_V50_to_He4_Sc47_reaclib + { + // N14_n_to_p_C14_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_V50_to_He4_Sc47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_V50_to_He4_Sc47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_V50_to_He4_Sc47_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_N14_n_to_p_C14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_N14_n_to_p_C14_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N14_n_to_p_C14_reaclib) = drate_dT; + } } - } - { - // p_V50_to_n_Cr50_reaclib + { + // N14_p_to_n_O14_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_V50); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V50); - } + log_scor = rate_eval.log_screen(k_p_N14); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_N14); + } #endif - rate_p_V50_to_n_Cr50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_V50_to_n_Cr50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V50_to_n_Cr50_reaclib) = drate_dT; + rate_N14_p_to_n_O14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_N14_p_to_n_O14_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N14_p_to_n_O14_reaclib) = drate_dT; + } } - } - { - // p_V50_to_He4_Ti47_reaclib + { + // N14_He4_to_n_F17_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_V50); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V50); - } + log_scor = rate_eval.log_screen(k_He4_N14); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_N14); + } #endif - rate_p_V50_to_He4_Ti47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_V50_to_He4_Ti47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V50_to_He4_Ti47_reaclib) = drate_dT; + rate_N14_He4_to_n_F17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_N14_He4_to_n_F17_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N14_He4_to_n_F17_reaclib) = drate_dT; + } } - } - { - // He4_V50_to_n_Mn53_reaclib + { + // N15_p_to_n_O15_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_V50); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V50); - } + log_scor = rate_eval.log_screen(k_p_N15); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_N15); + } #endif - rate_He4_V50_to_n_Mn53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_V50_to_n_Mn53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_V50_to_n_Mn53_reaclib) = drate_dT; + rate_N15_p_to_n_O15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_N15_p_to_n_O15_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N15_p_to_n_O15_reaclib) = drate_dT; + } } - } - { - // He4_V50_to_p_Cr53_reaclib + { + // N15_p_to_He4_C12_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_V50); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V50); - } + log_scor = rate_eval.log_screen(k_p_N15); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_N15); + } #endif - rate_He4_V50_to_p_Cr53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_V50_to_p_Cr53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_V50_to_p_Cr53_reaclib) = drate_dT; + rate_N15_p_to_He4_C12_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_N15_p_to_He4_C12_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_N15_p_to_He4_C12_reaclib) = drate_dT; + } } - } - { - // n_V51_to_p_Ti51_reaclib + { + // O14_He4_to_p_F17_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_V51_to_p_Ti51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_V51_to_p_Ti51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_V51_to_p_Ti51_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_O14); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_O14); + } +#endif + rate_O14_He4_to_p_F17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O14_He4_to_p_F17_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O14_He4_to_p_F17_reaclib) = drate_dT; + } } - } - { - // n_V51_to_He4_Sc48_reaclib + { + // O15_n_to_He4_C12_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_V51_to_He4_Sc48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_V51_to_He4_Sc48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_V51_to_He4_Sc48_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_O15_n_to_He4_C12_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O15_n_to_He4_C12_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O15_n_to_He4_C12_reaclib) = drate_dT; + } } - } - { - // p_V51_to_n_Cr51_reaclib + { + // O16_C12_to_p_Al27_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_V51); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V51); - } + log_scor = rate_eval.log_screen(k_C12_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_O16); + } #endif - rate_p_V51_to_n_Cr51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_V51_to_n_Cr51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V51_to_n_Cr51_reaclib) = drate_dT; + rate_O16_C12_to_p_Al27_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O16_C12_to_p_Al27_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_C12_to_p_Al27_reaclib) = drate_dT; + } } - } - { - // p_V51_to_He4_Ti48_reaclib + { + // O16_C12_to_He4_Mg24_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_V51); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V51); - } + log_scor = rate_eval.log_screen(k_C12_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_O16); + } #endif - rate_p_V51_to_He4_Ti48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_V51_to_He4_Ti48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V51_to_He4_Ti48_reaclib) = drate_dT; + rate_O16_C12_to_He4_Mg24_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O16_C12_to_He4_Mg24_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_C12_to_He4_Mg24_reaclib) = drate_dT; + } } - } - { - // He4_V51_to_n_Mn54_reaclib + { + // O16_O16_to_p_P31_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_V51); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V51); - } + log_scor = rate_eval.log_screen(k_O16_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_O16_O16); + } #endif - rate_He4_V51_to_n_Mn54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_V51_to_n_Mn54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_V51_to_n_Mn54_reaclib) = drate_dT; + rate_O16_O16_to_p_P31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O16_O16_to_p_P31_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_O16_to_p_P31_reaclib) = drate_dT; + } } - } - { - // He4_V51_to_p_Cr54_reaclib + { + // O16_O16_to_He4_Si28_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_V51); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V51); - } + log_scor = rate_eval.log_screen(k_O16_O16); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_O16_O16); + } #endif - rate_He4_V51_to_p_Cr54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_V51_to_p_Cr54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_V51_to_p_Cr54_reaclib) = drate_dT; + rate_O16_O16_to_He4_Si28_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O16_O16_to_He4_Si28_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O16_O16_to_He4_Si28_reaclib) = drate_dT; + } } - } - { - // n_V52_to_He4_Sc49_reaclib + { + // O17_n_to_He4_C14_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_V52_to_He4_Sc49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_V52_to_He4_Sc49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_V52_to_He4_Sc49_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_O17_n_to_He4_C14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O17_n_to_He4_C14_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O17_n_to_He4_C14_reaclib) = drate_dT; + } } - } - { - // p_V52_to_n_Cr52_reaclib + { + // O17_p_to_He4_N14_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_V52); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V52); - } + log_scor = rate_eval.log_screen(k_p_O17); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_O17); + } #endif - rate_p_V52_to_n_Cr52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_V52_to_n_Cr52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V52_to_n_Cr52_reaclib) = drate_dT; + rate_O17_p_to_He4_N14_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O17_p_to_He4_N14_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O17_p_to_He4_N14_reaclib) = drate_dT; + } } - } - { - // p_V52_to_He4_Ti49_reaclib + { + // O17_He4_to_n_Ne20_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_V52); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V52); - } + log_scor = rate_eval.log_screen(k_He4_O17); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_O17); + } #endif - rate_p_V52_to_He4_Ti49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_V52_to_He4_Ti49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_V52_to_He4_Ti49_reaclib) = drate_dT; + rate_O17_He4_to_n_Ne20_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O17_He4_to_n_Ne20_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O17_He4_to_n_Ne20_reaclib) = drate_dT; + } } - } - { - // He4_V52_to_n_Mn55_reaclib + { + // O18_p_to_He4_N15_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_V52); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V52); - } + log_scor = rate_eval.log_screen(k_p_O18); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_O18); + } #endif - rate_He4_V52_to_n_Mn55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_V52_to_n_Mn55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_V52_to_n_Mn55_reaclib) = drate_dT; + rate_O18_p_to_He4_N15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O18_p_to_He4_N15_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O18_p_to_He4_N15_reaclib) = drate_dT; + } } - } - { - // n_Cr48_to_p_V48_reaclib + { + // O18_He4_to_n_Ne21_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cr48_to_p_V48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cr48_to_p_V48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cr48_to_p_V48_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_O18); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_O18); + } +#endif + rate_O18_He4_to_n_Ne21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_O18_He4_to_n_Ne21_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_O18_He4_to_n_Ne21_reaclib) = drate_dT; + } } - } - { - // n_Cr48_to_He4_Ti45_reaclib + { + // F17_n_to_p_O17_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cr48_to_He4_Ti45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cr48_to_He4_Ti45_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cr48_to_He4_Ti45_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_F17_n_to_p_O17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_F17_n_to_p_O17_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F17_n_to_p_O17_reaclib) = drate_dT; + } } - } - { - // He4_Cr48_to_p_Mn51_reaclib + { + // F18_n_to_p_O18_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cr48); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr48); - } -#endif - rate_He4_Cr48_to_p_Mn51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr48_to_p_Mn51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr48_to_p_Mn51_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_F18_n_to_p_O18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_F18_n_to_p_O18_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F18_n_to_p_O18_reaclib) = drate_dT; + } } - } - { - // n_Cr49_to_p_V49_reaclib + { + // F18_n_to_He4_N15_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cr49_to_p_V49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cr49_to_p_V49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cr49_to_p_V49_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_F18_n_to_He4_N15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_F18_n_to_He4_N15_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F18_n_to_He4_N15_reaclib) = drate_dT; + } } - } - { - // n_Cr49_to_He4_Ti46_reaclib + { + // F18_p_to_He4_O15_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cr49_to_He4_Ti46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cr49_to_He4_Ti46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cr49_to_He4_Ti46_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_F18); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_F18); + } +#endif + rate_F18_p_to_He4_O15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_F18_p_to_He4_O15_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F18_p_to_He4_O15_reaclib) = drate_dT; + } } - } - { - // p_Cr49_to_He4_V46_reaclib + { + // F18_He4_to_p_Ne21_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cr49); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr49); - } + log_scor = rate_eval.log_screen(k_He4_F18); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_F18); + } #endif - rate_p_Cr49_to_He4_V46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cr49_to_He4_V46_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cr49_to_He4_V46_reaclib) = drate_dT; + rate_F18_He4_to_p_Ne21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_F18_He4_to_p_Ne21_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F18_He4_to_p_Ne21_reaclib) = drate_dT; + } } - } - { - // He4_Cr49_to_n_Fe52_reaclib + { + // F19_p_to_n_Ne19_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cr49); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr49); - } + log_scor = rate_eval.log_screen(k_p_F19); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_F19); + } #endif - rate_He4_Cr49_to_n_Fe52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr49_to_n_Fe52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr49_to_n_Fe52_reaclib) = drate_dT; + rate_F19_p_to_n_Ne19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_F19_p_to_n_Ne19_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F19_p_to_n_Ne19_reaclib) = drate_dT; + } } - } - { - // He4_Cr49_to_p_Mn52_reaclib + { + // F19_p_to_He4_O16_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cr49); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr49); - } + log_scor = rate_eval.log_screen(k_p_F19); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_F19); + } #endif - rate_He4_Cr49_to_p_Mn52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr49_to_p_Mn52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr49_to_p_Mn52_reaclib) = drate_dT; + rate_F19_p_to_He4_O16_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_F19_p_to_He4_O16_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F19_p_to_He4_O16_reaclib) = drate_dT; + } } - } - { - // n_Cr50_to_p_V50_reaclib + { + // F19_He4_to_p_Ne22_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cr50_to_p_V50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cr50_to_p_V50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cr50_to_p_V50_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_F19); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_F19); + } +#endif + rate_F19_He4_to_p_Ne22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_F19_He4_to_p_Ne22_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_F19_He4_to_p_Ne22_reaclib) = drate_dT; + } } - } - { - // n_Cr50_to_He4_Ti47_reaclib + { + // Ne18_n_to_p_F18_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cr50_to_He4_Ti47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cr50_to_He4_Ti47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cr50_to_He4_Ti47_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ne18_n_to_p_F18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ne18_n_to_p_F18_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne18_n_to_p_F18_reaclib) = drate_dT; + } } - } - { - // p_Cr50_to_n_Mn50_reaclib + { + // Ne18_n_to_He4_O15_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cr50); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr50); - } -#endif - rate_p_Cr50_to_n_Mn50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cr50_to_n_Mn50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cr50_to_n_Mn50_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ne18_n_to_He4_O15_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ne18_n_to_He4_O15_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne18_n_to_He4_O15_reaclib) = drate_dT; + } } - } - { - // p_Cr50_to_He4_V47_reaclib + { + // Ne18_He4_to_p_Na21_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cr50); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr50); - } + log_scor = rate_eval.log_screen(k_He4_Ne18); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne18); + } #endif - rate_p_Cr50_to_He4_V47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cr50_to_He4_V47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cr50_to_He4_V47_reaclib) = drate_dT; + rate_Ne18_He4_to_p_Na21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ne18_He4_to_p_Na21_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne18_He4_to_p_Na21_reaclib) = drate_dT; + } } - } - { - // He4_Cr50_to_n_Fe53_reaclib + { + // Ne19_n_to_He4_O16_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cr50); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr50); - } -#endif - rate_He4_Cr50_to_n_Fe53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr50_to_n_Fe53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr50_to_n_Fe53_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ne19_n_to_He4_O16_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ne19_n_to_He4_O16_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne19_n_to_He4_O16_reaclib) = drate_dT; + } } - } - { - // He4_Cr50_to_p_Mn53_reaclib + { + // Ne19_He4_to_p_Na22_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cr50); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr50); - } + log_scor = rate_eval.log_screen(k_He4_Ne19); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne19); + } #endif - rate_He4_Cr50_to_p_Mn53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr50_to_p_Mn53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr50_to_p_Mn53_reaclib) = drate_dT; + rate_Ne19_He4_to_p_Na22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ne19_He4_to_p_Na22_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne19_He4_to_p_Na22_reaclib) = drate_dT; + } } - } - { - // n_Cr51_to_p_V51_reaclib + { + // Ne20_p_to_He4_F17_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cr51_to_p_V51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cr51_to_p_V51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cr51_to_p_V51_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ne20); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ne20); + } +#endif + rate_Ne20_p_to_He4_F17_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ne20_p_to_He4_F17_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne20_p_to_He4_F17_reaclib) = drate_dT; + } } - } - { - // n_Cr51_to_He4_Ti48_reaclib + { + // Ne20_C12_to_p_P31_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cr51_to_He4_Ti48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cr51_to_He4_Ti48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cr51_to_He4_Ti48_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_C12_Ne20); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_Ne20); + } +#endif + rate_Ne20_C12_to_p_P31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ne20_C12_to_p_P31_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne20_C12_to_p_P31_reaclib) = drate_dT; + } } - } - { - // p_Cr51_to_n_Mn51_reaclib + { + // Ne20_C12_to_He4_Si28_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cr51); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr51); - } + log_scor = rate_eval.log_screen(k_C12_Ne20); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_C12_Ne20); + } #endif - rate_p_Cr51_to_n_Mn51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cr51_to_n_Mn51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cr51_to_n_Mn51_reaclib) = drate_dT; + rate_Ne20_C12_to_He4_Si28_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ne20_C12_to_He4_Si28_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne20_C12_to_He4_Si28_reaclib) = drate_dT; + } } - } - { - // p_Cr51_to_He4_V48_reaclib + { + // Ne21_He4_to_n_Mg24_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cr51); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr51); - } + log_scor = rate_eval.log_screen(k_He4_Ne21); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne21); + } #endif - rate_p_Cr51_to_He4_V48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cr51_to_He4_V48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cr51_to_He4_V48_reaclib) = drate_dT; + rate_Ne21_He4_to_n_Mg24_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ne21_He4_to_n_Mg24_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne21_He4_to_n_Mg24_reaclib) = drate_dT; + } } - } - { - // He4_Cr51_to_n_Fe54_reaclib + { + // Ne22_He4_to_n_Mg25_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cr51); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr51); - } + log_scor = rate_eval.log_screen(k_He4_Ne22); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ne22); + } #endif - rate_He4_Cr51_to_n_Fe54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr51_to_n_Fe54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr51_to_n_Fe54_reaclib) = drate_dT; + rate_Ne22_He4_to_n_Mg25_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ne22_He4_to_n_Mg25_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne22_He4_to_n_Mg25_reaclib) = drate_dT; + } } - } - { - // He4_Cr51_to_p_Mn54_reaclib + { + // Na21_n_to_p_Ne21_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cr51); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr51); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Na21_n_to_p_Ne21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Na21_n_to_p_Ne21_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na21_n_to_p_Ne21_reaclib) = drate_dT; + } } -#endif - rate_He4_Cr51_to_p_Mn54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr51_to_p_Mn54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr51_to_p_Mn54_reaclib) = drate_dT; + + { + // Na21_n_to_He4_F18_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Na21_n_to_He4_F18_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Na21_n_to_He4_F18_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na21_n_to_He4_F18_reaclib) = drate_dT; + } } - } - { - // n_Cr52_to_p_V52_reaclib + { + // Na22_n_to_p_Ne22_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cr52_to_p_V52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cr52_to_p_V52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cr52_to_p_V52_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Na22_n_to_p_Ne22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Na22_n_to_p_Ne22_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na22_n_to_p_Ne22_reaclib) = drate_dT; + } } - } - { - // n_Cr52_to_He4_Ti49_reaclib + { + // Na22_n_to_He4_F19_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cr52_to_He4_Ti49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cr52_to_He4_Ti49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cr52_to_He4_Ti49_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Na22_n_to_He4_F19_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Na22_n_to_He4_F19_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na22_n_to_He4_F19_reaclib) = drate_dT; + } } - } - { - // p_Cr52_to_n_Mn52_reaclib + { + // Na22_He4_to_p_Mg25_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cr52); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr52); - } + log_scor = rate_eval.log_screen(k_He4_Na22); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Na22); + } #endif - rate_p_Cr52_to_n_Mn52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cr52_to_n_Mn52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cr52_to_n_Mn52_reaclib) = drate_dT; + rate_Na22_He4_to_p_Mg25_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Na22_He4_to_p_Mg25_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na22_He4_to_p_Mg25_reaclib) = drate_dT; + } } - } - { - // p_Cr52_to_He4_V49_reaclib + { + // Na23_p_to_n_Mg23_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cr52); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr52); - } + log_scor = rate_eval.log_screen(k_p_Na23); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Na23); + } #endif - rate_p_Cr52_to_He4_V49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cr52_to_He4_V49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cr52_to_He4_V49_reaclib) = drate_dT; + rate_Na23_p_to_n_Mg23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Na23_p_to_n_Mg23_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na23_p_to_n_Mg23_reaclib) = drate_dT; + } } - } - { - // He4_Cr52_to_n_Fe55_reaclib + { + // Na23_p_to_He4_Ne20_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cr52); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr52); - } + log_scor = rate_eval.log_screen(k_p_Na23); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Na23); + } #endif - rate_He4_Cr52_to_n_Fe55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr52_to_n_Fe55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr52_to_n_Fe55_reaclib) = drate_dT; + rate_Na23_p_to_He4_Ne20_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Na23_p_to_He4_Ne20_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na23_p_to_He4_Ne20_reaclib) = drate_dT; + } } - } - { - // He4_Cr52_to_p_Mn55_reaclib + { + // Na23_He4_to_p_Mg26_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cr52); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr52); - } + log_scor = rate_eval.log_screen(k_He4_Na23); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Na23); + } #endif - rate_He4_Cr52_to_p_Mn55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr52_to_p_Mn55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr52_to_p_Mn55_reaclib) = drate_dT; + rate_Na23_He4_to_p_Mg26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Na23_He4_to_p_Mg26_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na23_He4_to_p_Mg26_reaclib) = drate_dT; + } } - } - { - // n_Cr53_to_He4_Ti50_reaclib + { + // Mg23_n_to_He4_Ne20_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cr53_to_He4_Ti50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cr53_to_He4_Ti50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cr53_to_He4_Ti50_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mg23_n_to_He4_Ne20_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mg23_n_to_He4_Ne20_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg23_n_to_He4_Ne20_reaclib) = drate_dT; + } } - } - { - // p_Cr53_to_n_Mn53_reaclib + { + // Mg23_n_to_C12_C12_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cr53); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr53); - } -#endif - rate_p_Cr53_to_n_Mn53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cr53_to_n_Mn53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cr53_to_n_Mn53_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mg23_n_to_C12_C12_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mg23_n_to_C12_C12_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg23_n_to_C12_C12_reaclib) = drate_dT; + } } - } - { - // p_Cr53_to_He4_V50_reaclib + { + // Mg23_He4_to_p_Al26_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cr53); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr53); - } + log_scor = rate_eval.log_screen(k_He4_Mg23); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg23); + } #endif - rate_p_Cr53_to_He4_V50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cr53_to_He4_V50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cr53_to_He4_V50_reaclib) = drate_dT; + rate_Mg23_He4_to_p_Al26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mg23_He4_to_p_Al26_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg23_He4_to_p_Al26_reaclib) = drate_dT; + } } - } - { - // He4_Cr53_to_n_Fe56_reaclib + { + // Mg24_p_to_He4_Na21_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cr53); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr53); - } + log_scor = rate_eval.log_screen(k_p_Mg24); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mg24); + } #endif - rate_He4_Cr53_to_n_Fe56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr53_to_n_Fe56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr53_to_n_Fe56_reaclib) = drate_dT; + rate_Mg24_p_to_He4_Na21_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mg24_p_to_He4_Na21_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg24_p_to_He4_Na21_reaclib) = drate_dT; + } } - } - { - // n_Cr54_to_He4_Ti51_reaclib + { + // Mg25_He4_to_n_Si28_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cr54_to_He4_Ti51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cr54_to_He4_Ti51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cr54_to_He4_Ti51_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Mg25); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg25); + } +#endif + rate_Mg25_He4_to_n_Si28_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mg25_He4_to_n_Si28_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg25_He4_to_n_Si28_reaclib) = drate_dT; + } } - } - { - // p_Cr54_to_n_Mn54_reaclib + { + // Mg26_He4_to_n_Si29_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cr54); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr54); - } + log_scor = rate_eval.log_screen(k_He4_Mg26); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mg26); + } #endif - rate_p_Cr54_to_n_Mn54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cr54_to_n_Mn54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cr54_to_n_Mn54_reaclib) = drate_dT; + rate_Mg26_He4_to_n_Si29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mg26_He4_to_n_Si29_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg26_He4_to_n_Si29_reaclib) = drate_dT; + } } - } - { - // p_Cr54_to_He4_V51_reaclib + { + // Al25_n_to_p_Mg25_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cr54); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr54); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Al25_n_to_p_Mg25_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Al25_n_to_p_Mg25_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al25_n_to_p_Mg25_reaclib) = drate_dT; + } } -#endif - rate_p_Cr54_to_He4_V51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cr54_to_He4_V51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cr54_to_He4_V51_reaclib) = drate_dT; + + { + // Al25_n_to_He4_Na22_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Al25_n_to_He4_Na22_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Al25_n_to_He4_Na22_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al25_n_to_He4_Na22_reaclib) = drate_dT; + } } - } - { - // He4_Cr54_to_n_Fe57_reaclib + { + // Al25_He4_to_p_Si28_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cr54); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr54); - } + log_scor = rate_eval.log_screen(k_He4_Al25); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Al25); + } #endif - rate_He4_Cr54_to_n_Fe57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cr54_to_n_Fe57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cr54_to_n_Fe57_reaclib) = drate_dT; + rate_Al25_He4_to_p_Si28_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Al25_He4_to_p_Si28_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al25_He4_to_p_Si28_reaclib) = drate_dT; + } } - } - { - // n_Mn50_to_p_Cr50_reaclib + { + // Al26_n_to_p_Mg26_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Mn50_to_p_Cr50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Mn50_to_p_Cr50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Mn50_to_p_Cr50_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Al26_n_to_p_Mg26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Al26_n_to_p_Mg26_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al26_n_to_p_Mg26_reaclib) = drate_dT; + } } - } - { - // n_Mn50_to_He4_V47_reaclib + { + // Al26_n_to_He4_Na23_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Mn50_to_He4_V47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Mn50_to_He4_V47_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Mn50_to_He4_V47_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Al26_n_to_He4_Na23_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Al26_n_to_He4_Na23_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al26_n_to_He4_Na23_reaclib) = drate_dT; + } } - } - { - // He4_Mn50_to_n_Co53_reaclib + { + // Al26_He4_to_p_Si29_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mn50); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn50); - } + log_scor = rate_eval.log_screen(k_He4_Al26); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Al26); + } #endif - rate_He4_Mn50_to_n_Co53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mn50_to_n_Co53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mn50_to_n_Co53_reaclib) = drate_dT; + rate_Al26_He4_to_p_Si29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Al26_He4_to_p_Si29_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al26_He4_to_p_Si29_reaclib) = drate_dT; + } } - } - { - // He4_Mn50_to_p_Fe53_reaclib + { + // Al27_p_to_He4_Mg24_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mn50); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn50); - } + log_scor = rate_eval.log_screen(k_p_Al27); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Al27); + } #endif - rate_He4_Mn50_to_p_Fe53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mn50_to_p_Fe53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mn50_to_p_Fe53_reaclib) = drate_dT; - } - } - - { - // n_Mn51_to_p_Cr51_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Mn51_to_p_Cr51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Mn51_to_p_Cr51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Mn51_to_p_Cr51_reaclib) = drate_dT; + rate_Al27_p_to_He4_Mg24_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Al27_p_to_He4_Mg24_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al27_p_to_He4_Mg24_reaclib) = drate_dT; + } } - } - { - // n_Mn51_to_He4_V48_reaclib + { + // Al27_He4_to_n_P30_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Mn51_to_He4_V48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Mn51_to_He4_V48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Mn51_to_He4_V48_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Al27); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Al27); + } +#endif + rate_Al27_He4_to_n_P30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Al27_He4_to_n_P30_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al27_He4_to_n_P30_reaclib) = drate_dT; + } } - } - { - // p_Mn51_to_He4_Cr48_reaclib + { + // Al27_He4_to_p_Si30_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Mn51); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn51); - } + log_scor = rate_eval.log_screen(k_He4_Al27); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Al27); + } #endif - rate_p_Mn51_to_He4_Cr48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Mn51_to_He4_Cr48_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn51_to_He4_Cr48_reaclib) = drate_dT; + rate_Al27_He4_to_p_Si30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Al27_He4_to_p_Si30_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al27_He4_to_p_Si30_reaclib) = drate_dT; + } } - } - { - // He4_Mn51_to_n_Co54_reaclib + { + // Si31_p_to_n_P31_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mn51); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn51); - } + log_scor = rate_eval.log_screen(k_p_Si31); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Si31); + } #endif - rate_He4_Mn51_to_n_Co54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mn51_to_n_Co54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mn51_to_n_Co54_reaclib) = drate_dT; + rate_Si31_p_to_n_P31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Si31_p_to_n_P31_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si31_p_to_n_P31_reaclib) = drate_dT; + } } - } - { - // He4_Mn51_to_p_Fe54_reaclib + { + // Si31_He4_to_n_S34_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mn51); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn51); - } + log_scor = rate_eval.log_screen(k_He4_Si31); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Si31); + } #endif - rate_He4_Mn51_to_p_Fe54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mn51_to_p_Fe54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mn51_to_p_Fe54_reaclib) = drate_dT; + rate_Si31_He4_to_n_S34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Si31_He4_to_n_S34_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si31_He4_to_n_S34_reaclib) = drate_dT; + } } - } - { - // n_Mn52_to_p_Cr52_reaclib + { + // P29_n_to_p_Si29_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Mn52_to_p_Cr52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Mn52_to_p_Cr52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Mn52_to_p_Cr52_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_P29_n_to_p_Si29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_P29_n_to_p_Si29_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P29_n_to_p_Si29_reaclib) = drate_dT; + } } - } - { - // n_Mn52_to_He4_V49_reaclib + { + // P29_n_to_He4_Al26_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Mn52_to_He4_V49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Mn52_to_He4_V49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Mn52_to_He4_V49_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_P29_n_to_He4_Al26_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_P29_n_to_He4_Al26_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P29_n_to_He4_Al26_reaclib) = drate_dT; + } } - } - { - // p_Mn52_to_n_Fe52_reaclib + { + // P29_He4_to_p_S32_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Mn52); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn52); - } + log_scor = rate_eval.log_screen(k_He4_P29); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P29); + } #endif - rate_p_Mn52_to_n_Fe52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Mn52_to_n_Fe52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn52_to_n_Fe52_reaclib) = drate_dT; + rate_P29_He4_to_p_S32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_P29_He4_to_p_S32_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P29_He4_to_p_S32_reaclib) = drate_dT; + } } - } - { - // p_Mn52_to_He4_Cr49_reaclib + { + // P30_n_to_p_Si30_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Mn52); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn52); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_P30_n_to_p_Si30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_P30_n_to_p_Si30_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P30_n_to_p_Si30_reaclib) = drate_dT; + } } -#endif - rate_p_Mn52_to_He4_Cr49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Mn52_to_He4_Cr49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn52_to_He4_Cr49_reaclib) = drate_dT; - } - } - { - // He4_Mn52_to_n_Co55_reaclib + { + // P30_He4_to_p_S33_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mn52); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn52); - } + log_scor = rate_eval.log_screen(k_He4_P30); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P30); + } #endif - rate_He4_Mn52_to_n_Co55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mn52_to_n_Co55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mn52_to_n_Co55_reaclib) = drate_dT; + rate_P30_He4_to_p_S33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_P30_He4_to_p_S33_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P30_He4_to_p_S33_reaclib) = drate_dT; + } } - } - { - // He4_Mn52_to_p_Fe55_reaclib + { + // P31_p_to_He4_Si28_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mn52); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn52); - } + log_scor = rate_eval.log_screen(k_p_P31); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_P31); + } #endif - rate_He4_Mn52_to_p_Fe55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mn52_to_p_Fe55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mn52_to_p_Fe55_reaclib) = drate_dT; + rate_P31_p_to_He4_Si28_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_P31_p_to_He4_Si28_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P31_p_to_He4_Si28_reaclib) = drate_dT; + } } - } - { - // n_Mn53_to_p_Cr53_reaclib + { + // P31_He4_to_p_S34_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Mn53_to_p_Cr53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Mn53_to_p_Cr53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Mn53_to_p_Cr53_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_P31); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_P31); + } +#endif + rate_P31_He4_to_p_S34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_P31_He4_to_p_S34_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P31_He4_to_p_S34_reaclib) = drate_dT; + } } - } - { - // n_Mn53_to_He4_V50_reaclib + { + // P32_n_to_p_Si32_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Mn53_to_He4_V50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Mn53_to_He4_V50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Mn53_to_He4_V50_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_P32_n_to_p_Si32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_P32_n_to_p_Si32_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P32_n_to_p_Si32_reaclib) = drate_dT; + } } - } - { - // p_Mn53_to_n_Fe53_reaclib + { + // P32_p_to_n_S32_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Mn53); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn53); - } + log_scor = rate_eval.log_screen(k_p_P32); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_P32); + } #endif - rate_p_Mn53_to_n_Fe53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Mn53_to_n_Fe53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn53_to_n_Fe53_reaclib) = drate_dT; + rate_P32_p_to_n_S32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_P32_p_to_n_S32_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P32_p_to_n_S32_reaclib) = drate_dT; + } } - } - { - // p_Mn53_to_He4_Cr50_reaclib + { + // P32_p_to_He4_Si29_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Mn53); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn53); - } + log_scor = rate_eval.log_screen(k_p_P32); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_P32); + } #endif - rate_p_Mn53_to_He4_Cr50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Mn53_to_He4_Cr50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn53_to_He4_Cr50_reaclib) = drate_dT; + rate_P32_p_to_He4_Si29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_P32_p_to_He4_Si29_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P32_p_to_He4_Si29_reaclib) = drate_dT; + } } - } - { - // He4_Mn53_to_n_Co56_reaclib + { + // P33_p_to_He4_Si30_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mn53); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn53); - } + log_scor = rate_eval.log_screen(k_p_P33); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_P33); + } #endif - rate_He4_Mn53_to_n_Co56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mn53_to_n_Co56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mn53_to_n_Co56_reaclib) = drate_dT; + rate_P33_p_to_He4_Si30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_P33_p_to_He4_Si30_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P33_p_to_He4_Si30_reaclib) = drate_dT; + } } - } - { - // He4_Mn53_to_p_Fe56_reaclib + { + // S32_n_to_He4_Si29_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mn53); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn53); - } -#endif - rate_He4_Mn53_to_p_Fe56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mn53_to_p_Fe56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mn53_to_p_Fe56_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_S32_n_to_He4_Si29_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_S32_n_to_He4_Si29_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S32_n_to_He4_Si29_reaclib) = drate_dT; + } } - } - { - // n_Mn54_to_p_Cr54_reaclib + { + // S33_n_to_p_P33_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Mn54_to_p_Cr54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Mn54_to_p_Cr54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Mn54_to_p_Cr54_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_S33_n_to_p_P33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_S33_n_to_p_P33_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S33_n_to_p_P33_reaclib) = drate_dT; + } } - } - { - // n_Mn54_to_He4_V51_reaclib + { + // S33_n_to_He4_Si30_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Mn54_to_He4_V51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Mn54_to_He4_V51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Mn54_to_He4_V51_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_S33_n_to_He4_Si30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_S33_n_to_He4_Si30_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S33_n_to_He4_Si30_reaclib) = drate_dT; + } } - } - { - // p_Mn54_to_n_Fe54_reaclib + { + // S34_He4_to_n_Ar37_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Mn54); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn54); - } + log_scor = rate_eval.log_screen(k_He4_S34); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_S34); + } #endif - rate_p_Mn54_to_n_Fe54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Mn54_to_n_Fe54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn54_to_n_Fe54_reaclib) = drate_dT; + rate_S34_He4_to_n_Ar37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_S34_He4_to_n_Ar37_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S34_He4_to_n_Ar37_reaclib) = drate_dT; + } } - } - { - // p_Mn54_to_He4_Cr51_reaclib + { + // S34_He4_to_p_Cl37_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Mn54); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn54); - } + log_scor = rate_eval.log_screen(k_He4_S34); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_S34); + } #endif - rate_p_Mn54_to_He4_Cr51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Mn54_to_He4_Cr51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn54_to_He4_Cr51_reaclib) = drate_dT; + rate_S34_He4_to_p_Cl37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_S34_He4_to_p_Cl37_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S34_He4_to_p_Cl37_reaclib) = drate_dT; + } } - } - { - // He4_Mn54_to_n_Co57_reaclib + { + // S35_n_to_He4_Si32_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mn54); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn54); - } -#endif - rate_He4_Mn54_to_n_Co57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mn54_to_n_Co57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mn54_to_n_Co57_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_S35_n_to_He4_Si32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_S35_n_to_He4_Si32_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S35_n_to_He4_Si32_reaclib) = drate_dT; + } } - } - { - // He4_Mn54_to_p_Fe57_reaclib + { + // S35_p_to_He4_P32_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mn54); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn54); - } + log_scor = rate_eval.log_screen(k_p_S35); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S35); + } #endif - rate_He4_Mn54_to_p_Fe57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mn54_to_p_Fe57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mn54_to_p_Fe57_reaclib) = drate_dT; - } - } - - { - // n_Mn55_to_He4_V52_reaclib - - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Mn55_to_He4_V52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Mn55_to_He4_V52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Mn55_to_He4_V52_reaclib) = drate_dT; + rate_S35_p_to_He4_P32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_S35_p_to_He4_P32_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S35_p_to_He4_P32_reaclib) = drate_dT; + } } - } - { - // p_Mn55_to_n_Fe55_reaclib + { + // S35_He4_to_n_Ar38_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Mn55); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn55); - } + log_scor = rate_eval.log_screen(k_He4_S35); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_S35); + } #endif - rate_p_Mn55_to_n_Fe55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Mn55_to_n_Fe55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn55_to_n_Fe55_reaclib) = drate_dT; + rate_S35_He4_to_n_Ar38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_S35_He4_to_n_Ar38_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S35_He4_to_n_Ar38_reaclib) = drate_dT; + } } - } - { - // p_Mn55_to_He4_Cr52_reaclib + { + // S36_p_to_He4_P33_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Mn55); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn55); - } + log_scor = rate_eval.log_screen(k_p_S36); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_S36); + } #endif - rate_p_Mn55_to_He4_Cr52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Mn55_to_He4_Cr52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Mn55_to_He4_Cr52_reaclib) = drate_dT; + rate_S36_p_to_He4_P33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_S36_p_to_He4_P33_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S36_p_to_He4_P33_reaclib) = drate_dT; + } } - } - { - // He4_Mn55_to_n_Co58_reaclib + { + // Cl33_n_to_p_S33_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mn55); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn55); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl33_n_to_p_S33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cl33_n_to_p_S33_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl33_n_to_p_S33_reaclib) = drate_dT; + } } -#endif - rate_He4_Mn55_to_n_Co58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mn55_to_n_Co58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mn55_to_n_Co58_reaclib) = drate_dT; + + { + // Cl33_n_to_He4_P30_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl33_n_to_He4_P30_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cl33_n_to_He4_P30_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl33_n_to_He4_P30_reaclib) = drate_dT; + } } - } - { - // He4_Mn55_to_p_Fe58_reaclib + { + // Cl33_He4_to_p_Ar36_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Mn55); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn55); - } + log_scor = rate_eval.log_screen(k_He4_Cl33); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl33); + } #endif - rate_He4_Mn55_to_p_Fe58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Mn55_to_p_Fe58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Mn55_to_p_Fe58_reaclib) = drate_dT; + rate_Cl33_He4_to_p_Ar36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cl33_He4_to_p_Ar36_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl33_He4_to_p_Ar36_reaclib) = drate_dT; + } } - } - { - // n_Fe52_to_p_Mn52_reaclib + { + // Cl34_n_to_p_S34_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Fe52_to_p_Mn52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Fe52_to_p_Mn52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Fe52_to_p_Mn52_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl34_n_to_p_S34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cl34_n_to_p_S34_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl34_n_to_p_S34_reaclib) = drate_dT; + } } - } - { - // n_Fe52_to_He4_Cr49_reaclib + { + // Cl34_n_to_He4_P31_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Fe52_to_He4_Cr49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Fe52_to_He4_Cr49_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Fe52_to_He4_Cr49_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl34_n_to_He4_P31_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cl34_n_to_He4_P31_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl34_n_to_He4_P31_reaclib) = drate_dT; + } } - } - { - // He4_Fe52_to_p_Co55_reaclib + { + // Cl34_He4_to_p_Ar37_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Fe52); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe52); - } + log_scor = rate_eval.log_screen(k_He4_Cl34); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl34); + } #endif - rate_He4_Fe52_to_p_Co55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe52_to_p_Co55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe52_to_p_Co55_reaclib) = drate_dT; + rate_Cl34_He4_to_p_Ar37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cl34_He4_to_p_Ar37_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl34_He4_to_p_Ar37_reaclib) = drate_dT; + } } - } - { - // n_Fe53_to_p_Mn53_reaclib + { + // Cl35_n_to_p_S35_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Fe53_to_p_Mn53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Fe53_to_p_Mn53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Fe53_to_p_Mn53_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl35_n_to_p_S35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cl35_n_to_p_S35_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl35_n_to_p_S35_reaclib) = drate_dT; + } } - } - { - // n_Fe53_to_He4_Cr50_reaclib + { + // Cl35_n_to_He4_P32_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Fe53_to_He4_Cr50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Fe53_to_He4_Cr50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Fe53_to_He4_Cr50_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl35_n_to_He4_P32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cl35_n_to_He4_P32_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl35_n_to_He4_P32_reaclib) = drate_dT; + } } - } - { - // p_Fe53_to_n_Co53_reaclib + { + // Cl35_p_to_He4_S32_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Fe53); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe53); - } + log_scor = rate_eval.log_screen(k_p_Cl35); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cl35); + } #endif - rate_p_Fe53_to_n_Co53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Fe53_to_n_Co53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Fe53_to_n_Co53_reaclib) = drate_dT; + rate_Cl35_p_to_He4_S32_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cl35_p_to_He4_S32_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl35_p_to_He4_S32_reaclib) = drate_dT; + } } - } - { - // p_Fe53_to_He4_Mn50_reaclib + { + // Cl35_He4_to_p_Ar38_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Fe53); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe53); - } + log_scor = rate_eval.log_screen(k_He4_Cl35); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cl35); + } #endif - rate_p_Fe53_to_He4_Mn50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Fe53_to_He4_Mn50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Fe53_to_He4_Mn50_reaclib) = drate_dT; + rate_Cl35_He4_to_p_Ar38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cl35_He4_to_p_Ar38_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl35_He4_to_p_Ar38_reaclib) = drate_dT; + } } - } - { - // He4_Fe53_to_n_Ni56_reaclib + { + // Cl36_n_to_p_S36_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Fe53); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe53); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl36_n_to_p_S36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cl36_n_to_p_S36_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl36_n_to_p_S36_reaclib) = drate_dT; + } } -#endif - rate_He4_Fe53_to_n_Ni56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe53_to_n_Ni56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe53_to_n_Ni56_reaclib) = drate_dT; + + { + // Cl36_n_to_He4_P33_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cl36_n_to_He4_P33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cl36_n_to_He4_P33_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl36_n_to_He4_P33_reaclib) = drate_dT; + } } - } - { - // He4_Fe53_to_p_Co56_reaclib + { + // Cl36_p_to_He4_S33_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Fe53); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe53); - } + log_scor = rate_eval.log_screen(k_p_Cl36); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cl36); + } #endif - rate_He4_Fe53_to_p_Co56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe53_to_p_Co56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe53_to_p_Co56_reaclib) = drate_dT; + rate_Cl36_p_to_He4_S33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cl36_p_to_He4_S33_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl36_p_to_He4_S33_reaclib) = drate_dT; + } } - } - { - // n_Fe54_to_p_Mn54_reaclib + { + // Ar36_n_to_p_Cl36_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Fe54_to_p_Mn54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Fe54_to_p_Mn54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Fe54_to_p_Mn54_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ar36_n_to_p_Cl36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ar36_n_to_p_Cl36_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_n_to_p_Cl36_reaclib) = drate_dT; + } } - } - { - // n_Fe54_to_He4_Cr51_reaclib + { + // Ar36_n_to_He4_S33_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Fe54_to_He4_Cr51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Fe54_to_He4_Cr51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Fe54_to_He4_Cr51_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ar36_n_to_He4_S33_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ar36_n_to_He4_S33_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_n_to_He4_S33_reaclib) = drate_dT; + } } - } - { - // p_Fe54_to_n_Co54_reaclib + { + // Ar37_n_to_p_Cl37_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Fe54); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe54); - } -#endif - rate_p_Fe54_to_n_Co54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Fe54_to_n_Co54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Fe54_to_n_Co54_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ar37_n_to_p_Cl37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ar37_n_to_p_Cl37_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar37_n_to_p_Cl37_reaclib) = drate_dT; + } } - } - { - // p_Fe54_to_He4_Mn51_reaclib + { + // Ar39_n_to_He4_S36_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Fe54); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe54); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ar39_n_to_He4_S36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ar39_n_to_He4_S36_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar39_n_to_He4_S36_reaclib) = drate_dT; + } } -#endif - rate_p_Fe54_to_He4_Mn51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Fe54_to_He4_Mn51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Fe54_to_He4_Mn51_reaclib) = drate_dT; - } - } - { - // He4_Fe54_to_n_Ni57_reaclib + { + // Ar39_p_to_He4_Cl36_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Fe54); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe54); - } + log_scor = rate_eval.log_screen(k_p_Ar39); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar39); + } #endif - rate_He4_Fe54_to_n_Ni57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe54_to_n_Ni57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe54_to_n_Ni57_reaclib) = drate_dT; + rate_Ar39_p_to_He4_Cl36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ar39_p_to_He4_Cl36_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar39_p_to_He4_Cl36_reaclib) = drate_dT; + } } - } - { - // He4_Fe54_to_p_Co57_reaclib + { + // Ar40_p_to_He4_Cl37_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Fe54); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe54); - } + log_scor = rate_eval.log_screen(k_p_Ar40); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ar40); + } #endif - rate_He4_Fe54_to_p_Co57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe54_to_p_Co57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe54_to_p_Co57_reaclib) = drate_dT; + rate_Ar40_p_to_He4_Cl37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ar40_p_to_He4_Cl37_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar40_p_to_He4_Cl37_reaclib) = drate_dT; + } } - } - { - // n_Fe55_to_p_Mn55_reaclib + { + // K37_n_to_p_Ar37_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Fe55_to_p_Mn55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Fe55_to_p_Mn55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Fe55_to_p_Mn55_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K37_n_to_p_Ar37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K37_n_to_p_Ar37_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K37_n_to_p_Ar37_reaclib) = drate_dT; + } } - } - { - // n_Fe55_to_He4_Cr52_reaclib + { + // K37_n_to_He4_Cl34_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Fe55_to_He4_Cr52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Fe55_to_He4_Cr52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Fe55_to_He4_Cr52_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K37_n_to_He4_Cl34_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K37_n_to_He4_Cl34_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K37_n_to_He4_Cl34_reaclib) = drate_dT; + } } - } - { - // p_Fe55_to_n_Co55_reaclib + { + // K37_He4_to_p_Ca40_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Fe55); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe55); - } + log_scor = rate_eval.log_screen(k_He4_K37); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_K37); + } #endif - rate_p_Fe55_to_n_Co55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Fe55_to_n_Co55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Fe55_to_n_Co55_reaclib) = drate_dT; + rate_K37_He4_to_p_Ca40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K37_He4_to_p_Ca40_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K37_He4_to_p_Ca40_reaclib) = drate_dT; + } } - } - { - // p_Fe55_to_He4_Mn52_reaclib + { + // K38_n_to_p_Ar38_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Fe55); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe55); - } -#endif - rate_p_Fe55_to_He4_Mn52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Fe55_to_He4_Mn52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Fe55_to_He4_Mn52_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K38_n_to_p_Ar38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K38_n_to_p_Ar38_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K38_n_to_p_Ar38_reaclib) = drate_dT; + } } - } - { - // He4_Fe55_to_n_Ni58_reaclib + { + // K38_n_to_He4_Cl35_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Fe55); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe55); - } -#endif - rate_He4_Fe55_to_n_Ni58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe55_to_n_Ni58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe55_to_n_Ni58_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K38_n_to_He4_Cl35_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K38_n_to_He4_Cl35_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K38_n_to_He4_Cl35_reaclib) = drate_dT; + } } - } - { - // He4_Fe55_to_p_Co58_reaclib + { + // K38_He4_to_p_Ca41_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Fe55); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe55); - } + log_scor = rate_eval.log_screen(k_He4_K38); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_K38); + } #endif - rate_He4_Fe55_to_p_Co58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe55_to_p_Co58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe55_to_p_Co58_reaclib) = drate_dT; + rate_K38_He4_to_p_Ca41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K38_He4_to_p_Ca41_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K38_He4_to_p_Ca41_reaclib) = drate_dT; + } } - } - { - // n_Fe56_to_He4_Cr53_reaclib + { + // K39_n_to_p_Ar39_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Fe56_to_He4_Cr53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Fe56_to_He4_Cr53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Fe56_to_He4_Cr53_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K39_n_to_p_Ar39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K39_n_to_p_Ar39_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K39_n_to_p_Ar39_reaclib) = drate_dT; + } } - } - { - // p_Fe56_to_n_Co56_reaclib + { + // K39_n_to_He4_Cl36_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Fe56); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe56); - } -#endif - rate_p_Fe56_to_n_Co56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Fe56_to_n_Co56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Fe56_to_n_Co56_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K39_n_to_He4_Cl36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K39_n_to_He4_Cl36_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K39_n_to_He4_Cl36_reaclib) = drate_dT; + } } - } - { - // p_Fe56_to_He4_Mn53_reaclib + { + // K39_p_to_He4_Ar36_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Fe56); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe56); - } + log_scor = rate_eval.log_screen(k_p_K39); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_K39); + } #endif - rate_p_Fe56_to_He4_Mn53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Fe56_to_He4_Mn53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Fe56_to_He4_Mn53_reaclib) = drate_dT; + rate_K39_p_to_He4_Ar36_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K39_p_to_He4_Ar36_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K39_p_to_He4_Ar36_reaclib) = drate_dT; + } } - } - { - // He4_Fe56_to_n_Ni59_reaclib + { + // K40_n_to_p_Ar40_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Fe56); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe56); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K40_n_to_p_Ar40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K40_n_to_p_Ar40_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K40_n_to_p_Ar40_reaclib) = drate_dT; + } } -#endif - rate_He4_Fe56_to_n_Ni59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe56_to_n_Ni59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe56_to_n_Ni59_reaclib) = drate_dT; + + { + // K40_n_to_He4_Cl37_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_K40_n_to_He4_Cl37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K40_n_to_He4_Cl37_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K40_n_to_He4_Cl37_reaclib) = drate_dT; + } } - } - { - // He4_Fe56_to_p_Co59_reaclib + { + // K40_p_to_n_Ca40_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Fe56); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe56); - } + log_scor = rate_eval.log_screen(k_p_K40); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_K40); + } #endif - rate_He4_Fe56_to_p_Co59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe56_to_p_Co59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe56_to_p_Co59_reaclib) = drate_dT; + rate_K40_p_to_n_Ca40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K40_p_to_n_Ca40_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K40_p_to_n_Ca40_reaclib) = drate_dT; + } } - } - { - // n_Fe57_to_He4_Cr54_reaclib + { + // K40_p_to_He4_Ar37_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Fe57_to_He4_Cr54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Fe57_to_He4_Cr54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Fe57_to_He4_Cr54_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_K40); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_K40); + } +#endif + rate_K40_p_to_He4_Ar37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K40_p_to_He4_Ar37_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K40_p_to_He4_Ar37_reaclib) = drate_dT; + } } - } - { - // p_Fe57_to_n_Co57_reaclib + { + // K40_He4_to_p_Ca43_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Fe57); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe57); - } + log_scor = rate_eval.log_screen(k_He4_K40); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_K40); + } #endif - rate_p_Fe57_to_n_Co57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Fe57_to_n_Co57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Fe57_to_n_Co57_reaclib) = drate_dT; + rate_K40_He4_to_p_Ca43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K40_He4_to_p_Ca43_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K40_He4_to_p_Ca43_reaclib) = drate_dT; + } } - } - { - // p_Fe57_to_He4_Mn54_reaclib + { + // K41_p_to_n_Ca41_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Fe57); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe57); - } + log_scor = rate_eval.log_screen(k_p_K41); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_K41); + } #endif - rate_p_Fe57_to_He4_Mn54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Fe57_to_He4_Mn54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Fe57_to_He4_Mn54_reaclib) = drate_dT; + rate_K41_p_to_n_Ca41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K41_p_to_n_Ca41_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K41_p_to_n_Ca41_reaclib) = drate_dT; + } } - } - { - // He4_Fe57_to_n_Ni60_reaclib + { + // K41_p_to_He4_Ar38_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Fe57); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe57); - } + log_scor = rate_eval.log_screen(k_p_K41); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_K41); + } #endif - rate_He4_Fe57_to_n_Ni60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe57_to_n_Ni60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe57_to_n_Ni60_reaclib) = drate_dT; + rate_K41_p_to_He4_Ar38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K41_p_to_He4_Ar38_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K41_p_to_He4_Ar38_reaclib) = drate_dT; + } } - } - { - // p_Fe58_to_n_Co58_reaclib + { + // K41_He4_to_n_Sc44_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Fe58); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe58); - } + log_scor = rate_eval.log_screen(k_He4_K41); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_K41); + } #endif - rate_p_Fe58_to_n_Co58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Fe58_to_n_Co58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Fe58_to_n_Co58_reaclib) = drate_dT; + rate_K41_He4_to_n_Sc44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K41_He4_to_n_Sc44_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K41_He4_to_n_Sc44_reaclib) = drate_dT; + } } - } - { - // p_Fe58_to_He4_Mn55_reaclib + { + // K41_He4_to_p_Ca44_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Fe58); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe58); - } + log_scor = rate_eval.log_screen(k_He4_K41); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_K41); + } #endif - rate_p_Fe58_to_He4_Mn55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Fe58_to_He4_Mn55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Fe58_to_He4_Mn55_reaclib) = drate_dT; + rate_K41_He4_to_p_Ca44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_K41_He4_to_p_Ca44_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K41_He4_to_p_Ca44_reaclib) = drate_dT; + } } - } - { - // He4_Fe58_to_n_Ni61_reaclib + { + // Ca40_n_to_He4_Ar37_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Fe58); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe58); - } -#endif - rate_He4_Fe58_to_n_Ni61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Fe58_to_n_Ni61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Fe58_to_n_Ni61_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca40_n_to_He4_Ar37_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca40_n_to_He4_Ar37_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_n_to_He4_Ar37_reaclib) = drate_dT; + } } - } - { - // n_Co53_to_p_Fe53_reaclib + { + // Ca41_n_to_He4_Ar38_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Co53_to_p_Fe53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Co53_to_p_Fe53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Co53_to_p_Fe53_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca41_n_to_He4_Ar38_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca41_n_to_He4_Ar38_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca41_n_to_He4_Ar38_reaclib) = drate_dT; + } } - } - { - // n_Co53_to_He4_Mn50_reaclib + { + // Ca42_n_to_He4_Ar39_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Co53_to_He4_Mn50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Co53_to_He4_Mn50_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Co53_to_He4_Mn50_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca42_n_to_He4_Ar39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca42_n_to_He4_Ar39_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca42_n_to_He4_Ar39_reaclib) = drate_dT; + } } - } - { - // He4_Co53_to_p_Ni56_reaclib + { + // Ca42_p_to_He4_K39_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Co53); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co53); - } + log_scor = rate_eval.log_screen(k_p_Ca42); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca42); + } #endif - rate_He4_Co53_to_p_Ni56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Co53_to_p_Ni56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Co53_to_p_Ni56_reaclib) = drate_dT; + rate_Ca42_p_to_He4_K39_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca42_p_to_He4_K39_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca42_p_to_He4_K39_reaclib) = drate_dT; + } } - } - { - // n_Co54_to_p_Fe54_reaclib + { + // Ca43_n_to_He4_Ar40_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Co54_to_p_Fe54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Co54_to_p_Fe54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Co54_to_p_Fe54_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ca43_n_to_He4_Ar40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca43_n_to_He4_Ar40_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca43_n_to_He4_Ar40_reaclib) = drate_dT; + } } - } - { - // n_Co54_to_He4_Mn51_reaclib + { + // Ca43_He4_to_n_Ti46_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Co54_to_He4_Mn51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Co54_to_He4_Mn51_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Co54_to_He4_Mn51_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ca43); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca43); + } +#endif + rate_Ca43_He4_to_n_Ti46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca43_He4_to_n_Ti46_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca43_He4_to_n_Ti46_reaclib) = drate_dT; + } } - } - { - // He4_Co54_to_n_Cu57_reaclib + { + // Ca45_He4_to_n_Ti48_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Co54); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co54); - } + log_scor = rate_eval.log_screen(k_He4_Ca45); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca45); + } #endif - rate_He4_Co54_to_n_Cu57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Co54_to_n_Cu57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Co54_to_n_Cu57_reaclib) = drate_dT; + rate_Ca45_He4_to_n_Ti48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca45_He4_to_n_Ti48_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca45_He4_to_n_Ti48_reaclib) = drate_dT; + } } - } - { - // He4_Co54_to_p_Ni57_reaclib + { + // Ca47_p_to_n_Sc47_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Co54); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co54); - } + log_scor = rate_eval.log_screen(k_p_Ca47); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ca47); + } #endif - rate_He4_Co54_to_p_Ni57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Co54_to_p_Ni57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Co54_to_p_Ni57_reaclib) = drate_dT; + rate_Ca47_p_to_n_Sc47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca47_p_to_n_Sc47_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca47_p_to_n_Sc47_reaclib) = drate_dT; + } } - } - { - // n_Co55_to_p_Fe55_reaclib + { + // Ca47_He4_to_n_Ti50_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Co55_to_p_Fe55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Co55_to_p_Fe55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Co55_to_p_Fe55_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ca47); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ca47); + } +#endif + rate_Ca47_He4_to_n_Ti50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ca47_He4_to_n_Ti50_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca47_He4_to_n_Ti50_reaclib) = drate_dT; + } } - } - { - // n_Co55_to_He4_Mn52_reaclib + { + // Sc43_n_to_p_Ca43_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Co55_to_He4_Mn52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Co55_to_He4_Mn52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Co55_to_He4_Mn52_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc43_n_to_p_Ca43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc43_n_to_p_Ca43_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc43_n_to_p_Ca43_reaclib) = drate_dT; + } } - } - { - // p_Co55_to_He4_Fe52_reaclib + { + // Sc43_n_to_He4_K40_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Co55); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co55); - } -#endif - rate_p_Co55_to_He4_Fe52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Co55_to_He4_Fe52_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co55_to_He4_Fe52_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc43_n_to_He4_K40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc43_n_to_He4_K40_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc43_n_to_He4_K40_reaclib) = drate_dT; + } } - } - { - // He4_Co55_to_n_Cu58_reaclib + { + // Sc43_p_to_He4_Ca40_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Co55); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co55); - } + log_scor = rate_eval.log_screen(k_p_Sc43); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc43); + } #endif - rate_He4_Co55_to_n_Cu58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Co55_to_n_Cu58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Co55_to_n_Cu58_reaclib) = drate_dT; + rate_Sc43_p_to_He4_Ca40_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc43_p_to_He4_Ca40_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc43_p_to_He4_Ca40_reaclib) = drate_dT; + } } - } - { - // He4_Co55_to_p_Ni58_reaclib + { + // Sc43_He4_to_p_Ti46_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Co55); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co55); - } + log_scor = rate_eval.log_screen(k_He4_Sc43); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc43); + } #endif - rate_He4_Co55_to_p_Ni58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Co55_to_p_Ni58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Co55_to_p_Ni58_reaclib) = drate_dT; + rate_Sc43_He4_to_p_Ti46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc43_He4_to_p_Ti46_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc43_He4_to_p_Ti46_reaclib) = drate_dT; + } } - } - { - // n_Co56_to_p_Fe56_reaclib + { + // Sc44_n_to_p_Ca44_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Co56_to_p_Fe56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Co56_to_p_Fe56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Co56_to_p_Fe56_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc44_n_to_p_Ca44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc44_n_to_p_Ca44_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc44_n_to_p_Ca44_reaclib) = drate_dT; + } } - } - { - // n_Co56_to_He4_Mn53_reaclib + { + // Sc44_p_to_He4_Ca41_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Co56_to_He4_Mn53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Co56_to_He4_Mn53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Co56_to_He4_Mn53_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Sc44); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc44); + } +#endif + rate_Sc44_p_to_He4_Ca41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc44_p_to_He4_Ca41_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc44_p_to_He4_Ca41_reaclib) = drate_dT; + } } - } - { - // p_Co56_to_n_Ni56_reaclib + { + // Sc44_He4_to_p_Ti47_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Co56); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co56); - } + log_scor = rate_eval.log_screen(k_He4_Sc44); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc44); + } #endif - rate_p_Co56_to_n_Ni56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Co56_to_n_Ni56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co56_to_n_Ni56_reaclib) = drate_dT; + rate_Sc44_He4_to_p_Ti47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc44_He4_to_p_Ti47_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc44_He4_to_p_Ti47_reaclib) = drate_dT; + } } - } - { - // p_Co56_to_He4_Fe53_reaclib + { + // Sc45_n_to_p_Ca45_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Co56); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co56); - } -#endif - rate_p_Co56_to_He4_Fe53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Co56_to_He4_Fe53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co56_to_He4_Fe53_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc45_n_to_p_Ca45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc45_n_to_p_Ca45_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc45_n_to_p_Ca45_reaclib) = drate_dT; + } } - } - { - // He4_Co56_to_n_Cu59_reaclib + { + // Sc45_p_to_He4_Ca42_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Co56); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co56); - } + log_scor = rate_eval.log_screen(k_p_Sc45); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc45); + } #endif - rate_He4_Co56_to_n_Cu59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Co56_to_n_Cu59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Co56_to_n_Cu59_reaclib) = drate_dT; + rate_Sc45_p_to_He4_Ca42_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc45_p_to_He4_Ca42_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc45_p_to_He4_Ca42_reaclib) = drate_dT; + } } - } - { - // He4_Co56_to_p_Ni59_reaclib + { + // Sc45_He4_to_p_Ti48_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Co56); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co56); - } + log_scor = rate_eval.log_screen(k_He4_Sc45); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc45); + } #endif - rate_He4_Co56_to_p_Ni59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Co56_to_p_Ni59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Co56_to_p_Ni59_reaclib) = drate_dT; + rate_Sc45_He4_to_p_Ti48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc45_He4_to_p_Ti48_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc45_He4_to_p_Ti48_reaclib) = drate_dT; + } } - } - { - // n_Co57_to_p_Fe57_reaclib + { + // Sc46_n_to_p_Ca46_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Co57_to_p_Fe57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Co57_to_p_Fe57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Co57_to_p_Fe57_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc46_n_to_p_Ca46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc46_n_to_p_Ca46_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc46_n_to_p_Ca46_reaclib) = drate_dT; + } } - } - { - // n_Co57_to_He4_Mn54_reaclib + { + // Sc46_p_to_n_Ti46_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Co57_to_He4_Mn54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Co57_to_He4_Mn54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Co57_to_He4_Mn54_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Sc46); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc46); + } +#endif + rate_Sc46_p_to_n_Ti46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc46_p_to_n_Ti46_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc46_p_to_n_Ti46_reaclib) = drate_dT; + } } - } - { - // p_Co57_to_n_Ni57_reaclib + { + // Sc46_p_to_He4_Ca43_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Co57); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co57); - } + log_scor = rate_eval.log_screen(k_p_Sc46); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc46); + } #endif - rate_p_Co57_to_n_Ni57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Co57_to_n_Ni57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co57_to_n_Ni57_reaclib) = drate_dT; + rate_Sc46_p_to_He4_Ca43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc46_p_to_He4_Ca43_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc46_p_to_He4_Ca43_reaclib) = drate_dT; + } } - } - { - // p_Co57_to_He4_Fe54_reaclib + { + // Sc46_He4_to_n_V49_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Co57); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co57); - } + log_scor = rate_eval.log_screen(k_He4_Sc46); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc46); + } #endif - rate_p_Co57_to_He4_Fe54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Co57_to_He4_Fe54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co57_to_He4_Fe54_reaclib) = drate_dT; + rate_Sc46_He4_to_n_V49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc46_He4_to_n_V49_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc46_He4_to_n_V49_reaclib) = drate_dT; + } } - } - { - // He4_Co57_to_n_Cu60_reaclib + { + // Sc46_He4_to_p_Ti49_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Co57); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co57); - } + log_scor = rate_eval.log_screen(k_He4_Sc46); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc46); + } #endif - rate_He4_Co57_to_n_Cu60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Co57_to_n_Cu60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Co57_to_n_Cu60_reaclib) = drate_dT; + rate_Sc46_He4_to_p_Ti49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc46_He4_to_p_Ti49_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc46_He4_to_p_Ti49_reaclib) = drate_dT; + } } - } - { - // He4_Co57_to_p_Ni60_reaclib + { + // Sc47_p_to_He4_Ca44_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Co57); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co57); - } + log_scor = rate_eval.log_screen(k_p_Sc47); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc47); + } #endif - rate_He4_Co57_to_p_Ni60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Co57_to_p_Ni60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Co57_to_p_Ni60_reaclib) = drate_dT; + rate_Sc47_p_to_He4_Ca44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc47_p_to_He4_Ca44_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc47_p_to_He4_Ca44_reaclib) = drate_dT; + } } - } - { - // n_Co58_to_p_Fe58_reaclib + { + // Sc47_He4_to_p_Ti50_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Co58_to_p_Fe58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Co58_to_p_Fe58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Co58_to_p_Fe58_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Sc47); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc47); + } +#endif + rate_Sc47_He4_to_p_Ti50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc47_He4_to_p_Ti50_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc47_He4_to_p_Ti50_reaclib) = drate_dT; + } } - } - { - // n_Co58_to_He4_Mn55_reaclib + { + // Sc48_n_to_p_Ca48_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Co58_to_He4_Mn55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Co58_to_He4_Mn55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Co58_to_He4_Mn55_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Sc48_n_to_p_Ca48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc48_n_to_p_Ca48_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc48_n_to_p_Ca48_reaclib) = drate_dT; + } } - } - { - // p_Co58_to_n_Ni58_reaclib + { + // Sc48_p_to_n_Ti48_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Co58); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co58); - } + log_scor = rate_eval.log_screen(k_p_Sc48); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc48); + } #endif - rate_p_Co58_to_n_Ni58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Co58_to_n_Ni58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co58_to_n_Ni58_reaclib) = drate_dT; + rate_Sc48_p_to_n_Ti48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc48_p_to_n_Ti48_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc48_p_to_n_Ti48_reaclib) = drate_dT; + } } - } - { - // p_Co58_to_He4_Fe55_reaclib + { + // Sc48_p_to_He4_Ca45_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Co58); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co58); - } + log_scor = rate_eval.log_screen(k_p_Sc48); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc48); + } #endif - rate_p_Co58_to_He4_Fe55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Co58_to_He4_Fe55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co58_to_He4_Fe55_reaclib) = drate_dT; + rate_Sc48_p_to_He4_Ca45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc48_p_to_He4_Ca45_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc48_p_to_He4_Ca45_reaclib) = drate_dT; + } } - } - { - // He4_Co58_to_n_Cu61_reaclib + { + // Sc48_He4_to_n_V51_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Co58); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co58); - } + log_scor = rate_eval.log_screen(k_He4_Sc48); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc48); + } #endif - rate_He4_Co58_to_n_Cu61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Co58_to_n_Cu61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Co58_to_n_Cu61_reaclib) = drate_dT; + rate_Sc48_He4_to_n_V51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc48_He4_to_n_V51_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc48_He4_to_n_V51_reaclib) = drate_dT; + } } - } - { - // He4_Co58_to_p_Ni61_reaclib + { + // Sc48_He4_to_p_Ti51_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Co58); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co58); - } + log_scor = rate_eval.log_screen(k_He4_Sc48); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Sc48); + } #endif - rate_He4_Co58_to_p_Ni61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Co58_to_p_Ni61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Co58_to_p_Ni61_reaclib) = drate_dT; + rate_Sc48_He4_to_p_Ti51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc48_He4_to_p_Ti51_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc48_He4_to_p_Ti51_reaclib) = drate_dT; + } } - } - { - // p_Co59_to_n_Ni59_reaclib + { + // Sc49_p_to_n_Ti49_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Co59); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co59); - } + log_scor = rate_eval.log_screen(k_p_Sc49); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc49); + } #endif - rate_p_Co59_to_n_Ni59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Co59_to_n_Ni59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co59_to_n_Ni59_reaclib) = drate_dT; + rate_Sc49_p_to_n_Ti49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc49_p_to_n_Ti49_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc49_p_to_n_Ti49_reaclib) = drate_dT; + } } - } - { - // p_Co59_to_He4_Fe56_reaclib + { + // Sc49_p_to_He4_Ca46_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Co59); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co59); + log_scor = rate_eval.log_screen(k_p_Sc49); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Sc49); + } +#endif + rate_Sc49_p_to_He4_Ca46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Sc49_p_to_He4_Ca46_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc49_p_to_He4_Ca46_reaclib) = drate_dT; + } + } + + { + // Ti44_n_to_p_Sc44_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti44_n_to_p_Sc44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti44_n_to_p_Sc44_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_n_to_p_Sc44_reaclib) = drate_dT; + } } + + { + // Ti44_n_to_He4_Ca41_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti44_n_to_He4_Ca41_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti44_n_to_He4_Ca41_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_n_to_He4_Ca41_reaclib) = drate_dT; + } + } + + { + // Ti44_He4_to_p_V47_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Ti44); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti44); + } #endif - rate_p_Co59_to_He4_Fe56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Co59_to_He4_Fe56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Co59_to_He4_Fe56_reaclib) = drate_dT; + rate_Ti44_He4_to_p_V47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti44_He4_to_p_V47_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_He4_to_p_V47_reaclib) = drate_dT; + } + } + + { + // Ti45_n_to_p_Sc45_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti45_n_to_p_Sc45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti45_n_to_p_Sc45_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti45_n_to_p_Sc45_reaclib) = drate_dT; + } + } + + { + // Ti45_n_to_He4_Ca42_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti45_n_to_He4_Ca42_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti45_n_to_He4_Ca42_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti45_n_to_He4_Ca42_reaclib) = drate_dT; + } } - } - { - // He4_Co59_to_n_Cu62_reaclib + { + // Ti45_He4_to_p_V48_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Co59); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co59); - } + log_scor = rate_eval.log_screen(k_He4_Ti45); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti45); + } #endif - rate_He4_Co59_to_n_Cu62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Co59_to_n_Cu62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Co59_to_n_Cu62_reaclib) = drate_dT; + rate_Ti45_He4_to_p_V48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti45_He4_to_p_V48_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti45_He4_to_p_V48_reaclib) = drate_dT; + } } - } - { - // He4_Co59_to_p_Ni62_reaclib + { + // Ti47_n_to_p_Sc47_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Co59); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co59); - } -#endif - rate_He4_Co59_to_p_Ni62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Co59_to_p_Ni62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Co59_to_p_Ni62_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti47_n_to_p_Sc47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti47_n_to_p_Sc47_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti47_n_to_p_Sc47_reaclib) = drate_dT; + } } - } - { - // n_Ni56_to_p_Co56_reaclib + { + // Ti47_n_to_He4_Ca44_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ni56_to_p_Co56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ni56_to_p_Co56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ni56_to_p_Co56_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti47_n_to_He4_Ca44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti47_n_to_He4_Ca44_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti47_n_to_He4_Ca44_reaclib) = drate_dT; + } } - } - { - // n_Ni56_to_He4_Fe53_reaclib + { + // Ti49_n_to_He4_Ca46_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ni56_to_He4_Fe53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ni56_to_He4_Fe53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ni56_to_He4_Fe53_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti49_n_to_He4_Ca46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti49_n_to_He4_Ca46_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti49_n_to_He4_Ca46_reaclib) = drate_dT; + } } - } - { - // p_Ni56_to_He4_Co53_reaclib + { + // Ti49_He4_to_n_Cr52_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ni56); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni56); - } + log_scor = rate_eval.log_screen(k_He4_Ti49); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti49); + } #endif - rate_p_Ni56_to_He4_Co53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ni56_to_He4_Co53_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni56_to_He4_Co53_reaclib) = drate_dT; + rate_Ti49_He4_to_n_Cr52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti49_He4_to_n_Cr52_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti49_He4_to_n_Cr52_reaclib) = drate_dT; + } } - } - { - // He4_Ni56_to_n_Zn59_reaclib + { + // Ti51_n_to_He4_Ca48_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ni56); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni56); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ti51_n_to_He4_Ca48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti51_n_to_He4_Ca48_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti51_n_to_He4_Ca48_reaclib) = drate_dT; + } } + + { + // Ti51_p_to_n_V51_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Ti51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ti51); + } #endif - rate_He4_Ni56_to_n_Zn59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ni56_to_n_Zn59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ni56_to_n_Zn59_reaclib) = drate_dT; + rate_Ti51_p_to_n_V51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti51_p_to_n_V51_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti51_p_to_n_V51_reaclib) = drate_dT; + } } - } - { - // He4_Ni56_to_p_Cu59_reaclib + { + // Ti51_He4_to_n_Cr54_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ni56); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni56); - } + log_scor = rate_eval.log_screen(k_He4_Ti51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ti51); + } #endif - rate_He4_Ni56_to_p_Cu59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ni56_to_p_Cu59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ni56_to_p_Cu59_reaclib) = drate_dT; + rate_Ti51_He4_to_n_Cr54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ti51_He4_to_n_Cr54_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti51_He4_to_n_Cr54_reaclib) = drate_dT; + } } - } - { - // n_Ni57_to_p_Co57_reaclib + { + // V46_n_to_p_Ti46_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ni57_to_p_Co57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ni57_to_p_Co57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ni57_to_p_Co57_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V46_n_to_p_Ti46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V46_n_to_p_Ti46_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V46_n_to_p_Ti46_reaclib) = drate_dT; + } } - } - { - // n_Ni57_to_He4_Fe54_reaclib + { + // V46_n_to_He4_Sc43_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ni57_to_He4_Fe54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ni57_to_He4_Fe54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ni57_to_He4_Fe54_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V46_n_to_He4_Sc43_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V46_n_to_He4_Sc43_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V46_n_to_He4_Sc43_reaclib) = drate_dT; + } } - } - { - // p_Ni57_to_n_Cu57_reaclib + { + // V46_He4_to_p_Cr49_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ni57); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni57); - } + log_scor = rate_eval.log_screen(k_He4_V46); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V46); + } #endif - rate_p_Ni57_to_n_Cu57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ni57_to_n_Cu57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni57_to_n_Cu57_reaclib) = drate_dT; + rate_V46_He4_to_p_Cr49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V46_He4_to_p_Cr49_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V46_He4_to_p_Cr49_reaclib) = drate_dT; + } } - } - { - // p_Ni57_to_He4_Co54_reaclib + { + // V47_n_to_p_Ti47_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ni57); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni57); - } -#endif - rate_p_Ni57_to_He4_Co54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ni57_to_He4_Co54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni57_to_He4_Co54_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V47_n_to_p_Ti47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V47_n_to_p_Ti47_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V47_n_to_p_Ti47_reaclib) = drate_dT; + } } - } - { - // He4_Ni57_to_n_Zn60_reaclib + { + // V47_n_to_He4_Sc44_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ni57); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni57); - } -#endif - rate_He4_Ni57_to_n_Zn60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ni57_to_n_Zn60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ni57_to_n_Zn60_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V47_n_to_He4_Sc44_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V47_n_to_He4_Sc44_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V47_n_to_He4_Sc44_reaclib) = drate_dT; + } } - } - { - // He4_Ni57_to_p_Cu60_reaclib + { + // V47_He4_to_p_Cr50_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ni57); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni57); - } + log_scor = rate_eval.log_screen(k_He4_V47); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V47); + } #endif - rate_He4_Ni57_to_p_Cu60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ni57_to_p_Cu60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ni57_to_p_Cu60_reaclib) = drate_dT; + rate_V47_He4_to_p_Cr50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V47_He4_to_p_Cr50_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V47_He4_to_p_Cr50_reaclib) = drate_dT; + } } - } - { - // n_Ni58_to_p_Co58_reaclib + { + // V48_n_to_p_Ti48_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ni58_to_p_Co58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ni58_to_p_Co58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ni58_to_p_Co58_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V48_n_to_p_Ti48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V48_n_to_p_Ti48_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V48_n_to_p_Ti48_reaclib) = drate_dT; + } } - } - { - // n_Ni58_to_He4_Fe55_reaclib + { + // V48_n_to_He4_Sc45_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ni58_to_He4_Fe55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ni58_to_He4_Fe55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ni58_to_He4_Fe55_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V48_n_to_He4_Sc45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V48_n_to_He4_Sc45_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V48_n_to_He4_Sc45_reaclib) = drate_dT; + } } - } - { - // p_Ni58_to_n_Cu58_reaclib + { + // V48_He4_to_p_Cr51_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ni58); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni58); - } + log_scor = rate_eval.log_screen(k_He4_V48); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V48); + } #endif - rate_p_Ni58_to_n_Cu58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ni58_to_n_Cu58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni58_to_n_Cu58_reaclib) = drate_dT; + rate_V48_He4_to_p_Cr51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V48_He4_to_p_Cr51_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V48_He4_to_p_Cr51_reaclib) = drate_dT; + } } - } - { - // p_Ni58_to_He4_Co55_reaclib + { + // V49_n_to_p_Ti49_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ni58); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni58); - } -#endif - rate_p_Ni58_to_He4_Co55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ni58_to_He4_Co55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni58_to_He4_Co55_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V49_n_to_p_Ti49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V49_n_to_p_Ti49_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V49_n_to_p_Ti49_reaclib) = drate_dT; + } } - } - { - // He4_Ni58_to_n_Zn61_reaclib + { + // V49_p_to_He4_Ti46_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ni58); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni58); - } + log_scor = rate_eval.log_screen(k_p_V49); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V49); + } #endif - rate_He4_Ni58_to_n_Zn61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ni58_to_n_Zn61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ni58_to_n_Zn61_reaclib) = drate_dT; + rate_V49_p_to_He4_Ti46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V49_p_to_He4_Ti46_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V49_p_to_He4_Ti46_reaclib) = drate_dT; + } } - } - { - // He4_Ni58_to_p_Cu61_reaclib + { + // V49_He4_to_p_Cr52_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ni58); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni58); - } + log_scor = rate_eval.log_screen(k_He4_V49); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V49); + } #endif - rate_He4_Ni58_to_p_Cu61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ni58_to_p_Cu61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ni58_to_p_Cu61_reaclib) = drate_dT; + rate_V49_He4_to_p_Cr52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V49_He4_to_p_Cr52_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V49_He4_to_p_Cr52_reaclib) = drate_dT; + } } - } - { - // n_Ni59_to_p_Co59_reaclib + { + // V50_n_to_p_Ti50_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ni59_to_p_Co59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ni59_to_p_Co59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ni59_to_p_Co59_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V50_n_to_p_Ti50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V50_n_to_p_Ti50_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V50_n_to_p_Ti50_reaclib) = drate_dT; + } } - } - { - // n_Ni59_to_He4_Fe56_reaclib + { + // V50_n_to_He4_Sc47_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ni59_to_He4_Fe56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ni59_to_He4_Fe56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ni59_to_He4_Fe56_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V50_n_to_He4_Sc47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V50_n_to_He4_Sc47_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V50_n_to_He4_Sc47_reaclib) = drate_dT; + } } - } - { - // p_Ni59_to_n_Cu59_reaclib + { + // V50_p_to_n_Cr50_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ni59); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni59); - } + log_scor = rate_eval.log_screen(k_p_V50); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V50); + } #endif - rate_p_Ni59_to_n_Cu59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ni59_to_n_Cu59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni59_to_n_Cu59_reaclib) = drate_dT; + rate_V50_p_to_n_Cr50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V50_p_to_n_Cr50_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V50_p_to_n_Cr50_reaclib) = drate_dT; + } } - } - { - // p_Ni59_to_He4_Co56_reaclib + { + // V50_p_to_He4_Ti47_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ni59); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni59); - } + log_scor = rate_eval.log_screen(k_p_V50); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V50); + } #endif - rate_p_Ni59_to_He4_Co56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ni59_to_He4_Co56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni59_to_He4_Co56_reaclib) = drate_dT; + rate_V50_p_to_He4_Ti47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V50_p_to_He4_Ti47_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V50_p_to_He4_Ti47_reaclib) = drate_dT; + } } - } - { - // He4_Ni59_to_n_Zn62_reaclib + { + // V50_He4_to_p_Cr53_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ni59); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni59); - } + log_scor = rate_eval.log_screen(k_He4_V50); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V50); + } #endif - rate_He4_Ni59_to_n_Zn62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ni59_to_n_Zn62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ni59_to_n_Zn62_reaclib) = drate_dT; + rate_V50_He4_to_p_Cr53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V50_He4_to_p_Cr53_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V50_He4_to_p_Cr53_reaclib) = drate_dT; + } } - } - { - // He4_Ni59_to_p_Cu62_reaclib + { + // V51_p_to_He4_Ti48_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ni59); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni59); - } + log_scor = rate_eval.log_screen(k_p_V51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V51); + } #endif - rate_He4_Ni59_to_p_Cu62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ni59_to_p_Cu62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ni59_to_p_Cu62_reaclib) = drate_dT; + rate_V51_p_to_He4_Ti48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V51_p_to_He4_Ti48_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V51_p_to_He4_Ti48_reaclib) = drate_dT; + } } - } - { - // n_Ni60_to_He4_Fe57_reaclib + { + // V52_n_to_He4_Sc49_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ni60_to_He4_Fe57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ni60_to_He4_Fe57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ni60_to_He4_Fe57_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_V52_n_to_He4_Sc49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V52_n_to_He4_Sc49_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V52_n_to_He4_Sc49_reaclib) = drate_dT; + } } - } - { - // p_Ni60_to_n_Cu60_reaclib + { + // V52_p_to_n_Cr52_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ni60); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni60); - } + log_scor = rate_eval.log_screen(k_p_V52); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V52); + } #endif - rate_p_Ni60_to_n_Cu60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ni60_to_n_Cu60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni60_to_n_Cu60_reaclib) = drate_dT; + rate_V52_p_to_n_Cr52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V52_p_to_n_Cr52_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V52_p_to_n_Cr52_reaclib) = drate_dT; + } } - } - { - // p_Ni60_to_He4_Co57_reaclib + { + // V52_p_to_He4_Ti49_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ni60); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni60); - } + log_scor = rate_eval.log_screen(k_p_V52); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_V52); + } #endif - rate_p_Ni60_to_He4_Co57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ni60_to_He4_Co57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni60_to_He4_Co57_reaclib) = drate_dT; + rate_V52_p_to_He4_Ti49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V52_p_to_He4_Ti49_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V52_p_to_He4_Ti49_reaclib) = drate_dT; + } } - } - { - // He4_Ni60_to_n_Zn63_reaclib + { + // V52_He4_to_n_Mn55_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ni60); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni60); - } + log_scor = rate_eval.log_screen(k_He4_V52); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_V52); + } #endif - rate_He4_Ni60_to_n_Zn63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ni60_to_n_Zn63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ni60_to_n_Zn63_reaclib) = drate_dT; + rate_V52_He4_to_n_Mn55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_V52_He4_to_n_Mn55_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V52_He4_to_n_Mn55_reaclib) = drate_dT; + } } - } - { - // He4_Ni60_to_p_Cu63_reaclib + { + // Cr48_n_to_p_V48_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ni60); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni60); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr48_n_to_p_V48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr48_n_to_p_V48_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr48_n_to_p_V48_reaclib) = drate_dT; + } } -#endif - rate_He4_Ni60_to_p_Cu63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ni60_to_p_Cu63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ni60_to_p_Cu63_reaclib) = drate_dT; - } - } - { - // n_Ni61_to_He4_Fe58_reaclib + { + // Cr48_n_to_He4_Ti45_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ni61_to_He4_Fe58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ni61_to_He4_Fe58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ni61_to_He4_Fe58_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr48_n_to_He4_Ti45_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr48_n_to_He4_Ti45_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr48_n_to_He4_Ti45_reaclib) = drate_dT; + } } - } - { - // p_Ni61_to_n_Cu61_reaclib + { + // Cr48_He4_to_p_Mn51_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ni61); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni61); - } + log_scor = rate_eval.log_screen(k_He4_Cr48); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr48); + } #endif - rate_p_Ni61_to_n_Cu61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ni61_to_n_Cu61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni61_to_n_Cu61_reaclib) = drate_dT; + rate_Cr48_He4_to_p_Mn51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr48_He4_to_p_Mn51_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr48_He4_to_p_Mn51_reaclib) = drate_dT; + } } - } - { - // p_Ni61_to_He4_Co58_reaclib + { + // Cr49_n_to_p_V49_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ni61); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni61); - } -#endif - rate_p_Ni61_to_He4_Co58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ni61_to_He4_Co58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni61_to_He4_Co58_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr49_n_to_p_V49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr49_n_to_p_V49_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr49_n_to_p_V49_reaclib) = drate_dT; + } } - } - { - // He4_Ni61_to_n_Zn64_reaclib + { + // Cr49_n_to_He4_Ti46_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ni61); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni61); - } -#endif - rate_He4_Ni61_to_n_Zn64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ni61_to_n_Zn64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ni61_to_n_Zn64_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr49_n_to_He4_Ti46_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr49_n_to_He4_Ti46_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr49_n_to_He4_Ti46_reaclib) = drate_dT; + } } - } - { - // He4_Ni61_to_p_Cu64_reaclib + { + // Cr49_He4_to_p_Mn52_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ni61); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni61); - } + log_scor = rate_eval.log_screen(k_He4_Cr49); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cr49); + } #endif - rate_He4_Ni61_to_p_Cu64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ni61_to_p_Cu64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ni61_to_p_Cu64_reaclib) = drate_dT; + rate_Cr49_He4_to_p_Mn52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr49_He4_to_p_Mn52_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr49_He4_to_p_Mn52_reaclib) = drate_dT; + } } - } - { - // p_Ni62_to_n_Cu62_reaclib + { + // Cr50_n_to_He4_Ti47_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ni62); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni62); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr50_n_to_He4_Ti47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr50_n_to_He4_Ti47_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr50_n_to_He4_Ti47_reaclib) = drate_dT; + } } -#endif - rate_p_Ni62_to_n_Cu62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ni62_to_n_Cu62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni62_to_n_Cu62_reaclib) = drate_dT; + + { + // Cr51_n_to_p_V51_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr51_n_to_p_V51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr51_n_to_p_V51_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr51_n_to_p_V51_reaclib) = drate_dT; + } } - } - { - // p_Ni62_to_He4_Co59_reaclib + { + // Cr51_n_to_He4_Ti48_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ni62); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni62); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr51_n_to_He4_Ti48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr51_n_to_He4_Ti48_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr51_n_to_He4_Ti48_reaclib) = drate_dT; + } } -#endif - rate_p_Ni62_to_He4_Co59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ni62_to_He4_Co59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni62_to_He4_Co59_reaclib) = drate_dT; + + { + // Cr53_n_to_He4_Ti50_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cr53_n_to_He4_Ti50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr53_n_to_He4_Ti50_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr53_n_to_He4_Ti50_reaclib) = drate_dT; + } } - } - { - // He4_Ni62_to_n_Zn65_reaclib + { + // Cr54_p_to_He4_V51_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ni62); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni62); - } + log_scor = rate_eval.log_screen(k_p_Cr54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cr54); + } #endif - rate_He4_Ni62_to_n_Zn65_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ni62_to_n_Zn65_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ni62_to_n_Zn65_reaclib) = drate_dT; + rate_Cr54_p_to_He4_V51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cr54_p_to_He4_V51_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr54_p_to_He4_V51_reaclib) = drate_dT; + } } - } - { - // He4_Ni62_to_p_Cu65_reaclib + { + // Mn50_n_to_p_Cr50_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ni62); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni62); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn50_n_to_p_Cr50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn50_n_to_p_Cr50_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn50_n_to_p_Cr50_reaclib) = drate_dT; + } } -#endif - rate_He4_Ni62_to_p_Cu65_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ni62_to_p_Cu65_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ni62_to_p_Cu65_reaclib) = drate_dT; + + { + // Mn50_n_to_He4_V47_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn50_n_to_He4_V47_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn50_n_to_He4_V47_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn50_n_to_He4_V47_reaclib) = drate_dT; + } } - } - { - // p_Ni63_to_n_Cu63_reaclib + { + // Mn50_He4_to_p_Fe53_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ni63); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni63); - } + log_scor = rate_eval.log_screen(k_He4_Mn50); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn50); + } #endif - rate_p_Ni63_to_n_Cu63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ni63_to_n_Cu63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni63_to_n_Cu63_reaclib) = drate_dT; + rate_Mn50_He4_to_p_Fe53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn50_He4_to_p_Fe53_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn50_He4_to_p_Fe53_reaclib) = drate_dT; + } } - } - { - // He4_Ni63_to_n_Zn66_reaclib + { + // Mn51_n_to_p_Cr51_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Ni63); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Ni63); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn51_n_to_p_Cr51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn51_n_to_p_Cr51_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn51_n_to_p_Cr51_reaclib) = drate_dT; + } } -#endif - rate_He4_Ni63_to_n_Zn66_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Ni63_to_n_Zn66_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Ni63_to_n_Zn66_reaclib) = drate_dT; + + { + // Mn51_n_to_He4_V48_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn51_n_to_He4_V48_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn51_n_to_He4_V48_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn51_n_to_He4_V48_reaclib) = drate_dT; + } } - } - { - // p_Ni64_to_n_Cu64_reaclib + { + // Mn51_He4_to_p_Fe54_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ni64); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni64); - } + log_scor = rate_eval.log_screen(k_He4_Mn51); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn51); + } #endif - rate_p_Ni64_to_n_Cu64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ni64_to_n_Cu64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ni64_to_n_Cu64_reaclib) = drate_dT; + rate_Mn51_He4_to_p_Fe54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn51_He4_to_p_Fe54_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn51_He4_to_p_Fe54_reaclib) = drate_dT; + } } - } - { - // n_Cu57_to_p_Ni57_reaclib + { + // Mn52_n_to_p_Cr52_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cu57_to_p_Ni57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cu57_to_p_Ni57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cu57_to_p_Ni57_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn52_n_to_p_Cr52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn52_n_to_p_Cr52_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn52_n_to_p_Cr52_reaclib) = drate_dT; + } } - } - { - // n_Cu57_to_He4_Co54_reaclib + { + // Mn52_n_to_He4_V49_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cu57_to_He4_Co54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cu57_to_He4_Co54_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cu57_to_He4_Co54_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn52_n_to_He4_V49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn52_n_to_He4_V49_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn52_n_to_He4_V49_reaclib) = drate_dT; + } } - } - { - // He4_Cu57_to_p_Zn60_reaclib + { + // Mn52_He4_to_p_Fe55_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cu57); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu57); - } + log_scor = rate_eval.log_screen(k_He4_Mn52); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn52); + } #endif - rate_He4_Cu57_to_p_Zn60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cu57_to_p_Zn60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cu57_to_p_Zn60_reaclib) = drate_dT; + rate_Mn52_He4_to_p_Fe55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn52_He4_to_p_Fe55_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn52_He4_to_p_Fe55_reaclib) = drate_dT; + } } - } - { - // n_Cu58_to_p_Ni58_reaclib + { + // Mn53_n_to_p_Cr53_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cu58_to_p_Ni58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cu58_to_p_Ni58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cu58_to_p_Ni58_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn53_n_to_p_Cr53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn53_n_to_p_Cr53_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn53_n_to_p_Cr53_reaclib) = drate_dT; + } } - } - { - // n_Cu58_to_He4_Co55_reaclib + { + // Mn53_n_to_He4_V50_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cu58_to_He4_Co55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cu58_to_He4_Co55_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cu58_to_He4_Co55_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn53_n_to_He4_V50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn53_n_to_He4_V50_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn53_n_to_He4_V50_reaclib) = drate_dT; + } } - } - { - // He4_Cu58_to_p_Zn61_reaclib + { + // Mn53_p_to_He4_Cr50_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cu58); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu58); + log_scor = rate_eval.log_screen(k_p_Mn53); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn53); + } +#endif + rate_Mn53_p_to_He4_Cr50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn53_p_to_He4_Cr50_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn53_p_to_He4_Cr50_reaclib) = drate_dT; + } } + + { + // Mn53_He4_to_p_Fe56_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Mn53); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Mn53); + } #endif - rate_He4_Cu58_to_p_Zn61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cu58_to_p_Zn61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cu58_to_p_Zn61_reaclib) = drate_dT; + rate_Mn53_He4_to_p_Fe56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn53_He4_to_p_Fe56_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn53_He4_to_p_Fe56_reaclib) = drate_dT; + } } - } - { - // n_Cu59_to_p_Ni59_reaclib + { + // Mn54_n_to_p_Cr54_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cu59_to_p_Ni59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cu59_to_p_Ni59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cu59_to_p_Ni59_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn54_n_to_p_Cr54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn54_n_to_p_Cr54_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn54_n_to_p_Cr54_reaclib) = drate_dT; + } } - } - { - // n_Cu59_to_He4_Co56_reaclib + { + // Mn54_n_to_He4_V51_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cu59_to_He4_Co56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cu59_to_He4_Co56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cu59_to_He4_Co56_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Mn54_n_to_He4_V51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn54_n_to_He4_V51_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn54_n_to_He4_V51_reaclib) = drate_dT; + } } - } - { - // p_Cu59_to_n_Zn59_reaclib + { + // Mn54_p_to_He4_Cr51_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cu59); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu59); - } + log_scor = rate_eval.log_screen(k_p_Mn54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn54); + } #endif - rate_p_Cu59_to_n_Zn59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cu59_to_n_Zn59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cu59_to_n_Zn59_reaclib) = drate_dT; + rate_Mn54_p_to_He4_Cr51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn54_p_to_He4_Cr51_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn54_p_to_He4_Cr51_reaclib) = drate_dT; + } } - } - { - // p_Cu59_to_He4_Ni56_reaclib + { + // Mn55_p_to_He4_Cr52_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cu59); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu59); - } + log_scor = rate_eval.log_screen(k_p_Mn55); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Mn55); + } #endif - rate_p_Cu59_to_He4_Ni56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cu59_to_He4_Ni56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cu59_to_He4_Ni56_reaclib) = drate_dT; + rate_Mn55_p_to_He4_Cr52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Mn55_p_to_He4_Cr52_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn55_p_to_He4_Cr52_reaclib) = drate_dT; + } } - } - { - // He4_Cu59_to_n_Ga62_reaclib + { + // Fe52_n_to_p_Mn52_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cu59); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu59); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe52_n_to_p_Mn52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe52_n_to_p_Mn52_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe52_n_to_p_Mn52_reaclib) = drate_dT; + } } -#endif - rate_He4_Cu59_to_n_Ga62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cu59_to_n_Ga62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cu59_to_n_Ga62_reaclib) = drate_dT; + + { + // Fe52_n_to_He4_Cr49_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe52_n_to_He4_Cr49_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe52_n_to_He4_Cr49_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe52_n_to_He4_Cr49_reaclib) = drate_dT; + } } - } - { - // He4_Cu59_to_p_Zn62_reaclib + { + // Fe52_He4_to_p_Co55_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cu59); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu59); - } + log_scor = rate_eval.log_screen(k_He4_Fe52); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe52); + } #endif - rate_He4_Cu59_to_p_Zn62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cu59_to_p_Zn62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cu59_to_p_Zn62_reaclib) = drate_dT; + rate_Fe52_He4_to_p_Co55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe52_He4_to_p_Co55_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe52_He4_to_p_Co55_reaclib) = drate_dT; + } } - } - { - // n_Cu60_to_p_Ni60_reaclib + { + // Fe53_n_to_p_Mn53_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cu60_to_p_Ni60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cu60_to_p_Ni60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cu60_to_p_Ni60_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe53_n_to_p_Mn53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe53_n_to_p_Mn53_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe53_n_to_p_Mn53_reaclib) = drate_dT; + } } - } - { - // n_Cu60_to_He4_Co57_reaclib + { + // Fe53_n_to_He4_Cr50_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cu60_to_He4_Co57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cu60_to_He4_Co57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cu60_to_He4_Co57_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe53_n_to_He4_Cr50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe53_n_to_He4_Cr50_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe53_n_to_He4_Cr50_reaclib) = drate_dT; + } } - } - { - // p_Cu60_to_n_Zn60_reaclib + { + // Fe53_He4_to_p_Co56_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cu60); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu60); - } + log_scor = rate_eval.log_screen(k_He4_Fe53); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Fe53); + } #endif - rate_p_Cu60_to_n_Zn60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cu60_to_n_Zn60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cu60_to_n_Zn60_reaclib) = drate_dT; + rate_Fe53_He4_to_p_Co56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe53_He4_to_p_Co56_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe53_He4_to_p_Co56_reaclib) = drate_dT; + } } - } - { - // p_Cu60_to_He4_Ni57_reaclib + { + // Fe54_n_to_p_Mn54_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cu60); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu60); - } -#endif - rate_p_Cu60_to_He4_Ni57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cu60_to_He4_Ni57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cu60_to_He4_Ni57_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe54_n_to_p_Mn54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe54_n_to_p_Mn54_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe54_n_to_p_Mn54_reaclib) = drate_dT; + } } - } - { - // He4_Cu60_to_n_Ga63_reaclib + { + // Fe54_n_to_He4_Cr51_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cu60); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu60); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe54_n_to_He4_Cr51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe54_n_to_He4_Cr51_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe54_n_to_He4_Cr51_reaclib) = drate_dT; + } } -#endif - rate_He4_Cu60_to_n_Ga63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cu60_to_n_Ga63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cu60_to_n_Ga63_reaclib) = drate_dT; - } - } - { - // He4_Cu60_to_p_Zn63_reaclib + { + // Fe55_n_to_p_Mn55_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cu60); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu60); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe55_n_to_p_Mn55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe55_n_to_p_Mn55_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe55_n_to_p_Mn55_reaclib) = drate_dT; + } } -#endif - rate_He4_Cu60_to_p_Zn63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cu60_to_p_Zn63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cu60_to_p_Zn63_reaclib) = drate_dT; + + { + // Fe55_n_to_He4_Cr52_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe55_n_to_He4_Cr52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe55_n_to_He4_Cr52_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe55_n_to_He4_Cr52_reaclib) = drate_dT; + } } - } - { - // n_Cu61_to_p_Ni61_reaclib + { + // Fe56_n_to_He4_Cr53_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cu61_to_p_Ni61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cu61_to_p_Ni61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cu61_to_p_Ni61_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe56_n_to_He4_Cr53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe56_n_to_He4_Cr53_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe56_n_to_He4_Cr53_reaclib) = drate_dT; + } } - } - { - // n_Cu61_to_He4_Co58_reaclib + { + // Fe57_n_to_He4_Cr54_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cu61_to_He4_Co58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cu61_to_He4_Co58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cu61_to_He4_Co58_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Fe57_n_to_He4_Cr54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe57_n_to_He4_Cr54_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe57_n_to_He4_Cr54_reaclib) = drate_dT; + } } - } - { - // p_Cu61_to_n_Zn61_reaclib + { + // Fe57_p_to_He4_Mn54_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cu61); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu61); - } + log_scor = rate_eval.log_screen(k_p_Fe57); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe57); + } #endif - rate_p_Cu61_to_n_Zn61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cu61_to_n_Zn61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cu61_to_n_Zn61_reaclib) = drate_dT; + rate_Fe57_p_to_He4_Mn54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe57_p_to_He4_Mn54_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe57_p_to_He4_Mn54_reaclib) = drate_dT; + } } - } - { - // p_Cu61_to_He4_Ni58_reaclib + { + // Fe58_p_to_He4_Mn55_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cu61); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu61); - } + log_scor = rate_eval.log_screen(k_p_Fe58); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Fe58); + } #endif - rate_p_Cu61_to_He4_Ni58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cu61_to_He4_Ni58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cu61_to_He4_Ni58_reaclib) = drate_dT; + rate_Fe58_p_to_He4_Mn55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Fe58_p_to_He4_Mn55_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe58_p_to_He4_Mn55_reaclib) = drate_dT; + } } - } - { - // He4_Cu61_to_n_Ga64_reaclib + { + // Co53_n_to_p_Fe53_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cu61); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu61); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co53_n_to_p_Fe53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co53_n_to_p_Fe53_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co53_n_to_p_Fe53_reaclib) = drate_dT; + } } -#endif - rate_He4_Cu61_to_n_Ga64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cu61_to_n_Ga64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cu61_to_n_Ga64_reaclib) = drate_dT; + + { + // Co53_n_to_He4_Mn50_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co53_n_to_He4_Mn50_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co53_n_to_He4_Mn50_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co53_n_to_He4_Mn50_reaclib) = drate_dT; + } } - } - { - // He4_Cu61_to_p_Zn64_reaclib + { + // Co53_He4_to_p_Ni56_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cu61); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu61); - } + log_scor = rate_eval.log_screen(k_He4_Co53); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co53); + } #endif - rate_He4_Cu61_to_p_Zn64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cu61_to_p_Zn64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cu61_to_p_Zn64_reaclib) = drate_dT; + rate_Co53_He4_to_p_Ni56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co53_He4_to_p_Ni56_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co53_He4_to_p_Ni56_reaclib) = drate_dT; + } } - } - { - // n_Cu62_to_p_Ni62_reaclib + { + // Co54_n_to_p_Fe54_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cu62_to_p_Ni62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cu62_to_p_Ni62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cu62_to_p_Ni62_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co54_n_to_p_Fe54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co54_n_to_p_Fe54_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co54_n_to_p_Fe54_reaclib) = drate_dT; + } } - } - { - // n_Cu62_to_He4_Co59_reaclib + { + // Co54_n_to_He4_Mn51_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cu62_to_He4_Co59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cu62_to_He4_Co59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cu62_to_He4_Co59_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co54_n_to_He4_Mn51_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co54_n_to_He4_Mn51_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co54_n_to_He4_Mn51_reaclib) = drate_dT; + } } - } - { - // p_Cu62_to_n_Zn62_reaclib + { + // Co54_He4_to_p_Ni57_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cu62); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu62); - } + log_scor = rate_eval.log_screen(k_He4_Co54); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co54); + } #endif - rate_p_Cu62_to_n_Zn62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cu62_to_n_Zn62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cu62_to_n_Zn62_reaclib) = drate_dT; + rate_Co54_He4_to_p_Ni57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co54_He4_to_p_Ni57_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co54_He4_to_p_Ni57_reaclib) = drate_dT; + } } - } - { - // p_Cu62_to_He4_Ni59_reaclib + { + // Co55_n_to_p_Fe55_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cu62); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu62); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co55_n_to_p_Fe55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co55_n_to_p_Fe55_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co55_n_to_p_Fe55_reaclib) = drate_dT; + } } -#endif - rate_p_Cu62_to_He4_Ni59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cu62_to_He4_Ni59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cu62_to_He4_Ni59_reaclib) = drate_dT; + + { + // Co55_n_to_He4_Mn52_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co55_n_to_He4_Mn52_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co55_n_to_He4_Mn52_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co55_n_to_He4_Mn52_reaclib) = drate_dT; + } } - } - { - // He4_Cu62_to_p_Zn65_reaclib + { + // Co55_He4_to_p_Ni58_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cu62); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu62); - } + log_scor = rate_eval.log_screen(k_He4_Co55); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co55); + } #endif - rate_He4_Cu62_to_p_Zn65_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cu62_to_p_Zn65_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cu62_to_p_Zn65_reaclib) = drate_dT; + rate_Co55_He4_to_p_Ni58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co55_He4_to_p_Ni58_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co55_He4_to_p_Ni58_reaclib) = drate_dT; + } } - } - { - // n_Cu63_to_p_Ni63_reaclib + { + // Co56_n_to_p_Fe56_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cu63_to_p_Ni63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cu63_to_p_Ni63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cu63_to_p_Ni63_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co56_n_to_p_Fe56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co56_n_to_p_Fe56_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co56_n_to_p_Fe56_reaclib) = drate_dT; + } } - } - { - // p_Cu63_to_n_Zn63_reaclib + { + // Co56_n_to_He4_Mn53_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cu63); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu63); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co56_n_to_He4_Mn53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co56_n_to_He4_Mn53_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co56_n_to_He4_Mn53_reaclib) = drate_dT; + } } + + { + // Co56_He4_to_p_Ni59_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_He4_Co56); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co56); + } #endif - rate_p_Cu63_to_n_Zn63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cu63_to_n_Zn63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cu63_to_n_Zn63_reaclib) = drate_dT; + rate_Co56_He4_to_p_Ni59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co56_He4_to_p_Ni59_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co56_He4_to_p_Ni59_reaclib) = drate_dT; + } } - } - { - // p_Cu63_to_He4_Ni60_reaclib + { + // Co57_n_to_p_Fe57_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cu63); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu63); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co57_n_to_p_Fe57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co57_n_to_p_Fe57_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co57_n_to_p_Fe57_reaclib) = drate_dT; + } + } + + { + // Co57_n_to_He4_Mn54_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co57_n_to_He4_Mn54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co57_n_to_He4_Mn54_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co57_n_to_He4_Mn54_reaclib) = drate_dT; + } } + + { + // Co57_p_to_He4_Fe54_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Co57); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co57); + } #endif - rate_p_Cu63_to_He4_Ni60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cu63_to_He4_Ni60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cu63_to_He4_Ni60_reaclib) = drate_dT; + rate_Co57_p_to_He4_Fe54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co57_p_to_He4_Fe54_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co57_p_to_He4_Fe54_reaclib) = drate_dT; + } } - } - { - // He4_Cu63_to_p_Zn66_reaclib + { + // Co57_He4_to_p_Ni60_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Cu63); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu63); - } + log_scor = rate_eval.log_screen(k_He4_Co57); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Co57); + } #endif - rate_He4_Cu63_to_p_Zn66_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Cu63_to_p_Zn66_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Cu63_to_p_Zn66_reaclib) = drate_dT; + rate_Co57_He4_to_p_Ni60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co57_He4_to_p_Ni60_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co57_He4_to_p_Ni60_reaclib) = drate_dT; + } } - } - { - // n_Cu64_to_p_Ni64_reaclib + { + // Co58_n_to_p_Fe58_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Cu64_to_p_Ni64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Cu64_to_p_Ni64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Cu64_to_p_Ni64_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co58_n_to_p_Fe58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co58_n_to_p_Fe58_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co58_n_to_p_Fe58_reaclib) = drate_dT; + } } - } - { - // p_Cu64_to_n_Zn64_reaclib + { + // Co58_n_to_He4_Mn55_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cu64); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu64); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Co58_n_to_He4_Mn55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co58_n_to_He4_Mn55_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co58_n_to_He4_Mn55_reaclib) = drate_dT; + } } -#endif - rate_p_Cu64_to_n_Zn64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cu64_to_n_Zn64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cu64_to_n_Zn64_reaclib) = drate_dT; - } - } - { - // p_Cu64_to_He4_Ni61_reaclib + { + // Co58_p_to_He4_Fe55_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cu64); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu64); - } + log_scor = rate_eval.log_screen(k_p_Co58); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co58); + } #endif - rate_p_Cu64_to_He4_Ni61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cu64_to_He4_Ni61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cu64_to_He4_Ni61_reaclib) = drate_dT; + rate_Co58_p_to_He4_Fe55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co58_p_to_He4_Fe55_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co58_p_to_He4_Fe55_reaclib) = drate_dT; + } } - } - { - // p_Cu65_to_n_Zn65_reaclib + { + // Co59_p_to_He4_Fe56_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cu65); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu65); - } + log_scor = rate_eval.log_screen(k_p_Co59); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Co59); + } #endif - rate_p_Cu65_to_n_Zn65_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cu65_to_n_Zn65_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cu65_to_n_Zn65_reaclib) = drate_dT; + rate_Co59_p_to_He4_Fe56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Co59_p_to_He4_Fe56_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co59_p_to_He4_Fe56_reaclib) = drate_dT; + } } - } - { - // p_Cu65_to_He4_Ni62_reaclib + { + // Ni56_n_to_p_Co56_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Cu65); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu65); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni56_n_to_p_Co56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni56_n_to_p_Co56_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni56_n_to_p_Co56_reaclib) = drate_dT; + } } -#endif - rate_p_Cu65_to_He4_Ni62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Cu65_to_He4_Ni62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Cu65_to_He4_Ni62_reaclib) = drate_dT; + + { + // Ni56_n_to_He4_Fe53_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni56_n_to_He4_Fe53_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni56_n_to_He4_Fe53_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni56_n_to_He4_Fe53_reaclib) = drate_dT; + } } - } - { - // n_Zn59_to_p_Cu59_reaclib + { + // Ni57_n_to_p_Co57_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Zn59_to_p_Cu59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Zn59_to_p_Cu59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Zn59_to_p_Cu59_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni57_n_to_p_Co57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni57_n_to_p_Co57_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni57_n_to_p_Co57_reaclib) = drate_dT; + } } - } - { - // n_Zn59_to_He4_Ni56_reaclib + { + // Ni57_n_to_He4_Fe54_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Zn59_to_He4_Ni56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Zn59_to_He4_Ni56_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Zn59_to_He4_Ni56_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni57_n_to_He4_Fe54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni57_n_to_He4_Fe54_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni57_n_to_He4_Fe54_reaclib) = drate_dT; + } } - } - { - // He4_Zn59_to_p_Ga62_reaclib + { + // Ni58_n_to_p_Co58_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Zn59); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Zn59); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni58_n_to_p_Co58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni58_n_to_p_Co58_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni58_n_to_p_Co58_reaclib) = drate_dT; + } } -#endif - rate_He4_Zn59_to_p_Ga62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Zn59_to_p_Ga62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Zn59_to_p_Ga62_reaclib) = drate_dT; + + { + // Ni58_n_to_He4_Fe55_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni58_n_to_He4_Fe55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni58_n_to_He4_Fe55_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni58_n_to_He4_Fe55_reaclib) = drate_dT; + } } - } - { - // n_Zn60_to_p_Cu60_reaclib + { + // Ni59_n_to_p_Co59_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Zn60_to_p_Cu60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Zn60_to_p_Cu60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Zn60_to_p_Cu60_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni59_n_to_p_Co59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni59_n_to_p_Co59_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni59_n_to_p_Co59_reaclib) = drate_dT; + } } - } - { - // n_Zn60_to_He4_Ni57_reaclib + { + // Ni59_n_to_He4_Fe56_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Zn60_to_He4_Ni57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Zn60_to_He4_Ni57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Zn60_to_He4_Ni57_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni59_n_to_He4_Fe56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni59_n_to_He4_Fe56_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni59_n_to_He4_Fe56_reaclib) = drate_dT; + } } - } - { - // p_Zn60_to_He4_Cu57_reaclib + { + // Ni60_n_to_He4_Fe57_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Zn60); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn60); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni60_n_to_He4_Fe57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni60_n_to_He4_Fe57_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni60_n_to_He4_Fe57_reaclib) = drate_dT; + } } -#endif - rate_p_Zn60_to_He4_Cu57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Zn60_to_He4_Cu57_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Zn60_to_He4_Cu57_reaclib) = drate_dT; + + { + // Ni61_n_to_He4_Fe58_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ni61_n_to_He4_Fe58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni61_n_to_He4_Fe58_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni61_n_to_He4_Fe58_reaclib) = drate_dT; + } } - } - { - // He4_Zn60_to_n_Ge63_reaclib + { + // Ni61_p_to_He4_Co58_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Zn60); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Zn60); - } + log_scor = rate_eval.log_screen(k_p_Ni61); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni61); + } #endif - rate_He4_Zn60_to_n_Ge63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Zn60_to_n_Ge63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Zn60_to_n_Ge63_reaclib) = drate_dT; + rate_Ni61_p_to_He4_Co58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni61_p_to_He4_Co58_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni61_p_to_He4_Co58_reaclib) = drate_dT; + } } - } - { - // He4_Zn60_to_p_Ga63_reaclib + { + // Ni62_p_to_He4_Co59_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Zn60); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Zn60); - } + log_scor = rate_eval.log_screen(k_p_Ni62); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ni62); + } #endif - rate_He4_Zn60_to_p_Ga63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Zn60_to_p_Ga63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Zn60_to_p_Ga63_reaclib) = drate_dT; + rate_Ni62_p_to_He4_Co59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ni62_p_to_He4_Co59_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni62_p_to_He4_Co59_reaclib) = drate_dT; + } } - } - { - // n_Zn61_to_p_Cu61_reaclib + { + // Cu57_n_to_p_Ni57_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Zn61_to_p_Cu61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Zn61_to_p_Cu61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Zn61_to_p_Cu61_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu57_n_to_p_Ni57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu57_n_to_p_Ni57_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu57_n_to_p_Ni57_reaclib) = drate_dT; + } } - } - { - // n_Zn61_to_He4_Ni58_reaclib + { + // Cu57_n_to_He4_Co54_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Zn61_to_He4_Ni58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Zn61_to_He4_Ni58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Zn61_to_He4_Ni58_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu57_n_to_He4_Co54_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu57_n_to_He4_Co54_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu57_n_to_He4_Co54_reaclib) = drate_dT; + } } - } - { - // p_Zn61_to_He4_Cu58_reaclib + { + // Cu57_He4_to_p_Zn60_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Zn61); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn61); - } + log_scor = rate_eval.log_screen(k_He4_Cu57); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Cu57); + } #endif - rate_p_Zn61_to_He4_Cu58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Zn61_to_He4_Cu58_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Zn61_to_He4_Cu58_reaclib) = drate_dT; + rate_Cu57_He4_to_p_Zn60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu57_He4_to_p_Zn60_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu57_He4_to_p_Zn60_reaclib) = drate_dT; + } } - } - { - // He4_Zn61_to_n_Ge64_reaclib + { + // Cu58_n_to_p_Ni58_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Zn61); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Zn61); - } -#endif - rate_He4_Zn61_to_n_Ge64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Zn61_to_n_Ge64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Zn61_to_n_Ge64_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu58_n_to_p_Ni58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu58_n_to_p_Ni58_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu58_n_to_p_Ni58_reaclib) = drate_dT; + } } - } - { - // He4_Zn61_to_p_Ga64_reaclib + { + // Cu58_n_to_He4_Co55_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_Zn61); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_Zn61); - } -#endif - rate_He4_Zn61_to_p_Ga64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_Zn61_to_p_Ga64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_Zn61_to_p_Ga64_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu58_n_to_He4_Co55_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu58_n_to_He4_Co55_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu58_n_to_He4_Co55_reaclib) = drate_dT; + } } - } - { - // n_Zn62_to_p_Cu62_reaclib + { + // Cu59_n_to_p_Ni59_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Zn62_to_p_Cu62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Zn62_to_p_Cu62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Zn62_to_p_Cu62_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu59_n_to_p_Ni59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu59_n_to_p_Ni59_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu59_n_to_p_Ni59_reaclib) = drate_dT; + } } - } - { - // n_Zn62_to_He4_Ni59_reaclib + { + // Cu59_n_to_He4_Co56_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Zn62_to_He4_Ni59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Zn62_to_He4_Ni59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Zn62_to_He4_Ni59_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu59_n_to_He4_Co56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu59_n_to_He4_Co56_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu59_n_to_He4_Co56_reaclib) = drate_dT; + } } - } - { - // p_Zn62_to_n_Ga62_reaclib + { + // Cu59_p_to_He4_Ni56_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Zn62); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn62); - } + log_scor = rate_eval.log_screen(k_p_Cu59); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu59); + } #endif - rate_p_Zn62_to_n_Ga62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Zn62_to_n_Ga62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Zn62_to_n_Ga62_reaclib) = drate_dT; + rate_Cu59_p_to_He4_Ni56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu59_p_to_He4_Ni56_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu59_p_to_He4_Ni56_reaclib) = drate_dT; + } } - } - { - // p_Zn62_to_He4_Cu59_reaclib + { + // Cu60_n_to_p_Ni60_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Zn62); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn62); - } -#endif - rate_p_Zn62_to_He4_Cu59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Zn62_to_He4_Cu59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Zn62_to_He4_Cu59_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu60_n_to_p_Ni60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu60_n_to_p_Ni60_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu60_n_to_p_Ni60_reaclib) = drate_dT; + } } - } - { - // n_Zn63_to_p_Cu63_reaclib + { + // Cu60_n_to_He4_Co57_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Zn63_to_p_Cu63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Zn63_to_p_Cu63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Zn63_to_p_Cu63_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu60_n_to_He4_Co57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu60_n_to_He4_Co57_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu60_n_to_He4_Co57_reaclib) = drate_dT; + } } - } - { - // n_Zn63_to_He4_Ni60_reaclib + { + // Cu60_p_to_He4_Ni57_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Zn63_to_He4_Ni60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Zn63_to_He4_Ni60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Zn63_to_He4_Ni60_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cu60); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu60); + } +#endif + rate_Cu60_p_to_He4_Ni57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu60_p_to_He4_Ni57_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu60_p_to_He4_Ni57_reaclib) = drate_dT; + } } - } - { - // p_Zn63_to_n_Ga63_reaclib + { + // Cu61_n_to_p_Ni61_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Zn63); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn63); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu61_n_to_p_Ni61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu61_n_to_p_Ni61_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu61_n_to_p_Ni61_reaclib) = drate_dT; + } } -#endif - rate_p_Zn63_to_n_Ga63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Zn63_to_n_Ga63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Zn63_to_n_Ga63_reaclib) = drate_dT; + + { + // Cu61_n_to_He4_Co58_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu61_n_to_He4_Co58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu61_n_to_He4_Co58_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu61_n_to_He4_Co58_reaclib) = drate_dT; + } } - } - { - // p_Zn63_to_He4_Cu60_reaclib + { + // Cu61_p_to_He4_Ni58_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Zn63); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn63); - } + log_scor = rate_eval.log_screen(k_p_Cu61); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu61); + } #endif - rate_p_Zn63_to_He4_Cu60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Zn63_to_He4_Cu60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Zn63_to_He4_Cu60_reaclib) = drate_dT; + rate_Cu61_p_to_He4_Ni58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu61_p_to_He4_Ni58_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu61_p_to_He4_Ni58_reaclib) = drate_dT; + } } - } - { - // n_Zn64_to_p_Cu64_reaclib + { + // Cu62_n_to_p_Ni62_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Zn64_to_p_Cu64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Zn64_to_p_Cu64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Zn64_to_p_Cu64_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu62_n_to_p_Ni62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu62_n_to_p_Ni62_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu62_n_to_p_Ni62_reaclib) = drate_dT; + } } - } - { - // n_Zn64_to_He4_Ni61_reaclib + { + // Cu62_n_to_He4_Co59_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Zn64_to_He4_Ni61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Zn64_to_He4_Ni61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Zn64_to_He4_Ni61_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu62_n_to_He4_Co59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu62_n_to_He4_Co59_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu62_n_to_He4_Co59_reaclib) = drate_dT; + } } - } - { - // p_Zn64_to_n_Ga64_reaclib + { + // Cu62_p_to_He4_Ni59_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Zn64); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn64); - } + log_scor = rate_eval.log_screen(k_p_Cu62); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu62); + } #endif - rate_p_Zn64_to_n_Ga64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Zn64_to_n_Ga64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Zn64_to_n_Ga64_reaclib) = drate_dT; + rate_Cu62_p_to_He4_Ni59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu62_p_to_He4_Ni59_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu62_p_to_He4_Ni59_reaclib) = drate_dT; + } } - } - { - // p_Zn64_to_He4_Cu61_reaclib + { + // Cu63_n_to_p_Ni63_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Zn64); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn64); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu63_n_to_p_Ni63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu63_n_to_p_Ni63_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu63_n_to_p_Ni63_reaclib) = drate_dT; + } } + + { + // Cu63_p_to_He4_Ni60_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cu63); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu63); + } #endif - rate_p_Zn64_to_He4_Cu61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Zn64_to_He4_Cu61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Zn64_to_He4_Cu61_reaclib) = drate_dT; + rate_Cu63_p_to_He4_Ni60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu63_p_to_He4_Ni60_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu63_p_to_He4_Ni60_reaclib) = drate_dT; + } } - } - { - // n_Zn65_to_p_Cu65_reaclib + { + // Cu64_n_to_p_Ni64_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Zn65_to_p_Cu65_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Zn65_to_p_Cu65_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Zn65_to_p_Cu65_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Cu64_n_to_p_Ni64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu64_n_to_p_Ni64_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu64_n_to_p_Ni64_reaclib) = drate_dT; + } } - } - { - // n_Zn65_to_He4_Ni62_reaclib + { + // Cu64_p_to_He4_Ni61_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Zn65_to_He4_Ni62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Zn65_to_He4_Ni62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Zn65_to_He4_Ni62_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Cu64); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu64); + } +#endif + rate_Cu64_p_to_He4_Ni61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu64_p_to_He4_Ni61_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu64_p_to_He4_Ni61_reaclib) = drate_dT; + } } - } - { - // p_Zn65_to_He4_Cu62_reaclib + { + // Cu65_p_to_He4_Ni62_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Zn65); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn65); - } + log_scor = rate_eval.log_screen(k_p_Cu65); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Cu65); + } #endif - rate_p_Zn65_to_He4_Cu62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Zn65_to_He4_Cu62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Zn65_to_He4_Cu62_reaclib) = drate_dT; + rate_Cu65_p_to_He4_Ni62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Cu65_p_to_He4_Ni62_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu65_p_to_He4_Ni62_reaclib) = drate_dT; + } } - } - { - // n_Zn66_to_He4_Ni63_reaclib + { + // Zn59_n_to_p_Cu59_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Zn66_to_He4_Ni63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Zn66_to_He4_Ni63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Zn66_to_He4_Ni63_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn59_n_to_p_Cu59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn59_n_to_p_Cu59_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn59_n_to_p_Cu59_reaclib) = drate_dT; + } } - } - { - // p_Zn66_to_He4_Cu63_reaclib + { + // Zn59_n_to_He4_Ni56_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Zn66); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn66); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn59_n_to_He4_Ni56_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn59_n_to_He4_Ni56_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn59_n_to_He4_Ni56_reaclib) = drate_dT; + } } -#endif - rate_p_Zn66_to_He4_Cu63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Zn66_to_He4_Cu63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Zn66_to_He4_Cu63_reaclib) = drate_dT; + + { + // Zn60_n_to_p_Cu60_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn60_n_to_p_Cu60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn60_n_to_p_Cu60_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn60_n_to_p_Cu60_reaclib) = drate_dT; + } } - } - { - // n_Ga62_to_p_Zn62_reaclib + { + // Zn60_n_to_He4_Ni57_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ga62_to_p_Zn62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ga62_to_p_Zn62_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ga62_to_p_Zn62_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn60_n_to_He4_Ni57_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn60_n_to_He4_Ni57_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn60_n_to_He4_Ni57_reaclib) = drate_dT; + } } - } - { - // n_Ga62_to_He4_Cu59_reaclib + { + // Zn61_n_to_p_Cu61_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ga62_to_He4_Cu59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ga62_to_He4_Cu59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ga62_to_He4_Cu59_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn61_n_to_p_Cu61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn61_n_to_p_Cu61_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn61_n_to_p_Cu61_reaclib) = drate_dT; + } } - } - { - // p_Ga62_to_He4_Zn59_reaclib + { + // Zn61_n_to_He4_Ni58_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ga62); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ga62); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn61_n_to_He4_Ni58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn61_n_to_He4_Ni58_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn61_n_to_He4_Ni58_reaclib) = drate_dT; + } } + + { + // Zn61_p_to_He4_Cu58_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Zn61); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn61); + } #endif - rate_p_Ga62_to_He4_Zn59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ga62_to_He4_Zn59_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ga62_to_He4_Zn59_reaclib) = drate_dT; + rate_Zn61_p_to_He4_Cu58_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn61_p_to_He4_Cu58_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn61_p_to_He4_Cu58_reaclib) = drate_dT; + } } - } - { - // n_Ga63_to_p_Zn63_reaclib + { + // Zn62_n_to_p_Cu62_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ga63_to_p_Zn63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ga63_to_p_Zn63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ga63_to_p_Zn63_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn62_n_to_p_Cu62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn62_n_to_p_Cu62_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn62_n_to_p_Cu62_reaclib) = drate_dT; + } } - } - { - // n_Ga63_to_He4_Cu60_reaclib + { + // Zn62_n_to_He4_Ni59_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ga63_to_He4_Cu60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ga63_to_He4_Cu60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ga63_to_He4_Cu60_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn62_n_to_He4_Ni59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn62_n_to_He4_Ni59_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn62_n_to_He4_Ni59_reaclib) = drate_dT; + } } - } - { - // p_Ga63_to_n_Ge63_reaclib + { + // Zn62_p_to_He4_Cu59_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ga63); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ga63); - } + log_scor = rate_eval.log_screen(k_p_Zn62); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn62); + } #endif - rate_p_Ga63_to_n_Ge63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ga63_to_n_Ge63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ga63_to_n_Ge63_reaclib) = drate_dT; + rate_Zn62_p_to_He4_Cu59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn62_p_to_He4_Cu59_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn62_p_to_He4_Cu59_reaclib) = drate_dT; + } } - } - { - // p_Ga63_to_He4_Zn60_reaclib + { + // Zn63_n_to_p_Cu63_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ga63); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ga63); - } -#endif - rate_p_Ga63_to_He4_Zn60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ga63_to_He4_Zn60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ga63_to_He4_Zn60_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn63_n_to_p_Cu63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn63_n_to_p_Cu63_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn63_n_to_p_Cu63_reaclib) = drate_dT; + } } - } - { - // n_Ga64_to_p_Zn64_reaclib + { + // Zn63_n_to_He4_Ni60_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ga64_to_p_Zn64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ga64_to_p_Zn64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ga64_to_p_Zn64_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn63_n_to_He4_Ni60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn63_n_to_He4_Ni60_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn63_n_to_He4_Ni60_reaclib) = drate_dT; + } } - } - { - // n_Ga64_to_He4_Cu61_reaclib + { + // Zn63_p_to_He4_Cu60_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ga64_to_He4_Cu61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ga64_to_He4_Cu61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ga64_to_He4_Cu61_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Zn63); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn63); + } +#endif + rate_Zn63_p_to_He4_Cu60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn63_p_to_He4_Cu60_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn63_p_to_He4_Cu60_reaclib) = drate_dT; + } } - } - { - // p_Ga64_to_n_Ge64_reaclib + { + // Zn64_n_to_p_Cu64_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ga64); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ga64); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn64_n_to_p_Cu64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn64_n_to_p_Cu64_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn64_n_to_p_Cu64_reaclib) = drate_dT; + } } -#endif - rate_p_Ga64_to_n_Ge64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ga64_to_n_Ge64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ga64_to_n_Ge64_reaclib) = drate_dT; + + { + // Zn64_n_to_He4_Ni61_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn64_n_to_He4_Ni61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn64_n_to_He4_Ni61_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn64_n_to_He4_Ni61_reaclib) = drate_dT; + } } - } - { - // p_Ga64_to_He4_Zn61_reaclib + { + // Zn64_p_to_He4_Cu61_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Ga64); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ga64); - } + log_scor = rate_eval.log_screen(k_p_Zn64); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn64); + } #endif - rate_p_Ga64_to_He4_Zn61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Ga64_to_He4_Zn61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Ga64_to_He4_Zn61_reaclib) = drate_dT; + rate_Zn64_p_to_He4_Cu61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn64_p_to_He4_Cu61_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn64_p_to_He4_Cu61_reaclib) = drate_dT; + } } - } - { - // n_Ge63_to_p_Ga63_reaclib + { + // Zn65_n_to_p_Cu65_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ge63_to_p_Ga63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ge63_to_p_Ga63_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ge63_to_p_Ga63_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn65_n_to_p_Cu65_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn65_n_to_p_Cu65_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn65_n_to_p_Cu65_reaclib) = drate_dT; + } } - } - { - // n_Ge63_to_He4_Zn60_reaclib + { + // Zn65_n_to_He4_Ni62_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ge63_to_He4_Zn60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ge63_to_He4_Zn60_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ge63_to_He4_Zn60_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn65_n_to_He4_Ni62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn65_n_to_He4_Ni62_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn65_n_to_He4_Ni62_reaclib) = drate_dT; + } } - } - { - // n_Ge64_to_p_Ga64_reaclib + { + // Zn65_p_to_He4_Cu62_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ge64_to_p_Ga64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ge64_to_p_Ga64_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ge64_to_p_Ga64_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; +#ifdef SCREENING + log_scor = rate_eval.log_screen(k_p_Zn65); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn65); + } +#endif + rate_Zn65_p_to_He4_Cu62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn65_p_to_He4_Cu62_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn65_p_to_He4_Cu62_reaclib) = drate_dT; + } } - } - { - // n_Ge64_to_He4_Zn61_reaclib + { + // Zn66_n_to_He4_Ni63_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_Ge64_to_He4_Zn61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_Ge64_to_He4_Zn61_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_Ge64_to_He4_Zn61_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Zn66_n_to_He4_Ni63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn66_n_to_He4_Ni63_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn66_n_to_He4_Ni63_reaclib) = drate_dT; + } } - } - { - // p_d_to_n_p_p_reaclib + { + // Zn66_p_to_He4_Cu63_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_d); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_d); - } + log_scor = rate_eval.log_screen(k_p_Zn66); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Zn66); + } #endif - rate_p_d_to_n_p_p_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_d_to_n_p_p_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_d_to_n_p_p_reaclib) = drate_dT; + rate_Zn66_p_to_He4_Cu63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Zn66_p_to_He4_Cu63_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn66_p_to_He4_Cu63_reaclib) = drate_dT; + } } - } - { - // He3_He3_to_p_p_He4_reaclib + { + // Ga62_n_to_p_Zn62_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He3_He3); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He3_He3); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ga62_n_to_p_Zn62_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ga62_n_to_p_Zn62_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga62_n_to_p_Zn62_reaclib) = drate_dT; + } } -#endif - rate_He3_He3_to_p_p_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He3_He3_to_p_p_He4_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He3_He3_to_p_p_He4_reaclib) = drate_dT; + + { + // Ga62_n_to_He4_Cu59_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ga62_n_to_He4_Cu59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ga62_n_to_He4_Cu59_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga62_n_to_He4_Cu59_reaclib) = drate_dT; + } } - } - { - // d_Li7_to_n_He4_He4_reaclib + { + // Ga62_p_to_He4_Zn59_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_d_Li7); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_d_Li7); - } + log_scor = rate_eval.log_screen(k_p_Ga62); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ga62); + } #endif - rate_d_Li7_to_n_He4_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_d_Li7_to_n_He4_He4_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_d_Li7_to_n_He4_He4_reaclib) = drate_dT; + rate_Ga62_p_to_He4_Zn59_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ga62_p_to_He4_Zn59_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga62_p_to_He4_Zn59_reaclib) = drate_dT; + } } - } - { - // d_Be7_to_p_He4_He4_reaclib + { + // Ga63_n_to_p_Zn63_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_d_Be7); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_d_Be7); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ga63_n_to_p_Zn63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ga63_n_to_p_Zn63_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga63_n_to_p_Zn63_reaclib) = drate_dT; + } } -#endif - rate_d_Be7_to_p_He4_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_d_Be7_to_p_He4_He4_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_d_Be7_to_p_He4_He4_reaclib) = drate_dT; + + { + // Ga63_n_to_He4_Cu60_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ga63_n_to_He4_Cu60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ga63_n_to_He4_Cu60_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga63_n_to_He4_Cu60_reaclib) = drate_dT; + } } - } - { - // p_Be9_to_d_He4_He4_reaclib + { + // Ga63_p_to_He4_Zn60_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Be9); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Be9); - } + log_scor = rate_eval.log_screen(k_p_Ga63); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ga63); + } #endif - rate_p_Be9_to_d_He4_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Be9_to_d_He4_He4_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Be9_to_d_He4_He4_reaclib) = drate_dT; + rate_Ga63_p_to_He4_Zn60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ga63_p_to_He4_Zn60_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga63_p_to_He4_Zn60_reaclib) = drate_dT; + } } - } - { - // n_B8_to_p_He4_He4_reaclib + { + // Ga64_n_to_p_Zn64_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; - rate_n_B8_to_p_He4_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_B8_to_p_He4_He4_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_B8_to_p_He4_He4_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ga64_n_to_p_Zn64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ga64_n_to_p_Zn64_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga64_n_to_p_Zn64_reaclib) = drate_dT; + } } - } - { - // p_B11_to_He4_He4_He4_reaclib + { + // Ga64_n_to_He4_Cu61_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_B11); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_B11); - } -#endif - rate_p_B11_to_He4_He4_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_B11_to_He4_He4_He4_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_B11_to_He4_He4_He4_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ga64_n_to_He4_Cu61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ga64_n_to_He4_Cu61_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga64_n_to_He4_Cu61_reaclib) = drate_dT; + } } - } - { - // He3_Li7_to_n_p_He4_He4_reaclib + { + // Ga64_p_to_He4_Zn61_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He3_Li7); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He3_Li7); - } + log_scor = rate_eval.log_screen(k_p_Ga64); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Ga64); + } #endif - rate_He3_Li7_to_n_p_He4_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He3_Li7_to_n_p_He4_He4_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He3_Li7_to_n_p_He4_He4_reaclib) = drate_dT; + rate_Ga64_p_to_He4_Zn61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ga64_p_to_He4_Zn61_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga64_p_to_He4_Zn61_reaclib) = drate_dT; + } } - } - { - // He3_Be7_to_p_p_He4_He4_reaclib + { + // Ge63_n_to_p_Ga63_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_He3_Be7); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He3_Be7); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ge63_n_to_p_Ga63_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ge63_n_to_p_Ga63_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ge63_n_to_p_Ga63_reaclib) = drate_dT; + } } -#endif - rate_He3_Be7_to_p_p_He4_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He3_Be7_to_p_p_He4_He4_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He3_Be7_to_p_p_He4_He4_reaclib) = drate_dT; + + { + // Ge63_n_to_He4_Zn60_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ge63_n_to_He4_Zn60_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ge63_n_to_He4_Zn60_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ge63_n_to_He4_Zn60_reaclib) = drate_dT; + } } - } - { - // p_Be9_to_n_p_He4_He4_reaclib + { + // Ge64_n_to_p_Ga64_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_Be9); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Be9); + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ge64_n_to_p_Ga64_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ge64_n_to_p_Ga64_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ge64_n_to_p_Ga64_reaclib) = drate_dT; + } } -#endif - rate_p_Be9_to_n_p_He4_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_Be9_to_n_p_He4_He4_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_Be9_to_n_p_He4_He4_reaclib) = drate_dT; + + { + // Ge64_n_to_He4_Zn61_reaclib + + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_Ge64_n_to_He4_Zn61_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Ge64_n_to_He4_Zn61_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ge64_n_to_He4_Zn61_reaclib) = drate_dT; + } } - } - { - // n_p_He4_to_Li6_reaclib + { + // He3_He3_to_p_p_He4_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_He4); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_He4); - } + log_scor = rate_eval.log_screen(k_He3_He3); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He3_He3); + } #endif - rate_n_p_He4_to_Li6_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_p_He4_to_Li6_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_p_He4_to_Li6_reaclib) = drate_dT; + rate_He3_He3_to_p_p_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_He3_He3_to_p_p_He4_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He3_He3_to_p_p_He4_reaclib) = drate_dT; + } } - } - { - // n_He4_He4_to_Be9_reaclib + { + // Li7_d_to_n_He4_He4_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_He4); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_He4); - } + log_scor = rate_eval.log_screen(k_d_Li7); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_d_Li7); + } #endif - rate_n_He4_He4_to_Be9_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_He4_He4_to_Be9_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_He4_He4_to_Be9_reaclib) = drate_dT; + rate_Li7_d_to_n_He4_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Li7_d_to_n_He4_He4_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Li7_d_to_n_He4_He4_reaclib) = drate_dT; + } } - } - { - // He4_He4_He4_to_C12_reaclib + { + // Be7_d_to_p_He4_He4_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_He4) + rate_eval.log_screen(k_He4_Be8); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_He4) + rate_eval.dlog_screen_dT(k_He4_Be8); - } + log_scor = rate_eval.log_screen(k_d_Be7); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_d_Be7); + } #endif - rate_He4_He4_He4_to_C12_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib) = drate_dT; + rate_Be7_d_to_p_He4_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Be7_d_to_p_He4_He4_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Be7_d_to_p_He4_He4_reaclib) = drate_dT; + } } - } - { - // n_p_p_to_p_d_reaclib + { + // Be9_p_to_d_He4_He4_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_p); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_p); - } + log_scor = rate_eval.log_screen(k_p_Be9); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Be9); + } #endif - rate_n_p_p_to_p_d_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_p_p_to_p_d_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_p_p_to_p_d_reaclib) = drate_dT; + rate_Be9_p_to_d_He4_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Be9_p_to_d_He4_He4_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Be9_p_to_d_He4_He4_reaclib) = drate_dT; + } } - } - { - // p_p_He4_to_He3_He3_reaclib + { + // B8_n_to_p_He4_He4_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; -#ifdef SCREENING - log_scor = rate_eval.log_screen(k_p_p) + rate_eval.log_screen(k_He2_He4); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_p) + rate_eval.dlog_screen_dT(k_He2_He4); - } -#endif - rate_p_p_He4_to_He3_He3_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_p_He4_to_He3_He3_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_p_He4_to_He3_He3_reaclib) = drate_dT; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; + rate_B8_n_to_p_He4_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_B8_n_to_p_He4_He4_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_B8_n_to_p_He4_He4_reaclib) = drate_dT; + } } - } - { - // n_He4_He4_to_d_Li7_reaclib + { + // B11_p_to_3He4_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_He4); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_He4); - } + log_scor = rate_eval.log_screen(k_p_B11); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_B11); + } #endif - rate_n_He4_He4_to_d_Li7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_He4_He4_to_d_Li7_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_He4_He4_to_d_Li7_reaclib) = drate_dT; + rate_B11_p_to_3He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_B11_p_to_3He4_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_B11_p_to_3He4_reaclib) = drate_dT; + } } - } - { - // p_He4_He4_to_n_B8_reaclib + { + // Li7_He3_to_n_p_He4_He4_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_He4) + rate_eval.log_screen(k_p_Be8); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_He4) + rate_eval.dlog_screen_dT(k_p_Be8); - } + log_scor = rate_eval.log_screen(k_He3_Li7); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He3_Li7); + } #endif - rate_p_He4_He4_to_n_B8_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_He4_He4_to_n_B8_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_He4_He4_to_n_B8_reaclib) = drate_dT; + rate_Li7_He3_to_n_p_He4_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Li7_He3_to_n_p_He4_He4_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Li7_He3_to_n_p_He4_He4_reaclib) = drate_dT; + } } - } - { - // p_He4_He4_to_d_Be7_reaclib + { + // Be7_He3_to_p_p_He4_He4_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_He4) + rate_eval.log_screen(k_p_Be8); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_He4) + rate_eval.dlog_screen_dT(k_p_Be8); - } + log_scor = rate_eval.log_screen(k_He3_Be7); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He3_Be7); + } #endif - rate_p_He4_He4_to_d_Be7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_He4_He4_to_d_Be7_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_He4_He4_to_d_Be7_reaclib) = drate_dT; + rate_Be7_He3_to_p_p_He4_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Be7_He3_to_p_p_He4_He4_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Be7_He3_to_p_p_He4_He4_reaclib) = drate_dT; + } } - } - { - // d_He4_He4_to_p_Be9_reaclib + { + // Be9_p_to_n_p_He4_He4_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_He4) + rate_eval.log_screen(k_d_Be8); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_He4) + rate_eval.dlog_screen_dT(k_d_Be8); - } + log_scor = rate_eval.log_screen(k_p_Be9); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_Be9); + } #endif - rate_d_He4_He4_to_p_Be9_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_d_He4_He4_to_p_Be9_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_d_He4_He4_to_p_Be9_reaclib) = drate_dT; + rate_Be9_p_to_n_p_He4_He4_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_Be9_p_to_n_p_He4_He4_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Be9_p_to_n_p_He4_He4_reaclib) = drate_dT; + } } - } - { - // He4_He4_He4_to_p_B11_reaclib + { + // He4_p_n_to_Li6_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_He4) + rate_eval.log_screen(k_He4_Be8); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_He4) + rate_eval.dlog_screen_dT(k_He4_Be8); - } + log_scor = rate_eval.log_screen(k_p_He4); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_He4); + } #endif - rate_He4_He4_He4_to_p_B11_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_He4_He4_He4_to_p_B11_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_p_B11_reaclib) = drate_dT; + rate_He4_p_n_to_Li6_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_He4_p_n_to_Li6_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_p_n_to_Li6_reaclib) = drate_dT; + } } - } - { - // n_p_He4_He4_to_He3_Li7_reaclib + { + // He4_He4_n_to_Be9_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_He4) + rate_eval.log_screen(k_p_Be8); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_He4) + rate_eval.dlog_screen_dT(k_p_Be8); - } + log_scor = rate_eval.log_screen(k_He4_He4); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_He4); + } #endif - rate_n_p_He4_He4_to_He3_Li7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_p_He4_He4_to_He3_Li7_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_p_He4_He4_to_He3_Li7_reaclib) = drate_dT; + rate_He4_He4_n_to_Be9_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_He4_He4_n_to_Be9_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_He4_n_to_Be9_reaclib) = drate_dT; + } } - } - { - // n_p_He4_He4_to_p_Be9_reaclib + { + // He4_He4_He4_to_C12_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_He4) + rate_eval.log_screen(k_p_Be8); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_He4) + rate_eval.dlog_screen_dT(k_p_Be8); - } + log_scor = rate_eval.log_screen(k_He4_He4) + rate_eval.log_screen(k_He4_Be8); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_He4) + rate_eval.dlog_screen_dT(k_He4_Be8); + } #endif - rate_n_p_He4_He4_to_p_Be9_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_n_p_He4_He4_to_p_Be9_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_n_p_He4_He4_to_p_Be9_reaclib) = drate_dT; + rate_He4_He4_He4_to_C12_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_He4_He4_He4_to_C12_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_He4_He4_He4_to_C12_reaclib) = drate_dT; + } } - } - { - // p_p_He4_He4_to_He3_Be7_reaclib + { + // p_p_n_to_p_d_reaclib - amrex::Real log_scor {0.0_rt}; - amrex::Real dlog_scor_dT {0.0_rt}; + amrex::Real log_scor {0.0_rt}; + amrex::Real dlog_scor_dT {0.0_rt}; #ifdef SCREENING - log_scor = rate_eval.log_screen(k_He4_He4) + rate_eval.log_screen(k_p_p) + rate_eval.log_screen(k_He2_Be8); - if constexpr (std::is_same_v) { - dlog_scor_dT = rate_eval.dlog_screen_dT(k_He4_He4) + rate_eval.dlog_screen_dT(k_p_p) + rate_eval.dlog_screen_dT(k_He2_Be8); - } + log_scor = rate_eval.log_screen(k_p_p); + if constexpr (std::is_same_v) { + dlog_scor_dT = rate_eval.dlog_screen_dT(k_p_p); + } #endif - rate_p_p_He4_He4_to_He3_Be7_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); - rate_eval.screened_rates(k_p_p_He4_He4_to_He3_Be7_reaclib) = rate; - if constexpr (std::is_same_v) { - rate_eval.dscreened_rates_dT(k_p_p_He4_He4_to_He3_Be7_reaclib) = drate_dT; + rate_p_p_n_to_p_d_reaclib(tfactors, log_scor, dlog_scor_dT, rate, drate_dT); + rate_eval.screened_rates(k_p_p_n_to_p_d_reaclib) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_p_n_to_p_d_reaclib) = drate_dT; + } } - } + } } - #endif diff --git a/networks/sn160/sn160.png b/networks/sn160/sn160.png new file mode 100644 index 000000000..e72074b28 Binary files /dev/null and b/networks/sn160/sn160.png differ diff --git a/networks/sn160/sn160.py b/networks/sn160/sn160.py index b82effa7f..c55f595a3 100644 --- a/networks/sn160/sn160.py +++ b/networks/sn160/sn160.py @@ -6,51 +6,43 @@ def create_network(): - rl = pyna.ReacLibLibrary() - tl = pyna.TabularWeakLibrary(ordering=["ffn", "langanke"]) - - all_nuclei = ['n', - 'h1', 'h2', - 'he3', 'he4', - 'li6', 'li7', - 'be7', 'be9', - 'b8', 'b10', 'b11', - 'c12', 'c13', 'c14', - 'n13', 'n14', 'n15', - 'o14', 'o15', 'o16', 'o17', 'o18', - 'f17', 'f18', 'f19', - 'ne18', 'ne19', 'ne20', 'ne21', 'ne22', - 'na21', 'na22', 'na23', - 'mg23', 'mg24', 'mg25', 'mg26', - 'al25', 'al26', 'al27', - 'si28', 'si29', 'si30', 'si31', 'si32', - 'p29', 'p30', 'p31', 'p32', 'p33', - 's32', 's33', 's34', 's35', 's36', - 'cl33', 'cl34', 'cl35', 'cl36', 'cl37', - 'ar36', 'ar37', 'ar38', 'ar39', 'ar40', - 'k37', 'k38', 'k39', 'k40', 'k41', - 'ca40', 'ca41', 'ca42', 'ca43', 'ca44', 'ca45', 'ca46', 'ca47', 'ca48', - 'sc43', 'sc44', 'sc45', 'sc46', 'sc47', 'sc48', 'sc49', - 'ti44', 'ti45', 'ti46', 'ti47', 'ti48', 'ti49', 'ti50', 'ti51', - 'v46', 'v47', 'v48', 'v49', 'v50', 'v51', 'v52', - 'cr48', 'cr49', 'cr50', 'cr51', 'cr52', 'cr53', 'cr54', - 'mn50', 'mn51', 'mn52', 'mn53', 'mn54', 'mn55', - 'fe52', 'fe53', 'fe54', 'fe55', 'fe56', 'fe57', 'fe58', - 'co53', 'co54', 'co55', 'co56', 'co57', 'co58', 'co59', - 'ni56', 'ni57', 'ni58', 'ni59', 'ni60', 'ni61', 'ni62', 'ni63', 'ni64', - 'cu57', 'cu58', 'cu59', 'cu60', 'cu61', 'cu62', 'cu63', 'cu64', 'cu65', - 'zn59', 'zn60', 'zn61', 'zn62', 'zn63', 'zn64', 'zn65', 'zn66', - 'ga62', 'ga63', 'ga64', - 'ge63', 'ge64'] - - sn160_rl = rl.linking_nuclei(all_nuclei, with_reverse=True) - sn160_tl = tl.linking_nuclei(all_nuclei) - - all_lib = sn160_rl + sn160_tl - - all_lib.eliminate_duplicates(rate_type_preference="tabular") - - net = pyna.AmrexAstroCxxNetwork(libraries=[all_lib]) + all_nuclei = ["n", + "h1,2", + "he3,4", + "li6,7", + "be7,9", + "b8,10-11", + "c12-14", + "n13-15", + "o14-18", + "f17-19", + "ne18-22", + "na21-23", + "mg23-26", + "al25-27", + "si28-32", + "p29-33", + "s32-36", + "cl33-37", + "ar36-40", + "k37-41", + "ca40-48", + "sc43-49", + "ti44-51", + "v46-52", + "cr48-54", + "mn50-55", + "fe52-58", + "co53-59", + "ni56-64", + "cu57-65", + "zn59-66", + "ga62-64", + "ge63-64"] + + net = pyna.network_helper(all_nuclei, network_type="amrex", + tabular_ordering=["ffn", "langanke"]) + return net diff --git a/networks/sn160/table_rates.H b/networks/sn160/table_rates.H index 7ac2c51f4..3dfbdd5a7 100644 --- a/networks/sn160/table_rates.H +++ b/networks/sn160/table_rates.H @@ -7134,26 +7134,15 @@ evaluate_linear_2d(const amrex::Real fip1jp1, const amrex::Real fip1j, const amr { // This is the 2-D linear interpolator, as an extension of evaluate_linear_1d. - amrex::Real f; - amrex::Real dx = xhi - xlo; - amrex::Real dxinv = 1.0_rt / dx; - amrex::Real dy = yhi - ylo; - amrex::Real dyinv = 1.0_rt / dy; + const amrex::Real u = (amrex::Clamp(x, xlo, xhi) - xlo) / (xhi - xlo); + const amrex::Real v = (amrex::Clamp(y, ylo, yhi) - ylo) / (yhi - ylo); - amrex::Real E = fij; - amrex::Real C = (fijp1 - fij) * dyinv; - amrex::Real B = (fip1j - fij) * dxinv; - amrex::Real A = (fip1jp1 - B * dx - C * dy - E) * (dxinv * dyinv); + const amrex::Real E = fij; + const amrex::Real C = fijp1 - fij; + const amrex::Real B = fip1j - fij; + const amrex::Real A = fip1jp1 - fip1j - fijp1 + fij; - amrex::Real xx = amrex::Clamp(x, xlo, xhi); - amrex::Real yy = amrex::Clamp(y, ylo, yhi); - - f = A * (xx - xlo) * (yy - ylo) + - B * (xx - xlo) + - C * (yy - ylo) + - E; - - return f; + return A * u * v + B * u + C * v + E; } @@ -7330,7 +7319,7 @@ evaluate_dr_dtemp(const int irhoy_lo, const int jtemp_lo, } -template +template AMREX_INLINE AMREX_GPU_DEVICE void get_entries(const int irhoy_lo, const int jtemp_lo, @@ -7352,13 +7341,15 @@ get_entries(const int irhoy_lo, const int jtemp_lo, log_rhoy_table, log_temp_table, data, log_rhoy, log_temp, jtab_gamma); - entries(k_index_dlogr_dlogt) = - evaluate_dr_dtemp(irhoy_lo, jtemp_lo, - table_meta, log_rhoy_table, log_temp_table, data, - log_rhoy, log_temp); + if constexpr (do_T_derivatives) { + entries(k_index_dlogr_dlogt) = + evaluate_dr_dtemp(irhoy_lo, jtemp_lo, + table_meta, log_rhoy_table, log_temp_table, data, + log_rhoy, log_temp); + } } -template +template AMREX_INLINE AMREX_GPU_DEVICE void tabular_evaluate(const table_t& table_meta, @@ -7376,15 +7367,19 @@ tabular_evaluate(const table_t& table_meta, const int irhoy_lo = interp_net::find_index_extrap(log_rhoy, log_rhoy_table); const int jtemp_lo = interp_net::find_index_extrap(log_temp, log_temp_table); - get_entries(irhoy_lo, jtemp_lo, - table_meta, log_rhoy_table, log_temp_table, data, - log_rhoy, log_temp, entries); + get_entries(irhoy_lo, jtemp_lo, + table_meta, log_rhoy_table, log_temp_table, data, + log_rhoy, log_temp, entries); // Fill outputs: rate, d(rate)/d(temperature), and // (negative) neutrino loss contribution to energy generation rate = amrex::Math::exp10(entries(jtab_rate)); - drate_dt = rate * entries(k_index_dlogr_dlogt) / temp; + if constexpr (do_T_derivatives) { + drate_dt = rate * entries(k_index_dlogr_dlogt) / temp; + } else { + drate_dt = 0.0; + } edot_nu = -amrex::Math::exp10(entries(jtab_nuloss)); edot_gamma = amrex::Math::exp10(entries(jtab_gamma)); } diff --git a/networks/sn160/tabular_weak_rates.H b/networks/sn160/tabular_weak_rates.H new file mode 100644 index 000000000..352e9c0fd --- /dev/null +++ b/networks/sn160/tabular_weak_rates.H @@ -0,0 +1,1890 @@ +#ifndef TABULAR_WEAK_RATES_H +#define TABULAR_WEAK_RATES_H + +#include + +#include + +#include +#include +#include +#include +#include + +namespace tabular_weak_rates { + + using namespace Rates; + using namespace Species; + + using namespace rate_tables; + + template + AMREX_GPU_DEVICE AMREX_INLINE + void + fill_rates([[maybe_unused]] const amrex::Real temp, + [[maybe_unused]] const amrex::Real rhoy, + [[maybe_unused]] const amrex::Array1D& Y, + [[maybe_unused]] T& rate_eval) + { + + // Calculate tabular weak rates + + [[maybe_unused]] amrex::Real rate, drate_dt, edot_nu, edot_gamma; + + rate_eval.enuc_weak = 0.0_rt; + + const amrex::Real log_temp = std::log10(temp); + const amrex::Real log_rhoy = std::log10(rhoy); + + // Na21 --> Ne21 + + tabular_evaluate(j_Na21_Ne21_meta, j_Na21_Ne21_rhoy, j_Na21_Ne21_temp, j_Na21_Ne21_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Na21_to_Ne21_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na21_to_Ne21_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Na21) * (edot_nu + edot_gamma); + + + // Ne21 --> Na21 + + tabular_evaluate(j_Ne21_Na21_meta, j_Ne21_Na21_rhoy, j_Ne21_Na21_temp, j_Ne21_Na21_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ne21_to_Na21_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne21_to_Na21_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ne21) * (edot_nu + edot_gamma); + + + // Na22 --> Ne22 + + tabular_evaluate(j_Na22_Ne22_meta, j_Na22_Ne22_rhoy, j_Na22_Ne22_temp, j_Na22_Ne22_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Na22_to_Ne22_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na22_to_Ne22_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Na22) * (edot_nu + edot_gamma); + + + // Ne22 --> Na22 + + tabular_evaluate(j_Ne22_Na22_meta, j_Ne22_Na22_rhoy, j_Ne22_Na22_temp, j_Ne22_Na22_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ne22_to_Na22_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ne22_to_Na22_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ne22) * (edot_nu + edot_gamma); + + + // Mg23 --> Na23 + + tabular_evaluate(j_Mg23_Na23_meta, j_Mg23_Na23_rhoy, j_Mg23_Na23_temp, j_Mg23_Na23_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Mg23_to_Na23_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg23_to_Na23_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Mg23) * (edot_nu + edot_gamma); + + + // Na23 --> Mg23 + + tabular_evaluate(j_Na23_Mg23_meta, j_Na23_Mg23_rhoy, j_Na23_Mg23_temp, j_Na23_Mg23_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Na23_to_Mg23_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Na23_to_Mg23_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Na23) * (edot_nu + edot_gamma); + + + // Al25 --> Mg25 + + tabular_evaluate(j_Al25_Mg25_meta, j_Al25_Mg25_rhoy, j_Al25_Mg25_temp, j_Al25_Mg25_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Al25_to_Mg25_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al25_to_Mg25_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Al25) * (edot_nu + edot_gamma); + + + // Mg25 --> Al25 + + tabular_evaluate(j_Mg25_Al25_meta, j_Mg25_Al25_rhoy, j_Mg25_Al25_temp, j_Mg25_Al25_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Mg25_to_Al25_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg25_to_Al25_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Mg25) * (edot_nu + edot_gamma); + + + // Al26 --> Mg26 + + tabular_evaluate(j_Al26_Mg26_meta, j_Al26_Mg26_rhoy, j_Al26_Mg26_temp, j_Al26_Mg26_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Al26_to_Mg26_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Al26_to_Mg26_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Al26) * (edot_nu + edot_gamma); + + + // Mg26 --> Al26 + + tabular_evaluate(j_Mg26_Al26_meta, j_Mg26_Al26_rhoy, j_Mg26_Al26_temp, j_Mg26_Al26_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Mg26_to_Al26_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mg26_to_Al26_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Mg26) * (edot_nu + edot_gamma); + + + // P29 --> Si29 + + tabular_evaluate(j_P29_Si29_meta, j_P29_Si29_rhoy, j_P29_Si29_temp, j_P29_Si29_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_P29_to_Si29_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P29_to_Si29_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(P29) * (edot_nu + edot_gamma); + + + // Si29 --> P29 + + tabular_evaluate(j_Si29_P29_meta, j_Si29_P29_rhoy, j_Si29_P29_temp, j_Si29_P29_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Si29_to_P29_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si29_to_P29_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Si29) * (edot_nu + edot_gamma); + + + // P30 --> Si30 + + tabular_evaluate(j_P30_Si30_meta, j_P30_Si30_rhoy, j_P30_Si30_temp, j_P30_Si30_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_P30_to_Si30_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P30_to_Si30_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(P30) * (edot_nu + edot_gamma); + + + // Si30 --> P30 + + tabular_evaluate(j_Si30_P30_meta, j_Si30_P30_rhoy, j_Si30_P30_temp, j_Si30_P30_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Si30_to_P30_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si30_to_P30_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Si30) * (edot_nu + edot_gamma); + + + // P31 --> Si31 + + tabular_evaluate(j_P31_Si31_meta, j_P31_Si31_rhoy, j_P31_Si31_temp, j_P31_Si31_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_P31_to_Si31_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P31_to_Si31_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(P31) * (edot_nu + edot_gamma); + + + // Si31 --> P31 + + tabular_evaluate(j_Si31_P31_meta, j_Si31_P31_rhoy, j_Si31_P31_temp, j_Si31_P31_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Si31_to_P31_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si31_to_P31_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Si31) * (edot_nu + edot_gamma); + + + // P32 --> S32 + + tabular_evaluate(j_P32_S32_meta, j_P32_S32_rhoy, j_P32_S32_temp, j_P32_S32_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_P32_to_S32_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P32_to_S32_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(P32) * (edot_nu + edot_gamma); + + + // P32 --> Si32 + + tabular_evaluate(j_P32_Si32_meta, j_P32_Si32_rhoy, j_P32_Si32_temp, j_P32_Si32_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_P32_to_Si32_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P32_to_Si32_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(P32) * (edot_nu + edot_gamma); + + + // S32 --> P32 + + tabular_evaluate(j_S32_P32_meta, j_S32_P32_rhoy, j_S32_P32_temp, j_S32_P32_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_S32_to_P32_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S32_to_P32_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(S32) * (edot_nu + edot_gamma); + + + // Si32 --> P32 + + tabular_evaluate(j_Si32_P32_meta, j_Si32_P32_rhoy, j_Si32_P32_temp, j_Si32_P32_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Si32_to_P32_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Si32_to_P32_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Si32) * (edot_nu + edot_gamma); + + + // Cl33 --> S33 + + tabular_evaluate(j_Cl33_S33_meta, j_Cl33_S33_rhoy, j_Cl33_S33_temp, j_Cl33_S33_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cl33_to_S33_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl33_to_S33_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cl33) * (edot_nu + edot_gamma); + + + // P33 --> S33 + + tabular_evaluate(j_P33_S33_meta, j_P33_S33_rhoy, j_P33_S33_temp, j_P33_S33_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_P33_to_S33_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_P33_to_S33_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(P33) * (edot_nu + edot_gamma); + + + // S33 --> Cl33 + + tabular_evaluate(j_S33_Cl33_meta, j_S33_Cl33_rhoy, j_S33_Cl33_temp, j_S33_Cl33_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_S33_to_Cl33_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S33_to_Cl33_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(S33) * (edot_nu + edot_gamma); + + + // S33 --> P33 + + tabular_evaluate(j_S33_P33_meta, j_S33_P33_rhoy, j_S33_P33_temp, j_S33_P33_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_S33_to_P33_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S33_to_P33_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(S33) * (edot_nu + edot_gamma); + + + // Cl34 --> S34 + + tabular_evaluate(j_Cl34_S34_meta, j_Cl34_S34_rhoy, j_Cl34_S34_temp, j_Cl34_S34_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cl34_to_S34_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl34_to_S34_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cl34) * (edot_nu + edot_gamma); + + + // S34 --> Cl34 + + tabular_evaluate(j_S34_Cl34_meta, j_S34_Cl34_rhoy, j_S34_Cl34_temp, j_S34_Cl34_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_S34_to_Cl34_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S34_to_Cl34_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(S34) * (edot_nu + edot_gamma); + + + // Cl35 --> S35 + + tabular_evaluate(j_Cl35_S35_meta, j_Cl35_S35_rhoy, j_Cl35_S35_temp, j_Cl35_S35_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cl35_to_S35_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl35_to_S35_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cl35) * (edot_nu + edot_gamma); + + + // S35 --> Cl35 + + tabular_evaluate(j_S35_Cl35_meta, j_S35_Cl35_rhoy, j_S35_Cl35_temp, j_S35_Cl35_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_S35_to_Cl35_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S35_to_Cl35_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(S35) * (edot_nu + edot_gamma); + + + // Ar36 --> Cl36 + + tabular_evaluate(j_Ar36_Cl36_meta, j_Ar36_Cl36_rhoy, j_Ar36_Cl36_temp, j_Ar36_Cl36_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ar36_to_Cl36_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar36_to_Cl36_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ar36) * (edot_nu + edot_gamma); + + + // Cl36 --> Ar36 + + tabular_evaluate(j_Cl36_Ar36_meta, j_Cl36_Ar36_rhoy, j_Cl36_Ar36_temp, j_Cl36_Ar36_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cl36_to_Ar36_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl36_to_Ar36_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cl36) * (edot_nu + edot_gamma); + + + // Cl36 --> S36 + + tabular_evaluate(j_Cl36_S36_meta, j_Cl36_S36_rhoy, j_Cl36_S36_temp, j_Cl36_S36_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cl36_to_S36_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl36_to_S36_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cl36) * (edot_nu + edot_gamma); + + + // S36 --> Cl36 + + tabular_evaluate(j_S36_Cl36_meta, j_S36_Cl36_rhoy, j_S36_Cl36_temp, j_S36_Cl36_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_S36_to_Cl36_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_S36_to_Cl36_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(S36) * (edot_nu + edot_gamma); + + + // Ar37 --> Cl37 + + tabular_evaluate(j_Ar37_Cl37_meta, j_Ar37_Cl37_rhoy, j_Ar37_Cl37_temp, j_Ar37_Cl37_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ar37_to_Cl37_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar37_to_Cl37_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ar37) * (edot_nu + edot_gamma); + + + // Ar37 --> K37 + + tabular_evaluate(j_Ar37_K37_meta, j_Ar37_K37_rhoy, j_Ar37_K37_temp, j_Ar37_K37_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ar37_to_K37_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar37_to_K37_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ar37) * (edot_nu + edot_gamma); + + + // Cl37 --> Ar37 + + tabular_evaluate(j_Cl37_Ar37_meta, j_Cl37_Ar37_rhoy, j_Cl37_Ar37_temp, j_Cl37_Ar37_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cl37_to_Ar37_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cl37_to_Ar37_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cl37) * (edot_nu + edot_gamma); + + + // K37 --> Ar37 + + tabular_evaluate(j_K37_Ar37_meta, j_K37_Ar37_rhoy, j_K37_Ar37_temp, j_K37_Ar37_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_K37_to_Ar37_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K37_to_Ar37_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(K37) * (edot_nu + edot_gamma); + + + // Ar38 --> K38 + + tabular_evaluate(j_Ar38_K38_meta, j_Ar38_K38_rhoy, j_Ar38_K38_temp, j_Ar38_K38_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ar38_to_K38_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar38_to_K38_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ar38) * (edot_nu + edot_gamma); + + + // K38 --> Ar38 + + tabular_evaluate(j_K38_Ar38_meta, j_K38_Ar38_rhoy, j_K38_Ar38_temp, j_K38_Ar38_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_K38_to_Ar38_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K38_to_Ar38_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(K38) * (edot_nu + edot_gamma); + + + // Ar39 --> K39 + + tabular_evaluate(j_Ar39_K39_meta, j_Ar39_K39_rhoy, j_Ar39_K39_temp, j_Ar39_K39_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ar39_to_K39_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar39_to_K39_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ar39) * (edot_nu + edot_gamma); + + + // K39 --> Ar39 + + tabular_evaluate(j_K39_Ar39_meta, j_K39_Ar39_rhoy, j_K39_Ar39_temp, j_K39_Ar39_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_K39_to_Ar39_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K39_to_Ar39_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(K39) * (edot_nu + edot_gamma); + + + // Ar40 --> K40 + + tabular_evaluate(j_Ar40_K40_meta, j_Ar40_K40_rhoy, j_Ar40_K40_temp, j_Ar40_K40_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ar40_to_K40_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ar40_to_K40_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ar40) * (edot_nu + edot_gamma); + + + // Ca40 --> K40 + + tabular_evaluate(j_Ca40_K40_meta, j_Ca40_K40_rhoy, j_Ca40_K40_temp, j_Ca40_K40_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ca40_to_K40_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca40_to_K40_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ca40) * (edot_nu + edot_gamma); + + + // K40 --> Ar40 + + tabular_evaluate(j_K40_Ar40_meta, j_K40_Ar40_rhoy, j_K40_Ar40_temp, j_K40_Ar40_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_K40_to_Ar40_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K40_to_Ar40_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(K40) * (edot_nu + edot_gamma); + + + // K40 --> Ca40 + + tabular_evaluate(j_K40_Ca40_meta, j_K40_Ca40_rhoy, j_K40_Ca40_temp, j_K40_Ca40_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_K40_to_Ca40_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K40_to_Ca40_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(K40) * (edot_nu + edot_gamma); + + + // Ca41 --> K41 + + tabular_evaluate(j_Ca41_K41_meta, j_Ca41_K41_rhoy, j_Ca41_K41_temp, j_Ca41_K41_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ca41_to_K41_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca41_to_K41_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ca41) * (edot_nu + edot_gamma); + + + // K41 --> Ca41 + + tabular_evaluate(j_K41_Ca41_meta, j_K41_Ca41_rhoy, j_K41_Ca41_temp, j_K41_Ca41_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_K41_to_Ca41_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_K41_to_Ca41_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(K41) * (edot_nu + edot_gamma); + + + // Ca43 --> Sc43 + + tabular_evaluate(j_Ca43_Sc43_meta, j_Ca43_Sc43_rhoy, j_Ca43_Sc43_temp, j_Ca43_Sc43_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ca43_to_Sc43_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca43_to_Sc43_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ca43) * (edot_nu + edot_gamma); + + + // Sc43 --> Ca43 + + tabular_evaluate(j_Sc43_Ca43_meta, j_Sc43_Ca43_rhoy, j_Sc43_Ca43_temp, j_Sc43_Ca43_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Sc43_to_Ca43_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc43_to_Ca43_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Sc43) * (edot_nu + edot_gamma); + + + // Ca44 --> Sc44 + + tabular_evaluate(j_Ca44_Sc44_meta, j_Ca44_Sc44_rhoy, j_Ca44_Sc44_temp, j_Ca44_Sc44_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ca44_to_Sc44_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca44_to_Sc44_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ca44) * (edot_nu + edot_gamma); + + + // Sc44 --> Ca44 + + tabular_evaluate(j_Sc44_Ca44_meta, j_Sc44_Ca44_rhoy, j_Sc44_Ca44_temp, j_Sc44_Ca44_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Sc44_to_Ca44_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc44_to_Ca44_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Sc44) * (edot_nu + edot_gamma); + + + // Sc44 --> Ti44 + + tabular_evaluate(j_Sc44_Ti44_meta, j_Sc44_Ti44_rhoy, j_Sc44_Ti44_temp, j_Sc44_Ti44_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Sc44_to_Ti44_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc44_to_Ti44_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Sc44) * (edot_nu + edot_gamma); + + + // Ti44 --> Sc44 + + tabular_evaluate(j_Ti44_Sc44_meta, j_Ti44_Sc44_rhoy, j_Ti44_Sc44_temp, j_Ti44_Sc44_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ti44_to_Sc44_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti44_to_Sc44_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ti44) * (edot_nu + edot_gamma); + + + // Co53 --> Fe53 + + tabular_evaluate(j_Co53_Fe53_meta, j_Co53_Fe53_rhoy, j_Co53_Fe53_temp, j_Co53_Fe53_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Co53_to_Fe53_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co53_to_Fe53_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Co53) * (edot_nu + edot_gamma); + + + // Fe53 --> Co53 + + tabular_evaluate(j_Fe53_Co53_meta, j_Fe53_Co53_rhoy, j_Fe53_Co53_temp, j_Fe53_Co53_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Fe53_to_Co53_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe53_to_Co53_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Fe53) * (edot_nu + edot_gamma); + + + // Cu57 --> Ni57 + + tabular_evaluate(j_Cu57_Ni57_meta, j_Cu57_Ni57_rhoy, j_Cu57_Ni57_temp, j_Cu57_Ni57_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cu57_to_Ni57_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu57_to_Ni57_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cu57) * (edot_nu + edot_gamma); + + + // Ni57 --> Cu57 + + tabular_evaluate(j_Ni57_Cu57_meta, j_Ni57_Cu57_rhoy, j_Ni57_Cu57_temp, j_Ni57_Cu57_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ni57_to_Cu57_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni57_to_Cu57_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ni57) * (edot_nu + edot_gamma); + + + // Ca45 --> Sc45 + + tabular_evaluate(j_Ca45_Sc45_meta, j_Ca45_Sc45_rhoy, j_Ca45_Sc45_temp, j_Ca45_Sc45_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ca45_to_Sc45_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca45_to_Sc45_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ca45) * (edot_nu + edot_gamma); + + + // Sc45 --> Ca45 + + tabular_evaluate(j_Sc45_Ca45_meta, j_Sc45_Ca45_rhoy, j_Sc45_Ca45_temp, j_Sc45_Ca45_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Sc45_to_Ca45_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc45_to_Ca45_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Sc45) * (edot_nu + edot_gamma); + + + // Sc45 --> Ti45 + + tabular_evaluate(j_Sc45_Ti45_meta, j_Sc45_Ti45_rhoy, j_Sc45_Ti45_temp, j_Sc45_Ti45_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Sc45_to_Ti45_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc45_to_Ti45_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Sc45) * (edot_nu + edot_gamma); + + + // Ti45 --> Sc45 + + tabular_evaluate(j_Ti45_Sc45_meta, j_Ti45_Sc45_rhoy, j_Ti45_Sc45_temp, j_Ti45_Sc45_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ti45_to_Sc45_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti45_to_Sc45_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ti45) * (edot_nu + edot_gamma); + + + // Ca46 --> Sc46 + + tabular_evaluate(j_Ca46_Sc46_meta, j_Ca46_Sc46_rhoy, j_Ca46_Sc46_temp, j_Ca46_Sc46_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ca46_to_Sc46_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca46_to_Sc46_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ca46) * (edot_nu + edot_gamma); + + + // Sc46 --> Ca46 + + tabular_evaluate(j_Sc46_Ca46_meta, j_Sc46_Ca46_rhoy, j_Sc46_Ca46_temp, j_Sc46_Ca46_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Sc46_to_Ca46_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc46_to_Ca46_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Sc46) * (edot_nu + edot_gamma); + + + // Sc46 --> Ti46 + + tabular_evaluate(j_Sc46_Ti46_meta, j_Sc46_Ti46_rhoy, j_Sc46_Ti46_temp, j_Sc46_Ti46_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Sc46_to_Ti46_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc46_to_Ti46_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Sc46) * (edot_nu + edot_gamma); + + + // Ti46 --> Sc46 + + tabular_evaluate(j_Ti46_Sc46_meta, j_Ti46_Sc46_rhoy, j_Ti46_Sc46_temp, j_Ti46_Sc46_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ti46_to_Sc46_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti46_to_Sc46_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ti46) * (edot_nu + edot_gamma); + + + // Ti46 --> V46 + + tabular_evaluate(j_Ti46_V46_meta, j_Ti46_V46_rhoy, j_Ti46_V46_temp, j_Ti46_V46_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ti46_to_V46_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti46_to_V46_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ti46) * (edot_nu + edot_gamma); + + + // V46 --> Ti46 + + tabular_evaluate(j_V46_Ti46_meta, j_V46_Ti46_rhoy, j_V46_Ti46_temp, j_V46_Ti46_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_V46_to_Ti46_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V46_to_Ti46_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(V46) * (edot_nu + edot_gamma); + + + // Ca47 --> Sc47 + + tabular_evaluate(j_Ca47_Sc47_meta, j_Ca47_Sc47_rhoy, j_Ca47_Sc47_temp, j_Ca47_Sc47_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ca47_to_Sc47_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca47_to_Sc47_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ca47) * (edot_nu + edot_gamma); + + + // Sc47 --> Ca47 + + tabular_evaluate(j_Sc47_Ca47_meta, j_Sc47_Ca47_rhoy, j_Sc47_Ca47_temp, j_Sc47_Ca47_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Sc47_to_Ca47_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc47_to_Ca47_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Sc47) * (edot_nu + edot_gamma); + + + // Sc47 --> Ti47 + + tabular_evaluate(j_Sc47_Ti47_meta, j_Sc47_Ti47_rhoy, j_Sc47_Ti47_temp, j_Sc47_Ti47_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Sc47_to_Ti47_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc47_to_Ti47_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Sc47) * (edot_nu + edot_gamma); + + + // Ti47 --> Sc47 + + tabular_evaluate(j_Ti47_Sc47_meta, j_Ti47_Sc47_rhoy, j_Ti47_Sc47_temp, j_Ti47_Sc47_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ti47_to_Sc47_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti47_to_Sc47_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ti47) * (edot_nu + edot_gamma); + + + // Ti47 --> V47 + + tabular_evaluate(j_Ti47_V47_meta, j_Ti47_V47_rhoy, j_Ti47_V47_temp, j_Ti47_V47_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ti47_to_V47_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti47_to_V47_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ti47) * (edot_nu + edot_gamma); + + + // V47 --> Ti47 + + tabular_evaluate(j_V47_Ti47_meta, j_V47_Ti47_rhoy, j_V47_Ti47_temp, j_V47_Ti47_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_V47_to_Ti47_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V47_to_Ti47_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(V47) * (edot_nu + edot_gamma); + + + // Ca48 --> Sc48 + + tabular_evaluate(j_Ca48_Sc48_meta, j_Ca48_Sc48_rhoy, j_Ca48_Sc48_temp, j_Ca48_Sc48_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ca48_to_Sc48_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ca48_to_Sc48_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ca48) * (edot_nu + edot_gamma); + + + // Cr48 --> V48 + + tabular_evaluate(j_Cr48_V48_meta, j_Cr48_V48_rhoy, j_Cr48_V48_temp, j_Cr48_V48_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cr48_to_V48_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr48_to_V48_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cr48) * (edot_nu + edot_gamma); + + + // Sc48 --> Ca48 + + tabular_evaluate(j_Sc48_Ca48_meta, j_Sc48_Ca48_rhoy, j_Sc48_Ca48_temp, j_Sc48_Ca48_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Sc48_to_Ca48_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc48_to_Ca48_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Sc48) * (edot_nu + edot_gamma); + + + // Sc48 --> Ti48 + + tabular_evaluate(j_Sc48_Ti48_meta, j_Sc48_Ti48_rhoy, j_Sc48_Ti48_temp, j_Sc48_Ti48_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Sc48_to_Ti48_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc48_to_Ti48_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Sc48) * (edot_nu + edot_gamma); + + + // Ti48 --> Sc48 + + tabular_evaluate(j_Ti48_Sc48_meta, j_Ti48_Sc48_rhoy, j_Ti48_Sc48_temp, j_Ti48_Sc48_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ti48_to_Sc48_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti48_to_Sc48_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ti48) * (edot_nu + edot_gamma); + + + // Ti48 --> V48 + + tabular_evaluate(j_Ti48_V48_meta, j_Ti48_V48_rhoy, j_Ti48_V48_temp, j_Ti48_V48_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ti48_to_V48_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti48_to_V48_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ti48) * (edot_nu + edot_gamma); + + + // V48 --> Cr48 + + tabular_evaluate(j_V48_Cr48_meta, j_V48_Cr48_rhoy, j_V48_Cr48_temp, j_V48_Cr48_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_V48_to_Cr48_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V48_to_Cr48_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(V48) * (edot_nu + edot_gamma); + + + // V48 --> Ti48 + + tabular_evaluate(j_V48_Ti48_meta, j_V48_Ti48_rhoy, j_V48_Ti48_temp, j_V48_Ti48_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_V48_to_Ti48_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V48_to_Ti48_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(V48) * (edot_nu + edot_gamma); + + + // Cr49 --> V49 + + tabular_evaluate(j_Cr49_V49_meta, j_Cr49_V49_rhoy, j_Cr49_V49_temp, j_Cr49_V49_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cr49_to_V49_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr49_to_V49_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cr49) * (edot_nu + edot_gamma); + + + // Sc49 --> Ti49 + + tabular_evaluate(j_Sc49_Ti49_meta, j_Sc49_Ti49_rhoy, j_Sc49_Ti49_temp, j_Sc49_Ti49_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Sc49_to_Ti49_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Sc49_to_Ti49_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Sc49) * (edot_nu + edot_gamma); + + + // Ti49 --> Sc49 + + tabular_evaluate(j_Ti49_Sc49_meta, j_Ti49_Sc49_rhoy, j_Ti49_Sc49_temp, j_Ti49_Sc49_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ti49_to_Sc49_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti49_to_Sc49_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ti49) * (edot_nu + edot_gamma); + + + // Ti49 --> V49 + + tabular_evaluate(j_Ti49_V49_meta, j_Ti49_V49_rhoy, j_Ti49_V49_temp, j_Ti49_V49_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ti49_to_V49_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti49_to_V49_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ti49) * (edot_nu + edot_gamma); + + + // V49 --> Cr49 + + tabular_evaluate(j_V49_Cr49_meta, j_V49_Cr49_rhoy, j_V49_Cr49_temp, j_V49_Cr49_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_V49_to_Cr49_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V49_to_Cr49_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(V49) * (edot_nu + edot_gamma); + + + // V49 --> Ti49 + + tabular_evaluate(j_V49_Ti49_meta, j_V49_Ti49_rhoy, j_V49_Ti49_temp, j_V49_Ti49_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_V49_to_Ti49_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V49_to_Ti49_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(V49) * (edot_nu + edot_gamma); + + + // Cr50 --> Mn50 + + tabular_evaluate(j_Cr50_Mn50_meta, j_Cr50_Mn50_rhoy, j_Cr50_Mn50_temp, j_Cr50_Mn50_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cr50_to_Mn50_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr50_to_Mn50_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cr50) * (edot_nu + edot_gamma); + + + // Cr50 --> V50 + + tabular_evaluate(j_Cr50_V50_meta, j_Cr50_V50_rhoy, j_Cr50_V50_temp, j_Cr50_V50_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cr50_to_V50_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr50_to_V50_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cr50) * (edot_nu + edot_gamma); + + + // Mn50 --> Cr50 + + tabular_evaluate(j_Mn50_Cr50_meta, j_Mn50_Cr50_rhoy, j_Mn50_Cr50_temp, j_Mn50_Cr50_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Mn50_to_Cr50_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn50_to_Cr50_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Mn50) * (edot_nu + edot_gamma); + + + // Ti50 --> V50 + + tabular_evaluate(j_Ti50_V50_meta, j_Ti50_V50_rhoy, j_Ti50_V50_temp, j_Ti50_V50_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ti50_to_V50_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti50_to_V50_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ti50) * (edot_nu + edot_gamma); + + + // V50 --> Cr50 + + tabular_evaluate(j_V50_Cr50_meta, j_V50_Cr50_rhoy, j_V50_Cr50_temp, j_V50_Cr50_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_V50_to_Cr50_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V50_to_Cr50_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(V50) * (edot_nu + edot_gamma); + + + // V50 --> Ti50 + + tabular_evaluate(j_V50_Ti50_meta, j_V50_Ti50_rhoy, j_V50_Ti50_temp, j_V50_Ti50_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_V50_to_Ti50_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V50_to_Ti50_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(V50) * (edot_nu + edot_gamma); + + + // Cr51 --> Mn51 + + tabular_evaluate(j_Cr51_Mn51_meta, j_Cr51_Mn51_rhoy, j_Cr51_Mn51_temp, j_Cr51_Mn51_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cr51_to_Mn51_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr51_to_Mn51_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cr51) * (edot_nu + edot_gamma); + + + // Cr51 --> V51 + + tabular_evaluate(j_Cr51_V51_meta, j_Cr51_V51_rhoy, j_Cr51_V51_temp, j_Cr51_V51_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cr51_to_V51_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr51_to_V51_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cr51) * (edot_nu + edot_gamma); + + + // Mn51 --> Cr51 + + tabular_evaluate(j_Mn51_Cr51_meta, j_Mn51_Cr51_rhoy, j_Mn51_Cr51_temp, j_Mn51_Cr51_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Mn51_to_Cr51_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn51_to_Cr51_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Mn51) * (edot_nu + edot_gamma); + + + // Ti51 --> V51 + + tabular_evaluate(j_Ti51_V51_meta, j_Ti51_V51_rhoy, j_Ti51_V51_temp, j_Ti51_V51_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ti51_to_V51_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ti51_to_V51_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ti51) * (edot_nu + edot_gamma); + + + // V51 --> Cr51 + + tabular_evaluate(j_V51_Cr51_meta, j_V51_Cr51_rhoy, j_V51_Cr51_temp, j_V51_Cr51_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_V51_to_Cr51_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V51_to_Cr51_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(V51) * (edot_nu + edot_gamma); + + + // V51 --> Ti51 + + tabular_evaluate(j_V51_Ti51_meta, j_V51_Ti51_rhoy, j_V51_Ti51_temp, j_V51_Ti51_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_V51_to_Ti51_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V51_to_Ti51_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(V51) * (edot_nu + edot_gamma); + + + // Cr52 --> Mn52 + + tabular_evaluate(j_Cr52_Mn52_meta, j_Cr52_Mn52_rhoy, j_Cr52_Mn52_temp, j_Cr52_Mn52_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cr52_to_Mn52_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr52_to_Mn52_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cr52) * (edot_nu + edot_gamma); + + + // Cr52 --> V52 + + tabular_evaluate(j_Cr52_V52_meta, j_Cr52_V52_rhoy, j_Cr52_V52_temp, j_Cr52_V52_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cr52_to_V52_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr52_to_V52_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cr52) * (edot_nu + edot_gamma); + + + // Fe52 --> Mn52 + + tabular_evaluate(j_Fe52_Mn52_meta, j_Fe52_Mn52_rhoy, j_Fe52_Mn52_temp, j_Fe52_Mn52_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Fe52_to_Mn52_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe52_to_Mn52_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Fe52) * (edot_nu + edot_gamma); + + + // Mn52 --> Cr52 + + tabular_evaluate(j_Mn52_Cr52_meta, j_Mn52_Cr52_rhoy, j_Mn52_Cr52_temp, j_Mn52_Cr52_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Mn52_to_Cr52_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn52_to_Cr52_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Mn52) * (edot_nu + edot_gamma); + + + // Mn52 --> Fe52 + + tabular_evaluate(j_Mn52_Fe52_meta, j_Mn52_Fe52_rhoy, j_Mn52_Fe52_temp, j_Mn52_Fe52_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Mn52_to_Fe52_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn52_to_Fe52_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Mn52) * (edot_nu + edot_gamma); + + + // V52 --> Cr52 + + tabular_evaluate(j_V52_Cr52_meta, j_V52_Cr52_rhoy, j_V52_Cr52_temp, j_V52_Cr52_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_V52_to_Cr52_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_V52_to_Cr52_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(V52) * (edot_nu + edot_gamma); + + + // Cr53 --> Mn53 + + tabular_evaluate(j_Cr53_Mn53_meta, j_Cr53_Mn53_rhoy, j_Cr53_Mn53_temp, j_Cr53_Mn53_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cr53_to_Mn53_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr53_to_Mn53_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cr53) * (edot_nu + edot_gamma); + + + // Fe53 --> Mn53 + + tabular_evaluate(j_Fe53_Mn53_meta, j_Fe53_Mn53_rhoy, j_Fe53_Mn53_temp, j_Fe53_Mn53_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Fe53_to_Mn53_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe53_to_Mn53_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Fe53) * (edot_nu + edot_gamma); + + + // Mn53 --> Cr53 + + tabular_evaluate(j_Mn53_Cr53_meta, j_Mn53_Cr53_rhoy, j_Mn53_Cr53_temp, j_Mn53_Cr53_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Mn53_to_Cr53_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn53_to_Cr53_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Mn53) * (edot_nu + edot_gamma); + + + // Mn53 --> Fe53 + + tabular_evaluate(j_Mn53_Fe53_meta, j_Mn53_Fe53_rhoy, j_Mn53_Fe53_temp, j_Mn53_Fe53_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Mn53_to_Fe53_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn53_to_Fe53_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Mn53) * (edot_nu + edot_gamma); + + + // Co54 --> Fe54 + + tabular_evaluate(j_Co54_Fe54_meta, j_Co54_Fe54_rhoy, j_Co54_Fe54_temp, j_Co54_Fe54_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Co54_to_Fe54_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co54_to_Fe54_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Co54) * (edot_nu + edot_gamma); + + + // Cr54 --> Mn54 + + tabular_evaluate(j_Cr54_Mn54_meta, j_Cr54_Mn54_rhoy, j_Cr54_Mn54_temp, j_Cr54_Mn54_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cr54_to_Mn54_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cr54_to_Mn54_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cr54) * (edot_nu + edot_gamma); + + + // Fe54 --> Co54 + + tabular_evaluate(j_Fe54_Co54_meta, j_Fe54_Co54_rhoy, j_Fe54_Co54_temp, j_Fe54_Co54_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Fe54_to_Co54_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe54_to_Co54_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Fe54) * (edot_nu + edot_gamma); + + + // Fe54 --> Mn54 + + tabular_evaluate(j_Fe54_Mn54_meta, j_Fe54_Mn54_rhoy, j_Fe54_Mn54_temp, j_Fe54_Mn54_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Fe54_to_Mn54_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe54_to_Mn54_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Fe54) * (edot_nu + edot_gamma); + + + // Mn54 --> Cr54 + + tabular_evaluate(j_Mn54_Cr54_meta, j_Mn54_Cr54_rhoy, j_Mn54_Cr54_temp, j_Mn54_Cr54_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Mn54_to_Cr54_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn54_to_Cr54_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Mn54) * (edot_nu + edot_gamma); + + + // Mn54 --> Fe54 + + tabular_evaluate(j_Mn54_Fe54_meta, j_Mn54_Fe54_rhoy, j_Mn54_Fe54_temp, j_Mn54_Fe54_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Mn54_to_Fe54_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn54_to_Fe54_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Mn54) * (edot_nu + edot_gamma); + + + // Co55 --> Fe55 + + tabular_evaluate(j_Co55_Fe55_meta, j_Co55_Fe55_rhoy, j_Co55_Fe55_temp, j_Co55_Fe55_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Co55_to_Fe55_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co55_to_Fe55_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Co55) * (edot_nu + edot_gamma); + + + // Fe55 --> Co55 + + tabular_evaluate(j_Fe55_Co55_meta, j_Fe55_Co55_rhoy, j_Fe55_Co55_temp, j_Fe55_Co55_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Fe55_to_Co55_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe55_to_Co55_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Fe55) * (edot_nu + edot_gamma); + + + // Fe55 --> Mn55 + + tabular_evaluate(j_Fe55_Mn55_meta, j_Fe55_Mn55_rhoy, j_Fe55_Mn55_temp, j_Fe55_Mn55_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Fe55_to_Mn55_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe55_to_Mn55_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Fe55) * (edot_nu + edot_gamma); + + + // Mn55 --> Fe55 + + tabular_evaluate(j_Mn55_Fe55_meta, j_Mn55_Fe55_rhoy, j_Mn55_Fe55_temp, j_Mn55_Fe55_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Mn55_to_Fe55_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Mn55_to_Fe55_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Mn55) * (edot_nu + edot_gamma); + + + // Co56 --> Fe56 + + tabular_evaluate(j_Co56_Fe56_meta, j_Co56_Fe56_rhoy, j_Co56_Fe56_temp, j_Co56_Fe56_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Co56_to_Fe56_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co56_to_Fe56_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Co56) * (edot_nu + edot_gamma); + + + // Co56 --> Ni56 + + tabular_evaluate(j_Co56_Ni56_meta, j_Co56_Ni56_rhoy, j_Co56_Ni56_temp, j_Co56_Ni56_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Co56_to_Ni56_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co56_to_Ni56_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Co56) * (edot_nu + edot_gamma); + + + // Fe56 --> Co56 + + tabular_evaluate(j_Fe56_Co56_meta, j_Fe56_Co56_rhoy, j_Fe56_Co56_temp, j_Fe56_Co56_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Fe56_to_Co56_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe56_to_Co56_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Fe56) * (edot_nu + edot_gamma); + + + // Ni56 --> Co56 + + tabular_evaluate(j_Ni56_Co56_meta, j_Ni56_Co56_rhoy, j_Ni56_Co56_temp, j_Ni56_Co56_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ni56_to_Co56_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni56_to_Co56_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ni56) * (edot_nu + edot_gamma); + + + // Co57 --> Fe57 + + tabular_evaluate(j_Co57_Fe57_meta, j_Co57_Fe57_rhoy, j_Co57_Fe57_temp, j_Co57_Fe57_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Co57_to_Fe57_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co57_to_Fe57_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Co57) * (edot_nu + edot_gamma); + + + // Co57 --> Ni57 + + tabular_evaluate(j_Co57_Ni57_meta, j_Co57_Ni57_rhoy, j_Co57_Ni57_temp, j_Co57_Ni57_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Co57_to_Ni57_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co57_to_Ni57_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Co57) * (edot_nu + edot_gamma); + + + // Fe57 --> Co57 + + tabular_evaluate(j_Fe57_Co57_meta, j_Fe57_Co57_rhoy, j_Fe57_Co57_temp, j_Fe57_Co57_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Fe57_to_Co57_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe57_to_Co57_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Fe57) * (edot_nu + edot_gamma); + + + // Ni57 --> Co57 + + tabular_evaluate(j_Ni57_Co57_meta, j_Ni57_Co57_rhoy, j_Ni57_Co57_temp, j_Ni57_Co57_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ni57_to_Co57_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni57_to_Co57_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ni57) * (edot_nu + edot_gamma); + + + // Co58 --> Fe58 + + tabular_evaluate(j_Co58_Fe58_meta, j_Co58_Fe58_rhoy, j_Co58_Fe58_temp, j_Co58_Fe58_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Co58_to_Fe58_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co58_to_Fe58_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Co58) * (edot_nu + edot_gamma); + + + // Co58 --> Ni58 + + tabular_evaluate(j_Co58_Ni58_meta, j_Co58_Ni58_rhoy, j_Co58_Ni58_temp, j_Co58_Ni58_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Co58_to_Ni58_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co58_to_Ni58_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Co58) * (edot_nu + edot_gamma); + + + // Cu58 --> Ni58 + + tabular_evaluate(j_Cu58_Ni58_meta, j_Cu58_Ni58_rhoy, j_Cu58_Ni58_temp, j_Cu58_Ni58_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cu58_to_Ni58_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu58_to_Ni58_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cu58) * (edot_nu + edot_gamma); + + + // Fe58 --> Co58 + + tabular_evaluate(j_Fe58_Co58_meta, j_Fe58_Co58_rhoy, j_Fe58_Co58_temp, j_Fe58_Co58_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Fe58_to_Co58_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Fe58_to_Co58_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Fe58) * (edot_nu + edot_gamma); + + + // Ni58 --> Co58 + + tabular_evaluate(j_Ni58_Co58_meta, j_Ni58_Co58_rhoy, j_Ni58_Co58_temp, j_Ni58_Co58_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ni58_to_Co58_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni58_to_Co58_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ni58) * (edot_nu + edot_gamma); + + + // Ni58 --> Cu58 + + tabular_evaluate(j_Ni58_Cu58_meta, j_Ni58_Cu58_rhoy, j_Ni58_Cu58_temp, j_Ni58_Cu58_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ni58_to_Cu58_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni58_to_Cu58_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ni58) * (edot_nu + edot_gamma); + + + // Co59 --> Ni59 + + tabular_evaluate(j_Co59_Ni59_meta, j_Co59_Ni59_rhoy, j_Co59_Ni59_temp, j_Co59_Ni59_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Co59_to_Ni59_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Co59_to_Ni59_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Co59) * (edot_nu + edot_gamma); + + + // Cu59 --> Ni59 + + tabular_evaluate(j_Cu59_Ni59_meta, j_Cu59_Ni59_rhoy, j_Cu59_Ni59_temp, j_Cu59_Ni59_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cu59_to_Ni59_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu59_to_Ni59_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cu59) * (edot_nu + edot_gamma); + + + // Ni59 --> Co59 + + tabular_evaluate(j_Ni59_Co59_meta, j_Ni59_Co59_rhoy, j_Ni59_Co59_temp, j_Ni59_Co59_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ni59_to_Co59_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni59_to_Co59_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ni59) * (edot_nu + edot_gamma); + + + // Ni59 --> Cu59 + + tabular_evaluate(j_Ni59_Cu59_meta, j_Ni59_Cu59_rhoy, j_Ni59_Cu59_temp, j_Ni59_Cu59_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ni59_to_Cu59_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni59_to_Cu59_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ni59) * (edot_nu + edot_gamma); + + + // Cu60 --> Ni60 + + tabular_evaluate(j_Cu60_Ni60_meta, j_Cu60_Ni60_rhoy, j_Cu60_Ni60_temp, j_Cu60_Ni60_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cu60_to_Ni60_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu60_to_Ni60_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cu60) * (edot_nu + edot_gamma); + + + // Cu60 --> Zn60 + + tabular_evaluate(j_Cu60_Zn60_meta, j_Cu60_Zn60_rhoy, j_Cu60_Zn60_temp, j_Cu60_Zn60_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cu60_to_Zn60_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu60_to_Zn60_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cu60) * (edot_nu + edot_gamma); + + + // Ni60 --> Cu60 + + tabular_evaluate(j_Ni60_Cu60_meta, j_Ni60_Cu60_rhoy, j_Ni60_Cu60_temp, j_Ni60_Cu60_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ni60_to_Cu60_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni60_to_Cu60_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ni60) * (edot_nu + edot_gamma); + + + // Zn60 --> Cu60 + + tabular_evaluate(j_Zn60_Cu60_meta, j_Zn60_Cu60_rhoy, j_Zn60_Cu60_temp, j_Zn60_Cu60_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Zn60_to_Cu60_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn60_to_Cu60_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Zn60) * (edot_nu + edot_gamma); + + + // Cu61 --> Ni61 + + tabular_evaluate(j_Cu61_Ni61_meta, j_Cu61_Ni61_rhoy, j_Cu61_Ni61_temp, j_Cu61_Ni61_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cu61_to_Ni61_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu61_to_Ni61_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cu61) * (edot_nu + edot_gamma); + + + // Cu61 --> Zn61 + + tabular_evaluate(j_Cu61_Zn61_meta, j_Cu61_Zn61_rhoy, j_Cu61_Zn61_temp, j_Cu61_Zn61_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cu61_to_Zn61_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu61_to_Zn61_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cu61) * (edot_nu + edot_gamma); + + + // Ni61 --> Cu61 + + tabular_evaluate(j_Ni61_Cu61_meta, j_Ni61_Cu61_rhoy, j_Ni61_Cu61_temp, j_Ni61_Cu61_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ni61_to_Cu61_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni61_to_Cu61_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ni61) * (edot_nu + edot_gamma); + + + // Zn61 --> Cu61 + + tabular_evaluate(j_Zn61_Cu61_meta, j_Zn61_Cu61_rhoy, j_Zn61_Cu61_temp, j_Zn61_Cu61_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Zn61_to_Cu61_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn61_to_Cu61_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Zn61) * (edot_nu + edot_gamma); + + + // Cu62 --> Ni62 + + tabular_evaluate(j_Cu62_Ni62_meta, j_Cu62_Ni62_rhoy, j_Cu62_Ni62_temp, j_Cu62_Ni62_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cu62_to_Ni62_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu62_to_Ni62_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cu62) * (edot_nu + edot_gamma); + + + // Cu62 --> Zn62 + + tabular_evaluate(j_Cu62_Zn62_meta, j_Cu62_Zn62_rhoy, j_Cu62_Zn62_temp, j_Cu62_Zn62_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cu62_to_Zn62_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu62_to_Zn62_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cu62) * (edot_nu + edot_gamma); + + + // Ga62 --> Zn62 + + tabular_evaluate(j_Ga62_Zn62_meta, j_Ga62_Zn62_rhoy, j_Ga62_Zn62_temp, j_Ga62_Zn62_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ga62_to_Zn62_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga62_to_Zn62_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ga62) * (edot_nu + edot_gamma); + + + // Ni62 --> Cu62 + + tabular_evaluate(j_Ni62_Cu62_meta, j_Ni62_Cu62_rhoy, j_Ni62_Cu62_temp, j_Ni62_Cu62_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ni62_to_Cu62_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni62_to_Cu62_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ni62) * (edot_nu + edot_gamma); + + + // Zn62 --> Cu62 + + tabular_evaluate(j_Zn62_Cu62_meta, j_Zn62_Cu62_rhoy, j_Zn62_Cu62_temp, j_Zn62_Cu62_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Zn62_to_Cu62_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn62_to_Cu62_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Zn62) * (edot_nu + edot_gamma); + + + // Zn62 --> Ga62 + + tabular_evaluate(j_Zn62_Ga62_meta, j_Zn62_Ga62_rhoy, j_Zn62_Ga62_temp, j_Zn62_Ga62_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Zn62_to_Ga62_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn62_to_Ga62_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Zn62) * (edot_nu + edot_gamma); + + + // Cu63 --> Ni63 + + tabular_evaluate(j_Cu63_Ni63_meta, j_Cu63_Ni63_rhoy, j_Cu63_Ni63_temp, j_Cu63_Ni63_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cu63_to_Ni63_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu63_to_Ni63_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cu63) * (edot_nu + edot_gamma); + + + // Cu63 --> Zn63 + + tabular_evaluate(j_Cu63_Zn63_meta, j_Cu63_Zn63_rhoy, j_Cu63_Zn63_temp, j_Cu63_Zn63_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cu63_to_Zn63_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu63_to_Zn63_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cu63) * (edot_nu + edot_gamma); + + + // Ga63 --> Zn63 + + tabular_evaluate(j_Ga63_Zn63_meta, j_Ga63_Zn63_rhoy, j_Ga63_Zn63_temp, j_Ga63_Zn63_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ga63_to_Zn63_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga63_to_Zn63_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ga63) * (edot_nu + edot_gamma); + + + // Ni63 --> Cu63 + + tabular_evaluate(j_Ni63_Cu63_meta, j_Ni63_Cu63_rhoy, j_Ni63_Cu63_temp, j_Ni63_Cu63_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ni63_to_Cu63_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni63_to_Cu63_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ni63) * (edot_nu + edot_gamma); + + + // Zn63 --> Cu63 + + tabular_evaluate(j_Zn63_Cu63_meta, j_Zn63_Cu63_rhoy, j_Zn63_Cu63_temp, j_Zn63_Cu63_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Zn63_to_Cu63_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn63_to_Cu63_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Zn63) * (edot_nu + edot_gamma); + + + // Zn63 --> Ga63 + + tabular_evaluate(j_Zn63_Ga63_meta, j_Zn63_Ga63_rhoy, j_Zn63_Ga63_temp, j_Zn63_Ga63_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Zn63_to_Ga63_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn63_to_Ga63_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Zn63) * (edot_nu + edot_gamma); + + + // Cu64 --> Ni64 + + tabular_evaluate(j_Cu64_Ni64_meta, j_Cu64_Ni64_rhoy, j_Cu64_Ni64_temp, j_Cu64_Ni64_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cu64_to_Ni64_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu64_to_Ni64_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cu64) * (edot_nu + edot_gamma); + + + // Cu64 --> Zn64 + + tabular_evaluate(j_Cu64_Zn64_meta, j_Cu64_Zn64_rhoy, j_Cu64_Zn64_temp, j_Cu64_Zn64_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cu64_to_Zn64_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu64_to_Zn64_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cu64) * (edot_nu + edot_gamma); + + + // Ga64 --> Ge64 + + tabular_evaluate(j_Ga64_Ge64_meta, j_Ga64_Ge64_rhoy, j_Ga64_Ge64_temp, j_Ga64_Ge64_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ga64_to_Ge64_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga64_to_Ge64_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ga64) * (edot_nu + edot_gamma); + + + // Ga64 --> Zn64 + + tabular_evaluate(j_Ga64_Zn64_meta, j_Ga64_Zn64_rhoy, j_Ga64_Zn64_temp, j_Ga64_Zn64_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ga64_to_Zn64_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ga64_to_Zn64_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ga64) * (edot_nu + edot_gamma); + + + // Ge64 --> Ga64 + + tabular_evaluate(j_Ge64_Ga64_meta, j_Ge64_Ga64_rhoy, j_Ge64_Ga64_temp, j_Ge64_Ga64_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ge64_to_Ga64_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ge64_to_Ga64_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ge64) * (edot_nu + edot_gamma); + + + // Ni64 --> Cu64 + + tabular_evaluate(j_Ni64_Cu64_meta, j_Ni64_Cu64_rhoy, j_Ni64_Cu64_temp, j_Ni64_Cu64_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Ni64_to_Cu64_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Ni64_to_Cu64_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Ni64) * (edot_nu + edot_gamma); + + + // Zn64 --> Cu64 + + tabular_evaluate(j_Zn64_Cu64_meta, j_Zn64_Cu64_rhoy, j_Zn64_Cu64_temp, j_Zn64_Cu64_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Zn64_to_Cu64_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn64_to_Cu64_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Zn64) * (edot_nu + edot_gamma); + + + // Zn64 --> Ga64 + + tabular_evaluate(j_Zn64_Ga64_meta, j_Zn64_Ga64_rhoy, j_Zn64_Ga64_temp, j_Zn64_Ga64_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Zn64_to_Ga64_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn64_to_Ga64_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Zn64) * (edot_nu + edot_gamma); + + + // Cu65 --> Zn65 + + tabular_evaluate(j_Cu65_Zn65_meta, j_Cu65_Zn65_rhoy, j_Cu65_Zn65_temp, j_Cu65_Zn65_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Cu65_to_Zn65_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Cu65_to_Zn65_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Cu65) * (edot_nu + edot_gamma); + + + // Zn65 --> Cu65 + + tabular_evaluate(j_Zn65_Cu65_meta, j_Zn65_Cu65_rhoy, j_Zn65_Cu65_temp, j_Zn65_Cu65_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_Zn65_to_Cu65_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_Zn65_to_Cu65_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(Zn65) * (edot_nu + edot_gamma); + + + // n --> p + + tabular_evaluate(j_n_p_meta, j_n_p_rhoy, j_n_p_temp, j_n_p_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_n_to_p_beta_neg_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_n_to_p_beta_neg_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(N) * (edot_nu + edot_gamma); + + + // p --> n + + tabular_evaluate(j_p_n_meta, j_p_n_rhoy, j_p_n_temp, j_p_n_data, + log_rhoy, log_temp, temp, rate, drate_dt, edot_nu, edot_gamma); + rate_eval.screened_rates(k_p_to_n_electron_capture_weaktab) = rate; + if constexpr (std::is_same_v) { + rate_eval.dscreened_rates_dT(k_p_to_n_electron_capture_weaktab) = drate_dt; + } + rate_eval.enuc_weak += C::n_A * Y(H1) * (edot_nu + edot_gamma); + + + } + +} +#endif diff --git a/networks/sn160/temperature_table_rates.H b/networks/sn160/temperature_table_rates.H index 849033267..6f88b70ce 100644 --- a/networks/sn160/temperature_table_rates.H +++ b/networks/sn160/temperature_table_rates.H @@ -9,21 +9,19 @@ using namespace amrex::literals; -using namespace Rates; - namespace temp_tabular { + using namespace Rates; + template - AMREX_GPU_HOST_DEVICE AMREX_INLINE + AMREX_GPU_DEVICE AMREX_INLINE void - fill_rates(const tf_t& tfactors, T& rate_eval) + fill_rates([[maybe_unused]] const tf_t& tfactors, + [[maybe_unused]] T& rate_eval) { - amrex::ignore_unused(tfactors); - amrex::ignore_unused(rate_eval); - [[maybe_unused]] amrex::Real rate; [[maybe_unused]] amrex::Real drate_dT; @@ -31,6 +29,5 @@ namespace temp_tabular { } - } #endif